Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4176906
  • 博文数量: 776
  • 博客积分: 13014
  • 博客等级: 上将
  • 技术积分: 10391
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-22 17:00
文章分类

全部博文(776)

文章存档

2015年(55)

2014年(43)

2013年(147)

2012年(20)

2011年(82)

2010年(429)

分类: LINUX

2010-12-28 20:59:33

7E FF 7D 23 C0 21 7D 21 7D 21 7D 20 7D 36 7D 21 7D 24 7D 25 DC 7D 22 7D 26 7D 20 7D 20

7D 20 7D 20 7D 27 7D 22 7D 28 7D 22 7D 23 7D 24 C0 23 26 B4 7E

 

对出现7D后面的字节的第6位要取反

 

地址 控制   代码  LCP包长度           数据域,格式由代码域决定     PPP结束标志

 


7E FF 03 C0 21 01 01 00 16 01 04 05 DC 02 06 00 00 00 00 07 02 08 02 03 04 C0 23 26 B4 7E

 


PPP     协议域 标识符     一组         二组      三组  四组   五组   CRC

标志    这里表示                                                  循环冗余检校

字符    LCP                                                      FCS

                                                                   帧检验序列

 

LCP

 

当遇到字符0x7e时,需连续传送两个字符:0x7d0x5e,以实现标志字符的转义。
当遇到转义字符0x7d时,需连续传送两个字符:0x7d0x5d,以实现转义字符的转义。

 

默认情况下,如果字符的值小于0x20(比如,一个ASCII控制字符),一般都要进行转义。例如,遇到字符0x01时需连续传送0x7d0x21两个字符(这时,第6个比特取补码后变为1,而前面两种情况均把它变为0)。

PPP封装中:

 

PPP标志字符PPP结束标志是永远不变化的。

 

协议域是可变的,RFC1700中。

Value (in hex)     Protocol Name0001          Padding Protocol填料协议0003 to 001f      reserved (transparency inefficient)保留(透明度效率低的)0021              信息字段为IP数据报(可以直接传输IP包)007d       reserved (Control Escape)保留(控制逃逸)00cf       reserved (PPP NLPID)保留(PPP NLPID)00ff       reserved (compression inefficient)保留(压缩效率低的)8001 to 801f      unused(未使用)8021                               IPCP807d          unused(未使用)80cf          unused(未使用)80ff          unused(未使用)c021    Link Control Protocol链路控制协议c023    Password Authentication Protocol密码认证协议c025    Link Quality Report链路品质报告c223    Challenge Handshake Authentication Protocol挑战-认证握手协议

LCP包中

 

代码 | 标识符 | 长度 | 数据

一条Configure- Request,必须得到回复后才可以发另外不同标识符的Configure- Request,要不需要重发。不可以并发不同标识符的Configure- Request。必须回复要不操时断开连接

代码:  代码域是一个八位字节,确定LCP包的种类。RFC1700中。Code       Packet Type----       -----------   1       Configure-Request 2       Configure-Ack   3       Configure-Nak   4       Configure-Reject   5       Terminate-Request   6       Terminate-Ack   7       Code-Reject   8     * Protocol-Reject   9     * Echo-Request  10     * Echo-Reply  11     * Discard-Request  12     * Identification  13     * Time-Remaining  14     + Reset-Request  15     + Reset-Reply* LCP Only+ CCP Only标识符标识符域是一个八位字节,对匹配请求和回复中有帮助。当带有无效标识符域的包被接收时候,该包将不影响自动机制,被静静的丢弃。在请求中随机指定一个标识符的值,然后peer回复该请求的应答中应该用同样值作为标识符。长度  长度域是二个八位字节,指出整个LCP包的长度,包括代码,标识符,长度和数据域。该长度必须不超过链路的MRU长度域以外的字节被当作填料而忽略处理。当收到带有无效长度域该包将不影响自动机制,被静静的丢弃。数据数据域是零或多个八位字节,由长度域声明。数据域的格式由代码域决定。是对于链路的一些配置选项。因为数据就是一些配置,并且可以包括不止一项配置的设置。所以该数据有其特定的格式,用来进行各种配置的设定。每项配置都由该项配置的类型、长度和数据域组成,有几项配置就有几组类型、长度和数据域 | 类型 | 长度 | 数据 | 类型 | 长度 | 数据………| 类型 | 长度 | 数据         一组                 二组    ………………        n配置类型:     类型域是一个八位字节指出所要进行什么样的配置,RFC1700中。Type       Configuration Option----       --------------------   1       Maximum-Receive-Unit   2       Async-Control-Character-Map   3       Authentication-Protocol          C023   密码证明协议PAP                                          C223  挑战握手验证协议CHAP                                                                                                          4       Quality-Protocol                C025   链路质量报告   5       Magic-Number   6       RESERVED   7       Protocol-Field-Compression   8       Address-and-Control-Field-Compression   9       FCS-Alternatives            1     Null FCS                                        2     CCITT 16-Bit FCS                                        4     CCITT 32-bit FCS  10       Self-Describing-Pad  11       Numbered-Mode  12       Multi-Link-Procedure  13       Callback  14       Connect-Time  15       Compound-Frames  16       Nominal-Data-Encapsulation  17       Multilink-MRRU  18       Multilink-Short-Sequence-Number-Header-Format  19       Multilink-Endpoint-Discriminator  20       Proprietary                                     [KEN]  21       DCE-Identifier                            [SCHNEIDER] 长度

