网络传输场景问题
如何浏览器没有显示页面有哪些原因
- 先确实是服务端的问题还是客户端的问题。如果客户端可以访问其他网站,如果可以说明客户端网络没问题
- 如果客户端网络没问题,就抓包确认DNS是否解析出了IP地址,如果没有解析出来说明域名写错了
- 如果IP解析出来了,再抓包确认TCP是否完成了3次握手,需要在server端通过ps确认server进程是否启动,以及通过netstate命令确认是否监听了端口
- 如果TCP完成了3次握手查看返回的状态码
- 404:检查输入的url是否正确
- 500:服务器有问题,需要去服务器排查日志
- 200:可以在浏览器按F12输出前端控制台,看看前端代码是不是有问题
- 如果网络没问题,可以通过ping去确认网络延迟是否正常,如果耗时很长,可以排查服务器流量是不是很大,导致超过了带宽上限。如果网络正常可以排查接口是否正常,有可能是慢SQL导致的
服务器ping不通但是http可以请求成功,会出现吗?
会的。因为ping是ICMP协议,http是TCP协议,有可能服务器的防火墙禁止ICMP协议,但是TCP协议没有被禁止
客户端TCP连接一个不存在的IP地址会发生什么
- 如果访问的IP地址在局域网内,客户端的内核在发ARP请求的时候,广播会询问这个IP是否存在,由于不存在所以收不到ARP回应,这时候就会卡在ARP协议,SYN报文发不出去
- 如果访问的IP地址不在局域网内,客户端会先将SYN报文发送到路由器,然后路由器会继续转发,由于IP不存在,该SYN报文会消亡。接着客户端会发生超时重传,到达最大重传次数后客户端连接会释放
客户端TCP连接一个存在的IP地址但是端口不存在会发生什么
服务端在收到SYN报文后,会返回一个RST报文,客户端收到RST报文后会断开连接
客户端UDP连接一个存在的IP地址但是端口不存在会发生什么
UDP没有RST报文,因此服务端会返回ICMP报文,报告端口不可达
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 cloud_fly blog!