CN105450527A - 处理报文、发送信息、接收信息的方法及装置 - Google Patents

处理报文、发送信息、接收信息的方法及装置 Download PDF

Info

Publication number
CN105450527A
CN105450527A CN201410248252.6A CN201410248252A CN105450527A CN 105450527 A CN105450527 A CN 105450527A CN 201410248252 A CN201410248252 A CN 201410248252A CN 105450527 A CN105450527 A CN 105450527A
Authority
CN
China
Prior art keywords
message
skew
search key
network device
list item
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
CN201410248252.6A
Other languages
English (en)
Other versions
CN105450527B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410248252.6A priority Critical patent/CN105450527B/zh
Priority to PCT/CN2015/080613 priority patent/WO2015184979A1/zh
Publication of CN105450527A publication Critical patent/CN105450527A/zh
Application granted granted Critical
Publication of CN105450527B publication Critical patent/CN105450527B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种处理报文的方法,包括:网络装置根据第一流表中的第一表项确定第一基本偏移;所述网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字;所述网络装置通过根据所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项;所述网络装置根据所述第二表项对第一报文进行处理。此外,还公开了发送信息、接收信息的方法及相应的装置。上述方案有助于降低对资源的占用。

Description

处理报文、发送信息、接收信息的方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及处理报文、发送信息、接收信息的方法及装置。
背景技术
现有技术中,网络装置根据流表对报文进行处理前,需要确定基本偏移(英文:basicoffset)。网络装置需要确定报文的数据格式从而获得基本偏移。上述技术方案中,对网络装置的资源的占用较多。
例如,开放流交换机(英文:OpenFlowSwitch)利用解析器(parser)确定报文的数据格式是网际协议(英文:InternetProtocol,简称:IP)报文对应的数据格式或者多协议标签交换(英文:MultipleprotocolLabelSwitching,简称:MPLS)报文对应的数据格式。开放流交换机根据报文的数据格式确定基本偏移。开放流交换机根据基本偏移获得查找关键字(英文:searchkey)。开放流交换机根据查找关键字在流表中查找对应的表项。开放流交换机根据流表中对应的表项对报文进行处理。
发明内容
本发明实施例提供了处理报文、发送信息、接收信息的方法及装置,有助于降低对网络装置的资源的占用。
第一方面,提供了一种处理报文的方法,包括:
网络装置根据第一流表中的第一表项确定第一基本偏移;
所述网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字,所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置,所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置,所述第一查找关键字等于所述第一字段的值;
所述网络装置通过根据所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项;以及
所述网络装置根据所述第二表项对所述第一报文进行处理。
上述技术方案中,所述网络装置根据所述第二流表对所述第一报文进行处理前,所述网络装置需要获得所述第一基本偏移。具体来说,所述网络装置根据所述第一流表中的所述第一表项确定所述第一基本偏移。因此,所述网络装置根据所述第二流表对所述第一报文进行处理前,所述网络装置不需要通过利用解析器确定所述第一报文的数据格式从而确定所述第一基本偏移。因此,上述技术方案有助于降低对所述网络装置的资源的占用。
在第一方面的第一种可能的实现方式中,所述网络装置根据第一流表中的第一表项确定第一基本偏移之前,所述方法还包括:
所述网络装置接收第二报文;
所述网络装置根据第二偏移和第二长度确定第二查找关键字,所述第二偏移用于指示所述第二报文中的第二字段的起始位置,所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置,所述第二查找关键字等于所述第二字段的值;
所述网络装置根据所述第二查找关键字查找所述第一流表;以及
所述网络装置确定所述第一表项与所述第二查找关键字匹配。
根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,
所述网络装置确定所述第一表项与所述第二查找关键字匹配之后,以及所述网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字以前,所述方法还包括:
所述网络装置通过根据所述第一表项对所述第二报文进行处理获得所述第一报文。
第二方面,提供了一种发送信息的方法,包括:
第一网络装置根据第一流表中的第一表项确定第一基本偏移;
所述第一网络装置向第二网络装置发送所述第一基本偏移。
在第二方面的第一种可能的实现方式中,所述第一基本偏移能够触发所述第二网络装置执行如下操作:
根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字,所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置,所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置,所述第一查找关键字等于所述第一字段的值;
通过根据所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项;以及
根据所述第二表项对所述第一报文进行处理。
上述技术方案中,所述第二网络装置根据所述第二流表对所述第一报文进行处理前,所述第二网络装置需要获得所述第一基本偏移。具体来说,所述第一网络装置向所述第二网络装置发送所述第一基本偏移。因此,所述第二网络装置根据所述第二流表对所述第一报文进行处理前,所述第二网络装置不需要通过利用解析器确定所述第一报文的数据格式从而确定所述第一基本偏移。因此,上述技术方案有助于降低对所述第二网络装置的资源的占用。
根据第二方面或者第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,
所述第一网络装置根据第一流表中的第一表项确定第一基本偏移之前,所述方法还包括:
所述第一网络装置接收第二报文;
所述第一网络装置根据第二偏移和第二长度确定第二查找关键字,所述第二偏移用于指示所述第二报文中的第二字段的起始位置,所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置,所述第二查找关键字等于所述第二字段的值;
所述第一网络装置根据所述第二查找关键字查找所述第一流表;以及
所述第一网络装置确定所述第一表项与所述第二查找关键字匹配。
根据第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,
所述第一网络装置确定所述第一表项与所述第二查找关键字匹配之后,以及所述第二网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字以前,所述方法还包括:
所述第一网络装置通过根据所述第一表项对所述第二报文进行处理获得所述第一报文;以及
所述第一网络装置向所述第二网络装置发送所述第一报文。
第三方面,提供了一种接收信息的方法,包括:
第二网络装置接收第一网络装置发送的第一基本偏移,所述第一基本偏移是所述第一网络装置根据第一流表中的第一表项确定的;
所述第二网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字,所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置,所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置,所述第一查找关键字等于所述第一字段的值;
所述第二网络装置通过根据所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项;以及
所述第二网络装置根据所述第二表项对所述第一报文进行处理。
上述技术方案中,所述第二网络装置根据所述第二流表对所述第一报文进行处理前,所述第二网络装置需要获得所述第一基本偏移。具体来说,所述第二网络装置接收所述第一网络装置发送的所述第一基本偏移。因此,所述第二网络装置根据所述第二流表对所述第一报文进行处理前,所述第二网络装置不需要通过利用解析器确定所述第一报文的数据格式从而确定所述第一基本偏移。因此,上述技术方案有助于降低对所述第二网络装置的资源的占用。
在第三方面的第一种可能的实现方式中,所述第一基本偏移具体通过如下途径确定:
所述第一网络装置接收第二报文;
所述第一网络装置根据第二偏移和第二长度确定第二查找关键字,所述第二偏移用于指示所述第二报文中的第二字段的起始位置,所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置,所述第二查找关键字等于所述第二字段的值;
所述第一网络装置根据所述第二查找关键字查找所述第一流表;
所述第一网络装置确定所述第一表项与所述第二查找关键字匹配;以及
所述第一网络装置根据所述第一表项确定所述第一基本偏移。
根据第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,
所述第二网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字之前,所述方法还包括:
所述第二网络装置接收所述第一网络装置发送的所述第一报文,所述第一报文是所述第一网络装置通过根据所述第一表项对所述第二报文进行处理获得的。
第四方面,提供了一种处理报文的装置,包括:
第一确定单元,用于根据第一流表中的第一表项确定第一基本偏移;
第二确定单元,用于根据所述第一确定单元确定的所述第一基本偏移、第一偏移和第一长度确定第一查找关键字,所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置,所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置,所述第一查找关键字等于所述第一字段的值;
第三确定单元,用于通过根据所述第二确定单元确定的所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项;以及
处理单元,用于根据所述第三确定单元确定的所述第二表项对所述第一报文进行处理。
在第四方面的第一种可能的实现方式中,还包括:
接收单元,用于接收第二报文;
第四确定单元,用于根据第二偏移和第二长度确定第二查找关键字,所述第二偏移用于指示所述接收单元接收的所述第二报文中的第二字段的起始位置,所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置,所述第二查找关键字等于所述第二字段的值;
查找单元,用于根据所述第四确定单元确定的所述第二查找关键字查找所述第一流表;以及
第五确定单元,用于在所述第一确定单元根据所述第一流表中的所述第一表项确定所述第一基本偏移之前确定所述第一表项与所述第二查找关键字匹配。
根据第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,还包括:
获得单元,用于在所述第五确定单元确定所述第一表项与所述第二查找关键字匹配之后,以及在所述第二确定单元确定所述第一查找关键字之前通过根据所述第一表项对所述第二报文进行处理获得所述第一报文。
第五方面,提供了一种第一网络装置,包括:
第一确定单元,用于根据第一流表中的第一表项确定第一基本偏移;
发送单元,用于向第二网络装置发送所述第一确定单元确定的所述第一基本偏移。
在第五方面的第一种可能的实现方式中,所述第一基本偏移能够触发所述第二网络装置执行如下操作:
根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字,所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置,所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置,所述第一查找关键字等于所述第一字段的值;
通过根据所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项;以及
根据所述第二表项对所述第一报文进行处理。
根据第五方面或者第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,还包括:
接收单元,用于接收第二报文;
第二确定单元,用于根据第二偏移和第二长度确定第二查找关键字,所述第二偏移用于指示所述接收单元接收的所述第二报文中的第二字段的起始位置,所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置,所述第二查找关键字等于所述第二字段的值;
查找单元,用于根据所述第二确定单元确定的所述第二查找关键字查找所述第一流表;以及
第三确定单元,用于在所述第一确定单元确定所述第一基本偏移之前确定所述第一表项与所述第二查找关键字匹配。
根据第五方面的第二种可能的实现方式,在第五方面的第三种可能的实现方式中,还包括:
获得单元,用于通过根据所述第一表项对所述第二报文进行处理获得所述第一报文;以及
发送单元,用于在所述第三确定单元确定所述第一表项与所述第二查找关键字匹配之后向所述第二网络装置发送所述获得单元获得的所述第一报文。
第六方面,提供了一种第二网络装置,包括:
第一接收单元,用于接收第一网络装置发送的第一基本偏移,所述第一基本偏移是所述第一网络装置根据第一流表中的第一表项确定的;
第一确定单元,用于根据所述第一接收单元接收的所述第一基本偏移、第一偏移和第一长度确定第一查找关键字,所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置,所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置,所述第一查找关键字等于所述第一字段的值;
第二确定单元,用于通过根据所述第一确定单元确定的所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项;以及
处理单元,用于根据所述第二确定单元确定的所述第二表项对所述第一报文进行处理。
在第六方面的第一种可能的实现方式中,所述第一基本偏移具体通过如下途径确定:
所述第一网络装置接收第二报文;
所述第一网络装置根据第二偏移和第二长度确定第二查找关键字,所述第二偏移用于指示所述第二报文中的第二字段的起始位置,所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置,所述第二查找关键字等于所述第二字段的值;
所述第一网络装置根据所述第二查找关键字查找所述第一流表;
所述第一网络装置确定所述第一表项与所述第二查找关键字匹配;以及
所述第一网络装置根据所述第一表项确定所述第一基本偏移。
根据第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,还包括:
第二接收单元,用于在所述第一确定单元确定所述第一查找关键字之前接收所述第一网络装置发送的所述第一报文,所述第一报文是所述第一网络装置通过根据所述第一表项对所述第二报文进行处理获得的。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
图1为实施例提供的一种处理报文的方法的流程示意图;
图2为实施例提供的IPv6头的结构示意图;
图3为实施例提供的TCP报文的结构示意图;
图4为实施例提供的一种发送信息的方法的流程示意图;
图5为实施例提供的一种应用场景的示意图;
图6为实施例提供的一种接收信息的方法的流程示意图;
图7为实施例提供的一种处理报文的装置的结构示意图;
图8为实施例提供的一种第一网络装置的结构示意图;
图9为实施例提供的一种第二网络装置的结构示意图;
图10为实施例提供的一种网络装置的结构示意图。
具体实施方式
本发明实施例提供了一种转发控制方法、控制器和转发设备及系统,用于实现转发设备在不需要升级的情况下对数据报文的转发。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
关于本申请涉及的流表(英文:flowtable)以及指令(英文:instruction),可以参考开放网络基础(OpenNetworkingFoundation,ONF)发布的《开放流交换机规范1.3.0》(OpenFlowSwitchSpecification1.3.0)。
图1为实施例提供的一种处理报文的方法的流程示意图。参见图1,所述方法包括:
101、网络装置根据第一流表中的第一表项确定第一基本偏移。
举例来说,所述网络装置可以是路由器、网络交换机、分组传送网(英文:packettransportnetwork,简称:PTN)设备、防火墙、负载均衡器、数据中心或者波分复用(英文:wavelength-divisionmultiplexing,简称:WDM)设备。所述网络交换机可以是开放流交换机(英文:OpenFlowSwitch)。
举例来说,所述第一表项中可以包含所述第一基本偏移。另外,所述第一表项中可以包含用于修改寄存器的值的第一指令。所述第一指令的操作数可以是所述第一基本偏移。所述网络装置可以通过执行所述第一指令将所述寄存器的值更新为所述第一基本偏移。
举例来说,所述第一流表可以是媒体访问控制(英文:mediaaccesscontrol,简称:MAC)协议表、地址解析协议(英文:addressresolutionprotocol,简称:ARP)表、转发信息库(英文:forwardinginformationbase,简称:FIB)或者MPLS标签表。
102、所述网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字。
所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置。所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置。所述第一查找关键字等于所述第一字段的值。
举例来说,所述网络装置可以通过访问所述寄存器获取所述第一基本偏移。
举例来说,所述第一报文可以是IP报文,以太网帧(英文:EthernetFrame)或者MPLS报文。
举例来说,所述第一偏移可以是一个偏移,也可以是多个偏移。所述第一长度可以是一个长度,也可以是多个长度。所述多个偏移与所述多个长度一一对应。
举例来说,所述第一字段可以是一个字段或者多个字段。所述多个字段与所述多个偏移一一对应。所述多个字段与所述多个长度一一对应。
例如,所述第一报文可以是网际协议第六版(英文:InternetProtocolversion6,简称:IPv6)报文。图2是所述IPv6报文的IPv6头的示意图。所述第一字段可以是源IP地址以及目的IP地址。所述第一偏移包括64以及192。所述第一长度分别是128和128。所述源IP地址的起始位置相对于所述IPv6报文的起始位置的偏移等于64。64用于所述指示所述源IP地址在所述IPv6报文中的起始位置。所述目的IP地址的起始位置相对于所述IPv6报文的起始位置的偏移等于192。192用于所述指示所述目的IP地址在所述IPv6报文中的起始位置。
所述源IP地址的长度为128比特。所述目的IP地址的长度为128比特。64与128的和等于192。192用于指示所述源IP地址在所述IPv6报文中的结束位置。192与128的和等于320。320用于指示所述目的IP地址在所述IPv6报文中的结束位置。
举例来说,所述第一基本偏移用于指示协议头的最高有效位(英文:mostsignificantbit,简称:MSB)的位置。所述第一字段是所述协议头中的字段。所述第一报文包含所述协议头。
举例来说,当所述协议头是所述第一报文的报文头,所述第一基本偏移等于0。
例如,所述第一报文可以是TCP报文。参见图3。图3为所述TCP报文的示意图。所述TCP报文包括IPv4头、TCP头以及净荷。其中,所述IPv4头和所述TCP头是所述TCP报文的协议头。所述IPv4头是所述TCP报文的报文头。所述第一字段可以是所述IPv4头的源IP地址。相应的,所述第一基本偏移等于0。所述偏移和所述长度分别是96和32。所述IPv4头的MSB相对于所述TCP报文的MSB的偏移等于0。所述源IP地址的起始位置相对于所述IPv4头的起始位置的偏移为96。所述源IP地址的长度为32比特。
再例如,所述第一报文可以是TCP报文。参见图3。图3为所述TCP报文的示意图。所述TCP报文包括IPv4头、TCP头以及净荷。其中,所述IPv4头和所述TCP头是所述TCP报文的协议头。所述IPv4头是所述TCP报文的报文头。所述第一字段可以是所述TCP头的目的端口。相应的,所述第一基本偏移等于160。所述偏移和所述长度分别是16和16。所述TCP头的MSB相对于所述TCP报文的MSB的偏移等于160。所述目的端口的起始位置相对于所述TCP头的起始位置的偏移为16。所述源端口的长度为16比特。
103、所述网络装置通过根据所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项。
举例来说,所述第一表项中可以包含下一个表的标识(英文:nexttableID)。所述下一个表的标识等于所述第二流表的标识。所述网络装置可以根据所述第二流表的标识访问所述第二流表。例如,所述第一表项中可以包含流表跳转(英文:goto_table)指令。所述流表跳转指令中可以包含所述第二流表的标识。
104、所述网络装置根据所述第二表项对所述第一报文进行处理。
举例来说,所述处理可以包括下述操作中的至少一个:修改所述第一报文、计算所述第一报文的校验和(英文:checksum)、写寄存器、读寄存器、对计数器进行更新(英文:counterupdate)、对所述第一报文进行承诺访问速率(英文:committedaccessrate,简称:CAR)处理,丢弃所述第一报文和发送所述第一报文。
举例来说,修改所述第一报文可以是删除所述第一报文中的数据段(英文:datasegment)、替换所述第一报文中的datasegment或者在所述第一报文中插入datasegment。
举例来说,所述checksum可以是IPchecksum、传输控制协议(TransmissionControlProtocol,TCP)checksum或者用户数据报协议(UserDatagramProtocol,UDP)checksum。
可选地,图1所述的方法中,所述网络装置根据第一流表中的第一表项确定第一基本偏移之前,所述方法还包括:
所述网络装置接收第二报文。
所述网络装置根据第二偏移和第二长度确定第二查找关键字。所述第二偏移用于指示所述第二报文中的第二字段的起始位置。所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置。所述第二查找关键字等于所述第二字段的值。
所述网络装置根据所述第二查找关键字查找所述第一流表。
所述网络装置确定所述第一表项与所述第二查找关键字匹配。
例如,所述网络装置接收第二报文以后,以及所述网络装置根据第二偏移和第二长度确定第二查找关键字之前,所述网络装置可以利用解析器对所述第二报文进行解析从而确定所述第二报文的数据格式。例如,所述网络装置确定所述第二报文的数据格式符合IP报文的数据格式。或者所述网络装置确定所述第二报文的数据格式符合以太网帧的数据格式。
举例来说,所述第一报文与所述第二报文可以是同一个报文。
可选地,上述技术方案中,所述网络装置确定所述第一表项与所述第二查找关键字匹配之后,以及所述网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字以前,所述方法还包括:
所述网络装置通过根据所述第一表项对所述第二报文进行处理获得所述第一报文。
可选地,上述技术方案中,所述第一流表和所述第二流表是控制器向所述网络装置发送的。所述控制器能够对所述网络设备进行管辖。
举例来说,所述控制器可以是开放流控制器(英文:OpenFlowController)。
图4为实施例提供的一种发送信息的方法的流程示意图。参见图4,所述方法包括:
401、第一网络装置根据第一流表中的第一表项确定第一基本偏移。
402、所述第一网络装置向第二网络装置发送所述第一基本偏移。
所述第一基本偏移能够触发所述第二网络装置执行如下操作:
根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字。所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置。所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置。所述第一查找关键字等于所述第一字段的值。
通过根据所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项。
根据所述第二表项对所述第一报文进行处理。
举例来说,所述第一网络装置可以是路由器、网络交换机、PTN设备、防火墙、负载均衡器、数据中心或者WDM设备。所述网络交换机可以是OpenFlowSwitch。所述第二网络装置可以是路由器、网络交换机、PTN设备、防火墙、负载均衡器、数据中心或者WDM设备。所述网络交换机可以是OpenFlowSwitch。
举例来说,所述第一表项中可以包含所述第一基本偏移。
举例来说,所述第一流表可以是MAC协议表、ARP表、FIB或者MPLS标签表。
举例来说,所述第一报文可以是IP报文,EthernetFrame或者MPLS报文。
举例来说,所述第一偏移可以是一个偏移,也可以是多个偏移。所述第一长度可以是一个长度,也可以是多个长度。所述多个偏移与所述多个长度一一对应。
举例来说,所述第一字段可以是一个字段或者多个字段。所述多个字段与所述多个偏移一一对应。所述多个字段与所述多个长度一一对应。
例如,所述第一报文可以是IPv6报文。图2是所述IPv6报文的IPv6头的示意图。所述第一字段可以是源IP地址以及目的IP地址。所述第一偏移包括64以及192。所述第一长度分别是128和128。所述源IP地址的起始位置相对于所述IPv6报文的起始位置的偏移等于64。64用于所述指示所述源IP地址在所述IPv6报文中的起始位置。所述目的IP地址的起始位置相对于所述IPv6报文的起始位置的偏移等于192。192用于所述指示所述目的IP地址在所述IPv6报文中的起始位置。
所述源IP地址的长度为128比特。所述目的IP地址的长度为128比特。64与128的和等于192。192用于指示所述源IP地址在所述IPv6报文中的结束位置。192与128的和等于320。320用于指示所述目的IP地址在所述IPv6报文中的结束位置。
举例来说,所述第一基本偏移用于指示协议头的MSB的位置。所述第一字段是所述协议头中的字段。所述第一报文包含所述协议头。
举例来说,当所述协议头是所述第一报文的报文头,所述第一基本偏移等于0。
例如,所述第一报文可以是TCP报文。参见图3。图3为所述TCP报文的示意图。所述TCP报文包括IPv4头、TCP头以及净荷。其中,所述IPv4头和所述TCP头是所述TCP报文的协议头。所述IPv4头是所述TCP报文的报文头。所述第一字段可以是所述IPv4头的源IP地址。相应的,所述第一基本偏移等于0。所述偏移和所述长度分别是96和32。所述IPv4头的MSB相对于所述TCP报文的MSB的偏移等于0。所述源IP地址的起始位置相对于所述IPv4头的起始位置的偏移为96。所述源IP地址的长度为32比特。
再例如,所述第一报文可以是TCP报文。参见图3。图3为所述TCP报文的示意图。所述TCP报文包括IPv4头、TCP头以及净荷。其中,所述IPv4头和所述TCP头是所述TCP报文的协议头。所述IPv4头是所述TCP报文的报文头。所述第一字段可以是所述TCP头的目的端口。相应的,所述第一基本偏移等于160。所述偏移和所述长度分别是16和16。所述TCP头的MSB相对于所述TCP报文的MSB的偏移等于160。所述目的端口的起始位置相对于所述TCP头的起始位置的偏移为16。所述源端口的长度为16比特。
举例来说,所述第一表项中可以包含nexttableID。所述下一个表的标识等于所述第二流表的标识。所述第二网络装置可以根据所述第二流表的标识访问所述第二流表。例如,所述第一表项中可以包含流表跳转(英文:goto_table)指令。所述流表跳转指令中可以包含所述第二流表的标识。
举例来说,所述处理可以包括下述操作中的至少一个:修改所述第一报文、计算所述第一报文的checksum、写寄存器、读寄存器、counterupdate、对所述第一报文进行CAR处理,丢弃所述第一报文和发送所述第一报文。
举例来说,修改所述第一报文可以是删除所述第一报文中的datasegment、替换所述第一报文中的datasegment或者在所述第一报文中插入datasegment。
举例来说,所述checksum可以是IPchecksum、TCPchecksum或者UDPchecksum。
可选地,上述技术方案中,所述第一网络装置根据第一流表中的第一表项确定第一基本偏移之前,所述方法还包括:
所述第一网络装置接收第二报文。
所述第一网络装置根据第二偏移和第二长度确定第二查找关键字。所述第二偏移用于指示所述第二报文中的第二字段的起始位置。所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置。所述第二查找关键字等于所述第二字段的值。
所述第一网络装置根据所述第二查找关键字查找所述第一流表。
所述第一网络装置确定所述第一表项与所述第二查找关键字匹配。
例如,所述第一网络装置接收第二报文以后,以及所述第一网络装置根据第二偏移和第二长度确定第二查找关键字之前,所述第一网络装置可以利用解析器对所述第二报文进行解析从而确定所述第二报文的数据格式。例如,所述第一网络装置确定所述第二报文的数据格式符合IP报文的数据格式。或者所述第一网络装置确定所述第二报文的数据格式符合以太网帧的数据格式。
举例来说,所述第一报文与所述第二报文可以是同一个报文。
可选地,上述技术方案中,所述第一网络装置确定所述第一表项与所述第二查找关键字匹配之后,以及所述第二网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字以前,所述方法还包括:
所述第一网络装置通过根据所述第一表项对所述第二报文进行处理获得所述第一报文。
所述第一网络装置向所述第二网络装置发送所述第一报文。
可选地,上述技术方案中,所述第一流表和所述第二流表是控制器分别向所述第一网络装置和所述第二网络装置发送的。所述控制器能够对所述第一网络设备和所述第二网络装置进行管辖。
举例来说,所述控制器可以是OpenFlowController。
参见图5。图5为图4所示的方法的一个应用场景的示意图。
参见图5,上述应用场景中包含了第一网络、第二网络、第三网络、流表1、流表2以及流表3。流表1是路由器1中的流表。流表2是路由器2中的流表。流表3是路由器中的流表。路由器1能够在流表1查找与IPv6头中的下一个头匹配的表项。路由器2能够在流表2查找与IPv4头中的源IP地址以及TCP头中的源端口匹配的表项。路由器3能够在流表3中查找与IPv6头中的目的IP地址匹配的表项。
所述第一网络是IPv6网络。所述第二网络是IPv4网络。所述第三网络是IPv6网络。
在上述应用场景中,来自第一网络的报文需要被传递到第二网络或者第三网络。如果来自第一网络的报文通过路由器2到达第二网络,则上述处理属于双栈简化物(英文:dualstacklite,简称:DS-Lite)。如果来自第一网络的报文通过路由器3到达第二网络或者第三网络,则上述处理属于非双栈简化物(英文:nondualstacklite,简称:NonDS-Lite)。
下文分别对双栈简化物的场景和非双栈简化物的场景进行说明:
在双栈简化物的场景中,路由器1接收到第一网络发送的IPv6报文1。IPv6报文1从外层到内层分别是IPv6头、IPv4头、TCP头以及净荷。其中,IPv6头中的下一个头(nextheader)的值为4。路由器1以下一个头的值为查找关键字1,在流表1中查找与查找关键字1匹配的表项1。表项1中包含流表2的标识以及基本偏移1。所述基本偏移1等于0。
路由器1根据流表1删除IPv6报文1中的IPv6头从而得到IPv4报文1。
路由器1将基本偏移1以及IPv4报文1发送至路由器2。路由器2根据基本偏移1确定查找关键字2。具体来说,查找关键字2包括IPv4头中的源IP地址的值以及TCP头中的源端口的值。源IP地址字段对应的基本偏移、偏移以及长度分别是:0、96以及32。IPv4头的起始位置相对于IPv4报文1的起始位置的偏移为0。源IP地址字段的起始位置相对于IPv4头的起始位置的偏移为0。源IP地址字段的长度等于32。源端口字段对应的基本偏移、偏移以及长度分别是:0、160以及16。IPv4头的起始位置相对于IPv4报文1的起始位置的偏移为0。源端口字段的起始位置相对于IPv4头的起始位置的偏移为160。源端口字段的长度等于16。因此,路由器2可以根据查找关键字2对应的基本偏移、偏移以及长度(具体包括:源IP地址字段对应的基本偏移、偏移以及长度,以及源端口字段对应的基本偏移、偏移以及长度)从IPv4报文1中获取查找关键字2。路由器2在流表2中查找与查找关键字2匹配的表项2。路由器2根据表项2对IPv4报文1进行网络地址和端口翻译(英文:networkaddressandporttranslation,简称:NAPT)处理从而得到IPv4报文2。路由器2将所述IPv4报文2发送至第二网络。
在非双栈简化物的场景中,路由器1接收到第一网络发送的IPv6报文2。IPv6报文2从外层到内层分别是IPv6头以及净荷。其中,IPv6头中的下一个头的值不等于4。路由器1以下一个头的值为查找关键字1,在流表1中查找与查找关键字1匹配的表项2。表项2中包含流表3的标识以及基本偏移2。所述基本偏移2等于0。
路由器1将基本偏移2以及IPv6报文2发送至路由器3。路由器3根据基本偏移2确定查找关键字2。具体来说,查找关键字2等于IPv6头中的目的IP地址的值。目的IP地址字段对应的基本偏移、偏移以及长度分别是:0、192以及128。IPv6头的起始位置相对于IPv6报文2的起始位置的偏移为0。目的IP地址字段的起始位置相对于IPv6头的起始位置的偏移为192。目的IP地址字段的长度等于128。因此,路由器3可以根据查找关键字2对应的基本偏移、偏移以及长度(具体为:目的IP地址字段对应的基本偏移、偏移以及长度)从IPv6报文2中获取查找关键字2。路由器3在流表3中查找与查找关键字2匹配的表项3。路由器3根据表项3对IPv6报文2进行处理从而得到IP报文。如果所述IP报文的目的地址是IPv4地址,则路由器3将所述IP报文发送至第二网络。如果所述IP报文的目的地址是IPv6地址,则路由器3将所述IP报文发送至第三网络。
图6为实施例提供的一种接收信息的方法的流程示意图。参见图6,所述方法包括:
601、第二网络装置接收第一网络装置发送的第一基本偏移。
所述第一基本偏移是所述第一网络装置根据第一流表中的第一表项确定的。
602、所述第二网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字。
所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置。所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置。所述第一查找关键字等于所述第一字段的值。
603、所述第二网络装置通过根据所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项。
604、所述第二网络装置根据所述第二表项对所述第一报文进行处理。
举例来说,所述第一网络装置可以是路由器、网络交换机、PTN设备、防火墙、负载均衡器、数据中心或者WDM设备。所述网络交换机可以是OpenFlowSwitch。所述第二网络装置可以是路由器、网络交换机、PTN设备、防火墙、负载均衡器、数据中心或者WDM设备。所述网络交换机可以是OpenFlowSwitch。
举例来说,所述第一表项中可以包含所述第一基本偏移。
举例来说,所述第一流表可以是MAC协议表、ARP表、FIB或者MPLS标签表。
举例来说,所述第一报文可以是IP报文,EthernetFrame或者MPLS报文。
举例来说,所述第一偏移可以是一个偏移,也可以是多个偏移。所述第一长度可以是一个长度,也可以是多个长度。所述多个偏移与所述多个长度一一对应。
举例来说,所述第一字段可以是一个字段或者多个字段。所述多个字段与所述多个偏移一一对应。所述多个字段与所述多个长度一一对应。
例如,所述第一报文可以是IPv6报文。图2是所述IPv6报文的IPv6头的示意图。所述第一字段可以是源IP地址以及目的IP地址。所述第一偏移包括64以及192。所述第一长度分别是128和128。所述源IP地址的起始位置相对于所述IPv6报文的起始位置的偏移等于64。64用于所述指示所述源IP地址在所述IPv6报文中的起始位置。所述目的IP地址的起始位置相对于所述IPv6报文的起始位置的偏移等于192。192用于所述指示所述目的IP地址在所述IPv6报文中的起始位置。
所述源IP地址的长度为128比特。所述目的IP地址的长度为128比特。64与128的和等于192。192用于指示所述源IP地址在所述IPv6报文中的结束位置。192与128的和等于320。320用于指示所述目的IP地址在所述IPv6报文中的结束位置。
举例来说,所述第一基本偏移用于指示协议头的MSB的位置。所述第一字段是所述协议头中的字段。所述第一报文包含所述协议头。
举例来说,当所述协议头是所述第一报文的报文头,所述第一基本偏移等于0。
例如,所述第一报文可以是TCP报文。参见图3。图3为所述TCP报文的示意图。所述TCP报文包括IPv4头、TCP头以及净荷。其中,所述IPv4头和所述TCP头是所述TCP报文的协议头。所述IPv4头是所述TCP报文的报文头。所述第一字段可以是所述IPv4头的源IP地址。相应的,所述第一基本偏移等于0。所述偏移和所述长度分别是96和32。所述IPv4头的MSB相对于所述TCP报文的MSB的偏移等于0。所述源IP地址的起始位置相对于所述IPv4头的起始位置的偏移为96。所述源IP地址的长度为32比特。
再例如,所述第一报文可以是TCP报文。参见图3。图3为所述TCP报文的示意图。所述TCP报文包括IPv4头、TCP头以及净荷。其中,所述IPv4头和所述TCP头是所述TCP报文的协议头。所述IPv4头是所述TCP报文的报文头。所述第一字段可以是所述TCP头的目的端口。相应的,所述第一基本偏移等于160。所述偏移和所述长度分别是16和16。所述TCP头的MSB相对于所述TCP报文的MSB的偏移等于160。所述目的端口的起始位置相对于所述TCP头的起始位置的偏移为16。所述源端口的长度为16比特。
举例来说,所述第一表项中可以包含nexttableID。所述下一个表的标识等于所述第二流表的标识。所述第二网络装置可以根据所述第二流表的标识访问所述第二流表。例如,所述第一表项中可以包含流表跳转指令。所述流表跳转指令中可以包含所述第二流表的标识。
举例来说,所述处理可以包括下述操作中的至少一个:修改所述第一报文、计算所述第一报文的checksum、写寄存器、读寄存器、counterupdate、对所述第一报文进行CAR处理,丢弃所述第一报文和发送所述第一报文。
举例来说,修改所述第一报文可以是删除所述第一报文中的datasegment、替换所述第一报文中的datasegment或者在所述第一报文中插入datasegment。
举例来说,所述checksum可以是IPchecksum、TCPchecksum或者UDPchecksum。
可选地,上述技术方案中,所述第一基本偏移具体通过如下途径确定:
所述第一网络装置接收第二报文;
所述第一网络装置根据第二偏移和第二长度确定第二查找关键字。所述第二偏移用于指示所述第二报文中的第二字段的起始位置。所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置。所述第二查找关键字等于所述第二字段的值。
所述第一网络装置根据所述第二查找关键字查找所述第一流表。
所述第一网络装置确定所述第一表项与所述第二查找关键字匹配。
所述第一网络装置根据所述第一表项确定所述第一基本偏移。
例如,所述第一网络装置接收第二报文以后,以及所述第一网络装置根据第二偏移和第二长度确定第二查找关键字之前,所述第一网络装置可以利用解析器对所述第二报文进行解析从而确定所述第二报文的数据格式。例如,所述第一网络装置确定所述第二报文的数据格式符合IP报文的数据格式。或者所述第一网络装置确定所述第二报文的数据格式符合以太网帧的数据格式。
举例来说,所述第一报文与所述第二报文可以是同一个报文。
可选地,上述技术方案中,所述第二网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字之前,所述方法还包括:
所述第二网络装置接收所述第一网络装置发送的所述第一报文,所述第一报文是所述第一网络装置通过根据所述第一表项对所述第二报文进行处理获得的。
可选地,上述技术方案中,所述第一流表和所述第二流表是控制器分别向所述第一网络装置和所述第二网络装置发送的。所述控制器能够对所述第一网络设备和所述第二网络装置进行管辖。
举例来说,所述控制器可以是OpenFlowController。
参见图5。图5为图6所示的方法的一个应用场景的示意图。
参见图5,上述应用场景中包含了第一网络、第二网络、第三网络、流表1、流表2以及流表3。流表1是路由器1中的流表。流表2是路由器2中的流表。流表3是路由器中的流表。路由器1能够在流表1查找与IPv6头中的下一个头匹配的表项。路由器2能够在流表2查找与IPv4头中的源IP地址以及TCP头中的源端口匹配的表项。路由器3能够在流表3中查找与IPv6头中的目的IP地址匹配的表项。
所述第一网络是IPv6网络。所述第二网络是IPv4网络。所述第三网络是IPv6网络。
在上述应用场景中,来自第一网络的报文需要被传递到第二网络或者第三网络。如果来自第一网络的报文通过路由器2到达第二网络,则上述处理属于双栈简化物。如果来自第一网络的报文通过路由器3到达第二网络或者第三网络,则上述处理属于非双栈简化物。
下文分别对双栈简化物的场景和非双栈简化物的场景进行说明:
在双栈简化物的场景中,路由器1接收到第一网络发送的IPv6报文1。IPv6报文1从外层到内层分别是IPv6头、IPv4头、TCP头以及净荷。其中,IPv6头中的下一个头的值为4。路由器1以下一个头的值为查找关键字1,在流表1中查找与查找关键字1匹配的表项1。表项1中包含流表2的标识以及基本偏移1。所述基本偏移1等于0。
路由器1根据流表1删除IPv6报文1中的IPv6头从而得到IPv4报文1。
路由器1将基本偏移1以及IPv4报文1发送至路由器2。路由器2根据基本偏移1确定查找关键字2。具体来说,查找关键字2包括IPv4头中的源IP地址的值以及TCP头中的源端口的值。源IP地址字段对应的基本偏移、偏移以及长度分别是:0、96以及32。IPv4头的起始位置相对于IPv4报文1的起始位置的偏移为0。源IP地址字段的起始位置相对于IPv4头的起始位置的偏移为0。源IP地址字段的长度等于32。源端口字段对应的基本偏移、偏移以及长度分别是:0、160以及16。IPv4头的起始位置相对于IPv4报文1的起始位置的偏移为0。源端口字段的起始位置相对于IPv4头的起始位置的偏移为160。源端口字段的长度等于16。因此,路由器2可以根据查找关键字2对应的基本偏移、偏移以及长度(具体包括:源IP地址字段对应的基本偏移、偏移以及长度,以及源端口字段对应的基本偏移、偏移以及长度)从IPv4报文1中获取查找关键字2。路由器2在流表2中查找与查找关键字2匹配的表项2。路由器2根据表项2对IPv4报文1进行NAPT处理从而得到IPv4报文2。路由器2将所述IPv4报文2发送至第二网络。
在非双栈简化物的场景中,路由器1接收到第一网络发送的IPv6报文2。IPv6报文2从外层到内层分别是IPv6头以及净荷。其中,IPv6头中的下一个头的值不等于4。路由器1以下一个头的值为查找关键字1,在流表1中查找与查找关键字1匹配的表项2。表项2中包含流表3的标识以及基本偏移2。所述基本偏移2等于0。
路由器1将基本偏移2以及IPv6报文2发送至路由器3。路由器3根据基本偏移2确定查找关键字2。具体来说,查找关键字2等于IPv6头中的目的IP地址的值。目的IP地址字段对应的基本偏移、偏移以及长度分别是:0、192以及128。IPv6头的起始位置相对于IPv6报文2的起始位置的偏移为0。目的IP地址字段的起始位置相对于IPv6头的起始位置的偏移为192。目的IP地址字段的长度等于128。因此,路由器3可以根据查找关键字2对应的基本偏移、偏移以及长度(具体为:目的IP地址字段对应的基本偏移、偏移以及长度)从IPv6报文2中获取查找关键字2。路由器3在流表3中查找与查找关键字2匹配的表项3。路由器3根据表项3对IPv6报文2进行处理从而得到IP报文。如果所述IP报文的目的地址是IPv4地址,则路由器3将所述IP报文发送至第二网络。如果所述IP报文的目的地址是IPv6地址,则路由器3将所述IP报文发送至第三网络。
图7为实施例提供的一种处理报文的装置的结构示意图。所述处理报文的装置700可以用于执行图1所示的方法。具体来说,所述处理报文的装置700可以是图1所示的方法所涉及的网络装置。本实施例涉及的术语的定义以及具体实现,可以参考图1以及相应的实施例,此处不再赘述。参见图7,所述处理报文的装置700包括第一确定单元701、第二确定单元702、第三确定单元703以及处理单元704。
第一确定单元701用于根据第一流表中的第一表项确定第一基本偏移。
第二确定单元702用于根据所述第一确定单元701确定的所述第一基本偏移、第一偏移和第一长度确定第一查找关键字。所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置。所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置。所述第一查找关键字等于所述第一字段的值。
第三确定单元703用于通过根据所述第二确定单元702确定的所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项。
处理单元704用于根据所述第三确定单元703确定的所述第二表项对所述第一报文进行处理。
举例来说,所述处理报文的装置700是路由器、网络交换机、PTN设备、防火墙、负载均衡器、数据中心或者WDM设备。所述网络交换机可以是OpenFlowSwitch。
举例来说,第一确定单元701、第二确定单元702、第三确定单元703以及处理单元704可以通过所述处理报文的装置700中的网络处理器实现。
可选地,所述处理报文的装置700还可以包括:接收单元,第四确定单元,查找单元以及第五确定单元。
接收单元用于接收第二报文。
第四确定单元用于根据第二偏移和第二长度确定第二查找关键字。所述第二偏移用于指示所述接收单元接收的所述第二报文中的第二字段的起始位置。所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置。所述第二查找关键字等于所述第二字段的值。
查找单元用于根据所述第四确定单元确定的所述第二查找关键字查找所述第一流表。
第五确定单元用于在所述第一确定单元根据所述第一流表中的所述第一表项确定所述第一基本偏移之前确定所述第一表项与所述第二查找关键字匹配。
可选地,上述技术方案中,还包括:
获得单元,用于在所述第五确定单元确定所述第一表项与所述第二查找关键字匹配之后,以及在所述第二确定单元确定所述第一查找关键字之前通过根据所述第一表项对所述第二报文进行处理获得所述第一报文。
图8为实施例提供的一种第一网络装置的结构示意图。所述第一网络装置800可以用于执行图4所示的方法。具体来说,所述第一网络装置800可以是图4所示的方法所涉及的第一网络装置。本实施例涉及的术语的定义以及具体实现,可以参考图4以及相应的实施例,此处不再赘述。参见图8,所述第一网络装置800包括第一确定单元801以及发送单元802。
第一确定单元801用于根据第一流表中的第一表项确定第一基本偏移。
发送单元802用于向第二网络装置发送所述第一确定单元801确定的所述第一基本偏移。
举例来说,所述第一确定单元801可以通过所述第一网络装置800中的网络处理器实现。
举例来说,所述发送单元802可以通过所述第一网络装置800中的发送器实现。
可选地,上述技术方案中,所述第一基本偏移能够触发所述第二网络装置执行如下操作:
根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字。所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置。所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置。所述第一查找关键字等于所述第一字段的值。
通过根据所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项。
根据所述第二表项对所述第一报文进行处理。
可选地,上述技术方案中,所述第一网络装置800还包括:接收单元,第二确定单元,查找单元以及第三确定单元。
接收单元用于接收第二报文。
第二确定单元用于根据第二偏移和第二长度确定第二查找关键字。所述第二偏移用于指示所述接收单元接收的所述第二报文中的第二字段的起始位置。所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置。所述第二查找关键字等于所述第二字段的值。
查找单元用于根据所述第二确定单元确定的所述第二查找关键字查找所述第一流表。
第三确定单元用于在所述第一确定单元确定所述第一基本偏移之前确定所述第一表项与所述第二查找关键字匹配。
可选地,上述技术方案中,所述第一网络装置800还包括获得单元以及发送单元。
获得单元用于通过根据所述第一表项对所述第二报文进行处理获得所述第一报文。
发送单元用于在所述第三确定单元确定所述第一表项与所述第二查找关键字匹配之后向所述第二网络装置发送所述获得单元获得的所述第一报文。
图9为实施例提供的一种第二网络装置的结构示意图。所述第二网络装置900可以用于执行图6所示的方法。具体来说,所述第二网络装置900可以是图6所示的方法所涉及的第二网络装置。本实施例涉及的术语的定义以及具体实现,可以参考图6以及相应的实施例,此处不再赘述。参见图9,所述第二网络装置900包括第一接收单元901、第一确定单元902、第二确定单元903以及处理单元904。
第一接收单元901用于接收第一网络装置发送的第一基本偏移。所述第一基本偏移是所述第一网络装置根据第一流表中的第一表项确定的。
第一确定单元902用于根据所述第一接收单元901接收的所述第一基本偏移、第一偏移和第一长度确定第一查找关键字。所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置。所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置。所述第一查找关键字等于所述第一字段的值。
第二确定单元903用于通过根据所述第一确定单元902确定的所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项。
处理单元904用于根据所述第二确定单元903确定的所述第二表项对所述第一报文进行处理。
举例来说,第一接收单元901可以通过第二网络装置900中的接收器实现。
举例来说,第一确定单元902、第二确定单元903以及处理单元904可以通过所述第二网络装置900中的网络处理器实现。
可选地,上述技术方案中,所述第一基本偏移具体通过如下途径确定:
所述第一网络装置接收第二报文。
所述第一网络装置根据第二偏移和第二长度确定第二查找关键字。所述第二偏移用于指示所述第二报文中的第二字段的起始位置。所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置。所述第二查找关键字等于所述第二字段的值。
所述第一网络装置根据所述第二查找关键字查找所述第一流表。
所述第一网络装置确定所述第一表项与所述第二查找关键字匹配。
所述第一网络装置根据所述第一表项确定所述第一基本偏移。
可选地,上述技术方案中,所述第二网络装置900还包括:
第二接收单元,用于在所述第一确定单元确定所述第一查找关键字之前接收所述第一网络装置发送的所述第一报文,所述第一报文是所述第一网络装置通过根据所述第一表项对所述第二报文进行处理获得的。
图10为实施例提供的一种网络装置的结构示意图。参见图10,所述网络装置1000包括处理器1001以及存储器1002。处理器1001与存储器1002耦合。存储器1002包含计算机程序。处理器1001能够访问存储器1002中的所述计算机程序。处理器1001能够通过访问所述计算机程序执行图1、图4或者图6所示的方法。在处理器1001执行图1所示的方法的场景中,图10所示的网络装置1000可以用于实现图1所示的方法涉及的网络装置。在处理器1001执行图4所示的方法的场景中,图10所示的网络装置1000可以用于实现图4所示的方法涉及的第一网络装置。在处理器1001执行图6所示的方法的场景中,图10所示的网络装置1000可以用于实现图6所示的方法涉及的第二网络装置。另外,图10所示的网络装置1000可以用于实现图7所示的处理报文的装置,图8所示的第一网络装置或者图9所示的第二网络装置。关于图10所示的网络装置1000用于执行上述方法以及用于实现上述装置,可以参考图1、图4和图6所示的方法,图7、图8和图9所示的装置,以及相应的实施例,此处不再赘述。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (20)

