PPP简介

介绍PPP特性的定义和目的。

定义

PPP(Point-to-Point Protocol)协议是一种点到点链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输。

目的

PPP协议是在串行线IP协议SLIP(Serial Line Internet Protocol)的基础上发展起来的。由于SLIP协议具有只支持异步传输方式、无协商过程(尤其不能协商如双方IP地址等网络层属性)、只能承载IP一种网络层报文等缺陷,在发展过程中,逐步被PPP协议所替代。

PPP协议有如下优点:

  • 对物理层而言,PPP既支持同步链路又支持异步链路,而X.25、FR(Frame Relay)等数据链路层协议仅支持同步链路,SLIP仅支持异步链路。
  • PPP协议具有良好的扩展性,例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为PPPoE。
  • 提供LCP(Link Control Protocol)协议,用于各种链路层参数的协商。
  • 提供各种NCP(Network Control Protocol)协议(如IPCP、IPXCP),用于各网络层参数的协商,更好地支持了网络层协议。
  • 提供认证协议CHAP(Challenge-Handshake Authentication Protocol)、PAP(Password Authentication Protocol),更好的保证了网络的安全性。
  • 无重传机制,网络开销小,速度快。

PPP报文格式

PPP的基本构架

PPP协议处于TCP/IP协议栈的数据链路层,主要用在支持全双工的同异步链路上,进行点到点之间的数据传输。

图1 PPP在协议栈中的位置

PPP主要由三类协议族组成:

  • 链路控制协议族(Link Control Protocol),主要用来建立、拆除和监控PPP数据链路。

  • 网络层控制协议族(Network Control Protocol),主要用来协商在该数据链路上所传输的数据包的格式与类型。

  • 扩展协议族CHAP(Challenge-Handshake Authentication Protocol)和PAP(Password Authentication Protocol),主要用于网络安全方面的验证。

PPP报文封装的帧格式

PPP报文封装格式如图2所示。

图2 PPP报文格式

各字段的含义如下:

  • Flag域

    Flag域标识一个物理帧的起始和结束,该字节为0x7E。

  • Address域

    Address域可以唯一标识对端。PPP协议是被运用在点对点的链路上,因此,使用PPP协议互连的两个通信设备无须知道对方的数据链路层地址。按照协议的规定将该字节填充为全1的广播地址,对于PPP协议来说,该字段无实际意义。

  • Control域

    该字段默认值为0x03,表明为无序号帧,PPP默认没有采用序列号和确认应答来实现可靠传输。

    Address和Control域一起标识此报文为PPP报文,即PPP报文头为FF03。

  • Protocol域

    Protocol域可用来区分PPP数据帧中信息域所承载的数据包类型。

    Protocol域的内容必须依据ISO 3309的地址扩展机制所给出的规定。该机制规定协议域所填充的内容必须为奇数,也就是要求最低有效字节的最低有效位为“1”。

    如果当发送端发送的PPP数据帧的协议域字段不符合上述规定,接收端则会认为此数据帧是不可识别的。接收端向发送端发送一个Protocol-Reject报文,在该报文尾部将填充被拒绝报文的协议号。

    表1 常见的协议代码

    协议代码

    协议类型

    0021

    Internet Protocol

    002b

    Novell IPX

    002d

    Van Jacobson Compressed TCP/IP

    002f

    Van Jacobson Uncompressed TCP/IP

    8021

    Internet Protocol Control Protocol

    802b

    Novell IPX Control Protocol

    8031

    Bridging NC

    C021

    Link Control Protocol

    C023

    Password Authentication Protocol

    C223

    Challenge Handshake Authentication Protocol

  • Information域

    Information域最大长度是1500字节,其中包括填充域的内容。Information域的最大长度称为最大接收单元MRU(Maximum Receive Unit)。MRU的缺省值为1500字节,在实际应用当中可根据实际需要进行MRU的协商。

    如果Information域长度不足,可被填充,但不是必须的。如果填充则需通信双方的两端能辨认出填充信息和真正需要传送的信息,方可正常通信。

  • FCS域

    FCS域的功能主要对PPP数据帧传输的正确性进行检测。

    在数据帧中引入了一些传输的保证机制,会引入更多的开销,这样可能会增加应用层交互的延迟。

LCP报文封装的帧格式

LCP报文封装格式请参见图2。

在链路建立阶段,PPP协议通过LCP报文进行链路的建立和协商。此时LCP报文作为PPP的净载荷被封装在PPP数据帧的Information域中,PPP数据帧的协议域的值固定填充0xC021。

在链路建立阶段的整个过程中信息域的内容是变化的,它包括很多种类型的报文,所以这些报文也要通过相应的字段来区分。

  • Code域

    Code域的长度为一个字节,主要是用来标识LCP数据报文的类型。

    在链路建立阶段,接收方接收到LCP数据报文。当其Code域的值无效时,就会向对端发送一个LCP的代码拒绝报文(Code-Reject报文)。

    表2 常见code值

    code值

    报文类型

    0x01

    Configure-Request

    0x02

    Configure-Ack

    0x03

    Configure-Nak

    0x04

    Configure-Reject

    0x05

    Terminate-Request

    0x06

    Terminate-Ack

    0x07

    Code-Reject

    0x08

    Protocol-Reject

    0x09

    Echo-Request

    0x0A

    Echo-Reply

    0x0B

    Discard-Request

    0x0C

    Reserved

  • Identifier域

    Identifier域为1个字节,用来匹配请求和响应,当Identifier域值为非法时,该报文将被丢弃。

    通常一个配置请求报文的ID是从0x01开始逐步加1的。当对端接收到该配置请求报文后,无论使用何种报文回应对方,但必须要求回应报文中的ID要与接收报文中的ID一致。

  • Length域

    Length域的值就是该LCP报文的总字节数据。它是Code域、Identifier域、Length域和Data域四个域长度的总和。

    Length域所指示字节数之外的字节将被当作填充字节而忽略掉,而且该域的内容不能超过MRU的值。

  • Data域

    Data域所包含的是协商报文的内容,这个内容包含以下字段。

    • Type为协商选项类型。

    • Length为协商选项长度,它是指Data域的总长度,也就是包含Type、Length和Data。

    • Data为协商选项的详细信息。

    表3 常见Type中的协商类型值

    协商类型值

    协商报文类型

    0x01

    Maximum-Receive-Unit

    0x02

    Async-Control-Character-Map

    0x03

    Authentication-Protocol

    0x04

    Quality-Protocol

    0x05

    Magic-Number

    0x06

    RESERVED

    0x07

    Protocol-Field-Compression

    0x08

    Address-and-Control-Field-Compression

  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值