CN1464703A - 一种提高ip报文转发速度的方法 - Google Patents
一种提高ip报文转发速度的方法 Download PDFInfo
- Publication number
- CN1464703A CN1464703A CN02124089A CN02124089A CN1464703A CN 1464703 A CN1464703 A CN 1464703A CN 02124089 A CN02124089 A CN 02124089A CN 02124089 A CN02124089 A CN 02124089A CN 1464703 A CN1464703 A CN 1464703A
- Authority
- CN
- China
- Prior art keywords
- message
- link layer
- user
- forwarding
- forwarding unit
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种提高IP报文转发速度的方法,其特征在于该方法包括以下步骤:对于用户第一次发送的控制报文,转发设备的上层软件在转发信息表里建立目的IP地址与连接标识、出端口信息的映射关系,同时在封装信息表里建立连接标识与计算好的链路层封装头间的映射关系;转发部件从接收的IP报文中提取目的IP地址,并以该目的IP地址索引转发信息表,获得连接标识及出端口信息;转发部件再以连接标识索引封装信息表,获得该目的IP地址的链路层封装头;将该链路层封装头复制,与IP报文拼装得到完整报文,并从相应的出端口发出。本发明采用了一次性计算封装,多次使用封装的方法实现硬件高速封装和转发,大大地提高了报文转发速度。
Description
技术领域
本发明涉及互联网领域,特别是涉及一种提高IP报文转发速度的方法。
背景技术
在互联网上传递的数据报文由用户数据加IP头加链路层封装头组成,其中,用户数据加IP头组成IP报文。当数据报文在两个结点之间的线路上传送时,报文必须有链路层封装头。
由于互联网上的IP协议是无连接的,所以当需要把一个IP报文发出某端口时,要根据端口类型和不同的链路头格式以及其它相关信息动态生成链路层封装头,其中会有比较复杂的判断和处理过程。
报文在一个结点的转发处理过程如图1所示。
(101)当数据报文a+b到达一个结点时,结点首先分析链路层封装头a并将链路层封装头a拆除,得到IP报文b;
(102)然后对IP报文b进行分析,查找出本结点路由的出端口;
(103)计算出新的链路层封装头c;
(104)然后将新的链路层封装头c加到IP报文b头部,以组成新的数据报文c+b;
(105)将数据报文c+b从出端口发出。
现有的链路层封装技术的特点是链路封装和转发同时进行,即IP报文的转发和链路层封装头的生成是由路由器的一个部件(软件)完成的,每一个IP报文都需要通过一系列复杂的软件处理过程以完成链路头封装后才能转发,特别是象边缘交换路由器(ESR,Edge Switch Router)这样的接入路由器,含有多层链路层,并且由于用户接入方式和接入的链路层协议多样化,使多层链路层的封装过程特别复杂,需要花费大量时间,并且只能由软件来完成,转发速度不可能很快。
实际上,对于同一个用户或者同一个与本设备相连接的设备(对转发部件来说即是同一个目的IP地址),其出端口(即连接该用户或者设备的端口)和出端口对应的链路头封装是不变的,换句话说,对于同一用户即同一目的IP地址,转发设备转发给它的IP报文的链路头封装是不变的,所以一结点转发时对每一个IP报文都重复地进行一系列本无必要的复杂的链路层封装处理过程,是浪费时间的作法,因而使报文转发不可能达到很高的速度。
发明内容
有鉴于此,本发明的主要目的是设计一种提高IP报文转发的速度,通过简化报文封装,使报文能快速地从结点转发出去。
本发明提供了一种提高IP报文转发速度的方法,包括以下步骤:
A.转发设备对于用户第一次发送的控制报文,计算好链路层封装头并建立目的IP地址、连接标识与链路层封装头间的映射关系;
B.转发设备从接收的IP报文中提取目的IP地址,通过连接标识获得该用户的链路层封装头;
C.转发设备复制该链路层封装头,与'报文拼装得到完整的链路层报文,从出端口转发。
所述步骤A中的建立映射关系进一步包括:
A1.设置转发信息表,建立目的IP地址与连接标识、出端口信息的映射关系;
A2.设置封装信息表,建立连接标识与计算好的链路层封装头间的映射关系。
所述的步骤B进一步包括:
B1.转发设备从接收的IP报文中提取目的IP地址,并以该目的IP地址索引转发信息表,获得连接标识及出端口信息;
B2.转发设备再以该连接标识索引封装信息表,获得该用户的链路层封装头。
所述的转发信息表是由转发设备的上层软件为每个用户建立的从用户目的IP地址到用户连接标识和出端口信息的查找映射关系。
所述的封装信息表是由转发设备的上层软件建立的,以所述的连接标识唯一确定链路层封装头,与用户的连接记录一一对应。
所述的出端口信息至少包括出端口编号及其出端口所在的单板的编号。
所述步骤A中的连接标识是由转发设备的上层软件为每一个用户分配的用于唯一地确定一条用户连接记录的标识。
所述步骤A、B、C中链路层封装头是由转发设备的上层软件预先为每一条连接计算好的、并存放在高速连接表内存中完成的。
所述步骤B、C是由转发设备中的转发硬件直接完成的。
在转发设备中,每一个接入用户(每一个目的IP)对应着一条连接,上层软件预先为每一条连接计算好链路层封装头,并存放在高速连接表内存中,转发硬件对每一个IP报文根据其连接标识,查找到相应的链路封装头直接拷贝到IP报文头部,即可完成链路层封装过程。对比较复杂的有多层链路层的封装,也只是简单的拷贝过程。转发硬件不需要计算链路封装头,上层软件也不必针对每个IP报文计算链路层封装头,对于转发过程只是简单的拷贝过程,所以转发速率大大提高。
本发明采用了这种一次性计算封装,多次使用封装的方法实现硬件高速封装和转发,大大地提高了报文的转发速度。
附图说明
图1为现有技术中报文封装和转发的处理过程。
图2为本发明中报文封装和转发的处理过程。
具体实施方式
本发明的技术方案可以应用于互联网中传递报文的过程,下面以应用于边缘交换路由器(ESR,Edge Switch Router)设备中为例来说明其实施方案。
以图2所示来说明本发明中报文封装和转发的处理过程。
其中图2中上面的部分(步骤1、2、3)是控制报文处理流程,是上层软件建立链路层封装头表项的过程,下面(步骤4~9)为数据报文处理流程,即快速封装转发过程。
当用户第一次发送报文201(当然是控制报文)到ESR时,其处理过程如下:
1.ESR的上层软件202从报文取出封装头相关信息在连接表里建立连接记录,并为每个用户分配一个连接标识,用来唯一地确定一条用户连接记录;
2.上层软件也会为每个用户在转发信息表203中建立从用户IP地址到连接标识的查找映射关系。
3.同时上层软件计算封装头,并为该用户在封装信息表204里建立链路层封装头记录,该封装头也是以连接标识唯一确定的,与用户的连接记录一一对应。
对于有多层链路层的路由器,需要构造各链路层的封装,但是计算封装头这个工作也只作一次。
随后,当有来自其它用户或者网络的IP报文207需要ESR转发到某一用户时,其处理过程如下:
4.转发部件205从IP报文207中取目的IP地址(即用户的IP地址);
5.转发部件205根据IP报文207中的目的IP地址查转发信息表203;
6.在转发信息表203中查找到该用户对应的连接标识及出端口信息(当然也要查找报文的出端口编号及其所在的单板的编号);
7.以连接标识查找封装信息表204中链路层封装记录;
8.查找到该IP报文需要的链路层封装头并复制,得到该封装头206,并把链路层封装头206拼装到该IP报文头部,得到完整的链路层报文208;
9.链路层报文208直接从出端口转发。
这里,链路层报文208将由ESR的转发部件205直接转发,省掉了由上层软件的处理过程。
在ESR设备中,IP报文与其链路层封装是面向连接的,即每个目的IP对应一条连接和一个链路层封装;ESR中的转发部件和链路层封装头计算部件分开,即转发部件不计算链路层封装头,只是简单地拷贝该头,其任务只是转发IP报文;上层软件对每个连接(目的IP)只计算一次链路层封装头,以后转发部件不需要对每个报文计算封装头,而只需要将封装头拷贝到每个报文头部即可。
应用该方法的ESR设备,报文的转发速度可以达到600Mbps。
从上面的过程可以看出,本发明中对IP报文转发的处理,是通过查找用户的第一次发送报文的记录,根据目的IP地址查找到封装头,拷贝后加到IP报文中,由转发部件直接转发,对除第一次以外的每个报文都省却了计算封装头的过程,大大地提高了报文的转发速度。
Claims (8)
1.一种提高IP报文转发速度的方法,其特征在于包括以下步骤:
A.转发设备对于用户第一次发送的控制报文,计算好链路层封装头并建立目的IP地址、连接标识与链路层封装头间的映射关系;
B.转发设备从接收的IP报文中提取目的IP地址,通过连接标识获得该用户的链路层封装头;
C.转发设备复制该链路层封装头,与IP报文拼装得到完整的链路层报文,从出端口转发。
2.根据权利要求1所述的一种提高IP报文转发速度的方法,其特征在于:
所述步骤A中的建立映射关系进一步包括:
A1.设置转发信息表,建立目的IP地址与连接标识、出端口信息的映射关系;
A2.设置封装信息表,建立连接标识与计算好的链路层封装头间的映射关系;
所述的步骤B进一步包括:
B1.转发设备从接收的IP报文中提取目的IP地址,并以该目的IP地址索引转发信息表,获得连接标识及出端口信息;
B2.转发设备再以该连接标识索引封装信息表,获得该用户的链路层封装头。
3.根据权利要求2所述的一种提高IP报文转发速度的方法,其特征在于:所述的转发信息表是由转发设备的上层软件为每个用户建立的从用户目的IP地址到用户连接标识和出端口信息的查找映射关系。
4.根据权利要求2所述的一种提高IP报文转发速度的方法,其特征在于:所述的封装信息表是由转发设备的上层软件建立的,以所述的连接标识唯一确定链路层封装头,与用户的连接记录一一对应。
5.根据权利要求2所述的一种提高IP报文转发速度的方法,其特征在于:所述的出端口信息至少包括出端口编号及其出端口所在的单板的编号。
6.根据权利要求1所述的一种提高IP报文转发速度的方法,其特征在于:所述步骤A中的连接标识是由转发设备的上层软件为每一个用户分配的用于唯一地确定一条用户连接记录的标识。
7.根据权利要求1所述的一种提高IP报文转发速度的方法,其特征在于:所述步骤A、B、C中的链路层封装头是由转发设备的上层软件预先为每一条连接计算好的、并存放在高速连接表内存中完成的。
8.根据权利要求1所述的一种提高IP报文转发速度的方法,其特征在于:所述步骤B、C是由转发设备中的转发硬件直接完成的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021240892A CN1233133C (zh) | 2002-06-19 | 2002-06-19 | 一种提高ip报文转发速度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021240892A CN1233133C (zh) | 2002-06-19 | 2002-06-19 | 一种提高ip报文转发速度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1464703A true CN1464703A (zh) | 2003-12-31 |
CN1233133C CN1233133C (zh) | 2005-12-21 |
Family
ID=29743785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021240892A Expired - Fee Related CN1233133C (zh) | 2002-06-19 | 2002-06-19 | 一种提高ip报文转发速度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1233133C (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100477639C (zh) * | 2005-11-30 | 2009-04-08 | 中国科学院计算技术研究所 | 一种无线网络节点缓冲数据包处理方法 |
CN101106529B (zh) * | 2007-08-02 | 2010-07-21 | 杭州华三通信技术有限公司 | 基于安全业务的包转发方法及系统 |
CN1946061B (zh) * | 2006-10-12 | 2010-07-28 | 杭州华三通信技术有限公司 | 一种快速处理报文的方法及装置 |
CN101110769B (zh) * | 2007-08-02 | 2010-08-25 | 杭州华三通信技术有限公司 | 基于安全业务的包转发方法及系统 |
CN101267395B (zh) * | 2008-03-13 | 2012-04-25 | 华为技术有限公司 | 数据传输方法及装置 |
CN101515890B (zh) * | 2009-04-03 | 2012-09-05 | 中兴通讯股份有限公司 | 一种报文封装方法及装置 |
US8316432B2 (en) | 2007-08-02 | 2012-11-20 | Hangzhou H3C Technologies Co., Ltd. | Method for implementing security-related processing on packet and network security device |
WO2013181984A1 (zh) * | 2012-06-08 | 2013-12-12 | 中兴通讯股份有限公司 | 一种报文复制方法及装置 |
CN103841083A (zh) * | 2012-11-22 | 2014-06-04 | 华为技术有限公司 | 增强报文识别能力的方法及装置 |
CN104243417A (zh) * | 2013-06-18 | 2014-12-24 | 上海博达数据通信有限公司 | 基于多核的pppoe实现方法 |
CN108111414A (zh) * | 2016-11-25 | 2018-06-01 | 新华三技术有限公司 | 一种基于段路由的标签部署方法和装置 |
CN115604186A (zh) * | 2021-07-09 | 2023-01-13 | 华为技术有限公司(Cn) | 路由方法及相关设备 |
-
2002
- 2002-06-19 CN CNB021240892A patent/CN1233133C/zh not_active Expired - Fee Related
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100477639C (zh) * | 2005-11-30 | 2009-04-08 | 中国科学院计算技术研究所 | 一种无线网络节点缓冲数据包处理方法 |
CN1946061B (zh) * | 2006-10-12 | 2010-07-28 | 杭州华三通信技术有限公司 | 一种快速处理报文的方法及装置 |
US8316432B2 (en) | 2007-08-02 | 2012-11-20 | Hangzhou H3C Technologies Co., Ltd. | Method for implementing security-related processing on packet and network security device |
CN101110769B (zh) * | 2007-08-02 | 2010-08-25 | 杭州华三通信技术有限公司 | 基于安全业务的包转发方法及系统 |
CN101106529B (zh) * | 2007-08-02 | 2010-07-21 | 杭州华三通信技术有限公司 | 基于安全业务的包转发方法及系统 |
CN101267395B (zh) * | 2008-03-13 | 2012-04-25 | 华为技术有限公司 | 数据传输方法及装置 |
CN101515890B (zh) * | 2009-04-03 | 2012-09-05 | 中兴通讯股份有限公司 | 一种报文封装方法及装置 |
WO2013181984A1 (zh) * | 2012-06-08 | 2013-12-12 | 中兴通讯股份有限公司 | 一种报文复制方法及装置 |
CN103841083A (zh) * | 2012-11-22 | 2014-06-04 | 华为技术有限公司 | 增强报文识别能力的方法及装置 |
CN104243417A (zh) * | 2013-06-18 | 2014-12-24 | 上海博达数据通信有限公司 | 基于多核的pppoe实现方法 |
CN108111414A (zh) * | 2016-11-25 | 2018-06-01 | 新华三技术有限公司 | 一种基于段路由的标签部署方法和装置 |
CN108111414B (zh) * | 2016-11-25 | 2021-01-26 | 新华三技术有限公司 | 一种基于段路由的标签部署方法和装置 |
CN115604186A (zh) * | 2021-07-09 | 2023-01-13 | 华为技术有限公司(Cn) | 路由方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN1233133C (zh) | 2005-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1118167C (zh) | 在网络上用域名路由选择发送数据到目的端的系统和方法 | |
CN1146809C (zh) | 综合ip网络 | |
CN102100041B (zh) | 基于由包目的地地址与出站接口构造的路由搜索关键字的包出站发送 | |
CN1177439C (zh) | 以太网接入应用中代理地址解析协议的方法 | |
US5856974A (en) | Internetwork address mapping gateway | |
CN1140090C (zh) | 分组网络中的接口及其操作方法 | |
US6424650B1 (en) | Network address filter device | |
CN102075438B (zh) | 单播数据帧传输方法及装置 | |
CN1291574C (zh) | 多点通信方法和装置 | |
CN1150725C (zh) | 减少存储器访问次数的网络包发送查询的方法和装置 | |
CN1255975C (zh) | 在路由设备中为分组选择路由的方法 | |
CN1233133C (zh) | 一种提高ip报文转发速度的方法 | |
US20010037396A1 (en) | Stackable lookup engines | |
US7647414B2 (en) | System and method for managing multiple stack environments | |
CN1925452A (zh) | 数据转发系统、方法以及网络转发设备 | |
CN103281211B (zh) | 大规模网络节点分组管理系统及管理方法 | |
US7706362B1 (en) | Method and apparatus for selection of an endpoint device in a point to point link | |
CN1703890A (zh) | 数据网络中识别和分析协议的方法 | |
CN1184781C (zh) | 网络通信中报文的封装转发方法 | |
CN102025848A (zh) | 网关及其处理封包的方法 | |
CN1157902C (zh) | 非广播多路访问网络的ip地址映射发送方法 | |
WO2002051077A1 (en) | A method and system for distinguishing higher layer protocols of the internet traffic | |
CN101060472A (zh) | 基于路由的会话初始化协议透明穿越网络地址转换的方法 | |
CN1697445A (zh) | 一种实现虚拟私有网络中数据传输的方法 | |
CN1317874C (zh) | 提供虚拟主机服务快速查询置换的网络地址端口转换网关器与方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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: 20051221 Termination date: 20150619 |
|
EXPY | Termination of patent right or utility model |