您的位置:首页 > 理论基础

【带你搞定计算机网络3】数据链路层

2020-01-11 12:52 260 查看

第三章数据链路层

数据链路层属于计算机网络的低层,该层使用的信道主要有以下两种:
(1)点对点信道。使用一对一的点对点通信方式。
(2)广播信道。使用一对多的广播信道通信方式,广播信道上连接了很多主机,因此必须使用专用的共享信道协议协调这些主机的数据发送。
网络层讨论分组如何从一个网络通过路由器转发到另一个网络,本章讨论分组怎样从一台主机传送到另一台主机,不经过路由器,从整个网络看,局域网属于数据链路层的范围。
本章最重要的内容是:
(1)数据链路层的点对点信道和广播信道的特点,以及这两种信道所用协议(PPP协议以及CSMA/CD协议)的特点。
(2)数据链路层的三个基本问题:封装成帧、透明传输和差错检测。
(3)以太网MAC层的硬件地址。
(4)适配器、转发器、集线器、网桥、以太网交换机的作用和使用场合。

3.1 使用点到点信道的数据链路层

链路和数据链路不是一回事,链路(link)是从一个结点到相邻结点的一段物理线路(有线或无线),而中间没有其他交换结点。进行数据通信时,两台计算机之间的通信路径往往要经过许多段链路,因此链路只是一条路径的组成部分。
数据链路(data link)是另一个概念。当需要在一条线路上传送数据时,除必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。最常用的方法是使用网络适配器(既包括硬件也包括软件)来实现这些协议。一般的适配器都包括数据链路层和物理层这两层的功能。
也有另外的术语,即把链路分为物理链路(上述链路)和逻辑链路(上述数据链路,是物理链路加上必要的通信协议)。
早期数据通信协议叫通信规程(procedure),因此在数据链路层,规程和协议是同义语。
数据链路层的协议数据单元PDU是帧。数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据提出并上交给网络层。互联网中,网络层的协议数据单元就是IP数据报(或简称数据报、包、分组)。
点到点信道的数据链路层在通信时的主要步骤:
(1)结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧
(2)结点A把封装好的帧发送给结点B的数据链路层
(3)若结点B的数据链路层收到的帧无差错,则提取出IP数据报上交网络层,否则丢弃这个帧。

