T C P是一个面向链接的协议。不管哪一方向另外一方发送数据以前,都必须先在双方之间创建一条链接。 socket
RST:复位链接,将链接重置,通常用在异常关闭测试
发送第一个S Y N的一端将执行主动打开(active open),另外一端执行被动打开( passive open),blog
创建链接超时,经测试为,1,2,4,8,16,32,队列
四次挥手的时候,两个方向的断开是独立的,每一个方向发送一个FIN,对方回复一个ACK,但同时,TCP规定ACK能够捎带在其余数据包当中,因此你看到的主动断开链接一方本应收到的ACK,是被对方的FIN包捎带过来的,就变成了三个包。并非全部的状况下都是这样,典型的一种状况是,主动断开的一方发送FIN以后,被动一方仍然有数据要继续发送,就会先ACK这个FIN,而后继续发送数据(在此过程当中主动断开一方仍然会继续ACK这些数据),直到数据发送完毕以后再发送FIN并接收对方的ACKit
T C P提供了链接的一端在结束它的发送后还能接收来自另外一端数据的能力。这就是所谓的半关闭。正如咱们早些时候提到的只有不多的应用程序使用它。若是应用程序不调用c l o s e而调用s h u t d o w n,且第2个参数值为1,则插口的A P I支持半关闭。io
半关闭的一个例子,就是Unix的 rsh(1) 在另外一个系统上执行命令,输入和输出都是TCP链接。请求
T I M E _ WA I T状态也称为 2 M S L等待状态。程序
一个T C P链接由一个 4元组惟一肯定:本地 I P地址、本地端口号、远端 I P地址和远端端口
号。不管什么时候关闭一个链接,一端必须保持这个链接,咱们看到 T I M E _ WA I T状态将处理这个
问题。处理的原则是执行主动打开的一端在进入这个状态时要保持的时间为 T C P实现中规定
的M S L值的两倍。im
异常终止一个链接d3
一方关闭后,Connection reset by peer: socket write error
异常关闭一方,发送RST复位链接,另外一方若是进行操做报上面的错误
一个同时打开的链接须要交换 4个报文段,比正常的三次握手多一个。
呼入链接请求队列
正等待链接请求的一端有一个固定长度的链接队列,该队列中的链接已被 T C P接受(即三次握手已经完成),但尚未被应用层所接受。注意区分 T C P接受一个链接是将其放入这个队列,而应用层接受链接是将其从该队列中移出,测试50,多的链接将超时或者拒绝