在两个不同种类的代理(防火墙)里面能不能实现点对点的传输(200分)

  • 主题发起人 主题发起人 zjlcc
  • 开始时间 开始时间
Z

zjlcc

Unregistered / Unconfirmed
GUEST, unregistred user!
我只要能传信息就可以,OICQ是可以的
我想知道具体的实现!

可以写信给我:)
可以私底下要求大量加分哦
 
我!我!我!只要能传信息就可以,OICQ是可以的!:(
我想知道具体的实现!

可以写信给我:)
可以私底下要求大量加分哦
可以。。。。

1。我的客户端程序已经做到了能及时获知服务器端的IP和端口(服务器端一启动,IP是动态
的,端口也是动态的,物理地址也是动态的,是个移动SVR)
2。可是它MM的!在双代理环境下会出错!问题很简单,代理的端口对双方来说是未知的!
不过呢,我有能力动态的知道双方代理的真实IP,因此获知真正的代理内隐藏的服务器的
镜像端口是个问题的关键!
3。假设我们知道了服务器的原始镜像端口,那N个客户端跑过来连接,不是服务器相应的
镜像端口也要变成N个吗?哇!

我现在被问题折磨的好晕了!可能上面的描述有点模糊,各位老大们该问的就问吧
我是熬通宵编程的,可以及时回答
 
如果我没有理解错你的意思:
我曾经和朋友讨论过这个问题,结论是,在两个防火墙之间进行点对点连接
是不可能的,除非有办法预先知道对方的IP和端口
不要说不同种类的防火墙,相同的防火墙也不行啊
OICQ也做不到,它之所以做到并不是因为点对点连接,而是因为OICQ有固定
的服务器,双方是通过这个固定的服务器交换了IP和端口,才能实现通讯的
知道对方的IP很容易,但是知道端口就很麻烦,因为端口不是固定的,除
了通过固定的服务器进行交换之外,好象没什么好办法
 
既然我们都能知道代理服务器的IP,那么我们可以向这个IP的端口们发一个特殊信号,
有返回信息的端口,那不就是我们要找的端口吗?还要什么第三方服务器中转?
当然上面的方法就算可行,也是好笨拙的!

另外:“第三方服务器中转”的动作能不能,依靠现在的一些公用免费网络服务来实现?
 
这个可能只能通过组播了。
 
你想扫描代理服务器的所有端口?那会被当做黑客攻击行为的,嘿嘿
 
想一想看,防火墙里的 FTP 都要用 PASV 模式,就是因为无法获知客户 IP。
OICQ 的原理和左轻侯兄说的一样。
 
利用代理服务器的NAT或端口映射功能,可建立TCP连接.
当然如果双方均是动态IP,则需要获知客户 IP.
 
可以是可以,但是必须至少有一方的防火墙支持外部对内部的访问,这基于固定端口映射。
实现很简单,就是很少看到这样的产品
 
你怎么判断OICQ是实现的?
我怎么看到专门的错误MESSAGE?
 
双代理环境下的OICQ用户之间,能进行通信!请问短信息包经过了腾讯服务器中转吗?
如果没有中转,那我的程序就有救了,否则的话,从任务、资金、成本上说“10M以上带宽、
高性能的第三方服务器中转机”将是个头疼的问题

UDP包其实是能发送大块数据的,只不过接收方要进行特殊的包合并,怕会丢包
我觉得奇怪的是腾讯为什么不用UDP来传送2进制文件
 
没有通过服务器中转。但是,双方互知对方 IP 是要通过服务器的。
如果网络超时,消息通过服务器中转(情况不多)。

UDP 确实可以发送大量数据,但是 UDP 是无连接协议,不确认对方能否收到。
设想你发送了 500MB,结果对方说我收到了 200MB……(剩下的丢了)
TCP 需要双方的三次握手才能发送,这个速度比随便乱发的 UDP 慢很多,但是
TCP 含有差错控制,有很高的可靠性。
 
to mikedeakins谢谢!

UDP包丢就丢吧,我想我可以通过包编号来要求再次发送的
 
UDP虽然相对来说没有TCP/IP可靠,但不是想象中的那么容易丢失数据,只要控制得当,还
是很稳定的,要知道FTP就是使用的UDP协议。
 
提个醒:
能不能通过配置防火墙来邦定端口呢?
 
nhuangjr呀,我做的是移动SVR,防火墙?代理?我碰都碰不到边: (

哪里有这种服务呀?我以前见过,好想是在哪个BBS站点,就是你发表了文章后,会显示
你的IP和PORT,我想这样:发一个“A”信息给类似功能的公用网络服务上去,紧接着(同时)
开通一个服务端口来听,客户端可以通过“A”上的PORT“B”,扫描B正负N范围的端口,
服务端口应该是在这个小范围之内,这正好可以解决左轻侯的顾虑,可是我不知道这个SVR
端口是否会因为其是服务性质的,而会被代理屏蔽掉!
当然上面的“公用网络服务”类似于OICQ的服务器,如果谁知道这种服务,请说一声: )
又可以省一台服务器了,呵呵,我懒。。。
 
