计算机系统应用  2019, Vol. 28 Issue (4): 212-217   PDF    
利用多路无线传输的并行网关系统
吕峰1,2, 杨海波2, 贾正锋2     
1. 中国科学院大学, 北京 100049;
2. 中国科学院 沈阳计算技术研究所, 沈阳 110168
摘要:随着移动设备的快速发展, 工业应用对无线网络的速度与质量要求越来越高. 然而目前无线网络的发展速度缓慢, 远远没有满足实际需求. 因此针对无线网络传输速度与质量的瓶颈问题, 本文提出一种利用多路无线传输的并行网关系统. 该系统利用一对并行网关建立多路无线连接, 实现以太网帧数据的并行传输, 以此提高无线网络的传输速度. 并且并行网关之间使用UDT传输协议进行数据传输, 以此提高数据的传输质量.
关键词: 并行传输    UDT    并行网关    以太网帧    无线网络    
Parallel Gateway System Using Multi-Channel Wireless Transmission
LYU Feng1,2, YANG Hai-Bo2, JIA Zheng-Feng2     
1. University of Chinese Academy of Sciences, Beijing 100049, China;
2. Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168, China
Abstract: With the rapid development of mobile devices, the requirement of wireless network speed and quality for industrial applications is getting higher and higher. However, the development of wireless network is slow and far from meeting the actual needs. Therefore, in view of the bottleneck problem of wireless network transmission speed and quality, this study proposes a parallel gateway using multi-channel wireless transmission. The system uses a pair of parallel gateways to establish a multi-channel wireless connection to realize the parallel transmission of Ethernet frame data, so as to improve the transmission speed of wireless networks. Moreover, UDT transmission protocol is used for data transmission between parallel gateways to improve the quality of data transmission.
Key words: parallel transmission     UDT     parallel gateway     Ethernet frame     wireless network    

引言

有线网络的传输速度从10 Mbps、100 Mbps发展到1 Gbps、10 Gbps. 但是无线网络的发展速度远远达不到有线网络的发展速度水平. 目前小型有线局域网络大都可以实现1 Gbps的传输速度, 而无线网络的理论速度只有100 Mbps、300 Mbps, 实际情况下会因为距离和干扰等原因使得传输速度远远达不到300 Mbps的理论速度. 移动网络的速度虽然在高速发展, 但传输速度也大都在100 Mbps以下[16].

无线网络的传输速度瓶颈问题, 极大限制了需要通过无线网络传输大量数据设备的发展. 特别是目前摄像设备, 许多移动高清摄像设备所录制的视频并不能通过单个移动无线网络终端将数据传输到中心服务器. 特别对于汽车、轨道列车等移动场景, 需要一套使用并行传输技术提高网络速度的系统来解决该问题[710].

本论文针对单个无线网络传输瓶颈的问题, 设计并实现了并行传输网关系统. 在不需要改变网络层与应用层协议的情况下, 通过在无线传输两端添加专用的并行网关, 将数据链路层以太网数据包进行重新封装后通过多个无线网络并行传输数据, 提高无线网络的传输速度. 网关之间的数据传输是基于UDT数据传输协议, 网关只要与无线设备之间网络连通即可, 数据会通过系统原来的方式进行路由.

1 以太网数据帧与UDT传输协议 1.1 以太网数据帧格式

以太网帧格式, 即在以太网帧头、帧尾中用于实现以太网功能的域. 以太网帧格式多达5种, 但今天大多数TCP/IP应用都是用Ethernet V2帧格式(IEEE 802.3-1997改回了对这一格式的兼容), 而交换机之间BPDU(桥协议数据单元)数据包则是IEEE 802.3/LLC的帧, VLAN Trunk协议如802.1Q和Cisco的CDP(思科发现协议)等则是采用IEEE 802.3SNAP的帧[11,12].

以太网的帧由:前导码、帧起始定界符、目的MAC地址、源MAC地址、类型/长度、数据、帧校验序列这些字节组成. 具体帧结构和字段意义如表1.

表 1 以太网帧格式表

1.2 UDT数据传输协议

基于UDP的数据传输协议(UDP-based Data Transfer protocol, UDT)是一种互联网数据传输协议, 是建于UDP之上的可靠传输协议. UDT是面向连接的双向的应用层协议. 它支持可靠的数据流传输和部分可靠的数据报传输, 同时传输效率要远远高于TCP[1315].

2 并行传输网关系统结构设计 2.1 整体机构

实现并行传输需要有三个独立系统和设备, 一是移动端的网关; 二是服务器端; 三是目标网络的网关.

其中, 移动网络网关与外部目标网络网关是同一种配置不同的设备即并行网关, 用来并行收发数据. 服务器端配对两端网关设备. 结构设计如图1所示.

并行网关与服务器之间网络联通, 服务器协调多个并行网关之间的网络联通, 使之成对进行传输. 并行网关将收发数据进行并行收发处理, 进入网关的数据会被分成多路传输到对端, 网关会将接收到的多路数据组合成一路数据输出. 其中多路的传输速度由各路网络速度决定, 多路组合的速度不能也不会超过各路传输速度的总和[1619].

图 1 并行网络传输结构图

2.2 系统逻辑结构

系统的设计思想是将以太网层的数据通过传输层进行传输, 由传输层完成并行传输控制. 每路UDT通过物理上的一路传输网络进行连接, 保证从每路UDT收发的数据是从不同的无线网络进行传输的. 可以将UDT的客户端与服务器设置成不同网段的地址, 物理连接时不同网段地址连接会被不同的物理网络分开. 最后数据汇聚到并行网关.

从网卡接收数据后由上层处理数据时前导码与帧开始符是使用不到的, 实际帧从目的MAC地址开始. 如果将以太网的数据帧并行传输到指定目标, 需要以下两个功能:

1) 对以太网的帧进行编号, 确保在传输到指定目标前进行排序, 防止以太网帧乱序.

2) 更改目的MAC地址为实际的目标MAC地址.

并行传输处理的过程:

1) 将网关从内部网络接收的以太网数据, 去除目标MAC地址, 添加加消息头部(消息编号, 时间戳), 组成新的帧数据. 消息头部(编号、时间戳)定义:

typedef struct msgheader

{

unsigned int msgindex:16;

int ts;

};

数据的帧格式会进转换, 原以太网帧格式如表2所示, 新帧格式如表3所示.

表 2 原以太网帧格式表

表 3 新帧格式表

2) 由不同的物理连接网络将新的帧数据作为数据通过UDT(n路)可靠传输到对端并行网关.

对于接收到的UDT数据进行解头, 将消息头部提取, 将头部后面的信息重新添加目标MAC地址后组成新的的以太网帧数据. 通过头部信息进行排序后, 由单路有线网络发送到指定目标. 具体的逻辑结构设计如图2所示.

解决并行控制与并行数据处理的问题方法:

1) 每路UDT的传输速度不一致, 要保证数据包会按照每路UDT传输的速度分配相应的数据量, 就要实现每路UDT进行抢占式的发送方式. 每路UDT强占到资源后会立即进行发送, 发送完毕后再次进入就绪状态.

2) 数据包的顺序问题, 丢包处理. 对传输过来的数据包根据包头中的msgindex进行排序(序号可以设置为0–n的循环数字, n可以设置为80 000以上的大数), 确认数据包的顺序. 设置超时机制, 保证不会因为个别数据包的超时, 影响后续数据包.

3) 不同并行网关之间的联通问题. 解决这个问题需要在网络可达的地方放置并行数据处理服务器. 每台并行网关首先连接服务器, 由服务器进行并行网关之间的匹配与建立连接.

图 2 并行网络传输逻辑结构图

3 并行传输网关系统的实现

使用Linux系统的x86多网口工控机来实现并行传输网关设备. 实际应用场景中网络连接的简图如图3所示.

图 3 网络拓扑简图

并行传输网关设备的一路网口A连接内部网络, 其它多路网口Bi连接无线或其它外部传输网络. 内部网络发往外部网络和外部网络发往内部网络的数据, 经过并行网关进行转发.

数据经过以下步骤进行并行转发:

