《基于路由信息携带转发的网络地址转发方法.pdf》由会员分享,可在线阅读,更多相关《基于路由信息携带转发的网络地址转发方法.pdf(14页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104202250A43申请公布日20141210CN104202250A21申请号201410392424722申请日20140811H04L12/74120130171申请人乐鑫信息科技(上海)有限公司地址201203上海市浦东新区张江高科技园区碧波路456号A2016室72发明人张瑞安董友才74专利代理机构上海交达专利事务所31201代理人王毓理王锡麟54发明名称基于路由信息携带转发的网络地址转发方法57摘要一种互联网技术领域的网络地址转发方法,通过在数据包中加入历史路由信息数据,使得具有双网口的转发路由在收到数据包后,根据数据包包含的路由信息能找到下一站的地址进行转发。
2、。本发明不需要路由表和大量端口映射的支持,就可以实现对数据包的路由转发;而在数据包的回复过程中,转发路由能够准确的沿发送数据包经过的路由,原路返回到最终的接收地址,技术实现简单可靠。51INTCL权利要求书2页说明书5页附图6页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书5页附图6页10申请公布号CN104202250ACN104202250A1/2页21一种网络地址转发方法,其特征在于,通过在数据包中加入历史路由信息数据,使得具有双网口的转发路由在收到数据包后,根据数据包包含的路由信息能找到下一站的地址进行转发;所述的加入是指在数据包内划分出预留空间。2根据权利要求1。
3、所述的方法,其特征是,所述的历史路由信息数据包括路由的IP地址或私有的路由编号。3根据权利要求1或2所述的方法,其特征是,所述的历史路由信息数据具体是指数据包发送过程中经过的路由的IP地址。4根据权利要求3所述的方法,其特征是,所述的预留空间的大小为一个IP地址的整数倍。5根据权利要求3所述的方法,其特征是,所述的IP地址包括数据包转发过程中经过路由转发处理后的起始节点和目的地址。6根据权利要求1或2所述的方法,其特征是,所述的转发具体步骤包括1当数据包中的IP头部分内的目标IP地址与发送端所在网口IP地址不在同一网段时,将数据包发送至发送端所在的网关;2数据包经过若干个具有双网口的转发路由并。
4、最终到达接收端网关,具体传输过程为21每个转发路由的第一网口检查数据包中的IP头部分的目标IP地址,当该目标IP地址不是该转发路由的第一网口下的节点时,将数据包转换至该转发路由的第二网口进行转发,并将IP头部分的起始IP地址保存在所述预留空间内,同时将IP头部分的起始IP地址更新为第二网口的IP地址;22每个转发路由的第二网口接收到数据包后,查找该数据包的所述路由段内是否含有第二网口的IP地址,如果含有,则尝试获取路由段内第二网口IP地址之前的IP地址,当路由段内第二网口IP地址前面存在IP地址,则执行步骤23;如果该数据包的路由段内不含有第二网口的IP地址,则执行步骤24;23将步骤22中路。
5、由段内第二网口IP地址前面存在IP地址替换数据包中IP头部分内的目的地址,并通过第二网口转发该数据包;24将路由段内最后一个合法的路由地址替换数据包中IP头部分内的目的地址,并通过第二网口转发该数据包;3重复上述步骤1和步骤2直至某一转发路由的第二网口的IP地址与数据包的目的IP地址在同一网段时,第二网口将该数据包发送至目的IP地址,完成转发。7根据权利要求1或2所述的方法,其特征是,所述的加入具体是指对所述历史路由信息数据进行加密计算后填入路由段,对应接收端收到数据包后必须通过解码才能得到历史路由信息数据,从而防止路由信息泄露。8根据权利要求7所述的方法,其特征是,所述的加密计算,在加密计算。
6、前、后数据包的大小保持不变或更小。9根据权利要求7或8所述的方法,其特征是,所述的加密采用异或算法实现。10一种根据上述任一权利要求所述转发的回复方法,其特征在于,采用以下两种方式中的任意一种权利要求书CN104202250A2/2页3A发送端为固定IP地址接收端将发送端的IP地址和路由段的IP地址按顺序保存起来,需要发送给该发送端时,取发送端的IP地址作为待发数据包的目的IP地址,将预留空间内的所有IP地址按堆栈退出的顺序填入待发数据包的路由段即可实现回复路径的构建;B发送端为非固定IP地址接收端直接提取发送端IP地址和路由段IP地址,将发送端IP地址做为待发数据包的目的IP地址,将预留空间。
7、中的路由段IP地址按堆栈退出的顺序回填到待发数据包的路由段即可实现回复路径的构建。权利要求书CN104202250A1/5页4基于路由信息携带转发的网络地址转发方法技术领域0001本发明涉及的是一种网络通信技术领域的方法,具体是一种不依赖于路由表和端口映射的网络地址转发方法。背景技术0002现在市面上路由器所采用的网络地址转发技术,在需要发数据包给外网段IP时,通常是通过查询路由表的方式获取下一站该发往的IP,该方法的缺点是需要消耗大量的系统资源去保存和维护一个路由表,实现复杂,不利于在资源有限的小系统中运行。另一种现有网络转发技术如中国专利文献号CN103023942A,其转发路由用特定的T。
8、CP端口映射特定的源IP,每转发一个TCP数据包,需要另起一个SOCKET,通过映射的TCP端口把数据包转发出去。该方法的缺点是当需要转发的设备量增加时,需要同时维护大量不同转发端口的SOCKET,实现复杂,不利于在资源有限的小系统中运行。0003如图1所示是现有的路由表选路技术工作流程,其数据包含一个路由表,由一个守护线程维护,收到ICMP重定向的数据包后,更新路由表,数据包需要发送下一站之前都需要查询路由表获取下一站的IP。没有路由表的支持,数据包就无法实现不同网段间的转发。0004经过对现有技术的检索发现,中国专利文献号CN101546468公开公告日20090930,公开了一种二维中继。
9、式载波路由动态维护方法,其中路由动态维护方法根据电表数据抄读结果查找抄读结果异常的电表,并进行自动重新路由学习,实现抄表故障维护和节点删除维护。但该技术实现复杂,需要的系统资源更多。0005中国专利文献号CN101674220公开公告日20100317,公开了一种基于转发历史的异步路由算法,数据包括中继选择算法;分组传输算法;路由信息更新。中继选择算法在节点准备发送分组时或作为中继点接收到消息时被执行,为分组选择较好的下一跳中继。分组传输算法在两个节点的通信机会到来时执行,进行分组的传输。路由更新算法在节点收到回馈信息后执行,更新路由信息表。但该技术需要消耗大量的系统资源去保存和维护一个路由表。
10、,实现复杂,不利于在资源有限的小系统中运行。0006综上所述,现阶段急需一种新型的路由转发技术,能够把数据包所经过的路由信息顺序的放在数据包内的某个固定地址,这样,接收端把数据包回复给发送端时,各路由都能从数据包的某个固定地址数据包含的路由信息得到下一站该转发的路由,从而不需要路表的支持,也不需要靠端口号映射转发IP。发明内容0007本发明针对现有技术存在的上述不足,提出一种网络地址转发方法,不需要路由表和大量端口映射的支持,就可以实现对数据包的路由转发;而在数据包的回复过程中,转发路由能够准确的沿发送数据包经过的路由,原路返回到最终的接收地址,技术实现简单可靠。说明书CN104202250A。
11、2/5页50008本发明是通过以下技术方案实现的0009本发明涉及一种网络地址转发方法,通过在数据包中加入历史路由信息数据,使得具有双网口的转发路由在收到数据包后,根据数据包包含的路由信息能找到下一站的地址进行转发。0010所述的加入是指在数据包内划分出预留空间。0011所述的历史路由信息数据包括但不限于路由的IP地址或私有的路由编号,优选为数据包发送过程中经过的路由的IP地址,对应所述预留空间的大小为一个IP地址的整数倍。0012所述的转发具体步骤包括00131当数据包中的IP头部分内的目标IP地址与发送端所在网口IP地址不在同一网段时,将数据包发送至发送端所在的网关;00142数据包经过若。
12、干个具有双网口的转发路由并最终到达接收端网关,具体传输过程为001521每个转发路由的第一网口检查数据包中的IP头部分的目标IP地址,当该目标IP地址不是该转发路由的第一网口下的节点时,将数据包转换至该转发路由的第二网口进行转发,并将IP头部分的起始IP地址保存在所述预留空间内,同时将IP头部分的起始IP地址更新为第二网口的IP地址;001622每个转发路由的第二网口接收到数据包后,查找该数据包的所述路由段内是否含有第二网口的IP地址,如果含有,则尝试获取路由段内第二网口IP地址之前的IP地址,当路由段内第二网口IP地址前面存在IP地址,则执行步骤23;如果该数据包的路由段内不含有第二网口的I。
13、P地址,则执行步骤24;001723将步骤22中路由段内第二网口IP地址前面存在IP地址替换数据包中IP头部分内的目的地址,并通过第二网口转发该数据包;001824将路由段内最后一个合法的路由地址替换数据包中IP头部分内的目的地址,并通过第二网口转发该数据包;00193重复上述步骤1和步骤2直至某一转发路由的第二网口的IP地址与数据包的目的IP地址在同一网段时,第二网口将该数据包发送至目的IP地址,完成转发。0020所述的加入具体是指对所述历史路由信息数据进行加密计算后填入路由段,对应接收端收到数据包后必须通过解码才能得到历史路由信息数据,从而防止路由信息泄露。0021所述的加密计算,优选在加。
14、密计算前、后数据包的大小保持不变或更小。0022本发明涉及一种根据上述网络地址转发的回复方法,采用以下两种方式中的任意一种0023A发送端为固定IP地址接收端将发送端的IP地址和路由段的IP地址按顺序保存起来,需要发送给该发送端时,取发送端的IP地址作为待发数据包的目的IP地址,将预留空间内的所有IP地址按堆栈退出的顺序填入待发数据包的路由段即可实现回复路径的构建;0024B发送端为非固定IP地址接收端直接提取发送端IP地址和路由段IP地址,将发送端IP地址做为待发数据包的目的IP地址,将预留空间中的路由段IP地址按堆栈退出说明书CN104202250A3/5页6的顺序回填到待发数据包的路由段。
15、即可实现回复路径的构建。技术效果0025与现有技术相比,本发明在正规的TCP数据段某固定位置,比如起始节点,增加最多可放NN表示数据包可以最多经过转发的次数个路由地址的路由段,用于存放数据包在转发过程中经历的各个路由标识信息。本发明中的路由段只在数据段之内操作,能够在只提供应用层接口的协议栈之上实现路由转发功能,满足在无路由转发服务的TCP协议栈之上实现路由转发的需要。附图说明0026图1是现有的使用路由表查询技术实现路由转发的工作流程图。0027图2是本发明用于存放路由路径的数据段所处位置示意图。0028图3是本发明应用场景中发送端发送数据包给接收端时,数据包各字段的变化示意图。0029图4。
16、是本发明应用场景中发送端发送数据给接收端时,数据包转发流程的具体描述示意图。0030图5是本发明应用场景中接收端回复数据包给发送端时,数据包各字段的变化示意图。0031图6是本发明应用场景中接收端回复数据包给发送端时,数据包转发流程的具体描述示意图。0032图7是本发明在变化应用场景中发送端发送数据包给接收端时,数据包转发流程的具体描述示意图。0033图8是本发明的路由信息加密算法示意图。具体实施方式0034下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。实施例10035本实施例所述的网络地。
17、址转发技术尤其适用于TCP/IP协议栈只能实现IP转发的场景,图3到图6所示是该技术的一种典型应用。0036本实施例中,没有路由表的支持,发送端的数据包经过了3个路由的转发,到达接收端,具体数据包的流转过程如图4所示。同时,接收端回复数据包给发送端时,也能找到正确的3个路由进行转发,到达真正的发送端,具体数据包的流转过程如图6所示。0037如图2所示,本实施例中,用路由非网关网口IP地址表示路由标识信息,路由信息放置在数据段最开始的位置,路由段最多能存储15次转发路由IP地址,同时路由段信息未采用加密算法保护路由数据,数据包的路由段记录了数据包经过的路由IP地址,转发路由通过数据包的路由段数据。
18、包含的路由IP地址获取该转发的下一站地址。0038本实施例具体包括以下步骤0039步骤1数据包初始化阶段如图2所示,当在TCP/IP协议栈的应用层接口申请数说明书CN104202250A4/5页7据段缓存空间BUFF时,额外申请若干个字节的初始值为0XFF的预留空间,并自预留空间后的地址开始复制缓存数据作为BUFF。0040所述的预留空间的大小为4的整数倍,即为路由IP地址预留;优选为60字节,对应15个路由IP地址预留,定义为路由段,下同。该值没有固定上限。理论上限是TCP/IP连接的MTU值,最小值为0,表示不携带路由信息。0041步骤2转发阶段如图3、4所示,具体包括以下步骤004221。
19、当数据包中的IP头部分内的目标IP地址DESIP地址与发送端所在网口IP地址不在同一网段时,将数据包发送至发送端所在的网关;004322数据包经过若干个具有双网口的转发路由并最终到达接收端网关,具体传输过程为0044221每个转发路由的第一网口即网关网口检查数据包中的IP头部分的目标IP地址,当该目标IP地址不是本路由的第一网口下的节点时,将数据包转换至本路由的第二网口即非网关网口进行转发,同时,将IP头部分的起始IP地址SRCIP地址保存在所述预留空间内后,将IP头部分的起始IP地址更新为第二网口的IP地址;0045222每个转发路由的第二网口接收到数据包后,查找该数据包的所述路由段内是否含。
20、有第二网口的IP地址,如果含有,则尝试获取路由段内第二网口IP地址之前的IP地址,当路由段内第二网口IP地址前面没有IP地址,则说明该数据包是发送给本网口的,接收下来送到应用层进行处理,否则执行步骤223;如果该数据包的路由段内不含有第二网口的IP地址,执行步骤224。0046223当在路由段内第二网口IP地址前面能找到某个IP地址,则将这个找到的IP地址取出来,将取出的这个路由IP地址替换掉数据包的目的地址,换网口转发出去。0047224如果在数据包的路由段找不到第二网口IP地址,则取最后一个非全F路由地址。将取出的这个路由IP地址替换掉数据包的目的地址,换网口转发出去。004823如图3、。
21、4所示,当转发路由第二网口进行转发时,发现数据包的目的IP地址和转发路由第二网口的IP地址在同一网段时,就会把数据包发送给最终的接收端节点。当接收端网口接收到数据包后,经过判断,确定该数据包的目的IP地址是接收端网口节点的IP地址,则接收端接收该数据包,并将路由段之后的内容作为实际要传输的数据传给应用层进行处理。0049步骤3回复阶段如图5、6所示,接收端根据发送端IP地址是否为固定,分以下对应方式回复数据0050A发送端为固定IP地址接收端将发送端的IP地址和路由段的IP地址按顺序保存起来,需要发送给该发送端时,取发送端的IP地址作为待发数据包的目的IP地址,将预留空间内的所有IP地址按堆栈。
22、退出的顺序填入待发数据包的路由段即可实现回复路径的构建。0051B发送端为非固定IP地址接收端直接提取发送端IP地址和路由段IP地址,将发送端IP地址做为待发数据包的目的IP地址,将预留空间中的路由段IP地址按堆栈退出的顺序回填到待发数据包的路由段即可实现回复路径的构建。0052本实施例的另外一个可变的地方,在于可将数据包所经路由的发送过程中起始节点换成路由的IP地址,然后将数据包转发过程中经过路由转发处理后的起始节点和目的说明书CN104202250A5/5页8地址都在路由段存储下来,见图7所示。这样在接收端回复时,直接提取数据包所经路由的起始节点进行回复,摆脱只能回复网关的限制。当然表示路。
23、由信息的方法有很多种,也可以存储加密后的代码表示数据包的路由段信息,本实施例特别指出,表示路由的信息数据包括但不限于是路由的IP地址。0053如图8所示,为本实施例列举的一个简单的路由信息加密和解密的算法。可用于数据包路由段里面路由信息的加密传输和解密接收。0054综上所述,本实施例所述的用于不同网段间数据包转发的技术,在TCP/IP地址协议栈的数据段增加了一段用于保存转发路由标识的字段,记录数据包转发的所经历的路由,还提供了接收端对该路由字段的处理办法,本实施例的另外一个变动的地方,可以摆脱路由只能发向网关的限制,让任何一个两网口的路由节点成为路由。说明书CN104202250A1/6页9图1图2说明书附图CN104202250A2/6页10图3说明书附图CN104202250A103/6页11图4说明书附图CN104202250A114/6页12图5说明书附图CN104202250A125/6页13图6图7说明书附图CN104202250A136/6页14图8说明书附图CN104202250A14。