计算机网络数据链路层(下)-沙窝李的王

    xiaoxiao2022-07-07  157

    上篇博客写到 点对点协议PPP。 PPP协议的组成 1.数据链路层可以适用多种性质的链路 2.使用LCP(链路控制协议)建立并维护数据链路连接 3.网络控制协议(NCP)允许点到点连接上使用多种网络层协议

    PPP协议的工作状态 链路静止,链路建立,鉴别,网络层协议,链路打开,链路终止 2.PPP协议的帧格式

    PPP帧各字段的意义

    PPP帧的首部和尾部分别为四个字段和两个字段。 这里写图片描述

    PPP帧各字段的意义 1.1 PPP帧的首部

    首部中的标志字段F(Flag),规定为0x7E(符号0x表示它后面的字符是用十六进制表示的。十六进制的7E的二进制表示是01111110),标志字段表示一个帧的开始。 首部中的地址字段A规定为0xFF(即11111111)。 首部中的控制字段C规定为0x03(即00000011)。 首部中的2字节的协议字段: (1)当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。 (2)当协议字段为0xC021时,PPP帧的信息字段就是PPP链路控制协议LCP的数据。 (3)当协议字段为0x8021时,PPP帧的信息字段就是网络层的控制数据。 1.2 PPP帧的信息字段部分

    信息字段的长度是可变的,不超过1500字节。

    1.3 PPP帧的尾部

    尾部中的第一个字段(2个字节)是使用CRC的帧检验序列FCS。 尾部中的标志字段F(Flag),规定为0x7E(符号0x表示它后面的字符是用十六进制表示的。十六进制的7E的二进制表示是01111110),标志字段表示一个帧的结束。

    注:标志字段就是PPP帧的定界符。连续两帧之间只需要用一个标志字段。如果连续出现两个标志字段,就表示这是一个空帧,应当丢弃。 2. 透明传输的实现方式

    当信息字段中出现和标志字段一样的比特(0x7E)组合时,就必须采取一些措施使这种形式上和标志字段一言的比特组合不出现在信息字段中。 2.1 字节填充——PPP使用异步传输 当PPP使用异步传输时,它把转移符定义为0x7D,并使用字节填充。 RFC1662规定了如下填充方法: (1)把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D,0x5E)。 (2)若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特组合),则把转义字符0x7D转变为2字节序列(0x7D,0x5D)。 (3)若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。例如,出现0x03(在控制字符中是“传输结束”ETX)就要把它转变为2字节序列的(0x7D,0x31)。 2.2 零比特填充——PPP使用同步传输 当PPP使用同步传输时,使用零比特填充。 零比特填充的具体方法: (1)在发送端先扫描整个信息字段(通常使用硬件实现,但也可以用软件实现,但是会慢一些)。 (2)只要发现有5个连续的1,则立即填入一个0。 (3)接收端在收到一个帧时,先找到标志字段F以确定帧的边界,接着再用硬件对其中的比特流进行扫描,每当发现5个连续1时,就把5个连续1后的一个0删除,以还原成原来的信息比特流。 因此通过这种零比特填充后的数据,就可以保证在信息字段中不会出现连续6个1。

    最新回复(0)