免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: mik
打印 上一主题 下一主题

大家讨论一下 IM 的实现结构和方案 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
1 [报告]
发表于 2009-07-06 23:30 |显示全部楼层
看起来这几年进步不少啊。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2009-07-07 00:00 |显示全部楼层
原帖由 xhl 于 2009-7-6 23:44 发表

谢谢老大夸奖, 我作过一个完整的类似qq, skype的软件,  所以对这些熟悉些。

只不过我做的软件没火起来。 学了点技术, 钱没劳到。

我也曾看过 ejabberd,感觉这种东西还是要用起来才算数,没用户就没成就感。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2009-07-07 19:39 |显示全部楼层
原帖由 xhl 于 2009-7-7 18:38 发表

首先我没看过那个p2p是靠tcp 穿越nat的。 我认为这个也许在欧洲的网络环境可行, 在中国, 人多资源少, 大部分是nat背后的环境, 很难。

我怀疑你看到的是tcp relay, 只不过是没用server, 用别人的机器 ...

允许出去的就可以允许进来的。
TCP 穿越的成功机会还是挺大的。
我一直想作一些个实验。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2009-07-07 23:32 |显示全部楼层
原帖由 xhl 于 2009-7-7 20:09 发表

都是必须先是出去到某个指定的ip:port的, 在nat上记录一个短时间的名单, 这样外面这个ipOR ...

你说的不错,TCP 穿越的关键点正是在这个地方。

你知道“同时打开”这个概念吗?
服务器 X 为 A 和 B 两个 client 做好时间同步,
A 和 B 同时向对方发起连接请求,只要时间偏移控制在 MSL 之内,
理论上是可以完成三次握手成功穿越的。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2009-07-07 23:56 |显示全部楼层
原帖由 xhl 于 2009-7-7 23:52 发表

我在做udp穿越的时候, 这样尝试过, 但这个时间很难控制, 很难保证从a发出去的包, 在没到达b的gameway前, b必须向a发出一个包。

我当时做udp的做法是控制ttl, 让a象b发出的包, 在经过他的nat后 ...

有一些增加成功率的办法,
比如修改 TTL,改变 TCP 序号、SYN flood,以及通过 server IP 欺骗实现伪三次握手。
不过有些操作需要 root 用户权限,就不是那么方便了。

在网络条件好的时候,同时打开应该还是很容易实现的。

[ 本帖最后由 flw 于 2009-7-8 00:01 编辑 ]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2009-07-08 00:12 |显示全部楼层
原帖由 xhl 于 2009-7-8 00:03 发表


哈哈, 要想做到很高的穿透率, 还是很难的。 因为nat多半都是平行的, 要分析很多类型, 猜他的算法, 堵他分配的临时port.

其实tcp的穿越 也可以通过 ip-over-udp来实现, 就是如果能打通udp, 可以用他 ...

端口的问题确实是个大问题。

ip-over-udp 的想法我 2003 年也搞过,
可惜灌水灌太多了,没时间搞这些有意义的东西了。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2009-07-08 00:45 |显示全部楼层
原帖由 xhl 于 2009-7-7 20:09 发表

都是必须先是出去到某个指定的ip:port的, 在nat上记录一个短时间的名单, 这样外面这个ipOR ...

你说的不错,TCP 穿越的关键点正是在这个地方。

你知道“同时打开”这个概念吗?
服务器 X 为 A 和 B 两个 client 做好时间同步,
A 和 B 同时向对方发起连接请求,只要时间偏移控制在 MSL 之内,
理论上是可以完成三次握手成功穿越的。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
8 [报告]
发表于 2009-07-08 15:00 |显示全部楼层
【大部分nat都会拒绝外面直接进来的syn消息, 而只响应曾经出去过syn的目的地址发会来的ack】
这是必须的呀,
但是仅仅是这样的话,很容易穿越啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP