ppp协议解析二

小僧的功课 小僧的功课     2022-09-21     763

关键词:

转:http://blog.csdn.net/yangzheng_yz/article/details/11526747

PPP(Point to Point Protocol,点对点协议)协议是为在两个对等实体间传输数据包,建立简单连接而设计的。这种连接提供了同时的双向全双工操作,并且假定数据包是按顺 序投递的。PPP协议还满足了动态分配IP地址的需要,并能够对上层的多种协议提供支持。PPP在TCP/IP协议集中是位于数据链路层的协议,其物理实 现方式有两种:一种是通过以太网口(这时称之为PPPoE,即PPP over Ethernet),另一种就是利用普通的串行接口。本文主要讨论的就是后一种PPP协议的具体实现过程。

  PPP协议是目前应用得最广的一种广域网协议,它主要由以下3部分组成:(1) 在串行线路中对上层数据包的封装(HDLC);(2) 用于建立、配置和检测数据链路连接的链路控制协议(LCP) ;(3) 用于建立和配置不同网络层协议的网络控制协议(NCP) 协议簇。下面从PPP协议的封装结构和PPP链路协商两个部分对PPP协议进行详细剖析。

PPP协议封装

  PPP 封装用于消除上层多种协议数据包的歧义,加入帧头、帧尾, 使之成为互相独立的串行数据帧。PPP 采用HDLC 的组帧格式,它是面向字符的。在完整的PPP 帧中,帧头由帧开始标记、地址域、控制域、协议域组成,帧尾由校验域、帧结束标记组成(如表1 所示)。



  表1:PPP帧封装格式

标记

1字节

0X7E

地址

1字节

0XFF

控制

1字节

0X03

协议

2字节

编码

1字节

ID

1字节

长度

2字节

载荷

0-1496字节

校验和

2字节

标记

1字节

0X7E

 

表2:PPP协议代码                           表3:编码对应含义

协议代码

对应协议

0XC021            LCP协议

0XC023            PAP协议

0XC223            CHAP协议

0X8021            IPCP协议

0X0021            IP协议

编码值

对应含义

1                 配置请求(Req)

2                 接受配置(Ack)

3        配置请求接受,其他拒绝(Nak)

4        配置请求不认识或不被接受(Rej)

5                 终止链接

6                 终止确认

 

 

 

 

 

 



PPP帧以0x7e作为一帧的开始和结束的标记,占一个字节。地址域和控制域固定的值,分别为0xff 和0x03,各占一个字节。协议域为两个字节,在实际应用中因数据包的不同而不同。PPP 帧具有错误检测机制,校验和中填写的就是发送方对帧数据的检验码,接收方在接收到该帧后对数据做校验,通过校验来判断数据帧在传送过程中是否有误。其中校 验和采用的是CRC算法,校验范围从地址字节到校验和位置之前的最后一个数据载荷。

PPP协议包含丰富的内容, 它能实现包括IP协议在内的多种网络协议的封装,那么,如何区分某个PPP包究竟是哪种数据协议包?这就是PPP协议帧第四、五两个字节关心的问题,表2列出常用的协议代码及其对应的协议。



PPP链路协商

通常,在一次PPP链路会话中,协商的双方并没有区分谁是服务器端谁是客户端。为了叙述方便,这里把申请请求PPP服务 的一端称为用户端,而把能提供PPP服务的机构称为ISP(比如本项目中的联通CDMA网络)。一般来讲,与ISP建立一次正常的PPP链路连接,要经历 下面3个阶段: (1)LCP协商,建立和配置连接以及帧参数设置等;(2)用户认证,这里将选择PAP认证;(3)NCP协商,即负责IP地址的动态分配等事务。这里把 常用的编码字节的意义列成上表3,这些代码对上述协议都适用。至于PPP封装帧结构中的ID字节,表示的是PPP包的序号,这在协商阶段用来识别该对哪个 包进行应答。需要说明的是,当PPP报文封装的是IP报文时,则已经不存在编码和ID部分了。 

 

 

3 PPP协议在联通CDMA网络中的具体实现

 

    PPP协议的格式虽然严格遵循既定标准,但不同的ISP可以有其自己的协商规范,也就是说协商的过程会因为使用网络的不同而有差别。因此PPP技术的应 用,关键的问题是要弄清楚不同的ISP提供商它们各自的一套协商会话流程,一旦协商过程完成,用户获得ISP分配的动态IP,剩下的工作只不过是把用户数 据以IP报文形式封装在一个个PPP报文中进行传输了。下图2就是利用中国联通CDMA网络实现视频传输的协商阶段的全过程。



图2 PPP协商过程数据帧实例

7E

FF 7D 23

C0 21

7D 21

7D 21

7D 20 7D 34

7D 22 7D 26 7D 20 7D 20 7D 20 7D 20

7D 25 7D 26

52 7D 38 7D 30 44

7D 27 7D 22

7D 28 7D 22

6E E1

7E

 

                   

1 U

 

 

 

 

 

7E

FF 7D 23

C0 21

7D 21

7D 21

7D 20 7D 3D

7D 21 7D 24 7D 25 EA

7D 22 7D 26 7D 20 7D 20 7D

20 7D 20

7D 23 7D 25 C2 23 7D 25

7D 25 7D 26 2F 7D 35 B2 7D 31

7D 27 7D 22

7D 28 7D 22

7D

27 E6

7E

 

                         

2 I

 

 

 

 

 

 

 

 

 

 

7E

FF 7D 23

C0 21

7D 22

7D 21

7D 20 7D 34

7D 22 7D 26 7D 20 7D 20 2D 20 7D 20

7D 25 7D 26

52 7D 38 7D 30 44

7D 27 7D 22

7D 28 7D 22

85 88

7E

 

                   

3 I

 

 

 

 

7E

FF 7D 23

C0 21

7D 23

7D 21

7D 20 7D 28

7D 23 7D 24 CO 23

22 48

7E

4 U

 

 

7E

FF 7D 23

C0 21

7D 21

7D 22

7D 20 7D 3C

7D 21 7D 24 7D 25 EA

7D 22 7D 26 7D 20 7D 20 7D

20 7D 20

7D 23 7D 24 C0 23

7D 25 7D 26 2F 7D 35 B2 7D 31

7D 27 7D 22

7D 28 7D 22

9F 40

7E

                           

5 I

 

 

 

 

7E

FF 7D 23

C0 21

7D 22

7D 22

7D 20 7D 3C

7D 21 7D 24 7D 25 EA

7D 22 7D 26 7D 20 7D 20 7D

20 7D 20

7D 23 7D 24 C0 23

7D 25 UD 26 2F 7D 25 B2 7D 31

7D 27 7D 22

7D 28 7D 22

AC 7D 3A

7E

 

                         

6 U

 

 

 

 

 

 

 

 

7E

FF 3

C0 23

1

1

0 E

4 43 41 52 44

4 43 41 52 44

26 C2

7E

7 U

 

 

7E

C0 23

2

1

0 5

0

FD 30

7E

8 I

 

 

7E

80 21

1

3

0 10

2 6 0 2D F 0

3 6 DC C0 0 9

46 D8

7E

9 I

 

 

7E

FF 3

80 21

1

1

0 16

3 6 0 0 0 0

81 6 0 0 0 0

83 6 0 0 0 0

6E DB

7E

10U

 

 

7E

FF 3

80 21

4

3

0 A

2 6 0 2D F 0

F5 54

7E

11U

 

 

7E

80 21

3

1

0 16

3 6 DC CF 57 8C

81 6 DC C0 0 82

83 6 DC C0 8 3A

18 39

7E

12I

 

 

7E

FF 3

80 21

1

2

0 16

3 6 DC CF 57 8C

81 6 DC C0 0 82

83 6 DC C0 8 3A

67 AA

7E

13U

 

 

7E

80 21

1

4

0 A

3 6 DC C0 0 9

62 4C

7E

14I

 

 

7E

80 21

2

2

0 16

3 6 DC CF 57 8C

81 6 DC C0 0 82

83 6 DC C0 8 3A

F1 C9

7E

15I

 

 

7E

FF 3

80 21

2

4

0 A

3 6 DC C0 0 9

75 D6

7E

16U

 

 

在上图中,每个报文最左边的数字是协商过程的报文序号,紧接着的U字母代表的是申请PPP服务的用户发出的PPP协商报文,而I则代表ISP发出的PPP协商报文,这里具体就是联通的CDMA网络。下面对整个协商过程进行详细解析:

1)在真正进行PPP协商之前,还有一个AT命令拨号过程,联通CDMA要求拨#777申请数据业务,而Q2358C模块的拨号命令是ATD,因此 合起来就是:ATD#777;,注意,Q2358拨号命令后面要加一个分号;拨号完后,要等待CDMA返回“CONNECT”,这时候才能进行后续的 PPP协商;

