无线Adhoc网络中在MAC层估计端到端带宽和延迟的方法

文档序号:7740812阅读:337来源:国知局
专利名称:无线Ad hoc网络中在MAC层估计端到端带宽和延迟的方法
技术领域
本发明涉及一种无线Ad hoc网络中在MAC层估计端到端带宽和延迟的方法。
背景技术
无线Ad hoc网络具有无中心、自组织、多跳路由、动态拓扑等特点,这些特点使得 Ad hoc网络在体系结构、网络组织、协议设计等方面都与普通的网络有着显著的不同。如何 更好的利用有限的带宽,如何在动态变化的拓扑结构中找到有效的路由,如何改进Ad hoc 网络中的TCP性能,这些都是需要解决的问题。而解决这些问题的基础,就是快速而准确的 实现对Ad hoc网络带宽和延迟的估计。早期的一些方法在传输层对当前可用带宽进行估计,其中一种比较典型的方法是 通过ACK的到达速度来判断当前的网络状况,但是,ACK延迟和丢失的原因也有可能是网络 的高比特误码率和节点高移动性造成的,这就使得估计的结果不准确。同时,Ad hoc网络 的特点主要表现在MAC层和物理层上,仅通过上层的检测来估计带宽和延迟很难得到较好 的方案。当前也存在一些较好的估计无线Ad hoc网络中MAC层带宽延迟的方法,如MAC层 对当前传输路径的可用带宽进行估计,但是一个明显的漏洞就是,这类方法没有将数据帧 的重传考虑进来,这就会使带宽的估计值过高,造成最终结果的不准确。

发明内容
本发明旨在克服现有技术的上述不足,提供一种可以快速、准确估计无线Ad hoc 网络中端到端带宽和延迟的方法。为了达到上述目的,本发明采用如下的技术方案一种无线Ad hoc网络中在MAC层估计端到端带宽和延迟的方法,该方法为(1)在MAC层数据帧的头部扩展出两个字段存储带宽信息和正向传输延迟信息;(2)发送端MAC层发送数据帧前,将带宽字段设为最大,正向传输延迟字段清0 ;(3)在每个节点处生成一个链表,存储每个数据帧的带宽和正向传输延迟信息,当 收到对应于该帧的ACK时,将该帧的信息从链表中删除;(4)对于每个接收到该数据帧的节点,若该节点不是接收端,且链表中没有该帧的 信息,计算单跳延迟和单跳带宽,将单跳延迟累加到数据帧的正向传输延迟字段上,并将单 跳带宽与数据帧的带宽字段值相比较,将其中最小的值赋值给数据帧的带宽字段,存储到 数据帧头部后发送。(5)若链表中已存在该数据帧的信息,将上次发送起到现在的重传时间与单跳延 迟相加后,再累加到数据帧的延迟字段上,存储到数据帧头部后发送。(6)当数据帧到达接收端时,取出数据帧头部的带宽和正向传输延迟信息,当接收 端的网络层发出ACK时将这两部分信息分别作为带宽信息和反向传输延迟信息存入TCP头部,使得带宽和反向传输延迟信息能够随ACK返回发送端。(7)在ACK返回发送端的过程中,对于每一跳,仍需要按照步骤(4) (5)中的相同方法计算单跳延迟T,并将其累加到TCP头部。(8)当发送端的MAC层收到含有ACK的数据帧时,首先从MAC层数据帧头部和TCP头部取出各自的带宽信息和延迟信息,并计算传输路径的总延迟和带宽,总延迟为正向传 输延迟和反向传输延迟之和,传输路径的带宽为TCP数据包的头部存储的带宽信息。作为优选实施方式,(4)中,单跳延迟为排队延迟、获得媒体接入所需的时间以及 传输延迟三者之和,单跳带宽为在MAC层传输的数据帧长度与单跳延迟之商;在计算排队 延迟时,需要记录数据帧进入链路层队列的时刻,先将该时间存入MAC层数据帧头部,当从 MAC层队列中取出该帧时,把该帧头部的时间与当前时刻做差,即可计算出排队时间;传输 延迟Tr的计算公式为下列三式,式中,PIFS和DIFS分别表示优先级帧间隔和分散帧间隔, PLCP是物理层对数据帧的封装,Preamble和header分别是它的前缀和头部;MAC是链路层 对数据帧的封装,header是其头部;Basic. Rate为PLCP头部的发送速率;Data. Rate为普 通数据域的发送速率;FCS是4字节的循环校验码Tr = Tdata+SIFS+Tack+DIFS<formula>formula see original document page 4</formula><formula>formula see original document page 4</formula>本发明提供的方法,在MAC层进行的简单而直接的测量,并考虑了数据帧的重传, 可以快速而准确的实现对Ad hoc网络带宽和延迟的估计。


