APP下载

基于半实物仿真的Semi-TCP协议的实现与测试

2021-12-10姜胜明

计算机仿真 2021年11期
关键词:开发板实物无线网络

单 翔,姜胜明

(上海海事大学信息工程学院,上海201306)

1 引言

多跳无线网络是一种无中心的分布式网络,在吞吐量、丢包率以及端到端时延等通信效率层面上具有较大的不确定性,而TCP是针对有线网络设计而成,网络中发生丢包即当做拥塞,在其中易产生拥塞误判,通信效率低下。基于跨层设计思想产生的Semi-TCP协议,对传输层的端到端拥塞控制功能引入数据链路层的MAC层[1]。通过逐跳的拥塞控制,使得拥塞判断更为准确,充分避免拥塞误判,加快拥塞控制速度,明显优化了多跳无线网络下节点通信效率。

对于Semi-TCP协议,已经有过大量软件仿真层面上的实现和测试,譬如文献[2]中提出的一种基于RTS/CTS反馈机制的实现方法。文献[3]中提出的在文献[2]的基础上改进RTSC/CTSC,使其携带拥塞信息。文献[4]中提出的通过ACK携带拥塞信息,通知发送节点是否拥塞。文献[5]中提出的在传输层和MAC子层之间增加一个虚拟层VTCP,通过VACK,即虚拟ACK帧来调节滑动窗口及发送速率,并且将RTS帧中的subtype字段修改,从而判定是否拥塞。文献[6]中发明了在节点被动侦听以及网络中通信数据帧自动调度实现方法。在硬件仿真层面,文献[7]以ARM开发板为实际节点,通过软定义数据帧的方式,使得帧体域携带节点缓存信息,从而传递拥塞信息。文献[8]以nRF51822蓝牙开发板做为实际节点,提出了将Semi-TCP与ARQ联合实现的方法。上述实现方法充分验证了其可行性和优越性,但软件仿真和硬件仿真都存在一定局限性,前者因为多跳无线网络的复杂环境,很难进行精确建模,无法准确反映Semi-TCP在实际环境中的性能表现;后者目前仅局限于单跳网络情形的实现和测试,因为硬件平台自身MAC内存较小,不具备存储转发功能,难以构成多跳系统,虽得到的实验数据较为准确,但灵活性差,成本高、效率低,在极端条件下无法获得系统的性能指标。

针对上述问题,提出半实物仿真方法对Semi-TCP进行实现和测试。与文献[2]-文献[8]相比,该方法中Semi-TCP协议易于实现安装,代码量改动较小,仿真结果比软件仿真更真实可靠,且不用受硬件仿真中MAC层内存的限制,网络规模符合多跳情形。

2 Semi-TCP协议介绍

2.1 Semi-TCP协议原理

Semi-TCP协议主要是针对传统TCP协议中的拥塞控制功能进行改动,重新规划了传输控制层以及数据链路层等各层功能分布。分离拥塞控制功能,将其引入到数据链路层中去。它仅保持可靠性控制功能。结合IEEE802.11的DCF机制在MAC层进行拥塞控制。Semi-TCP协议架构如图1所示。

图1 Semi-TCP协议架构

Semi-TCP协议是通过节点自身的拥塞判断来进行无线网络中的拥塞控制。判断某节点是否拥塞,主要取决于该节点中的缓存值与拥塞阈值之间的关系。当缓存值超过设置的拥塞门限时,节点状态变为拥塞状态,节点快速将拥塞信息反馈给之前的节点。导致源节点很快可以控制网络数据流量以减少拥塞。通过节点本身判断是否发生拥塞,可以提高拥塞判断的准确性,提高拥塞处理的效率,并减少网络中的拥塞持续时间。

2.2 Semi-TCP协议实现和测试场景

本文中Semi-TCP协议实现和测试场景为多跳无线网络,具体包含两个部分,虚拟场景和真实场景。

