简述TCP三次握手和四次挥手

TCP三次握手:

  1. 第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。

  2. 第二次握手: Server 收到数据包后由标志位 SYN=1 知道 Client 请求建立连接, Server 将标志位 SYN ACK 都置为 1 ack=J+1 ,随机产生一个值 seq=K ,并将该数据包发送给 Client 以确认连接请求, Server 进入 SYN_RCVD 状态。

  3. 第三次握手: Client 收到确认后,检查 ack 是否为 J+1 ACK 是否为 1 ,如果正确则将标志位 ACK 置为 1 ack=K+1 ,并将该数据包发送给 Server Server 检查 ack 是否为 K+1 ACK 是否为 1 ,如果正确则连接建立成功, Client Server 进入 ESTABLISHED 状态,完成三次握手,随后 Client Server 之间可以开始传输数据了。

简单来说,就是

  1. 建立连接时,客户端发送SYN包(SYN=i)到服务器,并进入到SYN-SEND状态,等待服务器确认。

  2. 服务器收到 SYN 包,必须确认客户的 SYN ack=i+1 , 同时自己也发送一个 SYN 包( SYN=k , SYN+ACK 包,此时服务器进入 SYN-RECV 状态。

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



TCP四次挥手:

  1. 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。

  2. 第二次挥手: Server 收到 FIN 后,发送一个 ACK Client ,确认序号为收到序号 +1 (与 SYN 相同,一个 FIN 占用一个序号), Server 进入 CLOSE_WAIT 状态。

  3. 第三次挥手: Server 发送一个 FIN ,用来关闭 Server Client 的数据传送, Server 进入 LAST_ACK 状态。

  4. 第四次挥手: Client 收到 FIN 后, Client 进入 TIME_WAIT 状态,接着发送一个 ACK Server ,确认序号为收到序号 +1 Server 进入 CLOSED 状态,完成四次挥手。

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31442725/viewspace-2645992/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31442725/viewspace-2645992/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值