最近开发远程协助,今天在论坛上有人发了关于P2P远程协助的帖子,对我刚好有借鉴作用。在此记录下来,避免以后忘记。
远程协助软件如VNC(Virtual Network Computing)能够帮助用户快速解决计算 机问题,但是目前大部分的远程协助软件都受限于内部网络的连通情况:在两个不同内网中的计算机没办法直接通过TCP(Transmission Control Protocol)建立连接,因此不能实现远程协助功能;通过中间服务器进行数据中转的方式能够帮助内网的应用连通,但是由于所有数据传输都需要通过中间服务器,会受限于中间服务器提供的网络带宽和处理性能。 为了解决这些问题,本论文设计了一套透明的网络代理和中间服务器软件,使 远程协助VNC 软件能跨越内网连接限制,同时利用P2P(Peer-to-Peer)技术降低对中间服务器的性能要求,来支持大量的用户并发使用。本论文要涉及的研究和开发工作包括: 相关技术分析和实现:本论文通过对涉及到远程协助和跨越内部网络的理论和实现技术进行综合研究分析,选择适合跨内网远程协助应用的协议和技术,进行系统的架构设计和实现。 中间服务器技术的研究和开发:设计并实现了支持TCP 中转和P2P 打洞的中间 服务器,能够帮助客户端软件进行跨越内网的互连互通。该中间服务器系统部署在互联网上进行了半年以上的测试运营,大量用户进行了测试使用。同时,通过不断地对中间服务器进行运行分析,获得了大量的实际日志数据,对系统进行性能优化,目前达到了同时支持200 个并发会话的能力。 透明网络代理的研究和开发:设计和开发了一套跟具体的数据传输业务无关的 网络代理程序。透明网络代理通过中间服务器,能够在两个内部网络之间建立一个或者多条透明的数据传输通道。该代理同时支持TCP 和P2P 的传输模式,能够自动选用效率最高的传输模式。在透明网络代理的开发模式下,开发人员能够快速开发出文件传输、语音、视频、桌面远程协助等各种跨越内网的应用。 会话管理的设计和开发:设计了透明网络代理和中间服务器的连接会话的建立、 管理、拆除、监控等机制,以支持大量并发会话的管理。 客户端集成开发模式:设计了多种客户端集成的方式,允许第三方系统能够使 用ActiveX 或者SDK(Software Development Kit)的方式把客户端功能集成在自己的系统中,发布给最终客户。 P2P 协议、基于UDP(User Datagram Protocol)的可靠协议的研究和应用:研究 了P2P 上的打洞算法和UDP 上可靠数据传输的各种协议,在本远程协助软件上对P2P 协议进行了改造和应用,获得了较好的效果。 VNC 开源软件的二次开发:对VNC 进行二次开发,使之能够通过透明网络代理, 完成跨越内部网络的远程协助功能。 本文转自狗窝博客51CTO博客,原文链接http://blog.51cto.com/fxh7622/562950如需转载请自行联系原作者