当前位置: 首页 > 专利查询>李实专利>正文

TCP/DN/IP网络兼容TCP/IP网络的转换方法及报文收发方法技术

技术编号:15988126 阅读:32 留言:0更新日期:2017-08-12 07:11
本发明专利技术公开了TCP/DN/IP网络兼容TCP/IP网络的转换方法及报文收发方法,可以将应用程序发送的报文在TCP/IP封装和TCP/DN/IP封装之间透明转换。其技术方案为:通过设计不同于OSI网络模型的封装/解封装流程,利用伪地址技术,将应用程序发出的IP报文透明地转换为TCP/DN/IP封装格式的报文,从而可以在TCP/DN/IP协议定义的不同的IP域间正常地转发,并在接收端正常还原。这样可以让TCP/DN/IP协议完全兼容地应用于承载传统的基于TCP/IP实现的网络应用程序,让升级过程变得极其平滑。

【技术实现步骤摘要】
TCP/DN/IP网络兼容TCP/IP网络的转换方法及报文收发方法
本专利技术涉及互联网技术,尤其涉及IP网络地址空间扩展相关的技术。
技术介绍
IPv4本是为美国军方设计的网络,只采用了32比特位的地址,最多容纳不到43亿主机。随着IP网络的迅速扩展,IPv4地址已经枯竭。业界先后引进了NAT技术和IPv6技术以解决地址不足的问题。但NAT技术破坏了网络的对称性,而IPv6又因为与既有网络不兼容而在推广上面临巨大的困难。《电信科学》2014年第8期刊登的文章《双网络层方案——全新的下一代互联网解决方案》介绍了一个全新的解决IPv4地址不足的方案。此方案通过在IP协议栈上纵向扩展出新的层次,可以在扩展出无限地址的同时保持对既有IPv4网络的高度兼容,不失为一个解决IPv4网络地址不足问题的很好的方案。但这个方案还存在一个问题:当ISP升级到TCP/DN/IP协议要求的新的IP域时,因为主流操作系统种类有限,该域内主机可以很容易地通过升级操作升级到TCP/DN/IP协议栈,但主机上的应用软件种类繁多,通常很难在短时间内全部更新,部分已经不再有人维护的应用软件甚至将永远无法升级以支持TCP/DN/IP协议栈。TCP/DN/IP网络中未能升级的应用无法访问当前IP域外的主机,因而客观上仍然存在升级不够平滑的问题。具体而言,在国际标准化组织ISO设计的开放系统互联参考模型OSI中,网络被分为7层。数据在发送时从高层向低层依次传递,每层都将上层发来的内容视为数据,加上自己的头部再向低层传递。在接收端,数据从低层向高层传递,每次将本层附加的头部剥除后送给上层。典型的TCP/IP协议的通信过程如图1所示。在具体实现上,由于在网络访问中频繁地用到主机域名,应用程序需要自行通过DNS将域名解析为IP,然后将IP、传输层协议类型和需要发送的数据传送给操作系统协议栈提供的发送函数。操作系统协议栈根据图1中展示的原则逐层封装报文头并发送报文。TCP/DN/IP协议在栈中添加了一个UDP的报头和一个域名层的报头。主机在拼装TCP/DN/IP报文的域名层报头时,需要填入目标主机的域名,因此在设计协议栈发送函数时,需要让应用直接将目标主机的域名、传输层协议类型和用户数据作为参数传递。而报文在从域名网络层传递到IP网络层后,仍然需要将域名解析为IP地址以便填入IP报头的目标地址字段。此时应该由操作系统的网络协议栈在IP网络层直接调用gethostbyname类的函数将域名解析为IP地址。图2A和2B示出了标准型TCP/DN/IP协议栈函数的内部流程图。请同时参见图2A和2B,图中的send()函数泛指网络协议栈提供的所有具备发送报文功能的函数。此流程图中考虑了用户直接使用IP地址作为目标调用函数的情况。如果用户使用IP地址调用,或者经过域名解析后发现目标主机尚未升级,那么仍旧选择传统的TCP/IP封装形式。只有在用户使用域名进行调用,并且目标主机已经升级的情况下,才会选择TCP/DN/IP的封装。但是,这个标准的封装方式存在一个问题:基于TCP/IP协议栈的发送函数和基于TCP/DN/IP协议栈的发送函数的接口是不同的。TCP/DN/IP协议栈要求应用程序在调用时传入目标主机域名而非IP地址。如果应用程序传入的仅仅是IP地址,那么协议栈将因为缺失了域名信息而无法填充域名层(特别地,在TCP/DN/IP架构下存在大量的多个域名被解析为同一个IP的情况)。传统的基于TCP/IP的网络应用程序将无法承载于TCP/DN/IP网络之上。
技术实现思路
以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。本专利技术的目的在于解决上述问题,提供了一种TCP/DN/IP网络兼容TCP/IP网络的转换方法、报文发送方法以及报文接收方法,可以将应用程序发送的报文在TCP/IP封装和TCP/DN/IP封装之间透明转换。本专利技术的技术方案为:本专利技术揭示了一种TCP/DN/IP网络兼容TCP/IP网络的转换方法,包括应用程序发送报文的流程以及应用程序接收报文的流程,其中:应用程序发送报文的流程包括:应用程序调用系统协议栈通过DNS解析目标主机域名为IP地址,协议栈进行解析并检查解析结果,如果返回的结果表明目标主机未升级,或者已经升级但与应用程序所在的主机处于相同IP域中,则返回解析得到的IP地址给应用程序;否则,根据目标主机域名和解析得到的IP地址在地址转换表中查询对应表项,若不存在对应表项则先从伪地址池中分配一个未使用的伪IP地址,并在地址转换表中新增一个包括目标主机域名、解析得到的IP地址和新分配的伪IP地址的表项,并将该伪IP地址作为DNS查询的结果返回给应用程序;在应用程序发送报文时,协议栈将IP报头中的目标主机IP地址与地址转换表中的伪IP地址列比对,若不存在对应表项则使用TCP/IP协议栈封装报文,若存在对应表项则从该对应表项中取出目标主机域名和目标主机的解析IP地址,给报文添加域名层报头并填入目标主机域名,添加UDP头,将IP报头目标地址更改为目标主机域名的解析IP地址;进行底层的报文发送;应用程序接收报文的流程包括:应用程序接收来自底层的报文;协议栈判断报文是否为TCP/DN/IP封装,若不为TCP/DN/IP封装则直接进行标准IP报文的接收;若为TCP/DN/IP封装,则:从域名层提取源主机域名并解析该源主机域名从而得到对应的IP地址,或者直接从IP层提取源IP地址作为源主机域名的解析IP地址;在地址转换表中查找源主机域名,若存在对应条目则取出其中对应的伪IP地址,若不存在对应条目则在地址转换表中新增一个表项,内容包括:从伪地址池中新分配的一个未使用的伪IP地址,从域名层提取的源主机域名,以及相应的解析IP地址;以及去除报文中的TCP/DN/IP封装,将接收到的报文还原成标准IP报文并将源IP地址更改为对应的新分配的伪IP地址;协议栈将报文提交给应用程序。根据本专利技术的TCP/DN/IP网络兼容TCP/IP网络的转换方法的一实施例,伪地址池由不会真实用于网络访问的伪IP地址组成,地址转换表的表项包括伪IP地址、域名和解析IP地址,利用地址转换表及其伪IP地址,在将报文由TCP/IP封装扩展成TCP/DN/DP封装时提供正确的目标主机域名。根据本专利技术的TCP/DN/IP网络兼容TCP/IP网络的转换方法的一实施例,若应用程序发送的报文在应用层中携带了源主机IP地址,则报文在被发出前将该地址转换为源主机域名地址,其中对报文格式进行调整以确保接收端还原应用层的地址信息,在报文到达目标主机后利用地址转换表将应用层中的域名地址转换回伪IP地址。根据本专利技术的TCP/DN/IP网络兼容TCP/IP网络的转换方法的一实施例,地址转换表基于时间老化机制删除不再使用的表项。本专利技术还揭示了一种在TCP/DN/IP网络兼容TCP/IP网络中的报文发送方法,包括:应用程序调用系统协议栈通过DNS解析目标主机域名为IP地址,协议栈进行解析并检查解析结果,如果返本文档来自技高网
...
TCP/DN/IP网络兼容TCP/IP网络的转换方法及报文收发方法

