第一章 以太网帧格式 1.1 Ethernet 地址 为了标识以太网上的每台主机,需要给每台主机上的网络适配器(网络接口卡)分配一个唯一的通信地址,即Ethernet 地址或称为网卡的物理地址、MAC 地址。 IEEE 负责为网络适配器制造厂商分配Ethernet 地址块,各厂商为自己生产的每块网络适配器分配一个唯一的Ethernet 地址。因为在每块网络适配器出厂时,其 Ethernet 地址就已被烧录到网络适配器中。所以,有时我们也将此地址称为烧录地址(Bu rned-In-Address,BIA)。 Ethernet 地址长度为48 比特,共 6 个字节,如图 1 所示。其中,前 3 字节为IEEE 分配给厂商的厂商代码,后 3 字节为网络适配器编号。 图 1 Ethernet 地址 1.2 CSMA/CD 在 ISO 的OSI 参考模型中,数据链路层的功能相对简单。它只负责将数据从一个节点可靠地传输到相邻节点。但在局域网中,多个节点共享传输介质,必须有某种机制来决定下一个时刻,哪个设备占用传输介质传送数据。因此,局域网的数据链路层要有介质访问控制的功能。为此,一般将数据链路层又划分成两个子层: ●逻辑链路控制 LLC(Logic Line Control)子层 ●介质访问控制 MAC(Media Access Control)子层 图 2 LLC 和 MAC 子层 如图 2 所示。其中,LLC 子层负责向其上层提供服务;MAC 子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC 子层的存在屏蔽了不同物理链路种类的差异性。 在 MAC 子层的诸多功能中,非常重要的一项功能是仲裁介质的使用权,即规定站点何时可以使用通信介质。 实际上,局域网技术中是采用具有冲突检测的载波侦听多路访问(Carrier Sense Multiple Access / Collision Detection,CSMA/CD)这种介质访问方法的。 在这种介质访问方法中规定:在发送数据之前,一个节点必须首先侦听网线上的载波,如果在 9.6 微秒的时间之内没有检测到载波(说明通信介质空闲),节点才可以发送一帧数据。 如果两个节点同时检测到介质空闲并同时发送出一帧数据,则会导致数据帧的冲突,双方的数据帧均被破坏。一方面,检测到冲突的节点会发送"冲突增强"信号(32 比特的"1")通知介质上的每个节点发生了冲突。另一方面,发生冲突的节点在再次发送自己的数据帧之前会各自等待一段随机的时间。 随着以太网上节点数量的增加,冲突的数量也随之增加,而整个网段的有效带宽将随之减少。...