尚未崩坏 发表于 2024-7-25 17:27:58

【探索Linux】P.41(传输层 —— TCP拥塞控制 | 延迟应答 | 捎带应答 )

https://img-blog.csdnimg.cn/direct/89866e02ff0a4b21bfa55312f2329e47.png


弁言

在深入探究了TCP协议的滑动窗口机制、快重传以及流量控制计谋之后,我们本日将转向TCP的另一个关键范畴:拥塞控制。拥塞控制是网络通讯中至关重要的一部分,它确保了数据传输的服从和稳定性,防止网络过载。同时,我们还将探究延迟应答和捎带应答这两种优化TCP传输服从的技术。通过这些技术的介绍,我们将更全面地明白TCP协议怎样保障数据传输的可靠性和服从。让我们开始这次网络通讯的深入之旅,探索TCP协议的更多奥秘。
一、拥塞控制

1. 慢启动机制

在TCP协议的世界中,滑动窗口机制无疑是一项强盛的功能,它允许我们高效且可靠地发送大量数据。然而,正如您所指出的,如果在网络条件尚未明确的情况下,盲目地发送大量数据,可能会加剧网络的拥堵,甚至导致数据传输的瓶颈。为了解决这一问题,TCP协议引入了一项智慧的计谋——慢启动机制。
慢启动机制的核心头脑是“审慎前行”。在数据传输的初始阶段,TCP发送方不会急于发送大量数据,而是先发送一小部分数据包,以此来探测网络的承载本领。通过这种方式,发送方可以逐步了解当前网络的拥堵水平,并据此调整数据的发送速率。随着网络状态的改善,发送方会逐步增长数据包的数量,直至达到网络的最大承载本领。
这种机制的上风在于,它可以或许在不引起网络过载的前提下,实现数据的快速传输。同时,它还具备自我调节的本领,可以或许根据网络状态的变化,动态调整数据的发送速率,从而保证数据传输的稳定性和服从。
https://i-blog.csdnimg.cn/direct/cbf1bf0bb3c74a95a7aa6329f1561936.png
2. 拥塞窗口


[*] 拥塞窗口的初始设定:在TCP毗连建立后,发送端将拥塞窗口的大小初始化为1个数据段(1MSS),这是慢启动阶段的开始。
[*] 拥塞窗口的增长:在慢启动阶段,每当发送端收到一个确认应答(ACK),拥塞窗口的大小就会增长1。这意味着发送端可以发送更多的数据,但增长速率是指数级的。
[*] 发送数据的控制:在发送数据时,发送端会将拥塞窗口的大小与吸收端主机反馈的窗口大小举行比力,选择两者中较小的值作为实际的发送窗口。如许做可以确保数据的发送量不会超过吸收端的处置处罚本领。
[*] 慢启动阶段的特点:固然称为“慢启动”,但实际上在这个阶段拥塞窗口的增长速率非常快,因为它是指数级的。
[*] 慢启动阈值的引入:为了防止拥塞窗口增长过快导致网络拥塞,TCP引入了慢启动阈值(ssthresh)。当拥塞窗口的大小超过这个阈值时,拥塞窗口的增长模式会从指数增长变化为线性增长。
[*] 线性增长的实现:在慢启动阈值之后,拥塞窗口的增长不再是每次ACK翻倍,而是每次收到ACK时增长一个固定的量,通常是1个MSS。这种线性增长方式有助于更安稳地控制数据流量,减少网络拥塞的风险。
https://i-blog.csdnimg.cn/direct/45c64574dd4949a08912b42ec38f9008.png
二、延迟确认

TCP的延迟确认是一种优化机制,旨在减少网络上的ACK(确认应答)包的数量,从而提高网络的服从。
1. 延迟确认的目标

在TCP通讯中,每当吸收端收到一个数据段,它通常会立刻发送一个ACK包以确认收到。然而,频繁的发送ACK包可能会占用大量的网络带宽,尤其是在高带宽情况下。延迟确认机制通过减少ACK包的发送频率来优化网络性能。
2. 工作原理

延迟确认机制允许吸收端在收到数据段后不立刻发送ACK,而是等待一段时间,通常是200毫秒(这个时间可以通过系统设置举行调整)。如果在这段时间内吸收端再次收到发送端的数据段,它可以将对前一个数据段的确认与新数据段的确认归并在一起发送,从而减少一个ACK包。
3. 归并ACK

如果吸收端在延迟确认的等待期内收到了发送端的后续数据段,它可以将对之前数据段的确认与新数据段的确认归并在一个ACK包中发送。这种方式称为累积确认(cumulative acknowledgment),它减少了网络上的ACK流量。
4. 延迟确认的缺点

延迟确承认以显著提高网络的吞吐量,尤其是在高带宽、低延迟的网络情况中。然而,它也可能稍微增长数据传输的延迟,因为确认的发送被延迟了。
页: [1]
查看完整版本: 【探索Linux】P.41(传输层 —— TCP拥塞控制 | 延迟应答 | 捎带应答 )