TCP/IP三次握手和四次挥手

TCP/IP协议中的三次握手用于建立连接,确保双方都能通信。四次挥手则用于断开连接,防止数据丢失。连接过程中,序号和确认序号用于同步和确认数据,标志位如SYN、ACK和FIN则指示连接状态。两次握手无法确保双方都能接收到信息,而四次挥手确保双方都知晓对方的断开意图。
摘要由CSDN通过智能技术生成

参考:(57条消息) TCP/IP协议 - 三次握手四次挥手(入门易懂版)-CSDN博客

握手=建立连接

挥手=断开连接

需要了解两个概念:序号和标志位

在TCP/IP协议下

序号:seq(计算机随机产生)

确认序号:ack(用于连接断开时一般在seq上+1)

标志位:

ACK:确认序号标志,1表示有效,0表示忽略

SYN:同步序号标志,SYN = 1 和 ACK = 0 表示该数据段没有使用捎带的确认域,SYN = 1 和 ACK = 1 为连接应答捎带一个确认

FIN:完成标志,1 时表示发送方已经没有数据发送了,即关闭本方数据流

了解完以上概念即可深入学习三次握手和四次挥手啦

过程讲解:

  1. 客户端向服务端发送一个序号seq(1)和一个报文:确认序号标志位SYN=1

  1. 服务端接收到报文后发送ACK=1报文,表示接收成功,并且发送序号seq(2)和确认序号ack=seq(1)+1

  1. 客户端接收到服务端报文,再向服务发送ACK=1B报文和确认序号ack=seq(2)+1

以上就是三次握手,为什么两次握手不可以?

因为两次握手只能确认服务端能接收到客户端的信息,不能保证客户端能接收到服务端的信息

四次挥手:

过程讲解:

  1. 客户端发送FIN=1报文(一次)

  1. 服务端·接受到客户端的信息,发送ACK=1报文,再发送FIN=1报文(二、三次)

  1. 客户端接收服务端的报文,发送ACK=1报文(四次)

tip:为什么第二步服务端要发送两次报文?

因为服务端一般会连接多个客户端,而每次只能处理来自一个客户端的报文,所以一般客户端发来FIN=1的报文时,服务端会先给客户端ACK=1的报文,等处理完上一个客户端的请求以后·再发送FIN=1报文表示允许断开

tip2:如果连接过程中客户端突然断开会怎么样?

服务端每次收到客户端的请求时,都会有·一个·定时器清0,如果超过两个小时没有收到请求,服务端会每隔75s发送一个探测信号,发送10个还没有反应就断开连接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值