TCP“三次握手”

第一次握手做什么?
请求端(客户端)会向服务端(被请求端)发送一个tcp报文,申请打开某一个端口。因为没有数据,所以这个报文仅包含一个tcp头。其中:
SYN=1;当建立一个新的连接时, SYN标志变1。
序号;序号用来标识从客户端向服务端发送的数据字节流。 
此时客户端进入SYN_SENT状态。
 
第二次握手做什么?
服务端收到客户端的SYN包,也会发一个只包含tcp头的报文给客户端。
ACK=1;服务端确认收到信息
确认序号;客户端序号+1,作为应答
SYN=1;因为tcp的连接是双向的,服务端作为应答的同时请求建立连接。 
此时服务端进入SYN_RECV状态
 
第三次握手做什么?
ACK=1;客户端确认收到信息
确认序号;服务端序号+1,作为应答 
此时客户端进入ESTABLISHED状态,服务端收到ACK后也会进入此状态
 
可见,客户端和服务端都保留了对方的序号,这三次握手缺少任何一步都无法实现这一目标。在三次握手过程中,出现了一些中间状态。

猜你喜欢

转载自blog.csdn.net/u010280239/article/details/52816277