Java-TCP拥塞控制和流量控制

本文探讨了网络通信中的流量控制与拥塞控制两大核心问题。流量控制通过滑动窗口等机制调节数据发送速率,避免接收端超负荷;拥塞控制则着眼于全局,通过慢开始、快重传等策略预防网络过载,确保网络资源有效分配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.流量控制:
  1.流量控制往往指的是点对点通信量的控制,是个端到端的问题。
  2.流量控制所要做的就是控制发送端发送数据的速率,以便使接收端来得及接受。
  3.方法:滑动窗口:
    1.说明了利用可变窗口大小进行流量控制。设主机A向主机B发送数据。
    2.双方确定的窗口值是400.再设每一个报文段为100字节长,序号的初始值为seq=1,
      图中的箭头上面大写ACK,表示首部中的却认为为ACK,小写ack表示确认字段的值。
      接收方的主机B进行了三次流量控制。
    3.第一次把窗口设置为rwind=300,
      第二次减小到rwind=100最后减到rwind=0,即不允许发送方再发送过数据了。
      这种使发送方暂停发送的状态将持续到主机B重新发出一个新的窗口值为止。
   
    4.死锁
      假如,B向A发送了零窗口的报文段后不久,B的接收缓存又有了一些存储空间。
      于是B向A发送了rwind=400的报文段,然而这个报文段在传送中丢失 了。
      A一直等待收到B发送的非零窗口的通知,而B也一直等待A发送的数据。
      **这样就死锁了。
      为了解决这种死锁状态,TCP为每个连接设有一个持续计时器。
      只 要TCP连接的一方收到对方的零窗口通知,就启动持续计时器,
      若持续计时器设置的时间到期,就发送一个零窗口探测报文段(仅携带1字节的数据),
      而对方就在确认这个探测报文段时给出了现在的窗口值。

在这里插入图片描述

2.拥塞控制:
  1.拥塞控制就是防止过多的数据注入到网络中,
    这样可以使网络中的路由器或链路不致过载。
  2.拥塞问题是一个全局性的问题,涉及到所有的主机、所有的路由器、
    以及与降低网络传输性能有关的所有因素。
  3.方法:
    慢开始、拥塞避免、快重传和快回复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值