【技术保护点】
一种TCP/DN/IP网络兼容TCP/IP网络的转换方法,包括应用程序发送报文的流程以及应用程序接收报文的流程,其中:应用程序发送报文的流程包括:应用程序调用系统协议栈通过DNS解析目标主机域名为IP地址,协议栈进行解析并检查解析结果,如果返回的结果表明目标主机未升级,或者已经升级但与应用程序所在的主机处于相同IP域中,则返回解析得到的IP地址给应用程序;否则,根据目标主机域名和解析得到的IP地址在地址转换表中查询对应表项,若不存在对应表项则先从伪地址池中分配一个未使用的伪IP地址,并在地址转换表中新增一个包括目标主机域名、解析得到的IP地址和新分配的伪IP地址的表项,并将该伪IP地址作为DNS查询的结果返回给应用程序;在应用程序发送报文时,协议栈将IP报头中的目标主机IP地址与地址转换表中的伪IP地址列比对,若不存在对应表项则使用TCP/IP协议栈封装报文,若存在对应表项则从该对应表项中取出目标主机域名和目标主机的解析IP地址,给报文添加域名层报头并填入目标主机域名,添加UDP头,将IP报头目标地址更改为目标主机域名的解析IP地址;进行底层的报文发送;应用程序接收报文的流程包括:应用程序接收来自底层的报文;协议栈判断报文是否为TCP/DN/IP封装,若不为TCP/DN/IP封装则直接进行标准IP报文的接收;若为TCP/DN/IP封装,则:从域名层提取源主机域名并解析该源主机域名从而得到对应的IP地址,或者直接从IP层提取源IP地址作为源主机域名的解析IP地址;在地址转换表中查找源主机域名,若存在对应条目则取出其中对应的伪IP地址,若不存在对应条目则在地址转换表中新增一个表项,内容包括:从伪地址池中新分配的一个未使用的伪IP地址,从域名层提取的源主机域名,以及相应的解析IP地址;以及去除报文中的TCP/DN/IP封装,将接收到的报文还原成标准IP报文并将源IP地址更改为对应的新分配的伪IP地址;协议栈将报文提交给应用程序。...

【技术特征摘要】
1.一种TCP/DN/IP网络兼容TCP/IP网络的转换方法,包括应用程序发送报文的流程以及应用程序接收报文的流程,其中:应用程序发送报文的流程包括:应用程序调用系统协议栈通过DNS解析目标主机域名为IP地址,协议栈进行解析并检查解析结果,如果返回的结果表明目标主机未升级,或者已经升级但与应用程序所在的主机处于相同IP域中,则返回解析得到的IP地址给应用程序;否则,根据目标主机域名和解析得到的IP地址在地址转换表中查询对应表项,若不存在对应表项则先从伪地址池中分配一个未使用的伪IP地址,并在地址转换表中新增一个包括目标主机域名、解析得到的IP地址和新分配的伪IP地址的表项,并将该伪IP地址作为DNS查询的结果返回给应用程序;在应用程序发送报文时,协议栈将IP报头中的目标主机IP地址与地址转换表中的伪IP地址列比对,若不存在对应表项则使用TCP/IP协议栈封装报文,若存在对应表项则从该对应表项中取出目标主机域名和目标主机的解析IP地址,给报文添加域名层报头并填入目标主机域名,添加UDP头,将IP报头目标地址更改为目标主机域名的解析IP地址;进行底层的报文发送;应用程序接收报文的流程包括:应用程序接收来自底层的报文;协议栈判断报文是否为TCP/DN/IP封装,若不为TCP/DN/IP封装则直接进行标准IP报文的接收;若为TCP/DN/IP封装,则:从域名层提取源主机域名并解析该源主机域名从而得到对应的IP地址,或者直接从IP层提取源IP地址作为源主机域名的解析IP地址;在地址转换表中查找源主机域名,若存在对应条目则取出其中对应的伪IP地址,若不存在对应条目则在地址转换表中新增一个表项,内容包括:从伪地址池中新分配的一个未使用的伪IP地址,从域名层提取的源主机域名,以及相应的解析IP地址;以及去除报文中的TCP/DN/IP封装,将接收到的报文还原成标准IP报文并将源IP地址更改为对应的新分配的伪IP地址;协议栈将报文提交给应用程序。2.根据权利要求1所述的TCP/DN/IP网络兼容TCP/IP网络的转换方法,其特征在于,伪地址池由不会真实用于网络访问的伪IP地址组成,地址转换表的表项包括伪IP地址、域名和解析IP地址,利用地址转换表及伪IP地址,在将报文由TCP/IP封装扩展成TCP/DN/DP封装时提供正确的目标主机域名。3.根据权利要求1所述的TCP/DN/IP网络兼容TCP/IP网络的转换方法,其特征在于,若应用程序发送的报文在应用层中携带了源主机IP地址,则报文在被发出前将该地址转换为源主机域名地址,其中对报文格式进行调整以确保接收端还原应用层的地址信息,在报文到达目标主机后利用地址转换表将应用层中的域名地址转换回伪IP地址。4.根据权利要求2所述的TCP/DN/IP网络兼容TCP/IP网络的转换方法,其特征在于,地址转换表基于时间老化机制删除不再使用的表项。5.一种在TCP/DN/IP网络兼容TCP/IP网络中的报文...

【专利技术属性】
技术研发人员:李实
申请(专利权)人:李实
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1