QualNet收发包过程分析(三)

本文详细分析了QualNet中MacDot11StationTransmitFrame()函数如何处理数据帧和RTS帧的发送,以及物理层在传输过程中的作用。在物理层,PHY_StartTransmittingSignal()根据协议调用相应的传输函数,如Phy802_11StartTransmittingSignal(),将信号释放到传输信道。传播媒介部分,虽然PROP_ReleaseSignal()的实现未知,但其在信号释放到信道中起关键作用。当信号传递结束定时器触发时,一个包的传输完成。
摘要由CSDN通过智能技术生成

接上文https://blog.csdn.net/zhang1806618/article/details/107753611

MacDot11StationTransmitFrame()函数区分链路当前状态,或调用MacDot11StationTransmitDataFrame()发送数据帧,或调用MacDot11StationTransmitRTSFrame()发送RTS帧。以发送数据帧为例,由目的地址判断是广播还是单播,广播将不使用RTS-CTS机制,更改链路状态后调用MacDot11StationStartTransmittingPacket发送数据。单播时区分是否使用RTS-CTS机制,设置延迟,然后调用MacDot11StationStartTransmittingPacket

static //inline//
void MacDot11StationTransmitDataFrame(
    Node* node,
    MacDataDot11* dot11)
{
    Mac802Address destAddr;
    //广播
    if (destAddr == ANY_MAC802) 
    {
        Message* dequeuedPacket;
        DOT11_FrameHdr* hdr;
        hdr = (DOT11_FrameHdr*)MESSAGE_ReturnPacket(dequeuedPacket);
        if (MacDot11IsAp(dot11) && dot11->dot11TxFrameInfo != NULL)
        {
            if (dot11->dot11TxFrameInfo->frameType == DOT11_BEACON)             
                MacDot11StationSetState(node, dot11, DOT11_X_BEACON);
            else
                MacDot11StationSetState(node, dot11, DOT11_X_BROADCAST);
        }
        else
            MacDot11StationSetState(node, dot11, DOT11_X_BROADCAST);
        MacDot11StationStartTransmittingPacket(no
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值