1.TCP相关
TCP网络故障模式。
1)永久或临时网络中断
应用程序和TCP/IP栈不会知道这种情况,发送数据会超时重发。如果路由器返回主机不可达,那么会断开连接,并返回EHOSTUNREACH或ENETUNREACH错误。
2)对等应用程序奔溃
果对等的应用程序只是奔溃或终止,那么对等TCP会发送一个FIN
3)运行对等应用程序主机奔溃
保持活跃机制和心跳信号。
保持信号机制会检测死连接,它会在一段时间后发送一个特殊的段,以判断连接的状态。
1)在这个过程中,如果对等主机可达,但应用程序没有运行,那么会发送一个RST响应,并断开连接,然后向应用程序返回一个ECONNRESET错误,这种原因通常为主机崩溃重启。
2)如果对等的应用程序只是奔溃或终止,那么对等TCP会发送一个FIN。
3)如果对等主机没有返回RST响应或ACK响应,那么保持信号机制会一直发送,知道认为可以停止为止。这时,会丢弃连接,并返回ETIMEOUT错误,如果路由器返回一个ICMP主机或网络不可达时,会向应用程序返回EHOSTUNREACH或ENETUNREACH错误。
这个保持信号机制一般会在2小时后发送,一般会75秒后发送一次,这种间隔根据不同系统可以修改和不同。
心跳信号的两种方式:1)如果有固定报文类型的报文头,那么可以增加一个心跳报文类型。2)如果没有固定报文类型的报文头,那么可以建立一个单独连接专门来发送心跳信号。