摘要: 在进行一个系统的设计时,有这样的需求,我们面对几个稀有的资源,却有大量的并发请求,它们毫无疑问将会是我们将来系统中的瓶颈所在,在实际系统设计中,怎么样去解决这些资源的获取、分配、释放、以及争用解决?本文是我在即将过去的今天(还有不到一个小时)躺在床上抱着本本用比较放松的心态,本着交流和探讨的目的,进行的一些经验分享。  我不想去涉及具体哪门技术,仅仅只是以方法而论。假设,我们有10个并发请求,但是... 阅读全文
posted @ 2010-07-30 23:57 bobolink 阅读(777) 评论(0) 推荐(0)
摘要: 我们继续昨天的话题。昨天我们讲到UDP hole punching,应该说,它给我们提供了一个基本的概念,就是想要A与B建立通信通道,就得要相互向对方的外部IP以及端口发送UDP包,这样逻辑连接就建立起来了。然而它的问题在于这种模式是必须依赖于cont NAT的特性的,倘若每次连接NAT都动态分配一个端口,那么UDP hole punching技术就会失效。针对这种情况,下面再介绍一种方法。 阅读全文
posted @ 2010-07-29 17:51 bobolink 阅读(596) 评论(0) 推荐(0)
摘要: 然而更多的新手程序员面临的问题是,拿着这些实验室里产出的P2P通讯模块,一拿到真实的应用中,就完全哑火了。造成这种情况的最根本原因,就是因为那些实验室代码的调试环境是在一个理想的网段内的,而实际的Internet(甚至一些企业的Intranet)中,NATs、Firewalls无处不在,这些设备(有名为“middleboxes”)使得位于其后方的终端共享同一个公共IP,以此来节约网络资源,同时建立一个不对称的连接与寻址模式:即位于middleboxes之后的终端可以轻松地连接处于公网上的地址(资源),但是位于公网上的终端却很难访问到middleboxes之后的终端。除非是管理员做了相应的设置,如为NAT配置端口映射,否则发往middleboxes身后终端的数据包会被middleboxes丢弃掉 阅读全文
posted @ 2010-07-28 23:16 bobolink 阅读(549) 评论(0) 推荐(2)