免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: converse

P2P原理的解释与实现 [复制链接]

论坛徽章:
0
发表于 2006-09-02 23:51 |显示全部楼层
原帖由 yarco3 于 2006-9-2 23:46 发表
8明白,那么server又如何和B联系的呢?它也在外面啊.

A ----------------NAT -------------B
|                       |
|                       |
Server-----------


B登陆server的时候是不是已经与server建立了链接了?这样NAT B就认为server发送过来的请求是可以通过的了...

论坛徽章:
0
发表于 2006-09-02 23:52 |显示全部楼层
^_^,P2p穿越NAT不是很简单的事情啊,和具体的NAT类型是相关的。建议有兴趣的兄弟还是先看看NAT的原理。

论坛徽章:
0
发表于 2006-09-02 23:57 |显示全部楼层
原帖由 converse 于 2006-9-2 23:51 发表
B登陆server的时候是不是已经与server建立了链接了?这样NAT B就认为server发送过来的请求是可以通过的了...


1. A 准备发东西给 B
2. A告诉server它对 B 感兴趣
3. server向B发送信息
4. B连接到A, 于是A变成了server
....

8过好象就是这样的. 奇怪的就是为什么前面会碰一下???
有生命期?

先尝试是否能够正常连接?(why? 发送数据的时间超过了nat中存储的什么ttl?)

[ 本帖最后由 yarco3 于 2006-9-3 00:01 编辑 ]

论坛徽章:
0
发表于 2006-09-02 23:59 |显示全部楼层
A通过server知道B的地址,而且通过server通知B打洞,这样A才能穿过NAT B呀...

论坛徽章:
0
发表于 2006-09-03 00:09 |显示全部楼层
是这里不能理解,

  1. 假设client A要向client B对话,但是A不知道B的地址,即使知道根据NAT的原理这个对话在第一次会被拒绝,因为client B的NAT认为这是一个从没有过的外部发来的请求.这个时候,A如果发现自己没有保存B的地址,或者说发送给B的会话请求失败了
复制代码


假设client A要向client B对话, 假设它要发的话,直接你说的上面步骤啊...
为什么会"在第一次会被拒绝"...是传输数据超时,A/NAT的那个什么忘掉了?

论坛徽章:
0
发表于 2006-09-03 00:19 |显示全部楼层
原帖由 yarco3 于 2006-9-3 00:09 发表
是这里不能理解,
[code]
假设client A要向client B对话,但是A不知道B的地址,即使知道根据NAT的原理这个对话在第一次会被拒绝,因为client B的NAT认为这是一个从没有过的外部发来的请求.这个时候,A如果发现自己没 ...



唉,我觉得你先好好看NAT的原理,打洞的原理,看看我的代码吧...

论坛徽章:
0
发表于 2006-09-03 00:31 |显示全部楼层
原帖由 converse 于 2006-9-3 00:19 发表
唉,我觉得你先好好看NAT的原理,打洞的原理,看看我的代码吧...


偏不看...
至少从表面上看(人性化的角度上讲), 它没有理由额外要去碰一下. 假如是因为类似有个ttl的限制.
同样也没有理由, 在我和你打电话的时候,忽然说通话中断, 我一句话白说了要重新拨号.
那说明不是偶不对,是线路有问题, 是nat应该保证通信的双方能从开始直到终结...................
说明nat这个协议没设计好...
偶有义务维护人类的感受,没有义务理解机器的想法.

论坛徽章:
0
发表于 2006-09-03 00:34 |显示全部楼层
我觉得应该听听有经验的人的意见,这个是不能臆断的,很多公司的firewall很BT的,呵呵,根本不能用一些常规的方法,需要做很多补救措施,比如RTP RELAY, STUN, ALG等等。

论坛徽章:
0
发表于 2006-09-03 00:48 |显示全部楼层
原帖由 yarco3 于 2006-9-3 00:31 发表


偏不看...
至少从表面上看(人性化的角度上讲), 它没有理由额外要去碰一下. 假如是因为类似有个ttl的限制.
同样也没有理由, 在我和你打电话的时候,忽然说通话中断, 我一句话白说了要重新拨号.
那说明不是 ...


无语...你不了解来龙去脉就自己下结论说别人作的不好,请问你作的多还是别人作的多?

[ 本帖最后由 converse 于 2006-9-3 00:51 编辑 ]

论坛徽章:
0
发表于 2006-09-03 01:46 |显示全部楼层
原帖由 converse 于 2006-9-3 00:48 发表
无语...你不了解来龙去脉就自己下结论说别人作的不好,请问你作的多还是别人作的多?


哈哈...我没说其余部分做得不好啊.
我就说那需要碰一下做得不好啊.
难道他做得多有弱点就不能让做得少的人批判了?
偶要会做,nat不就是我的了...真是的. 所以偶在向你了解那个碰了一下的来龙去脉啊?

你看,你窝藏在某个地方, 要联系你只能通过一个叫nat替你做掩护的同伙. 而你通过nat一直在和老大server交换着不人道的信息. 偶做为打入黑社会集团的卧底接到任务, 要找到为非做歹的你.
难道我会傻傻地直接询问那个可疑人物nat吗?我一定会先取得老大的信任, 然后老大通知你, 你便上当受骗通过nat和我接触...除非某个时刻你对我有怀疑, 认为我有不良动机.....
但这怎么可能呢...你怎么不怀疑你老大啊...
难道是因为长时间通信,你怕被警察监听?
...因为nat不懂数据交流是否会向私有域里写入东西,  为了保证tcp/ip不被劫持, 所以在流入的方向上设置了一个ttl, 一旦时间到就会阻止进入...
可还是老问题...server - B    A -B 通信有什么区别? 两个都是B在主动联系外面的server和A.
既然能够保证server不会碰一下,那么也能保证A不会被碰一下才对. 毕竟p2p/nat是两个东西.

算了...不问你了. 这方面偶不是很感兴趣. 问到最后一定让我自己去看...

[ 本帖最后由 yarco3 于 2006-9-3 01:48 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP