首页 > 其他 > 详细

【后台开发】【TCP/IP】TCP状态流转(握手、挥手)

时间:2019-08-08 16:31:51      阅读:105      评论:0      收藏:0      [点我收藏+]

三次握手

三次握手是建立TCP连接的过程,在这个过程中需要客户端和服务端总共发送3个包以确认连接的建立。其流程如下图所示:

技术分享图片

三次握手过程:

1. 第一次握手:

客户端发送SYN包(SYN=J)到服务器,并进入SYN_SENT状态,等待服务器确认。

- 内部原理:客户端将TCP头部标志位SYN置1,产生一个随机序号seq=J,并将该数据包发送给服务端。


2. 第二次握手:

服务器收到SYN包,确认客户的SYN(ACK=J+1),同时自己也发送一个SYN包(SYN=K),即SYN+ACK包,此时服务器进入SYN_RECV状态。

- 内部原理:服务端收到数据包后标志位SYN=1知道客户端请求建立连接,服务端将标志位SYN和ACK都置为1,ACK=J+1,随机产生一个值seq=K,并将该数据包发送给客户端确认连接请求。


3. 第三次握手:

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

- 内部原理:客户端收到确认后,检查ACK是否为J+1,ACK是否为1,如果正确则标志位ACK置为1,ACK=K+1。

【后台开发】【TCP/IP】TCP状态流转(握手、挥手)

原文:https://www.cnblogs.com/jibeon/p/11321188.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!