大討論兼散分:通過代理服務器(如SyGate等)上網的QQ是如何接收信息的?(300)(100分)

  • 主题发起人 主题发起人 h_q_p
  • 开始时间 开始时间
H

h_q_p

Unregistered / Unconfirmed
GUEST, unregistred user!
據我所知,點對點的消息傳輸在Delphi中2分鐘可以搞定,但通過代
理後,如A是192.168.0.2,代理服務器B wan口是202.102.203.11,Lan
口為192.168.0.1,目標機C地址為202.104.20.121,A通過B代理後能
順利到C,但C信息可到B,那如何到A?有聽說過端口映射?那又該如
何實現呢?而QQ在在A機不但可將信息發往C機(當然包括以C機做代理
的D機),反過來C機信息也能經B機順利地到達A機,這些又是如何實
現的?

歡迎大討論。
 
代理服务起作了一个传递,你如果对通讯协议了解的话就简单了,建议你找一下网络方面的书看看!
 
sysgate 是软件路由器 不是代理服务器,工作原理就是传递、转发,不需要端口映射
端口映射是路由器的一个安全措施
 
我想(不一定是这样)其中可以很简单:
A、B、C...机每隔x秒向QQ服务器读一次所有属于自己的信息(同时它也只是把要发给其他人的信息发到服务器,告知服务器这是给某某的信息),这样不就行了?关键是要有一个够牛的服务器,一切都好办。
 
qq登陆之后自己发的信息就不用在经过服务器了吧都应该是点对点的了吧除非特殊情况
 
真实情况我也不知道的,我只是说可以有一种很简单的解决办法。
就QQ来说,当我们发一个信息给一个不在线的人时,信息是肯定存在于服务器上的。
 
lhc4000的想法是一種解決思路,對於取信息是很好辦,但涉及到
文件對傳時就不行了,總不能A先傳到服務器B,然後C再到服務B上
取吧?應該是點對點的...包括語音、視頻等我想也是...
如果是p2p那麼外網的電腦是如何透過網關訪問內網的?若自己做
一個nat服務放在網關上轉換也許能做好,但qq也沒有說在內網網
關上放nat服務器呀...
 
再一次声明:这不一定是事实。
但,只要文字信息行,文件對傳、語音、視頻都一样行的,因为所有一切对网络来说都是信息流,只是我们对它的解码方案不同结果也就不同了,比如说A向B(服务器)每次传文件的X字节,C从服务器B上收取后,A再传X字节过去,这是不成问题的。
 
要用到socket5吗?
 
我所了解的情况如下:
QQ使用了UDP、HTTP、socket三种通讯连接类型。其实网上通讯无非就四种情况:
1、本机与目标机都直接上网(未通过代理,拥有相对固定IP)。
2、本机直接上网,目标机通过代理共享上网。
3、本机通过代理共享上网,目标机通过代理上网。
4、本机、目标机双方都通过代理上网。
对于第一种情况,QQ使用UDP方式通讯,速度快。
对于第二种情况,QQ将信息发给QQ服务器,由其中转。
对于第三种情况,QQ通过本地代理服务器与目标机建立套接后,可直接与目标机通讯。
对于第四种情况,QQ通过本地代理服务器与QQ服务器建立连接后,由QQ服务器中转信息至目标主机。
这就是QQ的“设置”里面有HTTP代理设置、Sock设置的原因吧。
我所知道的就这些,请大家指正。
 
这有什么好讨论的,不能直接寻址的都是通过服务器转发的。
 
首先你要明白NAT、NAPT原理,然后实现NAPT,但我没有实现,我正在想办法中。客户端没问题了,但服务器端还有问题,气人啊。
 
多人接受答案了。
 
后退
顶部