PPP协议

PPP协议简介

PPP(Point-to-Point Protocol),链路层协议。PPP是为了在点对点物理链路(例如RS232串口链路、电话ISDN线路等)上传输OSI模型中的网络层报文而设计的,它改进了之前的一个点对点协议-SLIP协议–只能同时运行一个网络协议、无容错控制、无授权等许多缺陷,PPP是现在最流行的点对点链路控制协议。这种连接提供了同时的双向的全双工操作,并且假定数据包是按顺序投递的。PPP连接提供了一种广泛的解决办法,方便地将多种多样不同的值作为最大接收单元的值。
帧格式与HDLC相似,不同的是PPP是面向字符,HDLC是面向位的。PPP属于广域网范畴,MAC是局域网范畴,按实际情况和环境就选用不同的协议,PPP支持的网络结构只能是点对点,MAC支持多点对多点。 这类广域网协议,其帧的结构与以太网的完全不同,当然,PPPOE除外,因为PPPOE是基于以太网上的,而其它的如PPP,FR,X.25等却并不是。 PPP协议是目前广域网上应用最广泛的协议之一,它的优点在于简单、具备用户验证能力、可以解决IP分配等。

PPP协议特点

  1. 简单:在同一条物理链路上进行点对点的数据传输,对数据链路层的帧不进行纠错,不需要序号,不需要流量控制。
  2. 封装成帧:加入帧界定符。
  3. 透明性:字节填充法。
  4. 多种网络层协议:在同一条物理链路上同时支持多种网络层协议(如IP和IPX等)的运行。
  5. 多种链路类型:PPP必须能够在多种类型的链路上运行,例如串行或并行链路。
  6. 差错检测:接收方收到一个帧后进行CRC检验,若正确就收下这个帧,反之则丢弃。
  7. 检测连接状态:自动检测链路是否处于正常工作状态。

PPP协议组成

  1. 提供一个将IP数据报封装到串行链路的方法。IP数据报在PPP帧中就是信息部分,长度受最大传送单元MTU的限制。PPP支持异步链路(无奇偶校验的8比特数据)和面向比特的同步链路。
  2. 链路控制协议LCP(Link Control Protocol)
    当线路不再需要时,挑出这些线路,测试它们,商议选择,并仔细地再次释放链路控制协议。
  3. 一套网络控制协议NCP(Network Control Protocol)
    其中每一个协议支持不同的网络层协议,如IP、OSI的网络层等。
  4. 认证协议
    最常用的包括口令验证协议PAP(Password Authentication Protocol)和挑战握手验证协议CHAP(Challenge-Handshake Authentication Protocol)。

PPP帧格式

标志字段F=0x7E(01111110),定界符
如果0x7E出现在帧内部的话,需要出现问题,所以有两种解决方案:

  1. 在异步链路上使用字符填充,即把0x7E用0x7D5E替换
  2. 在同步链路上使用位填充,即在连续的5个1之后填充一个0

地址字段A:用于指定那个站正在处理,但是PPP只关心一个站,所以设置了0xFF(所有站)

控制字段C:用于帧序列和重传行为,PPP中没有用,设为固定值0x03

协议(指示在信息字段中封装的数据类型):

  • 0x0021时,数据部分是IP数据报。
  • 0xC021时,数据部分是LCP数据(链路控制协议)。
  • 0x8021时,数据部分是NCP(网络控制协议)数据。
  • 0xC023 时,数据部分是PAP数据。
  • 0xC025时: LCP中链路质量报告LQR
  • 0xC223 时,数据部分是CHAP数据

数据部分 最大长度不能超过1500字节,1500字节大小等于PPP协议中配置参数选项MRU
FCS(校验): 用于差错检测的冗余循环校验码

PPP协议的工作状态

PPP通讯是两个端点之间的通讯,每一端必须首先发送LCP packets数据来设定和测试数据链路,当链路建立后,peer才可以被认证,认证完成后,再通过发送NCP packets来选定网络层协议,这些后续的通讯就可以在网络层进行了。
具体的过程如下:

1链路静止状态

链路一定开始并结束于这个阶段。当一个外部事件(例如载波侦听或网络管理员设定)指出物理层已经准备就绪时,PPP将进入链路建立阶段。在这个阶段,LCP自动机器将处于初始状态,向链路建立阶段的转换将给LCP自动机器一个UP事件信号。

2链路建立状态

LCP用于交换配置信息包(Configure packets),建立连接。一旦一个配置成功信息包(Configure-Ackpacket)被发送且被接收,就完成了交换,进入了LCP开启状态。所有的配置选项都假定使用默认值,除非被配置交换所改变。有一点要注意:只有不依赖于特别的网络层协议的配置选项才被LCP配置。在网络层协议阶段,个别的网络层协议的配置由个别的网络控制协议(NCP)来处理。在这个阶段接收的任何非LCPpackets必须被silentlydiscarded(静静的丢弃)。收到LCPConfigure-Request(LCP配置要求)能使链路从网络层协议阶段或者认证阶段返回到链路建立阶段。

