美文网首页
无标题文章

无标题文章

作者: westolife | 来源:发表于2016-03-25 20:49 被阅读27次

    背景

    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文件中Versionondate\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文件中Versionondate\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地址


    注意:服务器端要把相邻网口的IP设为默认网关,这样在Ping的时候才能让网口找到不同网段的目的IP地址。5.TCP协议增强器的resource file(rfile)中绑定各个网口,并开启,rfile配置见user_manual。6. IP和rfile确定正确配置完后,开启两个TCP协议增强器。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抓包。4.2 TCP增强器软件内置于客户端(虚拟空间内)4.2.1 测试拓扑 4.2.2 测试步骤1.内核配置。按照上述的内核配置内容修改rp_filter和reverse path2.源码编译配置。按照上述的源码编译内容编译成TUN模式。3.工具安装。安装必备工具tunctl/brctl和Wireshark在客户端PC上创建Namespace,并在虚拟空间Namespace上启动TCP协议增强器(还有一种方案是在虚拟空间Namespace上创建虚拟网卡)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协议增强器目录下内置的配置手册。

    相关文章

      网友评论

          本文标题:无标题文章

          本文链接:https://www.haomeiwen.com/subject/fdldlttx.html