概述
物理层为数据链路层提供服务。物理层:位流(bits),数据链路层:帧(frame)。
链路:一条无源的、点到点的物理线路段,中间没有任何其他的交换节点。
数据链路:物理线路+链路控制规则形成的数据管道。
数据链路层的三个基本功能:
1.封装成帧
在一段数据的前后分别添加首部和尾部,就构成了一个帧,首部和尾部的一个重要作用是进行帧定界。
MTU:最大传输单元。
帧=帧头+载荷+帧尾
2.透明传输
转义字符
3.差错控制
在传输过程中可能会产生比特差错。在数据链路层传送的帧中,广泛使用了循环冗余校验CRC的检错技术
循环冗余校验的原理:在发送端,先把数据划分为组,假定每组k个比特。假设M为要发送的比特,将M后面加n个0,与一个n+1位的除数P进行模二除法运算,得到n位的余数R,R即冗余码,需要加在M的后面。在数据后面添加的冗余码被称为帧检验序列(FCS)。除数P可以采用生成多项式来表示。
接收端对收到的每一帧进行CRC校验,若得出的余数R为0,则没有差错。
仅用循环冗余校验CRC差错检测技术只能做到无差错接受。无差错接受 ≠ 可靠传输。
数据链路层的可靠传输
停-等协议
基本原理:
数据帧出错,检验:CRC检验,否认帧:NAK。差错重传
数据帧丢失,超时计时器,超时重传
应答帧丢失,重复帧-序号。
自动重传请求(ARQ):停止等待协议的优点是简单、易实现,缺点是信道利用率太低。
连续ARQ协议:流水线传输。发送方发送一个数据帧之后,不用等待确认帧,而是可以连续再发送若干个数据帧。边发送边接收确认,由于连续发送,需要连续编号,确认帧也需要编号。接收端出现差错后的处理:向发送端发送否认帧或者不响应。接收端只按序接收(Go-back-N 回退N)。接收端采用累积确认方式。
滑动窗口机制
在发送方和接收方分别设置的可以移动的发送窗口和移动窗口。只有在窗口内的帧才能被连续发送出去。
PPP协议
需求:简单,封装成帧,透明性,多种网络层协议,多种类型链路(串并行、低高速、同异步),差错检测,检测连接状态,最大传输单元(MTU),网络层地址协商,数据压缩协商。(只支持全双工链路)
PPP协议的组成:一个将IP数据报封装到串行链路的方法;链路控制协议(LCP);网络控制协议(NCP)。
PPP协议的帧格式:有一个2个字节的协议字段(当协议字段为0x0021时,PPP帧的信息字段就是IP数据报,若为0xC021时,则信息字段是PPP链路控制数据,若为0x8021时,则表示这是是网络控制数据)。
透明传输问题:当PPP采用异步传输时,使用一种特殊的字符填充法(将信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D,0x5E),若信息字段中出现一个0x7D字节,则将其转变成2字节序列(0x7D,0x5D),若信息字段中出现ASCII码的控制字符,即数值小于0x20的字符,则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变),当采用同步传输链路时,协议规定采用硬件来完成零比特填充(信息字段中出现了和标志字段完全相同的比特组合,发送端在5个连续1之后填入0比特再发送出去)。
PPP协议的工作过程: