在TCP传输中,是通过让接收方指明希望从发送方接收的数据字节数(即通告窗口的大小)来进行流量控制的。当窗口大小为0时将能有效地阻止发送方传送数据,直到窗口变为非0为止。
通常情况下,我们之所以说TCP是一种可靠的传输方式,那是因为它对所接收到的数据报文段都会发送一个ACK确认报文。但ACK的传输却是不可靠的,也就是说,TCP不对ACK报文段进行确认,而只对那些包含有数据的报文段进行确认。
如果一个确认丢失了,则双方就有可能因为等待对方而使连接终止:接收方等待接收数据(因为它已经向发送方通过了一个非0的窗口),而发送方在等待允许它继续发送数据的窗口更新。为了防止这种死锁情况的发生,发送方使用一个坚持定时器(persist timer)来周期性地向接收方查询,以便发现窗口是否已增大。这些从发送方发出的报文段就称为窗口探查。
计算坚持定时器时采用了普通的TCP指数退避算法。比如对一个典型的局域网连接,首次超时时间算出来是1.5秒,那么第二次的超时时间值就增加一倍,为3秒,再下次就为6秒等。但是坚持定时器总是在5到60秒之间。
窗口探查包含一个字节的数据。TCP总是允许在关闭连接前发送一个字节的数据。不过所返回的窗口为0的ACK并不是确认该字节,而是确认了包括上一个序号在内的所有数据,因此这个字节被持续重传。
坚持状态和重传超时之间一个不同的特定就是TCP从不放弃发送窗口探查。这些探查每隔60秒发送一次,这个过程将持续到窗口被打开或者应用进程使用d连接被终止。
参考资料:《TCP/IP详解卷一》第22章--TCP的坚持定时器。
分享到:
相关推荐
在Linux系统中,C语言编程时可以利用内核提供的接口来设置和管理TCP保活定时器,以及相关的IP选项。下面将详细介绍TCP保活定时器的原理、用途以及如何在C程序中进行设置。 1. **TCP保活定时器原理** TCP保活...
TCP的坚持定时器PPT教案.pptx
TCP滑动窗口分为两种:接收窗口(RWND)和发送窗口(SWND),它们共同决定了数据的发送和接收速率。 接收窗口(RWND)是由接收方设置的,表示接收方当前能处理的数据量。当接收方处理完部分数据后,会向发送方发送...
RFC 2988详细阐述了如何计算和管理这个定时器,以提高TCP连接的效率和可靠性。 TCP发送方使用RTO来判断一个数据段是否需要重传,因为在没有接收到确认的情况下,可能存在数据丢失的风险。RTO的计算涉及到多个因素,...
在某些实现中,如快速定时器(tcp_fasttmr)和慢速定时器(tcp_slowtmr),定时器函数会在固定周期内执行,例如快速定时器每250毫秒执行一次,而慢速定时器每500毫秒执行一次。 最后是TCP定时器的实现。在LwIP中,...
TCP/IP协议栈是网络通信的基础,包括网络层的IP协议、传输层的TCP和UDP协议,以及应用层的各种协议如HTTP、FTP等。在STM32上实现TCP/IP协议通常需要使用第三方库,如lwIP,它允许STM32设备接入互联网并进行数据传输...
这四种定时器分别是:重传定时器、坚持定时器、保活定时器和时间等待计时器。 1. 重传定时器(Retransmission Timer) 重传定时器的主要目的是为了处理可能出现的数据包丢失。当TCP发送一个报文段时,会启动一个与...
TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议,它通过滑动窗口机制来实现流量控制和拥塞控制,以确保数据的正确传输。滑动窗口是TCP协议中的一个重要概念,它允许发送方在接收到确认...
在TCP中,滑动窗口机制结合了确认、重传和流量控制策略,确保了数据的可靠传输和网络拥塞的预防。TCP连接的每一端都有一个动态调整的滑动窗口,通过ACK(确认)报文来反馈接收情况,通过窗口大小通告来限制发送速率...
在计算机网络领域,TCP(传输控制协议)是用于在互联网上传输数据的一种协议,它具有可靠性和流量控制机制。本文将深入探讨TCP拥塞窗口控制,这是TCP协议中至关重要的一部分,用于防止网络拥塞并确保数据高效、稳定...
在TCP协议中,有四种重要的定时器:重传定时器、坚持计时器、保活定时器和时间等待计时器,它们各自承担着确保连接稳定和数据可靠传输的关键任务。 1. **重传定时器**: 重传定时器的主要目的是处理可能出现的...
滑动窗口机制是TCP协议中的一种重要的流量控制机制,它通过在发送端和接收端分别设置发送窗口和接收窗口来控制数据的传输。发送窗口的大小代表了发送端可以发送的最大数据帧数量,而接收窗口的大小则决定了接收端...
为了解决数据的破坏、丢包、重复和分片顺序混乱等问题,TCP 实施了多种机制,包括序列号、确认应答、重传控制、连接管理和窗口控制。 1. **重传机制** - **超时重传**:TCP 在发送数据时启动一个定时器,如果在...
本案例“多线程开发案例(TCP窗口协议)”是利用C语言在Visual Studio 2005环境下构建的一个示例,它深入展示了如何利用多线程技术实现TCP协议中的滑动窗口协议和选择重传协议。这两个协议对于理解和优化TCP连接的...
01TCP-IP基础视频教程概述.wmv 02TCPP基础视频教程 Datalink Layer. wm 03TCPP基础视频教程IPwm...16TCP-P基础视频教程tcp的坚持定时器wm 17TCP-P基础视频教程tcp的保活定时器wmv 18TCPP基础视频教程tcp的未来和性能wmv
TCP拥塞学习资料,TCP滑动窗口协议,TCP拥塞窗口,网络间对象的传输与调用[new]
在IT行业中,网络通信是至关重要的一个领域...通过这样的调试软件,我们可以有效地检测和优化TCP和MODBUS-TCP通信,确保工业设备的正常运行和数据交换。这在工业自动化、物联网(IoT)和远程监控等领域具有广泛应用价值。
"TCP 重传、滑动窗口、流量控制、拥塞控制" TCP 是一个可靠的传输协议,它为了保证可靠性,使用了许多机制来保证,如序列号、确认应答...它们可以帮助我们更好地理解 TCP 协议,并且可以提高网络传输的效率和可靠性。
在电子技术和计算机科学中,定时器和计数器是两种重要的数字逻辑部件,它们在各种系统和设备中扮演着至关重要的角色。定时器用于在预设的时间间隔后触发某个事件,而计数器则用于记录特定事件发生的次数。在本讨论中...