数据链路层协议有许多种,但有三个基本的共同问题:封装成帧、透明传输和差错控制。
(1)封装成帧
封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧,接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
一个帧的帧长等于数据长度部分(IP数据报构成)加上帧首部和帧尾部的长度。首部和尾部的一个重要作用就是帧定界(即确定帧的界限)。此外首部和尾部还包括许多控制信息,在发送帧时,是从帧首部开始发送的。为提高帧传输效率,应使帧的数据部分长度仅可能大于首部和尾部,但每一种链路层协议都规定了所能传送的帧的数据部分长度上限——最大传输单元MTU(Maximum Transfer Unit)。
当数据由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。控制字符SOH(Start Of Header)放在帧的最前面,表示帧的首部开始,另一个控制字符EOT(End Of Transmission)表示帧的结束。SOH和EOT都是控制字符的名字,它们的16进制编码分别是01和04。
当数据在传输中出现差错时,帧定界的作用更加明显。假定发送端在尚未发送完一个帧时发生故障,中断了发送之后恢复正常,从头开始发送刚才未发完的帧,由于使用了帧定界符,接收端就知道前面收到的数据是不完整的帧(只有SOH而没有EOT),必须丢弃。
(2)透明传输
当传送帧是用文本文件组成的帧时,其数据部分不会出现SOH或EOT这样的帧界定控制符。因此不管从键盘上输入什么字符都可以放在这样的帧中传输过去,这样的传输就是透明传输。
但当数据部分时非ASCII码的文本文件时,情况就不同了。如果数据中某个字节的二进制代码恰好和SOH或EOT一样,数据链路层会错误地找到帧的边界收下部分帧而把剩下的数据丢弃。
透明是一个重要术语,它表示:某一个实际存在的事物看起来却好像不存在一样。在数据链路层透明传送数据,表示无论什么样的比特组合的数据,都能按原样没有差错地通过数据链路层。因此对传送数据来说,这些数据就“看不见”数据链路层有什么妨碍数据传输的东西。
为解决透明传输,必须设法使数据中可能出现的控制字符SOH和EOT在接收端不被解释为控制字符。具体的方法是:发送端的数据链路层在数据中的SOH或EOT之前插入一个转义字符ESC(其16进制编码为1B),而在接收端的数据链路层在把数据送往网络层之前删除这个ESC。这种方法称为字节填充或字符填充。如果转义字符也出现在数据,那就在ESC前再加一个ESC。
(3)差错控制
比特在传输过程中可能产生差错:1可能变成0,0可能变成1,这就叫比特差错。比特差错是传输差错的一种。在一段时间内,传输错误的比特占所传输比特总数的比率就叫误码率BER(Error Bit Rate)。误码率和信噪比有关,如果设法提高信噪比,误码率就会减小。为保证数据传输可靠性,必须采用各种差错检测措施,目前在数据链路层广泛使用了循环冗余检测CRC的检错技术。
在发送端,先把数据划分为组,假定每组k个比特。假定待传送数据M=101001(k=6),CRC运算就是在M的后面添加n位供差错检测用的冗余码,然后构成一个(k+n)位的帧发送出去。
n位冗余码用以下方法得出。用二进制的模2运算进行2n乘M,相当于在M后面添加n个0,得到的(k+n)位数除以事先约定的长度为(n+1)的除数P得到商Q和余数R(n位,比除数少一位)。例M=101001,P=1101即n=3,经模2除法得出的结果是商Q=110101(商无用),R=001。这个余数R就作为冗余码拼接在M的后面发送出去,这种为了检错而添加的冗余码称为帧检测码FCS,因此加上FCS后发送的帧是101001001(即2nM+FCS)。
接收端把接收到的数据以帧为单位进行CRC校验:把收到的每一个帧都出以同样的除数P(模2运算),然后检查余数R。如果传输无差错,那么R=0。若R=0,判定帧没有差错,接收,如果R不等于0,则判断帧有差错并舍弃。
一种较简便的方法是用多项式来表示循环冗余检验过程。例如用P(X)=X3+X2+1表示1101。多项式P(X)称为生成多项式。
在数据链路层,发送端帧检验序列FCS和接收端CRC检验都是用硬件完成的,处理迅速,不会延误数据的传输。从上述讨论可知如果不以帧为单位传送数据就无法加入冗余码来进行差错检验,因此要在数据链路层进行差错检验就必须把数据划分位帧,每一帧都加上冗余码,一帧一帧地发送然后在接收端逐帧进行差错检验。
若仅使用CRC,则只能做到对帧的无差错接受,即凡是接收端数据链路层接受的帧,我们都能以非常接近1的概率认为这些帧在传输中没有出现差错。出现差错的帧虽然曾接收到了但最终会被丢弃。
差错传输分类两大类:一类是前述最基本的比特差错,而另一类传输差错更复杂,就是收到的帧没有比特差错,但出现了帧丢失、帧重复或帧失序。
过去OSI的观点是:必须让数据链路层向上提供可靠传输,因此在CRC的基础上增加了帧编号、确认和重传机制。收到正确的帧就要向发送端发送确认,发送端未在时限内收到对方确认就会进行重传直到收到对方确认位置。但现在的通信线路质量已大大提高,互联网以采用了区别对待的方法。
对通信质量良好的有线传输链路,数据链路层协议不使用确认和重传机制,即不要求向上提供可靠的传输服务。如果在数据链路层传输数据时出现差错并需要更正,那么改正差错的任务交给上层协议(如运输层的TCP)来完成。
对通信质量较差的无线传输链路,数据链路层协议使用确认和重传机制,向上提供可靠的服务。实践证明,这样做可以提高通信效率。

3.2 点对点协议PPP

