Veins 数据包收发基本流程简单总结

本文简要总结了Veins框架中节点A向节点B发送数据包的基本流程,包括A节点应用层生成数据,经MAC和PHY层处理,以及B节点的PHY层接收和解封装过程。涉及到MAC层的CSMA/CA机制、PHY层的信号处理以及状态转换。
摘要由CSDN通过智能技术生成

Veins的源代码零零碎碎的看了比较久了,一直都没有系统的看;今天看了一天,通过追踪Tkenv输出结果,简单粗略的梳理一下Veins收发数据的流程(假设A节点发送一个数据给B节点),仅供大家参考,同时欢迎交流:


=======A‘s Part======

1. A节点应用层产生数据E,调用sendDelayedDown函数将E发送给MAC层;

2. 在收到E后,MAC层将E封装层MAC帧;通过CSMA/CA机制进行信道竞争,得到nextMacEvent并初始化自消息,准备在一定时延后发送给PHY层;在MAC层调用sendDelayed之前调用phy->setRadioState()函数,通知PHY层进行 接收/发送  模式转换;PHY层模式转换完成后,向MAC发送控制消息(SendControlToMac函数);MAC层在完成前面的过程后,调用SendDelayed函数将数据帧发送给PHY层;

3. PHY层的handleUpperMessage函数在收到MAC发来的帧后,将其封装层PHY层的帧(Airframe),然后调用sendToChannel将帧发往信道;

4. sendToChannel函数通过遍历所有和A节点PHY层连接的gate,将帧发往每一个gate对应的PHY层.

=======B’s Part======

1. B的PHY层handleMessage

  • 9
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值