论文部分内容阅读
随着Intemet的普及和各种终端设备计算和存储能力的增长,以P2P技术为核心的各类软件产品层出不穷,为越来越多的用户所接受和喜爱。目前P2P技术经过多年的发展,已经日益成熟,在互联网上也出现了很多成功的基于P2P技术的网络应用。Napster、BT、Emule等代表性文件共享软件所取得的巨大成功,以及OICQ、QQ、Skype等即时通讯软件在国内外的迅速流行都表明P2P技术具有强大的优势。然而,现在面临的一个突出问题是Intemet上大量NAT设备的存在成为P2P应用普及和发展的障碍。NAT设备掩藏了参与构建P2P网络的大量用户节点。因此位于不同NAT之后的用户节点如何发现对方、如何彼此建立直接连接就成为P2P网络亟待解决的问题之一。本文针对NAT穿透问题进行了研究,并设计了一个基于TCP协议的NAT穿透机制STNTrav(The SafeTCP-based NAT Traversal Technology,STNTrav),以期能够解决这一问题。本文首先介绍了P2P技术的历史与现状,以及它的主要应用。然后本文分析了目前P2P网络中的传统穿透机制的优缺点。在对目前国内外P2P穿透机制进行研究后,本文通过借鉴现有穿透机制的优点,设计了STNTrav穿透机制。该机制引入自适应算法、安全控制机制等先进的技术手段,从而实现了高效、安全的NAT穿透。STNTrav穿透机制的突出之处在于其强大的自适应算法。该算法通过传输的数据包自动检测NAT的类型,针对不同类型的NAT,选择有针对性的NAT穿透方法来进行穿透,具有很大的灵活性。其次STNTrav穿透机制是基于TCP协议的,针对TCP协议常见的遭受Dos攻击的问题,引入了穿透过程中的安全控制。通过应用用户名和密码的客户机和服务器验证机制以及SYN-Cookie技术等多种技术手段,很好地在一定程度上解决了这个问题。本文最后通过采用P2PSim对STNTrav穿透机制进行了仿真,证明该机制通过自适应算法在很大程度上实现了NAT穿透抑制。从而验证了STNTrav穿透机制的有效性。