一种基于双向握手的太赫兹组网介质访问控制方法转让专利

申请号 : CN202111163367.1

文献号 : CN113765584B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 韩彪王鹏程王韬彭伟赵锋陶静原玉磊黄锦森

申请人 : 中国人民解放军国防科技大学

摘要 :

本发明公开了一种基于双向握手的介质访问控制方法,目的是解决通信资源浪费、信道利用率低的问题。技术方案是构建一种基于双向握手的太赫兹组网介质访问控制的网络场景;AP节点与N个边缘节点并行初始化;N个边缘节点并行尝试与AP节点进行第一次握手,同时AP节点旋转扫描太赫兹无线信道,监控边缘节点发来的Rts帧,若收到边缘节点的Rts帧,则AP节点的天线对准发Rts帧的边缘节点并停转,完成第一次握手;AP节点向该边缘节点发送Cts帧,完成第二次握手;边缘节点与AP节点进行数据传输。本发明通过双向握手和控制天线的停转,实现了高效组网与收发控制,给通信需求高的节点分配更高信道通量,有效提高了通信资源利用率。

权利要求 :

1.一种基于双向握手的太赫兹组网介质访问控制方法,其特征在于包括以下步骤:第一步,构建一种基于双向握手的太赫兹组网介质访问控制的网络场景,该网络场景由一个AP节点和N个边缘节点组成,N为正整数;边缘节点的定向天线的波束方向始终指向AP节点,AP节点的天线通过定速旋转扫描信道实现通信链路的建立;

边缘节点为发送方,AP节点为接收方;发送方、接收方均由太赫兹网络层及上层、太赫兹MAC层、太赫兹物理层组成,发送方与接收方通过太赫兹信道连接;发送方的网络层及上层安装有数据生成模块,发送方的太赫兹MAC层安装有发送缓存模块、第一帧生成模块、第一发送模块、第一控制模块、第一帧解析模块、第一接收模块;接收方的网络层及上层安装有数据处理模块,接收方的太赫兹MAC层安装有第二帧生成模块、第二发送模块、第二控制模块、接收缓存模块、第二帧解析模块、第二接收模块;发送方和接收方的太赫兹物理层通过太赫兹无线信道进行连接;发送方、接收方以MAC层帧结构的形式传递数据,MAC层帧包含控制帧和数据帧两种;MAC层帧由发送方的第一帧生成模块与接收方的第二帧生成模块产生;MAC层帧由源地址、目的地址、类型、持续时间、序列号组成;包括Rts、Cts、Data、Ack四种类型,Data是数据帧,另外三种是控制帧;

边缘节点网络层及上层的数据生成模块与边缘节点MAC层的发送缓存模块相连,数据生成模块用于生成待发数据并将生成的数据发送给发送缓存模块;

边缘节点MAC层的发送缓存模块与边缘节点网络层及上层的数据生成模块、边缘节点MAC层的第一控制模块相连、第一发送模块相连;发送缓存模块负责从网络层及上层的数据生成模块接收M个数据,按序为所有数据创建数据类型帧头,构建数据帧;记录数据帧的相关信息并对数据帧的相关信息进行缓存,缓存好的数据帧的相关信息称为数据帧的记录信息,同时将数据帧的记录信息发送给第一控制模块,将数据帧发送给第一发送模块;

边缘节点MAC层的第一控制模块与边缘节点的太赫兹定向天线、边缘节点MAC层的发送缓存模块、第一帧生成模块、第一帧解析模块、第一发送模块相连;第一控制模块在边缘节点初始化时设定边缘节点的天线为发送模式,并调整相应参数;第一控制模块在边缘节点与AP节点进行第一次握手时从发送缓存模块接收数据帧的记录信息,将数据帧的记录信息存入第一控制模块创建的待发队列表;第一控制模块从待发队列表中选取待发队列中的第一个数据帧的记录信息,并根据待发队列表中所有数据帧的长度信息计算本轮通信持续时间;边缘节点的第一控制模块还向边缘节点的第一帧生成模块发送“构造Rts帧”与“发送Rts帧”的指令,同时将待发队列的首个数据帧的记录信息与本轮通信持续时间发送给边缘节点的第一帧生成模块;边缘节点与AP节点进行第二次握手时,第一控制模块从第一帧解析模块接收Cts帧的记录信息,将Cts帧的记录信息传递给第一发送模块,同时将发送数据帧的指令传递给第一发送模块;边缘节点与AP节点双方进行数据传输时,第一控制模块从第一帧解析模块接收Ack帧的记录信息,完成数据传输,然后遍历待发队列表,根据Ack帧的记录信息中的序列号找到待发队列表中与该序列号相同的数据帧的记录信息,从待发队列表删除此数据帧的记录信息;

边缘节点MAC层的第一帧生成模块与第一控制模块、第一发送模块相连;边缘节点与AP节点进行第一次握手时,第一帧生成模块从第一控制模块接收到待发对列表的首个数据帧的记录信息,提取其中的目的地址信息,将其填入Rts帧的目的地址字段,提取其中的序列号sequence信息,将其填入Rts帧的序列号sequence字段;将边缘节点地址填入Rts帧的源地址字段;第一帧生成模块从第一控制模块接收本轮通信持续时间,将本轮通信持续时间填入Rts帧的持续时间duration字段;将“Rts”填入Rts帧的类型字段;第一帧生成模块从第一控制模块接收到发送Rts帧的指令后,将构造的Rts帧传递给第一发送模块;

边缘节点MAC层的第一发送模块与边缘节点MAC层的发送缓存模块、第一控制模块、第一控制模块、AP节点MAC层的第二接收模块相连;边缘节点与AP节点进行第一次握手时,第一发送模块从第一帧生成模块接收Rts帧,将Rts帧发送给AP节点MAC层的第二接收模块;边缘节点与AP节点进行数据传输时,第一发送模块从第一控制模块收到Cts帧的记录信息和发送数据帧的指令后,从发送缓存模块中读取与Cts帧的记录信息的序列号相同的数据帧,将与Cts帧的记录信息的序列号相同的数据帧发送给AP节点MAC层的第二接收模块;

边缘节点MAC层的第一接收模块与AP节点MAC层的第二发送模块、边缘节点MAC层的第一帧解析模块相连;边缘节点与AP节点进行第二次握手时,边缘节点MAC层的第一接收模块负责从AP节点MAC层的第二发送模块接收Cts帧,将Cts帧发送给第一帧解析模块;边缘节点与AP节点进行数据传输时,边缘节点MAC层的第一接收模块从AP节点MAC层的第二发送模块接收Ack帧,将Ack帧发送给第一帧解析模块;

边缘节点MAC层的第一帧解析模块与边缘节点MAC层的第一接收模块、第一控制模块相连;边缘节点与AP节点进行第二次握手时,边缘节点MAC层的第一帧解析模块负责从第一接收模块接收Cts帧,对Cts帧进行解析得到Cts帧的记录信息,将Cts帧的记录信息发送给第一控制模块;边缘节点与AP节点进行数据传输时,第一帧解析模块负责从第一接收模块接收Ack帧,对Ack帧进行解析得到Ack帧的记录信息,将Ack帧的记录信息传递给第一控制模块;

AP节点MAC层的第二接收模块与边缘节点MAC层的第一发送模块、AP节点MAC层的第二帧解析模块相连;边缘节点与AP节点进行第一次握手时,AP节点MAC层的第二接收模块负责从边缘节点MAC层的第一发送模块接收Rts帧,将rts帧发送给第二帧解析模块;边缘节点与AP节点双方进行数据传输时,AP节点MAC层的第二接收模块负责从边缘节点MAC层的第一发送模块接收数据帧,并将接收的数据帧发送给第二帧解析模块;

AP节点MAC层的第二帧解析模块与AP节点MAC层的第二接收模块、AP节点MAC层的接收缓存模块、AP节点MAC层的第二控制模块相连;边缘节点与AP节点进行第一次握手时,AP节点MAC层的第二帧解析模块从第二接收模块接收Rts帧,读取Rts帧中的信息并记录,将Rts帧的记录信息发送给第二控制模块,完成第一次握手;边缘节点与AP节点双方进行数据传输时,第二帧解析模块负责接收与第二接收模块发来的数据帧,读取数据帧中的信息并记录,将数据帧的记录信息发送给AP节点的第二控制模块;第二帧解析模块负责从第二控制模块接收拆帧指令,将收到的数据帧拆除头部,将拆除头部的数据帧存入接收缓存模块;

AP节点MAC层的第二控制模块与AP节点MAC层的第二帧解析模块、AP节点的太赫兹定向天线、AP节点的第二帧生成模块相连;边缘节点与AP节点进行第一次握手时,第二控制模块负责从第二帧解析模块接收Rts帧的记录信息;边缘节点与AP节点进行第二次握手时,第二控制模块从第二帧解析模块接收Rts帧的记录信息,向第二帧生成模块传递Rts帧的记录信息,同时传递发送Cts帧的指令,同时设定AP节点的天线停止旋转;边缘节点与AP节点双方进行数据传输时,第二控制模块从第二帧解析模块接收数据帧的记录信息,向第二帧生成模块传递数据帧的记录信息,同时传递发送Ack的指令;第二控制模块从第二帧解析模块接收数据帧的记录信息后,第二控制模块向第二帧解析模块发送拆帧指令;

AP节点MAC层的第二帧生成模块与第二控制模块、第二发送模块相连;边缘节点与AP节点进行第二次握手时,第二帧生成模块从第二控制模块接收Rts帧的记录信息和发送Cts帧的指令,根据Rts帧的记录信息生成Cts帧,并将Cts帧发送给第二发送模块;边缘节点与AP节点进行数据传输时,第二帧生成模块从第二控制模块接收数据帧的记录信息和发送Ack帧的指令,根据数据帧的记录信息生成Ack帧,将Ack帧发送给第二发送模块;

AP节点MAC层的第二发送模块与AP节点MAC层的第二帧生成模块、边缘节点的第一接收模块相连;边缘节点与AP节点进行第二次握手时,第二发送模块负责从AP节点MAC层的第二帧生成模块接收Cts帧,将Cts帧发送给边缘节点的第一接收模块;边缘节点与AP节点双方进行数据传输时,第二发送模块负责从AP节点MAC层的第二帧生成模块接收Ack帧,将Ack帧发送给边缘节点的第一接收模块;

第二步,AP节点与N个边缘节点并行进行初始化操作;AP节点按2.1的流程进行初始化,第二控制模块设定AP节点的天线为接收模式,并调整相应参数,准备接收数据;同时N个边缘节点按2.2的流程进行初始化,第一控制模块设定边缘节点的天线为发送模式,调整相应参数;然后N个边缘节点按2.3的流程准备发送数据;

2.1AP节点初始化,第二控制模块设定AP节点的天线为接收模式,并调整相应参数,具体步骤如下:

2.1.1设定AP节点的天线状态为接收模式;

2.1.2设定AP节点的天线初始角度InitialAngle为0°;

2.1.3设定AP节点的天线波束宽度beamwidthDegrees为p°,0

2.1.4计算AP节点的天线初始覆盖范围m_rxIniAngle,m_rxIniAngle=InitialAngle+beamwidthDegrees;

2.1.5设定AP节点的天线转速TurningSpeed为r转每秒,r为正整数;

2.1.6AP节点天线参数设定,方法是:

2.1.6.1设定AP节点的天线旋转一圈所需时间tCircle=1/TurningSpeed秒;

2.1.6.2设定扇区个数为nSector=360°/beamwidthDegrees;

2.1.6.3设定天线对准每个扇区的时长tSector=tCircle/nSector;

2.1.7令本轮通信已传输的数据帧数量have_send=0;

2.1.8AP节点初始化完成,定向天线持续旋转扫描信道,若收到来自边缘节点的Rts帧,AP节点转步骤3.7,若未收到,转2.1.8继续等待;

2.2在AP节点初始化的同时,N个边缘节点并行进行初始化,N个边缘节点的第一控制模块并行设定边缘节点的天线为发送模式,并调整相应参数,N个边缘节初始化方法相同,其中第i个边缘节点的初始化方法如下,i为正整数且i≤N:

2.2.1设定第i个边缘节点的天线为传输模式,并将天线指向AP节点所在位置;

2.2.2设定第i个边缘节点的天线波束宽度=AP节点的天线波束宽度beamwidthDegrees;

2.2.3第i个边缘节点初始化完成,等待来自网络层及上层的数据,转2.3步;

