当采用Windows 2000/XP/2003系统的局域网用户拔掉连接本机网卡的网线时,或该用户的网卡与局域网中的网络设备没有正常连接时,桌面上的“任务栏”中会显示“本地连接,网络电缆没有插好”的提示。为什么Windows系统能够自动检测出客户机与网络设备的连通情况呢?这是因为Windows 2000/XP/2003系统中内置了“媒体感知(Media Sense)”功能。
认清“媒体感知”功能
对于一般的局域网用户来说,“媒体感知”功能确实起到了非常重要的作用。当网卡或网线出现问题时,客户机不能与局域网中的网络设备正常连通,这时“媒体感知”功能就能立刻检测出问题,并发出警告,方便了大家对网络的故障的排查。
但大家在进行某些特殊的调试工作时,智能化的“媒体感知”功能反而会影响正常工作。
例如程序员使用便携设备(如笔记本电脑)调试某些TCP/IP应用程序,而TCP/IP程序在测试过程中需要脱离局域网环境,程序员需要拔掉测试机器上的网线。这时聪明的“媒体感知”功能就立刻检测出本机和局域网设备没有正常连通,接着就会禁用捆绑在网卡上的某些网络协议,其中就包括TCP/IP协议。由于TCP/IP协议被禁用了,这样该TCP/IP应用程序就无法进行调试了,因此大家在某些特殊情况下必须禁用Windows系统的“媒体感知”功能。
提示:当网卡与网络设备没有正常连通时,“媒体感知”功能不会禁用所有的网络协议,如NetBEUI和IPX/SPX协议就不受影响,本机的环路测试也可正常进行。
禁用“媒体感知”功能
如何为TCP/IP协议禁用Windows系统内置的“媒体感知”功能呢?通过修改注册表就能实现。下面笔者以Windows XP系统为例,介绍实现“禁用”的方法。
进入注册表编辑器,展开“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters”项,新建一个“DisableDHCPMediaSense”,数据类型为“DWORD值”,将该值设置为“1”。重新启动Windows XP系统后,就禁用了“媒体感知”功能。
现在,即使拔掉网线,TCP/IP协议也不会被禁用,TCP/IP应用程序的调试工作可以照常进行。要想恢复“媒体感知”功能,也很简单,只要将注册表中 “DisableDHCPMediaSense”的值修改为“0”,或者删除“DisableDHCPMediaSense”,重新启动系统即可。