5.5 TCP流量控制&拥塞控制【重点】


5.5 TCP流量控制&拥塞控制【重点】

流量控制:让发送方慢点,要让接收方来得及接收。

流量控制原理——滑动窗口机制

  • 在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小

  • 即接收窗口rwnd (接收方 设置确认报文段的窗口字段来将rwnd通知给发送方)

  • 发送方的发送窗口大小取值为 min{接收窗口rwnd,拥塞窗口cwnd}

例子

A向B发送数据,连接建立时,B告诉A:“我的rwnd=400(字节)”,设每一个报文段100B,报文段序号初始值为1。

  • TCP为每一个连接设有一个持续计时器,只要TCP连接的一方收到对方的零窗口通知【rwnd=0】,就启动持续计时器。
  • 若持续计时器设置的时间到期,就发送一个零窗口探测报文段。 接收方收到探测报文段时给出现在的窗口值。
  • 若窗口仍然是0,那么发送方就重新设置持续计时器。

TCP拥塞控制

出现拥塞的条件: 对资源需求的总和 > 可用资源

拥塞控制: 防止过多的数据注入到网络中。 (防止网络性能变坏)

拥塞控制的四种算法

  • 慢开始
  • 拥塞避免
  • 快重传
  • 快恢复

假定:
1.数据单方向传送,而另一个方向只传送确认

⒉接收方总是有足够大的缓存空间,因而发送窗口大小取决于拥塞程度

发送窗口=Min{接收窗口rwnd,拥塞窗口cwnd}

接收窗口:接收方根据接受缓存设置的值,并告知给发送方,反映接收方容量。

拥塞窗口:发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量。

慢开始和拥塞避免

一个传输轮次: 发送了一批报文段并收到它们的确认的时间。

阶段

慢开始阶段:第n轮次,其拥塞窗口cwnd就是2^n【n是从开始那一刻算0起始,n++】

拥塞避免阶段:24/2=12得到新的ssthresh值,即网络拥塞时的最大窗口数量/2,得到新的最大值。

重复下一回合——

慢开始阶段

拥塞避免阶段

快重传和快恢复

慢开始阶段:第n轮次,其拥塞窗口cwnd就是2^n

快恢复:从新的ssthresh值开始,加法增大,cwnd++

拥塞避免阶段:24/2=12得到新的ssthresh值,

重复下一回合——