穿越防火墙 NAT 学习总结 结合BT技术(—)

穿越防火墙和NAT的学习:

       1, 基本知识。

      先总结下防火墙和NAT的原理。关于这方面网上有一些基本资料,比较经典的是http://midcom-p2p.sourceforge.net/ 上的Check Your Network Address Translator 这篇文章,其中的my Internet Draft on the topic 这篇文章详细的论述的防火墙的NAT的原理,基本涵盖了大部分NAT类型。都不是native language,不过有人把这篇文章给翻译了一遍。讲的都比较简单。基本看一两遍都明白了。最后得到一个结论,就是P2P有的情况下必须通过第三方具有公网地址的服务器来转发媒体流。

      2 , 目的

      比如有一个类似qq的IM即时通讯软件,所有语音走的是一个第三方的NGN网络。考虑到成本问题,并结合其它IM软件穿越问题的解决方案,决定采取一种类似skype的技术。具体就是搜集那些具有公网IP的client。然后利用它们转发,传输文件或音视频。考虑到现在在家上网的人比较多,大部分adsl或者有线通都具有公网地址,所以可以利用这些client的带宽,当然这样也许不是很道德,不过通过一些分配算法可以减小对用户带宽的影响。很明显,这里只是利用用户的客户端IM转发,和BT技术不同。

     3,    实现

     首先写一个服务器程序,运行于类unix环境下。对所有用户进行管理。用户登陆后向服务器注册。服务器通过一些机制判断client是否在NAT内, 并且判断NAT类型。如果两个都不具备公网地址的client进行聊天,那么服务器分配给它们一个或几个公网client,所有的媒体流经过这个client转发。如果通信双方有一个具备公网地址,则由服务器来进行协调,由局域网中的client主动发起联系就可以了。

      4 , 问题

原理似乎很简单,不过具体实现中还是有很多瓶颈的,比如带宽计算,转发地址的分配算法,应付紧急情况,比如转发的客户端断掉,如何断点续传,另外程序支持用户数等,媒体压缩传输等。

(未完待续)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值