找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4491|回复: 5

ACE P2P中,tcp打孔的问题

[复制链接]
发表于 2011-2-22 08:47:48 | 显示全部楼层 |阅读模式
现在有NETA和NETB,Client-A 在NETA下,Client-B在NETB下,使用ACE成功的进行p2p连接,但是我发现Client-A在向Client-B打孔后,随即Client-A监听同一SOCKET,也就是随即进行Listen操作,等待Client-B连接,这时有一个问题,就是Client-B连接Client-A,如果在打孔后1分钟之内连接,连接是成功的,如果超过1分钟则不成功,我想知道这是什么原因?是NET的session么?因为我想达到的目的就是这个孔会持续存在,只要打孔了,程序仍运行,Client-B在任何时间内都可连接Clinet-A。
发表于 2011-2-22 12:50:32 | 显示全部楼层
tcp打孔?
 楼主| 发表于 2011-2-22 13:43:42 | 显示全部楼层
tcp打孔?
modern 发表于 2011-2-22 12:50


    恩,TCP穿透。
发表于 2011-2-22 14:18:37 | 显示全部楼层
1.   一种是在A的网关上做端口映射。
2.   B不再内网中,此时B让服务器告诉A反向连接到自己这里。
3.   A与B都在内网,有一种建立直接P2P   TCP连接的方法有时候会被使用。大多数TCP连接都是从一个终端发从一个SYN包到另一个终端,另一个中断同步响应一个SYN-ACK包。无论怎样,对于两个终端来说,同时通过发送同步包到对方然后用一个ACK包应答来建立一个TCP连接是可行的。这种过程就被称为 "simultaneous       open "(同时打开)      
        
    如果一个网关从尝试建立一个TCP连接的私有网络的外面接受一个TCP       SYN包,网关通常以丢弃这个SYN包或者发送一个TCP       RST(连接复位)包的方式来拒绝这个连接尝试。但是,如果同步包与源和目的地址端口一起到达,那么会让网关相信一个TCP连接已经建立起来,然后网关将会允许数据包通过。特别是如果网关刚刚得到并转换了一个从同样地址和端口来的SYN包,它将认为连接是成立的并允许进来的SYN通过。如果客户端A和B能彼此预测公共端口,它们各自的网关将分配的下一个TCP连接端口,如果其中一个客户端和另一个客户端建立一个外部的TCP连接,可以在对方SYN到达本地网关之前就发送SYN包通过它本地自己的网关,那么P2P       TCP连接就可以工作了。       (不过这种方式在实际中成功率太低了)
发表于 2011-2-22 16:37:13 | 显示全部楼层
最近在和大家一起看,不过好像他们叫穿越
发表于 2011-2-24 16:06:46 | 显示全部楼层
tcp穿透貌似得路由支持才行。。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-15 23:10 , Processed in 0.019123 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表