PPP协议

一、数据链路层的三个基本问题

(一)封装成帧

PPP协议_第1张图片

帧首部和帧尾部的一个重要作用就是进行帧定界,使用SOH和EOT这两个控制字符。

(二)透明传输

PPP协议_第2张图片
PPP协议_第3张图片

由上图可看,通过增加转义字符实现了透明传输。

(三)差错检验

传输过程中可能会产生比特错误:1可能变成0,0也可能变成1。
误码率:在一段时间,传输错误的比特占所传输比特总数的比特率
PPP协议_第4张图片

利用CRC循环冗余检验算法计算出帧检验序列FCS,再将FCS加入到图中红色部分的101001后(加后为:101001001),利用同样的计算方法可以得出结果余0,商为101001,则传输没有差错,就接收,否则判定有错,丢弃这个帧。
特点:
1、这种方法不能判断是哪一位或那几位出错了。
2 、只要经过严格的挑选,并使用位数足够多的除数P,那么出现检测不到错误的概率就会很小。
CRC是检验方法,FCS是冗余码。且数据链路层只是实现无差错传输,但这不是可靠传输

二、点对点PPP协议

PPP协议_第5张图片

(一)PPP协议的组成

    (1)一个将IP数据报封装到串行链路的方法。PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。IP数据报在PPP帧中就是其信息部分。这个信息部分的长度受最大接收单元MRU (Maximum Receive Unit)的限制。MRU的默认值是1500字节
    (2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP (Link Control Protocol)。通信的双方可协商一些选项。在[RFC 1661]中定义了11种类型的LCP分组
    (3)一套网络控制协议NCP (Network Control Protocol),其中的每一个协议支持不同的网络层协议,如IP、OSI的网络层、DECnet以及AppleTalk等。

(二)PPP协议帧格式

各字段意义

PPP协议_第6张图片
标志(Flag):0111 1110(0x7E)
地址:为固定值 “FF”(11111111),点-点协议,地址无意义
控制:为固定值“03”(00000011),无编号
数据:长度可变,不能超过1500字节
协议字段
0021:信息字段内容为IP数据报
C021:信息字段内容为PPP链路控制数据
8021:信息字段内容为网络控制数据

当PPP使用异步传输时,它把转义符定义为0x7E,并使用字节填充。
当PPP用在同步传输链路(SONET/SDH)时,采用硬件来完成零比特填充(和HDLC的做法一样)。

字节填充

  • 将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。
  • 若信息字段中出现一个 0x7D 的字节, 2 字节序列(0x7D, 0x5D)。
  • 若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。

零比特填充

  1. 发送端在 5 个连 1 之后填入 0 比特再发送出去.
  2. 在接收端将 5 个连 1 之后的 0 比特删除,恢复原样.

(三)PPP协议工作状态

  1. LCP协商PPP参数,建立数据连接
  2. 用户验证,客户端会将自己的身份发送给远端的接入服务器。在认证完成之前,禁止从认证阶段前进到网络层协议阶段。如果认证失败,认证者应该跃迁到链路终止阶段。
  3. 调用网络层协议,认证阶段完成之后,PPP将调用在链路创建阶段(阶段1)选定的各种网络控制协议(NCP)。选定的NCP解决PPP链路之上的高层协议问题,例如,在该阶段IP控制协议(IPCP)可以向拨入用户分配动态地址。

你可能感兴趣的:(网络协议解析)