可动态配置的移动网络协议设计研究

(整期优先)网络出版时间:2021-11-30
/ 2

可动态配置的移动网络协议设计研究

任俊

成都云顶科技有限公司

摘要:文章提出了一种新的解决方案,它通过扩展ICMP协议灵活地实现了协议层之间的事件传输通道。随后描述了为了获得这种动态适应性,应用程序和网络协议所做出的改动。最后针对最为流行的和UDP和TCP协议详细介绍了实现步骤及关键技术。

关键词:移动网络;动态配置;传输层协议;因特网控制消息协议


本文的研究重点是对网络协议及网络应用程序提供动态 适应性支持,这需要使它们了解下层网络的环境参数。在固 定网络中有些参数是已知的,例如通信代价、延迟及带宽。 但是移动网络的出现使这些参数不再固定,而且引入了一些新的参数,例如信号强度、机器位置和能量等。上层协议根 据这些参数的变化来动态调整自己的行为以取得最佳性能。


1 设计方案

下层网络的环境参数与上层应用是无关的,所以想上层 传输参数的机制也应该与应用层无关。一种很自然的想法是 使设备层对所有协议栈可见(不透明),每一个协议层都可以从设备层取出参数并采取相应操作,但这种方法给网络协议带来了较重的开销,况且不是所有的环境参数都是重要的。一种折中的办法是当参数值变化“显著”时,给对该参数感兴趣的协议栈发出一个通知消息,这种变化也就是通常所称的“事件”。 使用一些门槛值来表示这些“显著变化”,本文称之为“多级阈值”。之所以引入多级阈值这个概念,是为了防止大量的事件,有些哪怕是微小的变化中断了协议栈的正常运行。

    1. 事件报告机制

为了使网络协议能够适应下层变化,下层环境信息必须向上传播至所有的协议层。采取的办法是产生ICMP消息,利用它携带下层事件给协议层。实际上ICMP消息已经被成功地用来传输一些网络利用率方面的信息,这儿利用它传输设备相关的参数。 利用ICMP消息传输网络环境信息有许多优点:首先 ICMP消息是通用的,得到广泛使用而且证明高效好用。与 把设备层向上层全部公开不同,ICMP消息提供了一种控制机制,一个层间快速通道,把相关信息传播上去。另外ICMP消息的来源没有严格限定,在本机运行的后台进程或在其它机器上运行的进程都可以发出ICMP消息。而且收到 ICMP消息后的操作与ICMP的产生机制无关。

1.2 向上层应用传输事件

需要根据事件调整行为的应用程序必须创建一个数据报套接字来与底层通信,一个简单的库函数接口如下:

request_event (int sd, char *devname, char * paramname, Boolean signal) ;

sd为套接字描述符,devname为设备名,paraname为参数名(包括事件类型),signal指示事件发生时是否发一个软中断。该函数再套接字的操作表中登记一项,该表项包括套接字描述符、该应用的进程ID以及它关心的时间类型。当该事件发生时一个ICMP消息被接收并放入该套接字的接收缓冲区中,应用程序再需要了解底层信息时只需通过系统调用去读取该套接字内容即可。作为一个可选项本机制也支持异步方式,当事件发生时发一个软中断通知应用程序。

    1. 向协议层传输事件

网络协议也需要根据低层环境的变化来调整自己的行为。现有的某些传输层协议,如TCP就做过这方面的工作,协议不断监测网络拥塞情况和报文往返延迟,并作出相应调整,滑动窗口机智就是一个典型的例子。但是移动网络的出现带来了更多的参数需要适应,而且这些参数往往突然改变,现有的协议级适应性不足以处理这些新参数。为此引入了一种“操作表”机制来对协议进行动态调整。所谓操作就是传输层协议预定义的一些函数,可以用它 们调整协议的某些状态参数,从而改变协议的行为。而如果让应用程序定义这些操作可能破坏协议的安全运行,所以本系统不允许用户自己定义操作。由于这些操作在核心态运行,因此不能太复杂,实际上操作仅仅是设置协议栈中的相关参数。如果能正确合理地调整这些参数,是可以成功地改变协议行为的。

2 对协议栈的修改

UDP本身是无状态的,没有提供较多参数来微调自己的行为,但可以在协议栈中加入一些额外参数,例如睡眠,丢弃,缓冲和失败等来调节UDP的行为。每发送一个新报文前都必须对这些参数进行检查,当有事件表明网络环境恶化 到发送报文开销太大时,可以让进程睡眠,当网络环境得到 好转,又可以唤醒进程。在实时应用中没必要重发丢失报文,所以当有事件表明报文丢失的概率较大时可以丢弃报文。在非实时应用中也可以考虑在协议栈中把报文缓冲起 来,使应用程序可以继续运行而不堵塞,当情况好转时再把缓冲报文发送出去。对TCP的调整要比UDP复杂,TCP栈中提供了许多参数来改变自己的行为,所以它的操作集也就比较复杂。

3 实现方法

原型系统构造如下:无线局域网中包括固定机及一些移动机,固定机是运行Linux 3 的奔腾工作站,移动机是运行 Linux的便携机, 2Mbps, 基站和移动机的无线借口最大速率为 而且基站有一个10/100Mbps自适应以太网卡与有线局域网连接,移动IP软件包为纽约州立大学开发的自由软件。

3.1 UDP的修改

尽管UDP是一种不可靠传输层协议,但在无线环境下 移动机切换服务单元(转交)时,报文丢失率也会高得无法 忍受。如果能在转交时把报文传输推后,就可以大大降低报 文丢失率。在本方案中可以用一种简单的办法来实现。 首先引入一种设备参数“可用性(avail)”来表示转交程的状态,随后对移动IP软件包的后台进程代码(daemon)进行修改,调用本系统提供的库函数set_dev_param_threshold()设置阈值。一开始可用性参数初始化为0 ,表明此时设备不可用,当移动机检测到基站(侦听基站发送的信标beacon 帧),参数值设置为25,越过了阈值设备进入可用状态。当移动IP后台进程检测到要发生一次转交,它把可用性参数设为45,越过阈值3,当转交结束,再把参数设为55,这表明转交完毕,即移动机移到一个新位置或转交失败仍留在原单元,无论哪中情况都可以开始传输数据了。这时参数值马上设回25,越过阈值并清掉阈值3和4。开始新一轮转交时重复以上周期。

3.2 作为发送方时对TCP的修改

在有线网络中报文丢失一般是由网络拥塞引起的,所以当发送方在规定时间内没有得到确认,则假设拥塞发生并进入回退算法放慢发送速率。然而在无线网中这种办法只会起反作用,造成无线信道利用率降低。设备驱动程序不断监测信号质量参数,如果超过高阈值则发送一条ICMP消息。当套接字sd中的操作TCP_ RST_TIMER被调用时,与sd相关的重发定时器及回退值被设为一个较小的值。如果没有这个修改,TCP将一直等待重发定时器超时(指数回退算法已把该值设得很高),当链路质量改善后,修改后的TCP比一般TCP更快恢复正常。

3.3 作为接收方时对TCP的修改

当转交时数据发送方进入回退算法放慢发送速度,而当转交结束进入正常状态时,发送方也需要一段时间才能恢复正常发送速度。这时接收方可以立即发送一些重复的确认消息来触发发送方的TCP重传机制。可以进一步多发几次确认,多余的确认可以起到扩大发送方拥塞窗口的作用。

总结

本系统为协议的动态调整引入了一种新的机制,在使用该机制修改协议代码时需要注意 阈值的设置、滞后性、操作集的选择:传输层提供一些预定义的操作集来调整自己的行为,该集合中应该包含哪些操作也是下一步要考虑的。

参考文献

  1. 张军,王远强,朱新山.改进PSO优化神经网络的短时交通流 预测[J].计算机工程与应用,2017,53(14):227-31,45.

  2. 甘文道,周城,宋波.基于RAN-RBF 神经网络的网络安全态 势预测模型[J].计算机科学,2016,43(S2):388-92.

  3. 马洪伟.基于蚁群算法的RBF神经网络优化算法[D].青岛大 学,2009.

[4] 黄智宇,曹玉恒,基于GA-RBF网络的磷酸铁锂电池SOC预测 研究[J].重庆邮电大学学报(自然科学版), 2013,25(3):412-7