使用 trace.json 计算丢弃的数据包以在 UnetStack3 中进行模拟
Calculating Dropped Packet using trace.json for a simulation in UnetStack3
我想使用 trace.json
文件为 UnetStack 中的模拟计算 dropped packet
的数量。我知道,在 trace.nam
文件中,每个丢弃的数据包都有一个用 'd' 记录的事件,但是我如何使用 [=12] 计算 UnetStack3 中模拟的 dropped packet
的编号=]
我写了一个python脚本来计算总传输数据包和总接收数据包。
伪代码为:-
对于每个事件
{
// 传输的包数
如果(刺激[发送者] == phy 和刺激[接收者] == phy 和响应[clazz] == TxFrameNtf)
{
transfered_packet_count++;
保存事件的 message_id 以匹配接收数据包事件
}
//接收包计数
if(stimulus[sender] == phy and stimulus[recipient] == phy and you get a matching message_id event)
{
如果(响应[收件人]!='#phy__snoop__ntf'和响应[clazz]!='BadFrameNtf'和res['clazz']=='RxFrameNtf'):
received_packet_count++;
}
}
我在 aloha 模拟跟踪文件上测试了这段代码。我得到了更多 packet_transfered_count 和 packet_receiving_count。
请帮助我解决我缺少的条件?
获取整个python脚本here
与 trace.nam
不同,目前 trace.json
中没有任何条目与丢弃的数据包相对应。
但是,您可以通过比较 trace.json
中的 HalfDuplexModem$TX
条目(对应于帧到达节点)与相应的 RxFrameNtf
/[ 来推断丢失的数据包=15=]条目(对应帧是接收成功还是损坏)。
我想使用 trace.json
文件为 UnetStack 中的模拟计算 dropped packet
的数量。我知道,在 trace.nam
文件中,每个丢弃的数据包都有一个用 'd' 记录的事件,但是我如何使用 [=12] 计算 UnetStack3 中模拟的 dropped packet
的编号=]
我写了一个python脚本来计算总传输数据包和总接收数据包。
伪代码为:-
对于每个事件 { // 传输的包数 如果(刺激[发送者] == phy 和刺激[接收者] == phy 和响应[clazz] == TxFrameNtf) { transfered_packet_count++; 保存事件的 message_id 以匹配接收数据包事件 } //接收包计数 if(stimulus[sender] == phy and stimulus[recipient] == phy and you get a matching message_id event) { 如果(响应[收件人]!='#phy__snoop__ntf'和响应[clazz]!='BadFrameNtf'和res['clazz']=='RxFrameNtf'): received_packet_count++; } }
我在 aloha 模拟跟踪文件上测试了这段代码。我得到了更多 packet_transfered_count 和 packet_receiving_count。 请帮助我解决我缺少的条件?
获取整个python脚本here
与 trace.nam
不同,目前 trace.json
中没有任何条目与丢弃的数据包相对应。
但是,您可以通过比较 trace.json
中的 HalfDuplexModem$TX
条目(对应于帧到达节点)与相应的 RxFrameNtf
/[ 来推断丢失的数据包=15=]条目(对应帧是接收成功还是损坏)。