1) 内部网络数据发往外部网络数据. 内部网络发往外部网络的以太网数据帧, 会发送到并行传输网关的A网口.

在并行传输网关中, 通过Linux内核中的Netfilter架构[20,21]. 首先在内核中添加特殊的网络桥接模块read_kernel.ko. 即在数据进入到L2(数据链路)层时, 截获数据, 通过目标MAC判断是否是内部网络数据, 如果是则不处理, 数据走正常流程. 如果不是, 去除数据中的源MAC地址, 将剩下的数据写入到虚拟设备write中[22,23]. 内核程序通过虚拟设备与用户程序进行数据交换. 内核程序流程图如图4(a)所示.

然后UDT处理转发程序通过读取write虚拟设备获得L2层的以太网数据帧(已经去除源MAC地址). 在以太网数据帧上添加消息头部(编号、时间戳), 然后将数据写入到阻塞队列, 由多路的UDT连接线程抢占式的读取阻塞队列, 最后将数据发送到UDT对端程序. 数据即被发送到连接目标设备的并行传输网关中.

2) 外部网络数据发往内部网络数据. 外部网络发往内部网络的数据, 会由添加头部的UTD数据携带, 发送到并行传输网关的UDT接收程序.

UDT处理转发程序接收到对端UDT发送的数据, 首先解析头部, 得到数据包的编号与时间戳. 通数据包的编号判断是否是顺序的数据包, 如果是则将数据包去除消息头部后写入到read虚拟设备中, 如果不是, 进行小范围排序后写入到read虚拟设备中. 用户程序通过read虚拟设备将数据发送到linux内核程序中, 完成数据交换.

在内核中添加write_kernel.ko模块, 模块程序首先读取read虚拟设备中的数据. 获取以太网数据帧, 添加源mac地址后, 开辟skb_buff空间, 将数据赋值给skb_buff, 最后通过dev_queue_xmit发送数据. 程序流程图如图4(b)所示.

UDT在程序中起到了上层转发的过程, 将数据包的路由交给了默认的系统路由. 上层并行处理的程序流程如图4(c)所示.

图 4 程序流程图

4 速度损耗与实验结果

新的数据帧会添加上UDT的包头, 所以数据在传输时会有速度的损耗. 速度的损耗与数据载荷大小n有关, 原以太网的数据包大小为n+20, 使用UDT进行数据传输的数据包大小为62+n, 损耗率计算公式为:

$sr = 1 - \frac{{20 + n}}{{62 + n}}$ (1)

数据载荷大小n的取值范围[0, 1438], 所以速度的损耗率sr的取值范围[0.028, 0.687].

n越大速度的损耗越小, 当数据高速传输时, n值较大, 所以损耗率相当小. 在实际使用并行网关的场景中速度的损耗几乎可以忽略.

不同网络实验的情况下, 网络传输的速度情况如表4所示.

表 4 并行传输实验对照表

并行传输网关是否能发挥最大效果, 与实际的网络情况有一定关系, 在大延时, 丢包比较严重的情况下不适合使用并行传输网关系统进行并行传输来提高网络速度, 可以使用并行传输网关系统进行冗余传输以改善网络丢包严重的情况. 而在网络相对良好的情况下, 并行传输网关系统可以有效提高网络的传输速度. 多路并行传输的利用效率在80%–90%之间.

5 总结

并行网关传输系统, 适用于无线多路传输的场景, 与有线多路传输的应用场景中. 在移动端的网关添加不同运营商的网络模块, 可以提供多运营商的并行传输网络, 通过各运营商之间的信号覆盖互补, 可以提高更加有效的网络. 进行配置可以提供速度叠加高速网络或冗余可靠网络. 但是该系统在某种程度上增加网络的延时, 所以不太适合需要超低延时的场景.