通信线路质量较差的年代,多使用可实现可靠传输的高级数据链路控制HDLC,现在HDLC已很少使用了,对于点对点的链路,简单得多的点对点协议PPP是目前使用的最广泛的数据链路层协议。
互联网用户通常需要连接到某个ISP才能接入互联网,PPP协议就是用户计算机和ISP进行通信时所使用的数据链路层协议。
PPP协议应满足的需求:
(1)简单
IETF设计互联网体系结构时将最复杂的部分放在TCP协议中,而网际协议IP则相对简单,提供不可靠的数据包服务。因此数据链路层没必要提供比IP协议更多的功能,对数据链路层的帧,不需要纠错,不需要序号,也不需要流量控制。IETF把简单作为首要需求。
简单的设计可使协议在实现时不易出错,从而使不同厂商在协议的不同实现上的互操作性提高了。数据链路层的协议非常简单:接收方每接收到一个帧,就进行CRC检验,如果正确就接收,否则丢弃,其他什么也不做。
(2)封装成帧
PPP协议必须规定特殊字符作为帧定界符(即标志一个帧开始和结束的字符),以便接收端从收到的比特流中能准确找出帧的开始和结束位置。
(3)透明性
PPP协议必须保证数据传输的透明性,这就是说如果数据中碰巧出现了和帧定界符一样的比特组合时,就要采取有效的措施解决。
(4)多种网络层协议
PPP协议必须能够在同一条物理链路上同时支持多种网络层协议的运行。当点对点链路所连接的是局域网或路由器时,PPP协议必须同时支持在链路所连接的局域网或路由器上运行的各种网络层协议。
(5)多种类型链路
除要支持多种网络层协议外,PPP还必须能够在多种类型的链路上运行。例如,串行的或并行的,同步的或异步的,低速的或高速的,电的或光的,交换的(动态的)或非交换的(静态的)点对点链路。
在以太网上运行的PPP,即PPPoE,这是PPP协议能适应多种类型链路的一个典型例子。PPPoE是为宽带上网的主机使用的链路层协议,宽带上网时由于传输速率较高,因此可让多个连接在以太网上的用户共享一条到ISP的宽带链路,即使只有一个用户利用ADSL进行宽带上网(不和其他人分享到ISP的宽带链路),也是使用PPPoE协议。
(6)差错检测
PPP协议必须能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
(7)检测连接状态
PPP协议必须具有一种机制能够及时(不超过几分钟)自动检测出链路是否处于正常工作状态。
(8)最大传送单元
PPP协议必须对每一种类型的点对点链路设置最大传送单元MTU的标准默认值(1500B),这样做是为了促进各种实现之间的互操作性。MTU是数据链路层的帧可以载荷的数据部分的最大长度,不是帧的总长度。
(9)网络层地址协商
PPP协议必须提供一种机制使通信的两个网络层的实体能通过协商知道或能配置彼此的网络层地址。协商算法应尽可能简单,并满足所有情况。对拨号连接的链路尤为重要。
(10)数据压缩协商
PPP协议必须提供一种方法来协商数据压缩算法,但并不要求该算法标准化。
在TCP/IP协议族中,可靠传输由运输层的TCP协议复杂,因此数据链路层的PPP协议不需要进行纠错,不需要设置序号,也不需要进行流量控制。PPP协议不支持多点线路(即一个主站轮流和链路上的多个从站通信),只支持点对点的链路通信,此外PPP只支持全双工链路。
PPP协议的组成:
(1)一个将IP数据报封装到串行链路的方法。PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。
(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP。
(3)一套网络控制协议NCP,其中每个协议支持不同的网络层协议。

PPP协议的帧格式
首部(F A C 协议)+信息部分+尾部(FCS F)
(1)各字段的意义
PPP帧的首部和尾部分别为四个字段和两个字段。首部的第一个字段和尾部的第二个字段都是标志字段F,规定为0x7E,标志字段表示一个帧的开始或结束。因此标志字段就是PPP帧的定界符,连续两帧之间只需要一个标志字段。如果出现连着两个标志字段,就表示一个应当丢弃的空帧。
首部中的四个字段为标志字段F,地址字段A和控制自字段C,2B的协议字段。信息字段的长度可变,不超过1500B。尾部的第一个字段(2B)是使用CRC的帧检验序列FCS,第二个字段是标志字段F。
F、A、C均为1B,协议和FCS为2B,信息部分不超过1500B。
(2)字节填充
当PPP使用异步传输时,它把转义字符定义为0x7D,并使用字节填充。
由于在发送端进行了字节填充,因此在链路上传送的信息字节就超过了原来的信息字节数,但接收端在收到数据后再进行与发送端字节填充的相反变换,就可正确恢复出原有信息。
(3)零比特填充
PPP协议在使用SONET/SDH链路时,使用同步传输(一连串的比特连续发送)而不是异步传输(逐个字符传送)。在这种情况下,PPP采用零比特填充法来实现透明传输。
具体做法:发现有5个连续的1,则填入一个0,保证信息字段不会出现连续6个1。接收端在收到一个帧时,先找到标志字段F确定一个帧的边界,再用硬件对比特流扫描,当发现5个连续的1时就删除后面的0。

PPP协议的工作状态
当用户拨号接入ISP后,就建立了一条从用户个人电脑到ISP的物理连接,这时用户电脑向ISP发送一系列链路控制协议LCP分组。这些分组及其响应选择了一些需要的PPP参数,接着还要进行网络配置,网络控制协议NCP给新接入的用户分配一个临时IP地址,通信完毕后,NCP释放网络层连接收回IP地址,接着LCP释放数据链路层连接,最后释放物理层连接。
PPP链路的起始和终止状态永远都是链路静止状态,此时用户个人电脑和ISP的路由器之间不存在物理层连接。当用户电脑通过调制解调器呼叫路由器时,路由器能检测到调制解调器发出的载波信号,双方建立了物理层连接后,PPP就进入了链路建立状态,目的是为了建立链路层的LCP连接。
这时LCP开始协商配置选项,即发送LCP的配置请求帧,链路的另一端可发送以下几种响应的一种:
(1)配置确认帧 所有选项都接受
(2)配置否认帧 所有选项都理解但不接受
(3)配置拒绝帧 选项有的无法识别或不能接受,需要协商。
协商结束后双方建立LCP链路,进入鉴别状态。该状态下只允许传送LCP协议的分组、鉴别协议的分组和监测链路质量的分组。若使用口令鉴别协议PAP,则需要发起通信的一方发送身份标识符和口令。还可以使用更复杂的口令握手鉴别协议CHAP。若鉴别失败则转到链路终止状态,若鉴别成功,则进入网络层协议状态。
在网络层协议状态,PPP链路两端的网络控制协议NCP根据网络层的不同协议互相交互网络层特定的网络控制分组。当网络层配置完成后,链路就可进入链路打开状态,链路的两个PPP端点可以彼此向对方发送分组。两个PPP端点还可发送回送请求LCP分组和回送回答LCP分组以检查链路的状态。
数据传输结束后可由链路一端发出终止请求LCP分组请求终止链路连接,在收到对方发来的终止确认LCP分组后,转到链路终止状态。若链路出现故障,也会从链路打开转到链路终止状态。当调制解调器的载波停止后,回到链路静止状态。
从设备之间无链路开始,先建立物理链路,再建立链路控制协议LCP链路。经过鉴别后再建立网络控制协议NCP链路然后才能交换数据。由此可见PPP协议不是纯粹的数据链路层协议,还包含了物理层和网络层的内容。

3.3 使用广播信道的数据链路层

广播信道可以进行一对多的通信,局域网使用的就是广播信道。
局域网最主要的特点:网络为一个单位所有,且地理范围和站点数目有限。
局域网的主要优点:
(1)具有广播功能,从一个站点可以很方便地访问全网。
(2)便于系统的扩展和逐渐演变,各设备的位置可灵活调整。
(3)提高了系统的可靠性、可用性和生存性。
局域网可按网络拓扑分类:
(1)星形网。由于集线器的出现和双绞线大量用于局域网中,星形以太网以及多级星形结构的以太网获得了广泛应用。(2)环形网。(3)总线网,各站直接连在总线上。以传统以太网最为著名。
局域网可使用多种传输媒体,双绞线是主流,当数据率很高时需要使用光纤。
局域网工作的层次跨越了数据链路层和物理层,不仅与数据链路层有关。
共享信道解决众多用户合理方便共享通信媒体资源的两种方法:
(1)静态划分信道,如2.4节中的频分复用FDM、时分复用TDM、波分复用WDM和码分复用CDM等。用户只要分配了信道就不会和其他人冲突,但代价高不适合局域网。
(2)动态媒体介入控制,又称多点接入,特点是信道并非在用户通信时固定分配给用户,又分为两类:①随机接入,特点是所有用户可随机发送信息。如果恰好由两个或以上用户在同一时刻发送信息,在共享媒体上会发生碰撞(冲突)。②受控接入,特点是用户不能随机发送而必须服从控制。代表由分散控制的令牌环局域网和集中控制的多点线路探寻,或称为轮询。

以太网的两个标准
以太网用无源电缆作为总线传输数据帧,并以曾在历史上表示传播电磁波的以太命名。
DEC公司、英特尔公司和施乐公司礼盒提出了10 Mbit/s以太网规约的第一个版本DIX V1,1982年修改为第二版规约DIX Ethernet V2。
在此基础上,IEEE 802委员会(专门制定局域网和城域网标准的机构)于1983年制定了第一个IEEE的以太网标准IEEE 802.3,数据率约为10Mbit/s。由于DIX Ethernet V2和IEEE的802.3标准很小,因此很多人把802.3局域网称为以太网。
IEEE 802委员会未能形成统一的局域网标准,而是被迫制定了几个不同的局域网标准,如802.4令牌总线网、802.5令牌环网等。为使数据链路层更好适应多种局域网标准,IEEE 802委员会把局域网的数据链路层拆分为两个子层,逻辑链路控制LLC子层和媒体接入控制MAC子层。于介入到传输媒体有关的内容放在MAC子层,而LLC子层与传输媒体无关,不管采用何种传输媒体和MAC子层的局域网对LLC子层来说都是透明的。
随着互联网的发展,局域网只剩下DIX Ethernet V2而不是IEEE 802.3标准中的局域网,因此LLC的作用已经消失了,很多厂商的适配器仅有MAC协议而没有LLC协议。

适配器的作用
计算机与外界局域网的连接是通过通信适配器进行的。适配器是一块网络接口板,又称网络接口卡NIC简称网卡。适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的。因此适配器的一个重要功能即进行数据串行传输和并行传输的转换。由于网络和计算机总线上的数据率不同,还需要在适配器中装有对数据进行缓存的存储芯片。在主板插入适配器时,还必须安装管理该适配器的设备驱动程序至计算机的操作系统,该程序将告之计算机应当从存储器的什么位置把多长的数据块发送到局域网,或者在存储器的什么位置把局域网传来的数据块存储下来。适配器还要能够实现以太网协议。
适配器的功能包含了数据链路层和物理层两个层次的功能。
适配器在接受和发送帧时,不使用计算机的CPU。当适配器收到有差错的帧时,直接丢弃而不必通知计算机,当收到正确帧时,使用中断通知计算机,并交付协议栈中的网络层。当计算机要发送IP数据报时,由协议栈把IP数据报向下交给适配器,组装成帧后发到局域网。计算机的硬件地址就在适配器的ROM中,而计算机的软件地址(IP地址)则在计算机的存储器中。

CSMA/CD协议
最早的以太网是将许多计算机连接到一根总线上。总线的特点是:使用广播通信方式,当一台计算机发送数据时,总线上的所有计算机都能检测到这个数据。为了在总线上实现一对一的通信,可以使每一台计算机的适配器拥有一个与其他适配器都不同的地址,仅当数据帧的目的地址和适配器ROM中的硬件地址一样时,适配器才能接收这个数据帧。
为了通信的简便,以太网采用了以下两种措施:
(1)采用较为灵活的无连接工作方式,即不必先建立连接就可直接发送数据。适配器对发送的数据帧不进行编号,也不要求对方发回确认。因此以太网提供的服务是尽最大努力的交付,即不可靠的交付。对有差错帧是否需要重传由高层决定。例如TCP发现丢失数据后就把数据重新传递给以太网重传,但以太网并不知道这是重传帧,而是当作新数据帧。
总线上只要有一台计算机在发送数据,总线的传输资源就被占用,因此同一时间只允许一台计算机发送数据,否则会计算机之间会互相干扰。以太网采用的协调方法是使用CSMA/CD协议,意思是载波监听多点接入/碰撞检测。
(2)以太网发送的数据都使用曼彻斯特编码的信号。二进制基带数字信号的问题是出现一长串的连0或连1时接收端就无法从收到的比特流中提取同步位。曼彻斯特编码保证了每个码元的正中间出现一次电压转换,而接收端就利用这种转换方便地提取同步信号。缺点是所占的频带宽度增加了一倍。
CSMA/CD协议的要点:
(1)多点接入 说明这是总线型网络,许多计算机以多点接入的方式连接在总线上。协议的实质是载波监听和碰撞检测。
(2)载波监听 用电子技术检测总线上有没有其他计算机也在发送,不管发送前还是发送中,每个站都必须不停地检测信道。
(2)碰撞检测 边发送边监听,即适配器边发送数据边检测信道上的信号电压的变化情况,以判断自己在发送数据时其他站是否也在发送数据,也称冲突检测。
电磁波在1km电缆的传播时延约为5μs。在局域网中,常把总线上的单程端到端传播时延记为τ,站发送数据后最迟要经过两倍的总线端到端传播时延(2τ)或总线的端到端往返传播时延才能知道自己发送的数据和其他站的数据有没有发送碰撞。由于局域网上任意两站间传播时延有长有短,因此局域网必须按照最坏情况设计,即取总线两端的两个站之间的传播时延(这两个站之间距离最大)为端到端传播时延。
显然在使用CSMA/CD协议时一个站不可能同时进行发送和接受(必须边发送边监听信道),因此使用CSNA/CD协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工通信)。
每个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性,这一小段时间是不确定的,它取决于另一个发送数据的站到本站的距离。因此以太网不能保证某一时间之内一定能把自己的数据帧成功地发送出去,这一特点称为发送的不确定性。
以太网的端到端往返时间称为争用期,又称为碰撞窗口,因为一个站在发送完数据后,只有通过争用期的“考验”,即经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
以太网使用截断二进制指数退避算法来确定碰撞后重传的时机,这种算法让发生碰撞的站在停止发送数据后,不是等待信道空闲后就立即发送数据,而是推迟(退避)一个随机时间。协议规定了基本退避时间为争用期2τ,具体的争用期时间是51.2μs。对于10Mbit/s以太网,在争用期可发送512bit,即64B,也可以说争用期是512比特时间。
从离散的整数集合[0,1,…,2k-1]中随机取出一个数记为r,重传应退后的时间就是r倍的争用期。重传次数不超过10,k=重传次数,当超过10次时,k=10。当重传达16次仍未成功时,丢弃该帧,并向高层报告。
以太网规定了一个最短帧长64B,即521bit,如果要发送的数据非常少,必须加入一些填充字节。
以太网在发送数据时,如果在争用期(发送64B)没有发生碰撞,那么后续发送的数据就一定不会冲突。如果发生碰撞,一定是在发送之前的64B内,因此凡是长度小于64B的帧都是由于冲突而异常终止的无效帧,收到后应当立即丢弃。
强化碰撞,当发送数据的一战发现发生了碰撞时,除了立即停止发送数据外,还要再继续发送32bit或48bit的人为干扰信号,以便所有用户都知道现在已发生了碰撞。
以太网还规定了帧间最小间隔为9.6μs,相当于96比特时间,这样做是为了使刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。
CSMA/CD协议的要点:
(1)准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。但在发送前必须先检测信道。
(2)检测信道:若检测信道忙,应不停地检测,直到信道转为空闲。若检测信道空闲,并在96比特时间内信道保持空闲(保持了帧间最小间隔),就发送这个帧。
(3)在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:①发送成功:在争用期未检测到碰撞,发送成功后什么也不做返回(1)。②发送失败:在争用期内检测到碰撞,立即停止发送数据,按规定发送人为干扰信号。适配器执行指数退避算法,等待r倍512比特时间后回到步骤(2)。若重传16次仍不能成功,停止重传上报错误。
以太网每发送一帧,一定要把已发送的帧暂时保留一下,如果在争用期内检测到碰撞,那么还要推迟一段时间后再把这个暂时保留的帧重传一次。

