dahubaobao
驱动牛犊
驱动牛犊
  • 注册日期2004-09-25
  • 最后登录2012-03-14
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望80点
  • 贡献值0点
  • 好评度44点
  • 原创分0分
  • 专家分0分
阅读:3873回复:6

协议驱动收PPPOE and PPP包和NDISWANIP问题?

楼主#
更多 发布于:2007-05-02 05:21
  2个问题,希望大家能给一些有帮助的回答,谢谢!之前也发过相关的帖子,都不了了知了,

1,我是ADSL拨号上网,将协议驱动绑定到上网用的网卡,收到的数据全是PPPOE and PPP包,不是说NDISWAN会在PPP和LAN之间转换吗? 为什么我收到的是原始的PPP包?  如:

Ethernet Type : 0x8864      //PPP会话包  用Maxthon访问baidu抓的
Packet Length : 354 Bytes
00000000      : 11 00 20 45 01 4E 00 21 45 00 01 4C 3D B2 40 00 .. E.N.!E..L=.@.
00000010      : 80 06 9D A2 DD C5 60 20 CA 6C 16 05 07 51 00 50 ......` .l...Q.P
00000020      : 26 EA B4 C2 FD 0E 65 56 50 18 FA F0 29 52 00 00 &.....eVP...)R..
00000030      : 47 45 54 20 2F 20 48 54 54 50 2F 31 2E 31 0D 0A GET / HTTP/1.1..
00000040      : 41 63 63 65 70 74 3A 20 2A 2F 2A 0D 0A 41 63 63 Accept: */*..Acc
00000050      : 65 70 74 2D 4C 61 6E 67 75 61 67 65 3A 20 7A 68 ept-Language: zh
00000060      : 2D 63 6E 0D 0A 55 41 2D 43 50 55 3A 20 78 38 36 -cn..UA-CPU: x86
00000070      : 0D 0A 41 63 63 65 70 74 2D 45 6E 63 6F 64 69 6E ..Accept-Encodin
00000080      : 67 3A 20 67 7A 69 70 2C 20 64 65 66 6C 61 74 65 g: gzip, deflate
00000090      : 0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A 20 4D 6F ..User-Agent: Mo
000000A0      : 7A 69 6C 6C 61 2F 34 2E 30 20 28 63 6F 6D 70 61 zilla/4.0 (compa
000000B0      : 74 69 62 6C 65 3B 20 4D 53 49 45 20 36 2E 30 3B tible; MSIE 6.0;
000000C0      : 20 57 69 6E 64 6F 77 73 20 4E 54 20 35 2E 32 3B  Windows NT 5.2;
000000D0      : 20 53 56 31 3B 20 4D 61 78 74 68 6F 6E 3B 20 2E  SV1; Maxthon; .
000000E0      : 4E 45 54 20 43 4C 52 20 31 2E 31 2E 34 33 32 32 NET CLR 1.1.4322
000000F0      : 29 0D 0A 48 6F 73 74 3A 20 77 77 77 2E 62 61 69 )..Host: [url]www.bai[/url]
00000100      : 64 75 2E 63 6F 6D 0D 0A 43 6F 6E 6E 65 63 74 69 du.com..Connecti


2,协议驱动到底能不能绑定NDISWANIP?为什么我绑定了就上不了网了,比如访问baidu,首先是域名解析,可发向域名服务器53端口的包根本就没有回应.其他网络程序也都试了,发出去的包都没有回应,不知道这是什么问题?

PS:绑定NDISWANIP后,访问baidu,可以抓到一个域名解析包(因为没有回应,所以只能抓到这一个),是IP包,而不是PPPOE and PPP包.

我现在特别糊涂,到底用协议驱动如何才能和网络上的主机收/发数据?我指不是自己实现PPP或TCPIP,而是尽可能的依赖系统,到底怎么做?

baidu和google搜了个遍,也没找到什么有用的东西!!!
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
沙发#
发布于:2007-05-02 09:18
1 你获取的数据包应该是包括mac地址在内的以态网数据包。adsl上网现在用的协议都是pppoe协议,所以可以接收到pppoe协议包,ppp数据包

2 是不是你处理数据问题,可以抓个包,分析一下。可以把你的协议驱动帮定上,只是实现转发过程,然后一步步添加功能。
走走看看开源好 Solaris vs Linux
dahubaobao
驱动牛犊
驱动牛犊
  • 注册日期2004-09-25
  • 最后登录2012-03-14
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望80点
  • 贡献值0点
  • 好评度44点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-05-02 10:46
首先感谢斑竹回复

1,ADSL用PPPoE我知道,但为什么NDISWAN没转换为LAN格式包?接收的PPPoE包如何做基于TCP/IP的嗅探呢?也就是说有IP头/TCP头/UDP头,不会是在PPPoE头后边吧?
还有我如何发数据?把数据封装为LAN格式,NdisSend传下去,NDISWAN会帮我做成PPP,可以这样理解吗?

2,数据我没有处理,只是输出了.而且现在是发出去的包没有回应,所以不应该是数据处理问题.
我是把协议驱动绑定到NDISWANIP,然后ReadFile循环读数据,用Maxthon访问baidu,只发了一个域名解析包(这个包可以ReadFile出),就没有回复任何包了.

另外在请教一下,用NDISWANIP做通信,以太网头的MAC地址到底应该怎么设置?
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
地板#
发布于:2007-05-04 10:29
1 pppoe包格式应该是: mac head | ppp head | ip head |.....

   正常发送数据即可,路由器会把帮你把ip数据转发到ppp设备,ppp设备会把数据发送到pppoe。

2 那就需要检查发送出去数据报是否正确。如果处理正确,并且仅是转发数据应该不会有问题,跟踪一下发送过程。
走走看看开源好 Solaris vs Linux
dahubaobao
驱动牛犊
驱动牛犊
  • 注册日期2004-09-25
  • 最后登录2012-03-14
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望80点
  • 贡献值0点
  • 好评度44点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-05-05 00:14
谢谢cyliu   第一个问题我已经知道怎么做了  第二个问题我找到原因了 但还不知道如何解决

请看这个帖子!
http://bbs.driverdevelop.com/htm_data/10/0705/101527.html
neak47
驱动小牛
驱动小牛
  • 注册日期2009-05-25
  • 最后登录2016-01-09
  • 粉丝4
  • 关注0
  • 积分140分
  • 威望1221点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分1分
5楼#
发布于:2010-09-15 18:33
楼主你的协议驱动是如何绑定到wan 口上的
wmhnq
驱动牛犊
驱动牛犊
  • 注册日期2008-02-29
  • 最后登录2011-06-14
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望77点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2010-10-31 03:44
跨年我顶
游客

返回顶部