2)第一个起始PPP问旬包必须由用户发起,否则联通CDMA不会响应。包的内容见上图中第1序号包,这里要说明一点:在PPP协商的LCP阶段, 除了起始和结束的PPP报标志符7E,报文中任何地方的值小于0x20的字符,以及字符7F,7E和7D,都要转义,转义的方法是把其值和0x20异或后 的值紧接着7D发送。

3)从第1序号报的第三个框的“C0 21”字符结合上表2可以看出,这是一个LCP报文,第四个框“7D 21”就是01,根据上表3可以看出这是用户发出的请求报,而根据第五个框的内容知道这是用户发出的第一个报,第六个框是整个报文的长度,占两个字节,后 面的内容是各种选项,倒数第二个框的内容则是FCS校验值填充的地方,占两个字节;

4)CDMA接受到第1序号报后,将先后发送第2序号和第3序号LCP报,其中第2序号报是请求报,请求用户对其携带到选项进行同意或者拒绝,如2 号报第7个框“7D 21 7D 24 7D 25 EA”中“7D 21”表示第1个LCP协商选项,其长度为“7D 24”即4个字节,后面两个字节“7D 25 EA”即“05 EA”是其选项值,整个1号选项的用途就是规定PPP报文最大数据有限载荷是5EA,也就是1514个字节,其他选项的结构的理解与此完全一样,后面不再 赘述。关于LCP报文各种选项的意义,可参阅相关RFC文档;

5)CDMA的发出的第3序号报是同意用户发出的第1序号报的,这可以从其第四个框的值“7D 22”也即02,根据表3,其表示接受配置的意思;

6)从第4序号报的第4框内容“7D 23”即03,结合表3,可以得知用户拒绝了CDMA请求报中选项3的配置,表示用户不接受CHAP(C2 23)认证,用户只接受PAP认证(C0 23);

7)CDMA收到用户刚才的反应后,马上发出第2个请求报,这时候把第3选项的配置改成了用户希望的PAP认证(C0 23),见上图5号报;

8)第6序号报表示用户同意CDMA的LCP配置,这里要说明一点,选项2是设置是否要对0x20以下的字符值进行转义的,因为选项2的值是全0,则说明以后的PPP报文不再对值为0x20以下的值转义,但是对于值为7D、7E、7F的字符依然要进行转义发送;

9)从第7序号报开始,LCP协商过程结束,现在开始进行的是PAP认证,联通的PAP认证的用户名和密码都是“CARD”,也即ASCII值“0x43、0x41、0x52、0x44”;第8序号报表示CDMA通过了用户的认证;

10)根据表2,可以看出,第9序号报开始是NCP会话也即IPCP会话阶段,CDMA请求用户是否同意其网关IP地址:DC.C0.0.9,见其倒数第3个框也即3号选项所包含的值;

11)之后的过程完全可以按照上面类推分析下去,当全部16个PPP报文会话完毕后,将获得四项关健值:即分配的IP地址: DC.CF.57.8C; 远程网关:DC.C0.0.9;主DNS:DC.C0.0.82;次DNS:DC.C0.8.3A。之后就可以嵌入真正的IP数据报进行数据打包传输。

数据链路层-第五节:点对点协议ppp(代码片段)

...科大教书匠计算机网络笔记导航文章目录一:点对点协议(PPP)概述二:PPP协议组成部分三:PPP协议帧格式四:PPP协议的透明传输(1)字节填充法(2)比特填充法五:PPP协议的差错检测... 查看详情

ppp协议(代码片段)

PPP协议点到点的协议(PointtoPointprotocol,PPP)是IEFI(InternetENgineeringTaskFoerce,英特网工程任务组)突出的点到点类型线路的数据链路层协议。它解决了SLIP中的问题,并成为正式的英特网标准PPP协议在RFC1661、RFC1662和RFC1663中进行了... 查看详情

ppp协议

PPP协议简介  点到点协议(Point-to-PointProtocol,PPP)提供了一种在点到点链路上封装网络层协议信息的标准方法。PPP最初设计是为两个对等节点之间的IP流量传输提供一种封装协议,在TCP-IP协议集中它是一种用来同步调制连接的... 查看详情

ppp点对点协议

一、PPP概述1)PPP基本概念PPP(PointtoPointProtocol)点对点协议,是提供在点到点链路上传递、封装网络层数据包的一种数据链路层协议PPP处于OSI参考模型的数据链路层,主要用于支持全双工的同异步链路上,进行点到点之间的数据... 查看详情

