TCP的三次握手

TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

  (1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。

  (2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。

  (3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。

   完成三次握手,客户端与服务器开始传送数据

 

TCP四次挥手关闭连接

  由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
  TCP协议的连接是全双工连接,一个TCP连接存在双向的读写通道。 
  简单说来是 “先关读,后关写”,一共需要四个阶段。以客户机发起关闭连接为例:
  1.服务器读通道关闭
  2.客户机写通道关闭
  3.客户机读通道关闭
  4.服务器写通道关闭
  关闭行为是在发起方数据发送完毕之后,给对方发出一个FIN(finish)数据段。直到接收到对方发送的FIN,且对方收到了接收确认ACK之后,双方的数据通信完全结束,过程中每次接收都需要返回确认数据段ACK。

posted @ 2019-04-11 20:19  曾经年少,鲜衣怒马  阅读(1883)  评论(0编辑  收藏  举报