概述
wifi msdu可以32级聚合,mpdu可以256级聚合。聚合后的最大长度mpdu是11000kB左右。
既然都是聚合,为什么还要分成两级呢? 各有好处呀。 前者聚合只需要各自加上RA TA LENGTH就可以了,为什么除了LENGTH之外还需要RA,TA呢。毕竟recv端只需要LENGTH解析出分段就可以交给网络层了。这里有个规定:MSDU的分片必须RA和TA以及TID都相同,我想这是避免不同RA,TA和TID的MSDU聚合影响了收端的数据分发效率。聚合的时候加上RA,TA就可以方便MAC层判断MSDU是否满足聚合条件,RECV端方便check。
后者就必须整个HEADER都给加上(为什么?)。 所以前者效率高。但是呢,前者我无法分片重传?为什么?
聚合后发出去,对与RECV端来讲,需要的buffer数量如何计算? 实际应该看RECV端的转存机制是如何的。
msdu是逐个写入主存呢,还是缓存为一个多包的msdu整体再写入呢? 由于接收端的buffer容量要以最大可能的msdu为单位,所以逐个写入,虽然写入的数据少,但不能因此减少缓存数量。不过依次写入应依然可以提升系统吞吐效率。
mpdu是逐个写入主存呢,还是一次写入呢?和msdu情况类似,逐个写入,能够加快流水,减少数据滞留的时间。
因此对于支持双聚合的RECV,应该以max{mpdu, msdu},也就是mpdu的长度作为最小缓冲。
最后
以上就是落后台灯为你收集整理的WiFi深入理解(三):MAC的数据缓存管理的全部内容,希望文章能够帮你解决WiFi深入理解(三):MAC的数据缓存管理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复