网络协议如何处理网络拥塞

小夏 社会 更新 2024-01-31

TCP是最常用的传输层协议之一,为上层协议提供面向连接的可靠传输服务。 为了提供尽可能大的吞吐量,TCP采用滑动窗口和拥塞窗口机制来控制在某个时间点传送到网络的数据量,从而尽可能多地占用可用带宽,不造成拥塞。 网络中通常存在瓶颈,数据包积压甚至丢弃。 因此,TCP流量控制的关键是控制瓶颈处的报文积压,过快的积压会导致拥塞。 拥堵是如何形成的?什么原因导致拥堵?发件人如何看待拥堵?如何缓解拥堵?

byte in flight

在开始本文之前,我们先介绍一下飞行中的字节的概念 “传输中的字节数”1 的更形象的翻译是指已发送但尚未收到 ACK 确认的字节数,这大约等于当前在网络中传输和积压的数据包字节数的总和。 传输中的字节大小对瓶颈处的数据包积压有直接影响。 根据滑动窗口的概念,可以知道飞行中的字节大小受到发送窗口2的限制(飞行中的字节<=发送窗口),并形成拥塞。

拥堵是如何形成的?看似简单的问题,其实并不是每个人脑海中的清晰画面。 简而言之,拥塞的主要原因是数据发送者向网络传递的数据超出了网络的承载能力。 就像水管的流量取决于最小的部分一样,网络的承载能力取决于网络上可用带宽最小的路径,即存在瓶颈的地方。 网络设备接口往往有缓冲区,多余的数据无法从瓶颈路径发送,所以它们不得不在缓冲区排队,缓冲区的大小是有限的,积压的数据量超过缓冲区的大小,就会发生丢弃,这就像漏斗里浇水一样。

拥塞可能由于以下原因而发生:

网络中存在吞吐量小于节点每单位时间发送的数据量的瓶颈。

接收缓冲区大于瓶颈处的可用缓冲区。

1. 什么是网络拥塞?

是指当分组交换网络中传输的报文数量过大时,由于存储节点资源有限,导致网络传输性能下降的情况。 当网络拥塞时,数据丢失、延迟增加、吞吐量下降,严重时甚至会出现拥塞崩溃。 通常,当网络上的负载过度增加时,就会发生网络拥塞,从而导致网络性能下降。

拥堵原因:

2.交换节点的缓存是有限的。

3.节点的处理能力有限。

归根结底,当我们诉诸于对>可用资源的需求时,就会发生网络拥塞。

2. TCP如何处理网络拥塞?

其实要解决以上问题,我们只需要保证两点,第一,我们发送的IP数据包不会丢失,第二,我们必须保证发送速度最大化。

滑动窗口:TCP处理网络拥塞,主要涉及动态变化的窗口(拥塞窗口,也可以称为滑动窗口),窗口的数量与网络拥塞程度有关,当网络情况良好时,拥塞窗口继续增加,发送方的窗口自然增加,但接收方的接收能力有限, 当发送方的窗口达到一定大小时,它不会改变。在通用TCP协议中,拥塞窗口数为65536,小于此值时,采用慢启动算法增加发送的IP报文数,当大于等于该值时,采用拥塞控制算法增加发送的IP报文数。

发件人如何确定拥塞

当我们发送数据包时,如果我们在一段时间内没有收到确认数据包,那么我们可以假设网络拥塞。

慢启动算法:

当发送方开始发送数据报时,如果立即将大量数据注入网络,则可能会发生拥塞。 慢启动算法在发送方首次开始发送数据报时检测网络状态,如果网络状况良好,发送方每次发送消息时都能正确接受确认消息。 然后将拥塞窗口的大小从小到大增加,即增加发送的 IP 数据包数量。 通常,发送的 IP 数据包数量通过电源到电源而增加。 例如,如果发送方设置 cwnd(拥塞窗口)= 1 发送第一个数据包段 m1,则在接收方收到 m1 后,发送方收到接收方的确认并将 cwnd 增加到 2,则发送方发送 m2 和 m3,发送方收到接收方发送的确认后 cwnd 增加到 4。

拥塞控制算法:

就是让CWND缓慢增加而不是增加一倍,每经历一次往返时间,CWND增加1而不是翻倍,这样CWND增长缓慢,比慢启动慢得多。

