背景
TCP协议增强器,是指将TCP/IP协议栈中传输层的TCP协议进行增强,使之符合一些复杂网络环境的参数要求(如时延、误码率、速率等)的一种应用层软件技术,将TCP协议增强器编译在PC上,可以作为一般网络和复杂网络通信的桥梁,或者说转换网络环境的网关,其应用示意图如下:
上图中,客户端如果要访问服务器网页,由客户端发送的连接请求经过左边的TCP协议增强器GW1增强,成功传输到右边的TCP协议增强器GW2,然后转换成原来的TCP包再发送给服务器,这样就能在复杂网络环境下也能建立连接并进一步传输数据。
TCP协议增强网络系统的关键部分是TCP协议增强软件,这是在github上可下载的开源软件,实现在Linux平台上,编译后软件运行在应用层,将传输层的TCP协议进行增强,转换成复杂网络环境需要的协议,适应某些网络环境的复杂性。本片博客中说明了该软件的编译和配置,并搭建模拟通信环境,对于TCP协议增强器的技术实现方案进行测试和抓包验证。
要求和术语
****TCP增强网络系统的一般技术要求:(1)两个增强器直连:网络层Ping通,传输层正常进行Socket通信,应用层正常进行HTTP传输;(2)两个增强器通过网线连接同一个路由器,:网络层Ping通,传输层正常进行Socket通信,应用层正常进行HTTP传输;其中TCP协议增强器应用软件按照编译方式的不同分为TUN模式和TAP模式,前者是点对点方式,后者是模拟以太网设备的方式,本博客主要介绍TUN方式。术语TCP:TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,广泛应用与互联网TCP/IP协议栈的传输层中。TAP:TCP协议增强器的TAP模式,也可说是以太网连接模式。此外TAP还是一种虚拟网卡模拟方式.TUN:TCP协议增强器的TUN模式,也可以说是一种点对点设备。此外TUN还是一种虚拟网卡模拟方式.Tap/Tun虚拟网卡工作原理:http://www.ibm.com/developerworks/cn/linux/l-tuntap/Namespace:一种虚拟空间的实现方式,简单来说就是在一台PC上可以实现类似于两台PC通信的效果,将TCP协议增强器应用软件放在客户端虚拟空间内,然后虚拟空间外的浏览器就可以认为TCP协议增强器是在另一台PC上。在Linux上创建虚拟空间参考:http://blog.csdn.net/dog250/article/details/26147357
编译
源码编译首先介绍TAP模式的TCP协议增强器源码编译过程:1 在Ubuntu平台上解压缩源码包2 解压后进入source文件夹,修改Makefile.in文件中Versionon
date\nCompile-time改为Version
on date
Compile-time,即用空格代替原来的”\n”2cd ../apps3./configure4cd ../source5./configure --gateway=yes –tap=yes6cd ..7make clean,make再介绍TUN模式的TCP协议增强器源码编译过程:1 在Ubuntu平台上解压缩源码包2 解压后进入source文件夹,修改Makefile.in文件中Versionon
date\nCompile-time改为Version
on date
Compile-time,即用空格代替原来的”\n”2cd ../apps3./configure4cd ../source5./configure --gateway=yes --tun=yes6cd ..7make clean,make
测试
4.1 TCP增强器软件与客户端独立的方案4.1.1 测试拓扑4.1.2 测试步骤1.内核配置。按照上述的内核配置内容修改rp_filter和reverse path2.源码编译配置。按照上述的源码编译内容编译成TUN模式。3.工具安装。安装必备工具brctl和Wireshark。4.网络地址配置。按照下面的ip配置给各个网口分配ip地址
5.在TCP协议增强器的resource file(rfile)中绑定各个网口,并开启,rfile配置见用户手册。6. IP和rfile确定正确配置完后,开启两个TCP协议增强器。在这里将4和6所述的操作都写在一个shell脚本中,只需执行这个脚本文件即可。7. 在客户端上ping服务器地址192.168.2.2,能够ping通则进行下一步。在客户端PC上运行socket程序客户端并指定本机ip(192.168.1.2),同时在服务器PC上运行socket程序服务器端并指定本机ip(192.168.2.2)和对端ip(192.168.1.2),socket通信成功则进行下一步(socket程序见其他博客)。在中间的PC上运行Wireshark抓包。8. 确保服务器端Apache开启后,在客户端PC的浏览器输入服务器ip(192.168.2.2),能正确显示预先写好的服务器页面,包括文字和图片,并能下载服务器上的文件。这时同样在中间的PC上运行Wireshark抓包。
功能配置/注意事项
在测试过程中,如果发现传输速率过慢,则可以在rfile配置中对传输速率进行更改,如果发现传输到一部分断开传输,则对缓冲区进行调整。具体调整见TCP协议增强器目录下内置的配置手册。