3.3.1 局域网的数据链路层
局域网最主要的特点:
- 网络为一个单位所拥有;
- 地理范围和站点数目均有限。
局域网具有如下主要优点:
- 具有广播功能,从一个站点可很方便地访问全网。
- 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
- 提高了系统的可靠性、可用性和生存性。
1. 局域网拓扑结构
常用传输媒体:双绞线、光纤。
2. 共享信道带来的问题
3. 媒体共享技术
- 静态划分信道:
- 频分复用
- 时分复用
- 波分复用
- 码分复用
- 动态媒体接入控制(多点接入):
- 随机接入:所有的用户可随机地发送信息。
- 受控接入:用户必须服从一定的控制。如轮询(polling)。
4. 以太网的两个标准
- DIXEthernetV2:世界上第一个局域网产品(以太网)的规约。
- IEEE8023:第一个IEEE的以太网标准。
这两种标准的硬件实现可以在同一个局域网上互操作。
这两个标准只有很小的差别,因此很多人也常把802.3局域网简称为“以太网"
5. 局域网数据链路层分为2个子层
6. 适配器的作用
重要功能:
- 进行串行/并行转换。
- 对数据进行缓存。
- 在计算机的操作系统安装设备驱动程序。
- 实现以太网协议。
适配器本来是在主机箱内插入的一块网络接口板(或者是在笔记本电脑中插入一块PCMCIA卡——个人计算机存储器卡接口适配器)。这种接口板又称为网络接口卡NIC或简称为“网卡”。由于现在计算机主板上都己经嵌入了这种适配器,不再使用单独的网卡了,因此本书使用适配器这个更准确的术语。
在这种通信适配器上面装有处理器和存储器(包括RAM和ROM)。 适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的I/0总线以并行传输方式进行的。因此,适配器的一个重要功能就是要进行数据串行传输和并行传输的转换。
由于网络上的数据率和计算机总线上的数据率并不相同,因此在适配器中必须装有对数据进行缓存的存储芯片。在主板上插入适配器时,还必须把管理该适配器的设备驱动程序安装在计算机的操作系统中。这个驱动程序以后就会告诉适配器,应当从存储器的什么位置上把多长的数据块发送到局域网,或者应当在存储器的什么位置上把局域网传送过来的数据块存储下来。适配器还要能够实现以太网协议。
请注意,虽然我们把适配器的内容放在数据链路层中讲授,但适配器所实现的功能却包含了数据链路层及物理层这两个层次的功能。现在的芯片的集成度都很高,以致很难把一个适配器的功能严格按照层次的关系精确划分开。 适配器在接收和发送各种帧时,不使用计算机的CPU。这时计算机中的CPU可以处理其他任务。当适配器收到有差错的帧时,就把这个帧直接丢弃而不必通知计算机。当适配器收到正确的帧时,它就使用中断来通知该计算机,并交付协议栈中的网络层。当计算机要发送IP数据报时,就由协议栈把IP数据报向下交给适配器,组装成帧后发送到局域网。
3.3.2 CSMA/CD协议
最早的以太网:将许多计算机都连接到一根总线上。
总线特点:易于实现广播通信,简单,可靠。
为了实现一对一通信,将接收站的硬件地址写入帧首部中的目的地址字段中。仅当数据帧中的目的地址与适配器硬件地址一致时,才能接受这个数据帧。
总线缺点:多个站点同时发送时,会产生发送碰撞或冲突,导致发送失败。
1. 以太网采取的两种重要措施
-
采用较为灵活的无连接的工作方式。
- 不必先建立连接就可以直接发送数据
- 对发送的数据帧不进行编号,也不要求对方发回确认。
-
发送的数据都使用曼彻斯特(Manchester)编码。
曼彻斯特编码的缺点是:所占的频带宽度比原始的基带信号增加了一倍。
2. CSMA/CD协议的要点
- 使用CSMA/CD协议的以太网只能进行双向交替通信(半双工通信,通信的双方都可以发送消息,但双方不能同时发送,当然也不能同时接收),即网络中的各站必须竞争对传输媒体的控制,并且在同一时刻至多只允许一个站发送数据。
- CSMA/CD:载波监听多点接入/碰撞检测。
- 多点接入:说明这是总线型网络。许多计算机以多点接入的方式连接在一根总线上。
- 载波监听:即“边发送边监听"。不管在想要发送数据之前,还是在发送数据之中,每个站都必须不停地检测信道。
- 碰撞检测:适配器边发送数据,边检测信道上的信号电压的变化情况。电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞(或冲突)。
检测到碰撞后:
- 适配器立即停止发送
- 等待一段随机时间后再次发送
3. CSMA/CD协议工作流程
为什么要进行碰撞检测?
因为信号传播时延对载波监听产生了影响。
4. 争用期
- 以太网的端到端往返时延2τ称为争用期,或碰撞窗口。
- 具体的争用期时间=51.2μs。
- 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
5. 碰撞后重传的时机
-
采用截断二进制指数退避确定。
-
发生碰撞的站停止发送数据后,要退避一个随机时间后再发送数据。
-
基本退避时间=2τ
-
从整数集合[0,1,…,(2k-1)]中随机地取出一个数,记为r。
重传所需的时延=r * 基本退避时间。
-
上面的参数 k=Min[重传次数,10],当重传次数不超过10时,参数k等于重传次数;但当重传次数超过10时,k就不再增大而一直等于10.
-
当重传达16次仍不能成功时(这表明同时打算发送数据的站太多,以致连续冲突)则丢弃该帧,并向高层报告。
-
例如:
第1次冲突重传时:
k=1,r为{0,1}集合中的任何一个数。
第2次冲突重传时:
k=2,r为{0,1,2,3}集合中的任何一个数。
第3次冲突重传时:
k=3,r为{0,1,2,3,4,5,6,7}集合中的任何一个数。
若连续多次发生冲突,表明可能有较多的站参与争用信道。 上述退避算法可使重传需要推迟的平均时间随重传次数而增大(称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
6. 10Mbit/s以太网争用期的长度
- 争用期的长度=51.2μs。
- 对于10Mbit/s以太网,在争用期内可发送512bit,即64字节。
这意味着:
- 以太网在发送数据时,若前64字节没有发生冲突,则后续的数据就不会发生冲突。
- 以太网规定了最短有效帧长为64字节。凡长度小于64字节的帧都是由于冲突而异常中止的无效帧,应当立即将其丢弃。
- 以太网最大端到端单程时延必须小于争用期的一半(即25.6μs),相当于以太网的最大端到端长度约为5km。
7. 强化碰撞:人为干扰信号
信号在以太网上传播1km大约需要5μs。以太网上最大的端到端时延必须小于争用期的一般(即25.6μs),这相当于以太网的最大端到端长度约为5km。实际上的以太网覆盖范围远远没有这么大。
例如下述的强化碰撞,当引入人为干扰信号后,所有用户发、得知发生碰撞的时间会减短很少,因为对于10Mbit/s以太网,发送32(或48)比特只需要3.2(4.8)μs。
而以太网的争用期之所以确定为51.2μs,不仅考虑到以太网端到端时延,而且还包括其他许多因素,如存在的转发器所增加的时延,人为干扰信号的持续时间等。
- 发送站检测到冲突后,立即停止发送数据帧,接着就发送32或48比特的人为干扰信号,以便让所有用户都知道现在已经发生了碰撞。
- 以太网还规定了帧间最小间隔为9.6μs,这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接受下一帧的准备。
8. CSMA/CD协议的要点
3.3.3 使用集线器的星形拓扑
- 传统以太网传输媒体:粗同轴电缆→细同轴电缆→双绞线。
- 采用双绞线的以太网采用星形拓扑。
- 在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub)。
1. 传统以太网使用同轴电缆,采用总线形拓扑结构
2. 采用双绞线的以太网星形拓扑
3. 星形以太网10BASE-T
4. 集线器的一些特点
- 使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。
- 使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是CSMA/CD协议(更具体些说,是各站中的适配器执行CSMA/CD协议),并共享逻辑上的总线。
- 很像一个多接口的转发器,工作在物理层,它的每个端口仅仅简单地转发比特——收到1就转发1,收到0就转发0,不进行碰撞检测。若两个端口同时有信号输入(即发生碰撞),那么所有的端口都将收不到正确的帧。
- 采用了专门芯片,进行自适应串音回波抵消,减少了近端串音。这样就可使端口转发出去的较强信号不致对该端口接收到的较弱信号产生干扰。
具有三个接口的集线器:
3.3.4 以太网的信道利用率
- 多个站在以太网上同时工作就可能会发生碰撞。
- 当发生碰撞时,信道资源实际上是被浪费了。因此,当扣除碰撞所造成的信道损失后,以太网总的信道利用率井不能达到100%。
- 假设:单程端到端传播时延=τ,则争用期长度=2τ。检测到碰撞后不发送干扰信号。
- 设:帧长=L(bit),数据发送速率=C(bit/s),则帧的发送时间 T0=L/C(s)。
比帧的发送时间要多一个单程端到端时延τ,是因为当一个站发送完最后一个比特时这个比特还要在以太网上传播。
参数a与利用率:
-
要提高以太网的信道利用率,就必须减小τ与T0之比。
-
在以太网中定义了参数 a=以太网单程端到端时延τ与帧的发送时间之比:
a→0,表示一发生碰撞就立即可以检测出来,并立即停止发送,因而信道利用率很高。
a越大,表明争用期所占的比例增大,每发生一次碰撞就浪费许多信道资源,使得信道利用率明显降低。
对以太网参数“的要求:
- 为提高利用率,以太网的参数a的值应当尽可能小些。
- 数据率一定时,以太网的连线的长度受到限制,否则τ的数值会太大。
- 以太网的帧长不能太短,否则T0的值会太小,使a值太大。
信道利用率的最大值Smax:
- 只有当参数a远小于1才能得到尽可能高的极限信道利用率。
- 据统计,当以太网的利用率达到30%时就已经处于重载的情况。
3.3.5 以太网的MAC层
1. MAC层的硬件地址
- 硬件地址又称为物理地址,或MAC地址。
- IEEE802标准为局域网规定了一种48位的全球地址(简称为地址) 是指局域网上的每一台计算机中固化在适配器的ROM中的地址。
注意:如果连接在局域网上的主机或路由器安装有多个适配器,这样的主机或路由器就有多个“地址"。更准确些说,这种48位“地址"应当是某个接口的标识符。
2. 48位的MAC地址
- IEEE注册管理机构RA负责向厂家分配前3个字节(即高24位),称为组织唯一标识符OUI。厂家自行指派后3个字节(即低24位),称为扩展标识符 。
- 必须保证生产出的适配器没有重复地址。
- 地址被固化在适配器的ROM中。
3. 单站地址,组地址,广播地址
-
IEEE规定地址字段的第1字节的最低位为I/G位。
注意:在IEEE 802.3记法中,每一字节的最低位写在最左边,例如,十进制位11的二进制表示为1011,最高位写在最左边,但若使用IEEE 802.3标准,就应该记为1101。
-
单站地址:I/G位=0。
-
组地址:I/G位=1。组地址用来进行多播。
-
广播地址:所有48位都为1(全1)。只能作为目的地址使用。
4. 全球管理与本地管理
- IEEE把地址字段第1字节的最低第2位规定为G/L位。
- 全球管理:G/L位=0。厂商向IEEE购买的OUI都属于全球管理。
- 本地管理:G/L位=1。这时用户可任意分配网络上的地址。
5. 适配器具有过滤功能
-
每收到一个MAC帧,先用硬件检帧中的MAC地址。
-
如果是发往本站的帧则收下,然后再进行其他的处理。
-
否则就将此帧丢弃,不再进行其他的处理。
“发往本站的帧"包括以下3种帧:
- 单播(unicast)帧(一对一)
- 广播(broadcast)帧(一对全体)
- 多播(multicast)帧(一对多)
以混杂方式工作的以太网适配器只要 "听到"有帧在以太网上传输就都接收下来。
6. MAC帧的格式
- 常用的以太网MAC帧格式有2种标准:
- DIXEthernetV2标准
- IEEE的802.3标准
- 最常用的MAC帧是以太网V2的格式。
7. 以太网V2的MAC帧格式
-
目的地址字段6字节
-
源地址字段6字节
-
类型字段2字节
类型字段用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。
-
数据字段46~1500字节
数据字段的正式名称是MAC客户数据字段。
最小长度64字节-18字节的首部和尾部=数据字段的最小长度(46字节)
-
FCS字段5字节
当数据字段的长度小于46字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的MAC帧长不小于64字节。
-
为了达到比特同步,在传输媒体上实际传送的要比MAC帧还多8个字节。
由硬件在帧的前面插入8字节。第一个字段共7个字节,是前同步码,用来迅速实现MAC帧的比特同步。第二个字段1个字节是帧开始界定符,表示后面的信息就是MAC帧。
8. 无效的MAC帧
-
数据字段的长度与长度字段的值不一致;
当MAC帧的第三个字段的值小于0x0600(相当于十进制的1536)时,表示长度,大于0x0600则表示类型。
-
帧的长度不是整数个字节;
-
用收到的帧检验序列FCS查出有差错;
-
数据字段的长度不在46~1500字节之间。
-
有效的MAC帧长度为64~1518字节之间。
对于检查出的无效MAC帧就简单地丢弃,以太网不负责重传丢弃的帧。
9. IEEE 802.3 MAC与以太网 V2 MAC帧格式的区别
-
当"长度/类型"字段值大于0x0600时,表示“类型 ,此时IEEE 802.3 MAC与以太网 V2 MAC帧格式完全一样;小于0x0600时,表示“长度“。
-
当"长度/类型"字段值小于0x0600时,数据字段必须装入逻辑链路控制LLC子层的LLC帧。
-
在802.3标准的文档中,MAC帧格式包括了8字节的前同步码和帧开始定界符。
现在市场上流行的都是以太网V2的MAC帧,但大家也常常把它称为IEEE8023标准的MAC帧。
参考资料:《计算机网络(第8版)》—— 谢希仁。