GNU Radio中协议数据包的传递方式

简介:

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.

后续将对两种方式分别进行介绍。

目录
相关文章
|
5月前
|
安全 数据处理 C++
GNU Radio之OFDM Carrier Allocator底层C++实现
GNU Radio之OFDM Carrier Allocator底层C++实现
106 1
GNU Radio之OFDM Carrier Allocator底层C++实现
|
5月前
|
数据可视化 物联网 Python
GNU Radio简介及流程图搭建
GNU Radio简介及流程图搭建
112 0
|
5月前
解决GNU Radio+USRP实现OFDM收发在接收端QPSK星座图映射无“抖动”问题
解决GNU Radio+USRP实现OFDM收发在接收端QPSK星座图映射无“抖动”问题
149 0
|
5月前
|
Python
GNU Radio创建Zadoff-Chu序列python OOT块
GNU Radio创建Zadoff-Chu序列python OOT块
63 0
|
Ubuntu Unix Linux
1_科普—什么是GNU?什么是GPL协议?GNU和Linux是怎么结合在一起的?
1_科普—什么是GNU?什么是GPL协议?GNU和Linux是怎么结合在一起的?
490 0