2.3第i个边缘节点产生数据传输需求,进行待发数据处理,得到待发队列表m_pktQueue,方法是:

2.3.1设置初始化序列号m_sequence为0,第i个边缘节点网络层及上层的数据生成模块将M个数据发送给第i个边缘节点的发送缓存模块;M为正整数;

2.3.2第i个边缘节点的发送缓存模块判定是否从网络层及上层的数据生成模块接收到M个数据,若接收到,转2.3.3;若未接收到,转2.3.2等待数据;

2.3.3第i个边缘节点的发送缓存模块按序为M个数据创建数据类型帧头,存储数据帧的记录信息,将数据帧的记录信息发送给第i个边缘节点的第一控制模块,方法是:

2.3.3.1第i个边缘节点的发送缓存模块创建数据类型帧头,并设置相应参数,令THzMacHeader header=THzMacHeader(m_address,dest,Data),其中THzMacHeader header指太赫兹MAC类型的帧头,m_address指第i个边缘节点地址即源地址,dest指目的地址,Data指帧的类型为数据帧;

2.3.3.2设置当前数据帧序列号为m_sequence=m_sequence+1;

2.3.3.3将创建的帧头加入序列号为m_sequence的数据帧;

2.3.4发送缓存模块记录序列号为m_sequence的数据帧的记录信息,包括数据长度RecSize、数据帧入队时间RecTime、数据帧序列号RecSeq、数据帧重传次数RecRetry、持续时间duration;

2.3.5第i个边缘节点的发送缓存模块将2.3.4中的数据帧的记录信息发送给第i个边缘节点的第一控制模块;

2.3.6第i个边缘节点的第一控制模块接收发送缓存模块发来的数据帧的记录信息,创建待发队列表m_pktQueue,m_pktQueue中的每一项包括:RecSize;RecTime;RecSeq;

RecRetry,将收到的记录信息录入到m_pktQueue中;

2.3.7第i个边缘节点的发送缓存模块判断m_sequence

第三步,N个边缘节点按3.1~3.5步的流程并行尝试与AP节点进行第一次握手,同时AP节点按3.6~3.11步的流程扫描太赫兹无线信道,监控从哪个边缘节点收到Rts帧,若收到第e个边缘节点的Rts帧,则与第e个边缘节点进行握手,e为正整数且e≤N:N个边缘节点握手方法相同,第e个边缘节点与AP节点进行握手的方法如3.1~3.5步所示:

3.1第e个边缘节点的第一控制模块收到第e个边缘节点的发送缓存模块发来的数据帧的记录信息,将数据帧的记录信息中的RecSeq、RecSize、RecTime、RecRetry存入待发队列表m_pktQueue,m_pktQueue的一个元素即为一个数据帧的记录信息;

3.2第e个边缘节点的第一控制模块采用二进制退避算法开始退避,以避免多个边缘节点同时获取太赫兹信道访问权限而产生冲突,方法是:

3.2.1确定基本退避时间,令端到端的往返时间为2t,2t也称为冲突窗口即从数据发送开始到网络上最远的两个节点之间信号传播时延的两倍值的时间区间;2t=2D/V,D为总线最大长度,V是传播速度;

3.2.2定义参数k,k与冲突次数有关,k=Min(冲突次数,10),表示k取冲突次数和10中的最小值;

3.2.3从离散的整数集合{0,1,2,……,(2k‑1)}中随机取出一个数,令为rr,令等待的时延=rr×2t;令剩余退避时间m_backoffRemain=等待的时延;

3.2.4若冲突次数不超过5次,转3.3;若冲突次数超过5次,证明发送失败,边缘节点的第一控制模块找到m_pktQueue的首条记录信息,记录该数据帧发送失败,并将该数据帧的记录信息从m_pktQueue中删除,转2.3.2;

3.3第e个边缘节点的第一控制模块从m_pktQueue中选取第一个数据帧的信息,发送给第一帧生成模块,方法是:

3.3.1如果m_pktQueue中的数据帧记录信息为空,转步骤2.3.2,否则转步骤3.3.2;

3.3.2读取m_pktQueue中的第一个数据帧的记录信息,即令首个待发数据帧m_pktData为待发队列表的首个数据帧的信息;

3.3.3检查m_pktData目的地址是否为广播地址,如果是,则发送待发队列表的首个数据帧,令sequence=待发队列表的首个数据帧的sequence,转5.1.3,否则执行3.3.4;

3.3.4第一控制模块根据m_pktQueue长度确定本轮通信要传输的数据帧个数m_tosend,即令m_tosend=待发队列表中元素的个数;

3.3.5第一控制模块遍历待发队列表m_pktQueue,获取所有待发数据的总长度即待发队列表中m_tosend个元素的长度之和,记为m_tosendlength;

3.3.6第一控制模块计算传输所有待发数据的传输时间m_tosendTxduration,m_tosendTxduration=m_tosendlength/第e个边缘节点传输带宽;

3.3.7第一控制模块计算本轮通信的持续时间duration;

3.3.8第一控制模块设定Cts超时时间;在Cts超时时间内如果未收到Cts,则令该序列号匹配的数据帧的重传次数RecRetry=RecRetry+1,转3.2;同时,第一控制模块向第e个边缘节点的第一帧生成模块传递发送构造Rts帧的指令,同时将待发队列的首个数据帧的记录信息与duration发送给边缘节点的第一帧生成模块,转3.4;

3.4第一帧生成模块构造Rts帧,具体步骤如下:

3.4.1第一帧生成模块创建Rts帧;

3.4.2第一帧生成模块将Rts帧发送给第一发送模块;

3.5第e个边缘节点的第一发送模块向物理层传输Rts帧;

3.6AP节点的定向天线旋转扫描太赫兹无线信道,监控是否收到Rts帧,并检查Rts帧来自哪个边缘节点,若收到来自第e个边缘节点的Rts帧,转3.7;若未收到任何Rts帧,转3.6;

3.7AP节点的物理层从太赫兹无线信道接收第e个边缘节点发来的Rts帧,将该Rts帧传递给AP节点的第二接收模块;

3.8AP节点的第二接收模块传递Rts帧给第二帧解析模块;

3.9AP节点的第二帧解析模块从AP节点的第二接收模块接收Rts帧;

3.10AP节点的第二帧解析模块读取Rts帧中的信息并记录,其中包含源地址source、目的地址destination、类型type、持续时间duration;

3.11AP节点的第二帧解析模块将Rts帧记录的信息传递给AP节点的第二控制模块,完成第一次握手,转第四步;

第四步,第e个边缘节点与AP节点进行第二次握手,方法是:

4.1AP节点的第二控制模块从AP节点的第二帧解析模块接收Rts帧的记录信息;

4.2令第一时间t1=系统时间;AP节点的第二控制模块设定AP节点的天线转速为0,AP节点天线处于停止状态,通信链路建立;

4.3AP节点的第二控制模块向第二帧生成模块传递发送Cts的指令和Rts帧的记录信息;

4.4AP节点的第二帧生成模块创建Cts帧,将生成的Cts帧传递给AP节点的第二发送模块;

4.5AP节点的第二发送模块向物理层传输Cts帧,Cts帧经由太赫兹无线信道模块到达第e个边缘节点的物理层;

4.6第e个边缘节点的物理层从AP节点的第二发送模块接收到Cts帧,将Cts帧传递给边缘节点的第一接收模块,

4.7第e个边缘节点的第一接收模块将Cts帧传递给第一帧解析模块;

4.8边缘节点的第一帧解析模块解析Cts帧,具体步骤如下:

4.8.1第e个边缘节点的第一帧解析模块接收Cts帧,读取Cts帧中的信息并记录,得到Cts帧的记录信息,包含源地址source、目的地址destination、类型type、持续时间duration,序列号sequence;

4.8.2第e个边缘节点的第一帧解析模块将Cts帧的记录信息发送给第一控制模块,第二次握手完成,即第e个边缘节点收到了AP节点发送的Cts帧,转第五步;

第五步,第e个边缘节点与AP节点进行数据传输,方法是:

5.1第e个边缘节点向AP节点传输数据,方法是:

5.1.1第e个边缘节点的第一控制模块将Cts帧的记录信息发送给第e个边缘节点的第一发送模块,并向第一发送模块传递“发送数据帧的指令”;

5.1.2第e个边缘节点的第一发送模块读取Cts帧的记录信息的sequence;

5.1.3第e个边缘节点的第一发送模块从发送缓存模块中读取与sequence相同的数据帧;

5.1.4第e个边缘节点的第一发送模块修改该数据帧的持续时间字段,令duration=数据帧传输时间+数据帧传播时间+Ack传输时间+Ack传播时间;数据帧传输时间=数据帧长度/第e个边缘节点传输带宽,数据帧传播时间=帧传播时间×1,Ack传输时间=17字节/第e个边缘节点传输带宽,Ack传播时间=帧传播时间×1;

5.1.5第e个边缘节点的第一发送模块向物理层传输与sequence一致的数据帧,数据帧经由太赫兹无线信道到达AP节点的物理层,转5.2;同时,第e个边缘节点的第一控制模块设定确认帧超时事件,如果在duration时间内第一控制模块未收到第e个边缘节点的第一帧解析模块发来的Ack帧的记录信息,则Ack帧超时,第一控制模块将该序列号匹配的数据帧的重传次数增1,即令RecRetry=RecRetry+1,转3.2;如果在duration时间内收到第e个边缘节点的第一控制模块发来的Ack帧的记录信息,则Ack帧未超时,转5.11;

5.2AP节点的物理层接收到该数据帧,将该包传递给AP节点的第二接收模块;

5.3AP节点的第二接收模块将从物理层收到的数据帧传递给AP节点的第二帧解析模块,第二帧解析模块对数据帧进行解析,方法是:

5.3.1第二帧解析模块读取数据帧中的信息并记录,其中包含源地址source、目的地址destination、类型type、持续时间duration;

5.3.2AP节点的第二帧解析模块将数据帧的记录信息传递给AP节点的第二控制模块;

5.4AP节点的第二控制模块向AP节点的第二帧生成模块发送数据帧的记录信息,并向第二帧生成模块传递发送Ack的指令,转步骤5.8;同时,AP节点的第二控制模块向AP节点的第二帧解析模块发送拆帧指令,转步骤5.5;

5.5AP节点的第二帧解析模块根据拆帧指令对从第二接收模块收到的数据帧拆除头部,将拆除了头部的数据帧发送给接收缓存模块;

5.6接收缓存模块判断是否收到拆除了头部的数据帧,若收到,则对拆除了头部的数据帧进行存储,转5.7;若未收到拆除了头部的数据帧,接收缓存模块转5.6继续等待;

5.7网络层及上层的第二数据处理模块读取接收缓存模块中的数据帧,根据用户要求进行处理,处理完后转5.6;

5.8AP节点的第二帧生成模块创建Ack,将生成的Ack帧传递给AP节点的第二发送模块;

5.9AP节点的第二发送模块向物理层传输Ack帧,Ack帧经由太赫兹无线信道模块到达第e个边缘节点的物理层;

5.10第e个边缘节点的物理层接收到该Ack帧,将Ack帧传递给边缘节点的第一接收模块,

5.11第e个边缘节点的第一接收模块将Ack帧传递给边缘节点的第一帧解析模块;

5.12第e个边缘节点的第一帧解析模块对Ack帧进行解析,具体步骤如下:

5.12.1第e个边缘节点的第一帧解析模块收到Ack后,读取Ack帧中的信息并记录,其中包含源地址source、目的地址destination、类型type、持续时间duration;

5.12.2第e个边缘节点的第一帧解析模块将Ack帧的记录信息传递给第一控制模块,完成数据传输;

5.13第e个边缘节点的第一控制模块遍历第三步生成的m_pktQueue,根据Ack帧的记录信息中的序列号找到m_pktQueue中与序列号符合的数据帧,记录该数据帧发送结果,令have_send=have_send+1;

5.14第e个边缘节点的第一控制模块判断已发送的数据帧数量是否小于要发送的数据帧数量,即判断have_send

5.15令第二时间t2=系统时间,若t2‑t1=duration,说明第e个边缘节点与AP节点的数据传输完成,AP节点的第二控制模块重新设置天线旋转速度TurningSpeed为r转每秒,转

2.1.8。

