HCIP——三次握手四次断开

目录

三次握手:

四次断开:

总结:


三次握手:

三次握手即建立TCP会话。握手前,客户端和服务端处于关闭状态,客户端主动打开连接,服务端被动打开连接(客户端:closed,服务端:listen)。

第一次握手:由客户端率先向服务端发送连接请求(REQUEST),发送 SYN 报文,然后客户端处于SYN_SENT(同步已发送)状态。此时报文首部中的同部位SYN=1,同时选择一个初始序列号 seq=x,SYN 报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。

第二次握手:服务器接收到由客户端发送的 SYN 报文后,如果同意连接,则发出确认(ACK)报文。确认报文中应该有ACK=1,SYN=1,此时服务器处于SYN_RCVD(同步收到)的状态。

第三次握手:客户端收到服务器发来的 ACK+SYN 报文后,客户端会向服务器端发送确认(ACK)报文。通过此告诉服务器已确认收到服务器端发来的报文,此时客户端处于ESTABLISHED(已建立连接)状态,服务端收到客户端发来的 ACK 后,也处于ESTABLISHED(已建立连接)状态,两者成功建立连接。

四次断开:

四次断开也叫四次挥手,即断开TCP会话。当数据传输结束后,双方释放连接时,客户端和服务器都是处于ESTABLISHED(已建立连接)状态,然后由客户端主动关闭,服务器被动关闭。

第一次挥手:首先由客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于FIN_WAIT_1(终止等待1)状态。

第二次挥手:服务端接收到由客户端发送的 FIN 报文后,向客户端发送 ACK 报文,确认同意与客户端断开连接,此时服务端处于CLOSE_WAIT(关闭等待)状态。此时 TCP 处于半关闭状态,客户端收到服务端的 ACK 报文后,进入FIN_WAIT_2(终止等待2)状态,等待服务端发出的连接释放报文。

第三次挥手:再次由服务端向客户端发送 FIN 报文,且指定一个序列号。此时服务端处于LAST_ACK(最后确认)的状态,等待客户端确认。

第四次挥手:客户端收到 FIN 报文后,向服务端发送 ACK 确认报文,确认关闭连接,此时客户端处于TIME_WAIT(时间等待)状态。服务器只要收到了客户端发出的确认,立即进入CLOSED(关闭)状态。然后需要过一段时间以确保服务端收到自己的 ACK 报文之后才会进入CLOSED(关闭)状态。

总结:

三次握手(建立TCP会话):
        (client)——>(server)
        pc端——>(syn(同步)+request(请求))——>server端
        pc端<——(ack(确认)+(syn+request))<——server端
        pc端——>(ack)——>server端
四次断开(断开TCP会话):
        pc端——>(fin)——>server端
        pc端<——(ack)<——server端
        pc端<——(fin)<——server端
        pc端——>(ack)——>server端

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值