该项配置的长度,包括类型域,长度域,数据域。

 

数据

就是对该项配置选项进行数值上的配置

 

PAP

 

PPP包中协议域为C023,那么PPP信息字段的就是PAP包;

什么时候可以进入这个验证阶段来发送PAP包?

注:之前的LCP包配置链路时应该有一组配置为 03 04 C0 23

收到的类似PAP包格式有点不一样缺少了前面的地址和控制 FF 03

 

 

代码 | 标识符 | 长度 | 数据

 

代码:

代码域是一个八位字节,确定PAP包的种类。RFC1700中没有。

1   Authenticate-Request

2   Authenticate-Ack

3          Authenticate-Nak

 

标识符:

标识符域是一个八位字节,对匹配请求和回复;

 

长度:

长度域是二个八位字节,指出整个PAP包的长度,包括代码,标识符,长度和数据域。

 

数据

数据域是零或多个八位字节,数据域的格式由代码域决定。    

 

Authenticate-Request数据域内容:

Peer-ID-Length           一个字节,表示Peer-ID的长度

Peer-ID                 零或多个字节,表示用户ID

Peer-Password-Length     一个字节,表示Peer-Password的长度

Peer-Password           零或多个字节,表示用户Password

 

 

Authenticate-AckAuthenticate-Nak数据域内容:

Msg-Length             一个字节,表示Message的长度

Message               零或多个字节,表示可显示的ACC-II字符32126

   

 

CHAP

 

PPP包中协议域为C223,那么PPP信息字段的就是CHAP包;

注:之前的LCP包配置链路时应该有一组配置为 03 05 C2 23 XX=012345MD5))红色表示所选哈希算法

 

代码 | 标识符 | 长度 | 数据

 

代码:

代码域是一个八位字节,确定CHAP包的种类。RFC1700中没有。

1   Challenge

2          Response

3          Success

4          Failure

 

标识符:

标识符域是一个八位字节,对匹配challenge,responsereplies

 

长度:

长度域二个八位字节,指出整个CHAP包的长度,包括代码,标识符,长度和数据域。

 

数据

数据域是零或多个八位字节,数据域的格式由代码域决定。    

 

ChallengeResponse数据域内容:

Value-Size            一个字节,表示Value  的长度

Value                零或多个字节,首先传输最高位

Challenge Value可变字节流,长度独立于哈希算法,每次发送Challenge必须改变Value

Response  Value是在字节流上用哈希算法计算得到的,字节流包括标识符,后面是secret,在后面是ChallengeValue。长度依赖于哈希算法,(对于MD5Rsponse Value16个字节)

 

Name                一个或多个字节,表示发送方系统的标识

 

SuccessFailure数据域内容:

Message                零或多个字节,表示可显示的ACC-II字符32126

 

  

IPCP

 

PPP包中协议域为8021,那么PPP信息字段的就是IPCP包;

IPCP包不可以在PPP协议达到网络层的协议阶段之前被交换。

 

代码 | 标识符 | 长度 | 数据

 

代码:

代码域是一个八位字节,确定IPCP包的种类。RFC1700中有。

Code在(1-7)之外的其他编码应该被处理为未经承认并且应该导致结果Code-RejectsCode       Packet Type----       -----------   1       Configure-Request   2       Configure-Ack   3       Configure-Nak   4       Configure-Reject   5       Terminate-Request   6       Terminate-Ack

7                        Code-Reject

 

 

标识符:

标识符域是一个八位字节,匹配请求和回复;

 

长度:

长度域二个八位字节,指出整个IPCP包的长度,包括代码,标识符,长度和数据域。

 

数据

数据域是零或多个八位字节,数据域的格式由代码域决定。    

 

数据域内容:为选项配置类似与LCP

 

