第三章:数据链路层
1、链路层概述
数据链路层的研究思想:在第一章七层模型中讲过数据是自上而下的经过类似拆箱装箱的操作传递到接收端的,然而当我们专门研究数据链路层的问题时,在许多情况下我们可以只关心在协议栈中水平方向的各数据链路层。于是,当主机H1向主机H2发送数据时,我们可以想象数据就是在数据链路层从左向右沿水平方向传送的,如图中从左到右的粗箭头所示,即通过以下这样的链路:H1的链路层→R1的链路层→R2的链路层→R3的链路层→H的链路层
由图可以看出,从数据链路层来看,H1到H2的通信可以看成由四段不同的链路层通信组成,即:H1→R1,R1→R2,R2→R3和 R3→H2。这四段不同的链路层可能采用不同的数据链路层协议。
本章最重要的内容是:
- 数据链路层的点对点信道和播信道的特点,以及这两种信道所使用的协议(PPP协议以及CSMA/CD协议)的特点。:
- 数据链路层的三个基本问题:封装成帧、透明传输和差错检测。
- 以太网MAC层的硬件地址。
- 适配器、转发器、集线器、网桥、以太网交换机的作用以及使用场合。
1.1、基本概念
- 结点:主机、路由器等
- 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。 链路只是一条通信路径的组成部分;
- 数据链路:网络中两点之间的逻辑通道,把实际控制数据传输的通信协议的硬件和软件加到链路上就构成了数据链路。现在最常用的方法是使用网络适配器来实现这些协议,一般的适配器都包括了数据链路层和物理层这两层的功能。
- 帧:数据链路层的协议数据单元,用于封装网络层的IP数据报
- 数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并交给网络层。在互联网中,网络层的协议数据单元就是IP数据报(简称为数据报、分组、包);
如上图所示:数据链路层负责通过一条链路从一个节点向另一个物理链路直接相邻的相邻结点传送网络层数据报。这种点对点信道的数据链路层在进行通信时的主要步骤如下:
- 结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。
- 结点A把封装好的帧发送给结点B的数据链路层。
- 若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层;否则丢弃这个帧。
数据链路层不必考虑物理层如何实现比特传输的细节。甚至还可以更简单地设想好像是沿着两个数据链路层之间的水平方向把帧直接发送到对方
1.2、数据链路层功能概述
数据链路层在物理层提供服务的基础之上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻结点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成逻辑上无差错的数据链路, 使之对网络层表现为一条无差错的链路。
物理层、数据链路层、网络层关系图解:
- 功能1:为网络层提供服务。无确认连接服务,有确认无连接服务,有确认面向连接服务。(有连接一定有确认!)
- 功能2:链路管理,即连接的建立、维持、释放(用于面向连接的服务)
- 功能3:组帧
- 功能4:流量控制,限制发送方
- 功能5:差错控制(帧错/位错)
2、封装成帧
封装成帧:
在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
图解:
一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部的长度。首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限) ,此外首部和尾部还包括了许多必要的控制信息。
发送帧时,是从帧首部开始发送。各种数据链路层协议都对帧的首部和尾部都有明确规定。为提高帧传送效率,应当使帧的数据部分长度尽可能地大于首部和尾部的长度,但是每一种链路层协议都规定了帧数据部分长度上限----最大传送单元MTU(Maximum Transfer Unit),如上图所示。
帧同步:
接收方应当能从接受到的二进制比特流中区分出帧的起始和终止【帧定界符的作用】。
帧定界符:
当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。控制字符SOH放在帧的最前面,表示帧的首部开始,另一个控制字符EOT表示帧的结束;注意:这里的SOH和EOT都是控制字符的名称, SOH和EOT的十六进制编码分别是01(二进制是0000001)和04(二进制是00000100)。
当数据在传输中出现差错时,帧定界符的作用更加明显。假定发送端在尚未发送完一个帧时突然出故障,中断了发送,但随后很快又恢复正常,于是重新从头开始发送刚才未发送完的帧,由于使用了帧定界符,接收端就知道前面收到的数据是个不完整的帧(只有首部开始符SOH而没有传输结束符EOT),必须丢弃,而后面收到的数据有明确的帧定界符(SOH和EOT),因此这是一个完整的帧,应当收下。
需注意的是,不同的协议使用的帧定界符也并不相同,但是它们的思想是相同的,都是对SOH和EOT的某种实现。
四种组帧方法:
- 字符计数法
- 字符(节)填充法
- 零比特填充法
- 违规编码法
3、透明传输
透明传输
是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。 当所传数据中的比特组合恰巧和用作帧定界的控制字符的比特编码一样,就会出现帧定界的错误,因此就必须采取适当的措施,使接收方不会将这样的数据误认为是类似帧定界符一样的控制信息。这样才能保证数据链路层的传输是透明的。
如图所示,SOU为开头,EOT为结尾,透明传输就是要保证SOH到EOT之间的所有数据都能正确发送,要能保证在帧数据部分中遇到了EOT之类的控制字段而不为所动。
像上图所示的帧的传输显然就不是“透明传输”,因为当遇到传送的帧中的数据部分碰巧出现字符“EOT”时就传不过去了。数据中的“EOT”将被接收端错误地解释为“传输结束”的控制字符,而在其后面的数据因找不到“SOH”被接收端当做是无效帧而被丢弃。但实际上在数据中出现的字符“EOT”并非控制字符而仅仅是二进制数据00000100。
值得一提的是:当传送的帧都是文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCII码,不管从键盘上输入什么字符都可以放在帧里传过去,即实现了透明传输)
透明传输问题的解决
为了解决传输问题,就必须设法使数据中可能出现的控制字符“SOH”和“EOT”在接收端不被解释为控制字符。
具体方法是:发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”。而在接收端的数据链路层在将数据送往网络层之前删除这个插入的转义字符。这种方法称为字节填充或字符填充。如果转义字符也出现数据当中,那么解决方法仍然是在转义字符的前面插入一个转义字符。因此当接收端接收到连续的两个转义字符时,就删除其中前面的一个。
因此现在就即透明传输问题在帧上的应用详细介绍一下四种封装成帧的方法:
3.1、字符计数法
很简单的一种封装方法,它通过在帧首部使用一个计数字段(第一个字节,八位)来表明帧内字符数。
如图所示,每个帧首部都加了个数字,规定自己要发几个字符。这种方法就叫做字符计数法。
缺点: 如果第一个帧首部的数字突变了,则第二个帧的字符首部数字也会跟着往前移动发生变化,就会造成一连串的连锁反应。
3.2、字符填充法
发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”。而在接收端的数据链路层在将数据送往网络层之前删除这个插入的转义字符。这种方法称为字节填充或字符填充。如果转义字符也出现数据当中,那么解决方法仍然是在转义字符的前面插入一个转义字符。因此当接收端接收到连续的两个转义字符时,就删除其中前面的一个。
可以用于当传送的帧是由非ASCII码的文本文件组成时(二进制代码的程序或图像),就可以采用此方法实现透明传输
3.3、零比特填充法
允许传送的帧数据部分包含任意个比特数,在数据的首部和尾部添加01111110,方法原理是:
- 在发送端,扫描整个信息字段,只要有连续5个1,就立即填入1个0
- 在接收端,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。
3.4、违规编码法
如图所示,曼彻斯特编码每个码元只有 “高-低” "低-高"两种,所以可以用“高-高”,“低-低”来定界帧的起始和终止。即用编码中不可能出现的电平方式来定界帧的起始和终止。
总结: 由于字节计数法中 Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。
4、差错控制
4.1、检查编码
4.1.1、差错从何而来?
现实的通信链路都不会是理想的。这就是说,比特在传输过程中可能会产生差错。1可能变成0,而0也可能变成1。这就叫做比特差错(位错)。比特差错是传输差错中的一种。本小节所说的“差错”,如无特殊说明,就是指“比特差错”。
4.1.2、差错控制
4.1.3、循环冗余检测CRC检错技术
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率。误码率与信噪比有很大的关系。如果设法提高信噪比,就可以使误码率减小。实际的通信链路并非理想的,他不可能使误码率下降到零。因此,为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。目前在数据链路层广泛使用了循环冗余检测CRC检错技术。
下面通过一个例子来说明循环冗余检测的原理。
发送端:
先把数据划分为组,假定每组k个比特。现假定传送数据M=101001(k=6)。CRC运算就是在数据M后面添加供差错检测用的n位冗余码,然后构成了一个帧发送出去,一共发送(k+n)位。
这n位冗余码可用以下方法得出: 用二进制的模2运算进行2的n次幂乘M的运算,这相当于在M后面添加n个0。得到的(k+n)位的数除以收发双方实现商定的长度为(n+1)位的多项式P,得出商是Q而余数是R。在图中所示的例子中,M=101001(即k=6)。假定余数P=1101(n=3)。经模2除法运算后的结果是:商Q=110101,而余数R=001。这个余数R就作为冗余码拼接在数据M的后面发送出去。
这种为了进行检错而添加的冗余码常称为帧检验序列FCS。因此加上FCS后发送的帧是101001001,共有(k+n)位。
接收端
把接受到的数据以帧为单位进行CRC检验:把收到的每一个帧都出以同样的除数P,然后检查得到的余数R。如果在传输过程中无差错,那么经过CRC检验后得出的余数R肯定是0。但如果出现误码,那么余数R仍等于零的概率是非常非常小的。总之,在接收端对收到的每一帧经过CRC检验后。
- 若得出的余数R=0,则判定这个帧没有差错,就接受。
- 若余数R!=0,则判定这个帧有差错,就丢弃。
最后强调一下,在数据链路层若仅仅使用循环冗余检验CRC差错检测技术,则只能做到对帧的无差错接受,即“凡是接收端数据链路层接收到的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。以上的所述可以近似地表述为:“凡是接收端数据链路层接收的帧均无差错”。但是我们并没有要求可靠传输的概念,所谓**“可靠传输”就是:数据链路层的发送端发送什么,在接收端就收到什么。**
例子
4.1.4、总结
传输的差错可分为两大类:一类就是前面所说的及最基本的比特差错,而另一类传输差错则更复杂一些,这就是收到的帧并没有出现比特差错,但却出现了帧丢失,帧重复或帧失序。以上三种情况都属于“传输差错”,但都不是这些帧里有“比特差错”。
帧丢失很容易理解。但出现帧重复和帧失序的情况则较为复杂,对这些问题我们现在不展开讨论。我们应当明确的是,在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。“无比特差错”与“无传输差错”并不是同样的概念。在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输。
我们知道,过去OSI的观点是必须把数据链路层向上提供可靠传输的。因此在CRC检错的基础上,增加了帧编号确认和重传机制。收到正确的真就要向发送端发送确认。发送端在一定的期限内若没有收到对方的确认,就认为出现了差错,因而就进行重传,直到收到对方的确认为止。但目前因特网广泛使用的数据链路层协议都不实用确认和重传机制,即不要求数据链路层向上提供可靠传输服务。如果在数据链路层传输数据时出现了差错并且需要进行改正,那么改正差错的任务就由上层协议(运输层的TCP协议)来完成。实践证明,这样可以提供通信效率。
4.2、纠错编码
略
5、流量控制和可靠传输
5.1、数据链路层的流量控制
5.1.1、概念
较高的发送速度与较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作【传输层也有流量控制】
数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。
数据链路层流量控制手段:接收方收不下就不回复确认。而传输层流量控制手段:接收端给发送端一个窗口公告。
5.1.4、流量控制的方法
停止-等待协议:
每发完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一帧。发送窗口大小为1,接收窗口大小为1(滑动窗口的特例)。
滑动窗口协议(窗口大小固定)
- 后退N帧协议(GBN):发送窗口大小大于1,接收窗口大小为1;
- 选择重传协议(SR):发送窗口大小大于1,接收窗口大小大于1;
总结
可靠传输:发送端发啥,接收端收啥
流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一个帧
滑动窗口解决:
- 流量控制(收不下就不给确认,想发送也发不了);
- 可靠传输(发送方自动重传), 数据包的丢失问题
5.2、停止-等待协议
1、为什么要有停止-等待协议
除了比特出差错,底层存到还会出现丢包问题【丢包:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失】
不同的层次数据包的名字也不同,链路层叫帧,网络层叫做IP数据报或分组,传输层叫报文段,为了实现流量控制。
2、停止等待协议做题(研究)的前提:
- 虽然现在绝大多数都是全双工通信方式,但是研究问题时还是抽象成单工(即一方发送,一方接收)
- 不需要考虑协议是在哪一个层次上(数据链路层or传输层)
- 停止-等待 就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。
3、停止等待协议应用情况:
分为有差错情况&无差错情况
无差错情况
有差错情况
1.数据帧丢失或检测到帧出错
2.ACK丢失或迟到
4、性能分析
信道利用率
5.3、后退N帧协议(GBN)
停等协议的弊端:信道利用率低,可以采用流水线技术,提高利用率。
- 必须增加序号范围;
- 发送发需要缓存多个分组。
因此针对这种技术,我们延伸了SR和GBN两种方法
GBN发送方需要响应的三件事
【1】上层的调用:
上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送发只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际中,发送发可以缓存这些数据,窗口不满时在发送帧)。
【2】收到了一个ACK:
GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。以最大序号确认为准,则之前的不管是否发送确认,都表明已经确认收到了。
【3】超时事件:
协议的名字为后退N帧/回退N帧,来源于出现丢失和延长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。
GBN 接收方要做的事
如果正确收到n号帧,并且按序,那么接收方为n帧发送一个确认ACK,并将该帧中的数据部分交付给上层。 其余情况都丢掉,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只要维护一个信息exepectedseqnum(下一个按序接收的帧序号)。
滑动窗口长度
若采用n个比特对帧编号,那么发送窗口的尺寸W1应满足:1<=W1<=2n-1。因为发送窗口尺寸过大,就会使得接收方无法区分新帧和旧帧。
GBN协议重点
累积确认(也称捎带确认)。 接收方只按序接受帧,不按序无情丢弃。 确认序列号最大的、按序到达的帧。 发送窗口最大为2n-1,接收窗口大小为1。
GBN 协议性能分析
提高了信道利用率; 在重传时必须把原来已经正确传送的数据帧重传,使传递效率降低。
5.4、选择重传协议(SR)
略
6、信道划分介质访问控制
6.1、概述
一、传输数据使用的两种链路
点对点链路: 两个相邻节点通过一个链路相连,没有第三者。应用:PPP协议,常用于广域网
广播式链路: 所有主机共享通信介质。应用:早期的总线以太网、无线局域网,常用于局域网。典型的拓扑结构:总线型、星型(逻辑总线型)
二、介质访问控制
介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发生相互干扰的情况。
介质访问控制:
三、信道划分介质访问控制:
将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。
采用多路复用技术:把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。
频分多路复用 FDM
时分多路复用 TDM
统计时分复用 STDM
波分多路复用 WDM
就是光的频分多路复用,在一根光纤中传输多种不同波长的光信号,由于波长不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来
码分多路复用CDM
码分多址(CDMA) 是码分复用的一种方式。
- 1个比特分为多个码片/芯片(chip),每一个站点被指定一个惬意的m位芯片序列。
- 发送1时站点发送芯片序列;发送0时发送芯片序列反码(通常把0写成-1)
- 如何不产生冲突:多个站点同时发送数据的时候,要求各个站点芯片序列相互正交。
- 如何合并:各路数据在信道中被线性相加。
- 如何分离:合并的数据和源站规格化内积。
6.2、ALOHA协议
略,烦得很,不写了,用的时候看视频
6.3、CSMA协议
略,烦得很,不写了,用的时候看视频
6.4、CSMA-CD协议
载波监听、碰撞检测
7、局域网中的以太网和无线局域网
7.1、局域网
7.1.1、概述
局域网(Local Area Network):简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道
特点1:覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或几种的建筑群内
特点2:使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s~10Gb/s)
特点3:通信延迟时间短,误码率低,可靠性较高
特点4:各站为平等关系,共享传输信道
特点5:多采用分布式控制和广播式信道,能进行广播和组播
决定局域网的主要要素为:网络拓扑,传输介质与介质访问控制方法
7.1.2、局域网拓扑结构
星型拓扑
中心节点是控制中心,任意两个节点间的通信最多只需两步,传输速率快,并且网络构形简单、建网容易、便于控制和管理。但这种网络系统,网络可靠性低,网络共享能力差,有单点故障问题
总线型拓扑
网络可靠性高、网络节点间响应速度快、共享资源能力强、设备投入量少、成本低、安装使用方便,当某个工作站节点出现故障时,对整个网络系统影响小
环型拓扑
系统中通信设备和线路比较节省。有单点故障问题;由于环路是封闭的,所以不便于扩充,系统响应延时长,且信息传输效率相对较低
树型拓扑
易于扩展,易于隔离故障,也容易有单点故障
7.1.3、局域网介质访问控制方法
局域网:
- 有线局域网,常用介质:双绞线、同轴电缆、光纤
- 无线局域网,常用介质:电磁波
访问控制方法:
- CSMA/CD:常用于总线型局域网,也用于树型网络
- 令牌总线:常用于总线型局域网,也用于树型网络。它是把总线型或树型网络中的各个工作站按一定顺序,如按接口地址大小,排列形成一个逻辑环。只有令牌持有者才能控制总线,才有发送信息的权力
- 令牌环:用于环型局域网,如令牌环网
7.1.4、局域网的分类
- 以太网。以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、千兆以太网(1000Mbps)和10G以太网,它们都符合IEEE802.3系列标准规范。逻辑拓扑是总线型,物理拓扑是星型或拓展星型。使用CSMA/CD
- 令牌环网。物理上采用了星型拓扑结构,逻辑上是环形拓扑结构。已是“明日黄花”
- FDDI网(Fiber Distributed Data Interface)。物理上采用了双环拓扑结构,逻辑上是环形拓扑结构
- ATM网(Asynchronous Transfer Mode)。较新型的单元交换技术,使用53字节固定长度的单元进行交换
- 无线局域网(Wireless Local Area Network, WLAN)采用了IEEE802.11标准
IEEE 802标准
IEEE 802系列标准是IEEE 802 LAN/MAN标准委员会制定的局域网、城域网技术标准。其中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责
- IEEE 802.3:以太网介质访问控制协议(CSMA/CD)及物理层技术规范
- IEEE 802.5:令牌环网(Token-Ring)的介质访问控制协议及物理层技术规范
- IEEE 802.8:光纤技术咨询组,提供有关光纤联网的技术咨询
- IEEE 802.11:无线局域网(WLAN)的介质访问控制协议及物理层技术规范
7.1.5、MAC子层和LLC子层
IEEE 802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层
7.2、以太网
7.2.1、概述
以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网使用CSMA/CD技术
以太网在局域网各种技术中占统治性地位:
- 造价低廉(以太网网卡不到100块)
- 是应用最广泛的局域网技术
- 比令牌环网、ATM网更便宜,简单
- 满足网络速率要求:10Mb/s~10Gb/s
以太网两个标准:
- DIX Ethernet V2:第一个局域网产品(以太网)规约
- IEEE 802.3:IEEE 802委员会802.3工作组制定的第一个IEEE的以太网标准。802.3局域网即以太网
以太网提供无连接、不可靠的服务
- 无连接:发送方和接收方之间无“握手过程”
- 不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。以太网只实现无差错接收,不实现可靠传输
以太网传输介质
粗同轴电缆=>细同轴电缆=>双绞线+集线器
以太网拓扑结构
- 使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议。
- 以太网拓扑:逻辑上总线型,物理上星型
7.2.2、10BASE-T以太网
10BASE-T是传送基带信号的双绞线以太网,T表示采用双绞线,现10BASE-T采用的是无屏蔽双绞线(UTP),传送速率是10Mb/s
物理上采用星型拓扑,每段双绞线最长为100m。采用曼切斯特编码。采用CSMA/CD介质访问控制
7.2.3、适配器与MAC地址
计算机与外界有局域网的链接是通过通信适配器的【PC 上有】。
适配器上装有处理器和存储器(包括RAM和ROM)。ROM上有计算机硬件地址--MAC地址
在局域网中,硬件地址又称为物理地址,或MAC地址
MAC地址:每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。常用6个十六进制数表示,如02-60-8c-e4-b1-21【网卡换了,MAC地址才会变化】
7.2.4、以太网MAC帧
常用的以太网 MAC 帧格式有两种标准:
- DIX Ethernet V2 标准(常用)
- IEEE 的 802.3 标准
最常用的MAC帧是以太网V2的格式:
- 类型字段用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议
- 数据字段的正式名称是 MAC 客户数据字段,最小长度 64 字节 - 18 字节的首部和尾部 = 数据字段的最小长度(46字节)
- 当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节
- 在帧的前面插入(硬件生成)的 8 字节中,第一个字段共 7 个字节,是前同步码,用来迅速实现 MAC 帧的比特同步。第二个字段 1 个字节是帧开始定界符,表示后面的信息就是 MAC 帧。
无效的 MAC 帧
- 数据字段的长度与长度字段的值不一致
- 帧的长度不是整数个字节
- 用收到的帧检验序列 FCS 查出有差错
- 数据字段的长度不在 46 ~ 1500 字节之间
- 有效的 MAC 帧长度为 64 ~ 1518 字节之间
7.2.5、高速以太网
速率≥100Mb/s的以太网称为高速以太网
- 100BASE-T以太网:在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE 802.3的CSMA/CD协议,支持全双工和半双工,可在全双工方式下工作而无冲突
- 吉比特以太网:在光纤或双绞线上传送1Gb/s信号,支持全双工和半双工,可在全双工方式下工作而无冲突
- 10吉比特以太网:10吉比特以太网在光纤上传送10Gb/s信号,只支持全双工,无争用问题
7.3、无线局域网
7.3.1、IEEE 802.11
IEEE 802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准
802.11的MAC帧头格式
7.3.2、无线局域网的分类
- 有固定基础设施无线局域网
- 无固定基础设施无线局域网的自组织网络
8、广域网使用的链路层协议
8.1、广域网概述
广域网,通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,远距离通信,形成国际性的远程网络。
广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网是世界范围内最大的广域网
节点交换机和路由器的区别就是交换机只能在单个网络中分组交换
8.2、PPP点对点协议【点对点信道】
点对点协议PPP是目前使用最广泛的链路层协议,用户使用拨号电话接入因特网时一般使用PPP协议,只支持全双工链路。
PPP协议需要满足的要求
- 简单:对于链路层的帧,无需纠错,无需序号,无需流量控制。
- 封装成帧:帧定界符
- 透明传输:与帧定界符一样比特组合的数据应该如何处理:一步线路字节填充,同步线路用比特填充。
- 多种网络层协议:串行/并行,同步/异步,电/光。
- 差错检测:错就丢弃
- 检测连接状态:链路是否正常工作。
- 最大传输单元:数据部分最大长度MTU;
- 网络层地址协商:知道通信双方的网络层地址。
- 数据压缩协商。
无需满足的要求
- 不需要纠错
- 不需要流量控制
- 不需要对帧编号
- 不支持多点线路
PPP三个组成部分
- 一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。
- 链路控制协议LCP:建立并维护数据链路连接。【身份验证】
- 网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。
PPP协议的状态图
PPP协议的帧格式
HDLC协议很少使用了,略
9、链路层设备
9.1、物理层扩展以太网
使用光纤扩展
- 主机使用光纤(通常是一对光纤)和一对光纤调制解调器连接到集线器。
- 很容易使主机和几公里以外的集线器相连接
使用集线器扩展:将多个以太网段连成更大的、多级星形结构的以太网
优点
- 使原来属于不同碰撞域的以太网上的计算机能够进行跨碰撞域的通信
- 扩大了以太网覆盖的地理范围
缺点
- 碰撞域增大了,但总的吞吐量并未提高,效率低下
- 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来
碰撞域(collision domain)又称为冲突域,是指网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络碰撞域越大,发生碰撞的概率越高
9.2、数据链路层扩展以太网
参考链接:blog.csdn.net/weixin_4465…
扩展以太网更常用的方法是在数据链路层进行。早期使用网桥,现在使用以太网交换机
网桥
网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发和过滤,当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口,或把它丢弃
以太网交换机
以太网交换机实质上就是一个都有十几个或更多的接口,通常都有十几个或更多的接口,每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式
以太网交换机具有并行性,能同时连通多对接口,使多对主机能同时通信
交换机的交换方式
- 存储转发方式:
- 把整个数据帧先缓存后再进行处理。
- 直通 (cut-through) 方式:
- 接收数据帧的同时就立即按数据帧的目的 MAC 地址决定该帧的转发接口,因而提高了帧的转发速度。
- 缺点是它不检查差错就直接将帧转发出去,因此有可能也将一些无效帧转发给其他的站。
冲突域和广播域:
10、总结
数据链路层属于计算机网络的低层,数据链路层使用的信道主要有以下两种类型
- 点对点信道:一对一的点对点通信方式,点对点协议PPP
- 广播信道:一对多的广播通信方式,这种信道使用一对多的广播通信方式(集线器这种),因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送---CSMA/CD协议
局域网属于数据链路层:局域网虽然是个网络。但我们并不把局域网放在网络层中讨论。这是因为在网络层要讨论的是多个网络互连的问题,是讨论分组怎么从一个网络,通过路由器,转发到另一个网络。而在同一个局域网中,分组怎么从一台主机传送到另一台主机,但并不经过路由器转发。从整个互联网来看,局域网仍属于数据链路层的范围
详细参考转自:blog.csdn.net/weixin_4562…