传统以太网最初使用同轴电缆,最后发展为使用双绞线。这种以太网采用星形拓扑,在星形中心增加了可靠性很高的设备,叫集线器。双绞线以太网总是和集线器配合使用,由于集线器使用了大规模集成电路芯片,因此可靠性大大提高。1990年IEEE制定出星形以太网10BASE-T的标准802.3i。10代表10Mbit/s的数据率,BASE表示连接线上的信号是基带信号,T表示双绞线。10BASE-T以太网通信距离稍短,每个站到集线器的距离不超过100m。
使双绞线能够传输高速数据的主要措施是把双绞线的绞合度做的非常精确,可使特性阻抗均匀以减少失真,而且大幅度减少了电磁波辐射和无线电频率干扰。
集线器的特点如下:
(1)使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议(各站中的适配器执行CSMA/CD协议)。网络中的各站必须竞争对传输媒体的控制,并在同一时刻至多只允许一个站发送数据。
(2)一个集线器有许多接口(硬件端口),每个接口通过RJ-45插头用两对双绞线与一台计算机上的适配器相连。因此一个集线器很像一个多接口的转发器。
(3)集线器工作在物理层,它的每个接口仅仅简单地转发比特,收到1就转发1,收到0就转发0,不进行碰撞检测。若发生碰撞那么所有接口都收不到正确的帧。
(4)采用专门芯片进行自适应串音回波抵消,可使发出地较强信号不致对接收到的较弱信号产生干扰。
集线器本身非常可靠,堆叠式集线器由4-8个集线器堆叠起来使用。集线器一般都有少量的容错能力和网络管理功能。IEEE802.3还可使用光纤作为传输媒体,相应标准是10BASE-F系列,F代表光纤。它主要作用于集线器之间的远程连接。
以太网定义了参数a,它是以太网单程端到端时延τ与帧的发送时间T0之比,以太网的参数a值应尽可能小些,当数据率一定时,以太网的连线长度受到限制(否则τ太大),同时以太网的帧长不能太短(否则T0的值太小)。
极限信道利用率Smax=1/(1+a),当a远小于1时才能得到尽可能高的极限信道利用率。