1.一种处理报文的方法,其特征在于,包括:
网络装置根据第一流表中的第一表项确定第一基本偏移;
所述网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字,所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置,所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置,所述第一查找关键字等于所述第一字段的值;
所述网络装置通过根据所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项;以及
所述网络装置根据所述第二表项对所述第一报文进行处理。
2.根据权利要求1所述的方法,其特征在于,
所述网络装置根据第一流表中的第一表项确定第一基本偏移之前,所述方法还包括:
所述网络装置接收第二报文;
所述网络装置根据第二偏移和第二长度确定第二查找关键字,所述第二偏移用于指示所述第二报文中的第二字段的起始位置,所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置,所述第二查找关键字等于所述第二字段的值;
所述网络装置根据所述第二查找关键字查找所述第一流表;以及
所述网络装置确定所述第一表项与所述第二查找关键字匹配。
3.根据权利要求2所述的方法,其特征在于,
所述网络装置确定所述第一表项与所述第二查找关键字匹配之后,以及所述网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字以前,所述方法还包括:
所述网络装置通过根据所述第一表项对所述第二报文进行处理获得所述第一报文。
4.一种发送信息的方法,其特征在于,包括:
第一网络装置根据第一流表中的第一表项确定第一基本偏移;
所述第一网络装置向第二网络装置发送所述第一基本偏移。
5.根据权利要求4所述的方法,其特征在于,所述第一基本偏移能够触发所述第二网络装置执行如下操作:
根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字,所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置,所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置,所述第一查找关键字等于所述第一字段的值;
通过根据所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项;以及
根据所述第二表项对所述第一报文进行处理。
6.根据权利要求4或5所述的方法,其特征在于,
所述第一网络装置根据第一流表中的第一表项确定第一基本偏移之前,所述方法还包括:
所述第一网络装置接收第二报文;
所述第一网络装置根据第二偏移和第二长度确定第二查找关键字,所述第二偏移用于指示所述第二报文中的第二字段的起始位置,所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置,所述第二查找关键字等于所述第二字段的值;
所述第一网络装置根据所述第二查找关键字查找所述第一流表;以及
所述第一网络装置确定所述第一表项与所述第二查找关键字匹配。
7.根据权利要求6所述的方法,其特征在于,
所述第一网络装置确定所述第一表项与所述第二查找关键字匹配之后,以及所述第二网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字以前,所述方法还包括:
所述第一网络装置通过根据所述第一表项对所述第二报文进行处理获得所述第一报文;以及
所述第一网络装置向所述第二网络装置发送所述第一报文。
8.一种接收信息的方法,其特征在于,包括:
第二网络装置接收第一网络装置发送的第一基本偏移,所述第一基本偏移是所述第一网络装置根据第一流表中的第一表项确定的;
所述第二网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字,所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置,所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置,所述第一查找关键字等于所述第一字段的值;
所述第二网络装置通过根据所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项;以及
所述第二网络装置根据所述第二表项对所述第一报文进行处理。
9.根据权利要求8所述的方法,其特征在于,所述第一基本偏移具体通过如下途径确定:
所述第一网络装置接收第二报文;
所述第一网络装置根据第二偏移和第二长度确定第二查找关键字,所述第二偏移用于指示所述第二报文中的第二字段的起始位置,所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置,所述第二查找关键字等于所述第二字段的值;
所述第一网络装置根据所述第二查找关键字查找所述第一流表;
所述第一网络装置确定所述第一表项与所述第二查找关键字匹配;以及
所述第一网络装置根据所述第一表项确定所述第一基本偏移。
10.根据权利要求9所述的方法,其特征在于,
所述第二网络装置根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字之前,所述方法还包括:
所述第二网络装置接收所述第一网络装置发送的所述第一报文,所述第一报文是所述第一网络装置通过根据所述第一表项对所述第二报文进行处理获得的。
11.一种处理报文的装置,其特征在于,包括:
第一确定单元,用于根据第一流表中的第一表项确定第一基本偏移;
第二确定单元,用于根据所述第一确定单元确定的所述第一基本偏移、第一偏移和第一长度确定第一查找关键字,所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置,所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置,所述第一查找关键字等于所述第一字段的值;
第三确定单元,用于通过根据所述第二确定单元确定的所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项;以及
处理单元,用于根据所述第三确定单元确定的所述第二表项对所述第一报文进行处理。
12.根据权利要求11所述的装置,其特征在于,还包括:
接收单元,用于接收第二报文;
第四确定单元,用于根据第二偏移和第二长度确定第二查找关键字,所述第二偏移用于指示所述接收单元接收的所述第二报文中的第二字段的起始位置,所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置,所述第二查找关键字等于所述第二字段的值;
查找单元,用于根据所述第四确定单元确定的所述第二查找关键字查找所述第一流表;以及
第五确定单元,用于在所述第一确定单元根据所述第一流表中的所述第一表项确定所述第一基本偏移之前确定所述第一表项与所述第二查找关键字匹配。
13.根据权利要求12所述的装置,其特征在于,还包括:
获得单元,用于在所述第五确定单元确定所述第一表项与所述第二查找关键字匹配之后,以及在所述第二确定单元确定所述第一查找关键字之前通过根据所述第一表项对所述第二报文进行处理获得所述第一报文。
14.一种第一网络装置,其特征在于,包括:
第一确定单元,用于根据第一流表中的第一表项确定第一基本偏移;
发送单元,用于向第二网络装置发送所述第一确定单元确定的所述第一基本偏移。
15.根据权利要求14所述的装置,其特征在于,
所述第一基本偏移能够触发所述第二网络装置执行如下操作:
根据所述第一基本偏移、第一偏移和第一长度确定第一查找关键字,所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置,所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置,所述第一查找关键字等于所述第一字段的值;
通过根据所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项;以及
根据所述第二表项对所述第一报文进行处理。
16.根据权利要求14或15所述的装置,其特征在于,还包括:
接收单元,用于接收第二报文;
第二确定单元,用于根据第二偏移和第二长度确定第二查找关键字,所述第二偏移用于指示所述接收单元接收的所述第二报文中的第二字段的起始位置,所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置,所述第二查找关键字等于所述第二字段的值;
查找单元,用于根据所述第二确定单元确定的所述第二查找关键字查找所述第一流表;以及
第三确定单元,用于在所述第一确定单元确定所述第一基本偏移之前确定所述第一表项与所述第二查找关键字匹配。
17.根据权利要求16所述的装置,其特征在于,还包括:
获得单元,用于通过根据所述第一表项对所述第二报文进行处理获得所述第一报文;以及
发送单元,用于在所述第三确定单元确定所述第一表项与所述第二查找关键字匹配之后向所述第二网络装置发送所述获得单元获得的所述第一报文。
18.一种第二网络装置,其特征在于,包括:
第一接收单元,用于接收第一网络装置发送的第一基本偏移,所述第一基本偏移是所述第一网络装置根据第一流表中的第一表项确定的;
第一确定单元,用于根据所述第一接收单元接收的所述第一基本偏移、第一偏移和第一长度确定第一查找关键字,所述第一基本偏移和所述第一偏移的和用于指示第一报文中的第一字段的起始位置,所述第一基本偏移、所述第一偏移以及所述第一长度的和用于指示所述第一字段的结束位置,所述第一查找关键字等于所述第一字段的值;
第二确定单元,用于通过根据所述第一确定单元确定的所述第一查找关键字查找第二流表确定所述第二流表中与所述第一查找关键字匹配的第二表项;以及
处理单元,用于根据所述第二确定单元确定的所述第二表项对所述第一报文进行处理。
19.根据权利要求18所述的装置,其特征在于,所述第一基本偏移具体通过如下途径确定:
所述第一网络装置接收第二报文;
所述第一网络装置根据第二偏移和第二长度确定第二查找关键字,所述第二偏移用于指示所述第二报文中的第二字段的起始位置,所述第二偏移和所述第二长度的和用于指示所述第二字段的结束位置,所述第二查找关键字等于所述第二字段的值;
所述第一网络装置根据所述第二查找关键字查找所述第一流表;
所述第一网络装置确定所述第一表项与所述第二查找关键字匹配;以及
所述第一网络装置根据所述第一表项确定所述第一基本偏移。
20.根据权利要求19所述的装置,其特征在于,还包括:
第二接收单元,用于在所述第一确定单元确定所述第一查找关键字之前接收所述第一网络装置发送的所述第一报文,所述第一报文是所述第一网络装置通过根据所述第一表项对所述第二报文进行处理获得的。
CN201410248252.6A 2014-06-05 2014-06-05 处理报文、发送信息、接收信息的方法及装置 Active CN105450527B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410248252.6A CN105450527B (zh) 2014-06-05 2014-06-05 处理报文、发送信息、接收信息的方法及装置
PCT/CN2015/080613 WO2015184979A1 (zh) 2014-06-05 2015-06-02 处理报文、发送信息、接收信息的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410248252.6A CN105450527B (zh) 2014-06-05 2014-06-05 处理报文、发送信息、接收信息的方法及装置

