数据链数层
2020.7.15更新
- 基本概念:
- 结点:能够通过数据帧封装IP数据报文并转发的设备。(计算机、路由器、三层交换机)
- 物理链路:相邻结点间的物理线路,中间没有其他任何结点。
- 数据链路:物理链路+数据链路层协议
- 数据链路协议的局限性:只保证在直接相连的结点间收发数据帧,与其他结点无关。
- 主机到主机的通信,事实上是由多段数据链路接力完成。(每段链路可以使用不同类型的数据链路层协议)
2.基本目标:
源结点:
---网络层产生IP数据包
---数据链路层将IP数据包封装成帧
---物理层发送帧对应的比特流
目的结点:
---物理层接收比特流
---数据链路层识别帧,并取出IP数据包
---网络层得到IP数据包
存在的三个问题:
- 成帧及帧定界(帧的封装与解封装)
①封装成帧:添加头部和尾部
说明:
---发送顺序:从帧头开始
---帧头帧尾用于帧定界、携带控制信息(数据类型、帧的长度、差错检测等)两个作用,且不同的数据链路层协议的帧头、帧尾以及MTU不同。
---MTU:最大数据传输单元
---接收端真正需要的是数据部分
2.透明传输
可以理解为---允许发送方传输任何数据,包括作为帧头、帧尾的控制字符。
①IP包的分片
SOH、EOT以及ESC出现问题的解决:前面插入一个转义字符ESC
3.差错检测
---在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER。
---广泛使用的是循环冗(rong)余校验CRC的检错技术。
过程:
PS:相当于异或运算!
问题:如果不一致怎么处理?
3.帧检验序列FCS
---在数据后面添加上的冗余码称为帧检验序列FCS
---循环冗余检验CRC不等同于帧检验序列FCS:
①CRC是一种常用的检错方法,而FCS是添加在数据后面的冗余码。
②FCS可以用CRC这种方法得出,而CRC并不是用来获取FCS的唯一方法。
---CRC的特点:
①该方法不能确定哪一个或哪几个比特出错。
②只要使用经过严格挑选的生成多项式,那么出现检测不到的差错的概率就很小。
4.点对点协议PPP
- 三个部分:
①一个将IP数据包封装到串行链路的方法
---------成帧
问题:对于很多协议来说,地址字段都非常有用,但是为何PPP的地址字段没有作用?
答:因为作用于点对点链路,不存在共享链路的问题,不需要地址字段。
---透明传输
①字符填充
- 将信息字段中的0x7E转换为2字节序列(0x7D,0x5E)
2)如信息字段出现0x7D的字节,贼将其转换成为2字节序列(0x7D,0x5D)
3)若出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面加入一个0x7D字节,同时该字符的编码加以改变。
问题1:接收端如何处理这些填充的字符?
问题2:加上字符后超出MTU怎么办?
②零比特填充
连续五个1后要插入一个0
---差错检测
②链路控制协议LCP
③网络控制协议NCP
<