游子的博客
慈母手中线,游子身上衣, 临行密密缝,意恐迟迟归, 谁言寸草心,报得三春晖。 数据读取中,请稍候......
posts - 337,  comments - 546,  trackbacks - 0

PPP与PPPOE的关系
作者:游子 http://www.cnitblog.com/liaoqingshan/  2008.12.22

        刚做好了PPP协议,公司又要用PPPOE,于是开始看PPPOE。原来两种协议有着密切的,但又不是简单的包含与被包含的关系。
        为了弄明白他们之间的关系,以及他们与TCPIP之后又有什么关系,我先把他们报文举个例子说明一下:
===================报文识别=================
PPP报文样例:
7E        FF 03   
起始    PPP头  

00 21     45     00     00 30 86 65  40      00    80    06            6C 6F
IP类型  版本  服务长度   帧ID  FLGS OFF TTL 类型tcp   CRC

0A 0A 2A 2E 3D 87 96 34
源IP地址       目的IP地址

06 D3    00 50         BD 9D C6 F0 00 00 00 00 70           02        40 00  AF 7A       00 00
源端口 目的端口  SEQ 4字节    ACK 4字节 头长度 FLGS   WIN  TCP校验 紧急指针

02 04 05 B4 01 01 04 02
TCP选项 8字节

E5 6C         7E
PPP校验    结束
这是一个PC用MODM拨号上网号,发起TCP连接时发送的数据,用串口监控软件获得的报文。实际上,从串口发出的数据,并不是这样,还需要经过转义(把0x10,0x13或所以不大于0x20的字节转义),再发给对方。

再看一个PPPOE报文样例:
00 90 1A 40 F2 27 00 09 6B 50 A1 14 88 64             11                 00        0A 85  00 32
目的MAC 6字节   源MAC 6字节        PPPOE类型 版本与长度 代码 session 长度

00 21    45      00     00 30 C9 08 40      00    80     06         3F 97
IP类型 版本  服务长度   帧ID  FLGS OFF TTL 类型tcp CRC

CA 69 6C 46 3D 91 7D E7
源IP地址       目的IP地址

09 A8     00 50        9B 93 C3 78   00 00 00 00   70        02         40 00  E8 20      00 00
源端口 目的端口  SEQ 4字节    ACK 4字节 头长度 FLGS   WIN  TCP校验 紧急指针

02 04 05 86 01 01 04 02                             
TCP选项 8字节

这是用PC用ADSL拨号上网,发起TCP连接时发送的数据,用网络抓包工具ethereal获取的报文。与上述PPP不同,这已经是发送到网卡的数据,不需要转义。

从上面的两个报文我们可以看出两者有许多相同与不同之处:
相同:
从IP到TCP,两段数据完全一样,以普通以太网传输的内容没有区别。
不同:
1、PPP含有7E做为起始和结束,并有FF03作为报文头。而PPPOE没有。
2、PPP含有PPP CRC字段作为检验,而PPPOE没有。
3、PPPOE仍旧有以太网的MAC,作为接收和发送地址,而PPP没有。
4、PPPOE头中有一些session等字段,而PPP没有。

===================协商步骤=================
PPP的典型步骤为:
1、LCP:链路控制协议,主要商议转义规则和选择客户授权协议,典型4个报文
2、PAP或CHAP:使用其中一种协议申请授权,典型2个报文
3、IPCP:获取IP地址,DNS地址等(注意没有网关和子网掩码),典型3个或5个报文。

而PPP的典型步骤为:
1、PPPOE的发现阶段:典型4个报文,目的是获取对方的MAC地址和确定一个sessionid。
2、PPPOE的会话阶段:包含上述所有PPP步骤。
由此可见,PPPOE是在以太网链路上通过发现阶段打通一条PPP链接,再进行PPP协议。
posted on 2008-12-22 15:30 游子 阅读(4858) 评论(6)  编辑 收藏 引用 所属分类: 原创技术

FeedBack:
# re: PPP与PPPOE的关系(实例分析)
2009-10-13 11:40 | fxpbupt
很详细,非常好,哈哈  回复  更多评论
  
# re: PPP与PPPOE的关系(实例分析)[未登录]
2009-11-20 16:53 | sunny
你好,你调试了PPPOE这块啊,
想问你个问题,我现在也在调试PPPOE这块,一直调试不通,在LCP协商这部分不成功。有时间联系下,谢谢!
wdj8812345@126.com  回复  更多评论
  
# re: PPP与PPPOE的关系(实例分析)
2010-07-12 10:19 | winceos
# re: PPP与PPPOE的关系(实例分析)
2011-11-28 17:51 | rpual
我想请问,用wireshark抓去的数据包,为什么没有CRS校验呢?谢谢  回复  更多评论
  
# re: PPP与PPPOE的关系(实例分析)
2011-12-12 21:51 | 游子
@rpual
不明白你说的,是没有CRC吗?哪一层的CRC没有?  回复  更多评论
  
# re: PPP与PPPOE的关系(实例分析)
2013-06-13 11:53 | 网络过客
@rpual
crc肯定是有的,关键是网卡给主机呈上来的时候,要把crc去掉的。因为crc校验是硬件完成的,crc出错,自然会丢掉,只有crc正确的才能被主机上层应用程序接收比如wireshark,所有就没有必要把crc再报给上层应用程序  回复  更多评论
  
只有注册用户登录后才能发表评论。

欢迎大家扔鸡蛋!送鲜花!

博客可以收入过千吗?

<2008年10月>
日一二三四五六2829301234567
891011121314151617181920212223242526272829303112345678

常用链接

留言簿(8)

随笔分类(314)

随笔档案(337)

文章分类(7)

文章档案(10)

相册

收藏夹(1)

其它

友情链接

数字电视

生活、旅游

自己的链接

计算机

搜索

  •  

积分与排名

  • 积分 - 407922
  • 排名 - 9

最新评论

阅读排行榜

评论排行榜