Publications (2)

Publication Number Publication Date
CN105450527A true CN105450527A (zh) 2016-03-30
CN105450527B CN105450527B (zh) 2019-02-05

Family

ID=54766164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410248252.6A Active CN105450527B (zh) 2014-06-05 2014-06-05 处理报文、发送信息、接收信息的方法及装置

Country Status (2)

Country Link
CN (1) CN105450527B (zh)
WO (1) WO2015184979A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107332773A (zh) * 2016-04-29 2017-11-07 华为技术有限公司 一种学习arp表项的方法及ptn设备
CN107547407A (zh) * 2017-09-15 2018-01-05 新华三技术有限公司 报文传输方法、装置和实现装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080165783A1 (en) * 2002-12-04 2008-07-10 Cisco Technology, Inc. Access list key compression
CN102821049A (zh) * 2012-08-15 2012-12-12 华为技术有限公司 转发报文的方法和装置
CN102857428A (zh) * 2012-09-18 2013-01-02 杭州华三通信技术有限公司 一种基于访问控制列表的报文转发方法和设备
CN103560951A (zh) * 2013-11-13 2014-02-05 华为技术有限公司 报文处理方法及物理转发设备
CN103825824A (zh) * 2014-03-04 2014-05-28 华为技术有限公司 一种报文处理方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5107859B2 (ja) * 2008-10-16 2012-12-26 富士通株式会社 データ伝送システム、端末装置、端末装置の制御回路、データ伝送方法及びデータ伝送プログラム
CN103731377B (zh) * 2013-12-31 2017-04-26 华为技术有限公司 处理报文的方法与设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080165783A1 (en) * 2002-12-04 2008-07-10 Cisco Technology, Inc. Access list key compression
CN102821049A (zh) * 2012-08-15 2012-12-12 华为技术有限公司 转发报文的方法和装置
CN102857428A (zh) * 2012-09-18 2013-01-02 杭州华三通信技术有限公司 一种基于访问控制列表的报文转发方法和设备
CN103560951A (zh) * 2013-11-13 2014-02-05 华为技术有限公司 报文处理方法及物理转发设备
CN103825824A (zh) * 2014-03-04 2014-05-28 华为技术有限公司 一种报文处理方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107332773A (zh) * 2016-04-29 2017-11-07 华为技术有限公司 一种学习arp表项的方法及ptn设备
CN107332773B (zh) * 2016-04-29 2020-01-10 华为技术有限公司 一种学习arp表项的方法及ptn设备
CN107547407A (zh) * 2017-09-15 2018-01-05 新华三技术有限公司 报文传输方法、装置和实现装置
CN107547407B (zh) * 2017-09-15 2021-03-09 新华三技术有限公司 报文传输方法、装置和实现装置

