链路
链路是一条点到点的物理线路段,中间没有其他点。
数据链路
数据链路除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些数据协议的硬件和软件加到链路上,就构成了数据链路。
现在最常用的方法是使用网卡来实现这些协议的硬件和软件。
数据链路层解决的三个基本问题:
封装成帧
(1)封装成帧就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。
(2)首部和尾部的一个重要作用就是进行帧定界;
(3)MTU在以太网不能超过1500字节;
(4)计算机如果收到的帧不完整,那么会把这个帧给扔掉;
透明传输
若传输的数据是ASCII码中的字符集时,头和尾是可以区分的。若传输的数据不仅由“可打印字符”时,就会出现问题。
解决异常的方案:
发送端的数据链路层在数据中出现“SOH”或“EOT”的前面插入转义字符“ESC”;
字节填充或字符填充---接收端的数据链路层在将数据送往网络层之前会删除掉zh庡字符。
如果转义字符也出现在数据当中,那么应该在转义字符前插入一个转义字符。当接收端收到两个连续的转义字符时,就删除其中的一个。
差错控制
数据传输过程中可能会产生比特差错:1可能变成0,0可能变成1。
在一端时间内,传输错误的比特占所传输比特总数的比率称为误码率。
误码率和信噪比有很大的关系。
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
数据链路层只负责没有差错的接收,如果传输错误,数据链路层会把这段数据给丢掉。之后,接收端会要求传送端重新传输这段数据。
利用循环冗余检测的方式来避免数据传输错误。