在被动关闭连接的情况下,在已经接收到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公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx