分享

滑动窗口机制简单理解

 心不留意外尘 2016-04-16
2007-05-06
from http://www./blog/archives/245.html

这篇文章是对滑动窗口机制的简单理解.

发送:

将 snd_wnd(发送窗口大小) 个数据包发送出去, 然后每收到一个确认包便再发送一个, 直到所有的数据包发送完毕. 发送窗口的选择的一个考虑是, 保存已发送但未确认的包所需要的内存. 还有一个考虑是接收方对排序数据包的要求. 还有就是网络硬件的限制.

接收:

每收到一个数据包, 便回复一个确认, 然后将收到的数据包排序.

这简单, 但是问题是, 收到的包的顺序有利与排序吗? 我们希望接收到的每一包都是我们期望的下一个(rcv_nxt), 如果不是, 暂时将它保存. 如果我们使用一个链表来保存收到的包, 那么将包插入到这个链表时, 就要维护它的有序性.

如果接收到的包太过分散(有相当部分落在接收窗口之外), 那么接收方记录这些包就会消耗更多内存, 排序也会消耗更多的CPU时间和其它资源.

接收方还要处理重复包的问题.

这仍然是停止等待机制, 只不过是并发的停止等待. 将微观上的串行转换为宏观上的并行.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多