QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1080|回复: 0

嵌入式上实现PPPoE协议的问题

[复制链接]
发表于 2005-9-15 13:38:55 | 显示全部楼层 |阅读模式
一般的ADSL上不带PPPoE的拨号软件的话,由电信提供Windows上的PPPoE拨号软件来实现拨号上网。而如果ADSL自己可以拨号,则在设置完ADSL之后可以在下行接到Hub实现局域网访问Internet。

    我阅读了协议分析网站(http://www.cnpaf.net)上的PPPoE协议,PPPoE在完成发现和会话的两步操作之后,等于在两种设备之间建立了一个P2P的连接,接下来转入PPP会话,按照协议分析网站上文章所提示的信息(http://www.cnpaf.net/Class/PPP/0532918532898825.html,http://www.cnpaf.net/Class/PPP/0532918532877576.html),以图示上的协议层次来看,则IP数据包应该被PPP封包,然后被PPPoE封包,再加上Ethernet包头进行传送。
   
    在RedHat Linux 8.0中(kernel version 2.4.×),可以编译运行实现PPPoE拨号的应用程序(rp-pppoe3.5),分析程序代码发现它是依赖Linux系统服务中的pppfd来完成功能。实际测试中可以通过它拨号上网,但是使用Etherreal软件抓包发现在所有Ethenet包下面只存在两种模式的数据包(只在IP层分析),一种是IP数据包,一种是PPP数据包,对于PPP数据包的可以解析出此时的PPPoE或PPP信号内容,如PADI,PADT等。但对IP数据包则只能看到是由Ethenet头和IP头的构成。没有上述描述中的PPP封包信息。

    这种情况下的数据包格式类似于PPP同IP是并列的模式,都构建在Ethenet层上,而不是IP构建于PPP之上,而且此时的数据内容也不需要PPP进行封包和解包操作。这与协议上的描述产生冲突。

  由于在协议分析网上的中文资料不是很多,而英文的Rfc文档对于实际使用中的情况描述也不详细。所以一直没有搞清楚这一点。在希望将PPPoE协议在嵌入式设备上实现时,需不需要对使用PPPoE形式接入Internet的嵌入式设备中的底层协议栈部分进行修改就会出现很大的分歧。如果有封包解包动作,则PPPoE会一直运行到结束,并且不能直接使用系统提供的TCP/IP协议栈,如果没有封包,则可以使用。

    希望研究过PPPoE和PPP的朋友能够提供相关的信息和讨论。 谢谢。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 04:25 , Processed in 0.034634 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表