以太网的MAC层
MAC层的硬件地址
局域网中,硬件地址又称为物理地址或MAC地址(因为这种地址用在MAC帧中)。IEE802标准为局域网规定了一种48位的全球地址,是局域网上的每一台计算机中固化在适配器的ROM中的地址。因此,
(1)更换了新的适配器后即使计算机的物理位置和接入的局域网没有任何改变,但这台计算机的局域网的地址改变了。
(2)即使改变了计算机的物理位置和接入的局域网,只要适配器不变,那么计算机在局域网中的地址就不变。
严格地讲,局域网的地址应当是每一个站的名字或标识符。如果连接在局域网上的主机或路由器有多个适配器,那么它就有多个地址。更准确地说,这种48位地址应当是某个接口的标识符。
MAC地址也叫硬件地址或物理地址,MAC地址实际上就是适配器地址或适配器标识符EUI-48。当这块适配器插入或嵌入某台计算机后,适配器的标识符EUI-48就成为这台计算机的MAC地址了。
IEEE规定地址字段的第一个字节位的最低位为I/G位,当其为0时,地址字段表示一个单个站地址,为1时表示组地址,用来进行多播。因此IEEE只分配地址段的前三个字节中的23位。IEEE把地址字段第一个字节的最低第二位规定为G/L位,0表示全球管理,1表示本地管理。
当路由器通过适配器连接到局域网时,适配器上的硬件地址就用来标志路由器的某个接口。路由器如果同时连接两个网络,那么它就需要两个适配器和两个硬件地址。
适配器有过滤功能。当适配器从网络收到每个MAC帧就先用硬件检测其目的地址,若是发往本站的帧则收下否则丢弃。发往本站的帧包括以下三种:
(1)单播帧(一对一) 即收到的帧与本站硬件地址相同
(2)广播帧(一对全体) 即发送给本局域网上所有站点的帧
(3)多播帧(一对多) 即发送给本局域网上一部分站点的帧
所有的适配器都应至少能识别前两种帧,即单播和广播地址。
以太网适配器还可设置为一种特殊的工作方式,即混杂方式。该工作方式是黑客常利用来非法获取网上用户口令的方法,适配器只要“听到”有帧在以太网传输就悄悄接收下来而不管这些帧是发往哪个站。但混杂方式有时非常有用,例如网络维护人员用以监视和分析以太网的流量。有一种叫做嗅探器的网络工具就使用了设置为混杂方式的网络适配器。

