Hao_ni
驱动牛犊
驱动牛犊
  • 注册日期2002-02-15
  • 最后登录2005-02-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2007回复:0

PPP协议分析.LCP协议分析.请大家来考证考证.

楼主#
更多 发布于:2003-06-29 16:21
下面是我用MC35T模块向ISP拨号(ATD *99**1#)后的返回代码:


41 54 44 20 2A 39 39 2A 2A 2A 31 23 0D 0D 0A 43 4F 4E 4E 45 43 54 0D 0A 一 7E FF 7D 23 C0 21 7D 21 7D 23 7D 20 7D 3D 7D 21 7D

24 7D 27 D0 7D 22 7D 26 7D 20 7D 2A 7D 20 7D 20 7D 27 7D 22 7D 28 7D 22 7D 25 7D 26 4B 4F 21 5F 7D 23 7D 25 C2 23 7D 25 83 7D

25 7E 二 7E FF 7D 23 C0 21 7D 21 7D 23 7D 20 7D 3D 7D 21 7D 24 7D 27 D0 7D 22 7D 26 7D 20 7D 2A 7D 20 7D 20 7D 27 7D 22 7D 28

7D 22 7D 25 7D 26 4B 4F 21 5F 7D 23 7D 25 C2 23 7D 25 83 7D 25 7E 三 7E FF 7D 23 C0 21 7D 21 7D 23 7D 20 7D 3D 7D 21 7D 24 7D

27 D0 7D 22 7D 26 7D 20 7D 2A 7D 20 7D 20 7D 27 7D 22 7D 28 7D 22 7D 25 7D 26 4B 4F 21 5F 7D 23 7D 25 C2 23 7D 25 83 7D 25 7E

四 7E FF 7D 23 C0 21 7D 21 7D 23 7D 20 7D 3D 7D 21 7D 24 7D 27 D0 7D 22 7D 26 7D 20 7D 2A 7D 20 7D 20 7D 27 7D 22 7D 28 7D 22

7D 25 7D 26 4B 4F 21 5F 7D 23 7D 25 C2 23 7D 25 83 7D 25 7E 五 7E FF 7D 23 C0 21 7D 21 7D 23 7D 20 7D 3D 7D 21 7D 24 7D 27 D0

7D 22 7D 26 7D 20 7D 2A 7D 20 7D 20 7D 27 7D 22 7D 28 7D 22 7D 25 7D 26 4B 4F 21 5F 7D 23 7D 25 C2 23 7D 25 83 7D 25 7E 六 7E

FF 7D 23 C0 21 7D 21 7D 23 7D 20 7D 3D 7D 21 7D 24 7D 27 D0 7D 22 7D 26 7D 20 7D 2A 7D 20 7D 20 7D 27 7D 22 7D 28 7D 22 7D 25

7D 26 4B 4F 21 5F 7D 23 7D 25 C2 23 7D 25 83 7D 25 7E 七 7E FF 7D 23 C0 21 7D 21 7D 23 7D 20 7D 3D 7D 21 7D 24 7D 27 D0 7D 22

7D 26 7D 20 7D 2A 7D 20 7D 20 7D 27 7D 22 7D 28 7D 22 7D 25 7D 26 4B 4F 21 5F 7D 23 7D 25 C2 23 7D 25 83 7D 25 7E 八 7E FF 7D

23 C0 21 7D 21 7D 23 7D 20 7D 3D 7D 21 7D 24 7D 27 D0 7D 22 7D 26 7D 20 7D 2A 7D 20 7D 20 7D 27 7D 22 7D 28 7D 22 7D 25 7D 26

4B 4F 21 5F 7D 23 7D 25 C2 23 7D 25 83 7D 25 7E 九 7E FF 7D 23 C0 21 7D 21 7D 23 7D 20 7D 3D 7D 21 7D 24 7D 27 D0 7D 22 7D 26

7D 20 7D 2A 7D 20 7D 20 7D 27 7D 22 7D 28 7D 22 7D 25 7D 26 4B 4F 21 5F 7D 23 7D 25 C2 23 7D 25 83 7D 25 7E 十 7E FF 7D 23 C0

21 7D 21 7D 23 7D 20 7D 3D 7D 21 7D 24 7D 27 D0 7D 22 7D 26 7D 20 7D 2A 7D 20 7D 20 7D 27 7D 22 7D 28 7D 22 7D 25 7D 26 4B 4F

21 5F 7D 23 7D 25 C2 23 7D 25 83 7D 25 7E 结束 0D 0A 4E 4F 20 43 41 52 52 49 45 52 0D 0A

其中的汉字一,二,三,四.....一直到十和最后的结束都是我加上去的.表示ISP十次返回相同的PPP帧.第一帧前面的代表 CONNECT 结束后面的代表 NO CARRIER
由于十个帧都一样,所以我取出一个分析.完整帧如下:

7E FF 7D 23 C0 21 7D 21 7D 23 7D 20 7D 3D 7D 21 7D 24 7D 27 D0 7D 22 7D 26 7D 20 7D 2A 7D 20 7D 20 7D 27 7D 22 7D 28 7D 22 7D

25 7D 26 4B 4F 21 5F 7D 23 7D 25 C2 23 7D 25 83 7D 25 7E

整个帧中的所有小于0x20的字符都进行了转义.在前面加上0x7D然后将其第6个比特取补码.所以我去掉所有的转义字符后得到的原始
帧为

7E  FF  03  C0  21  01  03  00  1D  01  04  07 D0  02  06  00  0A  00  00  07  02  08  02  05  06  4B  4F  21

5F  03  05  C2  23  05  83  25  7E

7E开始7E结尾.FF是地址字节.03为控制字节.C0 21表示信息字段是链路控制数据.C021后面是链路控制数据.一直到83 25(2个CRC字段)
7E结尾.

链路控制数据分析如下:

01:REQ - Request options
03:ID for this packet
00 1D:Size of payload starting from negotiation code
01:Option 1, Maximum-Receive-Unit
04:Size of option 1, 4 Bytes
07 D0:Option value requested, MRU = 2000
02:Option 2, Async-Control-Character-Map
06:Size of option 2, 6 Bytes
00 0A 00 00:Value of Async-Control-Character-Map
07:Option 7, Protocol-Field-Compression
02:Size of option 7, 2 Bytes
08:Option 8,Address-and-Control-Field-Compression
02:Size of option 8, 2 Bytes
05:Option 5, Magic number
06:Size of option 5, 6 Bytes
4B 4F 21 5F:Value of magic number
03:Option 3,Authentication-Protocol
05:Size of option 3, 5 Bytes
C2 23 05:Value of Authentication-Protocol

好了.问题出来了.

1.我对这一段有想法:

02:Option 2, Async-Control-Character-Map
06:Size of option 2, 6 Bytes
00 0A 00 00:Value of Async-Control-Character-Map

在RFC1661中并没有关于Option 2  Async-Control-Character-Map的定义,只有如下东西:

         0       RESERVED
         1       Maximum-Receive-Unit
         3       Authentication-Protocol
         4       Quality-Protocol
         5       Magic-Number
         7       Protocol-Field-Compression
         8       Address-and-Control-Field-Compression

而Async-Control-Character-Map 是我根据一个

Connecting an M68HC08 Family Microcontroller to an
Internet Service Provider (ISP) Using the Point-to-Point
Protocol (PPP)

中的例子描述得来的.RFC1661中没有关于Option 2 的定义.那是不是
我分析控制数据分析错误了呢?

2.

07:Option 7, Protocol-Field-Compression
02:Size of option 7, 2 Bytes
08:Option 8,Address-and-Control-Field-Compression
02:Size of option 8, 2 Bytes

是ISP和我商讨压缩.好理解.

3.Magic number

05:Option 5, Magic number
06:Size of option 5, 6 Bytes
4B 4F 21 5F:Value of magic number

ISP发这个给我,是想检测是否存在loopback.当接收到一个带有Magic-Number配置选项的Configure-Request时候,接收到的Magic-Number与最后
一个发送给peer的Configure-Request的Magic-Number相比较。如果两个Magic-Number不同,则该链路不被looped-back,而且Magic-Number应该
被确认。如果两个Magic-Number相等,那么有可能,但是不确定,该线路是looped-back,并且该Configure-Request实际上是上一次发送的。为
了确认它,必须发送一个Configure-Nak指定一个不同的Magic-Number值。一个新的Configure-Request应该不被发送到peer,直到一般处理导致
它的发送(那就是说,直到收到一个Configure-Nak或者Restart计时器溢出)。

我和ISP之间显然不存在loopback.所以我必须发送一个Configure-Nak指定一个不同的Magic-Number值.这个值应该是多少呢?
它发给我的是
4B 4F 21 5F:Value of magic number

这个值由什么而来呢?

4.

03:Option 3,Authentication-Protocol
05:Size of option 3, 5 Bytes
C2 23 05:Value of Authentication-Protocol

最后这个是验证协议.C2 23代表挑战握手验证协议。
05是数据(数据域是零或多个八位字节,包含作为由详细协议决定了的附加数据)
这个05代表什么意思呢?
如果我要返回同意信息该如何写呢?

希望大虾们能考证考证.共同进步!
游客

返回顶部