首页 > 范文大全 > 正文

无线网络丢包检测技术的研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇无线网络丢包检测技术的研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:相较于有线网络,无线网络具有误码率高、时延大、带宽低等特性。因此,考虑到TCP直接应用于无线环境的局限性,这方面的研究者们提出了多种TCP拥塞控制的改进机制,这些方案一般没有考虑误码丢包对数据发送速率的影响。本文详细的讨论了有关无线网络丢包检测的各种实施策略,并介绍了若干丢包检测技术的实现原理。

关键词:无线网络;丢包检测;实施策略;实现原理

中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)17-31294-03

Research of the Detection Technology of Packet Loss in Wireless Network

FENG Jing

(Qinhuangdao Professional Technology Institute,Qinhuangdao 066100,China)

Abstract:Compared with fixed networks,there are many different characteristics in wireless environments, such as relatively higher error rate, longer delay, lower bandwidth etc. Hence, many improvements of TCP congestion control mechanisms are presented. However, the influence on TCP sender's packet sending rate by link corruption is not considered in these improved schemes,and no perfect control mechanism for packet loss by corruption has been presented yet. This article detailed discussion the detection of packet loss in wireless network and introduced certain the detection technology of packet loss realization principle.

Key words:Wireless Network;Detection of Packet Lost;Implementation strategy;Realization principle

1 引言

本文详细的讨论了有关无线网络丢包检测的各种实施策略,并介绍了若干丢包检测技术的实现原理,一些隐式丢包检测技术和一种显示的丢包检测技术。在最后重点对基于ECN的隐式丢包检测技术做了进一步的详述。

2 有线网络中的 TCP 丢包检测

有线网络中 TCP 拥塞控制的前提是网络拥塞为数据丢失的唯一原因。由于有线链路质量较好,数据因误码而被丢弃的可能性极小。因此,在有线环境下不考虑误码丢包,而认为数据丢失均是因网络拥塞所致是合理可取。这样,有线网络中的 TCP 丢包检测即为拥塞丢包检测。

有线环境下,TCP 主要采用“重复应答”和“超时”来检测拥塞丢包。

3 无线网络中的误码丢包检测

目前对于无线网络误码丢包的检测技术,主要集中在两个方面,隐式丢包检测和显式丢包检测的策略研究。相对于准确性较高的显式丢包检测而言,隐式丢包检测技术的实现更为简单和低成本。

3.1 隐式丢包检测技术简述

这种机制是源端通过计算以隐式地决定丢包的类型。其优点是无需对基站及其它网络中间节点进行修改;缺点是这类方法由于是基于某些假设和测量的,而且测量本身也可能是基于这些假设的,因此准确性不高。

(1)基于 ECN 的丢包检测技术

ECN 是一种主要服务于有线网络的显式拥塞通知技术。其基本思想是:当路由器发生早期拥塞时,不是丢弃分组,而是尽量对分组进行标记,以便将此拥塞信息告之 TCP 发送端。

TCP 连接的发送端将所要发送数据注明显示拥塞通知允许标志;路由器发生拥塞时,对有标志的IP包传递拥塞信息;TCP 连接的接收端在收到带有拥塞信息的分组时,产生 TCP 应答报文段,在报文段的 TCP 头中设置 ECN-Echo 位;发送端收到了设置有 ECN-Echo 的 TCP 应答报文段时裁决网络产生了拥塞。在裁决网络发生拥塞后的某一时间段内,若检测出有数据丢失,则认为此数据的丢失是因网络拥塞所致;否则将认为此数据的丢失是由链路错误引起。

(2)基于 Vegas 的丢包检测

Vegas丢包检测引入了记录TCP连接期间最小往返时间的变量BaseRTT,于是定义Vegas[29]为:

(4 - 3)