2.如权利要求1所述的一种基于双向握手的太赫兹组网介质访问控制方法,其特征在于第一步所述基于双向握手的太赫兹组网介质访问控制的网络场景大小为20m×20m,AP节点位于网络场景的中心,网络中N个边缘节点随机分布在AP节点周围10m范围内。

3.如权利要求1所述的一种基于双向握手的太赫兹组网介质访问控制方法,其特征在于第一步所述MAC层帧的目的地址与源地址字段为收发双方的MAC地址;类型字段用于区分传输的帧的类型;持续时间字段是本次通信要占用的信道时长,计算公式:数据帧传输时间+数据帧传播时间+控制帧传输时间+控制帧传播时间,用于占用信道;传输时间是网络设备将MAC层帧推出所需要的时间,它是MAC层帧长度和链路传输速率的函数;传播时间是一个MAC层帧从一台设备向另一台设备传播所需要的时间,它是两台设备之间距离的函数;序列号字段为MAC层帧的唯一标识符。

4.如权利要求1所述的一种基于双向握手的太赫兹组网介质访问控制方法,其特征在于2.1步所述AP节点初始化时p设置为26;r设置为为200转/s。

5.如权利要求1所述的一种基于双向握手的太赫兹组网介质访问控制方法,其特征在于2.3.4步所述发送缓存模块记录序列号为m_sequence的数据帧的记录信息的方法是:

2.3.4.1令数据长度RecSize=序列号为m_sequence的数据的实际长度;

2.3.4.2令数据帧入队时间RecTime=系统当前时间;

2.3.4.3令数据帧序列号RecSeq=m_sequence;

2.3.4.4令数据帧重传次数令RecRetry=0;

2.3.4.5令持续时间duration=数据包传输时间+数据包传播时间+Ack传输时间+Ack传播时间;数据包传输时间=数据包长度/第i个边缘节点传输带宽;数据包传播时间=帧传播时间×1;Ack传输时间=17字节/第i个边缘节点传输带宽;Ack传播时间=帧传播时间×1。

6.如权利要求1所述的一种基于双向握手的太赫兹组网介质访问控制方法,其特征在于3.2步所述冲突窗口取经验值66.6ns;所述冲突次数=RecRetry。

7.如权利要求1所述的一种基于双向握手的太赫兹组网介质访问控制方法,其特征在于所述边缘节点传输带宽要求大于等于100Gbps,所述帧传播时间为33.3ns。

8.如权利要求1所述的一种基于双向握手的太赫兹组网介质访问控制方法,其特征在于3.3.7步所述duration=控制帧传输时间+控制帧传播时间+数据帧传输时间+数据帧传播时间,控制帧传输时间=控制帧长度×控制帧数量/第e个边缘节点传输带宽,控制帧传播时间=控制帧数量×帧传播时间,数据帧传输时间=m_tosendTxduration,数据帧传播时间=数据帧数量m_tosend×帧传播时间;控制帧长度为17字节,控制帧数量=Rts帧数量

1+Cts帧数量1+Ack帧数量即m_tosend;3.3.8步所述Cts超时时间=Rts传输时间+Rts传播时间+Cts传输时间+Cts传播时间,Rts传输时间=17字节/第e个边缘节点传输带宽,Rts传播时间=帧传播时间×1,Cts传输时间17字节/第e个边缘节点传输带宽,Cts传播时间=帧传播时间×1。

9.如权利要求1所述的一种基于双向握手的太赫兹组网介质访问控制方法,其特征在于3.4.1步所述第一帧生成模块创建Rts帧的方法是:将第一控制模块发来的待发数据的记录信息填入Rts的头部,即令THzMacHeaderrtsHeader=THzMacHeader(m_address,GetDestination,Rts,duration,sequence),其中THzMacHeaderrtsHeader指创建的是太赫兹类型的Rts帧头,m_address为边缘节点地址即源地址,GetDestination为获取数据帧的目的地址,Rts指帧的类型为Rts帧,sequence=第3.3.8步所述待发队列的首个数据帧的记录信息中的序列号。

10.如权利要求1所述的一种基于双向握手的太赫兹组网介质访问控制方法,其特征在于4.4步所述AP节点的第二帧生成模块创建Cts帧的方法是:

4.4.1AP节点的第二帧生成模块创建Cts帧,根据Rts帧的记录信息填充Cts帧头部,即令THzMacHeaderctsHeader=THzMacHeader(source,destination,Cts,duration),其中THzMacHeaderctsHeader指创建的是太赫兹类型的Cts帧头,source为AP节点地址,destination为Cts帧的目的地址即为Rts帧的源地址,Cts是指帧的类型为Cts,duration=

0;

4.4.2AP节点的第二帧生成模块将序列号填充入该Cts帧,即令sequence=Rts帧的序列号。

11.如权利要求1所述的一种基于双向握手的太赫兹组网介质访问控制方法,其特征在于5.8步所述AP节点的第二帧生成模块创建Ack的方法是:

5.8.1AP节点的第二帧生成模块创建Ack,将数据帧头部信息填入Ack头部,令THzMacHeaderAckHeader=THzMacHeader(source,destination,Ack,duration),其中THzMacHeaderAckHeader指创建的是太赫兹类型的Ack帧头,source为AP节点地址,destination为数据帧记录信息中的源地址source,Ack是指包的类型为Ack,duration=0;

5.8.2AP节点的第二帧生成模块将序列号填充入该Ack帧,sequence为数据帧记录信息中的sequence。

说明书 :

一种基于双向握手的太赫兹组网介质访问控制方法

技术领域

[0001] 本发明涉及太赫兹组网中的介质访问控制领域,具体涉及一种基于双向握手的介质访问控制方法。
技术背景
[0002] 太赫兹THz(Terahertz)波是位于毫米波和红外光波之间的电磁波,其频率范围是0.1THz‑10THz。和常用的无线通信的低频段相比,太赫兹频段目前虽然尚未获得开发利用,
但是由于太赫兹频段具有极大的未被利用的连续带宽,可以支持数十Gbps的数据传输速
率,因此太赫兹频段具有极大的开发潜力。太赫兹频段在短距离超高速无线网络通信领域
具有较大的应用前景,尤其是室内短距离无线网络通信领域,有望提供高数据传输速率、高
服务质量(Quality of Service,QoS)的无线通信业务。
[0003] 太赫兹超高速无线网络是指采用太赫兹频段作为无线载波进行通信,能够支持数十Gbps级别的数据传输速率的无线通信网络。太赫兹超高速无线网络能够克服现有无线局
域网速率低、延时大且可靠性不高等问题,满足人们对近距离、高速率、高可靠性及低成本
无线通信技术的需求。但是,太赫兹波在空气中传播时衰减较大且当空气中水分子较多时
衰减尤其严重,因此,会产生在接受方接收功率不足的问题,进而导致通信无法顺利完成。
[0004] 介质访问控制方法即信道访问控制方法,可以简单地理解为如何控制网络节点何时发送数据、如何传输数据以及怎样在介质上接收数据,用于解决当局域网中共用信道的
使用产生竞争时,如何分配信道的使用权问题。
[0005] 目前,国内外针对太赫兹通信的有关研究已经相对充分,但在太赫兹组网方面的研究仍处于起步状态,而太赫兹超高速无线网络的正常运行离不开MAC(Medium Access 
Control介质访问控制)协议的支持。对太赫兹组网MAC协议进行深入研究可以解决通信节
点的同步、信道访问等问题,实现节点间的高速率和高可靠性的通信。
[0006] 太赫兹网络一般由多个通信节点组成,各通信节点组成模块参见太赫兹组网介质访问控制方法(简称背景技术1,参见文献“Xia Q,Hossain Z,Medley M,et al.A Link‑
Layer Synchronization and Medium Access Control Protocol for Terahertz‑Band 
Communication Networks[C]//GLOBECOM 2015‑2015IEEE Global Communications 
Conference.IEEE,2015”.译为:一种太赫兹通信网络的链路层同步和介质访问控制协议,
在2015年IEEE全球通信会议上发表,太赫兹组网介质访问控制方法见该文献第四章第3页
到第6页)。背景技术1描述了如图1所示的太赫兹网络,该太赫兹网络由多个边缘节点与一
个中心节点(即AP节点)组成,边缘节点通过边缘节点的定向天线进行数据发送;中心节点
通过中心节点的定向天线进行数据收集。背景技术1的节点模型如图2所示,定义边缘节点
为发送方,AP节点为接收方,发送方、接收方均由太赫兹网络层及上层(包括传输层及应用
层两层)、太赫兹MAC层、太赫兹物理层和太赫兹信道组成。发送方的太赫兹网络层及上层的
数据生成模块进行待发数据生成,接收方的太赫兹网络层及上层的数据处理模块处理接收
到的数据;发送方的太赫兹MAC层负责完成信道接入请求、数据传输等功能;接收方的太赫
兹MAC层功能负责完成节点发现、链路控制、组网控制及管理太赫兹定向天线等功能;发送
方和接收方的太赫兹物理层构造调制信号;太赫兹信道用于模拟太赫兹无线信道,实现多
个节点之间的连接与通信,将数据帧从发送方传递到接收方的物理层。
[0007] 背景技术1所述的介质访问控制方法包括以下步骤:
[0008] 第一步,中心节点即接收方通过中心节点的高速定向天线持续性的扫描空间,监听来自接收方的传输请求。
[0009] 第二步,边缘节点即发送方有数据传输需求时,通过边缘节点的高速定向天线向中心节点发送请求发送包Rts(Request To Send),请求接入太赫兹信道。
[0010] 第三步,当中心节点天线旋转至边缘节点所在扇区时,接收到来自边缘节点的Rts后,发回允许发送包Cts(Clear To Send)给边缘节点,允许边缘节点访问太赫兹信道。
[0011] 第四步,边缘节点收到中心节点发来的Cts后,选取边缘节点待发队列中的首个数据帧进行传输。
[0012] 第五步,中心节点收到边缘节点发来的数据帧后,发回确认包Ack给边缘节点。
[0013] 第六步,边缘节点收到中心节点发送的Ack后,本轮通信完成。
[0014] 然而,以上方案的太赫兹组网介质访问控制方法存在以下问题:
[0015] (1)在第一步‑第三步,中心节点通过高速转向定向天线持续性地扫描空间,完成与边缘节点的控制信息及数据信息的交换。但在这一过程中,无通信需求的节点也占用了
信道时间,造成了通信资源的极大浪费,导致太赫兹信道利用率低下。
[0016] (2)在第四步‑第六步,收发双方每交换一个数据帧,都需要通过Rts及Cts帧进行信道建立的控制信息交换,进而浪费了通信资源,导致太赫兹信道利用率低下。
[0017] 综上所述,如何有效提高节点发现及数据传输过程中的信道利用,实现通信数据高效传输的介质访问控制是本领域技术人员正在探讨的热点问题。针对目前方法的缺陷,
需要提供一种可以高效地进行数据传输的介质访问控制方法。

发明内容

