WiFi深入理解(三):MAC的数据缓存管理

本文探讨了Wi-Fi中MSDU(服务数据单元)和MPDU(管理数据单元)的聚合技术,解释了为何需要两级聚合以及各自的优点。MSDU聚合只需加上LENGTH,而MPDU聚合需要完整HEADER,这影响了效率和重传策略。接收端的buffer数量计算依赖于最大可能的MSDU或MPDU长度。逐个写入主存能提高系统效率,但需要充足的缓冲空间来处理最大长度的聚合数据。
摘要由CSDN通过智能技术生成

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的长度作为最小缓冲。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

relis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值