CN1913482A - 对ip分片报文进行通用路由封装的方法 - Google Patents

对ip分片报文进行通用路由封装的方法 Download PDF

Info

Publication number
CN1913482A
CN1913482A CNA2005100898877A CN200510089887A CN1913482A CN 1913482 A CN1913482 A CN 1913482A CN A2005100898877 A CNA2005100898877 A CN A2005100898877A CN 200510089887 A CN200510089887 A CN 200510089887A CN 1913482 A CN1913482 A CN 1913482A
Authority
CN
China
Prior art keywords
message
heading
generic route
route encapsulation
field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005100898877A
Other languages
English (en)
Other versions
CN100499579C (zh
Inventor
孙颂辉
陈诗军
周志雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNB2005100898877A priority Critical patent/CN100499579C/zh
Publication of CN1913482A publication Critical patent/CN1913482A/zh
Application granted granted Critical
Publication of CN100499579C publication Critical patent/CN100499579C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种对IP分片报文进行通用路由封装的方法,包括:(1)设置需要对报文进行通用路由封装的中间节点的前一级节点的最大可传输IP报文字节数,使其小于或等于该中间节点的最大可传输报文字节与通用路由封装报文头字节的差值;(2)中间节点接收到报文后,判断该报文是否为分片报文,若否,则在该报文净荷的前面插入通用路由封装报文头,并修改该未分片报文的IP报文头中的相关字段的值,保证IP报文头的正确性;若是,则判断该报文是否是第一个分片,若是则按未分片报文的处理方式进行处理,若该报文不是第一个分片,则直接修改该分片报文IP报文头中的相关字段的值,保证IP报文头的正确性。本发明提高了通用性和转发效率。

Description

对IP分片报文进行通用路由封装的方法
技术领域
本发明涉及计算机通讯领域,尤其涉及一种基于隧道协议的中间节点中对IP分片报文进行通用路由封装的方法。
背景技术
网络隧道协议是用来实现两个网络协议之间的数据传输,也即将一种协议报文封装到另一种协议中。通用路由封装(GRE,General Routing Encapsulation)是常用的隧道协议中的一种,不仅支持IP协议,而且还支持其他类型的网络层协议,因此应用较广。在进行多协议封装时将要封装在其他协议数据包中作为净荷的数据包被称为净荷包,封装其他数据包的外层数据包被称为传送包。RFC1701、RFC1702中说明了GRE协议的封装包格式、GRE报文头格式和GRE over IPV4的方法。例如,标准的GRE隧道技术可在IPV4上承载IPV6数据报文,GRE隧道是两点之间的链路,每条链路都是一条单独的隧道,实际接口的IPV4地址是隧道的源地址和目的地址,IPV6地址是配置在隧道逻辑接口上的。IPV6报文先封装为GRE报文,再封装为IPV4报文。IPV4报文中的源地址和目的地址是隧道的起点和终点所依托物理端口的IPV4地址。GRE隧道技术同样可承载其他类型的协议。因此,对于下一代网络和IPV6的推广来讲,GRE隧道技术至关重要。
IP协议在传输数据包时,如果传输的IP报文大小超过了最大传输单位MTU(Maximum Transmission Unit),则需要将数据报文分为若干分片进行传输,并在目标系统中进行重组。这一过程称为分片。比如说,在以太网(Ethernet)环境中可传输最大IP报文(MTU)的大小为1500字节。如果要传输的报文大小超过1500字节,则需要分片之后进行传输。
而RFC1701、RFC1702给出的方法仅适用于在源端对报文净荷进行GRE封装后再通过IP层发送的情况。
发明内容
针对上述现有IP链路中报文转发中间节点上无法对IP分片进行GRE封装的问题和不足,本发明的目的是提供一种简单通用、转发效率高的对IP分片报文进行通用路由封装的方法。
本发明是这样实现的:一种对IP分片报文进行通用路由封装的方法,包括以下步骤:
(1)设置需要对报文进行通用路由封装的中间节点的前一级节点的最大可传输IP报文字节数,使其小于或等于该中间节点的最大可传输报文字节与通用路由封装报文头字节的差值;
(2)所述中间节点接收到报文后,判断该报文是否为分片报文,若否,则在该报文净荷的前面插入通用路由封装报文头,并修改该未分片报文的IP报文头中的相关字段的值,保证IP报文头的正确性;若是,则判断该报文是否是第一个分片,若是则按未分片报文的处理方式进行处理,若该报文不是第一个分片,则直接修改该分片报文IP报文头中的相关字段的值,保证IP报文头的正确性。
本发明通过设置IP链路中报文转发中间节点的前一级节点(包括源节点)的最大可传输IP报文字节数,以使该中间节点对前一级节点发送过来的报文插入GRE报头后,不会超出最大的可传输IP报文字节数。这样,本发明可实现中间节点对分片报文的GRE方式的封装。本发明提高了系统的通用性和节点转发效率。
附图说明
图1是标准的无选项的IP报文头的结构示意图;
图2是GRE报文头的结构示意图;
图3是本发明的应用报文结构示意图。
具体实施方式
下面结合附图对本发明作进一步的详细描述。
在IP网络中需要中间节点完成对分片报文进行封装时,需要考虑封装(增加相应隧道协议报头)后是否超出了最大可传输IP报文(MTU)字节数,若超出了MTU,则需要对该新报文进行重新分包,这将造成数据的丢失。因此,需要对前一级节点进行报文长度的限制,以避免重新封装后溢出的现象。而对于存在多个协议封装节点的,应当自源节点至后分别进行报文长度的限制。然后再在各节点上完成对分片报文或非分片报文的重新封装。以下对IPV4中间节点对报文进行GRE方式封装为例详细说明封装过程。假设中间节点接收到的报文长度满足封装后不超出MTU的要求。
如图1所示,标准的无选项的IP报文头包括4位的“版本(当前为第4版本)”字段,4位“首部长度”字段。8比特的服务类型字段分为两个部分——优先级和服务类型。16位的“数据包总长度”字段,用来定义以字节为单位的整个IP分组的总长。16位的“标识”字段,目的主机用它来识别和组合IP分组的片段。3位“标志”,第一位保留,最后一位中“0”代表最后一个段,“1”代表还有更多的段。13位“标准偏移”字段,原始IP分组被分段后,每一个分段生成的数据块都有一个从IP分组起始位置开始编号的序号,该序号记录在偏移字段中;8位的“生存时间(TTL)”字段用来防止在网络中出现IP分组的无限循环。“协议”字段用来鉴别利用了IP服务的邻接高层所采用的协议。16位“首部校验和”字段是根据IPv4分组头中的其他字段计算出来的。源地址和目的地址均为IPV4的32位地址。如图2所示,和IP报头一样,GRE报头也为20字节,但其包括很多可选项。由于IP协议规定分片报文的长度(除最后一片外)必须是8字节的整数倍,因此,也必须保障GRE报头为8字节的整数倍(8字节或16字节)。
如果中间节点接收到IP报文时,首先判断3位“标志”字段的最后一位是否为“0”,同时判断13位“标准偏移”字段的字段是否为“0”,如果该两个条件都满足,则中间节点接收到的IP报文是未分片报文,则执行以下步骤:
a、“TTL”字段的值减“1”;
b、16位的“数据包总长度”字段的值增加一个GRE报文头的长度;
c、重新计算16位“首部校验和”字段的值;
d、净荷的前面插入GRE报文头;
e、转发给下一级节点。
如果中间节点接收到IP报文时,判断3位“标志”字段的最后一位为“1”,同时13位“标准偏移”字段的值为“0”,则表明该中间节点接收到的IP报文是第一个分片,则执行与前述未分片报文相同的处理步骤。
如果中间节点接收到IP报文时,判断3位“标志”字段的最后一位为“1”,同时13位“标准偏移”字段的值非“0”,则表明该中间节点接收到的IP报文不是第一个分片,则执行也不是最后一个分片,则执行以下步骤:
a、“TTL”字段的值减“1”;
b、13位的“标准偏移”字段的值增加一个GRE报文头的长度;
c、重新计算16位“首部校验和”字段的值;
d、转发给下一级节点。
如果中间节点接收到IP报文时,判断3位“标志”字段的最后一位为“0”,同时13位“标准偏移”字段的值非“0”,则表明该中间节点接收到的IP报文是最后一个分片,则执行前述与分片报文中非第一分片相同的处理步骤。
如图3所示,对于净荷的前面插入GRE报文头,即在IP报文的数据区前面添加GRE报文头。图中IP报文的数据区是指IPV6报头和IPV6数据。当然,该数据区也可以是普通的数据。
当以太网的中间节点需要对IP报文进行GRE封装时,传统的方法只能对非IP分片进行GRE封装,采用本发明则突破了这个限制,对于所有的IP报文均可以进行GRE封装。提高了系统的兼容性和通用性。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (4)

1、一种对IP分片报文进行通用路由封装的方法,其特征在于,该方法包括以下步骤:
(1)设置需要对报文进行通用路由封装的中间节点的前一级节点的最大可传输IP报文字节数,使其小于或等于该中间节点的最大可传输报文字节与通用路由封装报文头字节的差值;
(2)所述中间节点接收到报文后,判断该报文是否为分片报文,若否,则在该报文净荷的前面插入通用路由封装报文头,并修改该未分片报文的IP报文头中的相关字段的值,保证IP报文头的正确性;若是,则判断该报文是否是第一个分片,若是则按未分片报文的处理方式进行处理,若该报文不是第一个分片,则直接修改该分片报文IP报文头中的相关字段的值,保证IP报文头的正确性。
2、根据权利要求1所述的对IP分片报文进行通用路由封装的方法,其特征在于,所述IP报文是指IPV4报文。
3、根据权利要求2所述的对IP分片报文进行通用路由封装的方法,其特征在于,所述修改IP报文头中的相关字段的值具体为,若为非分片报文或第一个分片报文,则将所述IP报文头中的“生存时间”字段减“1”,“报文总长度”字段增加通用路由封装报文头的长度,并重现计算“首部校验和”字段值;否则将所述IP报文头中的“生存时间”字段减“1”,“标准偏移量”字段增加通用路由封装报文头的长度,并重现计算“首部校验和”字段值。
4、根据权利要求1至3中任一权利要求所述的对IP分片报文进行通用路由封装的方法,其特征在于,所述通用路由封装报文头的字节数是8字节的整数倍。
CNB2005100898877A 2005-08-10 2005-08-10 对ipv4分片报文进行通用路由封装的方法 Expired - Fee Related CN100499579C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100898877A CN100499579C (zh) 2005-08-10 2005-08-10 对ipv4分片报文进行通用路由封装的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100898877A CN100499579C (zh) 2005-08-10 2005-08-10 对ipv4分片报文进行通用路由封装的方法

Publications (2)

Publication Number Publication Date
CN1913482A true CN1913482A (zh) 2007-02-14
CN100499579C CN100499579C (zh) 2009-06-10

Family

ID=37722257

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100898877A Expired - Fee Related CN100499579C (zh) 2005-08-10 2005-08-10 对ipv4分片报文进行通用路由封装的方法

Country Status (1)

Country Link
CN (1) CN100499579C (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009138007A1 (zh) * 2008-05-12 2009-11-19 华为技术有限公司 通用路由封装承载的方法、装置及系统
CN102067532B (zh) * 2008-06-23 2015-01-21 阿尔卡特朗讯美国公司 分组片段的处理
CN104521196A (zh) * 2012-06-06 2015-04-15 瞻博网络公司 针对虚拟网络分组流的物理路径确定
CN106685862A (zh) * 2015-11-11 2017-05-17 大唐移动通信设备有限公司 一种分片数据包处理方法及装置
US9898317B2 (en) 2012-06-06 2018-02-20 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US9954798B2 (en) 2014-03-31 2018-04-24 Juniper Networks, Inc. Network interface card having embedded virtual router
US10243840B2 (en) 2017-03-01 2019-03-26 Juniper Networks, Inc. Network interface card switching for virtual networks
CN111212060A (zh) * 2019-12-31 2020-05-29 盛科网络(苏州)有限公司 一种剥离可变长gre头部的方法及装置
CN114039749A (zh) * 2021-10-26 2022-02-11 中国银联股份有限公司 一种攻击检测方法、装置、设备及存储介质
CN114615354A (zh) * 2022-04-12 2022-06-10 支付宝(杭州)信息技术有限公司 处理报文的方法及装置

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009138007A1 (zh) * 2008-05-12 2009-11-19 华为技术有限公司 通用路由封装承载的方法、装置及系统
CN102067532B (zh) * 2008-06-23 2015-01-21 阿尔卡特朗讯美国公司 分组片段的处理
CN104521196A (zh) * 2012-06-06 2015-04-15 瞻博网络公司 针对虚拟网络分组流的物理路径确定
CN104521196B (zh) * 2012-06-06 2017-06-13 瞻博网络公司 针对虚拟网络分组流的物理路径确定
US9898317B2 (en) 2012-06-06 2018-02-20 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US10565001B2 (en) 2012-06-06 2020-02-18 Juniper Networks, Inc. Distributed virtual network controller
US10382362B2 (en) 2014-03-31 2019-08-13 Juniper Networks, Inc. Network server having hardware-based virtual router integrated circuit for virtual networking
US9954798B2 (en) 2014-03-31 2018-04-24 Juniper Networks, Inc. Network interface card having embedded virtual router
CN106685862A (zh) * 2015-11-11 2017-05-17 大唐移动通信设备有限公司 一种分片数据包处理方法及装置
CN106685862B (zh) * 2015-11-11 2019-11-12 大唐移动通信设备有限公司 一种分片数据包处理方法及装置
US10243840B2 (en) 2017-03-01 2019-03-26 Juniper Networks, Inc. Network interface card switching for virtual networks
US10567275B2 (en) 2017-03-01 2020-02-18 Juniper Networks, Inc. Network interface card switching for virtual networks
CN111212060A (zh) * 2019-12-31 2020-05-29 盛科网络(苏州)有限公司 一种剥离可变长gre头部的方法及装置
CN114039749A (zh) * 2021-10-26 2022-02-11 中国银联股份有限公司 一种攻击检测方法、装置、设备及存储介质
CN114615354A (zh) * 2022-04-12 2022-06-10 支付宝(杭州)信息技术有限公司 处理报文的方法及装置

Also Published As

Publication number Publication date
CN100499579C (zh) 2009-06-10

Similar Documents

Publication Publication Date Title
CN100499579C (zh) 对ipv4分片报文进行通用路由封装的方法
US8462814B2 (en) Internet protocol using ethernet first mile physical layer
CN100486225C (zh) 分组域网络中减少数据ip分片数量的方法
US6711164B1 (en) Method and apparatus for performing IP-ID regeneration to improve header compression efficiency
CN107493238A (zh) 一种网络拥塞控制方法、设备及系统
CN107079017B (zh) 一种报文转换方法及装置
EP1234428A1 (en) Method and apparatus for packet delay reduction using scheduling and header compression
US7848323B2 (en) Method for transporting data packets, data network system, and network nodes
US7870361B1 (en) Aligning IP payloads on memory boundaries for improved performance at a switch
WO2021088813A1 (zh) 报文封装方法及装置、报文解封装方法及装置
CN106027412A (zh) 一种基于拥塞队列长度的tcp拥塞控制方法
US7577136B1 (en) Ethernet switch fabric interface
CN114513335B (zh) 一种基于单向光闸的数据流融合高效传输方法
US7463611B2 (en) Efficient data transmission by data aggregation
CN102137008B (zh) 一种服务质量QoS保持方法、装置及系统
CN108282391B (zh) 一种vxlan报文分片方法和装置
CN1299479C (zh) 一种隧道包的分片发送方法
CN101640635A (zh) 一种6over4隧道中避免报文重组的方法及系统
JP7027449B2 (ja) フレックスイーサネットプロトコルにおいてトラヒックを伝送する方法、装置及びシステム
EP2071808A1 (en) Methods and a system and devices for ipv6 datagram transmission in the ethernet
EP2600569B1 (en) Method, apparatus and system for processing a tunnel packet
CN112737967A (zh) 一种基于Flow Director实现IPv4 GRE报文负载均衡的方法
CN107196879A (zh) Udp报文的处理方法、装置以及网络转发装置
CN114422445B (zh) 一种负载均衡和乱序重组的实现方法
CN102907046A (zh) 用于处理消息的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090610

Termination date: 20150810

EXPY Termination of patent right or utility model