计算机网络第十课:数据链路层的三个基本问题(第三章)

1.封装成帧

封装成帧就是在一段数据的前后分别添加首部和尾部,然后构成一个帧,确定帧的界限。
首部和尾部的一个重要作用就是进行帧定界。确定头部和尾部的界限
从网络层得到IP数据报/IP数据包,然后加上帧的首部和帧的尾部,这就是封装成帧的过程。

计算机网络第十课:数据链路层的三个基本问题(第三章)_第1张图片

2.透明传输

如何防止帧的数据部分中含有帧首部(SOH)和帧尾部(EOT)?

如果原始数据中含有SOH和EOT,那么在SOH和EOT前面进行填充ESC
如果数据中含有ESC,在ESC前加一个ESC,表示有ESC原始数据
在接收端对填充ESC字符进行移除,这个过程就要做透明传输

计算机网络第十课:数据链路层的三个基本问题(第三章)_第2张图片

3.差错检测

在传输过程中可能会产生比特差错:1可能会变成0,而0会变成1.
数据链路层在检测差错时,接受对的数据,丢弃错误的数据。(不进行纠错,纠错是传输层的任务)
在数据中加上帧检验序列,才能检验是否有差错。

经常使用循环冗余检验(CRC),计算过程:

假设需要检验的数据为101001,首先加000:
然后除以4位数 1101,假设加4个0,那么必须除5位,且除数为随机值

CRC具体过程:
计算机网络第十课:数据链路层的三个基本问题(第三章)_第3张图片
帧检验序列是添加在数据后面的冗余码

接收方如何进行检测?
将101001001进行除法运算,除以1101,得到0,表示无差错,如果有余数表示有差错

你可能感兴趣的:(计算机网络)