[go: up one dir, main page]

CN111988266A - 一种处理报文的方法 - Google Patents

一种处理报文的方法 Download PDF

Info

Publication number
CN111988266A
CN111988266A CN201910441426.3A CN201910441426A CN111988266A CN 111988266 A CN111988266 A CN 111988266A CN 201910441426 A CN201910441426 A CN 201910441426A CN 111988266 A CN111988266 A CN 111988266A
Authority
CN
China
Prior art keywords
packet
identifier
header
sff
packet header
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
CN201910441426.3A
Other languages
English (en)
Other versions
CN111988266B (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 CN201910441426.3A priority Critical patent/CN111988266B/zh
Priority to PCT/CN2020/091935 priority patent/WO2020238809A1/zh
Priority to EP20813177.1A priority patent/EP3955541B1/en
Publication of CN111988266A publication Critical patent/CN111988266A/zh
Priority to US17/533,216 priority patent/US20220109745A1/en
Application granted granted Critical
Publication of CN111988266B publication Critical patent/CN111988266B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例公开了一种处理报文的方法,用于提高报文转发的成功率。本申请实施例方法包括:业务功能转发设备SFF接收第一报文;所述SFF将所述第一报文的第一报文头替换为第二报文头,得到第二报文,所述第二报文携带第一标识;所述SFF向业务功能设备SF发送所述第二报文;所述SFF从所述SF接收第三报文,所述第三报文由所述SF根据所述第二报文头对所述第二报文处理后得到,所述第三报文携带所述第一标识;所述SFF根据所述第一标识和所述第一报文头的映射关系,确定与所述第一标识对应的所述第一报文头;所述SFF将所述第三报文的第三报文头替换为所述第一报文头,得到第四报文;所述SFF向下一跳节点发送所述第四报文。

Description

一种处理报文的方法
技术领域
本申请涉及计算机领域,尤其涉及一种处理报文的方法、业务功能转发设备、业务功能设备以及处理报文的系统。
背景技术
业务功能转发(英文:service function forward,SFF)设备是业务链转发节点,用于将网络中收到的报文,转发给SFF关联的至少一个业务功能(英文:service function,SF)设备上。报文经过SF解析后,再返回给同一个SFF。当业务链上最后一个SF把处理后的报文发给SFF后,SFF把报文发回网络继续传输。当网络中存在下述情况时,例如,SFF能够正常解析接收到的数据报文的报文头,但是SF无法正常解析SFF转发的数据报文时,可能导致通信错误。
发明内容
本申请实施例提供了一种处理报文的方法、业务功能转发设备及业务功能设备,用于提高报文转发的成功率。
有鉴于此,本申请实施例第一方面提供了一种处理报文的方法,可以包括:
业务功能转发设备SFF在接收到第一报文后,确定第一报文的类别,同时确定处理该报文的业务功能设备SF。之后,SFF将第一报文的第一报文头替换为的第二报文头,得到第二报文,第二报文携带第一标识。需要说明的是,该第二报文头可以与该第一报文头类型不同,该第二报文头为SF可解析的报文头。生成第二报文后,SFF向SF发送第二报文,并从SF接收SF根据第二报文头对第二报文处理后得到的第三报文,该第三报文同样携带有第一标识。SFF将第三报文保存在本地,并从第三报文中解析得到第一标识,根据预设的第一标识和第一报文头的映射关系,确定与第一标识对应的第一报文头。最后,SFF将第三报文的第三报文头替换为该第一报文头,得到第四报文,并根据第一报文头确定下一跳,向下一跳节点发送该第四报文。本申请实施例中,SFF获取到第一报文后,若在与之相连的SF无法解析第一报文或在其他情况时,SFF将该第一报文中的第一报文头替换为SF可解析的第二报文头,得到第二报文。之后,SFF向SF发送第二报文,该第二报文中携带了与第一报文头对应的第一标识。在收到SF对第二报文处理后得到的第三报文时,该第三报文同样携带有该第一标识,从而SFF可以从该第三报文中解析得到该第一标识,进而根据该第一标识以及第一标识和第一报文头的对应关系查询得到预先保存的第一报文头,根据第三报文和该第一报文头恢复生成第四报文,并向下一跳发送该第四报文。通过上述方法,实现了SF对第一报文的处理,提高了业务链中设备对第一报文的兼容性,同时通过为第一报文头设置第一标识,避免了第一报文头由于被替换,而导致后续封装时查询错误,而带来封装错误的情况的发生。
在一个具体的设计中,该第一报文头为段路由SR报文头。本实施例中,对第一报文头的形式仅为举例说明,提高了方案的可操作性。
在一个具体的实施例中,该第一报文头为该SF无法解析的报文头。本实施例中,为本方案提供了一个具体的应用场景,即第一报文头无法被SF解析时,则SFF生成第二报文头,替换第一报文的第一报文头,得到第二报文并向SF发送,从而SF可以解析第二报文,对对应的业务数据进行处理,避免了SF无法处理第一报文而带来的处理失败的情况的发生。
在一个具体的设计中,在该SFF将该第一报文的第一报文头替换为第二报文头之前,该方法还包括:若本地存在第一报文头,则该SFF根据预置的该第一报文头和该第一标识的映射关系,确定该第一标识;若本地不存在第一报文头,则该SFF为该第一报文头分配该第一标识,并保存该第一标识和该第一报文头的映射关系。本实施例中,SFF在得到第一报文后,可以首先查询本地是否已存在该第一报文头,若存在,则直接查询与第一报文头对应的第一标识,否则再保存该第一报文头,为其分配第一标识。通过判断是否存在,避免了对第一报文头的重复缓存,减少了设备的存储压力。
在一个具体的设计中,该第二报文中还携带第二标识,该第二标识用于指示该第二报文携带该第一标识,并在该第三报文中携带该第一标识。本实施例中,第二报文还可以携带第二标识,从而使得SF可以根据该第二标识确定第二报文中是否携带第一标识,避免了SF在第二报文为未携带第一标识时,不必要的读取操作,减少了SF的操作压力。
在一个具体的设计中,该第三报文还携带第三标识,该方法还包括:该SFF根据该第三标识的指示,获取该第一标识。本实施例中指出第三报文还携带第三标识,从而SFF可以根据该第三标识确定第三报文中是否携带第一标识,避免了可能存在的不必要的读取操作,减少了SFF的操作压力。
本申请实施例第二方面提供了一种处理报文的方法,可以包括:
业务功能设备SF从业务功能转发设备SFF接收第一报文后,将第一报文保存在本地,其中,该第一报文携带第一标识。之后,SF根据第一报文的报文头对第一报文进行处理,得到第二报文,该处理过程中,根据业务数据处理过程的不同,SF可能对第一报文的报文头同时进行了处理,或不进行处理,从而得到的第二报文的报文头可能与第一报文的报文头相同或不同。得到第二报文后,SF向SFF发送第二报文。需要说明的是,第二报文携带第一标识,从而使得SFF在接收第二报文后,可以根据第一标识查询得到预先保存的目标报文头。
在一个具体的设计中,该目标报文头为段路由SR报文头。本实施例中,对第一报文头的形式仅为举例说明,提高了方案的可操作性。
在一个具体的设计中,该第一报文还包括第二标识,该SF向该SFF发送该第三报文之前,该方法还包括:该SF根据该第二标识的指示,获取该第一标识,并在该第三报文中携带该第一标识。本实施例中,第二报文还可以携带第二标识,从而SF可以根据该第二标识确定第二报文中是否携带第一标识,避免了SF在第二报文为未携带第一标识时,不必要的读取操作,减少了SF的操作压力。
在一个具体的设计中,该方法还包括:该SF在该第三报文中携带第三标识,该第三标识用于指示该第三报文携带该第一标识。本实施例中,SF还可以在第三报文中携带第三标识,从而使得SFF可以根据该第三标识确定第三报文中是否携带第一标识,避免了可能存在的不必要的读取操作,减少了SFF的操作压力。
本申请实施例第三方面提供了一种业务功能转发设备,可以包括:
收发单元,用于接收第一报文;
处理单元,用于将该第一报文的第一报文头替换为第二报文头,得到第二报文,该第二报文携带第一标识;
该收发单元,还用于向业务功能设备SF发送该第二报文;从该SF接收第三报文,该第三报文由该SF根据该第二报文头对该第二报文处理后得到,该第三报文携带该第一标识;
该处理单元,还用于根据该第一标识和该第一报文头的映射关系,确定与该第一标识对应的该第一报文头;将该第三报文的第三报文头替换为该第一报文头,得到第四报文;
该收发单元,还用于向下一跳节点发送该第四报文。
在一个具体的设计中,该第一报文头为段路由SR报文头。
在一个具体的设计中,该第一报文头为该SF无法解析的报文头。
在一个具体的设计中,
该处理单元,还用于若本地存在该第一报文头,则根据预置的该第一报文头和该第一标识的映射关系,确定该第一标识;若本地不存在该第一报文头,则为该第一报文头分配该第一标识,并保存该第一标识和该第一报文头的映射关系。
在一个具体的设计中,
该第二报文中还携带第二标识,该第二标识用于指示该第二报文携带该第一标识,并在该第三报文中携带该第一标识。
在一个具体的设计中,
该第三报文还携带第三标识;
该处理单元,还用于该第三标识的指示,获取该第一标识。
本申请实施例第四方面提供了业务功能设备,可以包括:
收发单元,用于从业务功能转发设备SFF接收第一报文,该第一报文携带第一标识;
处理单元,用于根据该第一报文的报文头对该第一报文进行处理,得到第二报文;
该收发单元,还用于向该SFF发送该第二报文,该第二报文携带该第一标识,该第一标识用于指示该SFF根据该第一标识查询得到预先保存的目标报文头。
在一个具体的设计中,该目标报文头为段路由SR报文头。
在一个具体的设计中,
该第一报文还包括第二标识;
该收发单元,还用于根据该第二标识的指示,获取该第一标识,并在该第三报文中携带该第一标识。
在一个具体的设计中,
该收发单元,还用于在该第三报文中携带第三标识,该第三标识用于指示该第一报文携带该第一标识。
本申请实施例第五方面提供了一种业务功能转发设备,可以包括:
处理器、存储器和收发器,该处理器、该收发器与该存储器相连;
该收发器,用于接收第一报文,并保存在该存储器中;
该处理器,用于从该存储器中读取该第一报文,将该第一报文的第一报文头替换为第二报文头,得到第二报文,该第二报文携带第一标识;
该收发器,还用于从该存储器中获取该第二报文,并向业务功能设备SF发送该第二报文;从该SF接收第三报文,并保存在该存储器中,该第三报文由该SF根据该第二报文头对该第二报文处理后得到,该第三报文携带该第一标识;
该处理器,还用于从该存储器中读取该第一标识,并根据该第一标识和该第一报文头的映射关系,确定在该存储器中与该第一标识对应的该第一报文头;从该存储器中读取该第三报文,并将该第三报文的第三报文头替换为该第一报文头,得到第四报文;
该收发器,还用于从该存储器中获取该第四报文,并向下一跳节点发送该第四报文。
在一个具体的设计中,
该第一报文头为段路由SR报文头。
在一个具体的设计中,
该第一报文头为该SF无法解析的报文头。
在一个具体的设计中,
该处理器,还用于若本地存在第一报文头,并根据预置的该第一报文头和该第一标识的映射关系,确定该第一标识;若本地不存在第一报文头,则为该第一报文头分配该第一标识,并保存该第一标识和该第一报文头的映射关系。
在一个具体的设计中,
该第二报文中还携带第二标识,该第二标识用于指示该第二报文携带该第一标识,并在该第三报文中携带该第一标识。
该第一报文头为该SF无法解析的报文头。
该第三报文还携带第三标识,该处理器,还用于根据该第三标识的指示,从该存储器中获取该第一标识。
本申请实施例第六方面提供了一种业务功能设备,可以包括:
处理器、存储器和收发器,该处理器、该收发器与该存储器相连;
该收发器,用于从业务功能转发设备SFF接收第一报文,并保存在该存储器中,该第一报文携带第一标识;
该处理器,用于从该存储器中读取该第一报文,并对该第一报文进行处理,得到第二报文;
该收发器,还用于从该存储器中获取该第二报文,并向该SFF发送该第二报文,该第二报文携带该第一标识,该第一标识用于指示该SFF根据该第一标识查询得到预先保存的目标报文头。
在一个具体的设计中,
该目标报文头为段路由SR报文头。
在一个具体的设计中,
该第一报文还包括第二标识,该处理器,还用于从该存储器中读取该第二标识,根据该第二标识的指示,获取该第一标识,并在该第三报文中携带该第一标识。
在一个具体的设计中,
该处理器,还用于在该第三报文中携带第三标识,该第三标识用于指示该第三报文携带该第一标识。
本申请实施例第七方面提供了一种报文处理的系统,可以包括:
业务功能转发设备和业务功能设备,其中:
所述业务功能转发设备包括如第三方面、第五方面及第三方面和第五方面中任一具体实施例所述的业务功能转发设备;
所述业务功能设备包括如第四方面、第六方面及第四方面和第六方面中任一具体实施例所述的业务功能转发设备。
本申请实施例第八方面提供了一种计算机存储介质,包括指令,当其在计算机上运行时,使得计算机执行如第一方面、第二方面及第一方面和第二方面中任一具体实施例所述的方法。
本申请实施例第九方面提供了一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行如第一方面、第二方面及第一方面和第二方面中任一具体实施例所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
SFF获取到第一报文后,若在与之相连的SF无法解析第一报文或在其他情况时,SFF将该第一报文中的第一报文头替换为SF可解析的第二报文头,得到第二报文。之后,SFF向SF发送第二报文,该第二报文中携带了与第一报文头对应的第一标识。在收到SF对第二报文处理后得到的第三报文时,该第三报文同样携带有该第一标识,从而SFF可以从该第三报文中解析得到该第一标识,进而根据该第一标识以及第一标识和第一报文头的对应关系查询得到预先保存的第一报文头,根据第三报文和该第一报文头恢复生成第四报文,并向下一跳发送该第四报文。通过上述方法,实现了SF对第一报文的处理,提高了业务链中设备对第一报文的兼容性,同时通过为第一报文头设置第一标识,避免了第一报文头由于被替换,而导致后续封装时查询错误,而带来封装错误的情况的发生。
附图说明
图1为本申请实施例中所提供的应用场景的示意图;
图2为本申请实施例中所提供的现有技术中SR代理通用结构的示意图;
图3为本申请实施例中所提供的现有技术中SR路径调优的示意图;
图4为本申请实施例中所提供的一种处理报文的方法的一个实施例示意图;
图5为本申请实施例中所提供的一种处理报文的方法的一个实施例示意图;
图6为本申请实施例中所提供的一种处理报文的方法的一个实施例示意图;
图7为本申请实施例中所提供的一种业务功能转发设备700的一个实施例示意图;
图8为本申请实施例中所提供的一种业务功能设备800的一个实施例示意图;
图9为本申请实施例中所提供的一种业务功能转发设备900的一个实施例示意图;
图10为本申请实施例中所提供的一种业务功能设备1000的一个实施例示意图。
具体实施方式
下面结合附图对本申请实施例所提供的一种处理报文的方法、一种业务功能转发设备及业务功能设备进行详细说明。
本申请实施例,应用于计算机领域,可以应用于多种类型的报文转发和处理过程中,例如但不限于,应用在采用SR技术转发报文时,对报文的转发和处理。
段路由(segment routing,SR)是一种基于源路由转发模式的隧道技术,由头节点来为报文指定路径,从而报文按照该指定的路径在路由节点上进行转发和处理。其中,采用SR技术转发的报文由SR报文头和有效载荷(playload)部分组成,SR报文头携带转发路径的指示信息,playload部分用来携带业务数据。
如图1所示,为本申请实施例所提供的应用场景的示意图,图1所示的应用场景可以是业务链,包括业务多个功能转发设备(service function forwarder,SFF)、业务功能(service function,SF)设备及路由节点(router)。SFF提供服务层的转发功能,用于引导报文到SF或下一跳。SF表示提供虚拟网络功能的设备,与SFF之间可以是单臂模式连接也可以是串联模式连接,用于提供特定的网络服务,例如防火墙(firewall)、网络地址转换(network address translation,NAT)、服务质量(quality of service,QoS)等服务,SF可以是物理设备,也可以是虚拟设备。
图1所示的应用场景中,各个业务链节点之间可以采用SR技术进行报文的转发。其中,SR技术是一种基于源路由转发模式的隧道技术,由业务流的头节点来为报文指定路径,可以分为多协议标签交换(multi-protocol label switching,MPLS)和互联网协议第6版(Internet Protocol Version 6,IPv6)两个数据面,分别称为SR-MPLS和SRv6。采用SR技术转发业务数据时,头节点确定转发路径的尾节点及业务数据所需要经过的处理后,选择最优的路由段组成头节点至尾节点的转发路径,并对应生成一个有序的段路由标识列表(segment ID list,SID list),SID list指示了携带该SID list的报文所需要进过的设备或需要经过的处理。之后,头节点将该SID list保持在报文头中,生成SR报文头,并将SR报文头与业务数据封装生成SR报文。从而业务链上的节点可以根据SR报文头中SID list所指示的路径对SR报文进行转发和处理操作。需要说明的是,虽然SID与传统的MPLS标签或IPv6地址形式上相同,但SID本质上是一条指令(instruction),除指示将报文传输至指定的设备之外,还可以用于指示在指定的设备上对报文进行关联预定义的操作。
根据SID的含义,SR技术中,定义了多种SID类型,分别用于指示对SR报文的不同处理。而在业务链中配置SFF时,在SFF中配置了SID配置表,SID配置表用于指示不同字段的SID与不同SID类型的对应关系。SFF接收到报文后,从报文的报文头中解析得到当前生效的段路由标识(active SID),并以该active SID的字段值查询SID配置表,若查询得到对应的SID类型,则SFF根据协议确定该SID类型所对应的操作,进而对报文进行转发或处理;若未在SID配置表中查询到对应的SID类型,则SFF将该active SID作为传统的MPLS标签或IPV6地址查询本地的IPv6地址转发表或MPLS标签转发表,从而确定下一跳,并向下一跳转发报文。
SR报文头的解析需要相应的设备支持,目前为了实现对业务链上不支持SR技术的设备的兼容,SR技术中定义了多种SR代理(SR proxy)模式,从而实现了采用SR技术的报文在业务链上的正常转发和处理。
如图2所示,为现有技术中所定义的SR代理通用架构的示意图。图2中,业务功能转发设备接收到段路由(SR)报文后,由于与之相连的业务功能(SF)设备不支持SR技术,因而SFF将该SR报文转换为SF可解析的非段路由(非SR)报文发送给SF,之后SFF再将SF处理后返回的非SR报文恢复为SR报文,在业务链中转发。具体地,SR代理技术又可以分为静态代理(static proxy),动态代理(dynamic proxy),共享内存代理(shared-memory proxy)以及伪装代理(masquerading proxy)等多种。其中,目前应用最为广泛的为SR动态代理技术:SFF保存从上一节点接收到的第一SR报文的SR报文头,并将该第一SR报文的SR报文头替换为SF可解析的非SR报文头,从而得到第一非SR报文。之后,SFF向SF发送该第一非SR报文,并在SF对该第一非SR报文处理完毕后,从该SF接收处理后得到的第二非SR报文。而在接收到SF处理后返回的第二非SR报文后,SFF再根据五元组,还可以再根据虚拟专用网络标识(virtual private network identification,VPN ID)从本地查询得到预先保存的SR报文头,将该第二非SR报文的非SR报文头替换为查询得到的该SR报文头,得到第二SR报文,并向下一跳转发该第二SR报文。通过SR动态代理技术,实现了对不支持SR技术的设备的兼容。
由以上可知,SR报文是按照头节点所指定的路径进行转发的,而转发过程中,若某一段路径出现故障,则可能无法继续进行转发。目前基于这类情况,SR技术中同时定义了路径调优技术,允许SR报文在转发过程中改变转发路径,绕过故障路径,从而实现正常转发。其中,SR路径调优可以包含主动调优和被动调优。被动调优是指在SR报文转发过程中,若发生链路/节点/风险共享链路组(shared risk link groups,SRLG)的故障时,故障段的头节点通过计算得到与收敛后路径(post-convergence path)对应的修复隧道。之后,该头节点将转发的报文引导至修复隧道,再通过修复隧道将报文转发至故障段的尾节点,从而实现了100%的本地保护。主动调优是指控制器在任意时刻,可以根据用户指令或由链路运行状态触发的既定策略调整业务流的转发路径。
需要说明的是,路径调优过程中需要改变转发路径,则在路径调优之后,原SR报文的报文头也需要随之改变。若与第一SR报文同一业务流后续的其他SR报文在SFF之前的节点经过了路径调优,则该其他SR报文的报文头与第一SR报文的报文头并不相同。这样就导致,SFF在对第一SR报文进行动态代理时,若在接收到第二非SR报文前,接收到了该其他SR报文,则SFF会将预先保存的第一SR报文的报文头替换为该其他SR报文的报文头。从而SFF之后根据五元组和VPN ID查询得到的SR报文头为该其他SR报文的报文头,由于该其他SR报文的报文头与第一SR报文的报文头并不相同,这样可能会导致后续封装错误,即生成第二SR报文的过程中发生错误,影响后续报文的转发。
如图3所示,为SR路径调优的示意图,图中,2004、2005、2106和2007分别为配置在业务链上节点R4、R5、R6和R7的SID,其中,R6节点的设备为SFF,具有SR动态代理能力。R2接收到SR报文后,根据SR报文头中的SID list(2106-2007),确定下一跳为R6。但由于R2-R6之间的隧道为故障段或者为调整段,SR报文不能直接通过R2-R6转发至R6,因而R2节点启动路径调优功能,通过计算得到修复隧道R4-R5,并将该修复隧道对应的SID list(2004-2005)拼接在原SR报文头中记录的SID list,得到新SR报文头,从而R2可以通过新SR报文头中指示的修复隧道将接收的报文发送至R6节点。在图3所示的SR路径调优的示意图中,若R6节点接收第一SR报文时,R2-R6之间的路径处于正常状态,接收同一业务流的第二SR报文时,路径处于非正常状态(故障或调整),则根据上述描述可知,SFF接收到的第一SR报文的报文头和第二SR报文的报文头并不相同。这样就导致,SFF在对第一SR报文进行动态代理时,若SFF在接收到SF返回的第一SR报文对应的非SR报文前,接收到第二SR报文,则SFF将使用第二SR报文的第二SR报文头替换原先保存的第一SR报文的第一SR报文头。这样一来,SFF在接收到SF返回的第一SR报文对应的非SR报文后,查询得到的SR报文头并非预先保存的第一SR报文头,从而导致后续在根据该非SR报文和该查询得到的SR报文头封装为SR报文的过程中,可能会出现封装错误的情况,影响后续报文的转发。
上述说明中,以SR报文为例进行说明,即在SR动态代理情况下,由于转发路径遭遇路径调优,预先保存的SR报文头被错误替换,进而可能造成报文封装错误的情况。需要说明的是,在其他类型的报文中,也可能会出现类似情况,即第一报文的报文头在缓存期间被错误替换,进而导致后续封装错误,影响报文正常转发的情况。
基于以上说明,本申请实施例提供了一种处理报文的方法,用于提高报文转发的成功率,并减少报文在转发过程中出现封装错误,而影响报文转发的情况的几率。
下面具体参照图4,图4为本申请实施例提供的一种报文处理的方法的一个实施例示意图,可以包括:
S401、SFF接收报文一。
在一个具体的实施方式中,SFF作为业务链上的节点,在运行时可以接收上一跳发送的报文一。
S402、SFF对报文一进行解析操作,得到报文头一。
在一个具体的实施方式中,SFF接收到报文一后,对报文一进行解析操作,得到对应的报文头一,本实施例以及后续实施例中,报文头一以SR报文头为例进行说明。
S403、SFF确定报文头一对应的第一标识。
在一个具体的实施方式中,SFF在得到报文头一后,确定该报文头一所对应的第一标识。其中,该标识信息可以是全局唯一的标识信息,即采用该标识信息唯一标识一个报文头,也可以与其他信息组合进行用来唯一标识一个报文头,例如该标识信息可以为自定义的封装类型信息,其他信息除五元组信息外,还可以包括VPN ID信息。
在一个具体的实施方式中,在步骤S402之后,步骤S403之前,所述方法还可以包括以下步骤:
A、SFF确定本地是否存在报文头一。
具体地,SFF可以首先解析得到报文一对应的五元组信息,以该五元组信息作为索引查询本地是否存在同一业务流的其他报文,若不存在,则SFF确定本地不存在与报文头一相同的报文头。若存在一个或多个报文头,则SFF将该报文头一与其他报文的报文头进行二进制对比,若有匹配一致的报文头,则SFF确定本地存在报文头一,否则确定本地不存在报文头一。需要说明的是,若报文头一中还携带有VPN ID信息,则SFF在查询时,可以首先以五元组信息和VPN ID信息作为查询索引。
则,S403、SFF确定报文头一对应的第一标识,包括:若SFF确定本地存在报文头一,则查询预先设定的与该报文头一对应的第一标识;若SFF确定本地不存在报文头一,则SFF保存该报文头一,并为该报文头一分配对应的第一标识。
具体地,SFF接收到上一跳发送的报文后,在保存报文的报文头时,对不同报文头的缓存条目分别分配了对应的标识信息,并将该不同缓存条目与不同标识信息的对应关系保存在本地。从而,若SFF确定本地存在报文头一,则根据报文头一的缓存条目及所述对应关系确定报文头一对应的第一标识。其中,报文头的缓存条目可以由报文头中的一些特定字段包含的信息组成。例如,SRv6报文头包括IPv6基本头和拓展头,则缓存条目可以按照预设的生成缓存条目的规则从每个SRv6报文头中的IPv6基本头和拓展头取出特定字段包含的内容,与报文的五元组信息和/或VPN ID信息组成缓存条目。缓存条目的生成规则可以预先进行设定,为目前常见的技术,此处不再过多赘述。
上述说明中,通过判断SFF是否存在报文头一,若存在,则直接查询得到该报文头一对应的第一标识,无需保存,若不存在,再对报文头一进行保存,并为其分配对应的第一标识。通过判断是否存在,再决定是否进行保存,避免了报文头一的重复缓存,减少了SFF设备的存储压力。
在一个具体的实施方式中,在步骤S402之后,步骤A之前,所述方法还可以包括以下步骤:
B、网络设备判断自身是否是SFF。
具体来说,网络设备根据报文头一是否符合预设规则,来判断自身是否是SFF。网络设备例如可以是路由器,交换机等。
具体地,网络设备解析得到报文头一后,判断该报文头一是否符合预设规则。例如,可以判断该报文头一是否为SF可解析的报文头,具体地可以通过判断报文头一的特定字段是否为预设的特定字段来进行判断。
以报文头一为SR报文头为例说明,在一些可能的场景下,例如,该预设规则可以是判断报文头一是否需要进行SR动态代理,若需要进行SR动态代理,则符合预设规则,若不需要进行SR动态代理,则不符合预设规则。具体地,以SRv6报文为例,网络设备从报文头一的取出active SID,以该active SID作为目的地址查询本地的SID配置表,该SID配置表的示意表如表1所示。网络设备根据该active SID的字段判断所指示的SID类型是否为进行SR动态代理的类别。
active SID SID类型 备注
A::1 End.AD 进入SRv6动态代理流程
A::2 End.DT4 进入IPv4的VPN处理流程
A::3 End.DX2 进入二层VPN处理流程
表1
如上表1所示,SID类型中的End.AD为需要进行SR动态代理的类型。SFF确定报文头一中active SID的字段中,包含A::1字段时,SFF根据表1所示的SID配置表确定进行SR动态代理,此时报文头一即符合预设规则。需要说明的是,SR根据数据面可以将SR报文具体分为SRv6报文和MPLS-SR报文,上述以SRv6为例进行举例说明,而在MPLS-SR场景下的实现方式,与之类似,主要的区别点在于SID的形式有所不同,具体此处不再赘述。
S404、SFF生成报文头二。
在一个具体的实施方式中,SFF解析得到报文头一后,确定需要对报文一进行处理的SF所支持报文类型,从而生成该SF可解析的报文头二。该报文头二可以与SFF和SF之间相连的隧道对应,例如,该报文头二可以是虚拟扩展局域网(virtual extensible lan,VXLAN)头部、通用协议拓展虚拟扩展局域网(VXLAN generic protocol extension,VXLAN-GPE)头部、网络虚拟化协议(Geneve)头部、通用路由封装协议(generic routingencapsulation,GRE)头部或IPv6头部的一种。
以该报文头一为SRv6报文头举例进行说明。根据步骤B中所述的内容可知,SFF首先根据SID配置表判断报文头一中的active SID的类型为进行SR动态代理的类型。此时,SFF可以再以该active SID的字段查询预先配置的封装表,该封装表如下表2所示:
Figure BDA0002072137200000101
表2
根据步骤B中所述的表1所示,字段值为A::1的active SID所指示的为进行SR动态代理的SID,通过与表2查询得到,其封装的报文头二的封装头类型(即Encap type所指示的内容)为虚拟扩展局域网,封装报头参数为:source-addr=1.1.1.1、Destination-addr=2.2.2.2、VNI=10。确定该信息后,SFF生成对应的VXLAN头部,并在该头部中写入该确定的封装头参数(即Encap params所指示的内容),该VXLAN头部即为报文头二。
S405、SFF将报文一的报文头一替换为报文头二,得到报文二,该报文二携带第一标识。
在一个具体的实施方式中,SFF生成报文头二后,将报文一的报文头一剥离,并将报文一的业务数据与报文头二进行封装,从而得到报文二。其中,该报文二携带第一标识。具体地,可以根据报文头二的不同类型,在报文头二的预留字段中写入第一标识。
下面分别就主要的几种报文头二的类型进行说明:
VXLAN:是数据中心网络中当前主流的隧道技术。在VXLAN头部中,目前遗留有若干保留的标志位(R)和两个预留字段(reserved)。可以使用其中一个预留字段用来携带第一标识。
VXLAN-GPE:VXLAN-GPE头部是VXLAN头部的扩展,与VXLAN头部的最大区别在于预留有下一个协议(Next Protocol)字段,从而可以携带各种协议封装,包括以太网(Ethernet)/互联网协议第四版(internet protocol version 4,IPv4)/IPv6/MPLS/网络服务报头(network service header,NSH)等。为了区别,VXLAN-GPE的用户数据报协议(user datagram protocol,UDP)目的端口号必须设置为4790。与VXLAN类似,也可以使用该预留字段携带第一标识。
Geneve:除了在VXLAN头部的基础上增加了协议类型(protocol type)字段外,还可以携带可选的TLV(type-length-value)信息,UDP目的端口号必须设置为6081。由于Geneve支持携带可选的TLV,因此,可以定义新的TLV类型来用于携带第一标识。
GRE:是目前广泛使用的通用隧道技术,在GRE头部中也存在保留标志位和保留字段,因而也可以使用该保留字段用来携带第一标识。
IPv6:IPv6头部中有预留的流标签(flow label)保留位,因而同样可以在该流标签保留位中携带第一标识。
需要说明的是,以上对报文头二携带第一标识的说明仅为举例说明,对于其他隧道类型,如果在头部也存在类似的可扩展性,也可以参考上述扩展定义,在此不再逐一说明。
同时,在报文二中设置携带第一标识后,SFF和SF都需要在支持现有隧道技术的基础上,进行相关的修改,以使设备能够读取或修改以上所述预留字段中保存的第一标识。
此外,上述描述中,由于不同隧道类型的报文头二中预留字段的长度并不相同,在实际应用中,第一标识和第二标识需要根据不同隧道预留字段所支持的长度进行设计。
在一个具体的实施方式中,该报文二还可以携带第二标识,该第二标识用于SF根据该第二标识的指示,读取第一标识。具体地,该第二标识可以预设与预设值,用于指示SF在确定第二标识为预设值后,从报文二中读取该第一标识,该第二标识的携带方式,与第一标识的携带方式类似,此处不再赘述。
S406、SFF向SF发送报文二。
在一个具体的实施方式中,SFF生成报文二后,向SF发送该报文二。
S407、SF对报文二进行处理,得到报文三,该报文三携带第一标识。
在一个具体的实施方式中,SF接收到报文二后,对报文二进行解析操作,得到业务数据以及第一标识,进而根据报文头二对携带的业务数据进行处理,例如业务数据为多个网址信息,SF按照预设规则对该多个网址链接进行过滤(防火墙),或者对地址进行转换等,并得到处理后的业务数据。在SFF对业务数据处理过程中,按照处理的类型的不同,可能对报文头二进行修改或不进行修改,从而得到报文头三,该报文头三可能与报文头二相同或不同。SF在对报文二进行处理后,在报文三中携带第一标识,并将报文头三以及处理后的业务数据进行封装,得到报文三。
在一个具体的实施方式中,报文二还包括第二标识,SF接收到报文二后,根据第二标识,获取报文二携带的第一标识,并在报文三中携带该第一标识。具体地,SF在读取第二标识后,若确定该第二标识为预设值,则读取报文二中携带的第一标识,并在生成的报文三中携带第一标识,在报文三中携带第一标识的方式,与步骤S405中,在报文二中携带第一标识的方式类似,此处不再赘述。
在一个具体的实施方式中,报文三还包括第三标识,SF在生成报文三时,同时在报文三中携带该第三标识,该第三标识用于指示SFF按照第三标识的指示,读取第一标识。具体地,该第三标识可以为预设值,用于指示SFF在该第三标识为预设值时,读取报文三携带的第一标识,该第三标识的携带方式,与步骤S405中,在报文二中携带第一标识的方式类似,此处不再赘述。
S408、SF向SFF发送报文三。
在一个具体的实施方式中,SF生成报文三后,向SFF发送报文三。
S409、SFF根据第一标识及报文头一的对应关系,确定与该第一标识对应的该报文头一。
在一个具体的实施方式中,SFF接收到报文三后,对报文三进行解析得到报文三所携带的第一标识,进而根据该第一标识以及该第一标识与报文头一的对应关系从本地查询确定报文头一。
在一个具体的实施方式中,报文三还包括第三标识,该第三标识为预设值。从而,SFF确定第三标识为预设值时,读取报文三中携带的第一标识。
S410、SFF将报文三的报文头三替换为该报文头一,得到报文四。
在一个具体的实施方式中,SFF确定报文头一后,SFF将报文三所携带的处理后的业务数据与查询得到的报文头一进行封装操作,进而得到报文四。
S411、SFF向下一跳发送该报文四。
本实施例中,SFF生成报文四后,根据报文头一目的地址确定下一跳,并向下一跳发送该报文四。
从以上技术方案可以看出,本申请实施例具有以下优点:
SFF在接收到上一跳发送的报文一后,将报文一的报文头一替换为SF可识别的报文头二,得到报文二,该报文二中携带与报文头一对应的第一标识。之后,SFF向SF发送该报文二,该报文二可以被SF所解析处理。在SFF在接收到SF对报文头二处理后得到的报文三时,该报文三同样携带该第一标识,从而SFF可以根据该第一标识查询得到预先保存的报文头一,生成报文四,再向下一跳转发。通过上述的方式,实现了SF对报文一的处理,同时避免了现有技术中因报文头一查询错误,带来的报文四封装错误的情况的发生。
下面具体参照图5,图5为本申请实施例提供的一种报文处理的方法的另一个实施例示意图,可以包括:
S501、SFF接收第一报文。
S502、SFF对第一报文进行解析操作,得到第一报文头。
S503、SFF确定第一报文头对应的第一标识。
S504、SFF生成第二报文头。
S505、SFF将第一报文的第一报文头替换为第二报文头,得到第二报文,该第二报文携带第一标识。
S506、SFF向SF发送第二报文。
需要说明的是,步骤S501-步骤S506与图4所示实施例中步骤S401-步骤S406类似,具体此处不再赘述。此外,第一报文对应于图4所示实施例中报文一,第一报文头对应于图4所示实施例中报文头一,第二报文对应于图4所示实施例中报文二,第二报文头对应于图4所示实施例中报文头二。
S507、SFF从SF接收第三报文,第三报文由SF根据第二报文头对第二报文处理后得到,第三报文携带第一标识。
在一个具体的实施方式中,SFF接收SF根据第二报文头对第二报文处理后得到的第三报文,其中,该第三报文携带有第一标识。
S508、SFF根据第一标识和第一报文头的映射关系,确定与第一标识对应的第一报文头。
S509、SFF将第三报文的第三报文头替换为第一报文头,得到第四报文。
S510、SFF向下一跳节点发送第四报文。
需要说明的是,步骤S508-步骤S510与图4所示实施例中步骤S409-步骤S411类似,具体此处不再赘述。此外,第三报文、第三报文头、第四报文分别与图4所示实施例中报文三、报文头三、报文四等同。
从以上技术方案可以看出,本申请实施例具有以下优点:
SFF在接收到上一跳发送的第一报文后,将第一报文的第一报文头替换为SF可识别的第二报文头,得到第二报文,该第二报文中携带与第一报文头对应的第一标识。之后,SFF向SF发送该第二报文,该第二报文可以被SF所解析处理。在SFF在接收到SF对第二报文头处理后得到的第三报文时,该第三报文同样携带该第一标识,从而SFF可以根据该第一标识查询得到预先保存的第一报文头,生成第四报文,再向下一跳转发。通过上述的方式,实现了SF对第一报文的处理,同时避免了现有技术中因第一报文头查询错误,带来的第四报文封装错误的情况的发生。
下面具体参照图6,图6为本申请实施例提供的一种报文处理的方法的另一个实施例示意图,可以包括:
S601、SF从SFF接收第一报文,第一报文携带第一标识。
在一个具体的实施方式中,SF从SFF接收第一报文,并将该第一报文保存在本地,该第一报文中携带有第一标识。
S602、SF对第一报文进行处理,得到第二报文,该第二报文携带第一标识。
S603、SF向SFF发送第二报文,该第一标识用于指示SFF根据第一标识查询得到预先保存的目标报文头。
需要说明的是,步骤S602-步骤S603与图4所示的实施例中步骤S407-步骤S408类似,此处不再赘述。其中,第一报文、第二报文及目标报文头分别对应于图4所示实施例中的报文二、报文三及第一报文头。
从以上技术方案可以看出,本申请实施例具有以下优点:
SF在接收SFF发送的第一报文,该第一报文携带有第一标识。SF对第一报文进行处理,得到第二报文,并同样在第二报文中也携带该第一标识。之后,SF向SFF发送该第二报文,从而使得SFF在获取到第二报文后,可以根据第二报文中携带的该第一标识,从本地查询得到预先保存的目标报文头,进而SFF完成之后的封装操作。通过上述方法,避免了SFF后续由于目标报文头查询错误而最终导致封装错误的情况的发生。
需要说明的是,本申请对报文头一,报文头二以及报文头三的报文头的类型不做具体限制,只要SFF设备能够将SF不能识别的报文头转换为SF能够识别的报文头的类型即可。本申请实施例中列举的具体的报文头一,报文头二以及报文头三的类型仅是举例说明,不应理解为对本申请的限制。
下面具体参照图7,图7为本申请实施例提供的业务功能转发设备700的一个实施例示意图,可以包括:
收发单元S701,用于接收第一报文;
处理单元S702,用于将该第一报文的第一报文头替换为第二报文头,得到第二报文,该第二报文携带第一标识;
收发单元S701,还用于向业务功能设备SF发送该第二报文;从该SF接收第三报文,该第三报文由该SF根据该第二报文头对该第二报文处理后得到,该第三报文携带该第一标识;
处理单元S702,还用于根据该第一标识和该第一报文头的映射关系,确定与该第一标识对应的该第一报文头;将该第三报文的第三报文头替换为该第一报文头,得到第四报文;
收发单元S701,还用于向下一跳节点发送该第四报文。
在一个具体的实施方式中,该第一报文头为段路由SR报文头。
在一个具体的实施方式中,该第一报文头为该SF无法解析的报文头。
在一个具体的实施方式中,
处理单元S702,还用于若本地存在该第一报文头,则根据预置的该第一报文头和该第一标识的映射关系,确定该第一标识;若本地不存在该第一报文头,则为该第一报文头分配该第一标识,并保存该第一标识和该第一报文头的映射关系。
在一个具体的实施方式中,
该第二报文中还携带第二标识,该第二标识用于指示该第二报文携带该第一标识,并在该第三报文中携带该第一标识。
在一个具体的实施方式中,
该第三报文还携带第三标识;
处理单元S702,还用于该第三标识的指示,获取该第一标识。
下面具体参照图8,图8为本申请实施例提供的业务功能设备800的一个实施例示意图,可以包括:
收发单元S801,用于从业务功能转发设备SFF接收第一报文,该第一报文携带第一标识;
处理单元S802,用于根据该第一报文的报文头对该第一报文进行处理,得到第二报文;
该收发单元,还用于向该SFF发送该第二报文,该第二报文携带该第一标识,该第一标识用于指示该SFF根据该第一标识查询得到预先保存的目标报文头。
在一个具体的实施方式中,该目标报文头为段路由SR报文头。
在一个具体的实施方式中,
该第一报文还包括第二标识;
收发单元S801,还用于根据该第二标识的指示,获取该第一标识,并在该第三报文中携带该第一标识。
在一个具体的实施方式中,
收发单元S801,还用于在该第三报文中携带第三标识,该第三标识用于指示该第一报文携带该第一标识。
下面具体参照图9,图9为本申请实施例提供的业务功能转发设备900的一个实施例示意图,可以包括:
处理器S901、存储器S902和收发器S903,处理器S901、收发器S903与存储器S902相连;
收发器S903,用于接收第一报文,并保存在存储器S902中;
处理器S901,用于从存储器S902中读取该第一报文,将该第一报文的第一报文头替换为第二报文头,得到第二报文,该第二报文携带第一标识;
收发器S903,还用于从存储器S902中获取该第二报文,并向业务功能设备SF发送该第二报文;从该SF接收第三报文,并保存在存储器S902中,该第三报文由该SF根据该第二报文头对该第二报文处理后得到,该第三报文携带该第一标识;
处理器S901,还用于从存储器S902中读取该第一标识,并根据该第一标识和该第一报文头的映射关系,确定在存储器S902中与该第一标识对应的该第一报文头;从存储器S902中读取该第三报文,并将该第三报文的第三报文头替换为该第一报文头,得到第四报文;
收发器S903,还用于从存储器S902中获取该第四报文,并向下一跳节点发送该第四报文。
在一个具体的实施方式中,
该第一报文头为SR报文头。
在一个具体的实施方式中,
该第一报文头为该SF无法解析的报文头。
在一个具体的实施方式中,
处理器S901,还用于若本地存在第一报文头,并根据预置的该第一报文头和该第一标识的映射关系,确定该第一标识;若本地不存在第一报文头,则为该第一报文头分配该第一标识,并保存该第一标识和该第一报文头的映射关系。
在一个具体的实施方式中,
该第二报文中还携带第二标识,该第二标识用于指示该第二报文携带该第一标识,并在该第三报文中携带该第一标识。
该第一报文头为该SF无法解析的报文头。
该第三报文还携带第三标识,处理器S901,还用于根据该第三标识的指示,从存储器S902中获取该第一标识。
下面具体参照图10,图10为本申请实施例提供的业务功能设备1000的一个实施例示意图,可以包括:
处理器S1001、存储器S1002和收发器S1003,处理器S1001、收发器S1003与存储器S1002相连;
收发器S1003,用于从业务功能转发设备SFF接收第一报文,并保存在存储器S1002中,该第一报文携带第一标识;
处理器S1001,用于从存储器S1002中读取该第一报文,并对该第一报文进行处理,得到第二报文;
收发器S1003,还用于从存储器S1002中获取该第二报文,并向该SFF发送该第二报文,该第二报文携带该第一标识,该第一标识用于指示该SFF根据该第一标识查询得到预先保存的目标报文头。
在一个具体的实施方式中,
该目标报文头为段路由SR报文头。
在一个具体的实施方式中,
该第一报文还包括第二标识,处理器S1001,还用于从存储器S1002中读取该第二标识,根据该第二标识的指示,获取该第一标识,并在该第三报文中携带该第一标识。
在一个具体的实施方式中,
处理器S1001,还用于在该第三报文中携带第三标识,该第三标识用于指示该第三报文携带该第一标识。
本申请实施例还提供了一种报文处理的系统,可以包括:
业务功能转发设备和业务功能设备,其中:
所述业务功能转发设备包括如图4或图5所示实施例中任一步骤所述的业务功能转发设备;
所述业务功能设备包括如图4或图6所示实施例中任一步骤所述的业务功能设备。
本申请实施例还提供了一种计算机存储介质,包括指令,当其在计算机上运行时,使得计算机执行如图4、图5和/或图6中任一具体实施例所述的方法。
本申请实施例还提供了一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行如图4、图5和/或图6中任一具体实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (25)

1.一种处理报文的方法,其特征在于,包括:
业务功能转发设备SFF接收第一报文;
所述SFF将所述第一报文的第一报文头替换为第二报文头,得到第二报文,所述第二报文携带第一标识;
所述SFF向业务功能设备SF发送所述第二报文;
所述SFF从所述SF接收第三报文,所述第三报文由所述SF根据所述第二报文头对所述第二报文处理后得到,所述第三报文携带所述第一标识;
所述SFF根据所述第一标识和所述第一报文头的映射关系,确定与所述第一标识对应的所述第一报文头;
所述SFF将所述第三报文的第三报文头替换为所述第一报文头,得到第四报文;
所述SFF向下一跳节点发送所述第四报文。
2.根据权利要求1所述的方法,其特征在于,所述第一报文头为段路由SR报文头。
3.根据权利要求1或2所述的方法,其特征在于,所述第一报文头为所述SF无法解析的报文头。
4.根据权利要求1-3中任一项所述的方法,其特征在于,在所述SFF将所述第一报文的第一报文头替换为第二报文头之前,所述方法还包括:
若本地存在第一报文头,则所述SFF根据预置的所述第一报文头和所述第一标识的映射关系,确定所述第一标识;
若本地不存在第一报文头,则所述SFF为所述第一报文头分配所述第一标识,并保存所述第一标识和所述第一报文头的映射关系。
5.根据权利要求1-4中任一项所述的方法,其特征在于,
所述第二报文中还携带第二标识,所述第二标识用于指示所述第二报文携带所述第一标识,并在所述第三报文中携带所述第一标识。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述第三报文还携带第三标识,所述方法还包括:
所述SFF根据所述第三标识的指示,获取所述第一标识。
7.一种处理报文的方法,其特征在于,包括:
业务功能设备SF从业务功能转发设备SFF接收第一报文,所述第一报文携带第一标识;
所述SF对所述第一报文进行处理,得到第二报文;
所述SF向所述SFF发送所述第二报文,所述第二报文携带所述第一标识,所述第一标识用于指示所述SFF根据所述第一标识查询得到预先保存的目标报文头。
8.根据权利要求7所述的方法,其特征在于,所述目标报文头为段路由SR报文头。
9.根据权利要求7或8所述的方法,其特征在于,所述第一报文还包括第二标识,所述SF向所述SFF发送所述第三报文之前,所述方法还包括:
所述SF根据所述第二标识的指示,获取所述第一标识,并在所述第三报文中携带所述第一标识。
10.根据权利要求7-9中任一项所述的方法,其特征在于,所述方法还包括:
所述SF在所述第三报文中携带第三标识,所述第三标识用于指示所述第三报文携带所述第一标识。
11.一种业务功能转发设备,其特征在于,包括:
收发单元,用于接收第一报文;
处理单元,用于将所述第一报文的第一报文头替换为第二报文头,得到第二报文,所述第二报文携带第一标识;
所述收发单元,还用于向业务功能设备SF发送所述第二报文;从所述SF接收第三报文,所述第三报文由所述SF根据所述第二报文头对所述第二报文处理后得到,所述第三报文携带所述第一标识;
所述处理单元,还用于根据所述第一标识和所述第一报文头的映射关系,确定与所述第一标识对应的所述第一报文头;将所述第三报文的第三报文头替换为所述第一报文头,得到第四报文;
所述收发单元,还用于向下一跳节点发送所述第四报文。
12.根据权利要求11所述的业务功能转发设备,其特征在于,所述第一报文头为段路由SR报文头。
13.根据权利要求11或12所述的业务功能转发设备,其特征在于,所述第一报文头为所述SF无法解析的报文头。
14.根据权利要求11-13中任一项所述的业务功能转发设备,其特征在于,
所述处理单元,还用于若本地存在所述第一报文头,则根据预置的所述第一报文头和所述第一标识的映射关系,确定所述第一标识;若本地不存在所述第一报文头,则为所述第一报文头分配所述第一标识,并保存所述第一标识和所述第一报文头的映射关系。
15.根据权利要求11-14中任一项所述的业务功能转发设备,其特征在于,所述第二报文中还携带第二标识,所述第二标识用于指示所述第二报文携带所述第一标识,并在所述第三报文中携带所述第一标识。
16.根据权利要求11-15中任一项所述的业务功能转发设备,其特征在于,
所述第三报文还携带第三标识;
所述处理单元,还用于所述第三标识的指示,获取所述第一标识。
17.一种业务功能设备,其特征在于,包括:
收发单元,用于从业务功能转发设备SFF接收第一报文,所述第一报文携带第一标识;
处理单元,用于根据所述第一报文的报文头对所述第一报文进行处理,得到第二报文;
所述收发单元,还用于向所述SFF发送所述第二报文,所述第二报文携带所述第一标识,所述第一标识用于指示所述SFF根据所述第一标识查询得到预先保存的目标报文头。
18.根据权利要求17所述的业务功能设备,其特征在于,所述目标报文头为段路由SR报文头。
19.根据权利要求17或18所述的业务功能设备,其特征在于,
所述第一报文还包括第二标识;
所述收发单元,还用于根据所述第二标识的指示,获取所述第一标识,并在所述第三报文中携带所述第一标识。
20.根据权利要求17-19中任一项所述的业务功能设备,其特征在于,
所述收发单元,还用于在所述第三报文中携带第三标识,所述第三标识用于指示所述第一报文携带所述第一标识。
21.一种业务功能转发设备,其特征在于,包括:
处理器、存储器和收发器,所述处理器以及所述收发器与所述存储器相连;
所述处理器用于执行所述存储器中存储的指令,使得所述业务功能转发设备执行权利要求1-6任一项所述的方法。
22.一种业务功能设备,其特征在于,包括:
处理器、存储器和收发器,所述处理器以及所述收发器与所述存储器相连;
所述处理器用于执行所述存储器中存储的指令,使得所述业务功能设备执行权利要求7-10任一项所述的方法。
23.一种报文处理的系统,其特征在于,包括:权利要求11-16、21中任一项所述的业务功能转发设备以及权利要求17-20、22中任一项所述的业务功能设备。
24.一种计算机存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-6中任一项,或者,权利要求7-10中任一项所述的方法。
25.一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-6中任一项,或者,权利要求7-10中任一项所述的方法。
CN201910441426.3A 2019-05-24 2019-05-24 一种处理报文的方法 Active CN111988266B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910441426.3A CN111988266B (zh) 2019-05-24 2019-05-24 一种处理报文的方法
PCT/CN2020/091935 WO2020238809A1 (zh) 2019-05-24 2020-05-22 一种处理报文的方法
EP20813177.1A EP3955541B1 (en) 2019-05-24 2020-05-22 Message processing method
US17/533,216 US20220109745A1 (en) 2019-05-24 2021-11-23 Packet processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910441426.3A CN111988266B (zh) 2019-05-24 2019-05-24 一种处理报文的方法

Publications (2)

Publication Number Publication Date
CN111988266A true CN111988266A (zh) 2020-11-24
CN111988266B CN111988266B (zh) 2022-05-17

Family

ID=73437123

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910441426.3A Active CN111988266B (zh) 2019-05-24 2019-05-24 一种处理报文的方法

Country Status (4)

Country Link
US (1) US20220109745A1 (zh)
EP (1) EP3955541B1 (zh)
CN (1) CN111988266B (zh)
WO (1) WO2020238809A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014485A (zh) * 2021-02-25 2021-06-22 烽火通信科技股份有限公司 一种基于SRv6-TE路径的报文转发方法和报文转发装置
CN115426305A (zh) * 2021-05-31 2022-12-02 华为技术有限公司 报文处理方法、装置及系统
WO2023208056A1 (zh) * 2022-04-29 2023-11-02 华为技术有限公司 处理报文的方法、装置以及系统
US20240291755A1 (en) * 2022-11-29 2024-08-29 Ciena Corporation Distinguishing SRv6 micro-SID destination address from IPv6 destination address

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11520615B1 (en) 2020-03-31 2022-12-06 Equinix, Inc. Virtual network function virtual domain isolation
US11706121B2 (en) 2021-09-20 2023-07-18 Juniper Networks, Inc. Segment identifiers that support end-to-end segment routing with color extended community and border gateway protocol virtual private network option b
US12095642B2 (en) * 2022-07-25 2024-09-17 Hewlett Packard Enterprise Development Lp Remote reachability checks in a distributed tunnel fabric

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104579973A (zh) * 2014-12-24 2015-04-29 北京华为数字技术有限公司 一种虚拟集群中的报文转发方法和装置
CN105743822A (zh) * 2014-12-11 2016-07-06 华为技术有限公司 一种处理报文的方法及装置
WO2016165492A1 (zh) * 2015-07-02 2016-10-20 中兴通讯股份有限公司 一种实现业务功能链的方法和装置
CN107911258A (zh) * 2017-12-29 2018-04-13 深信服科技股份有限公司 一种基于sdn网络的安全资源池的实现方法及系统
US20180152374A1 (en) * 2016-11-30 2018-05-31 Futurewei Technologies, Inc. Service Function Chaining and Overlay Transport Loop Prevention
CN108173694A (zh) * 2017-12-29 2018-06-15 深信服科技股份有限公司 一种数据中心的安全资源池接入方法及系统
CN108199958A (zh) * 2017-12-29 2018-06-22 深信服科技股份有限公司 一种通用的安全资源池服务链实现方法及系统
EP3355519A1 (en) * 2017-01-30 2018-08-01 Thomson Licensing Method for managing services chaining at a network equipment, corresponding network equipment
CN108702331A (zh) * 2016-02-22 2018-10-23 思科技术公司 Sr应用段与服务功能链(sfc)报头元数据的集成
CN109756521A (zh) * 2019-03-21 2019-05-14 山东浪潮云信息技术有限公司 一种nsh报文处理方法、装置及系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7457233B1 (en) * 1999-07-15 2008-11-25 Juniper Networks, Inc. Method and apparatus for fast reroute in a connection-oriented network
US9755960B2 (en) * 2013-09-30 2017-09-05 Juniper Networks, Inc. Session-aware service chaining within computer networks
PL3139549T3 (pl) * 2014-05-30 2021-08-23 Huawei Technologies Co. Ltd. Sposób edytowania pakietu i powiązane urządzenie
US9749229B2 (en) * 2015-07-01 2017-08-29 Cisco Technology, Inc. Forwarding packets with encapsulated service chain headers
CN106341298B (zh) * 2015-07-06 2019-03-22 中兴通讯股份有限公司 报文发送方法及装置
US9912788B2 (en) * 2015-11-10 2018-03-06 Telefonaktiebolaget L M Ericsson (Publ) Systems and methods of an enhanced state-aware proxy device
US10645465B2 (en) * 2015-12-21 2020-05-05 Centurylink Intellectual Property Llc Video file universal identifier for metadata resolution
US10158568B2 (en) * 2016-02-12 2018-12-18 Huawei Technologies Co., Ltd. Method and apparatus for service function forwarding in a service domain
CN107579838A (zh) * 2016-07-05 2018-01-12 中兴通讯股份有限公司 数据处理方法及装置
US10506083B2 (en) * 2017-06-27 2019-12-10 Cisco Technology, Inc. Segment routing gateway storing segment routing encapsulating header used in encapsulating and forwarding of returned native packet
CN109728962B (zh) * 2017-10-27 2021-12-21 华为技术有限公司 一种发送报文的方法和设备
US11019075B2 (en) * 2018-06-26 2021-05-25 Cisco Technology, Inc. Providing processing and network efficiencies in protecting internet protocol version 6 segment routing packets and functions using security segment identifiers
US11012353B2 (en) * 2018-11-02 2021-05-18 Cisco Technology, Inc. Using in-band operations data to signal packet processing departures in a network
CN111857945B (zh) * 2019-04-30 2025-04-29 中兴通讯股份有限公司 数据包传输、管理方法、装置及数据转发设备、存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105743822A (zh) * 2014-12-11 2016-07-06 华为技术有限公司 一种处理报文的方法及装置
CN104579973A (zh) * 2014-12-24 2015-04-29 北京华为数字技术有限公司 一种虚拟集群中的报文转发方法和装置
WO2016165492A1 (zh) * 2015-07-02 2016-10-20 中兴通讯股份有限公司 一种实现业务功能链的方法和装置
CN108702331A (zh) * 2016-02-22 2018-10-23 思科技术公司 Sr应用段与服务功能链(sfc)报头元数据的集成
US20180152374A1 (en) * 2016-11-30 2018-05-31 Futurewei Technologies, Inc. Service Function Chaining and Overlay Transport Loop Prevention
EP3355519A1 (en) * 2017-01-30 2018-08-01 Thomson Licensing Method for managing services chaining at a network equipment, corresponding network equipment
CN107911258A (zh) * 2017-12-29 2018-04-13 深信服科技股份有限公司 一种基于sdn网络的安全资源池的实现方法及系统
CN108173694A (zh) * 2017-12-29 2018-06-15 深信服科技股份有限公司 一种数据中心的安全资源池接入方法及系统
CN108199958A (zh) * 2017-12-29 2018-06-22 深信服科技股份有限公司 一种通用的安全资源池服务链实现方法及系统
CN109756521A (zh) * 2019-03-21 2019-05-14 山东浪潮云信息技术有限公司 一种nsh报文处理方法、装置及系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014485A (zh) * 2021-02-25 2021-06-22 烽火通信科技股份有限公司 一种基于SRv6-TE路径的报文转发方法和报文转发装置
CN115426305A (zh) * 2021-05-31 2022-12-02 华为技术有限公司 报文处理方法、装置及系统
WO2022252569A1 (zh) * 2021-05-31 2022-12-08 华为技术有限公司 报文处理方法、装置及系统
CN115426305B (zh) * 2021-05-31 2024-06-11 华为技术有限公司 报文处理方法、装置、系统及存储介质
WO2023208056A1 (zh) * 2022-04-29 2023-11-02 华为技术有限公司 处理报文的方法、装置以及系统
US20240291755A1 (en) * 2022-11-29 2024-08-29 Ciena Corporation Distinguishing SRv6 micro-SID destination address from IPv6 destination address
US12177121B2 (en) * 2022-11-29 2024-12-24 Ciena Corporation Distinguishing SRv6 micro-SID destination address from IPv6 destination address

Also Published As

Publication number Publication date
WO2020238809A1 (zh) 2020-12-03
EP3955541B1 (en) 2023-06-21
US20220109745A1 (en) 2022-04-07
CN111988266B (zh) 2022-05-17
EP3955541A1 (en) 2022-02-16
EP3955541A4 (en) 2022-05-18

Similar Documents

Publication Publication Date Title
CN111988266B (zh) 一种处理报文的方法
US12309064B2 (en) Method for forwarding packet in SRv6 service function chain, SFF, and SF device
US11979322B2 (en) Method and apparatus for providing service for traffic flow
US10516610B2 (en) Segment routing packet policies and functions providing processing signaling and packet forwarding efficiencies in a network
US10506083B2 (en) Segment routing gateway storing segment routing encapsulating header used in encapsulating and forwarding of returned native packet
CN113300949B (zh) 转发报文的方法、发布路由信息的方法、装置及系统
US10924399B2 (en) Segment routing packet policies and functions including an engineered reverse reply path providing efficiencies in communicating packets in a network
US10594513B2 (en) Packet communications providing packet forwarding efficiencies in a network including using a segment routing and tunnel exchange
JP7140910B2 (ja) 通信方法、デバイス、及びシステム
EP3742683B1 (en) Method and device for processing packet by using unified sr label stack
EP3780517B1 (en) Method and apparatus for processing multicast data packet
US20190215267A1 (en) Segment Routing Network Processing of Packets including Packets having a Segment Identifier Structure Providing Processing and/or Memory Efficiencies
WO2022184169A1 (zh) 报文转发方法、系统、存储介质及电子装置
CN113556284A (zh) 数据包处理的方法及设备
US11811654B2 (en) Packet processing method and apparatus
US20240106748A1 (en) Packet processing method, apparatus, and system
US20210119911A1 (en) Message sending and receiving method, apparatus, and system
US10749710B2 (en) Service offload or bypass initiated by a service function forwarder in a service function chaining network
US20240275722A1 (en) Packet forwarding method and apparatus, device, and storage medium
US11082540B2 (en) Network operations including protocol processing of a packet updating an operations data field of a different protocol
WO2022033449A1 (zh) 发送组播报文的方法、获取转发表项的方法及装置
US20250193296A1 (en) QUIC Packet Transmission Method and Related Device
WO2023078144A1 (zh) 报文处理方法、装置及系统
CN119728538A (zh) 一种路由通告、报文传输方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant