分类: 系统运维
2008-07-28 16:37:11
TCP Client |
Flags |
TCP Server |
1 Send SYN (seq=x) |
----SYN---> |
SYN Received |
2 SYN/ACK Received |
<---SYN/ACK---- |
Send SYN (seq=y), ACK (x+1) |
3 Send ACK (y+1) |
----ACK---> |
ACK Received, Established |
x: ISN (Initial Sequence Number) of Client | ||
y: ISN of the Server |
第一次是客户端发起连接;第二次表示服务器收到了客户端的请求;第三次表示客户端收到了服务器的反馈。这之后双方均确认了连接的有效性,如果第三次服务器未收到,假设一个C向S发送了SYN后无故消失了,那么S在发出SYN+ACK应答报文后是无法收到C的ACK报文的(第三次握手无法完成),这种情况下S一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);