数据链路层要解决它的三个基本问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 12:44:16
为什么要解决(帧定界、透明传输和差错检测)这三个基本问题

首先所有因特网上传送的数据都是以分组为传送单位的,所以帧就是数据链路层的数据传送单位。即在帧的数据部分的前面和后面分别添加上首部和尾部构成帧——封装成帧,来作为分组。并且当数据在传输中出现差错时,帧定界符的作用更加明显。因为接收端端只接受有明确的帧定界符(SOH和EOT)的数据。
当数据部分是非ASCII码的文本文件时(如二进制代码的计算机程序或图像),如果数据中的某个字节的二进制代码恰好和SOH和EOT这种控制字符一样,数据链路层就好错误地“找到帧的边界”,把部分帧收下(误以为是个完整的帧),而把剩下的那部分数据丢弃(这部分找不到帧定界控制字符SOH)。为解决透明传输的问题,具体方法:发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”,的前面插入一个转义字符“ESC”。
现实的通信链路都不会是理想的。这就是说,比特在传输过程中可能会产生差错如比特差错,所以要进行差错检测,广泛使用的方法是循环冗余检验CRC。简单的说CRC就是在数据M的后面添加供差错检测用的n位冗余码,然后构成一个帧发送出去。接受端对收的每一帧经过CRC检验后,若得到的余数R=0,则判定这个帧没有错,就接受;若R不等于0,则判定这个帧有差错,就丢弃。