5.数据链路层协议
一、链路层及其基本概念
1. 链路层工作
保证数据传输的有效、可靠
差错检测&差错控制
流量控制&拥塞控制
将有差错的物理线路改进成逻辑上无差错的数据链路,向网络层提供高质量的服务。
2. 物理链路和数据链路
物理链路:一条p2p的物理线路(中间没有任何其他交换结点)也可称为“链路”
数据链路:由许多物理链路串接而成
3. 物理层、数据链路层、网络层
物理层:为数据传输提供所需要的物理链路
数据链路层:将数据从物理链路的一个节点传送到下一个节点
- 注意,不同链路(可能)采用不同的链路层协议,提供的服务也不同
网络层:将数据从数据链路层的源主机传送到目的主机
4. 数据链路层协议的数据单元---帧(Frame)
5. 媒体访问控制(Media Access Control/MAC)和逻辑链路控制(Logical Link Control)
数据链路层:将数据报通过一条通信链路从一个节点“移动”到相邻的节点
LLC:负责帧的差错控制和流量控制
MAC:定义帧在链路上传输的规则
6. 传输差错的产生
噪声:
主要出现在通信信道上
热(白噪声):引起的差错是随机差错
冲击噪声:突发状
7. 差错控制的方法 - 信道编码
信道编码的过程:
信息码元序列k(data bit)+监督码元r(redundancy bit)->编码码组n(code word)
8. 差错检测技术
奇偶校验:最基本的方法
校验和:常用于传输层(TCP、UDP)
循环冗余检测:常用于链路层
校验位的计算:利用多项式编码的思想,把要发送的比特串看作系数是0或1的一个多项式,如1010001 转化成f(x)= x6+x4+1
发送方和接收方共同选定一个生成多项式 G,如10111, G(x)=x4+x2+x+1
k:生成多项式G的最高幂值,如G=10111,则k=4
将f(x)·xk模2除生成多项式G(x),得到R(x)即为校验位(其实是往二进制的f(x)后面补k位,然后跟G(x)作异或运算)
可以参考以下视频:
9. 主要的差错纠正技术
海明码
利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性
记得以前算法课讲过,最少要多少只老鼠可以检测出n瓶水中唯一有毒的一瓶。
答案是log₂(n) + 1
若用r个监督关系式产生r个校正因子,区分无错、码字中n个不同位置的位错,则要求2r ≥ k + r + 1
10. 流量控制协议
单帧停止等待协议
发送方每次发送一帧后,需要等待确认帧返回,再发送下一帧
发送方收到否认帧(数据帧错),重新发送出错的数据帧
虽然协议简单容易实现,但是帧传输效率低下
连续发生ARQ(Automatic Repeat Request)协议
主要有GBN和SR两种机制,具体细节已在此处讲过。
发送方连续向接收方发送数据帧,接收方对收到的数据帧进行校验后,向发送方返回相应的应答帧
发送方维持着一个一定大小的发送窗口,位于发送窗口内的所有分组都可连续发送出去,而中途不需要等待对方的确认
滑动窗口协议
配合连续发送ARQ使用
发送方连续发送帧数量受接收方控制
发送帧帧需要编号
由于接收方缓冲区空间有限,编号循环使用
链路层滑动窗口与传输层TCP滑动窗口原理相同
一个是针对于帧的传送
另一个是针对字节数据的传送
二、局域网技术&数据链路层协议
局域网参考模型
1980年2月,IEEE成立局域网标准委员会(简称IEEE802委员会)
研究重点:解决局部范围内计算机组网问题
注意:不同局域网必须采用相同LLC协议;不同局域网可以采用不同MAC协议
1. 以太网Ethernet
数据传输特点
载波侦听多路访问/冲突检测(CSMA/CD)技术
载波侦听:监听总线占用
多路访问:平等访问主线
冲突检测:因为冲突不可避免
以太网冲突检测方式
以太网帧结构
前导符/帧前定界符:由10101010比特流组成
目的地址、源地址:MAC地址(6字节)
类型:网络层协议类型(0x800表示IP协议;0x8137表示IPX协议
数据:46B~1500B(帧头长度为18B)
帧校验:32位CRC校验(目的地址、源地址、类型、帧数据)
网卡物理地址存储器中存储单元对应实际地址称:物理地址
共64位,由16进制表示
以太网卡结构
2. 现代以太网技术
现代以太网技术:交换式局域网
交换技术应用于高性能局域网技术
传统共享介质局域网(所有结点共享一条传输介质)不可避免发生冲突(结点数量不断增加,网络负荷加重,网络效率急剧下降)
克服网络规模与网络性能矛盾,将共享介质改为交换方式,即二层交换技术
二层交换技术不关心三层协议
不会检查网络层,IPV4、IPV6等三层协议分组均可以穿越二层交换机
网桥、交换机
3. 网桥基本概念
网桥的基本特征:
互联两个不同数据链路层协议(不同传输介质、不同传输率)LLC不同
以接收、存储、地址过滤与转发方式实现网络之间通信
需要互联网络在数据链路层以上采用相同协议
分隔两个网络之间的广播通信量,改善互联网络性能与安全性
网桥层次结构:
透明的网桥
通过透明网桥,将多个局域网连接起来,硬件和软件不需要做任何变化
透明网桥工作在混杂模式,接受所有的帧
当一个帧到达网桥时,它必须做出丢弃还是转发的决策
决策通过在网桥内部的地址表中,查找目的MAC地址而做出的
网桥的转发原理:
如果查到目的端口和源端口是相同,就会丢弃这一帧
如果目的端口和源端口不同,就会转发这一帧
如果这个目的地址没有在表里面查到,就会广播这一帧
4. 交换机结构和工作原理
泛洪广播
- 目的地址未知,或广播地址,除源端口外在其他所有的端口进行转发
转发
- 对于已经学习到的目的地址,直接转发到相应窗口
过滤
- 目的地址和源地址所处端口号相同则丢弃
逆向学习
- 读取帧的源地址和达到端口号进行学习,从而补充转发更新表
交换机的三种交换方式:
直接交换
交换机只接收数据帧头部,检测目的地址,立即转发(无论帧是否出错)
帧出错检测由结点主机完成(延迟小,缺乏差错检测)
存储转发交换
交换机完整地接收数据帧,并检测差错。若帧正确,则根据帧目的地址确定输出端口,进行转发出
具有帧差错检测能力,但延迟大
改进的直接交换
检查帧的长度是否够64个字节,如果小于64字节则丢弃(碎片帧);如果大于64字节,则转发
不提供差错检测,但是出错的机会比直接转发小,数据处理速度比存储转发方式快
5. 虚拟局域网技术VLAN
一种网络服务(不是组网技术)
交换式局域网技术是实现VLAN的基础(用户和局域网资源的逻辑组合)。虚拟局域网内的主机可能物理上并不处于同一个交换机