TCP可靠传输的实现

TCP通过滑动窗口实现可靠传输,即使窗口大小和接收方不完全同步。不按序到达的数据会被暂存,等待缺失部分补全后再按序交付。TCP采用累积确认和捎带确认策略,减少确认开销,避免不必要的超时重传,确认延迟不超过0.5秒。

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

TCP可靠传输的实现

TCP基于以字节为单位的滑动窗口来实现可靠传输

下图中发送方的发送窗口为20

image-20220926210017673

假设发送方发送的数据中只有32和33到达了接收方,此时接收方接收32,33,但是因为他们是未按序到达的数据,所以接收方只能对按序收到的数据中的最高序号给出确认,也就是发送ack=31表示希望收到31号数据

image-20220926211943876

接收方返回:ack=31,当发送方收到该重复指令时就知道31丢失了并重新发送

image-20220926212330705
注意:

虽然发送方的发送窗口是根据接收方的接收窗口设置的,但在同一时刻,发送方的发送窗口并不总是和接收方的接收窗口一样大。

  • 网络传送窗口值需要经历一定的时间滞后,并且这个时间还是不确定的。
  • 发送方还可能根据网络当时的拥塞情况适当减小自己的发送窗口尺寸。

对于不按序到达的数据应如何处理,TCP并无明确规定。

  • 如果接收方把不按序到达的数据一律丢弃,那么接收窗口的管理将会比较简单,但这样做对网络资源的利用不利,因为发送方会重复传送较多的数据。
  • TCP通常对不按序到达的数据是先临时存放在接收窗口中,等到字节流中所缺少
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值