【干货】Linux网络运维面试题,你会多少?( 三 )


10、close_wait
在被动关闭连接的情况下 , 在已经接收到FIN , 但是还没有发送自己FIN的时刻 , 连接处于close_wait状态 。 通常来讲 , close_wait状态持续的时间应该很短 , 如SYN_RECV状态 , 但是在一些特殊情况下 , 就会出现连接长时间处于close_wait状态的情况 。 出现大量close_wait的现象 , 主要原因是某种情况下对方关闭了socket连接 , 但是我方忙于读或者写 。 没有关闭连接 , 代码需要判断socket , 一旦读到0 , 断开连接 , read返回负 , 检查一下errno , 如果不是AGAIN , 就断开连接 。
11、time_wait
主动关闭的socket端会进入此状态 , 并且持续2MSL(最大分节生命期)时间长度 , 这是一个IP数据包能在互联网上生存的最长时间 , 超过这个时间将在网络消失 。
作用:
a:可靠的实现TCP全双工连接的终止
b:允许老的重复分节在网络中消失
12、进程间通信机制
管道、消息队列、共享内存(速度最快)、信号量、文件映射、匿名/命名管道 。
如果想了解更多关于Linux的技术干货 , 请关注公众号【Linux架构师训练营】