远程控制关键技术之混合协议
来源:互联网 发布:湖南传奇网络 编辑:程序博客网 时间:2024/06/05 15:55
远程控制关键技术之混合协议
1.目地?
本文主要阐述远程控制为什么要使用混合协议,那些协议可以用于远程控制类软件,以及如何实现混合协议。
2.为什么要使用混合协议?
随着电脑的防御类软件发展,单个以传统的TCP协议为基础的远程控制,在上线能力上慢慢被削弱了,特别是网络防范比较严格的网络,往往限制比较多,单个的协议难以突破防火墙的限制,所以催生出了基于混合协议的远控。
3.可以用作远程控制类的协议(原则上必须是一种internet协议类型)
a.TCP协议,这个不用解释了,早期远控基本都是基于这个协议的。
b.TCP代理协议(SOCKS4/SOCKS5/HTTP CONNECT模式)模式代理支持,严格来讲,这个只是通讯前一部分需要认证一个代理,后期与TCP协议完全相同。
c.TCP-HTTP-TUNNEL协议,构建HTTP隧道,HTTP隧道有个特点,就是一问一答,这种协议穿透性最强,但是速度最慢,受RTT(包往返周期)值影响比较大,此外,目前网络上讲的HTTP隧道技术都不完善,没有考虑到Squid/ISA/BlueCoat等,代理加速,软件防火墙,硬件防火墙等特殊的细节设置,还有密码设置,认证方式,突破能力与稳定性十分有限。
d.UDP协议,该协议是非可靠传输的,但UDP很容易可以实现内网的穿越(P2P模式),UDP隧道建立,需要开发者自己实现可靠传输。
d.UDP-DNS隧道,利用A记录可以定义自己的DNS解析服务器,利用互联网DNS服务器,把DNS包中转到自己的DNS服务器上,将数据隐藏在DNS数据包内部,实现穿越防火墙的目地,同样UDP-DNS需要自己实现可靠传输。
d.ICMP协议(ping包),通过ICMP协议,构建ICMP隧道,ICMP面向非连接,非可靠传输,需要自己实现可靠传输。
e.其他方式,例如基于raw SOCKET ,ip层自定义数据包,需要自己实现可靠传输。
4.如何实现混合协议
我们可以针对各种协议,大致分为2类,可靠传输与非可靠传输(非可靠传输没有连接,所以相对安全些),我们需要做的第一步就是以非可靠传输为基础,自己实现可靠传输(实现滑动窗口,拥塞控制,自动重传),第二步实现从可靠传输的数据包中提炼与嵌入远程控制数据流;第三步实现混合协议转换为TCP标准数据流,交付控制端处理(保证控制端与协议无关,控制端只要按 TCP协议处理)。
5.混合协议难点
a.将非可靠传输改进为可靠传输,说穿了就是模拟TCP,这个难度是很大的,也很复杂,我本人从事该项研究已经超过3年,就是VTCP技术(目前已经是11.0版本)。
b.建立网络通讯自己的统一模型,以便统一混合协议的使用方式,将代码量减少,稳定性提高。
1.目地?
本文主要阐述远程控制为什么要使用混合协议,那些协议可以用于远程控制类软件,以及如何实现混合协议。
2.为什么要使用混合协议?
随着电脑的防御类软件发展,单个以传统的TCP协议为基础的远程控制,在上线能力上慢慢被削弱了,特别是网络防范比较严格的网络,往往限制比较多,单个的协议难以突破防火墙的限制,所以催生出了基于混合协议的远控。
3.可以用作远程控制类的协议(原则上必须是一种internet协议类型)
a.TCP协议,这个不用解释了,早期远控基本都是基于这个协议的。
b.TCP代理协议(SOCKS4/SOCKS5/HTTP CONNECT模式)模式代理支持,严格来讲,这个只是通讯前一部分需要认证一个代理,后期与TCP协议完全相同。
c.TCP-HTTP-TUNNEL协议,构建HTTP隧道,HTTP隧道有个特点,就是一问一答,这种协议穿透性最强,但是速度最慢,受RTT(包往返周期)值影响比较大,此外,目前网络上讲的HTTP隧道技术都不完善,没有考虑到Squid/ISA/BlueCoat等,代理加速,软件防火墙,硬件防火墙等特殊的细节设置,还有密码设置,认证方式,突破能力与稳定性十分有限。
d.UDP协议,该协议是非可靠传输的,但UDP很容易可以实现内网的穿越(P2P模式),UDP隧道建立,需要开发者自己实现可靠传输。
d.UDP-DNS隧道,利用A记录可以定义自己的DNS解析服务器,利用互联网DNS服务器,把DNS包中转到自己的DNS服务器上,将数据隐藏在DNS数据包内部,实现穿越防火墙的目地,同样UDP-DNS需要自己实现可靠传输。
d.ICMP协议(ping包),通过ICMP协议,构建ICMP隧道,ICMP面向非连接,非可靠传输,需要自己实现可靠传输。
e.其他方式,例如基于raw SOCKET ,ip层自定义数据包,需要自己实现可靠传输。
4.如何实现混合协议
我们可以针对各种协议,大致分为2类,可靠传输与非可靠传输(非可靠传输没有连接,所以相对安全些),我们需要做的第一步就是以非可靠传输为基础,自己实现可靠传输(实现滑动窗口,拥塞控制,自动重传),第二步实现从可靠传输的数据包中提炼与嵌入远程控制数据流;第三步实现混合协议转换为TCP标准数据流,交付控制端处理(保证控制端与协议无关,控制端只要按 TCP协议处理)。
5.混合协议难点
a.将非可靠传输改进为可靠传输,说穿了就是模拟TCP,这个难度是很大的,也很复杂,我本人从事该项研究已经超过3年,就是VTCP技术(目前已经是11.0版本)。
b.建立网络通讯自己的统一模型,以便统一混合协议的使用方式,将代码量减少,稳定性提高。
- 远程控制关键技术之混合协议
- C# 实现远程控制软件的关键技术
- C# 实现远程控制软件的关键技术
- 远程控制关键技术:屏幕控制之一(模拟鼠标)
- 几种远程控制协议
- TCP协议之差错控制
- 功率控制(CDMA关键技术)
- BigData之关键技术
- 人机协作机器人关键技术之零力控制实现方案对比分析
- QQ提取,邮件群发,远程控制,http协议
- QT采用MQTT协议远程控制LED灯
- web采用MQTT协议远程控制LED灯
- 远程控制连接(RFP协议)登陆错误及解决方案
- 计算机网络之远程终端协议TELNET
- 计算机网络之远程终端协议TELNET
- 远程控制编程之反弹端口模式
- 远程控制的简单实现之SSH
- 远程控制的简单实现之TELNET
- 用友年结时存货核算总账结转失败解决方法
- 一些QT的字符转换
- hdu 1172 猜数字
- nginx配置
- 2011的总结(感谢自己,感恩他人)【转自我的新浪博客】
- 远程控制关键技术之混合协议
- oracle impdp的table_exists_action详解
- C++ 类的定义
- VirtualBox cannot ping Windows7 (host), Ubuntu (guest)
- 实体与值对象
- 初来乍到
- Android之AIDL(进程间通信)
- delphi发送邮件(附件+内嵌资源)源码分析
- jdbcl连接oracle数据库