阅读:3873回复:6
协议驱动收PPPOE and PPP包和NDISWANIP问题?
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搜了个遍,也没找到什么有用的东西!!! |
|
沙发#
发布于:2007-05-02 09:18
1 你获取的数据包应该是包括mac地址在内的以态网数据包。adsl上网现在用的协议都是pppoe协议,所以可以接收到pppoe协议包,ppp数据包
2 是不是你处理数据问题,可以抓个包,分析一下。可以把你的协议驱动帮定上,只是实现转发过程,然后一步步添加功能。 |
|
|
板凳#
发布于: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地址到底应该怎么设置? |
|
地板#
发布于:2007-05-04 10:29
1 pppoe包格式应该是: mac head | ppp head | ip head |.....
正常发送数据即可,路由器会把帮你把ip数据转发到ppp设备,ppp设备会把数据发送到pppoe。 2 那就需要检查发送出去数据报是否正确。如果处理正确,并且仅是转发数据应该不会有问题,跟踪一下发送过程。 |
|
|
地下室#
发布于:2007-05-05 00:14
谢谢cyliu 第一个问题我已经知道怎么做了 第二个问题我找到原因了 但还不知道如何解决
请看这个帖子! http://bbs.driverdevelop.com/htm_data/10/0705/101527.html |
|
5楼#
发布于:2010-09-15 18:33
楼主你的协议驱动是如何绑定到wan 口上的
|
|
6楼#
发布于:2010-10-31 03:44
跨年我顶
|
|