数据链路层协议分析
原创
©著作权归作者所有:来自51CTO博客作者芃羿羽的原创作品,请联系作者获取转载授权,否则将追究法律责任
首先明确 LINK 链路是指从一个结点到另一个结点的一个物理链路,DATD LINK 数据链路指建立在物理链路上的逻辑链路就是各种通信协议。
在数据链路层中的协议数据单元通过帧的传输来实现。
一,帧首先经过封装即在帧上加首部和尾部
IP数据报
帧首部 帧的数据部分 帧尾部
帧开始 帧结束
SOH 装在数据中的数据部分 EOT
二,透明传输,不管从键盘输入什么字符都 可以放在文本组成的帧中传输过去,因此这样的传输就是透明传输。由于帧定界符是专门指定的控制字符,所以有可能在数据部分出现和定界符相同的字符,这时就会出现帧定界符错误。
可见当出现相同的定界符时就在发送方的定界符前面加入转义字符”ESC“,接收端在收到ESC时就将其删除,这种方法称为字符填充,如果仍然出现字符填充一样的字符依然是加一个ESC,接收端在收到两 个时就删除前面一个。
SOH EOT
SOH ESC EOT
三,错检测,就是比特在传输过程中可能会产生差错,出现比特差错,为了保证数据传输的可靠性现在广泛采用的CRC循环冗余检验技术。例如,每组K个比特,传送的数据M=100101(K=6).CRC就是在后面加是N位的冗余码,将N+K位一起发送过去。
CRC的运算过程:假设M=100101除数P=110(双方商定的)进行相除。100101后加上二个0(110为三位即加上P-1位)/110=01那么CRC=01加在M 后面一起发送过去,接收方在收到帧后除以同样的除数除P,如果得到余数R=0则传输没有错误。
111001
110 10010100
110
101
110
110
110
001
100
110
10
CRC=10
PPP的的特点,简单、封装成帧、透明性、适应多种网络层协议,支持多类型链路、差错检测、自动检测连接状态最大传输单元、网络层地址协商
PPP的格式: IP数据报
1 1 1 2 2 1 表字节数
|
|
|
|
IP数据报 |
|
|
|
F |
A |
C |
|
|
|
F |
|
7E |
FF |
03 |
协议 |
|
FCS |
7E |
|
首部字段 不超过1500字节 尾部
A字段规定为oxFF C字段规定为ox03 F规定为ox7E 表示后面字符为16进制 当协议字段为ox0021时PPP帧的信息部分表示是IP 数据报 若oxc021则表示是PPP链路控制协议LCP的数据