图1是扩展后的MAC层数据帧头部。
图2是扩展后的TCP头部。图3是带宽延迟估计流程图。
具体实施例方式本发明的技术方案是(1)在MAC层数据帧头部扩展出两个字段,分别存储带宽和延迟信息。定义如下BWEunsigned short int 16bitsDelay unsigned short int 16bits另外还需在TCP的头部扩展出两个字段,使ACK能够存储正向的带宽和延迟信息。(2)发送端MAC层发送数据帧前,将OTE初始为最大,Delay清0。(3)对于每一跳,计算单跳延迟T时,需计算排队延迟Tq,获得媒体接入所需的时 间Tc,以及传输延迟Tr,之后将三者求和即可得到T。在计算Tq时需要记录数据帧进入链路层队列的时刻,先将该时间存入MAC层数据 帧头部,当MAC层从队列中取出该帧时,把该帧头部的时间与当前时刻做差,即可计算出排 队时间。其中传输延迟Tr的计算公式如式⑴(2) (3)所示。Tr = Tdata+SIFS+Tack+DIFS(1)<formula>formula see original document page 5</formula>式(1)中的PIFS和DIFS分别表示优先级帧间隔和分散帧间隔。式⑵和式(3)中的PLCP是物理层对数据帧的封装,Preamble和header分别是 它的前缀和头部;MAC是链路层封装数据包后形成的数据帧;Basic. Rate为PLCP头部的发 送速率;Data. Rate为普通数据域的发送速率;FCS是4字节的循环校验码。Tc是指从MAC层队列取出并开始处理该数据帧时开始,一直到RTS/CTS完成接入 控制的时间。考虑MAC层的多次重传,MAC层需要定义一个计时器,分两部分计算Tc的时 间1)数据帧从队列中取出到获得信道使用权准备发送数据的这段时间;2)数据发送后, 计时器重新开始计时,一直到成功接收该数据帧的ACK确认时,从该计时器中取出的时间。 如果传输该数据帧共进行了 η次信道竞争,那么第2)部分时间就是η-1次重传竞争信道需 要的时间。每一次将数据发送到媒介上之前,都需取出该计时器的值,将其累加到信道竞争 时间Tc上,一直到收到MAC层ACK确认或超过重传次数限制为止。(4)设传输的数据帧的长度是Packetjen,单跳传输这个数据帧所需的时间T已 经在步骤(3)中测得,则可以计算单跳的可用带宽bandwidth = Packetjen/T。(5)得到单跳的带宽和延迟后,在发送的数据帧前,将测得的bandwidth值与原有 的BWE值进行比较取较小值,将延迟T进行累加到Delay,最后将得到的带宽和延迟重新存 入MAC层数据帧头部的对应区域。(6)遇到重传的情况时,由于MAC层在没有收到ACK时不会将数据包帧信息从链表 中删除,因此,需重传的数据包中已存在带宽和延迟信息。另外,在发送一个数据包时,我们 启动计时器开始计时,因此只需要在发送前将计时器内的时间取出,即可得到重传所需要 的时间。(7)在ACK返回发送端的过程中,对于每一跳,仍需要按照步骤(3)中的相同方法 计算单跳延迟T,并将其累加到ACK的MAC层数据帧头部。(8)当发送端的MAC层收到含有ACK的数据帧时,首先从MAC层数据帧头部和TCP 的ACK头部取出带宽延迟信息,并计算延迟Delay和带宽BWE,计算过程为Delay = th. tcp_delay+mh. mac_delay ;BffE = th. tcp_bandwidth ;其中,th. tcp_delay是TCP数据包的头部存储的正向传输延迟,th. tcp_ bandwidth是TCP数据包的头部存储的带宽信息,mh. mac_delay是含ACK的数据帧头部中 存储的反向传输延迟。这样就得到了整条链路的带宽和延迟信息。
权利要求
一种无线Ad hoc网络中在MAC层估计端到端带宽和延迟的方法,该方法为(1)在MAC层数据帧的头部扩展出两个字段存储带宽信息和正向传输延迟信息;(2)发送端MAC层发送数据帧前,将带宽字段设为最大,正向传输延迟字段清0;(3)在每个节点处生成一个链表,存储每个数据帧的带宽和正向传输延迟信息,当收到对应于该帧的ACK时,将该帧的信息从链表中删除;(4)对于每个接收到该数据帧的节点,若该节点不是接收端,且链表中没有该帧的信息,计算单跳延迟和单跳带宽,将单跳延迟累加到数据帧的正向传输延迟字段上,并将单跳带宽与数据帧的带宽字段值相比较,将其中最小的值赋值给数据帧的带宽字段,存储到数据帧头部后发送。(5)若链表中已存在该数据帧的信息,将上次发送起到现在的重传时间与单跳延迟相加后,再累加到数据帧的延迟字段上,存储到数据帧头部后发送。(6)当数据帧到达接收端时,取出数据帧头部的带宽和正向传输延迟信息,当接收端的网络层发出ACK时将这两部分信息分别作为带宽信息和反向传输延迟信息存入TCP头部,使得带宽和反向传输延迟信息能够随ACK返回发送端。(7)在ACK返回发送端的过程中,对于每一跳,仍需要按照步骤(4)(5)中的相同方法计算单跳延迟T,并将其累加到TCP头部。(8)当发送端的MAC层收到含有ACK的数据帧时,首先从MAC层数据帧头部和TCP头部取出各自的带宽信息和延迟信息,并计算传输路径的总延迟和带宽,总延迟为正向传输延迟和反向传输延迟之和,传输路径的带宽为TCP数据包的头部存储的带宽信息。
2.根据权利要求1所述的无线Adhoc网络中在MAC层估计端到端带宽和延迟的方法, 其特征在于,(4)中,单跳延迟为排队延迟、获得媒体接入所需的时间以及传输延迟三者之 和,单跳带宽为在MAC层传输的数据帧长度与单跳延迟之商。
3.根据权利要求1或2所述的无线Adhoc网络中在MAC层估计端到端带宽和延迟的 方法,其特征在于,在计算排队延迟时,需要记录数据帧进入链路层队列的时刻,先将该时 间存入MAC层数据帧头部,当从MAC层队列中取出该帧时,把该帧头部的时间与当前时刻做 差,即可计算出排队时间。
4.根据权利要求1或2所述的无线Adhoc网络中在MAC层估计端到端带宽和延迟的 方法,其特征在于,传输延迟Tr的计算公式为下列三式,式中,PIFS和DIFS分别表示优先 级帧间隔和分散帧间隔,PLCP是物理层对数据帧的封装,Preamble和header分别是它的前 缀和头部;MAC是链路层对数据帧的封装,header是其头部;Basic. Rate为PLCP头部的发 送速率;Data. Rate为普通数据域的发送速率;FCS是4字节的循环校验码<formula>formula see original document page 2</formula>
全文摘要
本发明提出了一种无线Ad hoc网络中在MAC层估计端到端带宽延迟的方法。该方法在MAC层数据帧头部扩展出两个字段存储带宽和延迟信息,并逐跳估计单跳带宽和单跳延迟,将带宽最小的那一跳的带宽作为路径的可用带宽,每跳延迟之和作为路径上包的传输延迟。其特征是在计算单跳延迟时将数据帧重传引起的延迟加入到总延迟中。本发明在MAC层进行简单而直接的测量,实现了无线Ad hoc网络中带宽和延迟的准确估计。
文档编号H04W24/08GK101801021SQ20101010019
公开日2010年8月11日 申请日期2010年1月22日 优先权日2010年1月22日
发明者罗咏梅, 葛卫民, 赵冬雪, 邱胜男 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1