面试问到客户端访问服务器时“服务器没有响应”,应该怎么排查问题。这种应该怎么回答?计算机网络试题-
之前做开发只关注代码和业务实现了,这种问题一问我就没准备好怎么回答。
无论是面试程序员还是网络工程师,这个面试题放之四海而皆准,没有标准答案,区别只是回答的深度与广度。计算机网络试题
初级工程师
做为入门级工程师,你应该Ping 这个网站的域名,如果可以Ping的通,说明域名解析成功工作,到服务器的网络连通性是好的。
如果没有Ping 通,需要检查域名解析得到IP是什么?如果域名解析不工作,Ping 域名服务器,如果Ping不通域名服务器,需要Ping 自己的网关。
Ping不通网关,需要Ping 自己的IP,如果连Ping 127.0.0.1都pIng不通,那TCP/IP协议栈出问题了,或者本机防火墙工作不正常。
如果Ping自己可以Ping得通,但无法Ping 网关,那网关可能挂了,或者网线松掉了,也有可能网关把你黑名单过滤掉了。计算机网络试题
这一番折腾,80%的概率可以定位是什么问题。
中级工程师
在上述的排错中如果无法定位问题,已经懂得使用抓包软件来排错了,而且还学会如何配置过滤器将感兴趣的流量过滤出来。计算机网络试题
看看三次握手能否成功建立,TCP Option里的字段,特别是MSS的大小,是否由于MSS太大,而造成的通信故障。尝试将MSS修改小到1380或更小,看看效果,如果可以修复,那么就是MSS造成的。
如果光有出去的报文,没有返回的报文,说明有可能发出去的包被防火墙过滤掉,或者返回的包被过滤掉。究竟在哪里被过滤掉,可以使用traceroute 服务器的IP来定位。
当然还有可能本机的IP被服务器拉黑,这种情况也是存在的,服务器通过智能算法,检测到本机IP曾经试图恶意攻击过服务器,所以拉黑处理。计算机网络试题
高级工程师
想的则是非对称路由,有状态防火墙,防火墙状态不同步。
还会想DNS域名解析得到的IP,是不是真正服务器的IP,是不是被污染了?会尝试使用科学上网的方法,使用国际域名服务器进行解析,尝试连接服务器。如果科学上网可以连接,那么可以断定,域名解析可能被污染了,也有可能服务器被大防火墙拉黑了。
是不是客户端的TLS版本与服务器的版本没有交集?计算机网络试题
问题的可能性还有很多,就不一一列举了。
以上对应三个级别的工程师的技能列表,各位可以对照看看自己处于什么知识阶段。计算机网络试题-