MAC帧的格式
常用的以太网MAC帧格式有两种标准,一种是以太网V2标准,一种是IEEE的802.3标准。这里讨论用的最多的以太网V2的MAC帧格式。
以太网V2的MAC帧较为简单,由五个字段组成。前两个字段分别为6B长的目的地址和源地址字段。第三个字段是2B的类型字段,用来标志上一层使用的是什么协议。第四个字段是数据字段,长度在45-1500B之间,46B是由最小长度64B减去18B的首部和尾部得出的数据字段的最小长度。最后一个字段是4B的帧检验序列FCS(使用CRC检验)。
MAC子层通过曼彻斯特编码的特点确定MAC帧中数据字段的结束位置。
为了接收端迅速实现位同步,从MAC子层向下传到物理层时还要在帧的前面插入8字节(由硬件生成),它由两个字段构成。第一个字段时7个字节的前同步码(1和0交替码),它的作用是使接收端的适配器在接收MAC帧时能够迅速调制其时钟频率,使它和发送端的时钟同步。第二个字段是帧开始定界符,定义为10101011,它的前6位和前同步码一样,最后的连续两个1就是告诉接收端适配器MAC帧的信息马上要来了请注意接收。MAC帧的FCS字段检验范围不包括前同步码和帧开始定界符,在使用SONET/SDH进行同步传输时不需要使用前同步码,因为同步传输时收发双方的位同步总是一直保持的。
IEEE802.3标准规定下列情况之一的即为无效MAC帧:
(1)帧长度不是整数个字节
(2)用收到的帧检验序列FCS查出差错
(3)收到的帧MAC客户数据字段长度不在46-1500B之间。考虑到帧的首部和尾部长度共18B,可得出有效的MAC帧长度在64-1518B之间。
对于检测出的无效MAC帧就简单丢弃,以太网不负责重传丢弃的帧。
IEEE802.3规定的MAC帧格式与上述以太网V2MAC帧格式的区别:
(1)IEEE802.3规定的MAC帧第三个字段是“长度/类型”,当这个字段值大于0x0600时就表示类型,和以太网V2的MAC帧完全一样,小于时才表示长度。
(2)当“长度/类型”字段值小于0x6000时,数据字段必须装入上面的逻辑链路控制子层的LLC帧。由于现在广泛使用的局域网只有以太网,因此LLC帧已失去意义。现在市场上流行的都是以太网V2标准的MAC帧,但也称为IEEE802.3标准的MAC帧。

