首页 > 其他分享 >计算机网络的网络拥塞

计算机网络的网络拥塞

时间:2024-05-29 14:57:58浏览次数:20  
标签:ssthresh 重传 网络 计算机网络 算法 拥塞 cwnd

1.什么是网络拥塞:
对网络中的某一资源的需求超过了资源所能提供的可用部分,网络性能就要变坏;这种情况就叫拥塞(网络资源包括带宽,交换节点中的缓存和处理机等),拥塞会导致网络的性能随着负荷的增大而下降。所以如何减少拥塞是网络重中之重的问题。

2.TCP拥塞控制算法:

以下算法都是建立在数据只是单方向传递,接收方有足够的缓存空间,以报文为单位而不是以字节为单位的基础上

cwnd:拥塞控制窗口,取决于网络的拥塞控制程度并且动态变化。

swnd:发送窗口,用来发送数据包的窗口。

ssthresh:慢开始门限,是发送窗口与拥塞窗口的一个转折点,也是慢开始算法和拥塞避免算法的一个临界点

即:当cwnd<ssthresh时,开始慢开始算法。

当cwnd>ssthresh时,开始拥塞避免算法

当cwnd=ssthresh时,既可以慢开始也可以

拥塞避免

如何确定是否发生重传:

倘若接收方确认收到报文段,发送方就会认为报文段丢失,于是就会发生重传。

重传分为以下几种:

超时重传:当发送方发送数据包后,一定时间内没有收到ACK信号,就会认为数据丢失,就会启动超时重传机制从而适应当前网络的延迟和拥塞情况。

快速重传:当发送方收到对同一序列号的数据包的三次重复确认,它就会立即重传该数据包,而不是等待超时,这样就可以快速的恢复丢失的数据包,从而提高数据的传输效率。

四种拥塞优化算法:

慢开始:用于控制网络流量的算法,核心思想是从小到大逐渐增大发送窗口的大小,避免一开始就向网络中注入过多的数据导致网络拥塞。

开始传输时先将拥塞窗口设置为1,然后每经过一轮传输拥塞窗口就会呈指数倍率增长即 2,4,8,16....

这样就可以避免一次性传输大量数据从而导致网络拥塞。

拥塞避免:当cwnd>ssthresh时,开始拥塞避免算法,即每轮次cwnd的数值只能线性加1,一旦超过拥塞窗口最大值,发生了数据丢失时,就会将拥塞窗口的ssthresh值变为最大值的一半,并且将cwnd值重新赋值为1,重新进入慢开始算法。

快重传和快恢复的作用:

有时,数据或报文段在网络中丢失但是实际上并未发生拥塞,而这导致了发送方发生超时重传时,会误以为发生了网络拥塞,就会错误的使用慢开始算法,又会把cwnd设置为1,从而降低了传输效率。

快重传:使发送方尽快的重传而不是等待计时器超时再重传,即不是捎带确认而是立即确认,即使收到失序报文段也要立即发出对已收到的报文段的重复确认。发送方一旦收到连续的3个重复的确认请求,就会立即重传而不是超时重传。

快恢复:将慢开始门限ssthresh的值和拥塞窗口cwnd值调整为当前窗口的一半,开始执行拥塞避免算法

也有的是将ssthresh+3再开始执行拥塞避免算法

标签:ssthresh,重传,网络,计算机网络,算法,拥塞,cwnd
From: https://blog.csdn.net/weixin_74968157/article/details/139295829

相关文章

  • GitHub:开发者的社交网络
    简介GitHub,一个为数以百万计的开发者所熟知的名字,它不仅仅是一个代码托管平台,更是一个全球性的开发者社区。GitHub提供了一个协作、分享和发现开源项目的空间,让编程变得更加有趣和高效。什么是GitHub?GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本......
  • 黑客(网络安全)技术30天速成
    1.网络安全是什么网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。2.网络安全市场一、是市场需求量高;二、则是发展相对成熟入门比较容易。3.所需要的技术水......
  • C++ - tcp网络传输如何发送结构体类型
    1、tcp网络传输如何发送结构体类型 在C++中,要通过TCP网络传输结构体类型,你需要将结构体序列化为字节流,然后在另一端反序列化。这里有一个简单的例子:#include<iostream>#include<cstring>#include<sys/socket.h>#include<netinet/in.h>#include<unistd.h>//假设......
  • 虚拟机上配置网络地址
    一、设置虚拟机1.启动虚拟机之前,打开“编辑虚拟设置”2.设置网络适配器,勾选“启动时连接”,勾选“桥连接模式”和“复制物理网络连接状态”。3.选择网络配置的网卡(有的要选择)二、配置IP地址1.更改配置信息cd/etc/sysconfig/network-scriptsviifcfg-ens332.配......
  • SSH连接NAT网络模式VirtualBox虚拟机
    Host:Windows11Target:Ubuntu22onVirtualBox原理:使用网络端口转发功能,把本地端口映射到虚拟机的22端口。1.配置端口转发NAT网络模式下,依次点击:虚拟机-->网络-->适配器1-->高级-->端口转发。 2.填写网络参数Name:ssh(随便写,最好填写和功能相关的字符串);Prot......
  • 星汉云管理网络解决方案,助力企业网络升级和业务发展
    为了应对数字化时代企业网络面临的新挑战,映翰通推出基于云管理的新一代网络解决方案,可灵活应用于连锁门店、企业办公等网络场景。映翰通星汉云管理网络解决方案包括云管理的边缘路由器、AP、交换机、5GODU蜂窝产品及小星云管家SaaS服务,通过整合创新的IT管理、物联网、5G等技术......
  • 【网络技术】【Kali Linux】Wireshark嗅探(十六)BT-DHT(比特流分布式哈希表协议)报文捕获
    往期KaliLinux上的Wireshark嗅探实验见博客:【网络技术】【KaliLinux】Wireshark嗅探(一)ping和ICMP【网络技术】【KaliLinux】Wireshark嗅探(二)TCP协议【网络技术】【KaliLinux】Wireshark嗅探(三)用户数据报(UDP)协议【网络技术】【KaliLinux】Wireshark嗅探(四)域......
  • 《计算机网络微课堂》5-9 TCP报文段的首部格式
    本节课我们介绍TCP报文段的首部格式。在之前的课程中我们曾介绍过,为了实现可靠传输,TCP采用了面向字节流的方式,如图所示TCP将应用进程交付下来的应用报文看作是字节流,存入TCP发送缓存中,但TCP在发送数据时是否发送缓存,取出一部分或全部字节,并给其添加一个首部使之成为TCP......
  • 《计算机网络微课堂》5-8 TCP的运输连接管理
    从本节课开始,我们将分两次课来介绍TCP的运输连接管理。5.8.1TCP的连接建立TCP是面向连接的协议,它基于运输连接来传送TCP报文段TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程TCP运输连接有以下三个阶段第一个阶段是建立TCP连接,也就是通过......
  • 《计算机网络微课堂》5-7 TCP 可靠传输的实现
    本节课我们介绍TCP可靠传输的实现。TCP基于以字节为单位的滑动窗口来实现可靠传输。我们来举例说明,这是因特网上的两台主机,他们之间已经建立了一个TCP连接,为了简单起见,我们假定数据传输只在一个方向进行,换句话说,发送方给接收方发送TCP数据报文段,接收方给发送方发送相应的......