如果你的客房端和服务器端传递的信息比较重要的话,还是不要用UDP,你说UDP包丢不丢掉
没什么关系,可以通过包编号来要求再次发送。莫非你认为UDP包会有编号?UDP是一个无连
接的协议,除了能够通过网络发送数据之外,不能保证数据交付或做更多别的事。
UDP包头是很简单的,我画出来吧:_________________________________
| 源端口(16位) | 目的端口(16位) |
---------------------------------
| 长度(16位) | 校验和(16位) |
像你说的这种情况,最多也只能知道两边的代理防火墙的IP。你可以在两边的代理端上开
一个专用的端口(要>=1024),这个代理端口和你内部的真实通讯端口在代理防火墙上绑定。
不要用你说的:“我有能力动态的知道双方代理的真实IP,因此获知真正的代理内隐藏的
服务器的镜像端口是个问题的关键!”我对你这句话的理解是:你可以知道代理防火墙后
的那台服务器的真实IP,换句话来说,就是,代理防火墙已经被绕过。我认为不太可能:)
怎么说呢。我这几天都在看一本书,书名是<<防火墙的原理与实施>>。如果我把这台代理
网关放在服务器要连出INTERNET的必经之路上,嗬嗬,除非我们攻破了这台代理网关,在
它里面放入了一些特定的程序,才有可能知道它其后所代理的LAN内各台机的真实IP,不过
可能也没什么用,因为这些IP很有可能是从192.168.0.1到192.168.0.254(A类地址,我们
不能在INTERNET上直接访问)。
所以,我个人认为,直接的P2P连接是不可能的:) 按我开头说的办法,应该可以。看看这
两天我能不能理解到我那本书上关于代理网关防火墙的章节吧。也许,那时我会知道点其它
的办法:)
 
iamfly谢谢

现在的问题是:
1。由于情况临时有变,客房端和服务器端不可避免的会同时进入代理环境,我不能选择
服务器端的存放地点!
2。TCP当然比UDP好,现在的程序已经在正常环境调通,我开这个帖子是想就(1)的问题
寻求答案!
3。关于UDP的包编号的问题,我想你思考的太复杂了,我可以自己加上编号嘛,并且为了
能传到位,我可以象OICQ一样连续发3遍
4。UDP的编程其实很好做的,目前我在解决UDP:IP-PORT的免费中转机的问题,正在测试
5。现在我为了完成任务将使用UDP来完成上述问题,但是我希望大家一直热心关注此问题
否则还将有人提出类似的问题的,我下午在代理后面做了一个服务器,经过不断扫描,跟踪
数据包后,得出了一个结论:不行!当然也可能是我的方法有问题
6。我现在做的好累,好辛苦,晚点时间去按摩一下: )
 
请大家看看下面的文章
http://www.csdn.net/news/looknews.asp?id=2014
这些是内容片断:
信息协议的弱点攻击法
IP源路径选项允许IP数据报自己选择一条通往目的主机的路径。设想攻击者试图与防火墙
后面的一个不可到达主机A连接。他只需要在送出的请求报文中设置IP源路径选项,使报文
有一个目的地址指向防火墙,而最终地址是主机A。当报文到达防火墙时被允许通过,因为
它指向防火墙而不是主机A。防火墙的IP层处理该报文的源路径域,并发送到内部网上,报
文就这样到达了不可到达的主机A。

源路径选项的弱点攻击法
报文通过一个特定的路径到达目的主机。这样的报文可以用来攻陷防火墙和欺骗主机。一个
外部攻击者可以传送一个具有内部主机地址的源路径报文。服务器会相信这个报文并对攻击
者发回答报文,因为这是IP的源路径选项要求的。对付这种攻击最好的办法是配置好路由器
,使它抛弃那些由外部网进来的却声称是内部主机的报文。


因此,进入防火墙应该是有途径的(*******大家快来讨论呀************)
 
进入防火墙肯定是有途径的(不然那些黑客怎么黑得掉大站点),不过,你所看来的这两条
攻击手段对新一点的防火墙都是不起作用的了:)
就我这几天从<<防火墙的原理与实施>>一书上看来的,在代理服务器与INTERNET之间肯定
还会有一个包过滤路由器(或者说是包过滤防火墙)。而且,你看来的也说得不对,不是在
源路径选项里:) IP头有一个32位长的字段是保存源IP地址,一个32位长的字段保存目的
IP地址。你所说的IP源路径选择正确应该说是IP源路由选择:)
对于你所说的“使报文有一个目的地址指向防火墙,而最终地址是主机A。当报文到达防火
墙时被允许通过,因为它指向防火墙而不是主机A”,简单来说,就是可能把源IP地址设成
是主机A的IP,目的IP设成防火墙的:)。可是,对于包过滤防火墙来说,这太容易解决了:
只要发来的IP包源地址是我LAN内的,可是又是通过外部端口(就是防火墙与INTERNET连接
的端口)来的,就把这个包丢掉,就,哈哈:D
你说的UDP包自己编号,那你就要做多一个如果哪一编号的包没接收到就要发消息回来要把
这个包重发一遍,嗬嗬,麻烦多啰:)
 
后退
顶部