虚拟场景为运行Exata软件的主机所构建的虚拟网络。Exata是一款优秀的网络仿真软件,区别于前身QualNet,其拥有模拟和仿真双内核,依靠完善的协议库对无线网络进行仿真,使仿真网络可以准确替代实际的网络环境。开发人员可以根据需要来添加和修改相关协议,是一个测试协议及其增强功能的良好平台。Exata协议栈结构如图2所示。

图2 Exata协议栈结构

EXata协议栈的每一层都执行各自特定的网络功能,通过仿真系统的函数库自带的接口(API)在相邻层之间交换信息。不相邻层无法直接通信。譬如,传输层中协议主要是提供发送方到接收方之间的数据传输,流程首先从网络层获取数据包,对数据包进行处理并将其传递给应用层;之后从应用层接收数据包,处理之后向下传递到网络层。然而,传输层和MAC层的协议不能直接交换信息。如果为特定网络设计了新的网络协议,譬如本文所设计的Semi-TCP协议,研究人员可以基于跨层设计以编程方式实现。

真实场景为两块TiPot开发板以操作主机的身份所构建的真实网络。TIPoT研发平台套件是功能丰富的科学研究和原型开发平台,用于实验性研究或开发无线传感器网络原型设备,以及用于在基于IEEE 802.15.4的无线传感器网络上运行TCP /IPv6协议的解决方案标准。可以使用此平台来设计和开发具有完整TCP /IPv6网络功能的低能耗,低速率自组织无线传感器网络。用户可以轻松地访问自己的传感器,添加网络节点,并基于设计的IPv6无线传感器网络开发和评估新应用程序的功能和性能。

装有Exata软件的PC机作为仿真服务器,在仿真服务器中搭建虚拟网络,两个真实设备TiPot开发板作为操作主机,将操作主机与仿真服务器中的虚拟节点建立映射关系并通过修改相关函数配置映射参数,从而实现操作主机与仿真服务器的数据交互。此外,通过修改传输层TCP协议文件,并加入到Exata模型库中的Makefile—common文件,来将Semi-TCP协议加入Exata自带的协议栈,以此实现并测试Semi-TCP协议在多跳无线网络中的通信效率。

3 Semi-TCP半实物仿真平台

3.1 半实物仿真介绍

半实物仿真(hardware in loop simulation)使用真实网络设备在网络中加载比较复杂难以模拟的部分,譬如一些随机的、非线性的构成,简单部分则在虚拟环境中进行建模[10]。相比于其它系统测试和仿真方法,譬如软件仿真、硬件仿真等传统测试方法,半实物仿真可以实现对真实环境模拟的更高的准确度,并且是仿真技术中置信度最高的方法[11],其主要有以下应用场景:

1)检查构成实际系统的某些物理组件或全部系统的性能表现和可靠性。

2)仿真系统中的某些模块难以精确建模一些随机的、非线性的影响因素,导致仿真结果很难取得预期效果。

3)检查实验中建立系统是否正确可靠,数学模型的仿真结果的是否具有可信度。

3.2 平台组成

本文实现基于Semi-TCP协议的半实物仿真平台,平台由真实和虚拟两个场景部分组成。虚拟场景部分为PC机中运行的Exata软件构建而成的仿真服务器,是一个典型的多跳无线网络,如图3所示;真实场景部分为TiPot开发套件所构成的操作主机,如图4所示。

图3 虚拟网络实验场景图

图4 真实网络实验场景图

3.2.1 虚拟场景-Exata仿真服务器

虚拟场景的搭建包括以下部分:对真实网络拓扑进行建模、对网络中的每个节点建模、发送源建模以及信道建模等。本文实验场景中设置8个无线节点,包括1个源节点、1个目的节点和6个中间节点,源节点和目的节点之间有一条CBR的业务流量,这些节点分布在500m*500m*100m的三维空间中,通信参数设置如表1所示。选用Exata自由协议库中的TCP协议模型,在此基础上加入Semi-TCP协议文件,建立基于Semi-TCP协议的仿真场景,对其进行仿真与分析。

