无标题文章

文档目的

本文阐述了控制网关中软件的实现,一个是检测和控制MPTCP传输参量的程序。
由于控制网关是Linux平台,根据Linux平台的特点,在Linux内核中已经编译了MPTCP的传输层文件的基础上,本网关软件的研发采用“Shell编程”+“MPTCP配置文件”的方案,从而实现对传输参量的方便可靠监控。

程序设计

具体来说,Shell脚本是跟Windows下的批处理文件类似的脚本程序,可以将各类命令预装入一个文件中,因此通过Shell脚本程序访问预编译进内核的MPTCP配置文件,也就是说Shell编程可作为MPTCP配置文件的编程接口。网关控制软件的框架如下所示:


无标题文章_第1张图片

MPTCP的主要配置文件有:mptcp_enabled、mptcp_checksum、mptcp_syn_retries、mptcp_debug、mptcp_path_manager.
这些配置文件具有不同的监控传输参量的功能,功能说明如下:
mptcp_enabled:控制MPTCP的开关,实现MPTCP与传统TCP之间的切换;
mptcp_checksum:控制MPTCP传输层中数据序列号校验和(DSS-checksum)的开关,DSS-checksum主要跟传输可靠性相关;
mptcp_syn_retries:指定SYN的重传次数,SYN里包含了MP_CAPABLE选项字段。通过此配置文件,SYN将不会包含MP_CAPABLE选项,这是为了处理会丢弃含有未知TCP选项的SYN的网络中间件;
mptcp_debug:调试MPTCP,控制是否打印debug报告文件;
mptcp_path_manager:MPTCP路径管理,有三个不同的配置值,分别是default/ndiffports/fullmesh,分别可以选择单路、多路或者全路进行传输。其中单路是指跟传统TCP状态一样还是用单一的TCP子流进行传输,多路是当前所有TCP子流中用户选择x条子流数进行传输,全路是指将当前所有可用的TCP子流应用到网络传输中[7]

通过预留的编程接口,在Shell脚本程序里访问以上所述的配置文件,从而监控当前的传输参量,对MPTCP进行传输管理,程序的算法设计如下:


无标题文章_第2张图片

根据此算法设计图,用Shell编程语言编写可以访问MPTCP配置文件的Shell脚本程序,实现对当前传输参量的监控。
程序实现

Shell脚本程序的详细代码如下:

本系统成功在安装并编译了MPTCP的网关里编写了网关软件,网关软件实现了如下功能:

1)利用MPTCP的预留接口控制传输参量,达到根据网络环境变化调整传输参量的目的;

2)网关软件供用户实时查看传输层参量,获知当前网络传输情况,以此可选择是否调整;

3)将Linux命令集成到了一个程序中,提供了不同于传统Linux终端的界面,具有用户友好的操作。

你可能感兴趣的:(无标题文章)