3认证阶段

在一些链路上,在允许网络层协议packets交换之前,链路的一端可能需要peer去认证它。认证是不需要强制执行的。如果一次执行希望peer根据某一特定的认证协议来认证,那么它必须在链路建立阶段要求使用那个认证协议。应该尽可能在链路建立后立即进行认证。链路质量检查可以同时发生。在认证完成之前,禁止从认证阶段前进到网络层协议阶段。如果认证失败,认证者应该跃迁到链路终止阶段。
在这一阶段里,只有链路控制协议、认证协议,和链路质量监视协议的packets是被允许的。在该阶段里接收到的其他的packets必须被静静的丢弃。

4网络层协议阶段

一旦PPP完成了前面的阶段,每一个网络层协议(例如IP,IPX,或AppleTalk)必须被适当的网络控制协议(NCP)分别设定。比如,NCP可以给新接入的PC机分配一个临时的IP地址,这样PC机就成为Internet上一个主机了。每个NCP可以随时被打开和关闭。当一个NCP处于Opened状态时,PPP将携带相应的网络层协议packets。当相应的NCP不处于Opened状态时,任何接收到的被支持的网络层协议packets都将被静静的丢弃。

5链路终止阶段

PPP可以在任意时间终止链路。引起链路终止的原因很多:载波丢失、认证失败、链路质量失败、空闲周期定时器期满、或者管理员关闭链路。LCP用交换Terminate(终止)packets的方法终止链路。当链路正被关闭时,PPP通知网络层协议,以便他们可以采取正确的行动。交换Terminate(终止)packets之后,执行应该通知物理层断开,以便强制链路终止,尤其当认证失败时。Terminate-Request(终止-要求)的发送者,在收到Terminate-Ack(终止-允许)后,或者在重启计数器期满后,应该断开连接。收到Terminate-Request的一方,应该等待peer去切断,在发出Terminate-Request后,至少也要经过一个Restarttime(重启时间),才允许断开。PPP应该前进到链路死亡阶段。在该阶段收到的任何非LCPpackets,必须被静静的丢弃。

LCP帧格式

在PPP分组上进行简单的封装

  • 标识字段:LCP请求帧的发送方提供的序列号,在生成一个回复(ACK,NACK,REJECT)时,这个字段通过复制响应分组请求中包含的值来构造,请求方可通过匹配标识符来识别相应请求的应答
  • 代码字段:给出请求或者响应的操作类型
    • 配置请求(0x01):使链路两端开始基本的配置过程,并建立商定的选项
    • 配置ACK(0x02):接受一组选项
    • 配置NACK(0x03):用建议选项表明部分拒绝
    • 配置REJECT(0x04):完全拒绝一个或多个选项
    • 终止请求(0x05):在完成后清除一条链路
    • 终止ACK(0x06)
    • 代码REJECT(0x07):表明前一个分组包含的某些字段值未知
    • 协议REJECT(0x08)
    • 回送请求(0x09):在一条活跃的链路上随时交换,验证对方的操作
    • 回送应答(0x0A):在一条活跃的链路上随时交换,验证对方的操作
    • 放弃请求(0x0B):用于性能测试,指示对方丢弃没有响应的分组
    • 标识(0x0C):了解对方的系统类型
    • 剩余时间(0x0D):指出链路保持建立的时间
  • 长度字段:LCP分组的字节长度,不能超过最大接收单元(MRU),长度字段是LCP协议的一部分,PPP协议不提供这些字段。

LCP协商过程

PAP认证

认证方式:一端发送明文口令至对等端,由对方认证; 特性:明文传输,不安全。

PAP认证过程

PAP包格式

CHAP认证

CHAP是双方都把随机数+密码通过散列函数来运算,所以网路上只会监看到杂凑函数的种类及随机数,不会看到密码,安全性很高.

CHAP认证过程

CHAP认证过程报文交换过程

NCP

在LCP完成链路建立和认证之后,该链路每端都进入网络状态,并使用一个或者多个NCP进行网络层的相关协商。
对于IPv4,NCP被称为IP控制协议(IPCP) 对于IPv6,NCP被称为IPV6CP。

PPPOE协议

PPP 协议要求进行通信的双方之间是点到点的关系,不适于广播型的以太网和另外一些多点访问型的网络,于是就产生了PPPOE协议。PPPOE不仅为使用桥接以太网接入的用户提供了一种宽带接入手段,同时还能提供方便的接入控制和计费。

IPCP协商报文格式

IPCP协商分为两种情况:静态协商和动态协商,其过程分别如下:

静态协商:

动态协商:

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