表1 通信参数设置表

3.2.3 真实场景-Tipot操作主机

真实场景部分为TiPot开发套件所构成的操作主机,该开发板使用基于ARM Cortex的 STM32F103微处理器(MCU),其无线通信由符合IEEE 802.15.4标准的ATMEL AT86RF231无线收发芯片实现。使用免费的开源嵌入式操作系统Contiki,在映射为虚拟节点之前,使用C++语言编写客户端和服务端收发函数对操作主机进行收发TCP通信测试。

左边开发板为发送节点,发送信息“Semi-TCP半实物仿真平台测试<序列号>from shanxiang.”到接收节点。右边开发板为接收节点,接收从发送节点发来的数据流,最终在Eclipse的Console窗口中与RSSI(接收信号强度)以及LQI(链路质量指示)数据一起显示,如图5所示。

图5 开发板通信试验测试图

测试实验具体包含以下步骤:

1)用J-Link仿真器连接客户端节点板并刷TCP-client固件。

2)断开客户端节点板和J-Link仿真器的连接。

3)用J-Link仿真器连接服务器端节点板并刷TCP-server固件。

4)客户端节点板连接上电源(比如用另一条micro USB线接到计算机)。

5)在Eclipse里运行服务器端的应用。2.3 Semi-TCP协议实现方法

3.3 Semi-TCP协议实现方法

在前面真实场景和虚拟场景分别搭建完成之后,需要将真实网络接入虚拟网络,使两者能够连接为一个整体半实物网络,进行数据流的通信交互,Semi-TCP半实物仿真平台整体示意图如图6所示。

图6 Semi-TCP半实物仿真平台

操作主机映射接入主要包括以下步骤:

1)三者通过路由器或者以太网交换机连接在同一个局域网下面;

2)将网关地址设置为仿真服务器的IP地址;

3)仿真服务器主机上运行Exata软件并搭建多跳无线网络场景;

4)在Exata软件工具栏中选择仿真模式为Emulation,之后选择Mapping按钮,在连接管理器对话框中为两个操作主机分配IP地址,如图7所示。

图7 IP地址分配图

最后,在Exata无线网络协议模型库中加入semi-TCP协议进行实现和测试,步骤如下:

1)创建头文件和源文件,并修改

transport.cpp以包括协议头文件;

2)在传输层协议列表中添加协议并追踪协议,定义协议数据类型,决定协议特定的配置参数格式;

3)阅读协议的参数类型并调用从传输层协议初始化方法TRANSPORT_Initialize进行初始化;

4)编写协议的构造函数;

5)调用协议事件调度器TRANSPORT_ProcessEvent;

6)在协议头文件api.h里面声明新的事件类型;

7)与网络层集成协议,为协议定义一个ip协议号,撰写一个函数来使iP层发送数据到协议,调用函数DeliverPacket来从ip层发送协议;

8)把代码加入到不同的函数中来收集数据;

9)从传输层析构函数TRANSPORT_Finalize调用协议析构函数;

10)编写协议析构函数,在协议析构函数中调用该函数来输出统计信息;

11)在EXata和编译中包括头文件和源文件;

12)修改GUI设置文件,在ExataGUI中使用该协议文件。

4 半实物仿真Semi-TCP协议的测试

Exata中的包含的Analyzer分析器可以对实验结果进行分析,针对Semi-TCP协议,本文从平均端到端时延、平均丢包率以及平均吞吐量三个指标来衡量其性能。首先,分别在半实物仿真方法和软件仿真方法下对Semi-TCP协议进行测试,对比并分析两种方法的差异性;接着在本文所搭建半实物仿真平台的基础上将其与传统TCP以及TCP-AP进行比较,验证其在多跳无线场景的可行性和优越性。

