连上网线后,DHCP模式获取不到IP,我不清楚是驱动处理网卡接收数据错误,还是内核在分析数据的时候,需要驱动根据不同网卡提供点参数。。。。。
说一下具体情况,大神快来救我。。
连的是路由器,首先是手动模式
IP设置为192.168.1.104
我可以在路由器的ARP映射表里看到我网卡的mac地址,对应IP 192.168.1.104
然后路由器给我发数据,我接收到数据是长度60,这个长度对么。。。?
13:02:46.411408 00:bc:00:00:bc:ae (oui Unknown) > 00:00:00:00:00:00 (oui Ethernet), ethertype Unknown (0xc55c), length 60:
0x0000: 832c b048 7a17 65d4 0806 0001 0800 0604 .,.Hz.e.........
0x0010: 0002 b048 7a17 65d4 c0a8 0101 bcae c55c ...Hz.e........\
0x0020: 832c c0a8 0168 0000 0000 0000 0000 .,...h........
第一行第二行里面b048 7a17 65d4是路由器的mac地址,bcae c55c 832c是网卡的mac地址。。。c0a8 0101我感觉就是192.168.1.1路由器IP,c0a8 0168 就是192.168.1.104
应该是内核没有回复路由器吧,一直给我发这段数据。。。数据开头832c感觉怪怪的,这不是我网卡地址后4位么。。。驱动读到数据错了么?
然后是DHCP模式
内核发了段长度300的数据给路由器,路由器回了我两条,一条60,一条590,还是那句话。。。长度对么?
13:02:58.103490 IP 0.0.0.0.bootpc > broadcasthost.bootps: BOOTP/DHCP, Request from bc:ae:c5:5c:83:2c (oui Unknown), length 300
13:02:58.106847 00:ff:00:00:ff:ff (oui Unknown) > 00:00:08:00:00:00 (oui Unknown), ethertype Unknown (0xffff), length 60:
0x0000: ffff b048 7a17 65d4 0806 0001 0800 0604 ...Hz.e.........
0x0010: 0001 b048 7a17 65d4 c0a8 0101 0000 0000 ...Hz.e.........
0x0020: 0000 c0a8 0169 0000 0000 0000 0000 .....i........
13:02:58.602701 00:bc:00:00:bc:ae (oui Unknown) > 00:00:00:00:00:00 (oui Ethernet), ethertype Unknown (0xc55c), length 590:
0x0000: 832c b048 7a17 65d4 0800 4500 0240 592a .,.Hz.e...E..@Y*
0x0010: 4000 2011 7bc8 c0a8 0101 c0a8 0169 0043 @...{........i.C
0x0020: 0044 022c 592a 0201 0600 44b7 baaa 0000 .D.,Y*....D.....
0x0030: 0000 0000 0000 c0a8 0169 0000 0000 0000 .........i......
0x0040: 0000 bcae c55c 832c 0000 0000 0000 0000 .....\.,........
0x0050: 0000 ff00 0000 0000 0000 0000 0000 0000 ................
0x0060: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0070: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0080: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0090: 0000 ff00 0000 0000 0000 0000 0000 0000 ................
0x00a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x00b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x00c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x00d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x00e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x00f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0100: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0110: 0000 6382 5363 3501 0236 04c0 a801 0101 ..c.Sc5..6......
0x0120: 04ff ffff 0033 0400 001c 2034 0103 0304 .....3.....4....
0x0130: c0a8 0101 0608 3d99 514a ca60 681b ff00 ......=.QJ.`h...
0x0140: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0150: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0160: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0170: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0180: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0190: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x01a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x01b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x01c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x01d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x01e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x01f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0200: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0210: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0220: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0230: 0000 0000 0000 0000 0000 0000 0000 0000 ................
这段数据是驱动处理错了?还是每个网卡处理帧的时候都不一样,驱动需要提供些特殊的参数给内核?
求助 网卡接收到了数据,交给内核后,内核貌似没办法处理。。。有大神么
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
Re: 求助 网卡接收到了数据,交给内核后,内核貌似没办法处理。。。有大神么
你用wireshark抓包来看好了,raw data看起来太难受了