我是靠谱客的博主 哭泣小兔子,这篇文章主要介绍计算机网络——数据链路层数据链路层的结构IEEE 802系列协议检错与纠错,现在分享给大家,希望可以做个参考。

数据链路层

  • 数据链路层的结构
    • 逻辑链路控制层(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 2k1]中随机取一个数 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(转发):正常转发数据帧。
20S
15S
15S
阻塞
侦听
学习
转发

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

TPIDPriorityCDIVID
16bit3bit1bit12bit

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-T44对3类UTP100m3类双绞线,NRZ编码
100Base-TX2对5类UTP或2对STP100m100Mb/s全双工通信,MLT-3编码
100Base-FX1对光纤2000m100Mb/s全双工通信,4B/5B、NRZI编码
100Base-T22对3、4、5类UTP100mPAM5的5电平编码方案
1000Base-CX2对STP25m2对STP
1000Base-T4对UTP100m4对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<2k1 即可纠正一位错误。不但能检错,还能纠错
海明码距(码距):两个码字中不相同二进制的位数最小值
检测d个错误,码距≥d+1;纠正d个错误,码距>2d
海明码的推导与校验过程(以原始信息101101为例):

  1. 确定位长
    本例中数据位m=6,根据 m + k < 2 k − 1 m+k<2^k-1 m+k<2k1可得校验位k的最小值为4,所以信息位m+k=10
  2. 填写原始数据
    2 0 ; 2 1 ; 2 2 ; … … 2 k − 1 2^0;2^1;2^2;……2^{k-1} 20;21;22;2k1号位作为校验位,其他号位作为数据位
    本例中k=4,所以校验位为1、2、4、8;数据位为3、5、6、7、9、10
12345678910
--1-011-01
  1. 计算校验位数值
    将数据位号转换位二进制,通过二进制中1的位置来计算校验位数值——对数据位二进制第一位为1的数据位值进行异或运算,得到的数值填写至校验位 2 0 2^0 20中;对数据位二进制第二位为1的数据位值进行异或运算,得到的数值填写至校验位 2 1 2^1 21中;……依次类推
    本例中3、5、6、7、9、10为数据位
数据位二进制(4)二进制(3)二进制(2)二进制(1)
30011
50101
60110
70111
91001
101010

二进制(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

填入信息位中可得

12345678910
0010011101

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校验码

  1. 信息码后添加4位0,因为G(x)中的做大平方数为4
    信息码变为101110000,信息码为被除数
  2. 利用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
  3. 利用模2除法
信息码101110000
除数10011
模2计算0010000
除数--10011
模2计算--0001100

所以CRC校验码为1100

最后

以上就是哭泣小兔子最近收集整理的关于计算机网络——数据链路层数据链路层的结构IEEE 802系列协议检错与纠错的全部内容,更多相关计算机网络——数据链路层数据链路层的结构IEEE内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部