3.4 扩展的以太网

扩展的以太网在网络层看来依然是一个网络。
在物理层扩展以太网:
以太网中主机距离不能太远,否则主机发出的信号经过铜线传输会衰减到CSMA/CD协议不能正常工作。
扩展主机和集线器之间距离的简单方法是使用光纤(一对)和一对光纤调制解调器。由于光纤的时延很小而且带宽很宽,该方法可以很容易地使主机和几公里以外的集线器相连接。若使用多个集线器就可连接覆盖成更大范围的多级星形结构的以太网。
优点:更大范围的通信,扩大以太网的覆盖范围。
缺点:独立的碰撞域(冲突域)再连接后会成为一个冲突域,如果使用不同的以太网技术(如数据率不同),那么就不能用集线器互连。

在数据链路层扩展以太网:
最初使用网桥,网桥对收到的帧根据其MAC帧的目的地址进行转发和过滤。
1990年出现交换式集线器淘汰了网桥,又称以太网交换机或第二层交换机,强调其工作在数据链路层。
以太网交换机的特点:
实质是一个多接口的网桥,工作方式为全双工方式。以太网交换机具有并行性,能同时连接多对接口,使多对主机同时通信,相互通信的主机都是独占传输媒体,无碰撞地传输数据。
以太网交换机地接口有存储器,可缓存接收地帧。以太网交换机是一种即插即用设备,内部的帧交换表(地址表)是通过自学习算法自动逐渐建立的。
除了存储转发的方式,有的以太网交换机采用直通的交换方式对收到的帧转发。缺点是可能转发无效帧。
以太网交换机的自学习功能使以太网能够即插即用,不必人工配置。
生成树协议STD不改变网络的实际拓扑,但在逻辑上切断了某些链路,使得一个主机到其他所有主机的路径是无环路的树状结构,消除了无限制的兜圈子问题。
从总线以太网到星形以太网,以太网交换机不使用共享总线没有碰撞问题,不适用CSMA/CD协议,而以全双工方式工作。但因它的帧结构未改变,仍然采用以太网的帧结构,因此还叫作以太网。

利用以太网交换机可以方便实现虚拟局域网VLAN。
VLAN是由一些局域网网段构成的与地理位置无关的逻辑组,而这些网段居于某些共同的需求。虚拟局域网实际只是局域网给用户提供的一种服务,而不是新型局域网。
虚拟局域网限制了接收广播信息的计算机数,使得网络不会因为传播过多的广播信息(即广播风暴)引起性能恶化。
虚拟局域网协议在以太网帧格式中插入了一个4字节的标识符,称为VLAN标记,用来指明发送该帧的计算机属于哪个虚拟局域网。插入VLAN标记的帧称为802.1Q帧。
VLAN标记长度为4B,在以太网MAC帧的源地址字段之后,类型字段之前。前2个字节固定,称为标记类型。后两个字节中,前3位是用户优先级,第4位是规范格式指示符CFI,最后12位是VLAN标识符VID,唯一标志了帧的所属VLAN。
由于VLAN的以太网帧首部增加了4个字节所以以太网的最大帧长从1518B变为1522B。