4.1 半实物仿真和软件仿真

对虚拟节点1和虚拟节点2不进行地址映射操作,在同一场景下针对Semi-TCP协议进行软件仿真测试,和半实物仿真进行对比,性能指标如图8、9和10所示。选定发送频率为1次/s,针对两种不同的方法列出具体的通信指标量,如表2所示。

图8 平均端到端时延

图9 平均丢包率

图10 平均吞吐量

表2 方法对比表(1次/s)

分析上述图表可知,在发送频率为0.1次/s的时候,两者通信效率大致相等,差值接近为0%,当随着发送频率以0.2次/s的间隔逐渐增大,半实物仿真的通信效率明显差于软件仿真,差距接近于30%~40%,但是更接近于真实数据[7],分析主要两个原因:第一,半实物仿真的网络配置模式为真实网络-虚拟网络-真实网络,较之软件仿真的纯虚拟网络,需要经过真实数据流和虚拟数据流的转换过程;第二,真实网络的环境远比虚拟网络复杂得多,对通信效率有更多的影响因素。考虑到半实物仿真将实物设备加入到仿真场景,可以比软件仿真获得更加真实的测试数据,后续仿真中也将在本文所搭建Semi-TCP半实物仿真平台下进行半实物实验,从而提高仿真置信度,为Semi-TCP协议的不断完善和开发相关硬件设备的提供真实可靠的仿真依据。

4.2 Semi-TCP和TCP、TCP-AP

同样是从平均端到端时延、平均丢包率和平均吞吐量三个通信指标出发,本文在搭建的半实物仿真平台的基础上,对Semi-TCP和TCP以及TCP-AP三种协议进行测试,比较三者在多跳无线网络中的性能表现。如图11、12和13所示。选定发送频率为1次/s,针对三种协议列出具体的通信指标量,如表3所示。

图11 平均端到端时延

图12 平均丢包率

图13 平均吞吐量

表3 协议性能对比表格(1次/s)

分析上述图表可知,当发送频率为0.1次/s的时候,三种协议通信效率大致相等,此时看不出优劣。当发送频以0.2次/s的间隔逐渐增大,网络中的通信效率明显变差,相比之下,Semi-TCP协议的通信效率仍然是其中最好的,比传统TCP高20%,比TCP-AP高10%左右。分析主要有以下原因:一是刚开始数据量少,网络负载较小,导致数据冲突量少,随着发送频率不断增大,网络中负载也随之不断增大,数据冲突量急剧增加;二是三种协议的拥塞机制的区别,TCP认定丢包即拥塞,持续调整滑动窗口使得发送速率得以减小,TCP-AP通过判断丢包的类型而改变发送优先度,Semi-TCP能够精确到节点之间的拥塞,准确的对节点进行拥塞调节。

5 结语

对于软件仿真无法准确还原真实环境,硬件仿真受限于MAC层内存及网络规模等问题,提出半实物仿真方法,搭建半实物仿真平台,在此基础上对Semi-TCP协议进行实现和测试。仿真结果表明,在多跳无线场景下,Semi-TCP比TCP协议及一些改进的TCP协议通信效率更好;与软件仿真相比,半实物仿真具有更高的置信度水平。后续将在本文所搭建的Semi-TCP半实物仿真平台基础上对Semi-TCP协议进一步研究,以期提出更好的实现方法。

猜你喜欢

开发板实物无线网络
基于无线网络的高速公路电缆防盗报警系统设计
时间触发卫星无线网络同步仿真研究
聚类分析和神经网络的无线网络流量预测研究
无线网络安全漏洞及防范策略
基于Verilog语言的4位二进制可逆计数器的设计
关于场与实物关系的一种探索
开发板在单片机原理及接口技术课程教学中的应用
班主任进行实物分析的实践路径
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证
MiniGUI在基于OMAP5912开发板上的移植