1 数据链路层使用的信道
点对点信道。这种信道使用一对一的点对点通信方式。
广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
链路是一条点到点的物理线路段,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分。
数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。现最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。
2 数据链路层需要解决的三个问题
封装成帧:就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。用于确定帧的界限。
透明传输:如果数据里面恰好有和“开始”、“结束”符相等的字符,容易使计算机误以为数据里面是“开始”或“结束”,这时采用字节填充法或0比特填充法,告诉计算机这其实是数据而不是帧头和帧尾,来实现透明传输。
字节填充(byte stuffing)或字符填充(character stuffing):发送端在数据中出现控制字符“SOH”或“EOT”时,在其前面插入一个转义字符“ESC”(其十六进制编码是1B)。接收端在将数据送往网络层之前删除插入的转义字符。如果转义字符也出现数据当中,那么应在转义字符前再插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
差错检测:传输过程中可能会产生比特差错,1可能会变成0而0也可能变成1。在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。常用检错技术有循环冗余检验 CRC检错技术。在数据后面添加上的冗余码称为帧检验序列