参考文献
[1]
胡建萍, 于少华. WiMAX无线网络性能测试. 计算机系统应用, 2012, 21(5): 180-183.
[2]
李晓阳. WiFi技术及其应用与发展. 信息技术, 2012(2): 196-198. DOI:10.3969/j.issn.1009-2552.2012.02.057
[3]
古辉, 朱则孝. 以太网告警指示信号的改进及实现. 计算机系统应用, 2011, 20(4): 231-234. DOI:10.3969/j.issn.1003-3254.2011.04.052
[4]
吴爱国, 梁瑾, 金文. 工业以太网的发展现状. 信息与控制, 2003, 32(5): 458-461, 466. DOI:10.3969/j.issn.1002-0411.2003.05.016
[5]
陈积明, 王智, 孙优贤. 工业以太网的研究现状及展望. 化工自动化及仪表, 2001, 28(6): 1-4, 9. DOI:10.3969/j.issn.1000-3932.2001.06.001
[6]
姚旺, 李璞, 李环, 等. 千兆以太网高速数据通信记录系统. 计算机系统应用, 2016, 25(12): 78-82.
[7]
彭康, 赵泽, 陈海明, 等. EasiARS: 多模通信传感网的动态WiFi链路接入及自适应组网方法. 计算机研究与发展, 2015, 52(12): 2736-2749. DOI:10.7544/issn1000-1239.2015.20140667
[8]
罗军舟, 吴文甲, 杨明. 移动互联网: 终端、网络与服务. 计算机学报, 2011, 34(11): 2029-2051.
[9]
李晓阳. WiFi技术及其应用与发展. 信息技术, 2012(2): 196-198. DOI:10.3969/j.issn.1009-2552.2012.02.057
[10]
朱近康. 未来移动通信的技术挑战和解决方案. 电子学报, 2004, 32(S1): 6-10.
[11]
Kramer G, Pesavento G. Ethernet Passive Optical Network (EPON): Building a next-generation optical access network. IEEE Communications Magazine, 2002, 40(2): 66-73. DOI:10.1109/35.983910
[12]
刘昭, 金德鹏, 曾烈光. 10G以太网帧同步系统的研究. 高技术通讯, 2004, 14(5): 5-9. DOI:10.3321/j.issn:1002-0470.2004.05.002
[13]
Bernardo DV, Hoang D. Network security considerations for a new generation protocol UDT. 2009 2nd IEEE International Conference on Computer Science and Information Technology. Beijing, China. 2009. 125–130.
[14]
Gu YH, Grossman R. UDTv4: Improvements in performance and usability. In: Vicat-Blanc PP, Kudoh T, Mambretti J, eds. Networks for Grid Applications. Berlin Heidelberg: Springer, 2008. 9–23.
[15]
Gu YH, Grossman RL. UDT: UDP-based data transfer for high-speed wide area networks. Computer Networks, 2007, 51(7): 1777-1799. DOI:10.1016/j.comnet.2006.11.009
[16]
余东平, 张剑峰, 王聪, 等. 多路并行传输中数据调度算法的优化. 计算机应用, 2014, 34(5): 1227-1231.
[17]
敖志刚, 解文彬, 胡琨, 等. 新一代以太网的结构模型和并行传输设计. 电子科技大学学报, 2013, 42(5): 773-777. DOI:10.3969/j.issn.1001-0548.2013.05.025
[18]
宋飞, 苏伟, 张宏科, 等. 多路径并行传输中吞吐量的建模与分析. 电子学报, 2010, 38(4): 887-893.
[19]
宋飞, 王博, 张宏科, 等. 多路径并行传输中接收缓存阻塞问题的研究. 电子学报, 2010, 38(3): 552-555.
[20]
Wu WZ. Research and implementation of kernel module loading technology based on Linux firewall. Microcomputer Information, 2009, 25(15): 57-59.
[21]
Zhang GH, Zhang YQ, Zheng YC. Implementation of message monitor based on LKM and Netfilter/iptables. Computer Engineering, 2005, 31(20): 61-63.
[22]
姚晓宇, 赵晨. Linux内核防火墙Netfilter实现与应用研究. 计算机工程, 2003, 29(8): 112-113. DOI:10.3969/j.issn.1000-3428.2003.08.043
[23]
王宏健, 邵佩英, 张籍. 基于Linux内核防火墙Netfilter的安全应用的设计方法. 小型微型计算机系统, 2001, 22(12): 1516-1518. DOI:10.3969/j.issn.1000-1220.2001.12.029