【计算机网络】面试题

如果服务器出现了大量CLOSE_WAIT状态如何解决。

我们先来复习下TCP的四次挥手
服务器端收到客户端发送的FIN后,TCP协议栈就会自动发送ACK,接着进入CLOSE_WAIT状态。
但是如果服务器端不执行socket的close()操作,那么就没法进入LAST_ACK,导致大量连接处于CLOSE_WAIT状态
所以,如果服务器出现了大量CLOSE_WAIT状态,一般是程序Bug,或者关闭socket不及时


URI和URL的区别

URI,全称是Uniform Resource Identifier),中文翻译是统一资源标志符,主要作用是唯一标识一个资源。
URL,全称是Uniform Resource Location),中文翻译是统一资源定位符,主要作用是提供资源的路径。打个经典比喻吧,URI像是身份证,可以唯一标识一个人,而URL更像一个住址,可以通过URL找到这个人。


ICMP协议的功能

ICMP,Internet Control Message Protocol ,Internet控制消息协议。
ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。
它是一个非常重要的协议,它对于网络安全具有极其重要的意义。它属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。
当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。
比如我们日常使用得比较多的ping,就是基于ICMP的。

ping的原理

ping,Packet Internet Groper,是一种因特网包探索器,用于测试网络连接量的程序。Ping是工作在TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送ICMP(Internet Control Message Protocol 因特网报文控制协议) 请求报文,测试目的站是否可达及了解其有关状态

一般来说,ping可以用来检测网络通不通。它是基于ICMP协议工作的。假设机器Aping机器B,工作过程如下:

  • ping通知系统,新建一个固定格式的ICMP请求数据包
  • ICMP协议,将该数据包和目标机器B的IP地址打包,一起转交给IP协议层
  • IP层协议将本机IP地址为源地址,机器B的IP地址为目标地址,加上一些其他的控制信息,构建一个IP数据包
  • 先获取目标机器B的MAC地址。
  • 数据链路层构建一个数据帧,目的地址是IP层传过来的MAC地址,源地址是本机的MAC地址
  • 机器B收到后,对比目标地址,和自己本机的MAC地址是否一致,符合就处理返回,不符合就丢弃。
  • 根据目的主机返回的ICMP回送回答报文中的时间戳,从而计算出往返时间
  • 最终显示结果有这几项:发送到目的主机的IP地址、发送 & 收到 & 丢失的分组数、往返时间的最小、最大& 平均值
posted @ 2022-07-13 17:24  倒骑驴子  阅读(75)  评论(0编辑  收藏  举报