精华内容
下载资源
问答
  • 发送方连续收到3个确认后,执行积式减少:ssthresh=cwnd/2,此时cwnd/=2,开始执行拥塞避免算法,拥塞窗口cwnd缓慢增大. UDP头部: 源端口(16) 目的端口(16) 长度(16) 检验和(16) data 注:检验和全0表示不使用...

    TCP:
    伪头==12:仅参与校验和,成员totallen不包括伪头部.
    sourceip(32)
    destip(32)
    res(8) protocol(8) totallen(16)
    报头>=20bytes.
    sourcePort(16) DestPort(16)
    seq(32)
    ack_seq(32)
    hdrlen(4) res(6) urg/ack/psh/rst/syn/fin win(16)
    checksum(16) urgpoint(16)
    options(0~40bytes即0~320bit)
    选项最大长度:tcp首部长度hdrlen范围是2^4-1=15个32bit.即60bytes,减去固定长度20bytes,得选项最多40bypes.
    选项部分必须为8bit整数倍,这样才符合RFC文档要求.
    选项:kindle(8) length(8) info(16).
    TCP选项:
    MSS(maximum segment size)最大报文传输段(数据报不分片的最大值):32bit数据部分字段(不包括TCP头).
    应用层往TCP层写数据时,若TCP发送缓冲区满,但还没write完,内核便将write系统调用挂起;TCP发送缓冲区满或网络空闲时,缓冲区数据便被通过ip层发送到链路层发送队列中;发送缓冲区数据成功发送(包括重传等情况)后,才唤醒write.而ip分片会导致TCP重传可能性增大,此时ip层再分片,将可能导致write一直挂起,性能下降.
    MSS=MTU-TCP头部大小-IP头部大小=data. 
    ip层的MTU(maximum transfer unit) = ipHeader+tcpHeader+data;

    SACK(selective acknowledgements)选择确认选项.34bytes
    目的是为了不重传已经正确到达的数据.eg:A发送1,2,3,4,5数据,B接收到1,3,5,而2,4丢失.不启动SACK,A从2开始重传;启动SACK,A只重传2,4.
    tcp首部options最多40bytes,而指明一个序列号边界需4bytes,一个报文需要2个边界:如2丢失,需要1,3序列号指明.故需要8bytes.因此最多指明4个丢失报文.(因为还需要2个功能字节,故40/8-1=4).这个选项大小是34bytes.

    时间戳选项(timestamps).10bytes.
    1,用来计算往返时间RTT.发送方在放松报文前放入当前时间,接收方只需在应答时复制该时间戳即可,以便发送方计算RTT.
    2,PAWS防止回绕的序号:众所周知,32bit序列号在数据超过2^32便会重复.在高速网络(如1Gb/s),则几秒便会重复,从而可能带来传输的混乱.启用时间戳选项后,可以很容易的分辨出相同序列号的数据报先后顺序.
    NOP(no operation):2bytes
    这个字段实际上没有任何意义,它用于提供填充垫片.TCP头部必须是4bytes的倍数,但options则通常不满足.如果不满足,则需要使用NOP进行填充使之符合tcp的头部构造规定.
    NOP也用作分割选项.如我们使用了窗口扩大选项和SACK,那么必须使用NOP进行隔离.
    窗口扩大选项(window scaling):TCP最大窗口64Kb,对于时延和带宽都大的通信不能满足性能和高吞吐量,于是窗口扩大选项产生.
    窗口扩大选项占3bytes,第一个byte表示移位值S.表示win左移S bit.在tcp握手时协商从而扩大,后续如果改为0,则回复win的16bit大小.S最大值是14,因此win最大是65535*2^14=1GB.


    拥塞窗口cwnd(congestion window):发送方维持一个动态变化的拥塞窗口,大小取决于网络拥塞程度.
    发送方的发送窗口<=拥塞窗口.一般两个窗口相等.
    网络好,从而拥塞窗口较大时,由于接收方接收能力有限,从而发送窗口达到一定值不再发生变化.
    网络拥塞:发送方发送一些报文段,没有在一定时间内接收到确认报文,可认为网络拥塞.

    慢启动算法:为了防止网络拥塞,cwnd=1,发送报文后收到确认报文,则cwnd*=2;
    拥塞避免:慢启动算法还是增加过快,容易导致网络拥塞.因此加了个状态变量:慢开始门限ssthresh
    当cwnd < ssthresh时,使用慢启动算法
    当cwnd > ssthresh时,使用拥塞避免算法.

    拥塞避免算法:每次往返 cwnd+1,而不再翻倍.cwnd此时增长比慢启动慢的多.
    拥塞避免算法之一:AIMD算法:和式增加,积式减少.
    积式减少:网络一旦出现超时:ssthresh=cwnd/2,cwnd=1,执行慢启动算法.(cwnd<ssthresh)
    和式增加:cwnd++.(前提:cwnd>ssthresh)

    快重传算法:
    发送方发送1,2,3,4,5,6,7,8,9,10,...连续收到3个确认4后,不必再等待超时,直接从5开始重发.
    5丢失...
    接收方接收到1,2,3,4,6(确认4),7(确认4),8(确认4),9(确认4)...

    快恢复算法:
    发送方连续收到3个确认后,执行积式减少:ssthresh=cwnd/2,此时cwnd/=2,开始执行拥塞避免算法,拥塞窗口cwnd缓慢增大.


    UDP头部:
    源端口(16) 目的端口(16)
    长度(16)   检验和(16)
    data
    注:检验和全0表示不使用检验和.

    UDP是否和TCP一样分片?UDP不需要保证可靠,因此没有发送缓冲区,在应用层调用write时,数据直接传输到ip层.由于ip层也没有缓冲区,数据直接写到链路层的输出队列中.如果UDP数据报大于链路层MTU,ip层就会分片,再发送到链路层输出队列.


    公认的服务端口:
    ftp    21
    telnet 23
    smtp   25
    gopher 70
    http   80

    展开全文
  • 关于TCP报文段以及拥塞窗口cwnd的理解纠正

    万次阅读 多人点赞 2016-11-26 16:43:19
    关于TCP报文段以及拥塞窗口cwnd的理解纠正@(计算机网络)在普通的拥塞控制算法中,我们总是粗粒度的关注每个RTT拥塞窗口的变化,比如初始报文段MSS = 1KB,在慢开始阶段增长规律是1→2→4→8...1\rightarrow 2\right...

    @(计算机网络)

    在普通的拥塞控制算法中,我们总是粗粒度的关注每个RTT拥塞窗口的变化,比如初始报文段MSS = 1KB,在慢开始阶段增长规律是 1 → 2 → 4 → 8... 1\rightarrow 2\rightarrow 4 \rightarrow 8... 1248...

    这种指数级增长的规律用着很简洁。但是直到刚刚为止我才意识到为什么是指数级,以及cwnd是如何增长的。

    很多题目中告知的是对每一个段进行确认,注意是每一个段。那么确认的时候,一定告诉了当前rwnd的大小,那么这个时刻的cwnd增长不是粗粒度,而是每收到一个确认,cwnd就加一个MSS.

    数据链路层的RTT是往返时延,而TCP中的RTT是一个传输轮次。就是当前发送窗口全部发出并全部得到确认。

    因此,假设当前发送窗口是4,那么全部发出再全部确认,且此时还是在慢开始阶段,就意味着一个RTT后,发送窗口大小是8.

    具体过程是这样的:

    • 第一段的确认回来了,发送窗口 = 4+1 = 5;
    • 第二段的确认回来了,发送窗口 = 5+1 = 6;
    • 第三段的确认回来了,发送窗口 = 6+1 = 7;
    • 第四段的确认回来了,发送窗口 = 7+1 = 8;

    所以一个比较细致的过程是对一个MSS一个MSS增长的。

    达到门限值时,一个RTT才增长一个MSS,就不是每收到一个段的确认就加一个MSS那么快了。

    分析一道题目:

    (2016.41)H3与主机S建立TCP连接,S的接收缓存是20KB,S对每个收到的段进行确认,并通告新的接收窗口(rwnd)。最大段长MSS = 1KB,平均往返时间RTT = 200ms。H3持续以MSS大小的段向S发送数据。拥塞窗口初始值阈值是32KB。S的接收缓存的数据只输入不取出。

    (2)H3在收到第8个确认帧时,所通告的接收窗口是多少?此时H3的拥塞窗口是多少?H3的发送窗口是多少?

    分析:先只关注这个题目。

    如果只是粗粒度的掌握cwnd的变化曲线,那么这个问题将会陷入死胡同。只有理解到cwnd一个MSS一个MSS的增长时,才能精确解出。

    这里初始时发送1KB,接收缓存收到后,确认帧告知H3: rwnd = 19.
    一个RTT后发送2KB,接收缓存收到后,确认帧告知H3: rwnd = 17.
    两个RTT后发送4KB,接收缓存收到后,确认帧告知H3: rwnd = 13.

    注意下一次就不是以一个发送轮次计算了,因为现在接收缓存已经收到了7KB,且发送了7个确认。7个确认帧回来,每回来一个cwnd+1,回来7个就+7当第8个段发过去时cwnd = 8,接收缓存收到第8个段并存起来,rwnd = 12,第8个确认帧发回到H3,cwnd又加1,变为9.

    当然也可以直接说,每确认一个段就加1,因此8个段都确认了,就是cwnd = 1+8 = 9KB.

    发送窗口 = min(cwnd, rwnd) = min(12KB, 9KB) = 9KB.

    题目会往更加细节的地步考察,因此只掌握大概的理论就是半瓶子醋,根本没用。需要仔细拓展,深化知识点间的关系。

    2016.12.12 update:

    看到之前挖了一个坑,待解决的问题现在补充说明。

    之前说**TCP中的RTT不同于数据链路层的RTT**,确实定义不同,但也不是差别特别大。至少都是往返时延,都是对时间的计量。

    TCP中的往返时延是:记录每个报文段发出的时间以及收到相应的确认报文段的时间。两个时间差就是报文段的往返时延。

    而将每个报文段的往返时延加权平均,就可以得出报文段的平均往返时延。之所以要计算平均值,是因为TCP架构在互联网环境下,RTT的变化范围比较大,所以采用平均的方式会更加具有适应性。

    而计算公式有一个常见的: R T T = ( 1 − α ) R T T 旧 + α R T T 新 RTT = (1-\alpha)RTT_旧+\alpha RTT_新 RTT=(1α)RTT+αRTT

    这个RTT也是作为RTO(超时计时器重传时间)的比较标准,RTO取的略大于RTT即可。

    特别需要补充的是,对传输轮次的理解。在慢开始阶段,就是指数增长阶段,每经过一个传输轮次,拥塞窗口cwnd就加倍。这个我们非常熟悉了。详细一点,上面提到了,TCP对每一个段进行确认。所以增长并不是说,以RTT为一个时间单位跳动,而是离散但是近似连续的增长。而根据RTT的定义,是发送一个报文段开始计时到收到对这个报文段的确认。如果按照这个推演,可以想到,发送窗口中的一个报文段,按下秒表,再等到它的确认回来时,按住表,得到一个时间差。这个按照定义是RTT。在等待它的确认报文段的过程中,发送窗口中的剩下的报文也陆续出发了,假设这个陆续出发消耗一定的时间,那么等到最后一个确认报文段回来时,表示这轮才传输结束时,总的经历时间其实已经大于RTT了。But,根据很多书上的定义:

    一个传输轮次所经历的时间其实就是往返时间RTT。

    但我们知道,这其实绝不是个等号,最多是个近似值。如果连续发送耗时极短,则发送第一个报文和最后一个报文段时间忽略不计,那么第一个报文到达目的地时,第二个报文段也是紧随其后,这样,“几乎”可以认为一个传输轮次用时等于RTT了。

    更严格的推导我还没怎么见过,但是如果认为一个传输轮次就是一个RTT也更能简化问题。

    END.

    展开全文
  • 滑动窗口RWND 和 拥塞窗口 CWND的区别 参考文章:「What is CWND and RWND?」 文章如有错误,希望指正,共同学习 RWND (Receiver Window) 滑动窗口: 滑动窗口技术是TCP的流量控制的核心,存在于TCP的Header中,主要...

    滑动窗口RWND 和 拥塞窗口 CWND的区别

    参考文章:「What is CWND and RWND?

    文章如有错误,希望指正,共同学习


    RWND (Receiver Window) 滑动窗口:

    滑动窗口技术是TCP的流量控制的核心,存在于TCP的Header中,主要用于并发处理网络seq;

    在不使用窗口之前,TCP的Sender和Receiver收发的数据包总是一一对应,并且按序执行,即假设存在5个包,sender发送包1必须收到Receiver的ack才能继续发送包2,否则只有忙等。但是滑动窗口的存在则是允许我们Sender按照Receiver的允许大小,一次按序传递seq,而不用等到某个ack回来才能发新的数据包。即可以按序发送1、2、3、4、5 五个包,然后等对方回复对应ACK即可。

    Receiver Window的是动态改变的,随着Sender每次发送seq的时候,Receiver都会根据当前机器的执行效率和缓存上限、当前缓存大小得出一个合适的Window Size,并且随着Ack回传到Sender。Sender在下次发送数据包的时候,就可以根据新的窗口大小去发送数据了。

    可以说RWND是为了并发seq存在的一个缓存技术,一般是Receiver端去维护可行的大小,并且和计算机本身CPU的处理速度有关。


    CWND(Congestion Window)拥塞窗口:

    在TCP的拥塞处理-慢启动上面提出了Congestion Window拥塞窗口,与RWND还是存在不少的差别。

    Congestion Window最大的一个区别在于控制网络速度,即控制的是一次能收发多少个seq,你可以理解他是一个限速,好比一个网络限速,他也不是一个"缓存"的存在,虽然他的名字叫Window…

    而且Congestion Window的出现,一般都是出现网络拥塞发生的时候;即可能因为收发双发的缓存已经开始写满溢出了,这时候开始引起网络丢包、重传、降低数据传输的吞吐量、性能下降甚至出现"网络风暴"。

    Congestion Window是通过慢启动的方式逐渐按照算法去增长,并且一直往RWND的大小去靠近,或者直到这个CWND的大小达到了网络的峰值。这里看也可以得出RWND可能会比CWND大得多,毕竟RWND是通过Receiver的机器去控制大小的,而CRND则会受到网络相关的设备限制(电缆、路由器那些)。

    但是TCP层面的收发速率,确实是会取决于CWND和RWND的最小值(很大程度上取决于CWND,因为RWND一般都比较大),这个还是比较容易理解。

    同时CWND是由发送端去维护,根据慢启动的处理,CWND的大小是会根据RTT(segment片段从sender发送到Receiver,并且Receiver回ACK到Sender,并且Sender收到ACK的一个时间差)采样实现动态变化;

    当网络畅通的时候能快速达到峰值;当网络慢的时候,又可以通过拥塞避免、拥塞发生、快速恢复等手段降低CWND的大小,减少数据包的发送,避免网络风暴。当网络比较畅通的时候,将窗口又按照算法快速控制到最大值,从而提高网络发送效率。

    展开全文
  • 拥塞窗口cwnd的理解

    千次阅读 2009-07-16 11:20:00
    拥塞窗口cwnd的理解: 开始的时候拥塞窗口是1,发一个数据包等ACK回来 cwnd++即2,这个时候可以发送两个包,发送间隔几乎没有 对方回的ACK到达发送方几乎是同时到达的.一个RTT来回 cwnd就翻倍,cwnd++,cwnd++即4了....

     

    拥塞窗口cwnd的理解:
     
     开始的时候拥塞窗口是1,发一个数据包等ACK回来
     cwnd++即2,这个时候可以发送两个包,发送间隔几乎没有
     对方回的ACK到达发送方几乎是同时到达的.一个RTT来回
     cwnd就翻倍,cwnd++,cwnd++即4了.如此下去,cwnd是指数
     增加.
     
     
     
     
     snd_cwnd_clamp这个变量我们可以不管,假定是一个大值.
     窗口到了我们设置的门限,snd_cwnd不在增加 而通
     过snd_cwnd_cnt变量来计数增加,一直增加到
     大过cwnd值,cwnd才加1,然后snd_cwnd_cnt重新计数
     通过snd_cwnd_cnt延缓cwnd计数
     
     由于TCP是固定大小报文,每一个snd_cwnd代表了一个报文
     段的增加,snd_cwnd_cnt则看成byte的增加
     
    void tcp_cong_avoid(struct send_queue* sq)
    {
        /* In saft area, increase*/
        if (sq->snd_cwnd <= sq->snd_ssthresh){
            if (sq->snd_cwnd < sq->snd_cwnd_clamp)
                sq->snd_cwnd++;
        }
        else{ 
            /* In theory this is tp->snd_cwnd += 1 / tp->snd_cwnd */
            if (sq->snd_cwnd_cnt >= sq->snd_cwnd) {
                if (sq->snd_cwnd < sq->snd_cwnd_clamp)
                    sq->snd_cwnd++;
                sq->snd_cwnd_cnt = 0;
            } else
                sq->snd_cwnd_cnt++;
        } 
    }

     
    snd_cwnd 还没到达门限不断增加snd_cwnd++
     
    snd_cwnd++                      | <--snd_ssthresh
                                    ^
     
    到达了snd_ssthresh转入拥塞避免,这个阶段由变量snd_cwnd_cnt来控制
     
    转入拥塞,由于snd_cwnd_cnt从0开始小于snd_ssthresh,即从snd_ssthresh那个点开始计数
    一致计数达到snd_cwnd拥塞窗口的值,但是还小过牵制snd_cwnd_clamp值
                                         
                                  snd_cwnd_clamp
                                         ^
            snd_cwnd++                   |            | <--snd_ssthresh
                                                      ^
                                            snd_cwnd++        
                                                                  snd_cwnd_clamp
                                                                         ^
                                        snd_cwnd_cnt++                   |            | <--snd_ssthresh
                                                                                      ^
                                                       0      --->       snd_cwnd_cnt++
     
     
                       <------                       时间                      ------->

     

    展开全文
  • (转)TCP的拥塞控制

    2020-02-16 17:19:46
    1. 拥塞:即对资源的需求超过了可用的资源。若网络中许多资源同时供应不足,网络的性能就要明显变坏,整个网络的吞吐量随之负荷的增大而下降。 拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或...
  • TCP协议-TCP的拥塞控制

    2021-08-10 17:25:13
    一、拥塞控制概述 TCP模块除了要进行流量控制外,还有一个重要的任务,就是提高网络利用率,降低丢包率,并保证网络资源对每条TCP连接的数据流的公平性。这就是拥塞控制要解决的问题。 在计算机网络中的链路容量...
  • TCP拥塞控制

    万次阅读 多人点赞 2019-11-09 14:41:17
    拥塞 在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生拥塞(congestion)。 拥塞原因 某结点缓存容量太小 某链路带宽不足 某些处理机处理效率太慢 拥塞会累积,不断...
  • TCP发送方维持一个拥塞窗口CWND (Congestion Window) 拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送端利用拥塞窗口根据网络的拥塞情况调整发送的数据量。 所以,发送窗口大小不仅取决于接收方公告...
  • 文章目录TCP拥塞控制算法一.为什么要有拥塞控制一. 慢开始二.拥塞避免三.快速重传四....TCP拥塞控制算法 TCP拥塞控制算法一共有四种: 慢开始 拥塞避免 ...一.为什么要有拥塞控制 ...输入的负载到达一定程度 吞
  • TCP的拥塞控制

    2019-05-14 17:57:13
    1. 拥塞:即对资源的需求超过了可用的资源。若网络中许多资源同时供应不足,网络的性能就要明显变坏,整个网络的吞吐量随之负荷的增大而下降。 拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或...
  • TCP之拥塞窗口原理

    2021-10-29 16:34:11
    学过网络相关课程的,都知道TCP中,有两个窗口: 滑动窗口(在我们的上一篇文章中有讲),...我们称之为拥塞窗口 (CWND)。这是在我们必须停止并等待确认之前可以发送的字节数。 拥塞窗口是决定任何时候可以发出的字
  • 拥塞窗口

    2018-03-19 23:25:00
    之前学习了滑动窗口,滑动窗口用来根据接收方的能接收数据的缓存大小来对发送方进行流量控制,从而减少网路...为了解决这个问题,引入了拥塞窗口,即在发送端设置一个窗口结构,根据网络的拥塞情况,动态调整该窗...
  • 一、减缓TCP发送概述 一个待解决的问题是,如何减缓TCP发送 ...二、拥塞窗口cwnd) 为实现上述操作,基于对网络传输能力的估计,可以在发送端进入一个窗口控制变量,确保发送窗口大小不超过接...
  • 然后进入慢开始,cwnd值置为1,cwnd按指数规律增长,随后窗口大小分别为1,2,4,6,当拥塞窗口cwnd=ssthresh时,进入拥塞避免阶段,其窗口大小依次是7,8,9。 5—39 TCP的拥塞窗口cwnd大小与传输轮次n的关系如下所示: ...
  • 拥塞窗口与滑动窗口

    2019-09-02 17:05:54
    当拥塞窗口cwnd增长到慢开始门限值ssthresh时(即cwnd=16时),就改为执行拥塞控制算法,拥塞窗口按线 性规律增长。 <3>. 假定拥塞窗口的数值增长到24时,网络出现超时(这很可能就是网络发生拥塞了)。更新后的...
  • 输入的负载到达一定程度 吞吐量不会增加,即一部分网络资源会丢失掉,网络的吞吐量维持在其所能控制的最大值,转发节点的缓存不够大这造成分组的丢失是拥塞的征兆。TCP的四种拥塞控制算法 1.慢开始 2.拥塞控制 3....
  • 转载:https://blog.csdn.net/ligupeng7929/article/details/79597423 ... 因此我们先了解一下16位的窗口大小究竟有什么作用。 窗口分为滑动窗口和拥塞窗口。 滑动窗口是接受数据端使用的窗口大小,用来...
  • TCP拥塞窗口验证

    2020-04-08 21:20:36
    如果在一个RTO时长内,拥塞窗口没有被完全的使用,TCP发送端将减小拥塞窗口。因为此时TCP发送端的拥塞窗口可能并非当前的网络状况,所以发送端应减小拥塞窗口。根据RFC2861,ssthresh应设置为其当前值与3/4倍的拥塞...
  • TCP的拥塞控制 1. 拥塞:即对资源的需求超过了可用的资源。若网络中许多资源同时供应不足,网络的性能就要明显变坏,整个网络的吞吐量随之负荷的增大而下降。  拥塞控制:防止过多的数据注入到网络中,这样可以使...
  • 它反映了网络当前的容量 根据以上,我们不难看出要最大程度的控制网络拥塞情况又兼顾到网络传输效率接收端窗口rwnd小于拥塞窗口cwnd时发送端窗口上限值应该为接收端窗口,接收端窗口rwnd大于拥塞窗口cwnd时发送...
  • 拥塞控制之慢开始和拥塞避免

    千次阅读 2017-06-15 21:06:29
    发送方维持一个拥塞窗口cwnd)的状态量。拥塞窗口的大小取决与网络的拥塞程度,并且动态变化。发送方让自己的发送窗口等于拥塞窗口。 慢开始由小到大增大发送窗口的,与就是说由小到大增大拥塞窗口大小数值。首先...
  • TCP的拥塞控制详解

    千次阅读 2016-07-13 12:54:17
    拥塞控制的一般原理在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生拥塞(congestion)。出现资源拥塞的条件: 对资源需求的总和 > 可用资源 若网络中有许多资源...
  • TCP拥塞控制算法(过程举例讲解)

    千次阅读 2020-05-12 21:23:12
    TCP采用基于窗口的方法进行拥塞控制。 TCP拥塞控制算法可以分为四种,分别用于数据传输的不同阶段: 1.慢开始 2.拥塞避免 3.快重传 4.快恢复 先放上一个过程举例,在最后会讲到 慢开始: 用来确定网络的负载能力。 ...
  • 简述拥塞控制的四种基本算法

    千次阅读 2018-06-07 11:41:00
    losbyday 一名热爱开源、朴实的搬运工 ...TCP/IP详解--拥塞控制 & 慢启动 快恢复 拥塞避免 ...TCP的拥塞控制 ... 拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过...
  • TCP的滑动窗口与拥塞窗口

    万次阅读 多人点赞 2018-03-18 01:22:52
    因此我们先了解一下16位的窗口...那么对于数据的发送端就是拥塞窗口了,拥塞窗口不代表缓存,拥塞窗口指某一源端数据流在一个RTT内可以最多发送的数据包数 一、滑动窗口 滑动窗口协议是传输层进行流控的一种措施...
  • 计算机网络-TCP拥塞控制

    千次阅读 2020-03-07 23:49:09
    目录1 拥塞概念2 拥塞控制的一般原理3 拥塞控制的方法3.1 慢开始 (Slow start)3.2 拥塞避免算法3.3 快重传算法3.4 快恢复算法3.5 加法增大,乘法减小 (AIMD)3.6 拥塞控制流程图3.7 发送窗口的上限值 1 拥塞概念 在...
  • TCP报文、滑动窗口、拥塞窗口解释

    千次阅读 2018-12-12 23:22:05
    拥塞窗口阈值ssthresh是前一次拥塞时cwnd值的一半,建立连接之初,拥塞窗口cwnd=1,阈值ssthresh可以为无限大(因为不知道网络发送流量上限是多少,无法确定,设为一个较大值(ssthresh=65536),进行试探,或者指定...
  • 拥塞控制就是为了防止过多的数据注入到网络中,这样就可以使网络中的路由器或链路不致过载。 TCP的拥塞控制采用了四种算法,即慢开始、拥塞避免、快重传和快恢复。 (简记这两个过程:门限下是慢启动,门限上是...
  • TCP发送窗口拥塞窗口试题分析

    千次阅读 2019-10-05 13:28:18
    题目一: 来源2015年408计算机综合 试题链接:... 主机甲和主机乙新建一个TCP 连接,甲的拥塞控制初始阈值为 32KB,甲向乙始终以 MSS=1KB 大小的段发送数据,并一直有数据发送;乙为该连...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,492
精华内容 2,996
关键字:

当拥塞窗口cwnd