[0018] 本发明要解决的技术问题是提供一种基于双向握手的太赫兹组网介质访问控制方法。针对太赫兹波由于本身的传播衰减特性使得接收方接收功率不足,现有的太赫兹组
网介质访问控制方法存在通信资源浪费、信道利用率低的问题,本发明提供一种基于双向
握手的太赫兹组网介质访问控制方法,通过控制天线的停转,给通信需求高的节点分配更
高的信道通量;本发明传输多个数据帧仅需使用Rts帧、Cts帧进行一次信道建立,有效提高
了通信资源的利用率。
[0019] 本发明包括以下步骤:
[0020] 第一步,构建一种基于双向握手的太赫兹组网介质访问控制的网络场景,该网络场景大小为20m×20m,AP节点位于网络场景的中心,网络中N个边缘节点随机分布在AP节点
周围10m范围内,N为正整数。边缘节点的定向天线的波束方向始终指向AP节点,AP节点的天
线通过定速旋转扫描太赫兹信道实现通信链路的建立。网络模型与背景技术1相同。
[0021] 边缘节点为发送方,AP节点为接收方。发送方、接收方均由太赫兹网络层及上层、太赫兹MAC层、太赫兹物理层组成,发送方与接收方通过太赫兹信道连接。发送方的网络层
及上层安装有数据生成模块,发送方的太赫兹MAC层安装有发送缓存模块、第一帧生成模
块、第一发送模块、第一控制模块、第一帧解析模块、第一接收模块。接收方的网络层及上层
安装有数据处理模块,接收方的太赫兹MAC层安装有第二帧生成模块、第二发送模块、第二
控制模块、接收缓存模块、第二帧解析模块、第二接收模块。发送方和接收方的太赫兹物理
层通过太赫兹无线信道进行连接。发送方、接收方以MAC层帧结构的形式传递数据,MAC层帧
包含控制帧和数据帧两种;MAC层帧由发送方的第一帧生成模块与接收方的第二帧生成模
块产生。MAC层帧由源地址、目的地址、类型、持续时间、序列号组成。其中,目的地址与源地
址字段为收发双方的MAC地址;类型字段用于区分传输的帧的类型,包括Rts(Request To 
Send请求发送)、Cts(Clear To Send允许发送)、Data、Ack等四种类型(这四种MAC层帧中,
Data是数据帧,另外三种是控制帧);持续时间字段是本次通信要占用的信道时长(通信前
计算得出,计算公式:数据帧传输时间+数据帧传播时间+控制帧传输时间+控制帧传播时
间,用于占用信道。传输时间是网络设备将MAC层帧推出所需要的时间,它是MAC层帧长度和
链路传输速率的函数,与两台设备之间的距离无关;传播时间是一个MAC层帧从一台设备向
另一台设备传播所需要的时间,它是两台设备之间距离的函数,与MAC层帧的长度或链路的
传输速率无关;序列号字段为MAC层帧的唯一标识符。
[0022] 边缘节点网络层及上层的数据生成模块与边缘节点MAC层的发送缓存模块相连,数据生成模块用于生成待发数据并将生成的数据发送给发送缓存模块,与背景技术1中的
数据生成模块相同。
[0023] 边缘节点MAC层的发送缓存模块与边缘节点网络层及上层的数据生成模块、边缘节点MAC层的第一控制模块相连、第一发送模块相连。发送缓存模块负责从网络层及上层的
数据生成模块接收M个数据,按序为所有数据创建数据类型帧头,构建数据帧;记录数据帧
的相关信息并对数据帧的相关信息进行缓存(缓存好的数据帧的相关信息称为数据帧的记
录信息),同时将数据帧的记录信息发送给第一控制模块,将数据帧发送给第一发送模块。
[0024] 边缘节点MAC层的第一控制模块与边缘节点的太赫兹定向天线、边缘节点MAC层的发送缓存模块、第一帧生成模块、第一帧解析模块、第一发送模块相连。第一控制模块在边
缘节点初始化时设定边缘节点的天线为发送模式,并调整相应参数。第一控制模块在边缘
节点与AP节点进行第一次握手时从发送缓存模块接收数据帧的记录信息,将数据帧的记录
信息存入第一控制模块创建的待发队列表;第一控制模块从待发队列表中选取待发队列中
的第一个数据帧的记录信息,并根据待发队列表中所有数据帧的长度信息计算本轮通信持
续时间;边缘节点的第一控制模块还向边缘节点的第一帧生成模块发送“构造Rts帧”与“发
送Rts帧”的指令,同时将待发队列的首个数据帧的记录信息与本轮通信持续时间发送给边
缘节点的第一帧生成模块。边缘节点与AP节点进行第二次握手时,第一控制模块从第一帧
解析模块接收Cts帧的记录信息,将Cts帧的记录信息传递给第一发送模块,同时将发送数
据帧的指令传递给第一发送模块。边缘节点与AP节点双方进行数据传输时,第一控制模块
从第一帧解析模块接收Ack帧的记录信息,完成数据传输,然后遍历待发队列表,根据Ack帧
的记录信息中的序列号找到待发队列表中与该序列号相同的数据帧的记录信息,从待发队
列表删除此数据帧的记录信息。
[0025] 边缘节点MAC层的第一帧生成模块与第一控制模块、第一发送模块相连。边缘节点与AP节点进行第一次握手时,第一帧生成模块从第一控制模块接收到待发对列表的首个数
据帧的记录信息,提取其中的目的地址信息,将其填入Rts帧的目的地址字段,提取其中的
序列号sequence信息,将其填入Rts帧的序列号sequence字段;将边缘节点地址填入Rts帧
的源地址字段;第一帧生成模块从第一控制模块接收本轮通信持续时间,将本轮通信持续
时间填入Rts帧的持续时间duration字段;将“Rts”填入Rts帧的类型字段;第一帧生成模块
从第一控制模块接收到发送Rts帧的指令后,将构造的Rts帧传递给第一发送模块。
[0026] 边缘节点MAC层的第一发送模块与边缘节点MAC层的发送缓存模块、第一控制模块、第一控制模块、AP节点MAC层的第二接收模块相连。边缘节点与AP节点进行第一次握手
时,第一发送模块从第一帧生成模块接收Rts帧,将Rts帧发送给AP节点MAC层的第二接收模
块。边缘节点与AP节点进行数据传输时,第一发送模块从第一控制模块收到Cts帧的记录信
息和发送数据帧的指令后,从发送缓存模块中读取与Cts帧的记录信息的序列号相同的数
据帧,将与Cts帧的记录信息的序列号相同的数据帧发送给AP节点MAC层的第二接收模块。
[0027] 边缘节点MAC层的第一接收模块与AP节点MAC层的第二发送模块、边缘节点MAC层的第一帧解析模块相连。边缘节点与AP节点进行第二次握手时,边缘节点MAC层的第一接收
模块负责从AP节点MAC层的第二发送模块接收Cts帧,将Cts帧发送给第一帧解析模块。边缘
节点与AP节点进行数据传输时,边缘节点MAC层的第一接收模块从AP节点MAC层的第二发送
模块接收Ack帧,将Ack帧发送给第一帧解析模块。
[0028] 边缘节点MAC层的第一帧解析模块与边缘节点MAC层的第一接收模块、第一控制模块相连。边缘节点与AP节点进行第二次握手时,边缘节点MAC层的第一帧解析模块负责从第
一接收模块接收Cts帧,对Cts帧进行解析得到Cts帧的记录信息,将Cts帧的记录信息发送
给第一控制模块。边缘节点与AP节点进行数据传输时,第一帧解析模块负责从第一接收模
块接收Ack帧,对Ack帧进行解析得到Ack帧的记录信息,将Ack帧的记录信息传递给第一控
制模块。
[0029] AP节点MAC层的第二接收模块与边缘节点MAC层的第一发送模块、AP节点MAC层的第二帧解析模块相连。边缘节点与AP节点进行第一次握手时,AP节点MAC层的第二接收模块
负责从边缘节点MAC层的第一发送模块接收Rts帧,将rts帧发送给第二帧解析模块;边缘节
点与AP节点双方进行数据传输时,AP节点MAC层的第二接收模块负责从边缘节点MAC层的第
一发送模块接收数据帧,并将接收的数据帧发送给第二帧解析模块。
[0030] AP节点MAC层的第二帧解析模块与AP节点MAC层的第二接收模块、AP节点MAC层的接收缓存模块、AP节点MAC层的第二控制模块相连。边缘节点与AP节点进行第一次握手时,
AP节点MAC层的第二帧解析模块从第二接收模块接收Rts帧,读取Rts帧中的信息并记录,将
Rts帧的记录信息发送给第二控制模块,完成第一次握手。边缘节点与AP节点双方进行数据
传输时,第二帧解析模块负责接收与第二接收模块发来的数据帧,读取数据帧中的信息并
记录,将数据帧的记录信息发送给AP节点的第二控制模块;第二帧解析模块负责从第二控
制模块接收拆帧指令,将收到的数据帧拆除头部,将拆除头部的数据帧存入接收缓存模块。
[0031] AP节点MAC层的第二控制模块与AP节点MAC层的第二帧解析模块、AP节点的太赫兹定向天线、AP节点的第二帧生成模块相连。边缘节点与AP节点进行第一次握手时,第二控制
模块负责从第二帧解析模块接收Rts帧的记录信息;边缘节点与AP节点进行第二次握手时,
第二控制模块从第二帧解析模块接收Rts帧的记录信息,向第二帧生成模块传递Rts帧的记
录信息,同时传递发送Cts帧的指令,同时设定AP节点的天线停止旋转。边缘节点与AP节点
双方进行数据传输时,第二控制模块从第二帧解析模块接收数据帧的记录信息,向第二帧
生成模块传递数据帧的记录信息,同时传递发送Ack的指令;第二控制模块从第二帧解析模
块接收数据帧的记录信息后,第二控制模块向第二帧解析模块发送拆帧指令。
[0032] AP节点MAC层的第二帧生成模块与第二控制模块、第二发送模块相连。边缘节点与AP节点进行第二次握手时,第二帧生成模块从第二控制模块接收Rts帧的记录信息和发送
Cts帧的指令,根据Rts帧的记录信息生成Cts帧,并将Cts帧发送给第二发送模块。边缘节点
与AP节点进行数据传输时,第二帧生成模块从第二控制模块接收数据帧的记录信息和发送
Ack帧的指令,根据数据帧的记录信息生成Ack帧,将Ack帧发送给第二发送模块。
[0033] AP节点MAC层的第二发送模块与AP节点MAC层的第二帧生成模块、边缘节点的第一接收模块相连。边缘节点与AP节点进行第二次握手时,第二发送模块负责从AP节点MAC层的
第二帧生成模块接收Cts帧,将Cts帧发送给边缘节点的第一接收模块。边缘节点与AP节点
双方进行数据传输时,第二发送模块负责从AP节点MAC层的第二帧生成模块接收Ack帧,将
Ack帧发送给边缘节点的第一接收模块。
[0034] 第二步,AP节点与N个边缘节点并行进行初始化操作。AP节点按2.1的流程进行初始化,第二控制模块设定AP节点的天线为接收模式,并调整相应参数,准备接收数据。同时N
个边缘节点按2.2的流程进行初始化,第一控制模块设定边缘节点的天线为发送模式,调整
相应参数;然后N个边缘节点按2.3的流程准备发送数据。
[0035] 2.1 AP节点初始化,第二控制模块设定AP节点的天线为接收模式,并调整相应参数,具体步骤如下:
[0036] 2.1.1设定AP节点的天线状态为接收模式;
[0037] 2.1.2设定AP节点的天线初始角度InitialAngle为0°;
[0038] 2.1.3设定AP节点的天线波束宽度beamwidthDegrees为p°(0
[0039] 2.1.4计算AP节点的天线初始覆盖范围m_rxIniAngle,m_rxIniAngle=InitialAngle+beamwidthDegrees;
[0040] 2.1.5设定AP节点的天线转速TurningSpeed为r转每秒(r为正整数,在本方案的网络场景下,优选值为200转/s);
[0041] 2.1.6 AP节点天线参数设定,方法是:
[0042] 2.1.6.1设定AP节点的天线旋转一圈所需时间tCircle=(1/TurningSpeed)秒;
[0043] 2.1.6.2设定扇区个数为nSector=360°/beamwidthDegrees;
[0044] 2.1.6.3设定天线对准每个扇区的时长tSector=tCircle/nSector;
[0045] 2.1.7令本轮通信已传输的数据帧数量have_send=0;
[0046] 2.1.8 AP节点初始化完成,定向天线持续旋转扫描信道,若收到来自边缘节点的通信请求(即Rts帧),AP节点转3.7步,若未收到,转2.1.8继续等待。
[0047] 2.2在AP节点初始化的同时,N个边缘节点并行进行初始化,N个边缘节点的第一控制模块并行设定边缘节点的天线为发送模式,并调整相应参数,N个边缘节初始化方法相
同,其中第i个(i为正整数,i≤N))边缘节点的初始化方法如下:
[0048] 2.2.1设定第i个边缘节点的天线为传输模式,并将天线指向AP节点所在位置;
[0049] 2.2.2设定第i个边缘节点的天线波束宽度=AP节点的天线波束宽度beamwidthDegrees;
[0050] 2.2.3第i个边缘节点初始化完成,等待来自网络层及上层的数据,转2.3步。
[0051] 2.3第i个边缘节点产生数据传输需求,进行待发数据处理,得到待发队列表m_pktQueue,方法是:
[0052] 2.3.1设置初始化序列号m_sequence为0,第i个边缘节点网络层及上层的数据生成模块将M个数据发送给第i个边缘节点的发送缓存模块;M为正整数。
[0053] 2.3.2第i个边缘节点的发送缓存模块判定是否从网络层及上层的数据生成模块接收到M个数据,若接收到,转2.3.3;若未接收到,转2.3.2等待数据。
[0054] 2.3.3第i个边缘节点的发送缓存模块按序为M个数据创建数据类型帧头,存储数据帧的记录信息,将数据帧的记录信息发送给第i个边缘节点的第一控制模块,具体步骤如
下:
[0055] 2.3.3.1第i个边缘节点的发送缓存模块创建数据类型帧头,并设置相应参数,令THzMacHeader header=THzMacHeader(m_address,dest,Data),其中THzMacHeader 
header指太赫兹MAC类型的帧头,m_address指第i个边缘节点地址(源地址),dest指目的地
址,Data指帧的类型为数据帧;
[0056] 2.3.3.2设置当前数据帧序列号为m_sequence=m_sequence+1;
[0057] 2.3.3.3将创建的帧头加入序列号为m_sequence的数据帧;
[0058] 2.3.4发送缓存模块记录序列号为m_sequence的数据帧的记录信息,具体步骤如下:
[0059] 2.3.4.1令数据长度RecSize=序列号为m_sequence的数据的实际长度;
[0060] 2.3.4.2令数据帧入队时间RecTime=系统当前时间;
[0061] 2.3.4.3令数据帧序列号RecSeq=m_sequence;
[0062] 2.3.4.4令数据帧重传次数令RecRetry=0;
[0063] 2.3.4.5令持续时间duration=数据包传输时间(数据包长度/第i个边缘节点的带宽)+数据包传播时间(帧传播时间×1)+Ack传输时间(17字节/第i个边缘节点的带宽)+
Ack传播时间(帧传播时间×1);
[0064] 2.3.5第i个边缘节点的发送缓存模块将2.3.4中的数据帧的记录信息发送给第i个边缘节点的第一控制模块。
[0065] 2.3.6第i个边缘节点的第一控制模块接收发送缓存模块发来的数据帧的记录信息,创建待发队列表m_pktQueue(m_pktQueue满足能够容纳上层产生的数据的记录信息即
可)(待发队列表中的每一项包括:RecSize;RecTime;RecSeq;RecRetry),将收到的记录信
息录入到m_pktQueue中;
[0066] 2.3.7第i个边缘节点的发送缓存模块判断m_sequence进行处理;如果m_sequence=M,第i个边缘节点的发送缓存模块转2.3.2继续等待数据生成
模块发来的数据,同时第i个边缘节点的第一接收模块、第一帧解析模块、第一控制模块、第
一帧生成模块、第一发送模块转第三步与AP节点进行握手以传输数据。
[0067] 第三步,N个边缘节点按3.1~3.5步的流程并行尝试与AP节点进行第一次握手,同时AP节点按3.6~3.11步的流程扫描太赫兹无线信道,监控从哪个边缘节点收到Rts帧,若
收到第e(e为正整数,e≤N)个边缘节点的Rts帧,则与第e个边缘节点进行握手。N个边缘节
点握手方法相同,其中第e个边缘节点与AP节点进行握手的方法如3.1~3.5步所示。
[0068] 3.1第e个边缘节点的第一控制模块收到第e个边缘节点的发送缓存模块发来的数据帧的记录信息,将数据帧的记录信息中的RecSeq、RecSize、RecTime、RecRetry存入待发
队列表m_pktQueue,m_pktQueue的一个元素即为一个数据帧的记录信息。
[0069] 3.2第e个边缘节点的第一控制模块采用二进制退避算法开始退避,以避免多个边缘节点同时获取太赫兹信道访问权限而产生冲突,具体步骤如下:
[0070] 3.2.1确定基本退避时间,令端到端的往返时间为2t,2t也称为冲突窗口(冲突窗口是互联网通讯领域的术语,是指从数据发送开始到网络上最远的两个节点之间信号传播
时延的两倍值的时间区间。由于载波侦听不能完全消除冲突,有一种极端的情况是节点A向
节点B发送了数据,在数据信号正好快要到达B时,B也向A发送了数据,此时冲突发生。等到
信号传到A时,已经过两倍的传播延迟2t,其中t=D/V,D为总线最大长度,V是传播速度。如
果超过2t还没检测到冲突,则能肯定该结点取得了总线访问权。因此将2D/V=2t定义为冲
突窗口(collision window))。在本方案的通信场景下,2t取经验值66.6ns。
[0071] 3.2.2定义参数k,k与冲突次数(第e个边缘节点与其他边缘节点同时获取太赫兹信道访问权限而产生冲突的次数)有关,规定k不能超过10,且令k=Min(冲突次数,10),表
示k取冲突次数和10中的最小值。在本方案中,冲突次数=RecRetry。
[0072] 3.2.3从离散的整数集合{0,1,2,……,(2k‑1)}中随机取出一个数,令为rr,令等待的时延=rr×2t。令剩余退避时间m_backoffRemain=等待的时延=rr×2t;
[0073] 3.2.4若冲突次数不超过5次,转3.3;若冲突次数超过5次,证明发送失败,边缘节点的第一控制模块找到3.1步生成的待发队列表m_pktQueue的首条记录信息,记录该数据
帧发送失败,并将该数据帧的记录信息从m_pktQueue中删除,转2.3.2。
[0074] 3.3第e个边缘节点的第一控制模块从m_pktQueue中选取第一个数据帧的信息,发送给第一帧生成模块,具体步骤如下:
[0075] 3.3.1如果m_pktQueue中的数据帧记录信息为空,转步骤2.3.2,否则转步骤3.3.2;
[0076] 3.3.2读取m_pktQueue中的第一个数据帧的记录信息,即令首个待发数据帧m_pktData为待发队列表的首个数据帧的信息;
[0077] 3.3.3检查m_pktData目的地址是否为广播地址,如果是,则发送待发队列表的首个数据帧,令sequence=待发队列表的首个数据帧的sequence,转5.1.3,否则执行3.3.4;
[0078] 3.3.4第一控制模块根据待发队列表m_pktQueue长度确定本轮通信要传输的数据帧个数m_tosend,即令m_tosend=待发队列表中元素的个数;
[0079] 3.3.5第一控制模块遍历待发队列表m_pktQueue,获取所有待发数据的总长度(即待发队列表中m_tosend个元素的长度之和),记为m_tosendlength;
[0080] 3.3.6第一控制模块计算传输所有待发数据的传输时间m_tosendTxduration,m_tosendTxduration=m_tosendlength/第e个边缘节点传输带宽(本方案要求带宽大于等于
100Gbps);
[0081] 3.3.7第一控制模块计算本轮通信的持续时间duration,duration=控制帧传输时间+控制帧传播时间+数据帧传输时间+数据帧传播时间,控制帧传输时间=控制帧长度
(17字节)×控制帧数量(Rts帧数量1+Cts帧数量1+Ack帧数量即m_tosend)/第e个边缘节点
传输带宽,控制帧传播时间=控制帧数量×帧传播时间(本方案中帧传播时间优选值为
33.3ns),数据帧传输时间=m_tosendTxduration,数据帧传播时间=数据帧数量m_tosend
×帧传播时间;
[0082] 3.3.8第一控制模块设定Cts超时时间=Rts传输时间(17字节/第e个边缘节点传输带宽)+Rts传播时间(帧传播时间×1)+Cts传输时间(17字节/第e个边缘节点传输带宽)+
Cts传播时间(帧传播时间×1),在Cts超时时间内如果未收到Cts,则令该序列号匹配的数
据帧的重传次数RecRetry=RecRetry+1,转3.2;同时,第一控制模块向第e个边缘节点的第
一帧生成模块传递发送构造Rts帧的指令,同时将待发队列的首个数据帧的记录信息与
3.3.7步计算出的duration发送给边缘节点的第一帧生成模块,转3.4;
[0083] 3.4第一帧生成模块构造Rts帧,具体步骤如下:
[0084] 3.4.1第一帧生成模块创建Rts帧(只包含帧头),并将第一控制模块发来的待发数据的记录信息填入Rts的头部,THzMacHeaderrtsHeader=THzMacHeader(m_address,
GetDestination,Rts,duration,sequence),其中THzMacHeaderrtsHeader指创建的是太赫
兹类型的Rts帧头,m_address为边缘节点地址(源地址),GetDestination为可获取数据帧
的目的地址,Rts指帧的类型为Rts帧,duration为3.3.7计算出的本轮通信持续时间,
sequence=第3.3.8步所述待发队列的首个数据帧的记录信息中的序列号;
[0085] 3.4.2第一帧生成模块将生成的Rts帧发送给第一发送模块;
[0086] 3.5第e个边缘节点的第一发送模块向物理层传输Rts帧。
[0087] 3.6 AP节点的定向天线旋转扫描太赫兹无线信道,监控是否收到Rts帧,并检查Rts帧来自哪个边缘节点,若收到来自第e个边缘节点的Rts帧,转3.7;若未收到任何Rts帧,
转3.6。
[0088] 3.7 AP节点的物理层从太赫兹无线信道接收第e个边缘节点发来的Rts帧,将该包传递给AP节点的第二接收模块;
[0089] 3.8 AP节点的第二接收模块传递Rts帧给第二帧解析模块;
[0090] 3.9 AP节点的第二帧解析模块从AP节点的第二接收模块接收Rts帧;
[0091] 3.10 AP节点的第二帧解析模块读取Rts帧中的信息并记录,其中包含源地址source、目的地址destination、类型type、持续时间duration;
[0092] 3.11 AP节点的第二帧解析模块将Rts帧记录的信息传递给AP节点的第二控制模块,完成第一次握手,转第四步。
[0093] 第四步,第e个边缘节点与AP节点进行第二次握手,方法是:
[0094] 4.1 AP节点的第二控制模块从AP节点的第二帧解析模块接收Rts帧的记录信息;
[0095] 4.2令第一时间t1=系统时间;AP节点的第二控制模块设定AP节点的天线转速为0,AP节点天线处于停止状态(AP节点能收到第e个边缘节点的Rts帧,即说明此时收发双方
定向天线的波束为对准状态),通信链路建立;
[0096] 4.3 AP节点的第二控制模块向第二帧生成模块传递发送Cts的指令和Rts帧的记录信息;
[0097] 4.4 AP节点的第二帧生成模块创建Cts帧,具体步骤如下:
[0098] 4.4.1 AP节点的第二帧生成模块创建Cts帧(内容部分为空,仅包含头部),根据Rts帧的记录信息填充Cts帧头部,即令THzMacHeaderctsHeader=THzMacHeader(source,
destination,Cts,duration),其中THzMacHeaderctsHeader指创建的是太赫兹类型的Cts
帧头,source为AP节点地址(源地址),destination为Cts帧的目的地址即为Rts帧的源地
址,Cts是指帧的类型为Cts,duration=0;
[0099] 4.4.2 AP节点的第二帧生成模块将序列号填充入该Cts帧,sequence=Rts帧的序列号;
[0100] 4.4.3 AP节点的第二帧生成模块将生成的Cts帧传递给AP节点的第二发送模块;
[0101] 4.5 AP节点的第二发送模块向物理层传输Cts帧,Cts帧经由太赫兹无线信道模块到达第e个边缘节点的物理层。
[0102] 4.6第e个边缘节点的物理层从AP节点的第二发送模块接收到Cts帧,将Cts帧传递给边缘节点的第一接收模块,
[0103] 4.7第e个边缘节点的第一接收模块将Cts帧传递给第一帧解析模块;
[0104] 4.8边缘节点的第一帧解析模块解析Cts帧,具体步骤如下:
[0105] 4.8.1第e个边缘节点的第一帧解析模块接收Cts帧,读取Cts帧中的信息并记录,得到Cts帧的记录信息,包含源地址source、目的地址destination、类型type、持续时间
duration,序列号sequence;
[0106] 4.8.2第e个边缘节点的第一帧解析模块将Cts帧的记录信息发送给第一控制模块,第二次握手完成,即第e个边缘节点收到了AP节点发送的Cts帧,转第五步。
[0107] 第五步,第e个边缘节点与AP节点进行数据传输,具体方法是:
[0108] 5.1第e个边缘节点向AP节点传输数据,具体步骤如下:
[0109] 5.1.1第e个边缘节点的第一控制模块将Cts帧的记录信息发送给第e个边缘节点的第一发送模块,并向第一发送模块传递“发送数据帧的指令”;
[0110] 5.1.2第e个边缘节点的第一发送模块读取Cts帧的记录信息的sequence;
[0111] 5.1.3第e个边缘节点的第一发送模块从发送缓存模块中读取与sequence相同的数据帧;
[0112] 5.1.4第e个边缘节点的第一发送模块修改该数据帧的持续时间字段,令duration=数据帧传输时间(数据帧长度/第e个边缘节点传输带宽)+数据帧传播时间(帧传播时间
×1)+Ack传输时间(17字节/第e个边缘节点传输带宽)+Ack传播时间(帧传播时间×1);
[0113] 5.1.5第e个边缘节点的第一发送模块向物理层传输与sequence一致的数据帧,数据帧经由太赫兹无线信道到达AP节点的物理层,转5.2;同时,第e个边缘节点的第一控制模
块设定确认帧超时事件,如果在duration时间内第一控制模块未收到第e个边缘节点的第
一帧解析模块发来的Ack帧的记录信息,则Ack帧超时,第一控制模块将该序列号匹配的数
据帧的重传次数增1,即令RecRetry=RecRetry+1,转3.2;如果在duration时间内收到第e
个边缘节点的第一控制模块发来的Ack帧的记录信息,则Ack帧未超时,转5.11;
[0114] 5.2 AP节点的物理层接收到该数据帧,将该包传递给AP节点的第二接收模块;
[0115] 5.3 AP节点的第二接收模块将从物理层收到的数据帧传递给AP节点的第二帧解析模块,第二帧解析模块对数据帧进行解析,方法是:
[0116] 5.3.1第二帧解析模块读取数据帧中的信息并记录,其中包含源地址source、目的地址destination、类型type、持续时间duration;
[0117] 5.3.2 AP节点的第二帧解析模块将数据帧的记录信息传递给AP节点的第二控制模块;
[0118] 5.4 AP节点的第二控制模块向AP节点的第二帧生成模块发送数据帧的记录信息,并向第二帧生成模块传递发送Ack的指令,转步骤5.8;同时,AP节点的第二控制模块向AP节
点的第二帧解析模块发送拆帧指令,转步骤5.5;
[0119] 5.5 AP节点的第二帧解析模块根据拆帧指令对从第二接收模块收到的数据帧拆除头部,将拆除了头部的数据帧发送给接收缓存模块。
[0120] 5.6接收缓存模块判断是否收到拆除了头部的数据帧,若收到,则对拆除了头部的数据帧进行存储,转5.7;若未收到拆除了头部的数据帧,接收缓存模块转5.6继续等待;
[0121] 5.7网络层及上层的第二数据处理模块读取接收缓存模块中的数据帧,根据用户要求进行处理(此时数据已到达AP节点的用户端,处理方式取决于具体的数据类型、数据来
源、用户要求,此处不做具体说明),处理完后转5.6。
[0122] 5.8 AP节点的第二帧生成模块创建Ack,具体步骤如下:
[0123] 5.8.1 AP节点的第二帧生成模块创建Ack,将数据帧头部信息填入Ack头部,令THzMacHeaderAckHeader=THzMacHeader(source,destination,Ack,duration),其中
THzMacHeaderAckHeader指创建的是太赫兹类型的Ack帧头,source为AP节点地址,
destination为数据帧记录信息中的源地址source,Ack是指包的类型为Ack,duration=0;
[0124] 5.8.2 AP节点的第二帧生成模块将序列号填充入该Ack帧,sequence为数据帧记录信息中的sequence;
[0125] 5.8.3 AP节点的第二帧生成模块将生成的Ack帧传递给AP节点的第二发送模块;
[0126] 5.9 AP节点的第二发送模块向物理层传输该Ack帧,Ack帧经由太赫兹无线信道模块到达第e个边缘节点的物理层。
[0127] 5.10第e个边缘节点的物理层接收到该Ack帧,将Ack帧传递给边缘节点的第一接收模块,
[0128] 5.11第e个边缘节点的第一接收模块将Ack帧传递给边缘节点的第一帧解析模块;
[0129] 5.12第e个边缘节点的第一帧解析模块对Ack帧进行解析,具体步骤如下:
[0130] 5.12.1第e个边缘节点的第一帧解析模块收到Ack后,读取Ack帧中的信息并记录,其中包含源地址source、目的地址destination、类型type、持续时间duration;
[0131] 5.12.2第e个边缘节点的第一帧解析模块将Ack帧的记录信息传递给第一控制模块,完成数据传输。
[0132] 5.13第e个边缘节点的第一控制模块遍历第三步生成的m_pktQueue,根据Ack帧的记录信息中的序列号找到m_pktQueue中与序列号符合的数据帧,记录该数据帧发送结果,
令have_send=have_send+1;
[0133] 5.14第e个边缘节点的第一控制模块判断已发送的数据帧数量是否小于要发送的数据帧数量,即判断have_send据待发,则令sequence=Ack帧的sequence+1,转5.1.3,传输下一个待发数据;否则,第e个
边缘节点的所有数据传输完成,第e个边缘节点转2.3,AP节点转5.15;
[0134] 5.15令第二时间t2=系统时间,若t2‑t1=duration,说明第e个边缘节点与AP节点的数据传输完成,AP节点的第二控制模块重新设置天线旋转速度TurningSpeed为r转每
秒,转2.1.8。
[0135] 采用本发明可以达到以下技术效果:
[0136] 1.本发明第一步构建了一种基于双向握手(由发送方即边缘节点首先发起传输请求(Rts),接收方即AP节点(Cts)再授予边缘节点信道访问权限的双方交互的过程,称为双
向握手)的太赫兹组网介质访问控制的网络场景,第一控制模块和第二控制模块居中协调,
管理其他模块的收发操作,并对天线的参数进行调整,进而实现高效的组网与收发控制。
[0137] 2.本发明通过第二步的参数设置使AP节点的定向天线开始旋转扫描信道,完成节点发现;通过第四步的参数设置使AP节点的定向天线停止旋转,指向当前对准的边缘节点,
建立通信链路并进行数据交换,通信完成后通过参数设置使AP节点的定向天线再次开始旋
转扫描信道,实现下一个通信节点的发现与切换。通过上述方式控制AP节点天线的停止与
旋转,可实现AP节点天线在通过旋转扫描信道时进行节点发现,在对准通信节点时停转进
行数据传输,最终实现较高的信道利用率。
[0138] 3.本发明通过第三步‑第五步中收发双方的三次握手,控制AP节点天线的停止与旋转,根据边缘节点的传输请求即Rts帧中的持续时间duration,给待发数据量不同的节点
分配不同的信道时间,减少了天线空转造成的信道资源的浪费。
[0139] 4.本发明优化了收发双方通信中的协商过程,收发双方在通过一次Rts‑Cts的交互后建立信道,可传输多个(M个)数据帧,最大化的提高了数据传输时长在一次通信流程中
的占比,有效地提高了信道利用率。

附图说明

[0140] 图1是背景技术1中的网络模型示意图。
[0141] 图2是背景技术1中的节点模型示意图。
[0142] 图3是本发明第一步构建的基于双向握手的太赫兹组网介质访问控制的网络场景的逻辑结构图。
[0143] 图4是本发明Mac层帧格式示意图。
[0144] 图5是本发明总体流程图。

具体实施方式

[0145] 下面结合附图对本发明进行详细介绍。
[0146] 如图5所示,本发明包括以下步骤:
[0147] 第一步,构建一种基于双向握手的太赫兹组网介质访问控制的网络场景,该网络场景如图3所示,结合图1,网络场景大小为20m×20m,AP节点位于网络场景的中心,网络中N
个边缘节点随机分布在AP节点周围10m范围内,N为正整数。边缘节点的定向天线的波束方
向始终指向AP节点,AP节点的天线通过定速旋转扫描太赫兹信道实现通信链路的建立。以
网络中有6个边缘节点(N=6)为例,网络模型与背景技术1相同。
[0148] 如图3所示,边缘节点为发送方,AP节点为接收方。发送方、接收方均由太赫兹网络层及上层、太赫兹MAC层、太赫兹物理层组成,发送方与接收方通过太赫兹信道连接。发送方
的网络层及上层安装有数据生成模块,发送方的太赫兹MAC层安装有发送缓存模块、第一帧
生成模块、第一发送模块、第一控制模块、第一帧解析模块、第一接收模块。接收方的网络层
及上层安装有数据处理模块,接收方的太赫兹MAC层安装有第二帧生成模块、第二发送模
块、第二控制模块、接收缓存模块、第二帧解析模块、第二接收模块。发送方和接收方的太赫
兹物理层通过太赫兹无线信道进行连接。发送方、接收方以MAC层帧结构的形式传递数据,
MAC层帧包含控制帧和数据帧两种;MAC层帧的各字段与对应长度如图4所示,由发送方的第
一帧生成模块与接收方的第二帧生成模块产生。MAC层帧由源地址、目的地址、类型、持续时
间、序列号组成。其中,目的地址与源地址字段为收发双方的MAC地址;类型字段用于区分传
输的帧的类型,包括Rts(Request To Send请求发送)、Cts(Clear To Send允许发送)、
Data、Ack等四种类型(这四种MAC层帧中,Data是数据帧,另外三种是控制帧);持续时间字
段是本次通信要占用的信道时长(通信前计算得出,计算公式:数据帧传输时间+数据帧传
播时间+控制帧传输时间+控制帧传播时间,用于占用信道。传输时间是网络设备将MAC层帧
推出所需要的时间,它是MAC层帧长度和链路传输速率的函数,与两台设备之间的距离无
关;传播时间是一个MAC层帧从一台设备向另一台设备传播所需要的时间,它是两台设备之
间距离的函数,与MAC层帧的长度或链路的传输速率无关;序列号字段为MAC层帧的唯一标
识符。
[0149] 边缘节点网络层及上层的数据生成模块与边缘节点MAC层的发送缓存模块相连,数据生成模块用于生成待发数据并将生成的数据发送给发送缓存模块,与背景技术1中的
数据生成模块相同。
[0150] 边缘节点MAC层的发送缓存模块与边缘节点网络层及上层的数据生成模块、边缘节点MAC层的第一控制模块相连、第一发送模块相连。发送缓存模块负责从网络层及上层的
数据生成模块接收M个数据,按序为所有数据创建数据类型帧头,构建数据帧;记录数据帧
的相关信息并对数据帧的相关信息进行缓存(缓存好的数据帧的相关信息称为数据帧的记
录信息),同时将数据帧的记录信息发送给第一控制模块,将数据帧发送给第一发送模块。
[0151] 边缘节点MAC层的第一控制模块与边缘节点的太赫兹定向天线、边缘节点MAC层的发送缓存模块、第一帧生成模块、第一帧解析模块、第一发送模块相连。第一控制模块在边
缘节点初始化时设定边缘节点的天线为发送模式,并调整相应参数。第一控制模块在边缘
节点与AP节点进行第一次握手时从发送缓存模块接收数据帧的记录信息,将数据帧的记录
信息存入第一控制模块创建的待发队列表;第一控制模块从待发队列表中选取待发队列中
的第一个数据帧的记录信息,并根据待发队列表中所有数据帧的长度信息计算本轮通信持
续时间;边缘节点的第一控制模块还向边缘节点的第一帧生成模块发送“构造Rts帧”与“发
送Rts帧”的指令,同时将待发队列的首个数据帧的记录信息与本轮通信持续时间发送给边
缘节点的第一帧生成模块。边缘节点与AP节点进行第二次握手时,第一控制模块从第一帧
解析模块接收Cts帧的记录信息,将Cts帧的记录信息传递给第一发送模块,同时将发送数
据帧的指令传递给第一发送模块。边缘节点与AP节点双方进行数据传输时,第一控制模块
从第一帧解析模块接收Ack帧的记录信息,完成数据传输,然后遍历待发队列表,根据Ack帧
的记录信息中的序列号找到待发队列表中与该序列号相同的数据帧的记录信息,从待发队
列表删除此数据帧的记录信息。
[0152] 边缘节点MAC层的第一帧生成模块与第一控制模块、第一发送模块相连。边缘节点与AP节点进行第一次握手时,第一帧生成模块从第一控制模块接收到待发对列表的首个数
据帧的记录信息,提取其中的目的地址信息,将其填入Rts帧的目的地址字段,提取其中的
序列号sequence信息,将其填入Rts帧的序列号sequence字段;将边缘节点地址填入Rts帧
的源地址字段;第一帧生成模块从第一控制模块接收本轮通信持续时间,将本轮通信持续
时间填入Rts帧的持续时间duration字段;将“Rts”填入Rts帧的类型字段;第一帧生成模块
从第一控制模块接收到发送Rts帧的指令后,将构造的Rts帧传递给第一发送模块。
[0153] 边缘节点MAC层的第一发送模块与边缘节点MAC层的发送缓存模块、第一控制模块、第一控制模块、AP节点MAC层的第二接收模块相连。边缘节点与AP节点进行第一次握手
时,第一发送模块从第一帧生成模块接收Rts帧,将Rts帧发送给AP节点MAC层的第二接收模
块。边缘节点与AP节点进行数据传输时,第一发送模块从第一控制模块收到Cts帧的记录信
息和发送数据帧的指令后,从发送缓存模块中读取与Cts帧的记录信息的序列号相同的数
据帧,将与Cts帧的记录信息的序列号相同的数据帧发送给AP节点MAC层的第二接收模块。
[0154] 边缘节点MAC层的第一接收模块与AP节点MAC层的第二发送模块、边缘节点MAC层的第一帧解析模块相连。边缘节点与AP节点进行第二次握手时,边缘节点MAC层的第一接收
模块负责从AP节点MAC层的第二发送模块接收Cts帧,将Cts帧发送给第一帧解析模块。边缘
节点与AP节点进行数据传输时,边缘节点MAC层的第一接收模块从AP节点MAC层的第二发送
模块接收Ack帧,将Ack帧发送给第一帧解析模块。
[0155] 边缘节点MAC层的第一帧解析模块与边缘节点MAC层的第一接收模块、第一控制模块相连。边缘节点与AP节点进行第二次握手时,边缘节点MAC层的第一帧解析模块负责从第
一接收模块接收Cts帧,对Cts帧进行解析得到Cts帧的记录信息,将Cts帧的记录信息发送
给第一控制模块。边缘节点与AP节点进行数据传输时,第一帧解析模块负责从第一接收模
块接收Ack帧,对Ack帧进行解析得到Ack帧的记录信息,将Ack帧的记录信息传递给第一控
制模块。
[0156] AP节点MAC层的第二接收模块与边缘节点MAC层的第一发送模块、AP节点MAC层的第二帧解析模块相连。边缘节点与AP节点进行第一次握手时,AP节点MAC层的第二接收模块
负责从边缘节点MAC层的第一发送模块接收Rts帧,将rts帧发送给第二帧解析模块;边缘节
点与AP节点双方进行数据传输时,AP节点MAC层的第二接收模块负责从边缘节点MAC层的第
一发送模块接收数据帧,并将接收的数据帧发送给第二帧解析模块。
[0157] AP节点MAC层的第二帧解析模块与AP节点MAC层的第二接收模块、AP节点MAC层的接收缓存模块、AP节点MAC层的第二控制模块相连。边缘节点与AP节点进行第一次握手时,
AP节点MAC层的第二帧解析模块从第二接收模块接收Rts帧,读取Rts帧中的信息并记录,将
Rts帧的记录信息发送给第二控制模块,完成第一次握手。边缘节点与AP节点双方进行数据
传输时,第二帧解析模块负责接收与第二接收模块发来的数据帧,读取数据帧中的信息并
记录,将数据帧的记录信息发送给AP节点的第二控制模块;第二帧解析模块负责从第二控
制模块接收拆帧指令,将收到的数据帧拆除头部,将拆除头部的数据帧存入接收缓存模块。
[0158] AP节点MAC层的第二控制模块与AP节点MAC层的第二帧解析模块、AP节点的太赫兹定向天线、AP节点的第二帧生成模块相连。边缘节点与AP节点进行第一次握手时,第二控制
模块负责从第二帧解析模块接收Rts帧的记录信息;边缘节点与AP节点进行第二次握手时,
第二控制模块从第二帧解析模块接收Rts帧的记录信息,向第二帧生成模块传递Rts帧的记
录信息,同时传递发送Cts帧的指令,同时设定AP节点的天线停止旋转。边缘节点与AP节点
双方进行数据传输时,第二控制模块从第二帧解析模块接收数据帧的记录信息,向第二帧
生成模块传递数据帧的记录信息,同时传递发送Ack的指令;第二控制模块从第二帧解析模
块接收数据帧的记录信息后,第二控制模块向第二帧解析模块发送拆帧指令。
[0159] AP节点MAC层的第二帧生成模块与第二控制模块、第二发送模块相连。边缘节点与AP节点进行第二次握手时,第二帧生成模块从第二控制模块接收Rts帧的记录信息和发送
Cts帧的指令,根据Rts帧的记录信息生成Cts帧,并将Cts帧发送给第二发送模块。边缘节点
与AP节点进行数据传输时,第二帧生成模块从第二控制模块接收数据帧的记录信息和发送
Ack帧的指令,根据数据帧的记录信息生成Ack帧,将Ack帧发送给第二发送模块。
[0160] AP节点MAC层的第二发送模块与AP节点MAC层的第二帧生成模块、边缘节点的第一接收模块相连。边缘节点与AP节点进行第二次握手时,第二发送模块负责从AP节点MAC层的
第二帧生成模块接收Cts帧,将Cts帧发送给边缘节点的第一接收模块。边缘节点与AP节点
双方进行数据传输时,第二发送模块负责从AP节点MAC层的第二帧生成模块接收Ack帧,将
Ack帧发送给边缘节点的第一接收模块。
[0161] 第二步,AP节点与N个边缘节点并行进行初始化操作。AP节点按2.1的流程进行初始化,第二控制模块设定AP节点的天线为接收模式,并调整相应参数,准备接收数据。同时N
个边缘节点按2.2的流程进行初始化,第一控制模块设定边缘节点的天线为发送模式,调整
相应参数;然后N个边缘节点按2.3的流程准备发送数据。
[0162] 2.1 AP节点初始化,第二控制模块设定AP节点的天线为接收模式,并调整相应参数,具体步骤如下:
[0163] 2.1.1设定AP节点的天线状态为接收模式;
[0164] 2.1.2设定AP节点的天线初始角度InitialAngle为0°;
[0165] 2.1.3设定AP节点的天线波束宽度beamwidthDegrees为p°(0
[0166] 2.1.4计算AP节点的天线初始覆盖范围m_rxIniAngle,m_rxIniAngle=InitialAngle+beamwidthDegrees;
[0167] 2.1.5设定AP节点的天线转速TurningSpeed为r转每秒(r为正整数,在本方案的网络场景下,优选值为200转/s);
[0168] 2.1.6 AP节点天线参数设定,方法是:
[0169] 2.1.6.1设定AP节点的天线旋转一圈所需时间tCircle=(1/TurningSpeed)秒;
[0170] 2.1.6.2设定扇区个数为nSector=360°/beamwidthDegrees;
[0171] 2.1.6.3设定天线对准每个扇区的时长tSector=tCircle/nSector;
[0172] 2.1.7令本轮通信已传输的数据帧数量have_send=0;
[0173] 2.1.8 AP节点初始化完成,定向天线持续旋转扫描信道,若收到来自边缘节点的通信请求(即Rts帧),AP节点转3.7步,若未收到,转2.1.8继续等待。
[0174] 2.2在AP节点初始化的同时,N个边缘节点并行进行初始化,N个边缘节点的第一控制模块并行设定边缘节点的天线为发送模式,并调整相应参数,N个边缘节初始化方法相
同,其中第i个(i为正整数,i≤N))边缘节点的初始化方法如下:
[0175] 2.2.1设定第i个边缘节点的天线为传输模式,并将天线指向AP节点所在位置;
[0176] 2.2.2设定第i个边缘节点的天线波束宽度=AP节点的天线波束宽度beamwidthDegrees;
[0177] 2.2.3第i个边缘节点初始化完成,等待来自网络层及上层的数据,转2.3步。
[0178] 2.3第i个边缘节点产生数据传输需求,进行待发数据处理,得到待发队列表m_pktQueue,方法是:
[0179] 2.3.1设置初始化序列号m_sequence为0,第i个边缘节点网络层及上层的数据生成模块将M个数据发送给第i个边缘节点的发送缓存模块;M为正整数。
[0180] 2.3.2第i个边缘节点的发送缓存模块判定是否从网络层及上层的数据生成模块接收到M个数据,若接收到,转2.3.3;若未接收到,转2.3.2等待数据。
[0181] 2.3.3第i个边缘节点的发送缓存模块按序为M个数据创建数据类型帧头,存储数据帧的记录信息,将数据帧的记录信息发送给第i个边缘节点的第一控制模块,具体步骤如
下:
[0182] 2.3.3.1第i个边缘节点的发送缓存模块创建数据类型帧头,并设置相应参数,令THzMacHeader header=THzMacHeader(m_address,dest,Data),其中THzMacHeader 
header指太赫兹MAC类型的帧头,m_address指第i个边缘节点地址(源地址),dest指目的地
址,Data指帧的类型为数据帧;
[0183] 2.3.3.2设置当前数据帧序列号为m_sequence=m_sequence+1;
[0184] 2.3.3.3将创建的帧头加入序列号为m_sequence的数据帧;
[0185] 2.3.4发送缓存模块记录序列号为m_sequence的数据帧的记录信息,具体步骤如下:
[0186] 2.3.4.1令数据长度RecSize=序列号为m_sequence的数据的实际长度;
[0187] 2.3.4.2令数据帧入队时间RecTime=系统当前时间;
[0188] 2.3.4.3令数据帧序列号RecSeq=m_sequence;
[0189] 2.3.4.4令数据帧重传次数令RecRetry=0;
[0190] 2.3.4.5令持续时间duration=数据包传输时间(数据包长度/第i个边缘节点的带宽)+数据包传播时间(帧传播时间×1)+Ack传输时间(17字节/第i个边缘节点的带宽)+
Ack传播时间(帧传播时间×1);
[0191] 2.3.5第i个边缘节点的发送缓存模块将2.3.4中的数据帧的记录信息发送给第i个边缘节点的第一控制模块。
[0192] 2.3.6第i个边缘节点的第一控制模块接收发送缓存模块发来的数据帧的记录信息,创建待发队列表m_pktQueue(m_pktQueue满足能够容纳上层产生的数据的记录信息即
可)(待发队列表中的每一项包括:RecSize;RecTime;RecSeq;RecRetry),将收到的记录信
息录入到m_pktQueue中;
[0193] 2.3.7第i个边缘节点的发送缓存模块判断m_sequence进行处理;如果m_sequence=M,第i个边缘节点的发送缓存模块转2.3.2继续等待数据生成
模块发来的数据,同时第i个边缘节点的第一接收模块、第一帧解析模块、第一控制模块、第
一帧生成模块、第一发送模块转第三步与AP节点进行握手以传输数据。
[0194] 第三步,N个边缘节点按3.1~3.5步的流程并行尝试与AP节点进行第一次握手,同时AP节点按3.6~3.11步的流程扫描太赫兹无线信道,监控从哪个边缘节点收到Rts帧,若
收到第e(e为正整数,e≤N)个边缘节点的Rts帧,则与第e个边缘节点进行握手。N个边缘节
点握手方法相同,其中第e个边缘节点与AP节点进行握手的方法如3.1~3.5步所示。
[0195] 3.1第e个边缘节点的第一控制模块收到第e个边缘节点的发送缓存模块发来的数据帧的记录信息,将数据帧的记录信息中的RecSeq、RecSize、RecTime、RecRetry存入待发
队列表m_pktQueue,m_pktQueue的一个元素即为一个数据帧的记录信息。
[0196] 3.2第e个边缘节点的第一控制模块采用二进制退避算法开始退避,以避免多个边缘节点同时获取太赫兹信道访问权限而产生冲突,具体步骤如下:
[0197] 3.2.1确定基本退避时间,令端到端的往返时间为2t,2t也称为冲突窗口。2t取经验值66.6ns。
[0198] 3.2.2定义参数k,k与冲突次数有关,规定k不能超过10,且令k=Min(冲突次数,10),表示k取冲突次数和10中的最小值。在本方案中,冲突次数=RecRetry。
[0199] 3.2.3从离散的整数集合{0,1,2,……,(2k‑1)}中随机取出一个数,令为rr,令等待的时延=rr×2t。令剩余退避时间m_backoffRemain=等待的时延=rr×2t;
[0200] 3.2.4若冲突次数不超过5次,转3.3;若冲突次数超过5次,证明发送失败,边缘节点的第一控制模块找到3.1步生成的待发队列表m_pktQueue的首条记录信息,记录该数据
帧发送失败,并将该数据帧的记录信息从m_pktQueue中删除,转2.3.2。
[0201] 3.3第e个边缘节点的第一控制模块从m_pktQueue中选取第一个数据帧的信息,发送给第一帧生成模块,具体步骤如下:
[0202] 3.3.1如果m_pktQueue中的数据帧记录信息为空,转步骤2.3.2,否则转步骤3.3.2;
[0203] 3.3.2读取m_pktQueue中的第一个数据帧的记录信息,即令首个待发数据帧m_pktData为待发队列表的首个数据帧的信息;
[0204] 3.3.3检查m_pktData目的地址是否为广播地址,如果是,则发送待发队列表的首个数据帧,令sequence=待发队列表的首个数据帧的sequence,转5.1.3,否则执行3.3.4;
[0205] 3.3.4第一控制模块根据待发队列表m_pktQueue长度确定本轮通信要传输的数据帧个数m_tosend,即令m_tosend=待发队列表中元素的个数;
[0206] 3.3.5第一控制模块遍历待发队列表m_pktQueue,获取所有待发数据的总长度(即待发队列表中m_tosend个元素的长度之和),记为m_tosendlength;
[0207] 3.3.6第一控制模块计算传输所有待发数据的传输时间m_tosendTxduration,m_tosendTxduration=m_tosendlength/第e个边缘节点传输带宽(本方案要求带宽大于等于
100Gbps);
[0208] 3.3.7第一控制模块计算本轮通信的持续时间duration,duration=控制帧传输时间+控制帧传播时间+数据帧传输时间+数据帧传播时间,控制帧传输时间=控制帧长度
(17字节)×控制帧数量(Rts帧数量1+Cts帧数量1+Ack帧数量即m_tosend)/第e个边缘节点
传输带宽,控制帧传播时间=控制帧数量×帧传播时间(本方案中帧传播时间优选值为
33.3ns),数据帧传输时间=m_tosendTxduration,数据帧传播时间=数据帧数量m_tosend
×帧传播时间;
[0209] 3.3.8第一控制模块设定Cts超时时间=Rts传输时间(17字节/第e个边缘节点传输带宽)+Rts传播时间(帧传播时间×1)+Cts传输时间(17字节/第e个边缘节点传输带宽)+
Cts传播时间(帧传播时间×1),在Cts超时时间内如果未收到Cts,则令该序列号匹配的数
据帧的重传次数RecRetry=RecRetry+1,转3.2;同时,第一控制模块向第e个边缘节点的第
一帧生成模块传递发送构造Rts帧的指令,同时将待发队列的首个数据帧的记录信息与
3.3.7步计算出的duration发送给边缘节点的第一帧生成模块,转3.4;
[0210] 3.4第一帧生成模块构造Rts帧,具体步骤如下:
[0211] 3.4.1第一帧生成模块创建Rts帧(只包含帧头),并将第一控制模块发来的待发数据的记录信息填入Rts的头部,THzMacHeaderrtsHeader=THzMacHeader(m_address,
GetDestination,Rts,duration,sequence),其中THzMacHeaderrtsHeader指创建的是太赫
兹类型的Rts帧头,m_address为边缘节点地址(源地址),GetDestination为可获取数据帧
的目的地址,Rts指帧的类型为Rts帧,duration为3.3.7计算出的本轮通信持续时间,
sequence=第3.3.8步所述待发队列的首个数据帧的记录信息中的序列号;
[0212] 3.4.2第一帧生成模块将生成的Rts帧发送给第一发送模块;
[0213] 3.5第e个边缘节点的第一发送模块向物理层传输Rts帧。
[0214] 3.6 AP节点的定向天线旋转扫描太赫兹无线信道,监控是否收到Rts帧,并检查Rts帧来自哪个边缘节点,若收到来自第e个边缘节点的Rts帧,转3.7;若未收到任何Rts帧,
转3.6。
[0215] 3.7 AP节点的物理层从太赫兹无线信道接收第e个边缘节点发来的Rts帧,将该包传递给AP节点的第二接收模块;
[0216] 3.8 AP节点的第二接收模块传递Rts帧给第二帧解析模块;
[0217] 3.9 AP节点的第二帧解析模块从AP节点的第二接收模块接收Rts帧;
[0218] 3.10 AP节点的第二帧解析模块读取Rts帧中的信息并记录,其中包含源地址source、目的地址destination、类型type、持续时间duration;
[0219] 3.11 AP节点的第二帧解析模块将Rts帧记录的信息传递给AP节点的第二控制模块,完成第一次握手,转第四步。
[0220] 第四步,第e个边缘节点与AP节点进行第二次握手,方法是:
[0221] 4.1 AP节点的第二控制模块从AP节点的第二帧解析模块接收Rts帧的记录信息;
[0222] 4.2令第一时间t1=系统时间;AP节点的第二控制模块设定AP节点的天线转速为0,AP节点天线处于停止状态(AP节点能收到第e个边缘节点的Rts帧,即说明此时收发双方
定向天线的波束为对准状态),通信链路建立;
[0223] 4.3 AP节点的第二控制模块向第二帧生成模块传递发送Cts的指令和Rts帧的记录信息;
[0224] 4.4 AP节点的第二帧生成模块创建Cts帧,具体步骤如下:
[0225] 4.4.1 AP节点的第二帧生成模块创建Cts帧(内容部分为空,仅包含头部),根据Rts帧的记录信息填充Cts帧头部,即令THzMacHeaderctsHeader=THzMacHeader(source,
destination,Cts,duration),其中THzMacHeaderctsHeader指创建的是太赫兹类型的Cts
帧头,source为AP节点地址(源地址),destination为Cts帧的目的地址即为Rts帧的源地
址,Cts是指帧的类型为Cts,duration=0;
[0226] 4.4.2 AP节点的第二帧生成模块将序列号填充入该Cts帧,sequence=Rts帧的序列号;
[0227] 4.4.3 AP节点的第二帧生成模块将生成的Cts帧传递给AP节点的第二发送模块;
[0228] 4.5 AP节点的第二发送模块向物理层传输Cts帧,Cts帧经由太赫兹无线信道模块到达第e个边缘节点的物理层。
[0229] 4.6第e个边缘节点的物理层从AP节点的第二发送模块接收到Cts帧,将Cts帧传递给边缘节点的第一接收模块,
[0230] 4.7第e个边缘节点的第一接收模块将Cts帧传递给第一帧解析模块;
[0231] 4.8边缘节点的第一帧解析模块解析Cts帧,具体步骤如下:
[0232] 4.8.1第e个边缘节点的第一帧解析模块接收Cts帧,读取Cts帧中的信息并记录,得到Cts帧的记录信息,包含源地址source、目的地址destination、类型type、持续时间
duration,序列号sequence;
[0233] 4.8.2第e个边缘节点的第一帧解析模块将Cts帧的记录信息发送给第一控制模块,第二次握手完成,即第e个边缘节点收到了AP节点发送的Cts帧,转第五步。
[0234] 第五步,第e个边缘节点与AP节点进行数据传输,具体方法是:
[0235] 5.1第e个边缘节点向AP节点传输数据,具体步骤如下:
[0236] 5.1.1第e个边缘节点的第一控制模块将Cts帧的记录信息发送给第e个边缘节点的第一发送模块,并向第一发送模块传递“发送数据帧的指令”;
[0237] 5.1.2第e个边缘节点的第一发送模块读取Cts帧的记录信息的sequence;
[0238] 5.1.3第e个边缘节点的第一发送模块从发送缓存模块中读取与sequence相同的数据帧;
[0239] 5.1.4第e个边缘节点的第一发送模块修改该数据帧的持续时间字段,令duration=数据帧传输时间(数据帧长度/第e个边缘节点传输带宽)+数据帧传播时间(帧传播时间
×1)+Ack传输时间(17字节/第e个边缘节点传输带宽)+Ack传播时间(帧传播时间×1);
[0240] 5.1.5第e个边缘节点的第一发送模块向物理层传输与sequence一致的数据帧,数据帧经由太赫兹无线信道到达AP节点的物理层,转5.2;同时,第e个边缘节点的第一控制模
块设定确认帧超时事件,如果在duration时间内第一控制模块未收到第e个边缘节点的第
一帧解析模块发来的Ack帧的记录信息,则Ack帧超时,第一控制模块将该序列号匹配的数
据帧的重传次数增1,即令RecRetry=RecRetry+1,转3.2;如果在duration时间内收到第e
个边缘节点的第一控制模块发来的Ack帧的记录信息,则Ack帧未超时,转5.11;
[0241] 5.2 AP节点的物理层接收到该数据帧,将该包传递给AP节点的第二接收模块;
[0242] 5.3 AP节点的第二接收模块将从物理层收到的数据帧传递给AP节点的第二帧解析模块,第二帧解析模块对数据帧进行解析,方法是:
[0243] 5.3.1第二帧解析模块读取数据帧中的信息并记录,其中包含源地址source、目的地址destination、类型type、持续时间duration;
[0244] 5.3.2 AP节点的第二帧解析模块将数据帧的记录信息传递给AP节点的第二控制模块;
[0245] 5.4 AP节点的第二控制模块向AP节点的第二帧生成模块发送数据帧的记录信息,并向第二帧生成模块传递发送Ack的指令,转步骤5.8;同时,AP节点的第二控制模块向AP节
点的第二帧解析模块发送拆帧指令,转步骤5.5;
[0246] 5.5 AP节点的第二帧解析模块根据拆帧指令对从第二接收模块收到的数据帧拆除头部,将拆除了头部的数据帧发送给接收缓存模块。
[0247] 5.6接收缓存模块判断是否收到拆除了头部的数据帧,若收到,则对拆除了头部的数据帧进行存储,转5.7;若未收到拆除了头部的数据帧,接收缓存模块转5.6继续等待;
[0248] 5.7网络层及上层的第二数据处理模块读取接收缓存模块中的数据帧,根据用户要求进行处理(此时数据已到达AP节点的用户端,处理方式取决于具体的数据类型、数据来
源、用户要求,此处不做具体说明),处理完后转5.6。
[0249] 5.8 AP节点的第二帧生成模块创建Ack,具体步骤如下:
[0250] 5.8.1 AP节点的第二帧生成模块创建Ack,将数据帧头部信息填入Ack头部,令THzMacHeaderAckHeader=THzMacHeader(source,destination,Ack,duration),其中
THzMacHeaderAckHeader指创建的是太赫兹类型的Ack帧头,source为AP节点地址,
destination为数据帧记录信息中的源地址source,Ack是指包的类型为Ack,duration=0;
[0251] 5.8.2 AP节点的第二帧生成模块将序列号填充入该Ack帧,sequence为数据帧记录信息中的sequence;
[0252] 5.8.3 AP节点的第二帧生成模块将生成的Ack帧传递给AP节点的第二发送模块;
[0253] 5.9 AP节点的第二发送模块向物理层传输该Ack帧,Ack帧经由太赫兹无线信道模块到达第e个边缘节点的物理层。
[0254] 5.10第e个边缘节点的物理层接收到该Ack帧,将Ack帧传递给边缘节点的第一接收模块,
[0255] 5.11第e个边缘节点的第一接收模块将Ack帧传递给边缘节点的第一帧解析模块;
[0256] 5.12第e个边缘节点的第一帧解析模块对Ack帧进行解析,具体步骤如下:
[0257] 5.12.1第e个边缘节点的第一帧解析模块收到Ack后,读取Ack帧中的信息并记录,其中包含源地址source、目的地址destination、类型type、持续时间duration;
[0258] 5.12.2第e个边缘节点的第一帧解析模块将Ack帧的记录信息传递给第一控制模块,完成数据传输。
[0259] 5.13第e个边缘节点的第一控制模块遍历第三步生成的m_pktQueue,根据Ack帧的记录信息中的序列号找到m_pktQueue中与序列号符合的数据帧,记录该数据帧发送结果,
令have_send=have_send+1;
[0260] 5.14第e个边缘节点的第一控制模块判断已发送的数据帧数量是否小于要发送的数据帧数量,即判断have_send据待发,则令sequence=Ack帧的sequence+1,转5.1.3,传输下一个待发数据;否则,第e个
边缘节点的所有数据传输完成,第e个边缘节点转2.3,AP节点转5.15;
[0261] 5.15令第二时间t2=系统时间,若t2‑t1=duration,说明第e个边缘节点与AP节点的数据传输完成,AP节点的第二控制模块重新设置天线旋转速度TurningSpeed为r转每
秒,转2.1.8。