设置两个门限α、β(α

如果Vegas > β,则TCP 裁决网络拥塞,此时,可认为 TCP 发送端未得到确认的数据因网络拥塞而丢失了。

若检测出有数据丢失,且Vegas

如果α ≤Vegas≤ β ,认为网络介于拥塞与非拥塞之间,若此时有数据丢失,可按某一概率 p 将其归为拥塞丢包,或按概率(1-p)将其归为误码丢包。其中,Vegas越接近于α , p 越小;而Vegas越接近于β , p 越大。

(3)基于 TCP 控制解耦的丢包检测

TCP 控制解耦技术的出发点在于:报文段的长度越小,报文段出错的机率也就越小。于是此技术采用了一种长度很小的控制报文段 Control Packet,因其出错机率较小,可认为控制报文段的丢失仅由网络拥塞引起,从而可单独用它来进行拥塞控制,只对数据报文段(记为 User Packet)进行差错控制。

控制报文段有两种:(1)头报文段 Header Packet,只含 TCP/IP 头,不捎带任何数据,使用与数据报文段相同的源 IP 地址和目的 IP 地址,配置一个虚拟参数VMSS(Virtual Maximum Segment Size);(2)发送端对所发送的 Header Packet 的应答报文段。

TCP 连接的发送端在Header Packet 重传定时器超时或收到来自接收端同一 Header Packet 的 3 个重复应答时,裁决网络出现了拥塞。这样,基于 TCP 控制解耦的丢包检测为:(1)在裁决网络发生拥塞后的某一时间段内,若检测出有数据丢失,则认为此数据的丢失是因网络拥塞所致;(2)在检测出有数据丢失,且之前的某一时间段内未裁决出网络发生了拥塞,则此数据的丢失是由链路错误引起。

3.2 一种显示误码丢包检测机制

下面介绍一种显式误码通知机制。影响误码丢包的因素主要有两个:链路误码率和数据帧大小。设数据帧长为ιbits,误码率为ρ,于是数据帧丢失的概率为1-(1-ρ) ι。显然,误码率越高或数据帧越长,数据帧丢失的可能性也就越大;反之误码率越低或数据帧越短,数据帧丢失的可能也就越小。

由于有线环境下误码率较低,因此,可以不考虑其误码丢包。与之相比,无线环境误码率较高,其误码丢包不容忽视,一种有效避免数据帧丢失的措施是采用较短的数据帧。然而,过短的数据帧又会大量增加额外开销,降低了传输效率和带宽利用率,这使得数据帧不会太短,于是当误码率较高时,数据帧丢失的可能性能仍然会非常大。不过,数据中 TCP 首部与 IP 头中的某些字段通常是很小而固定的,即便链路误码率较高,它们出错的可能性也会非常小。下面的显式误码通知机制正是基于这一基本思想。

图1 EBC工作原理

为了将误码丢包显式地通知给源端主机,借用 IP 头中 TOS 字段的第 15 位为“EBC”位,“EBC”位为“1”的分组表示显式误码通知。并忽略 IP 分组头中的“首部长度”(0.5字节)、“IP 地址”(4 字节)(对显式误码通知为目的 IP 地址,对数据分组为源 IP 地址)、“协议域”(1 字节)、TCP 首部中的“序号”字段(4字节)等因误码而出错,为便于后面的讨论,我们将这些字段统称为“EEBN”,其总长为ιh=9.5×8=76bits。基于这一假设,在具体实现时不对“EEBN”另设立校验码。这样,此机制的具体实现如下:

链路层行为。链路层对出错数据帧不予丢弃,而是直接交给网络层。链路层的其它行为不变。

中间节点网络层行为。网络层对出错分组的处理办法如下:若协议字段表示 TCP 协议,向数据源端发送显式误码通知,此通知仅由 IP 头和 TCP 首部的前 8 个字节组成,其中“EBC”位为“1”,TCP 首部中的前 8 个字节与出错分组 TCP 首部中的前 8 个字节相同;若协议字段表示除 TCP 外的其它协议,丢弃此 IP 分组。另外,其它中间节点的网络层对“EBC”位为“1”的误码通知,一律转发,而不管其首部能否通过校验。源端主机网络层行为。源端主机网络层收到“EBC”位为“1”的分组后,得知链路出现了误码丢包,将此信息报告传输层。

源端主机传输层行为。源端主机传输层收到误码通知信息,缓存误码通知中的“序号”字段。在检测出有数据丢失的情况下,查看此丢失数据的“序号”与缓存的“序号”是否相同。若相同,说明此数据的丢失是因误码引起,并从缓存中删除相应的“序号”;反之,若不相同,说明此数据的丢失是因网络拥塞引起。另外,若传输层得知缓存“序号”所对应的 TCP 报文段已成功达到接收端(出现这种情形在于链路层重传成功),则删除此“序号”。

3.3 基于 ECN 的丢包检测技术实现

显式拥塞指示(Explicit Congestion Notification, ECN)机制是一种和主动式队列管理(Active Queue Management, AQM)机制结合使用的方法。在执行AQM机制的路由器中,当拥塞发生并且队列没有溢出时,对数据包进行拥塞标记而不是丢弃。接收端收到拥塞标记包后将此拥塞信息通过确认包传送到发送端。于是发送端激发拥塞控制机制。ECN的工作原理如图2所示。

为了能够在网络发生早期拥塞时,对到来的分组进行标记,在 IP 分组头中设置 ECN 域:TOS 字段的 6、7 两位分别用作 ECN 域的 ECT(ECN-Capable Transport)位和 CE(Congestion Experienced)位。TCP 发送端通过对所发送的数据设置 ECT位来支持对 ECN 的实现;路由器设置 CE 位将网络早期拥塞告之终端。路由器因早期拥塞在决定丢弃一个分组之前,先检查分组的 ECT位, 如果设置了 ECT位,则在 IP 分组头中设置 CE 位,否则丢弃分组。当路由器收到了一个已经被设置了CE位的分组时,对CE位不作修改,按通常情况对分组进行转发。当然,如若路由器缓冲溢出,路由器会无条件地丢弃到来的任何分组。于是要求在路由器中引入积极队列管理,如若引入随机早期检测 RED(Random Early Detection),则当路由器队列长度小于最小门限或大于最大门限时,不会对分组进行标记,而当队列长度处于最小门限与最大门限之间,并以一定的概率选中了到来的某一分组来予以丢弃时,若 IP 分组设置了 ECT位,则在此分组头中设置 CE 位,否则丢弃分组。

图2 ECN工作原理

对 TCP 而言,为支持 ECN 引入了三个新的机制:(1)初始化阶段的协商。用以决定端系统对 ECN 的支持;(2)标志位 ECN-Echo。当 TCP 接收端收到一个 CE分组之后,用此标志位来告知数据的发送端;(3)标志位 CWR(Congestion window Reduced)。TCP 发送端用此标志位通知接收端拥塞窗口已被减小。借用 TCP 报文段头中预留域的 8、9 两位分别用作标志位 ECN-Echo 和 CWR。

TCP 初始化。TCP 连接初始化时,若发送端支持 ECN,则在发送的 TCP同步报文段头中设置 ECN-Echo 位和 CWR 位。接收端收到此报文段后,发回一个TCP 同步应答报文段,并在此报文段中设置 ECN-Echo 位以示其对 ECN 的支持。最后发送端再向接收端发送一个应答报文段,从而完成了 TCP 连接的三次握手。

TCP 发送端。对于使用了 ECN 的 TCP 连接,发送端在所要发送数据的IP 头中设置 ECT位(即设置 ECT位为“1”)。如果发送端收到了设置有 ECN-Echo位的应答报文段,则发送端被告之网络中从发送端到接收端的路径上产生了拥塞。TCP 发送端也会在减小拥塞窗口 cwnd 后所发送的第一个 TCP 数据报文段头中设置 CWR 为“1”。

TCP 接收端。TCP 接收端每收到一个 CE 分组之后,均将随后所要发送的 TCP应答报文段头的 ECN-Echo 位设置为“1”,直到收到了被发送端设置了CWR位的 TCP 报文段为止。如果接收端采用的是积累应答,则会出现在发送积累应答前收到的分组中有设置了 CE 位的,也有未设置 CE 位的,在这种情况下,只要有CE 分组,就在所要发送的应答中设置 ECN-Echo 位。如果 TCP 不支持 ECN,则忽略 CE 位。另外对于纯应答分组(即不含任何用户数据的分组),通常不考虑应答路径上的拥塞,将 IP 头中的 ECT位设置为“0”。

TCP 连接的发送端收到来自接收端设置有 ECN-Echo 位的 TCP 应答报文段时,裁决网络发生了拥塞。这样,基于 ECN 的丢包检测可为:(1)在裁决网络发生拥塞后的某一时间段内,若检测出有数据丢失,则认为此数据的丢失是因网络拥塞所致;(2)在检测出有数据丢失,且之前的某一时间段内未裁决出网络发生了拥塞,则此数据的丢失是由链路错误引起。

4 结束语

在本文中,我们详细的讨论了有关无线网络丢包检测的各种实施策略,并介绍了若干丢包检测技术的实现原理。主要介绍了基于ECN的隐式丢包检测技术和EBC显式丢包检测技术。通过这些详细的分析讨论工作,目的是让读者对于无线网络丢包检测机制有一个全面深入的理解。

参考文献:

[1]G Patel,S Dennett.The 3GPP and 3GPP2 movements toward an all-IP mobile network[J].IEEE Personal Communications,2000,(07).

[2]徐昌彪.改进显式拥塞通知提高无线应用中的 TCP 性能[J].计算机应用研究,2001.

[3]S Andrew Tanenbaum.熊桂喜,王小虎,等,译.计算机网络(第三版)[M].北京:清华大学出版社,2000.

[4]谢希仁,陈鸣,张兴元,等.计算机网络[M].北京:电子工业出版社,1996.

[5]Douglas E Comer.林瑶,蒋慧,杜蔚轩,等,译.用TCP进行网络互连(第3版)[M].北京:电子工业出版社,1998.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。