3.5 高速以太网

100BASE-T以太网
在双绞线上传送100Mbit/s基带信号的星形拓扑以太网,仍使用CSMA/CD协议,又称快速以太网。
10/100Mbit/s以太网都使用无屏蔽双绞线布线。

吉比特以太网
特点:
(1)允许在1Gbit/s下以全双工和半双工两种方式工作
(2)使用IEEE802.2协议规定的帧格式
(3)半双工方式下使用CSMA/CD协议,全双工方式下不使用
(4)与10BASE-T和100BASE-T技术向后兼容
吉比特以太网物理层使用两种成熟的技术:一种来自现有以太网,一种来自ANSI制定的光纤通道FC。

10吉比特以太网(10GE)和更快的以太网
10GE的以太网帧格式和上述以太网相同,并保留802.3标准规定的以太网最小帧长和最大帧长。只工作在全双工方式,不存在争用问题,因此不使用CSMA/CD协议。
以太网的工作范围已从局域网扩大到城域网和广域网,从而实现了端到端的传输,这种工作方式的好处是:
(1)以太网是一种经过实践证明的成熟技术。
(2)以太网的互操作性很好。
(3)在广域网中使用以太网时,价格低于同步光纤网SONET和异步传递方式ATM。还能适应多种传输媒体,不必重新布线。
(4)端到端的以太网连接使帧的格式全都是以太网的格式,不需要再进行帧的格式转换,简化操作管理。但以太网和其他网络仍需要相应接口才能互连。

使用以太网进行宽带接入
以太网接入的一个重要特点是它可以提供双向的宽带通信,并可以根据用户对带宽的需求灵活地升级带宽。

3.6 本章的重要概念

链路是从一个结点到另一个相邻结点的一段物理线路,数据链路则是在链路的基础上增加了一些必要的操作。
数据链路层使用的信道主要有点对点信道和广播信道两种。
数据链路层传送的协议数据单元是帧,三个基本问题是:封装成帧,透明传输和差错检验。
循环冗余CRC是一种检错方法,而帧检验序列FCS是添加在数据后面的冗余码。
点对点协议PPP是数据链路层使用最多的一种协议,它的特点是:简单,只检测差错而不纠正;不使用序号也不使用流量控制;可同时支持多种网络层协议。
PPPoE是为宽带上网的主机使用的链路层协议。
局域网的优点:具有广播功能,从一个站点可很方便的访问全网;便于系统的扩展和逐渐演变;提高了系统的可靠性、可用性和生存性。
共享通信媒体资源的方法有二:一是静态划分信道(各种复用技术),而是动态媒体接入控制,又称为多点接入(随机接入或受控接入)。
IEEE802委员会曾把局域网的数据链路层拆成两个子层,逻辑链路子层(LLC)子层(和传输媒体无关)和媒体接入控制子层(MAC)子层(与传输媒体有关),现在LLC子层已淘汰。
计算机与外界局域网的通信要通过通信适配器(网络适配器),又称为网络接口卡或网卡,计算机的硬件地址就在适配器的ROM中。
以太网采用无连接的工作方式,对发送的数据帧不进行编号,也不要求对方发回确认。目的站收到有差错帧就丢弃,其他什么也不做。
以太网采用的协议是具有冲突检测的载波监听多点接入CSMA/CD。协议的要点是:发送前先监听,边发送边监听,一旦发现总线上出了故障,就立即停止发送。然后按照退避算法等待一段随机时间后再次发送。因此每一个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。以太网各站点都平等地争用以太网信道。
传统的总线以太网基本都是使用集线器的双绞线以太网,这种以太网在物理上是星形网,逻辑上则是总线网。集线器工作在物理层,它的每个接口仅仅简单地转发比特,不进行碰撞检测。
以太网地硬件地址,即MAC地址实际上就是适配器地址或适配器标识符,与主机所在地地点无关。源地址和目的地址都是48位长。
以太网地适配器有过滤功能,它只接受单播帧,广播帧或多播帧。
使用集线器可以在物理层扩展以太网(扩展后的以太网仍然是一个网络)。
交换式集线器常称为以太网交换机或第二层交换机(工作在数据链路层)。它就是一个多接口的网桥,而每个接口都直接与某台单主机或另一个集线器相连,且工作在全双工方式。以太网交换机能同时连通许多对接口,使每一对相互连通的主机都能像独占通信媒体那也无碰撞地传输数据。
高速以太网有100Mbit/s地快速以太网,吉比特以太网和10Gbit/s地10吉比特以太网。最近还发展到100吉比特以太网。在宽带接入技术中也常使用高速以太网进行接入。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
西安陈萍萍 发布了41 篇原创文章 · 获赞 118 · 访问量 1万+ 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: