各位大侠好,小弟在工作中碰到困难,想请求大家指点一下,客气话不多说了。以下是我的问题
我要做一个代理服务器软件的客户端(服务端另外有人做,我不管),最终目的是通过双线服务器中转数据实现跨网访问(电信访问网通),以此来提升访问速度(比如电信客户端下载网通服务器上的文件会很慢,通过双线服务器做数据传输中转就可以提升下载速度)
工作原理如下:
(C表示使用电信上网的客户端,S2表示代理服务器的客户端,P表示双线服务器,S表示网通服务器)我是使用电信上网(C);
而访问的远程服务器是网通(S);
有一个双线服务器,运行代理服务器的服务端(P);
代理软件客户端运行在我的计算机上(S2)。
原先的访问方式是 C-S(电信客户端直接访问网通服务端)
现在我先运行S2,再访问S,访问方式就变成了 C-S2-P-S
即代理服务器和双线服务器在电信和网通之间做数据转发
现在我已经通过HOOK截获到了S的IP及其端口,并且能够通过S2向P进行数据发送(S2把电信发给网通的数据发给双线服务器)
需要请求大家解答的问题: 原先C和S的连接如何处理?
因为运行S2以后,C通过S2和P建立连接,而且只接收P转发来的数据,不再需要和S建立连接,也不需要接收S发来的数据
以上的方法全部是我设想的,具体还没全部实现。不知道是否正确。
祝大家身体健康

解决方案 »

  1.   

    我觉得你的想法不错不过最终效果不会和设想一样,很简单的道理,你的P是用什么接入的?电信还是网通?无论是哪个都会导致你在跨网的访问速度慢。两个网络瓶颈就在于实现跨网的哪个环节,所以无论你中间走多少步,如果依然存在C-S这一步就不能根本解决问题。
      

  2.   

    [我是楼主] tomcat_jb(老猫) ( ) 信誉:98  2006-08-10 14:38:00  得分: 0  
     
     
       我觉得你的想法不错不过最终效果不会和设想一样,很简单的道理,你的P是用什么接入的?电信还是网通?
    ===============================================================================
    P是双线服务器,同时连接电信和网通  
     
      

  3.   

    类似NAT的处理模式,P负责和S连接,然后把S返回的数据转发给S2,S2处再做一次NAT转换,可以使得S2,P对于C透明
      

  4.   

    细节:
    C 请求连接 S
    S2 截获数据包分析地址,如果目标地址是网通的,重新封包,把IP地址和连接请求转发给P处理,否则直接转发给目标地址
    P 接到S2的连接请求,解开封包,记录请求源S2的地址,和S建立连接
    P 收到S的连接确认包,重新封包,转发给S2
    S2 收到P发来的包,直接转发给C
    重复以上步骤,完成一次透明中转连接
      

  5.   

    [我是楼主]
    to  ranqd(亲切器):
    谢谢你。还有几个问题希望你解惑一下。路过的大侠也帮忙说说好吗?数据中转和截获数据包我可以实现
    可电信客户端在启动的时候,会连接到网通服务器。现在使用代理服务器进行数据转发,电信和网通的连接已经不再需要。如何取消这个连接呢?这一步如何解决? 
      

  6.   

    这些根本不需要写程序了吧,有现成的,你需要的
    1.一台双线接入的服务器(接入电信和网通的双线)
    2.在这台双线接入的服务器,安装个支持Socks5和HTTP的代理软件(ccproxy或其它)
    3.在客户端安装E-border通过e-border挂入双线服务器,再访问网通或电信,速度就加快了.