|
Post by mostafiz48n on Jan 29, 2024 1:16:39 GMT -5
分组和确认分组都必须进行编号这样才能明确是哪个分组收到了确认。 协议 假设分组的确认丢失了发送方在设定的超时时间内没有收到确认不知道是自己发送的分组丢失还送方需要重传分组。当接收方收到了分组后就丢失这个分组重新发送确认。 还有种情况是分组没有丢失但是晚到了发送端会受到重复确认会收下并且丢弃接收端仍然会收到重复的分组同样丢弃并确认。 上述确认和重传机制即 自动重传请求接收端不需要向发送端发送重传请求当超过指定时间时发送端会自动进行超时重传。 效率问题 停止等待协议的优点是简单缺点是信道利用率太低。信道利用率为 是发送分组的时间 是发送确认分组的时间 是往返时间当 远大于 时通信效率就会非常低。 为了提高传输效率可以采用流水线传输例如连续 协议和窗口滑动机制。 连续 连续 规定每收到个确认就把发送窗口向前滑动个分组的位置接收方般采用累积确认的方式就是说接收方不必对收到的分组逐个确认只需要对按序到达的 WhatsApp 号码数据 最后个分组进行确认。优点是实现容易即使确认丢失也不必重传确认是不能向发送方反映出接收方已经正确收到的所有分组的消息。例如发送方发生了 个分组第 个分组丢失了接收方只能确认前 个发送方必须把后面 个都重新发送。 滑动窗口机制 滑动窗口以字节为单位。发送端有个发送窗口窗口重的序号是允许发送的序号窗口的后沿是已经发送并且确认的序号窗口的前沿是不允许发送的序号。 窗口的后沿可能不动代表没有收到新的确认也有可能前移代表收到了新的确认但是不会后移不可能撤销已经确认的数据。窗口的前沿般是向前的也有可能不动表示没有收到新的请求或对方的接收窗口变小也有可能收缩但是 强烈不建议这么做因为发送端在收到通知前可能已经发送了很多数据此时如果收缩窗口可能会产生错误。 滑动窗口的状态需要 个指针 和。之前的序号表示已经发送并且确认的 到 的序号表示已经发送但还没有确认的 到 表示允许发送的序号也叫可用窗口 到 表示发送窗口 之后的序号表示不可发送的。 发送缓存用来暂时存放发送应用程序传给发送方 准备发送的数据和已经发送但还没确认的数据。
|
|