Also Published As

Publication number Publication date
WO2015184979A1 (zh) 2015-12-10
CN105450527B (zh) 2019-02-05

Similar Documents

Publication Publication Date Title
EP1842338B1 (en) Method and apparatus for context-based prefix updates in border gateway protocol
EP2999173B1 (en) Service routing packet processing method, device and network system
US8812726B2 (en) Service insertion in a computer network using internet protocol version 6 techniques
EP3806408A1 (en) Method for generating label forwarding table, packet transmission method, apparatus, and device
EP2688255A1 (en) Network system, and policy route configuration method
US11012350B2 (en) Network interworking with no cross-domain state
WO2005031533A2 (en) Model-based method and apparatus for determining mpls network properties
CN105409167A (zh) 通过软件定义网络在隧道中传输报文的方法、通过软件定义网络智能控制报文流的方法和系统
WO2013148048A1 (en) Systems and methods for modifying network packets to use unrecognized headers/fields for packet classification and forwarding
US20140247725A1 (en) Load reducing system and load reducing method
US20190020584A1 (en) Packet Processing Method and System, and Device
CN104270475A (zh) 基于NAT64实现IPv4网络与IPv6网络互通的系统及方法
US20050068953A1 (en) Model-based method and apparatus for determining MPLS network properties
WO2022119843A1 (en) Systems and methods for scalable validation of multiple paths in a network using segment routing
US9749262B2 (en) Packet processing method and forwarding element
CN105515995A (zh) 报文处理方法、流表生成方法及装置
CN105450527A (zh) 处理报文、发送信息、接收信息的方法及装置
CN106878308B (zh) 一种icmp报文匹配系统及方法
CN106453144B (zh) 软件定义网络中的报文处理方法和设备
CN111770049B (zh) 全局缓存变量及报文信息存储方法及装置
CN107547687B (zh) 一种报文传输方法和装置
US20230107822A1 (en) Method for converting network packets and circuit system
JP2017034723A (ja) パケット処理方法及び転送要素
CN115996211A (zh) 网络封包转换方法
CN114531391A (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
GR01 Patent grant
GR01 Patent grant