Windows中网络连接,发送数据包正常,接收数据包为0或很小值

一段时间之前,将笔记本电脑(还是Windows XP SP3的老系统)借给一个同学了,今天去拿回来了,不过发现已经不能正常上网了。解决这个不能上网的问题,还有点麻烦,折腾了将近两小时,⊙﹏⊙b汗,所以记录一下吧。
基本现象是:网络连接那里,发送数据包数量是正常的,而收到数据包为零或者数值很小。
通过一系列简单的检查,发现:
1. ping loalhost 和 ping 220.181.111.8 (baidu.com的IP之一)是正常的,但是 ping baidu.com 不通。
2. 我就配置静态IP(本来是连接无线路由器配置DHCP的),并网上找了上海电信的DNS 202.96.209.5来静态配置,也未成功。
3. 怀疑是网卡驱动坏掉了(或者哪里设置的问题),所以卸载重装了有线网卡和无线网卡的驱动,依然没有解决。
4. 也怀疑是网卡问题,所以禁用后重新启用网卡,依然没有解决问题。当然ping 127.0.0.1没问题的话,一般也不是网卡本身的问题了。
5. 我猜测是TCP/IP协议损坏了,但是在网络连接的属性那里,默认不允许卸载Internet协议 TCP/IP(即IPv4)。于是我找了个命令来重置TCP/IP协议,命令是:netsh int ip reset C:\reset-ip.log ,理论上,这个命令就等同于重装TCP/IP协议,但实际效果却不尽理想,没有对其深入研究了。
6. 其实,最后发现还是TCP/IP协议的配置问题(具体哪里错了我也不清楚),解决了问题的方案就是重装了TCP/IP协议(见下面的详细步骤)。

解决方法:重装TCP/IP协议(非原创,参考文末的资料;这是Windows XP中的设置,Win7系统中也类似)
有的时候会出现tcp/ip协议出现问题的时候,那么那个时候就只能重装tcp/ip协议了。
1、“开始——运行——regedit.exe”,打开注册表编辑器,删除以下两个项目(及其子项目):(重新开机后电脑会在自动生成新的)
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2
2、允许TCP/IP协议在“网络连接”的“属性”中被卸载:
用记事本打开%winroot%\inf\nettcpip.inf文件(本例中为:C:\Windows\inf\nettcpip.inf),找到:
[MS_TCPIP.PrimaryInstall]
Characteristics = 0xa0 <------把此处的0Xa0改为0x80,然后保存并退出 (如果是2000系统,这里已经是0x80了,跳过此步) 3、打开本地连接的TCP/IP属性,选择“安装”->“协议”->“添加”——从磁盘——浏览找到刚刚保存的nettcpip.inf (C:\Windonws\inf\nettcpip.inf)正常情况下这是隐藏文件,然后选择“TCP/IP协议”(不要选择那个TCP/IP 版本6,除非你确定你要用IPv6协议)。
经过这一步之后,又返回网络连接的窗口,但这个时候,Internet协议(TCP/IP)的那个“卸载”按钮已经是可用的了。点这个“卸载”按钮来把TCP/IP协议删除,然后重启一次机器。
4、重启后再照着第3步,重新安装一次TCP/IP协议即可。
5、再重启一次,这时应该可以了,可以根据需要,设置一下IP地址(或者选择DHCP方式)。

其实,我是在步骤3的卸载TCP/IP时遇到了Windows的蓝屏,然后强行重启计算机后,发现网络就直接可用了。

参考资料:
重装TCP/IP协议 http://baoliang.blog.51cto.com/253155/126617

master

Stay hungry, stay foolish.

4 Comments

  1. 你好,我安装你的方案,先卸载了TCP/IP协议,但是再安装的时候,就提示未能添加要求的组件,c错误是数据无效,请问是什么原因呢。谢谢。

    • 0x80里的0之前打成字母o了。重新安装了,但是数据包还是0 。。。。/(ㄒoㄒ)/~~

      • 由于是很久之前写的文章 且这两年基本没用windows了;你先就这这个文章自己多看看试试吧

发表评论

邮箱地址不会被公开。 必填项已用*标注

*