qmessagebox关闭触发事件_通信的触发方式在TCP中的体现

本文探讨TCP通信中事件触发和定时器触发两种方式,以TCP连接的三次握手和四次挥手为例,详细解释了如何在TCP协议栈中实现这两种触发机制。在连接建立和数据传输过程中,事件触发和定时器触发如何确保通信的可靠性,并避免潜在的死锁问题。
摘要由CSDN通过智能技术生成

通信过程,本质上只有两类:事件触发(Event trigger)和定时器触发(Timer trigger)

以TCP连接为例:TCP协议的三次握手和四次挥手

事件触发

A主动发起对B的tcp连接(SYN),这是事件触发,是A创建socket调用connect()函数触发tcp连接 定时器触发

如果SYN在发给B的过程中丢失,还需要A后面的用户重新发吗?这样的话tcp协议栈也太不友好了。事实上tcp会缓存用户的连接指令,同时开启一个重传定时器,定时器超时,没有收到ACK+SYN,tcp会自动重传连接指令,这就是定时器触发

事件触发

B收到A的SYN请求,就会发ACK+SYN,这是事件触发

定时器触发

B发送ACK+SYN时同样担心丢失,所以B也会启动一个重传定时器,如果在超时时间内没有接收到A的ACK,说明B的ACK+SYN丢失,触发重传动作。如果收到ACK,则关闭定时器 事件触发

A接收到B的ACK+SYN,这是一个外部事件触发的动作,触发了:

  • 关闭重传定时器
  • 发送ACK
  • 将TCP状态更新为Established

这里A在发送ACK后要不要启动重传定时器?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值