一、 P2P(peer to peer)
P2P是一个“点对点传输技术”,也就是2台计算机之间不需要第三台机器作为服务端就能实现数据的传输。每台计算机即是客户端又是服务端。如果每台计算机都有自己的独立的公网IP,那么P2P技术就比较好实现了,但是现实中由于NAT的存在,使得P2P技术最大的难点就在于穿越NAT的限制,俗称“打洞”。
二、 NAT(Network Address Translation)
2.1 NAT的产生背景
IPv4即网际网协议第4版——Internet Protocol Version 4的缩写。
如果我们把Internet比作一个邮政系统,那么IP地址的作用就等同于包含城市、街区、门牌编号在内的完整地址,可以准确的定位到某一台计算机。IPv4使用32bits整数表达一个地址,地址最大范围就是232 约为43亿。以IP创始时期可被联网的设备来看,这样的一个空间已经很大,很难被短时间用完。然而,事实远远超出人们的设想,计算机网络在此后的几十年里迅速壮大,网络终端数量也呈爆炸性增长。
更为糟糕的是,为了路由和管理方便,43亿的地址空间被按照不同前缀长度划分为A,B,C,D类地址网络和保留地址。IANA向超大型企业/组织分配A类网络地址,一次一段。向中型企业或教育机构分配B类网络地址,一次一段。这样一种分配策略使得IP地址浪费很严重,很多被分配出去的地址没有真实被利用,地址消耗很快。以至于二十世纪90年代初,网络专家们意识到,这样大手大脚下去,IPv4地址很快就