无线网络中建立无线链路的方法及装置与流程

文档序号:15744853发布日期:2018-10-23 22:57阅读:385来源:国知局
本申请涉及无线通信
技术领域
,特别涉及一种无线网络中建立无线链路的方法及装置。
背景技术
:在无线网状(Mesh)网络中分布多个无线设备,该多个无线设备为无线Mesh网络中的节点。近年来,随着全双工通信技术的发展,无线Mesh网络中的每个节点都可能与其他节点通过请求发送(RequesttoSend,RTS)RTS-允许发送(CleartoSend,CTS)握手过程建立无线链路并进行数据传输,该无线链路可以为半双工链路和全双工链路。其中,在全双工链路中,每个节点都可以在向其他节点发送信号的同时接收其他节点发送的信号。目前的全双工链路主要有两种:全双工对称链路和全双工非对称链路。在全双工对称链路中,第一节点向第二节点发送数据的同时也可以接收第二节点向第一节点发送的数据,当第一节点先于第二节点完成数据发送时,如果第一节点存在数据向其他节点发送,且第一节点向其他节点发送RTS,其他节点回复的CTS会影响到第一节点当前接收的数据,第一节点将继续发送忙音(busytone),该busytone用于提示其他节点当前时间第一节点处于忙碌状态,不能与其建立无线链路。在全双工非对称链路中,当第一节点存在数据向第二节点发送,且当前第一节点正在接收第三节点发送的数据时,第一节点可以向第二节点发送RTS,以建立第一节点到第二节点之间的无线链路,当第二节点接收到该RTS时,在确定自身的地址和该RTS中携带的接收机地址(ReceiverAddress,RA)一致时,且监听到当前媒体处于空闲状态时,第二节点将向第一节点回复CTS,该CTS会影响到第一节点接收第三节点发送的数据,为了避免当前向第一节点发送CTS时影响第一节点接收的数据,第二节点需要在第三节点完成数据发送之后向第一节点发送CTS。在非对称全双工链路中,当第二节点接收到第一节点发送的RTS时,第二节点需在第三节点完成向第一节点发送数据帧之后向第一节点发送CTS,导致第一节点在接收第三节点发送的数据帧的过程中不能和第二节点通过RTS-CTS握手过程建立无线链路,浪费了第一节点的发送资源。技术实现要素:为了解决非对称全双工链路中第一节点在接收第三节点发送的数据帧的过程中不能与第二节点通过RTS-CTS握手过程建立无线链路的问题,本申请提供了一种无线网络中建立无线链路的方法及装置。所述技术方案如下:第一方面,提供了一种无线网络中建立无线链路的方法,该无线网络中建立无线链路的方法应用于第一节点,所述方法包括:当存在数据向第二节点发送时,判断当前是否正在接收第三节点通过无速率编码发送的数据帧;如果当前正在接收所述第三节点发送的数据帧,则向所述第二节点发送第一类RTS,所述第一类RTS用于指示所述第一节点当前正在接收所述第三节点发送的数据帧且请求与所述第二节点建立第一类全双工链路;接收所述第二节点发送的第一类CTS,所述第一类CTS为所述第二节点接收到所述第一类RTS且确定当前媒体处于空闲状态时发送,所述第一类CTS用于指示所述第二节点允许所述第一节点向其发送数据帧;向所述第二节点发送第二类CTS,所述第二类CTS用于指示所述第一节点、所述第二节点和所述第三节点之间的第一类全双工链路已建立。在本发明实施例中,当第一节点当前正在接收第三节点通过无速率编码发送的数据帧,且存在数据帧向第二节点发送时,向第二节点发送第一类RTS,当第二节点接收到该第一类RTS时,由于第一节点当前接收第三节点的数据帧为无速率编码的数据帧,而通过无速率编码发送的数据帧允许被控制帧干扰,因此第一节点可以在接收数据帧的过程中,接收第三节点发送的第一类CTS,以建立第一节点和第二节点之间的无线链路,其中,第一类全双工链路为全双工非对称链路,解决了全双工非对称链路中第一节点不能和第二节点建立无线链路的问题,充分利用了第一节点的发送资源,同时提高了无线网络中的网络利用率。可选地,所述向所述第二节点发送第二类CTS之后,还包括:通过无速率编码向所述第二节点发送数据帧;当确定正确接收到所述第三节点发送的数据帧且当前处于向所述第二节点发送数据帧的状态时,在向所述第二节点发送的数据帧中插入向所述第三节点发送的正确接收确认(Acknowledgement,ACK),所述向所述第三节点发送的ACK中携带的RA为所述第三节点的地址。在本发明实施例中,当正确接收到第三节点发送的数据帧时,可以直接在向第二节点发送的数据帧中插入向第三节点发送的ACK,而不影响第二节点正确接收第一节点发送的数据帧。并且该ACK用于指示第三节点数据帧发送成功,当第三节点接收到第一节点发送的ACK时,终止向第一节点通过无速率编码发送数据帧。可选地,所述判断当前是否正在接收所述第三节点通过无速率编码发送的数据帧之后,还包括:如果当前没有正在接收所述第三节点发送的数据帧,则向所述第二节点发送第二类RTS,所述第二类RTS用于指示所述第一节点当前没有正在接收所述第三节点发送的数据帧且请求与所述第二节点建立第一类全双工链路;当接收到所述第二节点发送的第三类CTS时,向所述第二节点发送第四类CTS,所述第三类CTS为所述第二节点在接收到所述第二类RTS且当前正在向第四节点发送数据帧时发送,所述第三类CTS用于指示所述第二节点接收到所述第二类RTS,且当前正在接收所述第四节点发送的数据帧,所述第四类CTS用于指示第一节点为第一类全双工链路的首端,所述第四节点为第一类全双工链路的末端,所述第一类全双工链路的首端为在完成当前发送前不允许回复任何其他节点RTS的节点,所述第一类全双工链路的末端为在完成当前接收前不允许向任何其他节点发送RTS的节点;当接收到所述第二节点发送的第五类CTS时,根据当前媒体的状态,确定向所述第二节点发送的CTS的类型,所述第五类CTS为所述第二节点在接收到所述第二类RTS且确定当前存在数据帧向第一节点发送时发送,所述第五类CTS用于指示所述第二节点请求与所述第一节点建立第二类全双工链路。在本发明实施例中,当第一节点当前没有正在接收所述第三节点发送的数据帧时,通过第二类RTS、第二类CTS和第三类CTS可以与第二节点和第四节点建立全双工非对称链路,解决了第一节点不能与正在向第四节点发送数据帧的第二节点建立无线链路的问题,提高了无线网络中的网络利用率。另外,第一节点还可以通过第二类RTS和第五类CTS与第二节点建立第二类全双工链路,第二类全双工链路为全双工对称链路。可选地,所述当接收到所述第二节点发送的第五类CTS时,根据当前媒体的状态,确定向所述第二节点发送的CTS的类型,包括:当监听到当前媒体处于空闲状态时,向所述第二节点发送第六类CTS,所述第六类CTS用于指示当前允许第一节点接收所述第二节点发送的数据帧,以建立第一节点与所述第二节点之间的第二类全双工链路;当监听到当前媒体处于忙碌状态时,向所述第二节点发送第七类CTS,所述第七类CTS用于指示第一节点当前不能接收所述第二节点发送的数据帧。在本发明实施例中,通过第六类CTS和第七类CTS可以及时通知第二节点第一节点能否接收其发送的数据帧,避免向暴露节点发送数据,引起干扰。可选地,所述向所述第二节点发送第六类CTS之后,还包括:通过无速率编码向所述第二节点发送数据帧并接收所述第二节点通过无速率编码发送的数据帧;当确定正确接收到所述第二节点发送的数据帧且当前处于向所述第二节点发送数据帧的状态时,在向所述第二节点发送的数据帧中插入向所述第二节点发送的ACK,其中,向所述第二节点发送的ACK中携带的RA为所述第二节点的地址。在本发明实施例中,当第一节点和第二节点建立全双工对称链路之后,当第一节点先于第二节点正确接收到数据帧时,可以在向第二节点发送的数据帧中插入ACK,避免第一节点不能发送ACK,而浪费了第二节点的发送资源。可选地,所述判断当前是否正在接收第三节点通过无速率编码发送的数据帧之后,还包括:如果当前正在接收所述第三节点发送的数据帧,判断所述第三节点发送的数据帧中是否存在冲突的帧,所述冲突的帧包括RTS、CTS和ACK;当确定所述第三节点发送的数据帧中存在所述冲突的帧时,确定所述冲突的帧的开始位置和结束位置;根据所述冲突的帧的开始位置和结束位置,将所述冲突的帧从所述数据帧中移除,合并移除所述冲突的帧后的数据帧,并解码所述冲突的帧和移除所述冲突的帧后的数据帧,或者,将所述数据帧中的所述冲突的帧置零,并解码将所述冲突的帧置零后的数据帧。由于第三节点通过无速率编码发送数据帧,因此,第一节点接收到的第三节点发送的数据帧中可能还存在冲突的帧,为了得到解码正确的数据帧,在将数据帧解码之前,需要先将包括冲突的帧的数据帧进行处理,以获取不包括冲突的帧的数据帧。可选地,所述判断所述第三节点发送的数据帧中是否存在冲突的帧,包括:当在所述第三节点发送的数据帧中检测到前导序列时,确定所述第三节点发送的数据帧中存在所述冲突的帧;相应地,所述确定所述冲突的帧的开始位置和结束位置,包括:从所述第三节点发送的数据帧中检测物理包头,根据检测到的前导序列和物理包头,确定所述冲突的帧的开始位置和结束位置;或者,从所述第三节点发送的数据帧中检测第二序列,根据检测到的前导序列和第二序列,确定所述冲突的帧的开始位置和结束位置,所述第二序列用于指示所述冲突的帧的结束位置,所述第二序列为物理层对所述冲突的帧封装时添加在所述冲突的帧的尾部的序列。在本发明实施例中,通过前导序列确定冲突的帧的开始位置,通过第二序列或物理包头可以确定冲突的帧的结束位置,以便对存在冲突的帧的数据帧进行处理。可选地,所述判断所述第三节点发送的数据帧中是否存在冲突的帧,包括:当在所述第三节点发送的数据帧中检测到第一序列时,确定所述第三节点发送的数据帧中存在所述冲突的帧,所述第一序列用于指示所述冲突的帧的开始位置,所述第一序列为物理层对所述冲突的帧封装时添加在所述冲突的帧的头部的序列;相应地,所述确定所述冲突的帧的开始位置和结束位置,包括:从所述第三节点发送的数据帧中检测物理包头,根据检测到的第一序列和物理包头,确定所述冲突的帧的开始位置和结束位置;或者,从所述第三节点发送的数据帧中检测第二序列,根据检测到的第一序列和第二序列,确定所述冲突的帧的开始位置和结束位置。在本发明实施例中,通过第一序列可以确定冲突的帧的开始位置,无需通过前导序列来确定冲突的帧的开始位置,由于第一序列为物理层对冲突的帧封装时添加在冲突的帧的头部的序列,增强了检测数据帧中是否存在冲突的帧的准确性。可选地,所述第一类RTS、所述第二类RTS、所述第一类CTS、所述第二类CTS、所述第三类CTS、所述第四类CTS、所述第五类CTS、所述第六类CTS、所述第七类CTS和所述ACK中的每一个均包括第一序列、第二序列和第三序列中的至少一个,所述第三序列用于指示携带的RA。由于第三序列用于指示携带的RA,因此,第一节点无需解调RTS、CTS和ACK中的MAC(MediumAccesscontrol,媒体接入控制)头,通过该第三序列即可确定RA。可选地,所述第一类RTS、第二类CTS、第四类CTS、第五类CTS和第七类CTS均还包括类型标记符和子类型标记符,所述类型标记符和所述子类型标记符用于指示对应请求的类型。由于第一类RTS、第二类CTS、第四类CTS、第五类CTS和第七类CTS为本发明实施例新定义的五类控制帧,因此需要通过类型标记符和子类型标记符区分这五种控制帧。可选地,所述第五类CTS还包括长度信息,所述长度信息用于指示所述第二节点向第一节点发送的数据帧的长度。由于第五类CTS用于第一节点和第二节点之间建立全双工对称链路,因此第五类CTS还包括长度信息。可选地,所述无速率编码为spinal编码。在本发明实施例中,无速率编码为Spinal编码,便于对包括冲突的帧的数据帧进行处理。第二方面,提供了一种无线网络中建立无线链路的装置,所述无线网络中建立无线链路的装置具有实现上述第一方面中无线网络中建立无线链路的方法行为的功能。该无线网络中建立无线链路的装置包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的无线网络中建立无线链路的方法。第三方面,提供了一种无线网络中建立无线链路的装置,所述无线网络中建立无线链路的装置的结构中包括处理器和存储器,所述存储器用于存储支持无线网络中建立无线链路的装置执行上述第一方面所提供的无线网络中建立无线链路的方法的程序,以及存储用于实现上述第一方面所提供的无线网络中建立无线链路的方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。第四方面,本发明实施例提供了一种计算机存储介质,用于储存为上述第二方面所提供的无线网络中建立无线链路的装置所用的计算机软件指令,或存储用于执行上述第三方面为无线网络中建立无线链路的装置所设计的程序。上述本发明实施例第二方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。在本申请中,当第一节点当前正在接收第三节点通过无速率编码发送的数据帧,且存在数据帧向第二节点发送时,向第二节点发送第一类RTS,当第二节点接收到该第一类RTS时,由于第一节点当前接收第三节点的数据帧为通过无速率编码发送的数据帧,而通过无速率编码发送的数据帧允许被控制帧干扰,因此第一节点可以在接收数据帧的过程中,接收第三节点发送的第一类CTS,以建立第一节点和第二节点之间的无线链路,解决了全双工非对称链路中第一节点不能和第二节点通过RTS-CTS握手过程建立无线链路的问题,充分利用了第一节点的发送资源,同时提高了无线网络中的网络吞吐量。附图说明图1是本发明实施例提供的一种无线网络中建立无线链路的系统示意图;图2A是本发明实施例提供的一种网络设备的结构示意图;图2B为本发明实施例提供的第一类RTS、第二类CTS、第四类CTS、第五类CTS和第七类CTS的格式示意图;图3A是本发明实施例提供的一种无线网络中建立无线链路的方法流程图;图3B是本发明实施例提供的一种具有增强格式的控制帧的格式示意图;图3C是本发明实施例提供的一种全双工非对称链路的建立过程示意图;图3D是本发明实施例提供的另一种全双工非对称链路的建立过程示意图;图3E是本发明实施例提供的一种全双工对称链路的建立过程示意图;图3F是本发明实施例提供的一种仿真结果对比图;图4是本发明实施例提供的一种无线网络中建立无线链路的装置框图。具体实施方式下面将结合附图对本申请实施方式作进一步地详细描述。图1是本发明实施例提供的一种无线网络中建立无线链路的系统示意图,如图1所示,该无线网络中建立无线链路的系统包括节点101、节点102、节点103、节点104、节点105、节点106、节点107、节点108和节点109。其中,圆1表示节点105的发送范围或接收范围,圆2表示节点108的发送范围或接收范围,圆3表示节点104的发送范围或接收范围,圆4表示节点101的发送范围或接收范围,圆5表示节点103的发送范围或接收范围,需要说明的是,在本发明实施例中,无线网络中每个节点的接收范围和发送范围其实是同一范围,该发送范围或接收范围是根据该节点当前处于发送信号状态或接收信号状态而定。在图1所示的系统中,节点101、节点102和节点103可以建立全双工非对称链路,其中,节点103为该全双工非对称链路的首端,节点102为该全双工非对称链路的末端,也即节点103向节点101发送数据的同时节点101向节点102发送数据。需要说明的是,当节点101、节点102和节点103已建立如图1所示的全双工非对称链路时,为了避免节点103接收到的数据被节点101发送的数据干扰,节点103将不再接收其他节点发送的数据;同样,为了避免节点102发送的数据干扰节点101接收数据,节点102将不再向其他节点发送数据。另外,在图1所示的系统中,节点104和节点105之间可以建立全双工对称链路,也即节点104向节点105发送数据的同时节点105也向节点104发送数据。需要说明的是,当节点104和节点105互相发送数据时,为了避免节点104和节点105在接收数据时被其他节点发送的数据干扰,节点104的发送范围内的节点106将不能与节点104建立无线链路,节点105发送范围内的节点107将不能与节点105建立无线链路,但是节点105发送范围之外的节点108和节点109之间可以建立无线链路,如图1所示,节点108可以建立向节点109发送数据帧的单向传输链路。需要说明的是,本发明实施例提供的无线网路中建立无线链路的系统包括多个节点,在图1中,仅以节点101、节点102、节点103、节点104、节点105、节点106、节点107、节点108和节点109为例进行说明。并且,该无线网络中的数据传输系统中各个节点均为网络设备,且构成无线网络中各个节点的网络设备均具有路由收发功能,该网络设备可以为手机、电脑或路由器等,本发明实施例在此不做具体限定,在图1中,仅以节点101为手机,节点102、节点105、节点106、节点107和节点109为电脑,节点103、节点104和节点108为路由器为例进行说明。另外,在无线网络中建立无线链路的系统中,每个节点的发送范围或接收范围内都可能存在至少一个节点,在本发明实施例中,仅以图1所示的发送范围或接收范围内的节点为例进行说明。图2A是本发明实施例提供的一种网络设备的结构示意图,该网络设备可以为图1所示路由器、手机或电脑等设备,也即图1所示的节点101、节点102、节点103、节点104、节点105、节点106、节点107、节点108和节点109均具备图2A所示的网络设备的结构。如图2A所示,该网络设备包括:发射机201、接收机202、存储器203和处理器204。其中,发射机201可以用于发送数据和/或信令等。接收机202可以用于接收数据和/或信令等。其中,存储器203可以用于存储一个或多个软件程序和/或模块。存储器203可以是只读存储器(Read-onlyMemory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、电可擦可编程只读存储器(ElectricallyErasableProgrammableRead-OnlyMemory,EEPROM)、只读光盘(CompactDiscRead-OnlyMemory,CD-ROM)、磁盘存储介质,或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由集成电路存取的任何其它介质,但不限于此。其中,处理器204可以是一个通用中央处理器(CentralProcessingUnit,CPU)、微处理器、特定应用集成电路(Application-SpecificIntegratedCircuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。处理器204可以通过运行存储在存储器203内的软件程序和/或模块,以及调用存储在存储器203内的数据,来实现下述图3A实施例所提供的无线网络中建立无线链路的方法。为了后续便于说明,在对本发明实施例提供的无线网络中建立无线链路的方法进行说明之前,先对本发明实施例涉及的名词以及三次握手过程进行介绍,也即,在本发明实施例中,无线网络中的两个节点建立无线链路是通过三次握手过程完成,而非通过两次握手也即发送RTS和接收CTS过程完成。具体地,第一次握手:当第一节点存在数据帧向第二节点发送时,第一节点向第二节点发送第一类控制帧;第二次握手:当第二节点接收到第一节点发送的第一类控制帧时,且确定第一类控制帧中携带的TA和自身地址一致时,向第一节点发送第二类控制帧,当第二节点确定第一类控制帧中携带的TA和自身地址不一致时,为了避免第二节点向其他节点发送RTS对第一节点接收CTS造成干扰,第二节点需根据接收到的第一类控制帧中的数据帧占用时长(Duration)延迟向其他节点发送RTS;第三次握手:当第一节点接收到第二节点发送第二类控制帧时,向第二节点发送第三类控制帧。其中,第一节点发送的第三类控制帧用于将第一节点的当前状态提示给其发送范围内的其他节点,避免其发送范围的其他节点与第一节点建立无线链路而影响第一节点和第二节点之间进行数据传输;第二节点发送的第二类控制帧也用于将第二节点的当前状态提示给其发送范围内的其他节点,避免其发送范围内的其他节点与第二节点建立无线链路而影响第二节点和第一节点之间进行数据传输。由此可知,在本发明实施例中,当无线网络中的两个节点通过三次握手过程建立无线链路时,将使用到更多的控制帧,而现有的控制帧的类型已经不能满足三次握手机制的需要,因此在本发明实施例中,如表1所示,重新定义了三次握手过程中的控制帧,包括:第一类RTS、第二类RTS、第一类CTS、第二类CTS、第三类CTS、第四类CTS、第五类CTS、第六类CTS、第七类CTS和ACK。其中,第一类RTS和第二类RTS应用于第一次握手过程,第一类CTS、第三类CTS和第五类CTS应用于第二次握手过程,第二类CTS、第四类CTS、第六类CTS和第七类CTS应用于第三次握手。也即,第一类RTS和第二类RTS为上述第一类控制帧,第一类CTS、第三类CTS和第五类CTS为上述第二类控制帧,第二类CTS、第四类CTS、第六类CTS和第七类CTS为上述第三类控制帧。针对上述三次握手过程中重新定义的控制帧,各类RTS或CTS对应的功能如下表1所示。第一类RTS用于全双工非对称链路中第一接收者向第二接收者发送的传输请求,其中,第一接收者为正在接收其他节点发送数据帧且当前存在数据帧向第二接收者发送的节点,第二接收者为待接收第一接收者发送的数据帧的节点,且第二接收者为全双工非对称链路的末端,在当前接收没有结束前,不能向其他节点发起RTS。第二类RTS用于节点欲建立无线链路时发送的传输请求,该节点当前并没有接收其他节点发送的数据帧;第一类CTS用于回复发送端发送的第一类RTS并指示同意接收发送端发送的数据帧,其中,发送端为发送第一类RTS的节点。第三类CTS用于回复发送端发送的第二类RTS,并指示当前正在向其他节点发送数据帧且同意接收发送端发送的数据帧。第五类CTS用于回复发送端发送的第二类RTS,并指示当前存在数据帧向发送端发送且同意接收发送端发送的数据帧。第二类CTS用于发送端回复第一类CTS,且用于通知接收端以及周边节点此时发送端已经是一个接收端,将建立全双工非对称链路,其中,接收端为接收到RTS的节点。第四类CTS用于发送端回复第三类CTS,且用于通知周边节点此时接收端没有数据帧向发送端发送。第六类CTS用于发送端回复第五类CTS,且用于指示发送端同意建立全双工对称链路。第七类CTS用于发送端回复第五类CTS,且用于通知接收端及周边节点此时发送端为暴露节点,无法接收端发送的数据帧。表1值得注意的是,IEEE802.11协议中定义现有的控制帧格式包括类型标记符(Subtype),该类型标记符为4bit的值,通过不同的4bit值的类型标记符可以区分不同的控制帧,而4bit的类型标记符可以用来指示16种不同的帧,其中有9种不同的4bit值(从0111到1111)在现有的协议中已经被用来区分不同的控制帧,仅剩四个值(从0000到0011)未做定义,因此可以使用上述四个未定义的值来定义本发明实施例中使用到的控制帧,但是由于本发明实施例至少使用到上述表1中的九种控制帧,因此上述四个未定义的值无法满足本发明实施例的需要。如果在本发明实施例中仅通过类型标记符来区分不同的控制帧,则需要扩展引入更多bit位数的类型标记符来区分本发明实施例中的控制帧。另外,由于本发明实施例中使用到的控制帧的类型较多,过多不同类型的控制帧的引入,将导致协议兼容性不好,对协议影响过大,因此,在本发明实施例中,可以采用两级指示的方法确定控制帧的类型,也即,通过第一标记符和第二标记符共同确定控制帧的类型,其中第一标记符可以为类型标记符,第二标记符可以为子类型标记符(FullDuplex-type,FD-type)或者由其他的保留比特来表示,各个控制帧的类型标记符和子类型标记符可以通过不同的bit值区分。在一种可能的实现方式中,上述表1中某些控制帧可以复用国际电工电子工程协会无线局域网标准(InstituteofElectricalandElectronicsEngineers802.11,IEEE802.11)协议中已经定义的控制帧RTS,CTS,ACK的subtype类型。例如,由于第二类RTS的功能和目前IEEE802.11协议中RTS的功能类似。而第一类CTS、第三类CTS,第六类CTS的功能除了收到的控制帧类型不同,都是允许发送,和目前IEEE802.11协议中CTS的功能类似。因此,第二类RTS复用IEEE802.11中RTS的帧格式,第一类CTS、第三类CTS、第六类CTS复用IEEE802.11中CTS的帧格式。另外,本发明实施例中的ACK也可以复用IEEE802.11中ACK的帧格式。而第一类RTS、第二类CTS、第四类CTS、第五类CTS和第七类CTS,表征的状态也即对应的功能在IEEE802.11协议中不存在,需要引入新的控制帧格式。因此,本发明实施例还提供了第一类RTS、第二类CTS、第四类CTS、第五类CTS和第七类CTS的格式。其中,第一类RTS、第二类CTS、第四类CTS、第五类CTS和第七类CTS均包括类型标记符和子类型标记符,其中,类型标记符和子类型标记符用于指示对应请求的类型。由于在IEEE802.11中针对每个控制帧,在控制帧中的帧控制域(Framecontrol)中包括类型标记符,类型标记符通过4bit的值(从0111到1111)来区分不同的控制帧如RTS、CTS和ACK,而保留了四个值(从0000到0011)未作定义。因此,在本发明实施例中,可以利用上述四个值中的一个来定义第一类RTS、第二类CTS、第四类CTS、第五类CTS和第七类CTS的类型标记符。表2为本发明实施例提供的一种三次握手机制中的控制帧的类型标记符表,如表2所示,IEEE802.11已经定义了第一类RTS、第一类CTS、第三类CTS、第六类CTS和ACK的类型标记符,在本发明实施例中仍保留这些控制帧的类型标记符,并从上述四个值(从0000到0011)中选择一个值0011作为第二类RTS、第二类CTS、第四类CTS、第五类CTS和第七类CTS的类型标记符。表2当采用两级指示的方法确定控制帧的类型时,表明可能存在多个控制帧的第一标记符相同,此时该多个控制帧需要通过第二标记符来区分,也即,第二标记符为预设bit值,通过不同的预设bit值区分该多个控制帧。例如,在表2中,第一类RTS、第二类CTS、第四类CTS、第五类CTS和第七类CTS的类型标记符相同,因此,还需要通过子类型标记符区分第一类RTS、第二类CTS、第四类CTS、第五类CTS和第七类CTS,例如,在这五种控制帧中添加长度为1byte的子类型标记符,该长度为1byte的子类型标记符可以用来区分第一类RTS、第二类CTS、第四类CTS、第五类CTS和第七类CTS。图2B为本发明实施例提供的第一类RTS、第二类CTS、第四类CTS、第五类CTS和第七类CTS的格式示意图,其中Framecontrol为帧控制区域,该帧控制区域包括类型(type)和类型标记符,该类型和类型标记符字段用于指示该帧的类型,数据帧占用时长(Duration)用于待接收或发送的数据帧占用信道的时长,RA用于指示该控制帧中携带的RA,发射机地址(TransmitterAddress,TA)用于指示该控制帧中携带的TA,FD-type用于指示该控制帧的子类型标记符,帧校验序列(framechecksequence,FCS)用于指示接收到该控制帧的节点检查该控制帧的完整性,数据帧大小(Packetsize)用于指示待发送的数据帧的长度信息,也即待发送的数据帧将占用信道的时长,如图2B所示,子类型标记符为8bit的字段,其中第一类RTS的子类型标记符为00000001,第二类CTS的子类型标记符为00000101,第四类CTS的子类型标记符为00000011,第五类CTS的子类型标记符为00000010,第七类CTS的子类型标记符为00000100。需要说明的是,为了设置控制帧中的Duration和PacketSize,工程中通常采用估计到的信道条件和待传输的数据大小确定估计的数据帧时长。图3A是本发明实施例提供的一种无线网络中建立无线链路的方法流程图,该无线网络中建立无线链路的方法应用于第一节点,如图3A所示,该无线网络中建立无线链路的方法包括以下几个步骤:步骤301:当第一节点存在数据向第二节点发送时,判断当前是否正在接收第三节点通过无速率编码发送的数据帧。在本发明实施例中,无线网络中的每个节点在向其他节点发送数据帧的同时可以接收其他节点发送的数据帧,也即无线网络中的每个节点的发送资源和接收资源可以同时被使用。为了便于说明,将无线网络中的任一满足状态的节点称为第一节点,也即,本发明实施例提供的无线网络中建立无线链路的方法适应于无线网络中的任一节点。值得注意的是,当第一节点存在数据帧向第二节点发送时,第一节点当前是否正在接收第三节点发送的数据帧,决定了第一节点向第二节点发送的控制帧的类型,因此,当第一节点存在数据帧向第二节点发送时,第一节点需先判断当前是否正在接收第三节点发送的数据帧。当第一节点当前正在接收第三节点发送的数据帧时,执行步骤302;当第一节点当前没有正在接收第三节点发送的数据帧时,执行步骤307。例如,在图1所示的系统中,当节点101存在数据帧向节点102发送数据时,若当前节点101正在接收103发送的数据帧,执行步骤302;若当前节点101没有正在接收节点103发送的数据帧,执行步骤307。其中,第一节点通过无速率编码发送数据帧,为了后续便于说明,在此对无速率编码进行简单介绍。当第一节点通过无速率编码向第二节点发送数据帧时,第一节点不设定固定码率,而是将待发送的信息以指定方式源源不断的产生编码后的数据帧,并将编码后的数据帧发送出去。第二节点在接收到这些数据帧后,尝试解码,如果解码失败,第二节点将继续接收数据帧,然后继续尝试解码,直至解码成功。当解码成功时,第二节点只需向第一节点发送ACK,第二节点发送的ACK用于提示第一节点数据帧发送成功。当第一节点接收到第二节点发送的ACK时,停止通过无速率编码发送数据帧,完成数据传输过程。此时,第一节点实际进行数据传输的码率取决于实际发送的数据帧长度,而需要发送的数据帧长度则取决于当前的信道状况,因此该编码方法称为无速率编码。由此可知,第二节点在解码第一节点发送的数据帧的过程中,如果解码失败,第二节点可以尝试继续接收第一节点发送的数据帧,直至解码成功,因此第二节点接收的通过无速率编码发送的数据帧中允许存在短而严重的干扰。而在无线网络中,各个节点之间除了进行数据帧的传输,还可以进行控制帧的传输,并且控制帧的长度较短,因此,第一节点发送的数据帧可以被其他节点发送的控制帧干扰。另外,由于控制帧通常用于发送指令,发送控制帧的目标信噪要求满足信噪比特别低的情况,而通过无速率编码发送比较适合信噪比较高的情况,因此,在本发明实施例中,控制帧仍然采用固定码率编码。当本发明实施例中采用固定码率编码的控制帧中存在严重干扰时,将导致解码该控制帧失败,因此采用固定码率编码的控制帧中不允许存在其他控制帧的干扰。也即,在本发明实施例中,数据帧可以和控制帧之间形成冲突,但是数据帧和数据帧之间,以及控制帧和控制帧之间不能形成冲突。在本发明实施例中,由于数据帧可以和控制帧形成冲突,也即第一节点在接收数据帧的同时,可能还接收到控制帧,由于该控制帧对该数据帧造成冲突,因此,该控制帧也称为冲突的帧。在本发明实施例中,为了便于第一节点快速检测出该控制帧,发送控制帧的节点在发送控制帧时,可以对该控制帧进行处理,得到具有增强格式的控制帧。其中,具有增强格式的控制帧可以通过在该控制帧中添加序列实现。在一种可能的实现方式中,具有增强格式的控制帧包括第一序列、第二序列和第三序列。其中,第一序列用于指示该控制帧的开始位置,第一序列为物理层对控制帧封装时添加在控制帧的头部的序列,当Mesh网络中的节点在接收到的数据帧中检测到第一序列时,确定存在冲突的帧;第二序列用于指示该控制帧的结束位置,第二序列为物理层对该控制帧封装时添加在该控制帧的尾部的序列,当控制帧中包括第二序列时,接收到该控制帧的节点无需对该控制帧的MAC包解调,即可确定该控制帧的长度;第三序列用于指示携带的RA。当控制帧包括第三序列时,接收到该控制帧的节点无需对该控制帧的MAC包解调,即可通过第三序列确定该控制帧的RA。另外,第三序列为通过hash函数产生的可以映射RA的序列,该第三序列比实际的RA地址采用的48bit的序列短。另外,第一序列可以为伪随机(PseudorandomNoise,PN)序列,格雷互补(Golaycomplementarysequence)序列,或者ZC(Zadoff–Chu)序列等。可选地,第一序列还可以用于指示该控制帧的类型,也即第一序列可以通过其包括的第四序列的个数或第四序列的类型来指示该控制帧的类型。具体地,第一序列指示该控制帧的类型可以分为以下两种情况。第一种情况,第一序列包括至少一个第四序列,当至少一个第四序列的个数为第一预设个数时,该控制帧为RTS,当该至少一个第四序列的个数为第二预设个数时,该控制帧不是RTS。其中,第一预设个数和第二预设个数为预先设置的个数,该第一预设个数和第二预设个数可以为1、2或3等。第二种情况,当第一序列包括一个第四序列,当该一个第四序列的类型为第一预设类型时,该控制帧为RTS,当该一个第四序列的类型为第二预设类型时,该控制帧不是RTS。其中,第一预设类型的第四序列和第二预设类型的第四序列的互相关性较小。值得注意的是,控制帧可以同时包括第一序列、第二序列和第三序列,还可以仅包括第二序列、或者仅包括第二序列和第三序列,也可以仅包括第一序列。也即,在本发明实施例中,控制帧可以包括第一序列、第二序列和第三序列中的一个或多个,本发明实施例在此不做具体限定。例如,图3B是本发明实施例提供的一种具有增强格式的控制帧的格式示意图,如图3B所示,该具有增强格式的控制帧包括第一序列Ω、第二序列P(t)、第三序列θ和原始控制帧(Controlframe)。其中,第一序列Ω用于指示该控制帧的开始位置,且第一序列Ω为物理层在对该控制帧进行封装时添加在该控制帧的头部,第一序列Ω还可通过包括的第四序列的个数和类型来指示该控制帧的类型;第二序列P(t)用于指示该控制帧携带的RA;第三序列θ用于指示该控制帧的结束位置,且第三序列θ为物理层在对该控制帧进行封装时添加在该控制帧的尾部。其中原始控制帧可以包括前导序列,物理头和媒体接入控制协议数据单元MPDU(Mediaaccesscontrolprotocoldataunit),其中,MPDU可以包括MAC(Mediaaccesscontrol)头和一个或多个MSDU(MACServicedataunit)。值得注意的是,在本发明实施例中,当控制帧中包括第一序列、第二序列和第三序列时,第一序列和第二序列均可以包括多个序列,也即,在本发明实施例中,可以通过第一序列包含的序列的个数和第二序列包含的序列个数,区分不同的控制帧。例如,表2为本发明实施例提供的一种具有增强格式的部分控制帧的格式,如表3所示,可以通过在第一类RTS、第二类RTS、第一类CTS、第三类CTS、第五类CTS和ACK中添加不同数量的第一序列Ω、第二序列P(t)和第三序列θ,以形成具有增强格式的第一类RTS、第二类RTS、第一类CTS、第三类CTS、第五类CTS和ACK。需要说明的是,在本发明实施例中,第三次握手中使用到的控制帧如第二类CTS、第四类CTS、第六类CTS和第七类CTS可以为增强格式的控制帧,也可以不是增强格式的控制帧。表3另外,现有的控制帧的传输格式本可以承受一定的程度的干扰,因此,为了减轻系统负载,控制帧也可以不包括第一序列、第二序列和第三序列中的任一个。当控制帧不包括第一序列、第二序列和第三序列中的任一个时,由控制帧中的其他部分代替序列的功能,也即,当控制帧中不包括第一序列时,由控制帧中的前导序列代替第一序列的功能,也即,当Mesh网络中的节点在接收到的数据帧中检测到前导序列时,确定其接收到的数据帧中存在冲突的帧,并且该前导序列还可以指示该冲突的帧的开始位置。当控制帧中不包括第二序列时,可以通过解调该控制帧的MAC包确定该控制帧的长度,然后根据该控制帧的前导序列和该控制帧的长度,确定该控制帧的结束位置。当控制帧中不包括第三序列时,可以解调该控制帧的MAC包来确定该控制帧的RA。另外,当控制帧中不包括第一序列时,可以通过解调该控制帧的MAC包获取该控制帧的类型。步骤302:如果第一节点当前正在接收第三节点发送的数据帧,则向第二节点发送第一类RTS,第一类RTS用于指示第一节点请求与第二节点建立第一类全双工链路。其中,第一类全双工链路为全双工非对称链路,当第一节点当前正在接收第三节点发送的数据帧时,表明第一节点欲建立全双工非对称链路,此时第一节点向第二节点发送第一类RTS。需要说明的是,由于在本发明实施例中,数据帧和控制帧之间可以形成冲突,因此,在第一节点接收第三节点发送的数据帧的过程中,第一节点可能还接收到其他节点发送的控制帧,也即,第一节点接收到的数据帧中可能存在冲突的帧。由于控制帧包括RTS、CTS和ACK三类控制帧,该三类控制帧分别用于请求发送,允许发送和确认发送成功,因此,该冲突的帧也包括本发明实施例的三次握手机制中的控制帧,包括第一类RTS、第二类RTS、第一类CTS、第二类CTS、第三类CTS、第四类CTS、第五类CTS、第六类CTS、第七类CTS和ACK。当第一节点接收的数据帧中存在冲突的帧时,为了确保第一节点可以正确解码接收到的数据帧,第一节点需要对存在冲突的帧的数据帧进行处理,其中,第一节点对存在冲突的帧的数据帧进行处理可以通过以下三个步骤实现。(1)如果当前正在接收第三节点发送的数据帧,判断第三节点发送的数据帧中是否存在冲突的帧。具体的,第一节点判断第三节点发送的数据帧中是否存在冲突的帧可以通过如下两种可能的实现方式。第一种可能的实现方式,当在第三节点发送的数据帧中检测到前导序列时,确定第三节点发送的数据帧中存在冲突的帧。在第一种可能的实现方式中,发送冲突的帧的节点在发送冲突的帧的过程中,没有对该冲突的帧做任何处理,也即在将该冲突的帧进行封装时只在该冲突的帧的头部加入前导序列,该前导序列用于识别该冲突的帧。因此,当第一节点在第三节点发送的数据帧中检测到前导序列时,确定该第三节点发送的数据帧中存在冲突的帧。第二种可能的实现方式,当在第三节点发送的数据帧中检测到第一序列时,确定第三节点发送的数据帧中存在冲突的帧。在第二种可能的实现方式中,为了使该冲突的帧容易被检测到,发送该冲突的帧的节点在发送该冲突的帧时,在物理层对冲突的帧封装时在冲突的帧的头部添加第一序列,第一序列用于指示该冲突的帧的开始位置,当第一节点在第三节点发送的数据帧中检测到第一序列时,确定第三节点发送的数据帧中存在冲突的帧。(2)当确定第三节点发送的数据帧中存在冲突的帧时,确定冲突的帧的开始位置和结束位置。当第一节点确定第三节点发送的数据帧中存在冲突的帧时,为了便于后续解码过程中对该冲突的帧进行处理,第一节点需要先确定该冲突的帧的开始位置和结束位置。由于在步骤(1)中,判断第三节点发送的数据帧中是否存在冲突的帧有两种可能的实现方式,相应地,第一节点确定该冲突的帧的开始位置和结束位置也有两种可能的实现方式。第一种可能的实现方式,当第一节点在第三节点发送的数据帧中检测到前导序列,且确定第三节点发送的数据帧中存在冲突的帧时,从第三节点发送的数据帧中检测物理包头,根据检测到的前导序列和物理包头,确定冲突的帧的开始位置和结束位置;或者,从第三节点发送的数据帧中检测第二序列,根据检测到的前导序列和第二序列,确定冲突的帧的开始位置和结束位置。针对步骤(1)中判断第三节点发送的数据帧中是否存在冲突的帧的第一种可能的实现方式,由于前导序列位于该冲突的帧的头部,因此前导序列可以指示该冲突的帧的开始位置。而该冲突的帧的物理包头包括传输速率和传输时长等信息,因此,通过该冲突的帧的传输速率和传输时长,第一节点可以间接确定该冲突的帧的长度,并根据该冲突的帧的前导序列和该冲突的帧的长度,确定该冲突的帧的结束位置。另外,由于该冲突的帧为控制帧的一种,发送该冲突的帧的节点在物理层对该冲突的帧封装时可以在该冲突的帧的尾部添加第二序列,该第二序列可以指示该冲突的帧的结束位置,当第一节点检测到第二序列时,直接确定该冲突的帧的结束位置,无需通过物理包头间接确定该冲突的帧的结束位置。第二种可能的实现方式,当第一节点在第三节点发送的数据帧中检测到第一序列,且确定第三节点发送的数据帧中存在冲突的帧时,从第三节点发送的数据帧中检测物理包头,根据检测到的第一序列和物理包头,确定该冲突的帧的开始位置和结束位置;或者,从第三节点发送的数据帧中检测第二序列,根据检测到的第一序列和第二序列,确定该冲突的帧的开始位置和结束位置。针对步骤(1)中判断第三节点发送的数据帧中是否存在冲突的帧的第二种可能的实现方式,由于第一序列用于指示该冲突的帧的开始位置,第二序列用于指示该冲突的帧的结束位置,因此,第一节点通过第一序列和物理包头可以确定该冲突的帧的开始位置和结束位置,通过第一序列和第二序列同样可以确定该冲突的帧的开始位置和结束位置。可选地,当检测到第三节点发送的数据帧中存在冲突的帧时,由于该冲突的帧为一种控制帧,因此该冲突的帧的第一序列中可能包括至少一个第四序列。当该冲突的帧包括至少一个第四序列时,可以根据该第四序列的个数和类型确定该冲突的帧的类型;相应地,当该冲突的帧的第一序列中不包括用于指示该冲突的帧的类型的第四序列时,解调该冲突的帧的MAC包,确定该冲突的帧的类型。其中,根据该第四序列的个数和类型确定该冲突的帧的类型的实现方式和步骤301中通过第一序列确定控制帧的类型的实现方式基本相同,在此不做详细说明。(3)解码存在冲突的帧的数据帧。在本发明实施例中,为了能够正确解码接收到的数据帧,当第一节点接收到的数据帧中存在冲突的帧时,需要将该冲突的帧进行处理,具体的,将该冲突的帧进行处理可以通过以下两种机制实现。第一种机制,移除(remove)该冲突的帧,也即,如果第一节点在接收到的数据帧中,检测到该冲突的帧,根据该冲突的帧的开始位置和结束位置,将该冲突的帧从数据帧中移除,合并移除该冲突的帧后的数据帧,并解码该冲突的帧和移除该冲突的帧后的数据帧。在本发明实施例中,当第一节点检测到接收到的数据帧中存在冲突的帧时,移除该冲突的帧主要应用于如下情况:当第三节点在向第一节点发送数据帧的过程中,在第一节点的接收范围内存在其他节点发送了RTS控制帧,则该控制帧在第一节点接收的过程中和第一节点接收的数据帧形成冲突,此时,当第一节点检测到存在冲突的帧,由于冲突的帧和数据帧并不同步,因此,采取整体移除。第二种机制,重置(reset)该冲突的帧,也即,如果第一节点在接收到的数据帧中,检测到该冲突的帧,根据该冲突的帧的开始位置和结束位置,将该数据帧中的该冲突的帧置零,并解码将该冲突的帧置零后的数据帧。其中,将该数据帧中的该冲突的帧置零后,相当于没有接收到该冲突的帧。由于冲突的帧是发送数据帧的节点插入的,因此,可以采用置零减少干扰对解调数据帧的影响。在本发明实施例中,当第一节点检测到接收到的数据帧中存在冲突的帧时,重置该冲突的帧主要应用于如下两种情况:第一种情况,当第三节点在向第一节点发送数据帧的过程中,第三节点在向第一节点发送的数据帧中插入一个发送给其他的节点的控制帧,此时,当第一节点接收到第三节点发送的控制帧时,暂停当前正在进行的解码过程,当检测到该控制帧结束时,重新继续进行数据帧的解码过程。第二种情况,当第三节点在向在向第一节点发送数据帧的过程中,第三节点在向第一节点发送的数据帧中插入一个发送给第一节点的控制帧,此时,当第一节点接收到第三节点发送的控制帧时,同样暂停当前正在进行的解码过程,当检测到该控制帧结束时,重新继续进行数据帧的解码过程。值得说明的是,无论哪种机制,接收节点在接收的数据帧进行解码的同时需要判断是否存在冲突的帧。并且判断冲突帧的类型,以及RA。如果RA和自己的地址一致,根据相关冲突的帧的类型进行后续处理。步骤303:当第二节点接收到第一类RTS时,向第一节点发送第一类CTS,第一节点接收第二节点发送的第一类CTS,第一类CTS为第二节点接收到第一类RTS且确定当前媒体处于空闲状态时发送,第一类CTS用于指示第二节点允许第一节点向其发送数据帧。当第二节点接收到第一节点发送的第一类RTS,且第一类RTS中携带的RA和自身地址一致时,第二节点确定第一节点当前正在接收第三节点发送的数据帧,且第一节点欲建立全双工非对称链路,在该全双工非对称链路中,第二节点将作为该全双工非对称链路的末端。此时,第二节点监听当前媒体是否处于空闲状态,当监听到当前媒体处于空闲状态时,向第一节点发送第一类CTS,第二节点发送的第一类CTS用于回复第一节点发送的第一类RTS,并向第一节点指示第二节点可以接收第一节点发送的数据帧,当第一节点接收到第二节点发送的第一类CTS时,确定第二节点可以接收其发送的数据帧,以建立与第二节点之间的无线链路。其中,第二节点监听当前媒体是否处于空闲状态,也即判断当前第二节点的接收范围内是否存在节点正在发送数据帧,当当前第二节点的接收范围内存在节点正在发送数据帧时,第二节点接收的数据帧将与该节点发送的数据帧形成冲突,导致第二节点无法正确接收第一节点发送的数据帧,因此,第二节点在发送第一类CTS之前,需要先确定当前媒体处于空闲状态,也即确定其接收范围内没有节点正在发送数据帧。需要说明的是,由于当前第一节点正在接收第三节点发送的数据帧,因此第一节点接收第二节点发送的第一类CTS是在第三节点发送的数据帧的干扰下接收的,也即第一节点接收到的第二节点发送的第一类CTS和第三节点发送的数据帧形成冲突。为了使第一节点能够快速从第三节点发送的数据帧中检测出第二节点发送的第一类CTS,第二节点发送的第一类CTS可以采用增强格式的CTS,也即第二节点发送的第一类CTS可以携带第一序列、第二序列或第三序列中的至少一个。当然,第二节点发送的CTS也可以不包括第一序列、第二序列和第三序列中的任一个。本发明实施例在此不做具体限定。另外,第一节点解码包括第一类CTS的数据帧的实现方式可以参考步骤302中解码存在冲突的帧的数据帧的实现方式。另外,在本发明实施例中,第一类CTS可以标记为CTS,当然第一类CTS也可以标记为其他形式的CTS,本发明实施例在此不做具体限定。值得注意的是,当第一节点存在数据帧向第二节点发送时,如果当前正在接收第二节点发送的数据帧,此时第一节点也可以向第二节点发送第一类RTS,表明第一节点欲建立与第二节点之间的异步全双工对称链路,当第二节点接收到第一节点发送的第一类RTS时,若当前第二节点的接收资源未被占用,第二节点向第一节点发送第一类CTS,以建立第一节点和第二节点之间的异步全双工对称链路。步骤304:第一节点向第二节点发送第二类CTS,第二类CTS用于指示第一节点、第二节点和第三节点之间的第一类全双工链路已建立。当第一节点接收到第二节点发送的第一类CTS时,表明第二节点当前可以接收第一节点发送的数据帧,此时第一节点向第二节点发送第二类CTS,第二类CTS用于指示第二节点为全双工非对称链路的末端,第三节点为全双工非对称链路的首端。当第二节点接收到第一节点发送的第二类CTS时,确定第一类全双工链路也即全双工非对称链路已建立,且第二节点为该全双工非对称链路的末端,为了避免第一节点接收的数据帧被干扰,第二节点将不再建立向其他节点发送数据帧的无线链路。当第三节点接收到第二类CTS时,第三节点确定当前全双工非对称链路已建立,且第三节点为该全双工非对称链路的首端,同样为了避免第三节点接收的数据帧被第一节点发送的数据帧干扰,第三节点将不再与其他节点建立无线链路。如图3C所示,当第一节点当前正在接收第三节点发送的数据帧,且当前存在数据向第二节点发送时,第一节点向第二节点发送第一类RTS,当第二节点接收到第一节点发送的第一类RTS时,在监听到当前媒体处于空闲状态时,向第一节点回复第一类CTS,当第一节点接收到第二节点发送的第一类CTS时,确定第二节点可以接收其发送的数据帧,此时第一节点发送第二类CTS,以建立第一节点、第二节点和第三节点之间的全双工非对称链路,第三节点为全双工非对称链路的首端,第二节点为全双工非对称链路的末端,当第三节点接收到第一节点发送的第二类CTS时,确定全双工非对称链路已建立,第三节点将不再回复其他节点发送的传输请求。另外,当第一节点接收第二节点发送的第一类CTS时,由于当前第一节点正在接收第三节点发送的数据帧,也即第二节点发送的第二类CTS与第三节点向第一节点发送的数据帧形成冲突,此时,第一节点根据步骤302中解码存在冲突的帧的数据帧的第二种机制对该第二类CTS进行重置处理。步骤305:第一节点通过无速率编码向第二节点发送数据帧。当第一节点完成与第二节点之间的三次握手过程之后,将待发送的数据加入循环冗余校验(CyclicRedundancyCheck,CRC),并将加入CRC之后的数据通过无速率编码进行编码。在本发明实施例中,为了充分利用无速率编码在传输数据时码率的自适应的优点,无速率编码可以为Spinal编码,也即,将待发送的数据分成a组原始消息(Message,M),a通常为48,每一组M的长度为nbit;将长度为nbit的M分成一组消息片每个的大小为kbit;然后通过hash函数生成每个的状态参数si和编码符号xi,j,并将状态参数si和编码符号xi,j送入随机产生机(RNG)进行编码得到对应的pass,将该pass进行打孔(puncture)处理,得到通过Spinal编码后的数据帧。在通过Spinal编码对数据帧进行编码之后,将经过Spinal编码后的数据帧映射到时频资源上,并向第二节点发送经过映射后的数据帧。步骤306:当第一节点确定正确接收到第三节点发送的数据帧且当前处于向第二节点发送数据帧的状态时,在向第二节点发送的数据帧中插入向第三节点发送的ACK,向第三节点发送的ACK中携带的RA为第三节点的地址。在本发明实施例中,当第一节点确定接收到第三节点发送的数据帧时,第一节点可以在向第二节点发送的数据帧中插入向第三节点发送的ACK,当第三节点接收到第一节点发送的ACK时,确定第一节点已正确接收到其发送的数据帧,此时可以解除第一节点和第三节点之间的无线链路,也即释放了第三节点的发送资源,使得第三节点可以和其发送范围内的其他节点建立无线链路,从而避免浪费第三节点的发送资源。另外,由于第一节点发送的ACK是插入在第一节点向第二节点发送的数据帧中,因此第一节点发送的ACK可以采用增强格式的ACK,也即第一节点发送的ACK可以携带第一序列、第二序列或第三序列中的至少一个。当然,第一节点发送的ACK也可以不包括第一序列、第二序列和第三序列中的任一个。本发明实施例在此不做具体限定。另外,第二节点解码插入了ACK的数据帧的实现方式可以参考步骤302中解码存在冲突的帧的数据帧的实现方式。步骤307:如果第一节点当前没有正在接收第三节点发送的数据帧,则向第二节点发送第二类RTS。如果当前没有正在接收第三节点发送的数据帧,也即当前第一节点的接收资源没有被占用,此时向第三节点发送第二类RTS。步骤308:当第二节点接收到第二类RTS时,确定向第一节点回复的CTS的类型,并向第一节点发送指定类型的CTS。当第二节点接收到第一节点发送的第二类RTS时,确定第一节点的发送资源没有被占用,此时,第二节点可以根据当前第二节点的发送资源是否被占用和当前是否存在数据帧向第一节点发送,确定向第一节点回复的CTS的类型。当第二节点当前正在向第四节点发送数据帧时,第二节点确定当前的发送资源已被占用,向第一节点回复第三类CTS,也即该第三类CTS为第二节点在接收到第二类RTS且当前正在向第四节点发送数据帧时发送,且第三类CTS用于指示第二节点当前正在接收第四节点发送的数据帧;当第二节点当前没有正在接收第四节点发送的数据帧,且检测到当前存在数据帧向第一节点发送时,第二节点向第一节点回复第五类CTS,也即第五类CTS为第二节点在接收到第二类RTS且确定当前存在数据帧向第一节点发送时发送,且第五类CTS用于指示第二节点请求与第一节点建立第二类全双工链路,该第二类全双工链路为全双工对称链路。当第一节点接收到第二节点发送的第三类CTS时,执行步骤309;当第一节点接收到第二节点发送的第五类CTS时,执行步骤310。且第二类RTS、第三类CTS和第五类CTS可以为增强格式的控制帧,也即第二类RTS、第三类CTS和第五类CTS可以携带第一序列、第二序列或第三序列中的至少一个。当然,第二类RTS、第三类CTS和第五类CTS也可以不包括第一序列、第二序列和第三序列中的任一个。值得注意的是,由于第五类CTS为第二节点在接收到第二类RTS且确定当前存在数据帧向第一节点发送时发送,因此,第五类CTS还包括长度信息,该长度信息用于指示第二节点向第一节点发送的数据帧的长度,如图2B所示,第五类CTS中包括的Packetsize用于指示第五类CTS中包括的待发送数据帧的长度信息。另外,当第二节点向第一节点发送第三类CTS时,除了第一节点,第四节点也将接收到该第三类CTS,当第四节点接收到第三类CTS时,确定自身为全双工非对称链路的末端,为了避免第四节点向其他节点发送的数据帧影响第二节点接收第一节点发送的数据帧,第四节点将不再与其他节点建立无线链路。步骤309:当第一节点接收到第二节点发送的第三类CTS时,向第二节点发送第四类CTS,第四类CTS用于指示第一节点为第一类全双工链路的首端,第四节点为该第一类全双工链路的末端。当第一节点接收到第二节点发送的第三类CTS时,确定第二节点当前正在向第四节点发送数据帧,若当前第一节点与第二节点建立无线链路,该无线链路为第一类全双工链路也即全双工非对称链路,且第一节点为该全双工非对称链路的首端,此时,第一节点并向第二节点发送第四类CTS,当第二节点接收到第一节点发送的第四类CTS时,确定全双工非对称链路已建立,接收第一节点发送的数据帧并继续向第四节点发送数据帧。当第一节点发送范围内的其他节点接收到第四类CTS时,确定第一节点为全双工非对称链路的首端,此时为了避免第一节点在接收其他节点发送的数据帧时被第二节点向第四节点发送的数据帧干扰,第一节点将不再与其发送范围内的其他节点建立无线链路。其中,第四类CTS也可以携带第一序列、第二序列或第三序列中的至少一个,或者不包括第一序列、第二序列和第三序列中的任一个,本发明实施例在此不做具体限定。如图3D所示,当第一节点向第二节点发送第二类RTS时,由于第二节点当前正在向第四节点发送数据帧,第二节点在向第四节点发送的数据帧中插入向第一节点回复的第三类CTS,当第一节点接收到第二节点发送的第三类CTS时,确定第二节点当前正在向第四节点发送数据帧,第一节点将不再接收其他节点发送的传输请求,并向第二节点回复第四类CTS,建立第一节点、第二节点和第四节点之间的全双工非对称链路,其中,第一节点为全双工非对称链路的首端,第四节点为全双工非对称链路的末端。另外,当第四节点接收到第二节点插入了第三类CTS的数据帧时,根据步骤302中解码存在冲突的帧的数据帧中的第一种机制对该第三类CTS进行移除处理。步骤310:当第一节点接收到第二节点发送的第五类CTS时,根据当前媒体的状态,确定向第二节点发送的CTS的类型。当第一节点接收到第二节点发送的第五类CTS时,确定第二节点可以接收第一节点发送的数据帧,并且第二节点存在数据帧向第一节点发送,也即第二节点欲建立与第一节点之间的全双工对称链路,此时第一节点需要先判断自身能否接收第二节点发送的数据帧,也即第一节点需判断当前媒体的状态,并确定向第二节点发送的CTS的类型,具体地,当第一节点监听到当前媒体处于空闲状态时,表明当前第一节点的接收范围内不存在节点正在发送数据帧,也即当第二节点向第一节点发送数据帧时,第一节点接收的数据帧将不会受到其接收范围内的其他节点发送的数据帧的干扰,因此,第一节点确定当前可以接收第二节点发送的数据帧,并向第二节点发送第六类CTS,第六类CTS用于指示当前允许第一节点接收第二节点发送的数据帧,以建立第一点与第二节点之间的第二类全双工链路,该第二类全双工链路为全双工对称链路。当第一节点发送范围内的其他节点接收到该第六类CTS时,确定第一节点为全双工对称链路中的节点,第一节点的发送范围内的其他节点将不再与第一节点建立无线链路。相应地,当第一节点监听到当前媒体处于忙碌状态时,表明第一节点的接收范围内存在其他节点正在发送数据帧,此时若第二节点向第一节点发送数据帧,第一节点接收第二节点发送的数据帧将被该其他节点发送的数据帧干扰,因此,第一节点确定当前不能接收第二节点发送的数据帧,并向第二节点发送第七类CTS,第七类CTS用于指示第一节点当前不能接收第二节点发送的数据帧,以建立向第二节点发送数据帧的单向传输链路,也即此时第一节点和第二节点之间只能建立单向传输链路。其中,第六类CTS和第七类CTS还可以携带第一序列、第二序列和第三序列中的至少一个,或者不包括第一序列、第二序列和第三序列中的任一个。如图3E所示,当第一节点向第二节点发送第二类RTS之后且接收到第二节点发送的第五类CTS时,确定第二节点欲建立与第一节点之间的全双工对称链路,此时,如果第一节点检测到当前媒体处于空闲状态,确定可以接收第二节点发送的数据帧并向第二节点回复第六类CTS,以建立第一节点和第二节点之间的全双工对称链路;如果第一节点检测到当前媒体处于忙碌状态,确定当前不能接收第二节点发送的数据帧并向第二节点回复第七类CTS,以建立第一节点到第二节点之间的单向传输链路。可选地,在第一节点向第二节点发送第六类CTS之后,第一节点和第二节点之间的全双工对称链路已建立,也即第一节点通过无速率编码向第二节点发送数据帧并接收第二节点通过无速率编码发送的数据帧。当第一节点确定正确接收到第二节点发送的数据帧且当前处于向第二节点发送数据帧的状态时,由于第一节点当前通过无速率编码向第二节点发送数据帧,也即第二节点在接收第一节点发送的数据帧中可以存在干扰,因此第一节点在确定正确接收到第二节点发送的数据帧时,可以在向第二节点发送的数据帧中插入向第二节点发送的ACK,解决了全双工对称链路中,在第一节点确定正确接收到第二节点发送的数据帧且处于向第二节点发送数据帧的状态时,无法向第二节点发送ACK的问题。其中,第一节点向第二节点发送的ACK中携带的RA为第二节点的地址,并且由于第一节点向第二节点发送的ACK是插入在第一节点向第二节点发送的数据帧中发送的,因此第一节点向第二节点发送的ACK还包括第一序列、第二序列和第三序列中的至少一个,以便于第二节点在接收到插入了ACK的数据帧时,可以从该数据帧中快速检测出该ACK。另外,无速率编码为Spinal编码,此处的Spinal编码的实现方式和步骤305中的Spinal编码的实现方式基本相同,在此不做详细阐述。在本发明实施例中,为了更好地说明本发明实施例提供的无线网络中建立无线链路方法的有益效果,本发明实施例对图3A所示的无线网络中建立无线链路的方法进行了仿真实验,标记为实验一;对于采用RTS-CTS两次握手建立全双工对称链路,以及BusyTone避免干扰的方法也进行了仿真,标记为实验二。其中实验一和实验二具有相同的拓扑和参数,也即实验一和实验二的仿真环境相同。该相同的仿真环境为:在500m×500m的范围内随机生成50个节点,其横纵坐标服从均匀分布,发送信号的节点以固定功率发送帧长固定的数据帧,数据帧产生时间服从泊松分布,物理层的信道衰落采用如下公式(1)表示:其中,PL(d)为信道衰落值,[dB]表示公式(1)的单位,PLF(d0)为参考距离d0的自由空间衰落,d为发送数据帧的节点和接收数据帧的节点之间的距离,n为路径损耗指数,该n会随着环境中障碍物的增多而增大,n=2对应于自由空间的情况。另外,PLF(d0)可以通过下述公式(2)确定:其中,Gt为发射天线增益,Gr为接收天线增益,L为传播环境无关的系统损耗系数,此处假设系统硬件无损耗,也即L=1,λ为传输波长,λ=c/f,其中c为光速,f为频率。关于上述公式(1)和公式(2)中的各个参数的取值可以参考表4。表4参数取值f5GHzGt1dBL1c3×108m/sd01mGr1dBn3另外,该共同的仿真环境还包括的其他参数,该其他参数及该其他参数的取值可以参考表5。表5根据以上仿真环境分别进行实验一和实验二,并对实验一和实验二的仿真结果进行对比,对比结果如图3F所示,当网络达到饱和时,实验一的仿真结果中的网络吞度量比实验二的网络吞吐量提高了145.22%,其中该提升包括使用spinalcode所带来的物理层发送速率的增益以及利用本发明实施例提供的无线网络中数据传输方法实现的全双工链路的灵活建立带来的增益。在在本发明实施例中,当第一节点当前正在接收第三节点通过无速率编码发送的数据帧,且存在数据帧向第二节点发送时,向第二节点发送第一类RTS,当第二节点接收到该第一类RTS时,由于第一节点当前接收第三节点的数据帧为无速率编码的数据帧,而通过无速率编码的数据帧允许被控制帧干扰,因此第一节点可以在接收数据帧的过程中,接收第三节点发送的第一类CTS,并通过三次握手过程建立第一节点和第二节点之间的无线链路,解决了全双工非对称链路中第一节点不能和第二节点建立无线链路的问题,充分利用了第一节点的发送资源,同时提高了无线网络中的网络吞吐量。另外,在第一节点和第二节点建立全双工对称链路之后,当第一节点确定正确接收到第二节点发送的数据帧且当前处于向第二节点发送数据帧的状态时,由于第一节点向第二节点发送的数据帧为通过无速率编码发送的数据帧,因此第一节点可以在向第二节点发送的数据帧中插入ACK,解决了全双工对称链路中,在第一节点确定正确接收到第二节点发送的数据帧且处于向第二节点发送数据帧的状态时,无法向第二节点发送ACK的问题,且当第二节点接收到第一节点发送的ACK时,停止向第一节点发送数据帧,避免浪费了第一节点的发送资源。图4是本发明实施例提供的一种无线网络中建立无线链路的装置400,该无线网络中建立无线链路的装置可以由软件、硬件或者两者的结合实现成为网络设备的部分或者全部,该网络设备可以为图2A所示的网络设备。参见图4,该装置包括处理模块401、发送模块402和接收模块403。处理模块401,用于执行图3A实施例中的步骤301;发送模块402,用于执行图3A实施例中的步骤302;接收模块403,用于执行图3A实施例中的步骤303;发送模块402,还用于执行图3A实施例中的步骤304。可选地,发送模块402,还用于执行图3A实施例中的步骤305;处理模块401还用于执行图3A实施例中的步骤306。可选地,该装置还包括:发送模块402,还用于执行图3A实施例中的步骤307,且其中第二类RTS用于指示第一节点当前没有正在接收第三节点发送的数据帧且请求与第二节点建立第一类全双工链路;发送模块402,还用于执行图3A实施例中的步骤309,且其中第一类全双工链路的首端为在完成当前发送前不允许回复任何其他节点发送的RTS的节点,第一类全双工链路的末端为在完成当前接收前不允许向任何其他节点发送RTS的节点;处理模块401,还用于执行图3A实施例中的步骤310,且其中,第五类CTS为第二节点在接收到第二类RTS且确定当前存在数据帧向第一节点发送时发送,第五类CTS用于指示第二节点请求与第一节点建立第二类全双工链路。可选地,发送模块402,还用于当处理模块401监听到当前媒体处于空闲状态时,向第二节点发送第六类CTS,第六类CTS用于指示当前允许第一节点接收第二节点发送的数据帧,以建立第一节点与第二节点之间的第二类全双工链路;发送模块402,还用于当处理模块401监听到当前媒体处于忙碌状态时,向第二节点发送第七类CTS,第七类CTS用于指示第一节点当前不能接收第二节点发送的数据帧。可选地,发送模块402还用于通过无速率编码向第二节点发送数据帧并且接收模块403还用于接收第二节点通过无速率编码发送的数据帧;处理模块401,还用于当处理模块401确定接收模块403正确接收到第二节点发送的数据帧且发送模块402当前处于向第二节点发送数据帧的状态时,在发送模块402向第二节点发送的数据帧中插入向第二节点发送的ACK,其中,向第二节点发送的ACK中携带的RA为第二节点的地址。可选地,该装置包括的处理模块401还用于:如果当前正在接收第三节点发送的数据帧,判断第三节点发送的数据帧中是否存在冲突的帧,该冲突的帧包括RTS、CTS和ACK;当确定第三节点发送的数据帧中存在冲突的帧时,确定冲突的帧的开始位置和结束位置;根据冲突的帧的开始位置和结束位置,将冲突的帧从数据帧中移除,合并移除冲突的帧后的数据帧,并解码冲突的帧和移除冲突的帧后的数据帧,或者,将数据帧中的冲突的帧置零,并解码将冲突的帧置零后的数据帧。可选地,该处理模块401还用于:当在第三节点发送的数据帧中检测到前导序列时,确定第三节点发送的数据帧中存在冲突的帧;相应地,该处理模块401还用于:从第三节点发送的数据帧中检测物理包头,根据检测到的前导序列和物理包头,确定冲突的帧的开始位置和结束位置;或者,从第三节点发送的数据帧中检测第二序列,根据检测到的前导序列和第二序列,确定冲突的帧的开始位置和结束位置,第二序列用于指示冲突的帧的结束位置,第二序列为物理层对冲突的帧封装时添加在冲突的帧的尾部的序列。可选地,该处理模块401还用于:当在第三节点发送的数据帧中检测到第一序列时,确定第三节点发送的数据帧中存在冲突的帧,第一序列用于指示冲突的帧的开始位置,第一序列为物理层对冲突的帧封装时添加在冲突的帧的头部的序列;相应地,该处理模块401还用于:从第三节点发送的数据帧中检测物理包头,根据检测到的第一序列和物理包头,确定冲突的帧的开始位置和结束位置;或者,从第三节点发送的数据帧中检测第二序列,根据检测到的第一序列和第二序列,确定冲突的帧的开始位置和结束位置。可选地,第一类RTS、第二类RTS、第一类CTS、第二类CTS、第三类CTS、第四类CTS、第五类CTS、第六类CTS、第七类CTS和ACK中的每一个均包括第一序列、第二序列和第三序列中的至少一个,第三序列用于指示携带的RA。可选地,第一类RTS、第二类CTS、第四类CTS、第五类CTS和第七类CTS均还包括类型标记符和子类型标记符,类型标记符和子类型标记符用于指示对应请求的类型。可选地,第五类CTS还包括长度信息,长度信息用于指示第二节点向第一节点发送的数据帧的长度。可选地,无速率编码为spinal编码。在在本发明实施例中,当第一节点当前正在接收第三节点通过无速率编码发送的数据帧,且存在数据帧向第二节点发送时,向第二节点发送第一类RTS,当第二节点接收到该第一类RTS时,由于第一节点当前接收第三节点的数据帧为无速率编码的数据帧,而通过无速率编码的数据帧允许被控制帧干扰,因此第一节点可以在接收数据帧的过程中,接收第三节点发送的第一类CTS,并通过三次握手过程建立第一节点和第二节点之间的无线链路,解决了全双工非对称链路中第一节点不能和第二节点建立无线链路的问题,充分利用了第一节点的发送资源,同时提高了无线网络中的网络吞吐量。另外,在第一节点和第二节点建立全双工对称链路之后,当第一节点确定正确接收到第二节点发送的数据帧且当前处于向第二节点发送数据帧的状态时,由于第一节点向第二节点发送的数据帧为通过无速率编码发送的数据帧,因此第一节点可以在向第二节点发送的数据帧中插入ACK,解决了全双工对称链路中,在第一节点确定正确接收到第二节点发送的数据帧且处于向第二节点发送数据帧的状态时,无法向第二节点发送ACK的问题,且当第二节点接收到第一节点发送的ACK时,停止向第一节点发送数据帧,避免浪费了第一节点的发送资源。需要说明的是:上述实施例提供的无线网络中建立无线链路的装置在建立无线链路时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的无线网络中建立无线链路的装置与图3A实施例提供的无线网络中建立无线链路的方法属于同一构思,其具体实现过程详见图3A实施例,这里不再赘述。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(DigitalSubscriberLine,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(DigitalVersatileDisc,DVD))、或者半导体介质(例如:固态硬盘(SolidStateDisk,SSD))等。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请原则之内所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1