类型:一个字节,表示数据域为什么选项配置; 1 IP-地址(Addresses 2 IP-压缩协议

 3 IP-地址(Address

 

 

当类型为2时,即IP-压缩协议的IPCP包数据域为

| 类型 | 长度 | IP-压缩协议 || 数据...类型 一个字节,这里值2长度:一个字节,为为整个IPCP数据域的长度包括类型,长度,IP-压缩协议,数据IP-压缩协议:   二个字节,给本域的值总是和给那个相同的压缩协议的PPP协议数据链路层协议域值同样的东西。002d        Van Jacobson Compressed TCP/IP   可以压缩TCP/IP报头缺省情况下不使用压缩协议数据:数据区是零,或者,由特别压缩协议决定的更多的八位字节的附加数据数据。当类型为3时,即IP-地址的IPCP包数据域为| 类型 | 长度 | IP-地址 |类型 一个字节,这里值3 长度:一个字节,为为整个IPCP数据域的长度包括类型,长度,IP地址,这里值为6 IP-地址4个八位字节IP地址是发件人在Configure-Request中要求的本端地址。如果全部4个八位字节都是零值,它表示请求对端提供IP-地址信息。Van Jacobson TCP/IP报头压缩可以压缩TCP/IP报头 IP当协议字段0021 典型IP),002d(压缩TCP),002f(未压缩TCP)可以传输IP此时信息字段就是IP包。但必须在IPCP之后才能传输,此时发送PPP封装的IP包了。 注意:PPP中的FCS是利用没有转义前的不包括前后FLAG7FPPP包中的其他信息(地址FF,控制03,协议域,信息字段,填充),计算出来后加在结束FLAG前。 LCP Configure-Request7E FF 03 C0 21 01 01 00 16 01 04 05 DC 02 06 00 00 00 00 07 02 08 02 03 04 C0 23 26 B4 7ELCP Configure-Ack7E FF 03 C0 21 02 01 00 16 01 04 05 DC 02 06 00 00 00 00 07 02 08 02 03 04 C0 23 D0 47 7E7E FF 7D 23 C0 21 7D 22 7D 21 7D 20 7D 36 7D 21 7D 24 7D 25 DC 7D 22 7D 26 7D 20 7D 20 7D 20 7D 20 7D 27 7D 22 7D 28 7D 22 7D 23 7D 24 C0 23 D0 47 7EPAPAuthenticate-Request7E FF 03 C0 23 01 02 00 06 00 00 4D 34 7F 

链路死亡阶段

链路建立阶段

认证阶段

 

 

 


在链路死亡阶段通过拨号

ATD*99***1#

进入链路建立阶段

                                      

 

 

在链路建立阶段,利用LCP

进行链路的一些Configure

完成配置后进入认证阶段

 

 

 

 

 


在认证阶段才可以发送PAP或者CHAP

利用PAP进行认证Authenticate

只有通过认证才可以进入网络层协商阶段

 

网络层协商阶段

 

 

 


                                        在网络层协商阶段,利用IPCP包进行

                                        网络层方面的协商,如分配IP地址

                                                                      只有通过了协商得到了IP地址才可以

进行通信

当然还有其他的IP已外的网络层协议

                                        IPXAppleTalk等,这里不考虑

上网阶段

 

 

 


载波信号丢失,认证失败,

链路质量失败

链路终止阶段

LCP Terminate 包等可以终止链路

 

 

 

Type       Configuration Option----       --------------------   1       Maximum-Receive-Unit         最大接收单元 1500 BYTES   2       Async-Control-Character-Map   3       Authentication-Protocol          C023   密码证明协议PAP                                          C223  挑战握手验证协议CHAP                                                                                                                      4       Quality-Protocol                C025   链路质量报告   5       Magic-Number   6       RESERVED   7       Protocol-Field-Compression      协议域压缩???                                        现在的表现是少了帧中的(FF 03   8       Address-and-Control-Field-Compression   9       FCS-Alternatives            1     Null FCS                                       2     CCITT 16-Bit FCS                                       4     CCITT 32-bit FCS  10       Self-Describing-Pad  11       Numbered-Mode  12       Multi-Link-Procedure  13       Callback  14       Connect-Time  15       Compound-Frames  16       Nominal-Data-Encapsulation  17       Multilink-MRRU  18       Multilink-Short-Sequence-Number-Header-Format  19       Multilink-Endpoint-Discriminator  20       Proprietary                                     [KEN]  21       DCE-Identifier                            [SCHNEIDER]

 

 

 

上面的配置协商是谁发送Request,那么谁就可以接收而不是发送配置中协商的格式的数据

 

利用PPP封装IP包协议域应该是0021,信息域就是完整的IP

地址 控制     IP报头  UDP报头              用户数据             PPP结束标志

 


7E FF 03 00 21 $$$$$$$$ &&&&****************************************** 26 B4 7E

 


PPP     协议域                            UDP                     CRC

标志    这里表示                                                  循环冗余检校

字符    典型IP                                                    FCS

                                                                   帧检验序列

 

IP

 

 

UDP

发送端口号

16

接收端口号

16

UDP包长(报头和数据)单位为octet

16

检查和(不用的时候可以为0

16

数据部分

 

IP

IP版本

默认为4

4

IP报头长

4 octet

4

服务类型

IP服务的质量

8

包长度(包括IP报头和IP数据)

单位为octet

16

标识

在分段处理的时候作为重组的时候用

16

标志

分段控制信息

3

段位移量

表示所分割的段是在原数据的什么位置上,单位为 8 octet

13

生存时间

表示这个IP包可以经过路由器的个数

8

协议

传输层协议所采用的通信协议(UDP17

8

报头检查和

IP报头部分的检查和

16

发送端IP地址

32

接收端IP地址

32

可选项(可有可无)

填充物(为了配合IP报头长的单位)

(在有可选项时让IP报头是32位的整数倍)

数据(传输层数据包)这里为UDP包(UDP报头和数据)

 

阅读(4140) | 评论(0) | 转发(0) |
0

上一篇:左移5位

下一篇:pppd实现研究

给主人留下些什么吧!~~