计算机系统应用  2022, Vol. 31 Issue (8): 286-291   PDF    
基于Android设备的异构无线链路聚合软件
赵琦, 张新有     
西南交通大学 计算机与人工智能学院, 成都 611756
摘要:由于人们对随时随地传输数据的需求日益增加, 当前单一异构无线网络通信的低带宽和高抖动严重影响了用户对移动设备的使用体验, 针对移动设备尤其是Android移动设备对异构无线网络链路聚合的实际需求, 本文提出了一种在移动设备上将移动数据网络和WiFi网络两种异构无线网络进行链路聚合的实现方案. 该方案基于应用层开发, 跳过下层复杂的数据包封装过程, 不改动移动设备的硬件配置. 文中阐述了无线链路聚合的工作原理与设计思路, 并在Android手机上进行编程实现与测试. 测试结果表明异构无线链路的聚合方案能明显地提高网络带宽, 提高文件传输速度.
关键词: 移动设备    无线异构网络    链路聚合    应用层    Android    负载均衡    
Heterogeneous Wireless Link Aggregation Software Based on Android Devices
ZHAO Qi, ZHANG Xin-You     
School of Computing and Artificial Intelligence, Southwest Jiaotong University, Chengdu 611756, China
Abstract: Due to the increasing demand for data transmission anytime and anywhere, the low bandwidth and high jitter of the communication of a single heterogeneous wireless network seriously affect users’ experience of mobile devices. Considering the actual demand of mobile devices for link aggregation of heterogeneous wireless networks, especially the demand of Android mobile devices, this study proposes a scheme to realize link aggregation of mobile data networks and WiFi networks, two heterogeneous wireless networks, on mobile devices. The scheme is based on the application layer development, which skips the complex packet encapsulation process of the lower layer and does not change the hardware configuration of a mobile device. In this study, the working principle and design idea of wireless link aggregation are described, and the program is implemented and tested on Android phones. The test results show that the aggregation scheme of heterogeneous wireless links can significantly improve network bandwidth and file transfer speed.
Key words: mobile device     heterogeneous wireless network     link aggregation     application layer     Android     load balancing    

随着网络技术的发展及网络应用的增多, 人们对网络传输速度等要求越来越高. 为了应对这一状况, 研发人员们提出了各式各样行之有效的方法. 从硬件层面上, 研发高带宽流量的网络设备如千兆, 万兆网卡等; 从软件层面上, 开发新的通信协议, 或将多条网络链路聚合成单条链路, 让其拥有更高的网络带宽和更好的网络质量等. 由于更换网络硬件设备成本较高, 且容易遇到设备不兼容等问题, 相对而言, 链路聚合成本更低, 对设备硬件不需要做改动, 是满足高质量网络链路应用需求最经济实用的方式.

当前移动用户占据了很大的比例, 一般的移动设备通常只搭载单张无线网卡或者使用不同类型网络的多张网卡, 但同一时刻仅能使用单条网络链路进行通信传输[1]. 且受环境条件的影响, 实际使用速率远远达不到理论速率. 本文针对移动设备的异构无线网络链路聚合研究, 基于应用层提出了为移动设备提供更快网络传输、且经济性, 可行性均比较高的解决方案.

1 技术分析 1.1 链路聚合

链路聚合是网络技术领域中一个专用术语, 主要的操作方式是将不同的物理接口汇聚在一起, 虚拟成为一个逻辑接口, 再使用这个逻辑接口连接网络, 由于该逻辑接口是由多个物理接口汇聚而成, 因此拥有更高的带宽. 链路聚合通常和负载均衡算法配套使用, 负载均衡算法能根据当前每条物理链路的网络状况将数据包分发给不同的链路来达到最优的网络传输质量. 由于链路聚合是通过多个物理端口汇聚而成, 因此聚合的链路还拥有更高的冗余, 在某条链路断开的情况下其他链路能保持工作, 获得更高的可靠性[2]. 因此, 链路聚合在增加链路带宽、实现链路传输弹性和工程冗余等方面是一项很重要的技术[3].

1.2 异构无线链路聚合

在传统有线网络的链路聚合过程中, 需要参与汇聚的物理端口类型相同, 网络类型相同, 而异构无线网络存在网络设备不同, 网络类型不同, 速率不同, 且网络状况动态变化的特点, 因此不能简单地依靠聚合多个物理端口实现. 在业内也有不少机构对异构无线网络链路聚合进行研究, 典型的有两种路线: 一是通过对异构无线网络的信号进行调制, 如华为某款型号手机使用了一种叫载波聚合的信号调制技术, 将不同连续信道进行合并, 再把各信道的无线信号进行调制, 让无线信道带宽增加, 使得流量信号作为WiFi信号的补充, 实现异构网络链路聚合[4], 该方式需要专用的无线天线设备, 成本较高. 另一种路线是开发新的无线通信协议, 文献[5]中描述了一种通过开发专门的数据链路层协议来规范网络链路中的数据包达到数据链路层实现链路聚合的目的. 该方式需要专业的网络设备配合, 与市面上主流的网络设备不兼容, 仅能够小范围专用设备应用. 文献[6]描述了一种现阶段应用于部分高端手机上的Link Turbo技术, 可实现WiFi网络和流量网路的链路聚合, 但该技术不仅需要修改系统内核并适配专业的芯片, 还需要运营商的网络设备和后端资源服务器设备添加通信协议栈支持, 现阶段并没有广泛使用. 通常上述两种技术路线是封闭的, 第三方开发人员无法进行功能扩充.

2 方案设计与实现

通过对移动设备的无线异构网络链路聚合进行技术分析, 可知要实现链路聚合, 现有的技术路线均存在一些难以解决的问题, 如果从信号调制的方向, 需要移动设备搭载专业的天线设备以及其他配套设备, 成本过高[7]. 如果开发网络协议, 也即是从数据链路层进行聚合, 则市面上常规的网络设备无法匹配该协议并支撑网络.

TCP/IP作为一个有着广泛应用的网络协议簇, 将网络划分成5层, 即物理层, 数据链路层, 网际层, 运输层和应用层, 层次结构屏蔽了层次实现的细节, 让网络结构更加简单和实用[8,9]. 在5层协议结构中, 网络设备一般工作在物理层, 数据链路层, 网络层; 如果异构无线链路在这3层进行聚合, 就需要相应的网络设备进行配合, 甚至对网络设备进行更改, 这样会造成应用环境要求高, 成本上升等问题. 而在应用层进行开发实现, 可以避免更改基础网络设施. 因此可以从应用层着手, 开发一款异构无线链路聚合的代理软件, 通过某种有效的方式来控制各链路的传输工作, 实现异构无线链路聚合的目的.

2.1 方案设计

Android智能手机通常搭载了接收WiFi信号的无线网卡和接收移动流量信号专用的3G/4G网卡, 并可以分别接入两种不同类型的网络, 根据实际使用需求在两种网络中进行灵活切换, 满足本文所需要的网络设备条件.

从应用层出发实现异构无线网络链路聚合, 最适宜的方式是开发一款基于安卓手机的APP. 将移动设备从移动网络基站接收到的流量网络链路和从无线路由器接收到的WiFi网络链路进行应用层上的代理链路聚合. 为了测试链路聚合的传输速度与常规的单一网络传输速度相比的优势, 可以从一个FTP服务器下载多个文件, 通过在不同网络环境下进行多次测试, 比较单一的数据流量网络, WiFi网络和聚合网络的流量以及耗时来论证应用层异构无线网络链路聚合的可行性与优势, 无线链路聚合示意图如图1所示.

图 1 异构无线链路聚合示意图

2.2 软件设计

通过对需求进行分析, 本文设计的APP主要有3个模块: 网络状况判断模块, 下载模块, 结果展示模块. 软件模块结构如图2所示.

图 2 软件模块结构

网络状况判断模块主要用于判断当前设备连接的网络状况, 并反馈给下载模块, 为下载模块初始化相应下载链路提供依据. 下载模块根据网络状况, 初始化移动流量下载链路, 或者同时初始化移动流量下载链路和WiFi下载链路. 获取到文件列表后, 下载模块根据选定的下载方式对文件进行下载. 下载完成后, 通过结果展示模块展示下载文件完成情况, 该软件的流程图如图3所示.

图 3 软件流程图

2.2.1 网络状态判断模块

安卓的开发库提供了ConnectivityManager函数库, 可以用于判断当前设备连接网络类型[10]. 一般情况下, 设备是默认连接了移动流量网络的, 如果设备仅开启了流量网络, 则仅能通过移动流量网络下载, 如果设备连接了WiFi网络, 则可以通过WiFi网络下载以及聚合网络下载, 网络状况判断模块流程图如图3虚框所示.

为了实现这一功能, 其中关键代码如下:

ConnectivityManager connMgr = (ConnectivityManager) DownLoadActivity.this.getApplicationContext( ).getSystemService(Context.CONNECTIVITY_SERVICE); //获取管理类对象

NetworkInfo gprsinfo=connMgr.getActiveNetworkInfo();

int type=gprsinfo.getType(); //获取网络类型参数, 0为流量网络, 1为WiFi网络

if(type==0) //若连接类型为流量网络

 { bindService(gprs_intent, gprs_conn,

 Context.BIND_AUTO_CREATE);} //初始流量下载链路

else if(type==1) //若连接类型为WiFi网络

 {

 bindService(gprs_intent,

 gprs_conn, Context.BIND_AUTO_CREATE); //初始流量下载链路

 bindService(wifi_intent, wifi_conn,

 Context.BIND_AUTO_CREATE); //初始WiFi下载链路

 }

2.2.2 下载模块

APP成功判断网络类型并连接到服务器后, 将获取的服务器文件列表显示出来, 用户选定要下载的文件后即可下载. 该模块提供了3种下载方式也即3个下载按钮以方便比较耗时大小. 点击相应的下载按钮即可进行下载, 移动流量下载对应单一流量网络下载, WiFi下载对应单一WiFi网络下载, 聚合下载对应聚合网络下载.

使用单一链路下载是通过监测选定的链路空闲状态, 若链路没有下载任务, 则按照下载文件列表依次分配一个文件进行下载, 并将链路状态置为忙碌, 当分配的单个文件下载完成, 链路状态置为空闲, 立刻分配下一个文件, 单链路下载流程图如图4所示.

使用聚合网络下载是通过监测子链路状态, 使用轮询法分配各子链路下载不同文件实现链路聚合的负载均衡[11], 例如需要下载文件1, 文件2, 文件3, 文件1正在由WiFi链路下载, 如果此时移动流量链路空闲, 那么向流量链路发送下载文件2的命令, 利用流量链路开始下载文件2并将链路状态置为忙碌, 此时两条子链路均为忙碌. 程序会反复获取链路状态, 若文件2下载开始后不久, WiFi链路下载完文件1, WiFi链路置为空闲, 则立刻向WiFi链路发送下载文件3的命令, 使用该链路下载文件3, WiFi链路状态置为忙碌, 直到下载全部文件, 聚合网络下载流程图如图5.

图 4 单一链路下载流程图

图 5 聚合网络下载流程图

2.2.3 结果展示模块

为了便于获取实验结果数据, APP下载全部文件后, 展示模块将展示下载文件的总数, 下载成功文件总数, 下载全部文件的总耗时, 单个文件下载的耗时, 单个文件下载使用的网络链路, 其中如果选择了聚合网络下载, 还会显示每条子链路下载的文件总数和每条子链路的总耗时(如图6).

图 6 展示模块示意图

3 测试与分析 3.1 FTP下载测试

在实际文件传输过程中, 应用程序一般会使用网络协议的需求将大文件分割成许多的小文件块, 将其填入文件发送流队列[12], 当链路空闲时, 将文件块从文件发送流队列中取出送入发送链路. 本文为了模拟网络协议对文件的分块操作, 在服务器上放置了40个大小范围为[2.5, 8] MB, 平均大小为5 MB的图片文件.

不同的环境下, 数据流量信号和WiFi信号强度不同, 一般情况下, 信号强度和传输速率成正比. 在手机系统中, 信号强度范围是[–30, –120] dbm, 信号强度大于–70 dbm为信号强, 小于–70 dbm为信号弱, 为了实验数据更贴合实际情况, 我们使用了专业的网络测速软件来测试各链路信号强度, 以–70 dbm为分界线, 选取了WiFi信号强流量信号弱的环境, 流量信号强WiFi信号弱的环境, WiFi信号与流量信号强度都比较强的环境分别对单一数据流量链路下载, 单一WiFi链路下载, 聚合网络下载各进行了15次FTP下载测试, 将各下载方式耗时数据, 聚合链路下载中每条子链路下载文件数进行了统计.

3.1.1 WiFi信号较强, 流量信号较弱环境

在该环境下, WiFi信号的强度较强, 流量信号强度较弱, 各链路下载耗时统计结果如图7所示.

图 7 WiFi信号较强环境下耗时统计

在使用聚合链路时, 各子链路下载的文件数目如图8所示.

3.1.2 流量信号较强, WiFi信号较弱环境

在流量信号较强, WiFi信号偏弱的环境下, 测试结果如图9所示.

在该环境下使用聚合链路时, 各子链路下载文件数目统计如图10所示.

图 8 聚合网络子链路下载文件数目

图 9 流量信号较强环境下耗时统计

图 10 聚合网络子链路下载文件数

3.1.3 WiFi信号与流量信号强度都比较强的环境

该环境下, WiFi信号与流量信号强度均比较强, 测试结果如图11所示.

在该环境下, 使用聚合链路下载时各子链路下载文件数目如图12所示.

图 11 信号强度都比较强环境下耗时统计

图 12 聚合网络子链路下载文件数

3.2 测试结果分析

从测试结果可以看出, 两种无线链路在同一环境下均存在速率波动, 尤其以信号强度低的网络波动更为突出. 但是在信号强度均为弱情况下, 流量信号的波动程度比较小. 单一流量链路耗时的波动区间比起单一WiFi链路波动区间更小, 在流量信号强度低的环境下, 波动区间仍然能保持在平均水平基础上[–100, +200] s左右, 这是由于移动流量的信号基站的发射功率更大, 信号更稳定, 覆盖范围更广; 而在WiFi信号偏弱的时候, 单一WiFi链路下载波动区间较大, 在这种环境下, 波动区间能达到平均水平基础上[–50, +400]秒左右, 这是因为发射WiFi信号的无线路由器功率较小, 受综合因素影响较大. 聚合链路的传输速度在某一种信号偏弱的环境下与较强信号的链路相比虽然有一定程度的优势, 但是相差不大. 聚合链路与强链路耗时相比少花费100–120 s, 传输速度提升仅6%–10%左右. 这是由于在这种环境下的聚合网络中, 信号较强的链路承担了较多的下载任务, 从聚合网络下子链路下载文件数目上就可以看出来, 信号强的子链路下载了85%–88%的文件, 这就使得聚合链路的传输速度接近于强链路, 这与传统的有线网络链路聚合汇聚了两个差别较大的物理端口造成的结果近乎一致.

在两种信号强度相差不大的环境下, 两种链路网络的传输速度比较稳定, 两种单一链路传输速度近乎一致, 但单一流量链路的耗时数据波动区间略小于单一WiFi链路耗时数据波动区间. 两种单一链路总耗时均在1655 s左右浮动, 这种环境下聚合网络的传输速度提升明显, 较单一链路传输速度提升了37%左右, 基本耗时平均分布在1020–1100 s左右. 从各子链路下载文件数目上来看, 各子链路均承担了大约一半的下载任务, 使得传输速度有了较大的提升, 这种情况类似于传统链路聚合中汇聚了两个相同网络状态的物理端口, 是一种接近理想状态下链路聚合的情况.

4 结论

实验证明, 应用层链路聚合能充分发挥各链路的潜力, 是一种能显著提高网络传输能力的技术. 与传统的链路聚合在数据链路层实现相比, 应用层实现链路聚合同样能实现相同的功能. 在异构无线链路聚合的研究中, 调制信号或者开发协议都有着一定的局限性, 而从应用层开发实现异构无线链路聚合, 既能满足提高网络传输速度和质量的需求, 又有着成本低, 应用范围广的特点, 可以充分发挥出设备能连接的异构无线链路的能力. 为了模拟实际传输过程中将大文件切割成文件块进行传输, 我们设置了许多大小相差不大的小文件进行下载. 在未来的研究工作中, 会考虑开发一个根据链路状况对大文件进行动态合理分割, 并根据链路实时质量将文件块合理分发给各子链路的算法[13], 由于无线链路存在信号不稳定的情况, 算法还应兼顾丢失数据重传等功能, 使应用层的异构无线链路聚合进一步满足高传输速度, 高可靠性的需求.

参考文献
[1]
苏运坤. 异构无线网络并行传输的多路径路由技术[硕士学位论文]. 北京: 北京邮电大学, 2014.
[2]
Yin XG, Gan WM. Research on high reliability in redundant link aggregation mode. Journal of Physics: Conference Series, 2021, 1883(1): 012015. DOI:10.1088/1742-6596/1883/1/012015
[3]
苏德虎. 基于链路聚合的WLAN高效数据传输技术研究[硕士学位论文]. 西安: 西安电子科技大学, 2018.
[4]
李文锋, 容静宝. LTE-Advance载波聚合技术运用场景及技术展望. 广东通信技术, 2017, 37(4): 42-46. DOI:10.3969/j.issn.1006-6403.2017.04.010
[5]
李野. 基于Wi-Fi的多模无线传输设计与实现[硕士学位论文]. 武汉: 华中科技大学, 2016.
[6]
网宿科技: 新技术在华为新机型中应用. 股市动态分析, 2018, (50): 30.
[7]
Munusamy N, Vijayan S, Ezhilarasi M. Role of clustering, routing protocols, mac protocols and load balancing in wireless sensor networks: An energy-efficiency perspective. Cybernetics and Information Technologies, 2021, 21(2): 136-165. DOI:10.2478/cait-2021-0024
[8]
彭赟, 刘志雄, 刘晓莉, 等. TCP/IP网络体系结构分层研究. 中国电力教育, 2014(15): 38-39, 64. DOI:10.3969/j.issn.1007-0079.2014.15.019
[9]
王田. OSI与TCP/IP网络模型分析. 天津职业院校联合学报, 2013, 15(2): 61-64. DOI:10.3969/j.issn.1673-582X.2013.02.015
[10]
饶润润. 基于安卓操作系统的应用软件开发[硕士学位论文]. 西安: 西安电子科技大学, 2014.
[11]
黄琦. 异构无线网络中多路径并行传输调度算法以及重传算法设计[硕士学位论文]. 北京: 北京邮电大学, 2014.
[12]
Bany Salameh H, Shamekh A. Adaptive packet-size control for improved throughput in dynamic access networks. Cluster Computing, 2021, 24(3): 1935-1944. DOI:10.1007/s10586-021-03237-z
[13]
Cahyadi DA, Efendi R, Hakim FN. Optimalisasi throughput menggunakan link aggregation berbasis open source (studi kasus: PT selaras eka citra pariwara). Transformatika, 2015, 12(2): 53-61.