- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一种基于SYN入式的TCP打洞技术SYNI
一种基于SYN注入式的TCP打洞技术—SYNI
编译:HyoSoft
原文:SYNI – TCP Hole Punching Based on SYN Injection
作者:Sebastian Holzapfel, Matth¨aus Wander, Arno Wacker, Torben Weis/University of Duisburg-Essen, Distributed Systems Group/Bismarckstra?e 90, 47057 Duisburg, Germany
前言:
互联网IP地址的短缺,IPv4过渡至IPv6进度缓慢,导致目前大多数仍然是通过NAT(网络地址转换)路由器上网。通常位于NAT路由器之后的上网设备无法从外网连接,然而,有很多网上应用需要接受外来连接,例如基于点对点技术的IP电话服务。有一些特别的技术可以绕过这种限制,叫做“NAT穿越”,而“打洞”则是NAT穿越的其中一种形式。本文分析对比一些已有的TCP打洞技术原理,和提出一种新的TCP打洞方案,通过从内网向本地路由器注入一个SYN包以达到打洞的目的。一个基于TCP打洞的远程办公软件已成功开发出来:Rdesk远程办公通道。1.0版本使用了本文中介绍的较为简单的TCP打洞方法,但亦能适用于大多数家用NAT路由器。该软件支持使用微软远程桌面进行远程办公,您可从www.HyoS下载使用。文本的目的除了介绍打洞的新方法,亦让读者对TCP打洞原理能有透彻的理解,可以在实践中实施自己的思路和方法。本文假设读者已熟悉Socket编程,对三次握手建立连接的过程有一定的了解,如果之前已了解过UDP打洞的基本原理,则更有助于理解本文的内容。
介绍
网络地址转换(NetWork Address Translation,NAT)是解决互联网IP短缺的一种有效方案。目前世界上超过70%的上网电脑都是位于NAT路由器之后。如果互联网能够普及使用IPv6,那当然有充足的IP地址提供给世界上几乎每一台上网终端,但目前来看遥遥无期,NAT在相当长时间内仍将是访问互联网的主要方式。
使用NAT路由器,多台电脑能够共享一个公网IP访问互联网,路由器后面的电脑只配置为私网IP。普通的路由不会对IP报文进行修改,只会根据路由表直接转发。而NAT路由器则把来自私网的数据包源IP地址/端口转换成公网IP地址/端口,发送至互联网,同时将来自互联网的相应的数据包的目的IP地址/端口转换为私网目的地址在内网发送,内网主机能透明地访问互联网。路由器的公网IP相对外网是可见的,但不能从外网直接访问位于路由器之后的内网主机。因此导致了一个问题,一些服务例如IP电话等,需要接受由外网发起的连接,但被路由器阻隔,不能正常工作。因此,一种叫做“NAT穿越”的技术方案被提了出来。
在路由器设置端口映射(Mapping)是NAT穿越有效办法,有一种NAT穿越技术叫UPnP,一般NAT路由器都内置了此功能,它能实现内网主机向路由器主动请求端口映射,其使用简单,但由于一些原因,几乎所有路由器出厂设置都是禁用UPnP的。在一些场合,使用者无法自行启用UPnP,则打洞技术就非常必要了。打洞过程只需由内网主机向目的外网主机发送一个数据包,NAT路由器就会建立一条映射,允许目的外网主机反向进入和连接相应的内网主机。由于UDP协议的无连接性,UDP打洞比TCP打洞更容易实现。然而,很多应用要求可靠数据传输,而UDP为不可靠传输协议。尽管一种叫RUDP的协议能够提供基于UDP的可靠通讯,但大多数场合,使用成熟的TCP通讯方式无疑是更好的选择。
我们的目标在于实现一种高成功率的基于TCP的打洞机制。为达目的,我们分析了各种路由器的特性,尽量让TCP打洞具有通用性。同时这种方法在实践中证明是非常壮健的,例如无需苛刻的时序约束等,否则在编程中难以实现。
在本文中我们介绍了一种新的NAT穿越技术: SYN注入式TCP打洞。我们简称为SYNI(SYN Inject)。该技术能使一个位于内网主机对位于另一个内网的主机实现TCP连接,基本原理是:从一个内网的主机向另外一个内网的路由器发送一个SYN包(TCP连接请求包),另一个内网主机也进行同样的操作。但这两个SYN包是不能到达对方内网的,因为双方都有NAT路由器阻隔。
系统模型
我们定义了一个固定系统模型,这个模型将会适用于下文中所有穿越方式。我们总假设通讯双方主机(Host)都是通过NAT路由器(Router)上网,可能是位于一个甚至多级NAT路由器之后。而且总假设这些主机已知道对方主机的路由器公网IP及发送数据包所分配的端口(Endpoint)。大多数NAT路由器(除Symmetric NAT),当内网主机在本机绑定某个TCP
您可能关注的文档
最近下载
- 《大学生职业生涯规划》教案 第13课 应征入伍与自主创业政策.doc
- 2.关于干部人事档案审核工作的问答(组工通讯〔总2764号〕).docx
- 《大学生职业生涯规划》教案 第12课 基层就业政策.doc
- 中频炉熔炼操作技术标准.doc VIP
- 2023湖南长沙麓山投资控股集团有限公司招聘46人笔试备考试题及答案解析.docx
- 【广东卷】广东省(江西)上进教育稳派联考2025届高三上学期10月阶段检测联考(10.6-10.8)英语试卷答案.docx
- 认识声现象-说课稿-教科版.ppt
- 《培养自尊自信的》课件.pptx VIP
- 学堂在线《学术英语读写与交流》作业单元考核答案.docx
- 比较级最高级语法课(西游记主题)课件-人教版英语八年级上册.pptx VIP
文档评论(0)