- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TCP穿透NAT的方法研究
TCP穿透NAT的方法研究及程序实现 学生:顾雯轩 指导老师:江凌云 绪论 P2P应用在目前的PC桌面应用市场已经发展的如火如荼。而新的Internet地址体系非常适合于“客户端/服务器”这样的通信模式,即客户端在内网(私有地址域),服务器在公网(全局地址域),通过NAT将内网和公网连接来。 这种地址体系使得在不同内网(私有地址域)中的两个节点很难直接通信,而这恰恰是P2P应用(如,电话会议或在线游戏)中最基本的要求。很显然,我们需要一种方法即使NAT设备存在的前提下,仍然能够无障碍的实现P2P通信。 本课题旨在研究各种穿越NAT技术,并编程实现。具体还涉及到,熟悉网络地址转换的基本原理,分析P2P通信穿越NAT的问题在,分析比较现有穿越技术的优劣,以及在WINDOWS XP下编程实现基于TCP的穿越。 TCP通信过程 TCP 是一种可靠的面向连接的传送服务。 它在传送数据时是分段进行的,主机交换数据必须建立一个会话。它用比特流通信,即数据被作为无结构的字节流。通过每个TCP 传输的字段指定顺序号,以获得可靠性。是在OSI 参考模型中的第四层,TCP 是使用IP 的网间互联功能而提供可靠的数据传输,IP 不停的把 报文放到网络上,而TCP 是负责确信报文到达。在协同IP 的操作中TCP 负责:握手过程、 报文管理、流量控制、错误检测和处理(控制),可以根据一定的编号顺序对非正常顺序的 报文给予从新排列顺序。在TCP 会话初期,有所谓的“三次握手”:对每次发送的数据量是怎样跟踪进行协商使 数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数及数据发送、接收完 毕后何时撤消联系,并建立虚连接。为了提供可靠的传送,TCP 在发送新的数据之前,以 特定的顺序将数据包的序号,并需要这些包传送给目标机之后的确认消息。TCP 总是用来 发送大批量的数据。当应用程序在收到数据后要做出确认时也要用到TCP。由于TCP 需要 时刻跟踪,这需要额外开销,使得TCP 的格式有些显得复杂。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 NAT相关概念 概述 NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。 简单的说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关(可以理解为出口,打个比方就像院子的门一样)处,将内部地址替换成公用地址,从而在外部公网(internet)上正常使用,NAT可以使多台计算机共享Internet连接,这一功能很好地解决了公共IP地址紧缺的问题。通过这种方法,您可以只申请一个合法IP地址,就把整个局域网中的计算机接入Internet中。这时,NAT屏蔽了内部网络,所有内部网计算机对于公共网络来说是不可见的,而内部网计算机用户通常不会意识到NAT的存在。如图2所示。这里提到的内部地址,是指在内部网络中分配给节点的私有IP地址,这个地址只能在内部网络中使用,不能被路由(一种网络技术,可以实现不同路径转发)。虽然内部地址可以随机挑选,但是通常使用的是下面的地址:~55,~55,~55。 NAT将这些无法在互联网上使用的保留IP地址翻译成可以在互联网上使用的合法IP地址。而全局地址,是指合法的IP地址,它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部地址,是全球统一的可寻址的地址。 NAT分类 NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)。 静态NAT(Static NAT) 静态NAT设置起来最为简单和最容易实现的一种,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。 静态NAT适用于处理从
文档评论(0)