您的位置:首页 > 理论基础 > 计算机网络

TCP/IP之三次握手、四次挥手

2014-08-05 10:59 567 查看
参照:http://www.cnblogs.com/hnrainll/archive/2011/10/14/2212415.html

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 (这个状态只是一个虚拟的“连接”)

三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。

第一次握手:建立连接时,客户端发送syn包(ISN=j)到服务器,并进入SYN_SEND状态,等待服务器确认; (将SYN标志位置1;seq=ISN)

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=1),即SYN+ACK包,此时服务器进入SYN_RECV状态;(ack=j+1;加1是因为SYN占了1位,与此同时,FIN也占了1位)

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据.



  第一次握手:

    客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器的端口,以及初始序号X,保存在包头的序列号(Sequence Number)字段里。

     

  

  第二次握手:
    服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即X+1。

    


  第三次握手:
        客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1



TCP 四次挥手

TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: