数据可靠传输协议


数据在传输中,会被分割成很多小块的分组传输。
为了保证数据传输的可靠性,诞生了两个协议。统称都是流水线方法,

一、回退N步协议(GBN)

首先会给分组加一个有序序号。
同时会将序号分成四段。
[0,start-1]:
这段序号对应的是已经发送给目标计算机,且返回ACK确认信息的分组序号
[start,next-1]
这段序号对应的是已经发送给目标计算机,但是未收到确认ACK的分组序号
[next,N-1]
这段序号对应的是可以用,但是还没有发送给目标计算机的分组序号
[N,-xx]
这段序号 代表目前不能使用该序号,直到当前流水线中的未收到确认ACK的分组序号收到确认ACK后,整体往前移动的时候,才能被使用。

[start,N]这段序号称为窗口长度。窗口在序号中移动,所以GBN也是滑动窗口协议。

在GBN协议中,发送计算机A和目标计算机B需要进行的响应应该有:
A:
1.收到ACK确认信息:当A收到序号为n的ACK确认信息后,就代表着n序号和n之前的序号分组已经被B接收了。
2.超时响应:当序号star发送的一瞬间,A会启动一个定时器。当定时器过后还没收到确认ACK后,A就认为该分组已丢失,这个时候A就会重传已经发送但是未确认的分组,即[start,next-1]

B:
当收到序号n的分组,如果确认收到了,且n-1和之前的分组也已经收到了,那么B会为分组n发送ACK确认信息,否则丢弃该分组且为最近按序接收的分组重新发送ACK信息。

二、选择重传协议(SR)

在GBN中,如果n-1分组失序或者丢失了,那么n-1和n都要重新发送。如果是发送0-1000的分组,序号1的失序了或者出了差错,那么1-1000的分组就要重传, 这是非常恐怖的。
所以出现了SR选择重传。

SR跟GBN前面步骤是一样的,但是在B收到了失序的n分组后(n-1还没确认收到),并不会马上重传,而是会缓存起来。直到n-1分组确认后,才会把n拼起来。
发送方A只需要根据定时器重传那些没用被正确收到的分组就行。

例如发送方A发送1-5的分组

B收到序号3的分组,但是1,2分组还没收到,此时B先将3缓存,同时发送3的ACK信息给A。
A收到3的ACK确认,但是这时候窗口不会移动,因为1和2的ACK还没收到。
A收到1和2的ACK,这个时候流水线的窗口才会向右移动三个,因为3之前就收到了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HUST(可靠数据传输协议设计)是一种可靠数据传输协议,通过其设计可以实现数据可靠传输和有效管理。HUST协议具有以下特点: 1. 可靠性:HUST协议采用了多种技术来确保数据可靠传输。它使用数据包序列号和确认机制来检测和纠正丢失、重复或损坏的数据包。还引入了超时重传机制,确保数据在传输过程中不会丢失。 2. 效率:HUST协议充分利用了网络资源,提高了数据传输的效率。它采用了流水线方式传输数据,即发送方可以连续发送多个数据包,而无需等待前一个数据包的确认。这样可以显著降低传输延迟,提高传输速率。 3. 管理机制:HUST协议还实现了一些管理机制,用于控制数据传输过程中的流量。它采用了滑动窗口机制,可以限制发送方的发送速率,避免网络拥塞。此外,HUST协议还支持流量控制和拥塞控制,确保网络资源的合理利用,提供最佳的传输性能。 4. 安全性:HUST协议为数据传输提供了一定的安全性保障。它支持数据的加密和身份验证,防止数据被窃取或篡改。通过使用安全的加密算法和认证机制,HUST协议可以确保数据在传输过程中的机密性和完整性。 总的来说,HUST协议是一种可靠、高效、安全的数据传输协议。通过它的设计,可以实现数据可靠传输和有效管理,提供最佳的用户体验和网络性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值