拥塞规避:如上所述,拥塞窗口数(ssthresh)的阈值一般为65536,因此有如下算法:

1.当CWNDssthresh时,使用拥塞控制算法,禁用慢启动算法。

3.,当 cwnd = ssthresh 时,两种算法都很好。

当出现网络拥塞时,将阈值 ssthresh 的数量减半,然后将 cwnd 的数量改为 1,然后使用慢启动算法,快速减少向网络传输数据的主机数量,使拥塞的路由器可以处理队列中堆积的数据包。

示例:例如,如果我们的 CWND(即我们要发送的 IP 数据包数)为 1,那么我们的阈值为 16。

1.慢启动算法开始时,CWND的初始值为1,发送方每收到一次ACK,拥塞窗口就会增加1,当SSTHRESH = CWND时,会启动拥塞控制算法,拥塞窗口会按规律增加。

快速重传算法要求接收方在收到无序数据包段后立即发送重复的确认,而不是等待接收方发送数据后再捎带确认。 接收方成功接收了发送方的 M1 和 M2 并发送 ACK 给 ACK,但现在接收方没有收到 M3,而是接收 M4,显然接收方无法确认 M4,因为 M4 是乱序报文段。 如果接收方按照可靠传输的原则什么都不做,而是按照快速重传算法,在接收到M4、M5等数据包段时,重复向发送方发送M2的ACK,如果接收方连续收到三个重复的ACK,发送方就不必等待重传定时器到期, 因为发送方会尽快重新传输未确认的数据包段。

第四,快速恢复。

1.当发送方连续收到三次确认时,执行乘法约简算法将慢启动阈值(ssthresh)降低一半,但接下来不执行慢启动算法。

2.此时,不要执行慢启动算法,而是将cwnd设置为ssthresh的一半,然后执行拥塞规避算法,使拥塞窗口缓慢增加。

相似文章

    基于TCP IP协议的网络问题排查 网络与IP地址的关系

    随着互联网的普及和发展,IP地址作为网络通信的基本要素起着至关重要的作用。在日常生活和工作中,跨网络活动越来越频繁,了解IP地址和跨网络之间的关系是每个网络用户的必备知识。IP地址和网络之间的关系是密不可分的。IP地址是Internet协议地址的缩写,是用于标识网络上计算机的数字标签。在网络中,每台...

    如何处理人际关系问题?

    优质作者名单 杭州市萧山区学生萍萍回忆说 我是一名大学生,我喜欢一个有女朋友的男孩 他们在不同的地方 是那个男孩先喜欢上了我。我正好处于被分手的状态,对喜欢和爱的理解处于模糊状态,以为他的喜欢就是同学之间的喜欢。后来才发现不是,我也退缩了,希望他能降低对我的好感度,好好对待女朋友。但有时我无法拒绝他...

    SCI论文被拒稿怎么办?

    在SCI 的出版过程中,稿件被拒稿和返工经常发生。一般来说,编辑直接接受稿件的情况很少见,大多数稿件在审稿过程中经过大修或小修后需要重新审稿,拒稿数量也随着稿件数量的逐年增加而增加。那么,如何处理sci 被拒的情况呢?要处理SCI排斥问题,需要根据原因采取适当的对策。SCI稿件被拒的原因无非以下几点...

    明智地讨论,女人应该如何处理彩礼

    在婚姻和爱情中,彩礼问题一直是一个敏感而复杂的话题。作为一个女人,如何明智地谈判和处理彩礼,是一个需要慎重考虑的问题。下面我将为您提供一些建议和答案,以帮助您处理这个情绪问题。明确你的价值观和看法。在处理彩礼问题时,首先要明确自己对彩礼的态度和期望。你想得到一个尊重和体面的彩礼,还是你不那么重视它?...

    家里有老人,隔音问题怎么处理?

    在我们的生活中,长者是家庭不可或缺的一部分。随着年龄的增长,对安静舒适的环境的需求也在增加。老年房间装修的隔音尤为重要。随着城市的不断扩张和建设,我们的住房变得越来越集中。这不可避免地导致了噪音污染的问题。老年人往往对噪音比较敏感,所以在装修老人房的时候,一定要做好隔音工作,保证老年人的居住环境能够...