计算机网络---数据链路层PPP协议

定义:点对点协议(Point to Point Protocol,PPP)为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。在 TCP-IP 协议集中它是一种用来同步调制连接的数据链路层协议(OSI模式中的第二层),替代了原来非标准的第二层协议,即 SLIP。除了 IP 以外 PPP 还可以携带其它协议,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)。

特点:   PPP协议是一种点——点串行通信协议,同时也是目前使用最广泛的数据链路层协议。(只支持全双工链路)用户用拨号电话接入因特网时一般都使用PPP协议。PPP具有处理错误检测、支持多个协议、允许在连接时刻协商IP地址、允许身份认证等功能,还有其他。PPP提供了3类功能:成帧;链路控制协议LCP;网络控制协议NCP。PPP是面向字符类型的协议。 

 扩展:点对点数据链路控制

 定义:点对点链路由一个发送端、一个接收端、一条链路组成:比广播链路容易

特点:

  •  无需介质访问控制(Media Access Control)

  •  无需明确的MAC寻址。

  • 常用于拨号链路、ISDN链路(一个数字电话网络国际标准,是一种典型的电路交换网络系统。)。

常见的点对点数据链路控制协议:高级数据联系控制(HDLC,High Level Data Link Control)和点对点协议(Point-to-Point Protocol,PPP)

   

  为何而来?

     SLIP 主要完成数据报的传送,但没有寻址、数据检验、分组类型识别和数据压缩等功能,只能传送IP分组。此协议实现起来较简单,但如果上层不是IP就无法传输,并且此协议对一些高层应用也不支持。为了改进 SLIP的缺点,于是制定了点对点协议,即PPP。PPP 主要由以下3个部分组成:

  •  一个将IP数据报封装到串行链路的方法

  •  一个链路控制协议(LCP)。其用于建立、配置和测试数据链路连接,并在不需要时将它们释放。

  • 一套网络控制协议(NCP)。其中每个协议支持不同的网络层协议,用来建立和配置
    不同的网络层协议。
     

计算机网络---数据链路层PPP协议_第1张图片

 PPP的帧格式

  计算机网络---数据链路层PPP协议_第2张图片

注意:

1.标志字段(F):首部和尾部各占1个字节,规定为Ox7E。到目前为止,所接触到的帧只有 MAC 帧是有帧间隙的,所以无须加入尾标志。而PPP帧和 HDLC 帧都是没有帧间隙的,所以前后都得加标志字段。    定界符
2.地址字段(A):占1个字节,规定为OxFF         无效(仅仅是一个选项)

没有为什么,就是王八的屁股----规定。  
3.控制字段(C):占1个字节,规定为Ox03。  无效;未来可能的多种控制域
4.协议字段:占2个字节。例如,当协议字段为0x0021时,PPP帧的信息字段就是IP数据报;若为OxC021,则信息字段是PPP链路控制数据;若为0x8021,则表示这是网络控制数据

   上层协议(如PPP-LCP,IP,IPCP等)
5.信息部分:占0~1500个字节。为什么不是46~1500个字节?因为PPP是点对点的,并不是总线型,所以无需采用CSMA/CD协议,自然就没有最短帧。当数据部分出现和标志位一样的比特组合时,就需要采用一些措施来实现透明传输 。  上层协议分组数据
6.帧检验序列(FCS):占2个字节,即循环冗余码检验中的冗余码。检验区间包括地址字段、控制字段、协议字段和信息字段。   CRC检验,用于差错控制
可能疑问点:每个PPP帧首部和尾部都有标志字段 F,为什么教材上说连续两个PPP帧之间只需一个标志字段?
解析:当连续传输两个帧时,前一个帧的结束标志字段F可以同时作为后一个帧的起始标志字段。

  PPP的工作状态

        当用户拨号接入ISP时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。这时,个人计算机向路由器发送一系列的LCP分组(封装成多个PPP帧)。这些分组及其响应选择了将要使用的一些PPP参数。接着就进行网络层配置,网络控制协议(NCP)给新接入的个人计算机分配一个临时的IP地址。这样,个人计算机就成为因特网上的一个主机了。
        当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接,最后释放物理层连接。

计算机网络---数据链路层PPP协议_第3张图片

PPP帧的透明传输

解析:为了实现PPP帧的透明传输,采用了字节填充步骤如下:
①把信息字段中出现的每一个Ox7E转变为2字节序列(Ox7D,Ox5E)。
②若信息字段中出现一个Ox7D(出现了和转义字符一样的比特组合),则把Ox转变为2字节序列(Ox7D,Ox5D)。
③若信息字段中出现ASCII码的控制字符(数值小于Ox20的字符),则在该字符前面加入一个Ox7D,同时将该字符的编码加以改变。例如,出现Ox03(在控制字符中表示“传输结束”ETX ),就要把Ox03 转换为2字节序列(Ox7D.0x23)。为什么Ox03会转换成Ox23?其实就是对控制字符的十六进制编码加了一个偏移量(因为控制字符有Ox20个,所以加上Ox20,保证其不再是控制字符)

总结:
1)PPP 是一个面向字节的协议。
2)PPP 不需要的功能:纠错(PPP 只负责检错)、流量控制(由 TCP 负责)、序号(PPP是不可靠传输协议,所以不需要对帧进行编号)、多点线路(PPP是点对点的通信方式)、半双工或单工(PPP只支持全双工链路)。

计算机网络---数据链路层PPP协议_第4张图片

计算机网络---数据链路层PPP协议_第5张图片

注意:差错恢复、流量控制等由高层协议处理!

你可能感兴趣的:(计算机网络,网络,tcp/ip)