GNU Radio中协议数据包的传递方式
2015-11-29 15:16
405 查看
All the blocks presented so far operate as "infinite stream" blocks, i.e., they simply continue working as long as items are fed into their inputs. The low pass filter is a good
example: Every new item is interpreted as a new sample, and the output is always the low-pass filtered version of the input. It does not care about the content of the signal, be it noise, data or whatever.
When handling packets (or PDUs, protocol data units), such a behaviour is not enough. There must be a way to identify PDU boundaries, i.e. tell which byte is the first of this packet
and how long it is.
GNU Radio supports two ways to do this: Message passing and tagged stream blocks.
The first is an asynchronous method to directly pass PDUs from one block to another. On a MAC layer, this is probably the preferred behaviour. A block could receive a PDU, add a
packet header, and pass the entire packet (including the new header) as a new PDU to another block.
Tagged stream blocks are regular streaming blocks which use stream tags to identify PDU boundaries. This allows mixing blocks which know about PDUs and blocks that don't care about
them. There are also blocks to switch between message passing and tagged stream blocks.
后续将对两种方式分别进行介绍。
example: Every new item is interpreted as a new sample, and the output is always the low-pass filtered version of the input. It does not care about the content of the signal, be it noise, data or whatever.
When handling packets (or PDUs, protocol data units), such a behaviour is not enough. There must be a way to identify PDU boundaries, i.e. tell which byte is the first of this packet
and how long it is.
GNU Radio supports two ways to do this: Message passing and tagged stream blocks.
The first is an asynchronous method to directly pass PDUs from one block to another. On a MAC layer, this is probably the preferred behaviour. A block could receive a PDU, add a
packet header, and pass the entire packet (including the new header) as a new PDU to another block.
Tagged stream blocks are regular streaming blocks which use stream tags to identify PDU boundaries. This allows mixing blocks which know about PDUs and blocks that don't care about
them. There are also blocks to switch between message passing and tagged stream blocks.
后续将对两种方式分别进行介绍。
相关文章推荐
- [MySQL]MYSQL: Cannot delete or update a parent row: a foreign key constraint fails
- 【openjudge】大盗阿福
- 基于Python的机器学习实战:Apriori
- javaMail发邮件的模板代码,如果你用网易邮箱的账号发送邮件失败的话,可以看看
- 用苹果原生自带的NSURLParser解析XML数据:
- cpu二级缓存和一级缓存详解及区别(图解)
- 从画图板谈面向对象
- 盒子游戏
- 异常机制及其处理
- 学习心得与写博计划
- (二)Get start with Arduino for windows【The Arduino Platform and C Pro】
- GNU Radio中的数据元(Metadata)
- 路由交换
- Oracle Memory Troubleshooting, Part 4: Drilling down into PGA memory usage with V$PROCESS_MEMORY_DET
- 【openjudge】股票买卖
- 大数的加减乘除
- 分类算法
- 每个程序员都应该了解的 CPU 高速缓存
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(三):素材最终解决方法
- vs调试中右键"设置下一语句"和"运行到光标处"的用法