有一个问题一直困扰着我,那就是当一台电脑从它开机后到路由器自动给它分配一个IP地址,有时候在网络图标上会出现一个感叹号,这个时候说明它没有连接到互联网上,当成功接入互联网则会出现一个连接的图标,那么问题来了,电脑自己是如何知道它是不是成功连接到互联网上的?
想当初微软公司在上海成立了亚太技术支持中心。支持工程师遇到最多的问题是:“电脑怎么无法上网”?
技术支持第一个问题:您好,请问您插网线了吗?
对于知乎读者来说,问这个问题是侮辱智商。可是在20年前问这个问题太正常不过,因为那时懂网络的人实在太稀有了。
如果客户确实没插网线,那么插入网线大概率就解决了客户的问题。
如果客户回答说:网线插好了。支持支持第二个问题是:“请问网口的灯亮了吗?是什么颜色?”
如果灯没亮或者灯的颜色不对,那么用户只要重新将网线插好或者换一根网线大概率解决问题。
如果用户说网口的灯是绿色的,技术支持会问第三个问题:“可以用ipconfig /all 看看您电脑的IP地址吗?”
客户电脑的IP地址如果是“169.x.x.x”,说明动态获取IP地址失败。
如果不是以上地址,技术支持还会问第四个问题:“请问您可以Ping通网关地址吗?”
第五个问题:“请问可以将www.microsoft.com解析为IP地址吗?”
微软公司为了更好地服务于客户,决定在新版的操作系统里硬编码一些“技术支持”代码。这些代码的出现可以让客户不要再为“一些看起来很傻的问题”打技术支持的电话。
代码其实很简单:
1.如果可以成功Ping www.microsoft.com ,那么就告诉用户“Internet Access”,意思是用户可以上网了。
2.如果上述不成功,却可以成功Ping 221.230.147.106(www.microsoft.com对应的IP),说明域名解析可能出问题了,那么告诉用户“Internet Access Limited”。用户需要检查DNS有关的设置。
3.如果上述都不成功,却可以成功Ping 网关的IP地址,那么告诉用户“Connected, No Internet Access!”
4. 如果上述都不成功,那么就告诉用户“Not Connected,No Internet Access!”
当然以上代码解决不了所有的问题,往往会造成误判,常见的误判有:
由于Internet网络短暂性拥堵,或者微软服务器拥堵,造成1、2失败,导致显示“Connected, No Internet Access!”,用户以为无法访问网络!其实是可以上网的。
一些公司采用本地HTTP代理上网,只有访问Internet上的网站(HTTP传输)才经过代理。但是Ping包并不走代理,而公司不允许员工的Ping包离开公司。这样就会造成1、2的失败,从而显示“Connected, No Internet Access!”,其实用户是可以通过HTTP访问互联网的!
软件代码不是万能的,只能解决一些简单问题,却无法解决更复杂的问题。比如MTU的问题、路由环路的问题、防火墙问题、非对称路由问题等等,这样才能彰显工程师的重要性!
本文转载自“车小胖谈网络”,如有侵权请联系站长删除
推荐阅读:
深圳电信宽带、重庆电信宽带、昆明电信宽带、贵阳电信宽带、长沙电信宽带、成都电信宽带、厦门电信宽带、上海电信宽带、北京电信宽带、呼和浩特电信宽带、拉萨电信宽带、石家庄电信宽带、沈阳电信宽带、长春电信宽带、哈尔滨电信宽带、济南电信宽带、合肥电信宽带、杭州电信宽带、武汉电信宽带、福州电信宽带、南昌电信宽带、海口电信宽带、南京电信宽带、南宁电信宽带、贵阳电信宽带、乌鲁木齐电信宽带、兰州电信宽带