数据链路层
- 数据链路层的结构
- 逻辑链路控制层(LLC)
- 媒体接入控制层(MAC)
- MAC帧格式
- MAC地址
- 载波监听多路访问/冲突检测( CSMA/CD)
- IEEE 802系列协议
- IEEE 802.1系列
- IEEE 802.1d:生成树网球(STP)
- IEEE 802.1q:虚拟局域网(VLAN)
- IEEE 802.3系列
- IEEE 802.11
- IEEE 802.15
- IEEE 802.16
- IEEE 802其他协议
- 检错与纠错
- 奇偶校验
- 海明码
- CRC编码
数据链路层将原始的传输线路变成一条 逻辑的传输线路,实现实体间二进制的正确传输,为网络层提供可靠的数据信息。数据单位是 帧,可以进行 流量控制。主要功能有: 链路的建立、拆除、分离;帧定界和帧同步;顺序控制;差错检测、恢复;链路标识、流量控制。
数据链路是数据的通道,是物理链路加上必要的 通信协议组成的逻辑链路。
数据链路层的结构
数据链路层分为两个子层:1.逻辑链路控制层(LLC);2.媒体接入控制层(MAC)
逻辑链路控制层(LLC)
LLC层与硬件无关,实现流量控制等功能。LLC只在IEEE 802.3格式的时候才会用到,现在很少使用了。
媒体接入控制层(MAC)
MAC层与硬件相关,提供硬件和LLC层的接口。主要功能包括数据帧的封装/卸装、帧的寻址和识别、帧的接收和发送、链路的管理、帧的差错控制等。
MAC层的主要访问方式有三种:CSMA/CD、令牌环和令牌总线。
MAC帧格式
以太网中,MAC帧格式如下,最大1518(1500+6+6+2+4)字节、最小64(46+6+6+2+4)字节(从目的地址到校验和的长度)
前导字段 | 帧起始符 | 目的地址 | 源地址 | 类型 | 数据 | 填充 | 校验和 |
---|---|---|---|---|---|---|---|
7字节 | 1字节 | 6字节 | 6字节 | 2字节 | 0~1500字节 | 0~46字节 | 4字节 |
- 前导字段:长度7个字节
- 帧起始符字段:固定格式为10101011,长度1个字节(1个字节=8位)
- 目的地址、源地址字段:6字节,48位
- 类型字段:标识上一层使用什么协议,也可以表示数据字段长度
*类型字段占2个字节(16位),可表示的数为0 ~ 65535。MAC帧最大长度位1500,所以用0 ~ 1500表示长度;1536 ~ 65535用于描述类型值。 - 数据字段:上一层(网络层)的协议数据,长度为0 ~ 1500字节
- 填充字段:确保最小帧长64字节,长度为0 ~ 46字节
- 校验和字段:32位的循环冗余码,CRC-32(稍后会介绍到)
MAC地址
MAC地址,又被叫成硬件地址,填写在MAC帧的目的地址和源地址字段(6字节,48位),由48比特组成。
MAC地址前24位是厂商编号,由IEEE分配给制造商;后24位为序列号,由制造商自行分配;是全球唯一的编号
载波监听多路访问/冲突检测( CSMA/CD)
CSMA/CD是一种争用型的介质访问控制协议。其工作原理是:发送数据前先监听信道是否空闲。若空闲,立即发送数据;在发送数据时,边发送边监听;若监听到冲突,则立即停止发送,等待随机时间再重新尝试。
CSMA/CD是一种解决访问冲突的协议,适合传输非实时数据。在网络负载小的时候,CSMA/CD协议的通信效率很高;当网络负载变大时,发送时间增加,效率下降。
- 多路访问
多路计算机连接在一根总线 - 载波监听(CSMA)
发送数据前检测总线中是否有数据发送。若有,则进入类似退避算法的程序,然后反复进行载波监听;若没有,则运行不同的坚持算法进行发送。
以太网规定的帧间最小间隔为9.6μs。 - 坚持算法
分为以下三类:- 1—持续CSMA。当信道忙或发生冲突时,一直监听,一旦有空闲(在帧间最小间隔时间内没有检测到信道上有冲突)便发送
- 非持续CSMA。发送方并不持续监听信道。冲突时等待随机的一段时间N,再发送
- P——持续CSMA。信道空闲时,发送方按照P概率发送,以1-P概率不发送。若不发送数据,下一个时间间隔
τ
tau
τ仍空闲,同理进行发送;若信道忙,则等待下一个时间间隔
τ
tau
τ;若冲突等待随机一段时间重新开始。
τ tau τ为单程网络传输时延
- 冲突检测
即边发送边监听- 冲突检测最长时间为2倍的总线端到端的传播时延( 2 τ 2tau 2τ), τ tau τ称为争用期,又叫碰撞窗口。经过争用期还没有检测到碰撞,才能肯定发送不会出现碰撞。
- 10M以太网的争用期为51.2μs。10M/s网络,51.2μs可以发送512bit数据即64字节。所以10M以太网的最小帧长为64字节,小于64字节的数据都会被丢弃。(千兆以太网和万兆以太网的最小帧长为512字节)
-
最
小
帧
长
=
网
络
速
率
×
2
×
(
最
大
段
长
/
信
号
传
播
速
度
)
最小帧长=网络速率 times 2 times (最大段长/信号传播速度)
最小帧长=网络速率×2×(最大段长/信号传播速度)
即 L = R × 2 × d / v 即L=R times 2 times d/v 即L=R×2×d/v
- 退避算法
CSMA只能减少冲突,不能完全避免冲突,只有争用期没有检测到碰撞,才能肯定本次传输不会发生碰撞。以太网使用退避算法中的一种——截断的二进制指数退避算法,来解决发送数据的碰撞问题。
发生碰撞的站在信道空闲后并不立即发送数据,而是推迟一个随机时间进入发送流程。减少重传时再次发送碰撞的概率
具体算法如下:- 设定基本退避时间为争用期 2 τ 2tau 2τ
- 从整数集合[0, 2 k − 1 2^k-1 2k−1]中随机取一个数 r r r,则 r × 2 τ rtimes2tau r×2τ为发送站等待时间。
- 重传次数大于16次,则丢弃
退避算法的特点就是网络负载越重,后退时间越长,没有对优先级进行定义,不适合突发性业务和流式业务。该算法考虑了网络负载对冲突的影响,在重负载下能有效化解冲突。
IEEE 802系列协议
IEEE 802协议包含许多子协议,该协议集主要作用于数据链路层和物理层
IEEE 802.1系列
IEEE 802.1协议提供高层标准框架,包括端到端协议、网络互连、网络管理、路由选择、桥接和性能测量。
- IEEE 802.1s:多生成树协议(MSTP)
- IEEE 802.1w:快速生成树协议(RSTP)
- IEEE 802.1d:生成树协议(STP)
- IEEE 802.1x:基于端口的访问控制(PBNAC)
IEEE 802.1d:生成树网球(STP)
又叫透明网桥。基本思想是在网桥间传递BPDU,比较参数,打开好端口,阻塞差端口,沿着好端口建立路径。
生成树网桥步骤
- 确定根桥:根桥ID=优先级+MAC地址,根桥选取ID最小的;优先级0~65535,默认为32768
- 确定根端口:端口ID=优先级+编号,同样选取最小值;优先级0~255,默认为128
- 确定指定桥
- 确定指定端口
- 阻塞剩余端口
- 形成无环网络
生成树端口的四种状态:
- Blocking(阻塞):接收BPDU,不学习MAC地址,不转发数据帧。
- Listening(侦听):接收BPDU,不学习MAC地址,不转发数据帧,但交换机向其他交换机通告该端口,参与选举根端口和指定端口
- Learning(学习):接收BPDU,学习MAC地址,不转发数据帧。
- Forwarding(转发):正常转发数据帧。
IEEE 802.1q:虚拟局域网(VLAN)
对物理网络分段而形成的逻辑网络,与用户的物理位置无关。不同VLAN之间通信需要通过路由器或三层交换机实现
VLAN划分的好处:控制网络流量,抑制广播风暴;提高网络安全性;网络管理灵活;
VLAN的划分方式可分为两种:
- 静态分配VLAN:基于端口
- 动态分配VLAN:基于数据链路层MAC地址、基于网络层IP地址、基于高层规则策略
VLAN的端口可分为两种:
- 接入端口Access:只能通过单个VLAN
- 中继端口Trunk:可以通过多个VLAN
VLAN的格式:在原来的以太帧中增加了4字节(32位)的控制信息(Tag),包含12位的VLAN标识符VID,可表示4094个VLAN( 2 12 = 4096 2^{12}=4096 212=4096即0~4095,其中0识别优先级,4095为预留)
目的地址 | 源地址 | 控制信息(Tag) | 类型 | 数据 | 填充 | 校验和 |
---|---|---|---|---|---|---|
6字节 | 6字节 | 4字节 | 2字节 | 0~1500字节 | 0~46字节 | 4字节 |
控制信息Tag
TPID | Priority | CDI | VID |
---|---|---|---|
16bit | 3bit | 1bit | 12bit |
IEEE 802.3系列
IEEE 802.3是以太网规范,定义CSMA/CD标准的媒体访问控制(MAC)子层和物理层规范
光在空气中传播的介质称为“以太(ether)”,以太网(ethernet)寓意无处不在的网络
- IEEE 802.3u:快速以太网:速率可达到100M
- IEEE 802.3z:千兆以太网:速率可达到1000M即1Gbps。定义了一种帧突发方式
帧突发:指一个站可以连续发送多个帧,用以保证传输站点对传输媒体的控制 - IEEE 802.3ab:针对实体媒体部分制定的1000Base-T规格。
- IEEE 802.3ae:万兆以太网:速率可达到10Gbps。只支持光纤,只支持全双工,不再采用CSMA/CD。
- IEEE 802.3规定的传输介质特性
名称 | 电缆 | 最大段长 | 特点 |
---|---|---|---|
100Base-T4 | 4对3类UTP | 100m | 3类双绞线,NRZ编码 |
100Base-TX | 2对5类UTP或2对STP | 100m | 100Mb/s全双工通信,MLT-3编码 |
100Base-FX | 1对光纤 | 2000m | 100Mb/s全双工通信,4B/5B、NRZI编码 |
100Base-T2 | 2对3、4、5类UTP | 100m | PAM5的5电平编码方案 |
1000Base-CX | 2对STP | 25m | 2对STP |
1000Base-T | 4对UTP | 100m | 4对UTP |
1000Base-SX | 多模光纤 | ||
1000Base-LX | 光纤 | ||
10Gbase-S | 多模光纤 | ||
10Gbase-L | 单模光纤 | ||
10Gbase-E | 单模光纤 | ||
10Gbase-LX | 光纤 |
*10Base-T中10是速率即10Mb/s;Base表示速率,Base是基带,Broad是宽带;而T代表传输介质,T是双绞线,F是光纤
IEEE 802.11
无线局域网标准,定义了自由空间媒体的媒体访问控制(MAC)子层和物理层规范
IEEE 802.12:按需优化定义使用按需优先访问方法的100Mb/s以太网标准
IEEE 802.14:有线电视标准
IEEE 802.15
无线个人局域网(PAN),适合于短程无线通信标准,如:蓝牙
IEEE 802.16
宽带无线接入(BWA)标准
IEEE 802其他协议
- IEEE 802.2:逻辑链路控制(LLC)提供LAN和MAC子层与高层协议间的接口
- IEEE 802.4:令牌总线网
- IEEE 802.5:令牌环线网:源路由网桥
- IEEE 802.6:城域网MAN
- IEEE 802.7:宽带技术咨询组
- IEEE 802.8:光纤技术咨询组
- IEEE 802.9:集成数据和语音网络(VoIP)定义了综合语音/数据终端访问综合语音/数据局域网的媒体访问控制(MAC)子层和物理层规范。
- IEEE 802.10:可互操作局域网安全标准,定义局域网互连安全机制
检错与纠错
主要有奇偶校验、海明码、CRC码
奇偶校验
将1的个数是奇数或偶数作为校验的根据,只能检错,不能纠错
海明码
在数据位m后增加冗余校验位k,组成信息位m+k。满足
m
+
k
<
2
k
−
1
m+k<2^k-1
m+k<2k−1 即可纠正一位错误。不但能检错,还能纠错
海明码距(码距):两个码字中不相同二进制的位数的最小值
检测d个错误,码距≥d+1;纠正d个错误,码距>2d
海明码的推导与校验过程(以原始信息101101为例):
- 确定位长
本例中数据位m=6,根据 m + k < 2 k − 1 m+k<2^k-1 m+k<2k−1可得校验位k的最小值为4,所以信息位m+k=10。 - 填写原始数据
将 2 0 ; 2 1 ; 2 2 ; … … 2 k − 1 2^0;2^1;2^2;……2^{k-1} 20;21;22;……2k−1号位作为校验位,其他号位作为数据位
本例中k=4,所以校验位为1、2、4、8;数据位为3、5、6、7、9、10
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|
- | - | 1 | - | 0 | 1 | 1 | - | 0 | 1 |
- 计算校验位数值
将数据位号转换位二进制,通过二进制中1的位置来计算校验位数值——对数据位二进制第一位为1的数据位值进行异或运算,得到的数值填写至校验位 2 0 2^0 20中;对数据位二进制第二位为1的数据位值进行异或运算,得到的数值填写至校验位 2 1 2^1 21中;……依次类推
本例中3、5、6、7、9、10为数据位
数据位 | 二进制(4) | 二进制(3) | 二进制(2) | 二进制(1) |
---|---|---|---|---|
3 | 0 | 0 | 1 | 1 |
5 | 0 | 1 | 0 | 1 |
6 | 0 | 1 | 1 | 0 |
7 | 0 | 1 | 1 | 1 |
9 | 1 | 0 | 0 | 1 |
10 | 1 | 0 | 1 | 0 |
二进制(1)中为1的数据位为3、5、7、9
所以校验位
2
0
2^0
20=1⊕0⊕1⊕0=0
二进制(2)中为1的数据位为3、6、7、10
所以校验位
2
1
2^1
21=1⊕1⊕1⊕1=0
二进制(3)中为1的数据位为5、6、7
所以校验位
2
2
2^2
22=0⊕1⊕1=0
二进制(4)中为1的数据位为9、10
所以校验位
2
3
2^3
23=0⊕1=1
填入信息位中可得
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|
0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
4.校验
将信息位编号转换为二进制,
将所有二进制第1位为1的信息位数值进行异或运算,得到X1;
将所有二进制第2位为1的信息位数值进行异或运算,得到X2;
……
将所有二进制第n位为1的信息位数值进行异或运算,得到Xn;
得到Xn…X2X1的二进制,转换为十进制。若结果为0,则无错;若结果非0(设为Y),则错误发生在第Y位。
CRC编码
广泛用于无线通信中,因为无线通信噪声多,更易出错。CRC编码只能检错,不能纠错。
使用CRC编码,需要先商定一个生成多项式G(x)。生成多项式的最高位和最低位必须为1。
CRC的思想就是在原来的信息位后加若干校验位,使得追加的信息能被G(x)整除。接收方收到带校验位的信息,使用G(x)整除。若余数为0,则证明没有错误;若余数非0,则证明出错
例:
G
(
x
)
=
x
4
+
x
+
1
G(x)=x^4+x+1
G(x)=x4+x+1,信息码为10111,求CRC校验码
- 信息码后添加4位0,因为G(x)中的做大平方数为4
信息码变为101110000,信息码为被除数 - 利用G(x)算出除数, G ( x ) = x 4 + x + 1 G(x)=x^4+x+1 G(x)=x4+x+1,所以除数为 1 0 4 + 1 0 1 + 1 = 10000 + 10 + 1 = 10011 10^4+10^1+1=10000+10+1=10011 104+101+1=10000+10+1=10011
- 利用模2除法
信息码 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|---|---|
除数 | 1 | 0 | 0 | 1 | 1 | ||||
模2计算 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | ||
除数 | - | - | 1 | 0 | 0 | 1 | 1 | ||
模2计算 | - | - | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
所以CRC校验码为1100
最后
以上就是哭泣小兔子最近收集整理的关于计算机网络——数据链路层数据链路层的结构IEEE 802系列协议检错与纠错的全部内容,更多相关计算机网络——数据链路层数据链路层的结构IEEE内容请搜索靠谱客的其他文章。
发表评论 取消回复