维普资讯 http://www.cqvip.com 第24卷 第08期 文章编号:1006—9348(2007)08—0102—04 计 算 机 仿 真 2007年08月 基于UDP传输协议的网络时延仿真研究 樊建伟,杨笃伟,沈祝山,杨东升 (空军第一航空学院,河南信阳464000) 摘要:在基于UDP传输协议的各种网络中,数据包传输的时延是随机的,为了能够研究不同的控制算法对远程控制系统的 影响,就必须保证远程控制系统中网络时延环节的一致性,为此必须对网络时延进行仿真。使用结构数组对网络时延进行了 仿真。将数据报的信息存放在与其网络时延相对应的结构数组元素中,在每个采样点系统只使用结构数组相应元素中的信 息,实现了对数据包网络时延的仿真。在基于时间驱动工作方式的控制系统中,可以采用这样的方法实现UDP传输协议下 的网络时延仿真。 关键词:网络时延;仿真;结构数组 中图分类号:TP273 文献标识码:A Simulation of Network Time Delay Based on UDP Transport Protocol FAN Jian—wei,YANG Du—wei,SHEN Zhu—shan,YANG Dong—sheng (The First Aeronautical Institute of Air Force,Xinyang Henan 464000,China)) ABSTRACT:In different networks based on UDP transport protocol,the time delay of packets is random in the course of transmitting.To study the effects of various control algorithms on telecontrol system,the time delay must be the same,SO the time delay needs to be simulated.The array of structure is used for simulating time delay.The information of datagram is deposited in corresponding array cells.The information of cells is used in every sampling point.Thus the simulation of time delay is achieved.In time—driven model control system,the method can be used to simulate network time of UDP transport protoco1. KEYWoRDS:Network time delay;Simulation;Array of stuctrure 包所路过节点对数据包的处理策略,这些因素导致信息从接 l 引言 随着基于TCP/IP协议族的网络通信技术的发展飞速发 展,就产生了基于网络的远程控制技术。 收端传递到发送端的网络时延成为一个不确定的变量…。 这样就会导致控制信息不能实时地传递给被控对象,输 出信号也不能实时地反馈给控制器。控制器根据滞后的反馈 信息,发出错误的控制信息,从而使整个系统的稳态和动态 特性变差,严重时还会影响系统的稳定性。 为了处理网络时延对控制系统的影响,就需要研究各种 不同的控制算法,如果将网络时延直接接入远程控制系统 网络包括各类军用网、因特网、广域网和局域网等,由于 网络遍布全球,通过网络可以实现在任何时间、任何地点对 连接在网络内的任何有线节点或无线节点上的各种军用设 备或民用设备进行远程控制。 在远程控制系统中,网络存在于控制系统的前向通道和 反馈通道之中,通过网络实现控制器与被控对象在地理位置 中,由于网络时延是实时变化的,会造成实验条件不一致,即 使使用同一种控制算法,对于相同的参考输入由于网络时延 的不同,也会造成系统输出的结果不相同,这时无法判定输 上的分离。通过网络来传递控制信息和反馈信息。 由于基于TCP/IP协议网络中的数据流量时刻在变,数 据包的路由选择机制会根据数据流量选择路径,不同时刻数 据包会通过不同的路径;并且不同的数据流量还会影响数据 基金项目:国家自然科学基金资助项目(60274035) 收稿13期:2006—07—11修回13期:2006—07—26 ・---——出结果是由于控制算法的不同造成的,还是由于网络时延环 境的变化造成的。 为了研究在同一网络环境下不同控制算法对远程控制 系统的影响,就需要将网络时延环境固定,以保证实验条件 的一致性,为此必须对网络时延进行复现仿真。 102・---—— 维普资讯 http://www.cqvip.com 文献[2]中采用了两种方法对网络时延进行了仿真,一 种是人工延时的方法,调用时延函数对数据包时延进行仿 真,由于它同时调用多个延时程序,调试比较困难;另一种方 法是在接收到数据报后就用数据移动的方法,但这样会造成 信息的丢失,会对远程控制系统产生影响 。 多采样。 同时信息发送端在(k+1) 时刻发送的数据包丢失,而 在(k+2)T时刻发送的数据包先于(k+3) 时刻发送的数据 包到达信息接收端,即出现乱序的情况。 图3是采用UDP传输协议时,在某段时间内因特网的网 络时延环境。 本文运用结构数组对在UDP传输协议下的网络时延环 节进行了仿真,不仅方法简单,而且不会造成信息的丢失,确 保了在同一网络环境下,可以使用不同的控制算法对远程控 制系统进行分析。 2 UDP传输协议下的网络时延 TCP/IP协议族中运输层的协议包括TCP传输协议和 UDP传输协议。UDP在传输数据报之前不需要建立链接,远 程计算机的传输层在接收到UDP数据报之后,不需要做出任 何的应答,因此UDP提供的是一个不可靠的服务,不能保证 信息有序可靠地到达,数据报在传输过程中可能会发生丢失 和乱序的现象。UDP传输协议的代价较小,可以最大限度的 保证信息传送的实时性和快速性的要求,具有TCP传输协议 不具备的高效性,符合控制系统的实时性要求。 图1是基于网络的远程控制示意图 。 图1 基于网络的远程控制系统 在基于网络的远程控制系统中本地计算机和远程计算 机都按时间 定期地发送信息数据包,由于网络时延是个随 机变量,在计算机接收端,一个采样周期内收到的数据包个 数也是个随机数。UDP传输协议下信息的收发示意图如图2 所示 。 信息发送端 信息接收端 图2 信息收发示意图 从图中可以看出,信息发送端每隔时间 发送一个数据 包,由于网络时延的不确定性,在信息接收端,一个采样周期 内收到的数据包个数也是不确定数,在(k+1)T时刻与(k+ 2) 时刻之间,以及(k+3) 时刻与(k+4) 时刻之间,信息 接收端只收到一个数据包发生单采样;在(k+2) 与(k+ 3) 之间没有收到任何数据包发生空采样;而在(k+4) 时 刻与(k+5) 时刻之间,信息接收端接收到多个数据包发生 留 辎 糕 鲻 0 0.2 0.4 0.6 0.8 1 发送数据报时N/s 图3 网络时延 从图中可以看出,数据包的传输存在丢包和后发先至的 情况。 在数据包接收端的大部分采样周期内发生了单采样;在 某些采样周期内,会收到许多数据包发生多采样;在某些采 样周期内却没有收到任何数据包发生空采样。多采样和空采 样是由于网络不确定时延造成的特有现象。 3 网络时延仿真原理 基于网络的远程控制系统是一个离散系统,该系统采用 时间驱动的工作方式,在信息发送端的每个采样点,都定期 地发送控制信息或反馈信息;同时在每个采样点利用收到的 反馈信息或控制信息产生新的控制信息和新的反馈信息。 在图2中,信息接收端在(k+1) 时刻与(k+2) 时刻 之间,收到发送端在 时刻发出的数据包,在该采样周期内 无论该数据包什么时刻到达信息接收端,信息接收端只在(k +2)T时刻才使用该数据包中的信息来产生新的信息,因此 可以认为该数据包的时延被延长为2T;同理信息接收端在 (k+4)T时刻与(k+5)T时刻之间,收到2个数据包,但信息 接收端只在(k+5) 时刻才使用这些数据包中的信息,因此 这些数据包的时延分别被延长为3T和 虽然这些数据包真 实的时延并不是采样周期的整数倍,但由于系统采用时间驱 动方式,只在每个采样点才会使用收到的数据包中的信息, 因此数据包的时延都被延长为采样周期的整数倍,所以要仿 真的网络时延都是采样周期 的整数倍。 如果信息发送端在 时刻发送的第k个数据包的网络 时延D(k)满足: f ≤D(k)≤(f+1)T (1) 其中: Z为大于等于0的整数。 那么该数据包到达接收端的时刻T(k)满足: 一103— 维普资讯 http://www.cqvip.com (k+1)T≤T(k)≤(k+1+1) (2) 数据包n的网络时延D(n)满足: ≤ ≤ +1 (5) 由于该数据包的信息将在(k+1+1) 时刻被使用,那么 要仿真的网络时延D,(k)满足: 掣:z+1 (3) 其中J-为大于等于0的整数。 即该数据包到达接收端的时刻T(n)满足: (n+ ) ≤T(/2)≤(n+ +1)T (6) 在局域网内网络环境较好,网络时延一般为几个毫秒, 数据报的网络时延总是小于采样周期 ,那么数据报总是可 以在一个采样周期内到达接收端,这时要仿真的网络时延是 那么标号 的值必须满足: ≥n+ +1 (7) 一个固定的时间 (即10ms)。 对于跨地域的广域网,其网络时延较大,可以达到几百 毫秒,是采样周期的几十倍,要仿真现广域网的网络时延,可 以在局域网内实现。 要仿真现网络时延,主要是仿真网络环境中的多采样、 空采样和单采样的现象,并且要仿真数据包传输的丢包乱序 现象。 图4是在局域网内实现网络时延仿真的原理图。 本地计算机 远程计算机 输入 :输出 图4 网络时延仿真原理图 本地计算机和远程计算机既可以接收数据包也可以发 送数据包,但由于在局域网环境中,局域网时延要比仿真的 网络时延小得多,因此在前向通道和反馈通道中分别加入人 工时延。 如果加入人工时延D (k)后总是可以使得被仿真的网 络时延等于人工时延D,(k)和局域网时延 (k)之和。 即满足: D,(k)=D£(k)+D。(k) (4) 那么就可以实现对网络时延的仿真。 如果数据包丢失,就相当于其网络时延为无穷大,对其 进行仿真时,只需要将该数据包丢弃。如果数据包没有丢失, 对其网络时延进行仿真时就需要使用结构数组来实现。 4 用结构数组实现网络时延的仿真 可以利用一个结构数组来实现对网络时延的仿真。为了 仿真网络的时延环节,使用一个结构数组C[M][Ⅳ],每个数 组元素都具有结构形式,结构体的成员变量与数据包携带的 信息种类对应,并且还需要增加一个成员变量用来存放数据 包的到达时间。 结构数组C的第一维下标 的大小与信息接收端接收 到的最后一个数据包的时刻相对应。 如果在一次控制过程中,信息接收端接收到的最后一个 一】04一 结构数组C的第二维下标Ⅳ的大小与信息接收端发生 多采样时,在一个采样周期内接到的数据包的个数相对应。 在这次控制中,如果在信息接收端一个采样周期内收到 的数据包的个数最多为z个。 那么标号Ⅳ的值必须满足: Ⅳ≥1 (8) 将某段时间内的数据包的网络时延保存,如果数据包丢 失,为了便于仿真,令其网络时延时延为0。 在局域网内对上述网络时延的具体仿真过程如下: 在信息发送端0时刻发送的第一个数据包P(0)可以很 快到达信息接收端,信息接收端的应用程序读出对应该数据 包的网络时延(要仿真的网络时延),设该数据包网络时延 D(0)满足: ≤ ≤i+1 (9) 』 其中i为大于等于0的整数。 可以知道该数据包到达接收端的时刻Ar(0)应该为: Ar(O)=D(0) (10) 即在[ ,(i+1) ]时段内到达接收端,该数据包中的信 息应该在(i+1) 时刻被使用,那么要仿真的网络时延 D,(0)满足: D,(0)=(i+1) (11) 为了仿真该数据包时延,那么将该数据包的信息和 Ar(0)分别存放在结构数组元素C[i+1][0]的对应成员变 量中。 当信息接收端收到第二个数据包P(1)时,接收端应用 程序读出其对应的网络时延,设其网络时延满足: ≤ ≤J.+1 (12) 可以知道该数据包到达接收端的时刻Ar(1)应该为: Ar(1)=T+D(1) (13) 即在[( +1) ,( +2)T]时段内到达接收端,该数据包 的信息将在( +2)T时刻被使用,那么要仿真的网络时延 D,(1)满足: D,(1)=( +1) (14) 如果 +1=i,可知数据包P(0)和P(1)在同一个采样 周期内到达。 那么将P(1)中的信息以及Ar(1)分别存放在结构数组 元素C[i+1][1]的对应成员变量中。 维普资讯 http://www.cqvip.com 如果 +1≠i,可知数据包P(0)和P(1)不在在同一个 采样周期内到达,那么将数据包P(1)中的信息和Ar(1)存 放在结构数组元素cEj+2][0]的成员变量中。 用结构数组元素C[k][0]中的信息;如果C[k][0]、 C[k][1]、…等多个结构数组元素中存放有数据包的信息, 那就说明发生了多采样,那么信息接收端使用这些所有的结 构数组元素中的信息,并且根据结构数组元素中存放的数据 包到达时间,可以知道发生多采样时,数据包到达的先后次 同理在信息接收端,如果收到数据包P(k),接收端应用 程序读出其对应的网络时延,设其网络时延满足: m≤ ≤m+1 (15) 序。这样就可以实现对所有数据包网络时延的仿真。 』 其中m为大于等于0的整数。 可以知道该数据包到达接收端的时刻Ar(k)应该为: Ar(k)=kT+D(k) (16) 即在[(m+k)T,(m+k+1)?1]时段内到达接收端,该数 据包的信息将在(m+k+1) 时刻被使用,那么要仿真的网 络时延D,(k)满足: D,(k)=(m+1) (17) 如果结构数组元素C[m+k+1][0]还没有被使用,将 该数据包的信息和Ar(k)存放在结构数组元素C[m+k+ 1][0]的成员变量中。 反之,如果结构数组元素C[m+k+1][0],C[m+k+ 1][1],C[m+k+1][2],…,C[m+k+1][n一1]都被使用, 那么就将该数据包的信息和Ar(k)存放还没有使用的结构 数组元素C[m+k+1][n]的成员变量中。 数据包的信息存放在结构数组中具体位置的过程如下 图5所示。 图5 信息存放工作流程图 在将数据包中的信息存放到具体的结构数组元素后,在 信息接收端就可以利用结构数组中的相关信息。 如果信息接收端的应用程序读出对应该数据包的网络 时延(要仿真的网络时延)为0,说明该数据包丢失,那么该 数据包的信息存放在C[0儿i]中,该结构数组元素中的信息 不会被使用。 在每个采样点k,如果结构数组元素C[k][0]没有存放 数据包的信息,那就说明发生了空采样,这时信息接收端不 使用任何信息;如果结构数组元素C[k][0]存放有数据包的 信息,而其它的结构数组元素C[k][i](i>0)中没有存放数 据包的信息,那就说明发生了单采样,这时信息接收端只使 5 网络时延的仿真实例 图6是图2所示网络时延的仿真过程。 信息发送端 信息接收端 仿真时延 图6仿真时延示意图 从图中可以看出信息发送端发送的数据包很快就可以 到达信息接收端。 当数据包P(k)到达信息接收端后,根据其网络时延可 知数据包P(k)的信息被存放在结构数组元素C[k+2][0] 中;当数据包P(k+1)到达接收端后,根据其网络时延,将其 信息被存放在结构数组元素C[0][0]中;当数据包P(k+2) 到达后,根据其网络时延,将其信息存放在C[k+5][0]中; 当P(k+3)到达后,根据其网络时延,将其信息存放在C[k+ 4][0];当P(k+4)到达后,将其信息存放在C[k+5][1] 中。 在信息接收端,采样点k,数据包P(k+1)的信息还没有 被存放在结构数组元素C[0][0]中,因此该数据包的信息不 会被使用;在采样点k+2,才会使用结构数组元素C[k+ 2][0]中的信息,因此在这个采样点使用的也是数据包 P(k)的信息;在采样点k+4按使用结构数组元素C[k+ 4][0]中的相关信息,也就是数据包P(k+3)的信息;在采 样点k+4按次序分别使用结构数组元素C[k+4][0]和C[k +4][1]的相关信息,也就是数据包P(k+2)和P(k+4)中 的信息; 可以看到使用这种方式可以非常简单地在局域网内实 现对网络时延环节的仿真。 6 结束语 通过对网络时延环节的仿真,可以再现网络的时延环 境,这样在研究网络环境下各种不同的控制算法对远程控制 系统的影响时,可以保证网络环境的一致性,因此它是进行 网络远程控制系统研究的基础。 f下转第129页) ...——105...—— 维普资讯 http://www.cqvip.com 所以TCP流。lOOms提供很好的带宽分配测量粒度,相对于路 域网的边缘路由器上,使用链路共享模型可以灵活的定义用 户类别,为不同的组织,不同的通信类型提供特定的QoS保 证,在保证实时数据关键应用性能的同时大大的提高了网络 带宽的利用率。HPFQ算法是当今具有相当优势的调度算法。 参考文献: [1] S Floyd,V Jacobson.Link—sharing and resource management models for packet networks[J].IEEE/ACM transactions on networking,1995,3(4):32~42. 由器中的分组延迟是一个很大的数值。H—WF2Q+算法为 每个TCP流都提供了带宽保证,基本符合网络建立时分配的 带宽百分比。 [2] Bennett,C R Jon,H Zhang.Hierarchical packet fair queueing oN,oFF-4 oN,0FF一3 algorithms[J].IEEE/ACM transactions on networking,1997, 8(5):15—33. ON/OFF一2 [3] 徐雷鸣,庞博,赵耀,NS与网络模拟[M].人民邮电出版社, 20o3. [4]H Jonathan,郭晓雷.!高速网络中的QoS控制(影印版)[M]. 图6 on/Off源的激活周期 清华大学出版社,2004. [5]Douglas E Comer.用TCP/IP进行网际互联(第一卷):原理、协 议与结构[M].电子工业出版社,2001. 30Mbps [6]Jon C R Bennett,Hui Zhang.WF'2Q:worst—case fair weighted fair queueing[C].In Proceeding of IEEE INFOCOM’96, 1996:120—128. 20Mbps [作者简介] 10Mbps 张淑清(1981.1.2一),女(汉族),河北石家庄人, 上海理工大学硕士研究生在读,主要研究方向:网 络服务质量控制,网络流量仿真。 200ms 4000ms 6000ms 8000ms lO00ms OMbps Time/ms 应启戛(1942一),男(汉族),浙江宁波人,同济大 学硕士毕业,教授,博士生导师,研究方向:流量测 量及仪表,先后负责或参加国家攻关项目“介质特性和流动特性对流 量计精度的影响”等科研项目十余项。 图7 TCP对话流的带宽分配 4 结论 链路共享模型是一种先进的分组调度模型,主要用在广 (上接第105页) 参考文献: [1] 王秀英,周俊林,李晓.Internet网络延迟分析与评测[J].计算 机应用研究,1999;(3):18—20. [6]Douglas E COMER.Internetworking with TCP/IP VOLLUM 1 third edition[M].清华大学出版社,1998. [2] 王晓峰,吴平东,任长清等.远程控制系统中再现网络延时的 方法研究[J].北京理工大学学报,2003,23(1):58—61. [3] 任长清,等.基于TCP/IP网络的远程控制系统的研究[c].北 京:中国电工学会第七届学术年会论文集,2001,5:193—197. [4] 王晓峰,等.远程控制系统中实时采样信息的研究[J].计算机 工程与应用,2003,39(4):227—229. _ [樊师杨教沈授建,笃祝研,伟山究从(方事1航9向76583为空一基信)息于,男领网作(络域汉者族的简远应)介,程用山河]控与 西南制研晋信系究城阳统。人 。,博硕士,讲副 一),男(汉族),河南信阳人,副教授, 从事航空测控系统的应用与研究。 杨东升(1974一),男(汉族),河南信阳人,硕士,讲师,从事航空测试 系统的应用与研究。 [5] REN Chang—qing,WU ping—dong.Research of Forecast Arithmetic of Hydraulic Telecontrol System Based on Internet[C].Proceedings of The 2001 International Symposium on Advanced Engineering,2001,10:82—87. 一l29—