计算机网络(谢希仁第七版)第三章(数据链路层)--3.2点对点协议ppp(ppp协议的特点&ppp协议的帧格式&ppp协议的工作状态)

1.点对点协议PPP1.1PPP协议的特点我们知道,互联网用户通常都要连接到某个ISP才能接入到互联网。PPP协议就是用户计算机和ISP(互联网服务提供者)进行通信时所使用的数据链路层协议。1.1.1PPP协议应满足的需求支持... 查看详情

ppp协议

PPP协议帧格式PPP数据帧格式如下所示:7EFF03   7E标志地址控制协议域信息域校验标志1B1B1B2B缺省1500B2B1B每个PPP数据帧都是以一个标志字节开始和结束的,该字节为0x7E.接下来分别为地址域,值固定位0xFF(因为点对点协... 查看详情

ppp协议

PPP协议是计算机用户和ISP进行通信所使用的数据链路层协议  PPP协议的要求:  ?     简单:接收端每接收一个帧进行CRC 检验,正确就接收,错误则丢弃  ?     封装成帧  ?    ... 查看详情

ppp协议的概念

点对点协议(PointtoPointProtocol,PPP)为在点对点连接上传输多协议数据包提供了一个标准方法。PPP最初设计是为两个对等节点之间的IP流量传输提供一种封装协议。在TCP-IP协议集中它是一种用来同步调制连接的数据链路层协议(OS... 查看详情

配置交换机和路由器中的ppp协议是啥意思

1.PPP协议是点到点协议,是用于连接到广域网的协议。2.连接到点到点还可以用帧中继和HDLC等3.ppp还可已使用pap和chap认证方式。分别是2次握手和3次握手方式chap比较安全。他不传输明文密码。参考技术APPP是一种得到广泛应用的广... 查看详情

ppp协议是什么

PPP(点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网... 查看详情

ppp协议

并维护数据链路连接。网络控制协议(NCP)允许在点到点连接上使用多种网络层协议(被动路由协议)。PPP包含4个主要组件:01EIA/TIA-232-C、V.24、V.35和ISDN串行通信的物理层国际标准。02HDLC在串行链路.上封装数据报的方法。03LCP-种建立... 查看详情

计算机网络:ppp协议与hdlc协议

PPP协议PPP(Point-to-PointProtocol)是使用串行线路通信的面向字节的协议,该协议应用在直接连接两个结点的链路上。设计的目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单... 查看详情

ppp方式是何种上网方式?

...是什么呀?首先要明确什么是PPP?PPP的中文翻译是点对点协议。PPP是一种明文认证方式具体的含义是“在点对点连接上传输多协议数据包提供了一个标准方法。PPP最初设计是为两个对等节点之间的IP流量传输提供一种封装协议。... 查看详情

ppp协议分析实验报告

实验工具Gns3以及wireshark实验目的了解ppp协议的工作原理及方式并验证,提升对ppp协议的了解实验步骤首先配置好第一台路由器的ip及网关,并把路由器之间的验证方式改为ppp协议,调制好交换频率,在gns3中启动它,然后开始配... 查看详情

ppp验证(pap和chap)

PPP协议:点对点协议,是一种点到点方式的链路层协议,它是在SLIP协议的基础上发展起来的。PPP的主要组成及其作用如下:1:链路控制协议(LCP):主要用于管理PPP数据链路,包括进行链路层参数的协商,建立,拆除和监控数... 查看详情

ppp验证(pap和chap)

PPP协议:点对点协议,是一种点到点方式的链路层协议,它是在SLIP协议的基础上发展起来的。PPP的主要组成及其作用如下:1:链路控制协议(LCP):主要用于管理PPP数据链路,包括进行链路层参数的协商,建立,拆除和监控数... 查看详情

ppp验证(pap和chap)

ppp协议PPP协议是一种点到点的链路协议,主要运用于在全双工的链路上进行点到点的数据传输特点:-支持点到点和点到多点-支持同步和异步串行服务-可同时支持多种网络层协议-支持验证-支持地址自动协商,能够远程分配IP地... 查看详情

配置ppp封装和认证(代码片段)

ppp点对点协议(PointtoPointProtocol,PPP)为在点对点连接上传输多协议数据包提供了一个标准方法。PPP最初设计是为两个对等节点之间的IP流量传输提供一种封装协议。在TCP-IP协议集中它是一种用来同步调制连接的数据链路层协议... 查看详情