CN117354221A - 报文转发处理方法及相关装置 - Google Patents

报文转发处理方法及相关装置 Download PDF

Info

Publication number
CN117354221A
CN117354221A CN202210860789.2A CN202210860789A CN117354221A CN 117354221 A CN117354221 A CN 117354221A CN 202210860789 A CN202210860789 A CN 202210860789A CN 117354221 A CN117354221 A CN 117354221A
Authority
CN
China
Prior art keywords
sid
segment
message
segment list
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.)
Pending
Application number
CN202210860789.2A
Other languages
English (en)
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
Publication of CN117354221A publication Critical patent/CN117354221A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing

Landscapes

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

Abstract

本申请实施例提供了一种报文转发处理方法及相关装置。该方法通过段路由策略候选路径的尾节点,来判断接收到的报文的段列表中该尾节点对应的压缩SID的下一个位置的内容是否为零。若为零,则将该段列表中该压缩SID的下一个SID更新到该报文的IP目的地址字段中。若不为零,则将该下一个位置中的SID更新到该报文的IP目的地址字段中压缩SID字段中。或者,该方法通过段路由策略候选路径的头节点,将业务SID的功能标识进行压缩编码后封装到报文中进行发送。本申请实施例扩展了IP报文的头压缩技术的应用场景。

Description

报文转发处理方法及相关装置
技术领域
本申请涉及通信技术领域,尤其涉及一种报文转发处理方法及相关装置。
背景技术
基于IPv6数据平面的段路由(segment routing IPv6,SRv6)是基于源路由理念而设计的在网络上转发IPv6数据包的一种协议。SRv6通过在IPv6报文中插入一个段路由扩展头(segment routing header,SRH),在SRH中压入一个显式的IPv6地址栈,通过中间节点不断的进行更新目的地址和偏移地址栈的操作来完成逐跳转发。具体的,可以在SRH中压入一个段列表(segment list),通过段列表中的段标识(segment identifier,SID)来实现报文的转发。但是,当段列表中的SID数量增多时,SRH扩展报文头的长度将进一步增加。由此可能带来有效负载下降和传输效率低的问题。为了解决该问题,提出了SRv6头压缩技术。该头压缩技术可以是兼容SRv6现有机制的通用SRv6(generalized-segment routing overIPv6 data plane,G-SRv6)技术。该G-SRv6头压缩技术的核心思想是消除冗余,其将多个SID的公共前缀(例如包括网段地址)提取出来单独作为一部分,段列表中只保留SID中不同的部分(例如可以包括节点ID和/或功能标识等),以此通过删除冗余的信息来实现压缩。该保留在段列表中的不同的部分称为压缩段标识(compressed SID),C-SID。
G-SRv6头压缩技术中引入了继续压缩(continuation of compression,COC)特征(Flavor)。当节点处理有COC Flavor的压缩SID时,表明段列表中该压缩SID的下一个SID也是压缩ID,需要将该下一个SID更新到目的地址字段。即该COC Flavor指示了一个执行动作。但是按照当前G-SRv6的定义,段路由策略中段列表的最后一个SID不能设置COC Flavor标记,这就使得G-SRv6的应用场景受限。
发明内容
本申请实施例公开了一种报文转发处理方法及相关装置,能够拓宽报文头压缩技术(例如G-SRv6头压缩技术)的应用场景,使得该技术可以在更多应用场景下充分发挥其报文头开销低,负载传输效率高的优势。
第一方面,本申请提供一种报文转发处理方法,该方法包括:
第一网络设备接收第一报文,前述第一报文包括段列表字段和IP目的地址字段,前述IP目的地址字段包括公共前缀字段和压缩段标识C-SID字段,前述公共前缀字段用于承载一个或多个段标识SID的公共前缀部分,前述C-SID字段用于承载第一C-SID,前述段列表字段至少用于承载一个或多个C-SID,和,第一SID,前述一个或多个C-SID包括前述第一C-SID;前述第一SID是前述段列表字段中前述第一C-SID的下一个SID;
在前述段列表字段中前述第一C-SID的下一个位置的内容为零的情况下,前述第一网络设备将前述第一SID更新到前述IP目的地址字段中,并基于更新后的IP目的地址字段中的内容进行处理获得第二报文;该下一个位置占用的字节长度与该段列表字段中一个C-SID占用的字节长度相同;
前述第一网络设备发送前述第二报文。
现有G-SRv6头压缩技术中,上述第一网络设备需要先判断上述第一C-SID是否为设置有COC Flavor标记的SID;若设置有,则将报文段列表中该第一C-SID的下一个C-SID更新到报文的IP目的地址字段中的C-SID字段中;若没设置有,表明报文段列表中该第一C-SID的下一个SID不是压缩SID,则将该下一个SID更新到报文的IP目的地址字段中。而现有标准中,段路由策略中转发路径的段列表的最后一个SID(即指示该转发路径的尾节点的SID)不能设置COC Flavor标记。报文中的段列表是基于该转发路径的段列表封装的,因此封装到报文段列表中的指示该转发路径尾节点的SID(若是进行了压缩封装,则是C-SID)也是没设置有COC Flavor标记。而在具体实现中,还需要将该转发路径的尾节点发布的业务SID封装到报文的段列表中。具体的,该业务SID被封装到该段列表中指示转发路径尾节点的SID的下一个SID的位置中,以用于指示该尾节点对执行对应的报文解封装和查表操作。但由于现有的规定,该指示转发路径尾节点的SID不能设置COC Flavor标记,则业务SID只能完整地封装到报文的段列表中,无法进行压缩封装。即现有的G-SRv6头压缩技术的定义限制了该G-SRv6头压缩技术的应用场景。
而本申请中,可以基于上述下一个位置的内容是否为零的判断结果来执行对应的操作,例如上述基于上述下一个位置的内容为零的判断结果来将上述第一SID更新到报文的IP目的地址字段中。无需考虑上述第一C-SID是否设置有COC Flavor标记,从而扩展压缩技术的应用场景。
第二方面,本申请提供一种报文转发处理方法,该方法包括:
第一网络设备接收第一报文,前述第一报文包括段列表字段和IP目的地址字段,前述IP目的地址字段包括公共前缀字段和压缩段标识C-SID字段,前述公共前缀字段用于承载一个或多个段标识SID的公共前缀部分,前述C-SID字段用于承载第一C-SID,前述段列表字段至少用于承载多个C-SID,前述多个C-SID包括前述第一C-SID和第二C-SID,前述第二C-SID是前述段列表字段中前述第一C-SID的下一个C-SID;
在前述段列表字段中前述第一C-SID的下一个位置的内容非零的情况下,前述第一网络设备将前述第二C-SID更新到前述IP目的地址字段的前述C-SID字段中,并基于更新后的IP目的地址字段中的内容进行处理获得第二报文;该下一个位置占用的字节长度与该段列表字段中一个C-SID占用的字节长度相同;
前述第一网络设备发送前述第二报文。
同理,相比于现有方案的实现,本申请中,可以基于上述下一个位置的内容是否为零的判断结果来执行对应的操作,例如上述基于上述下一个位置的内容非零的判断结果来将上述第二C-SID更新到报文IP目的地址字段C-SID字段中。即本申请实施例中,封装到报文段列表中的业务SID可以是压缩后的SID,进一步减少了报文头的开销。本申请无需考虑上述第一C-SID是否设置有COC Flavor标记,只要业务SID可以压缩,则将该业务SID压缩封装到报文段列表中,从而扩展压缩技术的应用场景。
在第一方面或第二方面的一种可能的实施方式中,上述段列表字段中前述第一C-SID是非替换特征SID。
本申请可以应用于段列表中的指示转发路径尾节点的段标识没设置有COCFlavor标记的场景中。
在第一方面或第二方面的一种可能的实施方式中,上述段列表字段中前述第一C-SID是替换特征SID。
本申请可以应用于段列表中的指示转发路径尾节点的段标识设置有COC Flavor标记的场景中。
在第一方面或第二方面的一种可能的实施方式中,上述一个或多个SID的公共前缀部分包括前述一个或多个SID的公共的网段。
在第一方面或第二方面的一种可能的实施方式中,上述一个或多个C-SID中的每一个C-SID包括对应的SID的节点标识和/或功能标识。
在第一方面或第二方面的一种可能的实施方式中,上述段列表字段在SRH或G-SRH中。
在第一方面或第二方面的一种可能的实施方式中,上述IP目的地址字段在IPv4报文头或IPv6报文头中。
本申请可以应用于IPv6网络或IPv4网络中。
在第一方面或第二方面的一种可能的实施方式中,上述第一网络设备为候选路径的尾节点,前述候选路径为与前述段列表字段中的前述一个或多个C-SID对应的路径。
在第一方面或第二方面的一种可能的实施方式中,上述第一网络设备为候选路径的尾节点,前述候选路径为与前述段列表字段中除前述第二C-SID之外的前述一个或多个C-SID对应的路径。
上述提供的报文转发处理方法中,段路由策略中候选路径的尾节点对应的SID(例如上述第一C-SID)可以是替换特征SID(配置有继续压缩COC特征标记的SID),或者可以是非替换特征SID。不管是哪种SID,该尾节点都可以基于上述下一个位置的内容是否为零的判断来执行对应的操作。进而兼容报文的段列表中尾节点对应的SID的下一个SID(例如为业务SID)为可压缩和不可压缩两种不同的情况下,通过报文头压缩技术(例如G-SRv6头压缩技术)压缩报文头的应用场景。避免了需要对该业务SID可压缩和不可压缩这两种不同的应用场景下各自配置段路由策略的问题。即拓宽头压缩技术的应用场景,使得该技术可以在更多应用场景下充分发挥其报文头开销低,负载传输效率高的优势。
第三方面,本申请提供一种报文转发处理方法,该方法包括:
第二网络设备向第三网络设备发送段路由策略,前述段路由策略包括指示转发路径的段列表,前述段列表中包括一个或多个段标识SID,前述一个或多个SID包括第一SID,前述第一SID指示前述转发路径的尾节点,前述第一SID为替换特征SID。
本申请中,控制器下发的段路由策略的转发路径的段列表中,最后一个SID(即上述指示该转发路径的尾节点的SID)可以是替换特征SID。这种实现下也可以采用报文头压缩技术来封装报文以减少报文头的开销,拓宽头压缩技术的应用场景,使得该技术可以在更多应用场景下充分发挥其报文头开销低,负载传输效率高的优势。
第四方面,本申请提供一种报文转发处理方法,该方法包括:
第三网络设备接收来自第二网络设备的段路由策略,前述段路由策略包括指示转发路径的段列表,前述段列表中包括一个或多个段标识SID,前述一个或多个SID包括第一SID,前述第一SID指示前述转发路径的尾节点,前述第一SID为替换特征SID,前述段路由策略用于指示前述第三网络设备发送第一报文时,将分别与前述段列表中一个或多个SID对应的压缩段标识C-SID封装在前述第一报文的报文头中的段列表字段中;
前述第三网络设备将分别与前述段列表中一个或多个SID对应的C-SID封装在前述第一报文的报文头中的段列表字段中;
前述第三网络设备发送前述第一报文。
在第三方面或第四方面的一种可能的实施方式中,上述段列表字段在SRH或G-SRH中。
在第三方面或第四方面的一种可能的实施方式中,上述第二网络设备是控制器,前述第三网络设备为前述转发路径的头节点。
上述第四方面提供的报文转发处理方法中,控制器下发的段路由策略的转发路径的段列表中,最后一个SID(即上述指示该转发路径的尾节点的SID)可以是替换特征SID。这种也可以采用报文头压缩技术来封装报文以减少报文头的开销,拓宽头压缩技术的应用场景,使得该技术可以在更多应用场景下充分发挥其报文头开销低,负载传输效率高的优势。
第五方面,本申请提供一种报文转发处理方法,该方法包括:
第四网络设备接收第一报文;
前述第四网络设备确定与前述第一报文对应的转发路径的段列表和业务段标识SID,前述段列表中包括一个或多个SID,前述段列表中还包括与前述转发路径的尾节点对应的SID的可变部分;
前述第四网络设备封装第一报文,获得第二报文,前述第二报文中包括前述一个或多个SID对应的压缩段标识C-SID,和,前述业务SID的可变部分;
前述第四网络设备发送前述第二报文。
本申请中,上述第四网络设备中段路由策略的段列表中包括与该段列表指示的转发路径的尾节点对应的SID的可变部分,该可变部分可以用于指示该转发路径的头节点(上述第四网络设备)执行对应的报文封装操作。即指示该头节点在封装报文时将对应业务SID(该转发路径的尾节点发布的业务SID)的可变部分封装到报文中。后续尾节点接收到报文后,可以基于该报文中的业务SID的可变部分执行对应的报文解封装和查表操作。由此,实现了将业务SID压缩封装到报文中。相比于上述描述的现有G-SRv6头压缩技术,本申请无需考虑段列表中指示转发路径尾节点的段标识是否设置有COC Flavor标记,均可将该业务SID压缩封装到报文段列表中,从而扩展压缩技术的应用场景。
一种可能的实施方式中,上述与前述尾节点对应的SID的可变部分为与前述尾节点对应的SID中的功能标识,前述业务SID的可变部分为前述业务SID中的功能标识。
本申请中,上述可变部分为该SID的功能标识,则头节点在将该段列表压缩编码(可以基于G-SRv6头压缩技术进行压缩编码)封装到报文中时,原本用于封装该可变部分的位置被用于封装该尾节点发布的业务SID的功能标识。这相当于将该业务SID压缩封装到了该报文中。无需考虑段列表中指示转发路径尾节点的段标识是否设置有COC Flavor标记,即可实现业务SID在报文中的压缩封装,减少了报文的开销,也扩展了头压缩技术的应用场景。
一种可能的实施方式中,上述一个或多个SID中包括与前述尾节点对应的SID的上一跳SID,前述上一跳SID为指示出接口的SID。
在本申请中,由于上述上一跳SID为指示出接口的SID,则封装到报文中的上述SID的可变部分可以是上述与前述尾节点对应的SID中的功能标识,可以无需封装指示该尾节点的节点标识,可以进一步节省报文头开销。
一种可能的实施方式中,上述与前述尾节点对应的SID的可变部分为与前述尾节点对应的SID中的节点标识和功能标识,前述业务SID的可变部分为前述业务SID中的功能标识,前述第二报文中还包括与前述尾节点对应的SID中的节点标识。
在本申请中,上述可变部分为指示尾节点的SID的功能标识加节点标识,则头节点在将该段列表压缩编码(可以基于G-SRv6头压缩技术进行压缩编码)封装到报文中时,原本用于封装该可变部分的功能标识的位置被用于封装该尾节点发布的业务SID的功能标识。这相当于将该业务SID压缩封装到了该报文中。无需考虑段列表中指示转发路径尾节点的段标识是否设置有COC Flavor标记,即可实现业务SID在报文中的压缩封装,减少了报文的开销,也扩展了头压缩技术的应用场景。
第六方面,本申请提供一种报文转发处理方法,该方法包括:
第四网络设备接收第一报文;
前述第四网络设备确定与前述第一报文对应的转发路径的段列表和业务段标识SID,前述段列表中包括一个或多个SID,前述段列表中还包括与前述转发路径的尾节点对应的SID的可变部分;
前述第四网络设备封装第一报文,获得第二报文,前述第二报文中包括前述一个或多个SID对应的压缩段标识C-SID、前述可变部分和前述业务SID;
前述第四网络设备发送前述第二报文。
本申请中,上述第四网络设备中段路由策略的段列表中包括与该段列表指示的转发路径的尾节点对应的SID的可变部分,该可变部分可以用于指示该转发路径的头节点(上述第四网络设备)执行对应的报文封装操作。即指示该头节点在封装报文时将对应业务SID(该转发路径的尾节点发布的业务SID)的可变部分封装到报文中。若该业务SID不可压缩,则可以将该业务SID完整封装到报文中,从而扩展了头压缩技术的应用场景。
一种可能的实施方式中,上述第二报文为IPv4报文或为IPv6报文。
一种可能的实施方式中,上述第四网络设备接收第一报文之前,还包括:前述第四网络设备接收来自第五网络设备的段路由策略,前述段路由策略包括前述段列表。
本申请中,控制器下发的段路由策略的段列表中包括与该段列表指示的转发路径的尾节点对应的SID的可变部分,该可变部分可以用于指示接收到该段列表的头节点执行对应的报文封装操作。例如,若需要封装的业务SID可压缩,则将该业务SID压缩封装到报文中,若不可压缩,则将业务SID完整封装到报文中,以扩展上述头压缩技术的应用场景。
第七方面,本申请提供一种报文转发处理方法,该方法包括:
第五网络设备向第四网络设备发送段路由策略;前述段路由策略包括指示转发路径的段列表,前述段列表中包括一个或多个段标识SID,前述段列表中还包括与前述转发路径的尾节点对应的SID的可变部分。
本申请中,控制器下发的段路由策略的段列表中包括与该段列表指示的转发路径的尾节点对应的SID的可变部分,该可变部分可以用于指示接收到该段列表的头节点执行对应的报文封装操作。例如,若需要封装的业务SID可压缩,则将该业务SID压缩封装到报文中,若不可压缩,则将业务SID完整封装到报文中,以扩展上述头压缩技术的应用场景。
一种可能的实施方式中,上述与前述尾节点对应的SID的可变部分为与前述尾节点对应的SID中的功能标识。
本申请中,上述可变部分为该SID的功能标识,用于指示头节点在将该段列表压缩编码(可以基于G-SRv6头压缩技术进行压缩编码)封装到报文中时,原本用于封装该可变部分的位置被用于封装该尾节点发布的业务SID的功能标识。这相当于将该业务SID压缩封装到了该报文中。无需考虑段列表中指示转发路径尾节点的段标识是否设置有COC Flavor标记,即可实现业务SID在报文中的压缩封装,减少了报文的开销,也扩展了头压缩技术的应用场景。
一种可能的实施方式中,上述一个或多个SID中包括与前述尾节点对应的SID的上一跳SID,前述上一跳SID为指示出接口的SID。
在本申请中,由于上述上一跳SID为指示出接口的SID,则上述SID的可变部分可以是上述与前述尾节点对应的SID中的功能标识。那么,在将段列表封装到报文中时,无需封装指示该尾节点的节点标识,可以进一步节省报文头开销。
一种可能的实施方式中,上述与前述尾节点对应的SID的可变部分为与前述尾节点对应的SID中的节点标识和功能标识。
在本申请中,上述可变部分为指示尾节点的SID的功能标识加节点标识,用于指示头节点在将该段列表压缩编码(可以基于G-SRv6头压缩技术进行压缩编码)封装到报文中时,原本用于封装该可变部分的功能标识的位置被用于封装该尾节点发布的业务SID的功能标识。这相当于将该业务SID压缩封装到了该报文中。无需考虑段列表中指示转发路径尾节点的段标识是否设置有COC Flavor标记,即可实现业务SID在报文中的压缩封装,减少了报文的开销,也扩展了头压缩技术的应用场景。
上述第五方面至第七方面提供的报文转发处理方法中,控制器下发的段路由策略的段列表中包括与该段列表指示的转发路径的尾节点对应的SID的可变部分,该可变部分可以用于指示接收到该段列表的头节点执行对应的报文封装操作。例如,若该可变部分为该SID的功能标识,则头节点在将该段列表压缩编码(可以基于G-SRv6头压缩技术进行压缩编码)封装到报文中时,原本用于封装该可变部分的位置被用于封装该尾节点发布的业务SID的功能标识。这相当于将该业务SID压缩封装到了该报文中。例如,若该可变部分为该SID的功能标识加节点标识,则头节点在将该段列表压缩编码(可以基于G-SRv6头压缩技术进行压缩编码)封装到报文中时,原本用于封装该可变部分的功能标识的位置被用于封装该尾节点发布的业务SID的功能标识。这相当于将该业务SID压缩封装到了该报文中。前面介绍的两种情况是在该业务SID可压缩的情况下执行的操作。若该业务SID不可压缩,则头节点可以将完整的业务SID封装都报文的段列表中。即本申请通过在段路由策略的候选路径的头节点根据业务SID可压缩和不可压缩两种情况分别进行对应的报文段列表封装,进而兼容该业务SID可压缩和不可压缩两种不同的情况下,通过报文头压缩技术(例如G-SRv6头压缩技术)压缩报文头的应用场景。避免了需要对该业务SID可压缩和不可压缩这两种不同的应用场景下各自配置段路由策略的问题。即拓宽头压缩技术的应用场景,使得该技术可以在更多应用场景下充分发挥其报文头开销低,负载传输效率高的优势。
第八方面,本申请提供一种网络设备,该设备包括:
接收单元,用于接收第一报文,前述第一报文包括段列表字段和IP目的地址字段,前述IP目的地址字段包括公共前缀字段和压缩段标识C-SID字段,前述公共前缀字段用于承载一个或多个段标识SID的公共前缀部分,前述C-SID字段用于承载第一C-SID,前述段列表字段至少用于承载一个或多个C-SID,和,第一SID,前述一个或多个C-SID包括前述第一C-SID;前述第一SID是前述段列表字段中前述第一C-SID的下一个SID;
更新单元,用于在前述段列表字段中前述第一C-SID的下一个位置的内容为零的情况下,将前述第一SID更新到前述IP目的地址字段中,并基于更新后的IP目的地址字段中的内容进行处理获得第二报文;该下一个位置占用的字节长度与该段列表字段中一个C-SID占用的字节长度相同;
发送单元,用于发送前述第二报文。
第九方面,本申请提供一种网络设备,该设备包括:
接收单元,用于接收第一报文,前述第一报文包括段列表字段和IP目的地址字段,前述IP目的地址字段包括公共前缀字段和压缩段标识C-SID字段,前述公共前缀字段用于承载一个或多个段标识SID的公共前缀部分,前述C-SID字段用于承载第一C-SID,前述段列表字段至少用于承载多个C-SID,前述多个C-SID包括前述第一C-SID和第二C-SID,前述第二C-SID是前述段列表字段中前述第一C-SID的下一个C-SID;
更新单元,用于在前述段列表字段中前述第一C-SID的下一个位置的内容非零的情况下,将前述第二C-SID更新到前述IP目的地址字段的前述C-SID字段中,并基于更新后的IP目的地址字段中的内容进行处理获得第二报文;该下一个位置占用的字节长度与该段列表字段中一个C-SID占用的字节长度相同;
发送单元,用于发送前述第二报文。
在第八方面或第九方面的一种可能的实施方式中,上述段列表字段中前述第一C-SID是非替换特征SID。
在第八方面或第九方面的一种可能的实施方式中,上述段列表字段中前述第一C-SID是替换特征SID。
在第八方面或第九方面的一种可能的实施方式中,上述一个或多个SID的公共前缀部分包括前述一个或多个SID的公共的网段。
在第八方面或第九方面的一种可能的实施方式中,上述一个或多个C-SID中的每一个C-SID包括对应的SID的节点标识和/或功能标识。
在第八方面或第九方面的一种可能的实施方式中,上述段列表字段在SRH或G-SRH中。
在第八方面或第九方面的一种可能的实施方式中,上述IP目的地址字段在IPv4报文头或IPv6报文头中。
在第八方面或第九方面的一种可能的实施方式中,上述第一网络设备为候选路径的尾节点,前述候选路径为与前述段列表字段中的前述一个或多个C-SID对应的路径。
在第八方面或第九方面的一种可能的实施方式中,上述第一网络设备为候选路径的尾节点,前述候选路径为与前述段列表字段中除前述第二C-SID之外的前述一个或多个C-SID对应的路径。
第十方面,本申请一种网络设备,该设备包括:
发送单元,用于向第三网络设备发送段路由策略,前述段路由策略包括指示转发路径的段列表,前述段列表中包括一个或多个段标识SID,前述一个或多个SID包括第一SID,前述第一SID指示前述转发路径的尾节点,前述第一SID为替换特征SID。
第十一方面,本申请一种网络设备,该设备包括:
接收单元,用于接收来自第二网络设备的段路由策略,前述段路由策略包括指示转发路径的段列表,前述段列表中包括一个或多个段标识SID,前述一个或多个SID包括第一SID,前述第一SID指示前述转发路径的尾节点,前述第一SID为替换特征SID,前述段路由策略用于指示前述第三网络设备发送第一报文时,将分别与前述段列表中一个或多个SID对应的压缩段标识C-SID封装在前述第一报文的报文头中的段列表字段中;
封装单元,用于将分别与前述段列表中一个或多个SID对应的C-SID封装在前述第一报文的报文头中的段列表字段中;
发送单元,用于发送前述第一报文。
在第十方面或第十一方面的一种可能的实施方式中,上述段列表字段在SRH或G-SRH中。
在第十方面或第十一方面的一种可能的实施方式中,上述第二网络设备是控制器,前述第三网络设备为前述转发路径的头节点。
第十二方面,本申请一种网络设备,该设备包括:
接收单元,用于接收第一报文;
确定单元,用于确定与前述第一报文对应的转发路径的段列表和业务段标识SID,前述段列表中包括一个或多个SID,前述段列表中还包括与前述转发路径的尾节点对应的SID的可变部分;
封装单元,用于封装第一报文,获得第二报文,前述第二报文中包括前述一个或多个SID对应的压缩段标识C-SID,和,前述业务SID的可变部分;
发送单元,用于发送前述第二报文。
一种可能的实施方式中,上述与前述尾节点对应的SID的可变部分为与前述尾节点对应的SID中的功能标识,前述业务SID的可变部分为前述业务SID中的功能标识。
一种可能的实施方式中,上述一个或多个SID中包括与前述尾节点对应的SID的上一跳SID,前述上一跳SID为指示出接口的SID。
一种可能的实施方式中,上述与前述尾节点对应的SID的可变部分为与前述尾节点对应的SID中的节点标识和功能标识,前述业务SID的可变部分为前述业务SID中的功能标识,前述第二报文中还包括与前述尾节点对应的SID中的节点标识。
第十三方面,本申请一种网络设备,该设备包括:
接收单元,用于接收第一报文;
确定单元,用于确定与前述第一报文对应的转发路径的段列表和业务段标识SID,前述段列表中包括一个或多个SID,前述段列表中还包括与前述转发路径的尾节点对应的SID的可变部分;
封装单元,用于封装第一报文,获得第二报文,前述第二报文中包括前述一个或多个SID对应的压缩段标识C-SID、前述可变部分和前述业务SID;
发送单元,用于发送前述第二报文。
一种可能的实施方式中,上述第二报文为IPv4报文或为IPv6报文。
一种可能的实施方式中,上述接收单元用于接收第一报文之前,还用于:
接收来自第五网络设备的段路由策略,前述段路由策略包括前述段列表。
第十四方面,本申请一种网络设备,该设备包括:
发送单元,用于向第四网络设备发送段路由策略;前述段路由策略包括指示转发路径的段列表,前述段列表中包括一个或多个段标识SID,前述段列表中还包括与前述转发路径的尾节点对应的SID的可变部分。
一种可能的实施方式中,上述与前述尾节点对应的SID的可变部分为与前述尾节点对应的SID中的功能标识。
一种可能的实施方式中,上述一个或多个SID中包括与前述尾节点对应的SID的上一跳SID,前述上一跳SID为指示出接口的SID。
一种可能的实施方式中,上述与前述尾节点对应的SID的可变部分为与前述尾节点对应的SID中的节点标识和功能标识。
第十五方面,本申请提供一种网络设备,该网络设备包括处理器和存储器。该存储器与处理器耦合,处理器执行存储器中存储的计算机程序时,可以实现上述第一方面或第二方面任一项描述的报文转发处理方法。该设备还可以包括通信接口,通信接口用于该设备与其它设备进行通信,示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。
在一种可能的实现中,该设备可以包括:
存储器,用于存储计算机程序;
处理器,用于:
通过通信接口接收第一报文,前述第一报文包括段列表字段和IP目的地址字段,前述IP目的地址字段包括公共前缀字段和压缩段标识C-SID字段,前述公共前缀字段用于承载一个或多个段标识SID的公共前缀部分,前述C-SID字段用于承载第一C-SID,前述段列表字段至少用于承载一个或多个C-SID,和,第一SID,前述一个或多个C-SID包括前述第一C-SID;前述第一SID是前述段列表字段中前述第一C-SID的下一个SID;
在前述段列表字段中前述第一C-SID的下一个位置的内容为零的情况下,将前述第一SID更新到前述IP目的地址字段中,并基于更新后的IP目的地址字段中的内容进行处理获得第二报文;该下一个位置占用的字节长度与该段列表字段中一个C-SID占用的字节长度相同;
通过通信接口发送前述第二报文。
在另一种可能的实现中,该处理器用于:
通过通信接口接收第一报文,前述第一报文包括段列表字段和IP目的地址字段,前述IP目的地址字段包括公共前缀字段和压缩段标识C-SID字段,前述公共前缀字段用于承载一个或多个段标识SID的公共前缀部分,前述C-SID字段用于承载第一C-SID,前述段列表字段至少用于承载多个C-SID,前述多个C-SID包括前述第一C-SID和第二C-SID,前述第二C-SID是前述段列表字段中前述第一C-SID的下一个C-SID;
在前述段列表字段中前述第一C-SID的下一个位置的内容非零的情况下,将前述第二C-SID更新到前述IP目的地址字段的前述C-SID字段中,并基于更新后的IP目的地址字段中的内容进行处理获得第二报文;该下一个位置占用的字节长度与该段列表字段中一个C-SID占用的字节长度相同;
通过通信接口发送前述第二报文。
需要说明的是,本申请中存储器中的计算机程序可以预先存储也可以使用该设备时从互联网下载后存储,本申请对于存储器中计算机程序的来源不进行具体限定。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或连接,其可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。
第十六方面,本申请提供一种网络设备,该网络设备包括处理器和存储器。该存储器与处理器耦合,处理器执行存储器中存储的计算机程序时,可以实现上述第三方面任一项描述的报文转发处理方法。该设备还可以包括通信接口,通信接口用于该设备与其它设备进行通信,示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。
在一种可能的实现中,该设备可以包括:
存储器,用于存储计算机程序;
处理器,用于:
通过通信接口向第三网络设备发送段路由策略,前述段路由策略包括指示转发路径的段列表,前述段列表中包括一个或多个段标识SID,前述一个或多个SID包括第一SID,前述第一SID指示前述转发路径的尾节点,前述第一SID为替换特征SID。
需要说明的是,本申请中存储器中的计算机程序可以预先存储也可以使用该设备时从互联网下载后存储,本申请对于存储器中计算机程序的来源不进行具体限定。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或连接,其可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。
第十七方面,本申请提供一种网络设备,该网络设备包括处理器和存储器。该存储器与处理器耦合,处理器执行存储器中存储的计算机程序时,可以实现上述第四方面任一项描述的报文转发处理方法。该设备还可以包括通信接口,通信接口用于该设备与其它设备进行通信,示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。
在一种可能的实现中,该设备可以包括:
存储器,用于存储计算机程序;
处理器,用于:
通过通信接口接收来自第二网络设备的段路由策略,前述段路由策略包括指示转发路径的段列表,前述段列表中包括一个或多个段标识SID,前述一个或多个SID包括第一SID,前述第一SID指示前述转发路径的尾节点,前述第一SID为替换特征SID,前述段路由策略用于指示前述第三网络设备发送第一报文时,将分别与前述段列表中一个或多个SID对应的压缩段标识C-SID封装在前述第一报文的报文头中的段列表字段中;
将分别与前述段列表中一个或多个SID对应的C-SID封装在前述第一报文的报文头中的段列表字段中;
通过通信接口发送前述第一报文。
需要说明的是,本申请中存储器中的计算机程序可以预先存储也可以使用该设备时从互联网下载后存储,本申请对于存储器中计算机程序的来源不进行具体限定。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或连接,其可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。
第十八方面,本申请提供一种网络设备,该网络设备包括处理器和存储器。该存储器与处理器耦合,处理器执行存储器中存储的计算机程序时,可以实现上述第五方面或第六方面任一项描述的报文转发处理方法。该设备还可以包括通信接口,通信接口用于该设备与其它设备进行通信,示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。
在一种可能的实现中,该设备可以包括:
存储器,用于存储计算机程序;
处理器,用于:
通过通信接口接收第一报文;
确定与前述第一报文对应的转发路径的段列表和业务段标识SID,前述段列表中包括一个或多个SID,前述段列表中还包括与前述转发路径的尾节点对应的SID的可变部分;
封装第一报文,获得第二报文,前述第二报文中包括前述一个或多个SID对应的压缩段标识C-SID,和,前述业务SID的可变部分;
通过通信接口发送前述第二报文。
在另一种可能的实现中,该处理器用于:
通过通信接口接收第一报文;
确定与前述第一报文对应的转发路径的段列表和业务段标识SID,前述段列表中包括一个或多个SID,前述段列表中还包括与前述转发路径的尾节点对应的SID的可变部分;
封装第一报文,获得第二报文,前述第二报文中包括前述一个或多个SID对应的压缩段标识C-SID、前述可变部分和前述业务SID;
通过通信接口发送前述第二报文。
需要说明的是,本申请中存储器中的计算机程序可以预先存储也可以使用该设备时从互联网下载后存储,本申请对于存储器中计算机程序的来源不进行具体限定。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或连接,其可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。
第十九方面,本申请提供一种网络设备,该网络设备包括处理器和存储器。该存储器与处理器耦合,处理器执行存储器中存储的计算机程序时,可以实现上述第七方面任一项描述的报文转发处理方法。该设备还可以包括通信接口,通信接口用于该设备与其它设备进行通信,示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。
在一种可能的实现中,该设备可以包括:
存储器,用于存储计算机程序;
处理器,用于:
通过通信接口向第四网络设备发送段路由策略;前述段路由策略包括指示转发路径的段列表,前述段列表中包括一个或多个段标识SID,前述段列表中还包括与前述转发路径的尾节点对应的SID的可变部分。
需要说明的是,本申请中存储器中的计算机程序可以预先存储也可以使用该设备时从互联网下载后存储,本申请对于存储器中计算机程序的来源不进行具体限定。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或连接,其可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。
第二十方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第一方面或第二方面任意一项所述的方法。
第二十一方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第三方面任意一项所述的方法。
第二十二方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第四方面任意一项所述的方法。
第二十三方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第五方面或第六方面任意一项所述的方法。
第二十四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第七方面任意一项所述的方法。
第二十五方面,本申请提供一种计算机程序产品,当该计算机程序被计算机读取并执行时,上述第一方面或第二方面任意一项所述的方法将被执行。
第二十六方面,本申请提供一种计算机程序产品,当该计算机程序被计算机读取并执行时,上述第三方面任意一项所述的方法将被执行。
第二十七方面,本申请提供一种计算机程序产品,当该计算机程序被计算机读取并执行时,上述第四方面任意一项所述的方法将被执行。
第二十八方面,本申请提供一种计算机程序产品,当该计算机程序被计算机读取并执行时,上述第五方面或第六方面任意一项所述的方法将被执行。
第二十九方面,本申请提供一种计算机程序产品,当该计算机程序被计算机读取并执行时,上述第七方面任意一项所述的方法将被执行。
一种可能的实现方式中,上述第二十五方面至第二十九方面所述的一种计算机程序产品可以是一种计算机程序。
第三十方面,本申请提供一种通信系统,该通信系统包括第一网络设备和第二网络设备。其中,该第一网络设备用于执行上述第三方面任一项所述的方法,该第二网络设备用于执行上述第四方面任一项所述的方法。
第三十一方面,本申请提供一种通信系统,该通信系统包括第一网络设备和第二网络设备。其中,该第一网络设备用于执行上述第五方面和第六方面任一项所述的方法,该第二网络设备用于执行上述第七方面任一项所述的方法。
上述第八方面至第三十一方面提供的方案,用于实现或配合实现上述第一方面至第七方面中对应提供的方法,因此可以与第一方面至第七方面中对应的方法达到相同或相应的有益效果,此处不再进行赘述。
附图说明
下面将对本申请实施例中所需要使用的附图作介绍。
图1和图2所示为段标识的结构示意图;
图3为本申请实施例提供的网络架构示意图;
图4A至图4C为本申请实施例提供的段路由策略中包括的对象的TLV结构示意图;
图5A至图5F为本申请实施例提供的报文格式的示意图;
图6A至图6F为本申请实施例提供的段列表的示意图;
图7至图10为本申请实施例提供的报文转发处理方法的流程示意图;
图11至图15为本申请实施例提供的网络设备的逻辑结构示意图;
图16至图20为本申请实施例提供的网络设备的硬件结构示意图。
具体实施方式
首先介绍一下本申请实施例涉及到的技术术语。
1、基于IPv6数据平面的段路由(segment routing IPv6,SRv6)
SRv6是基于源路由理念而设计的在网络上转发IPv6报文的一种协议。SRv6通过在IPv6报文中插入一个段路由扩展头(segment routing header,SRH),在SRH中压入一个显式的IPv6地址栈,通过中间节点不断的进行更新目的地址和偏移地址栈的操作来完成逐跳转发。
2、段列表(segment list,SL)
段列表用于显示指示一条报文的转发路径。该段列表中包括一个或多个段标识(segment identifier,SID),因此段列表又可以称为段标识列表(segment ID list)。段列表可以被封装在上述SRH的地址栈中,用于显示指示报文的转发路径。
3.SID的结构
本申请实施例以SRv6 SID为例介绍。SRv6 SID(下面简称为SID)由定位器(Locator)和功能(Function)两部分组成,格式是Locator:Function。示例性地可以参见图1。可以看到,该SID的长度可以是128比特(bits),其中,Locator部分占据高比特位,Function部分占据剩余的低比特位。
Locator具有路由功能,所以一般要在SR域内唯一。网络里其他节点通过Locator网段路由就可以定位到对应的节点,同时,该对应的节点发布的所有SRv6 SID也都可以通过该条Locator网段路由到达。该SR域是参与SR协议的节点或网络设备的集合。
Function代表网络设备的指令(Instruction),这些指令都由网络设备预先设定。Function部分用于指示SRv6 SID的生成节点进行相应的功能操作。在具体实现中,该Function部分表示为Function标识(Function ID)。
Function部分还可以分出一个可选的参数段(Arguments)。此时SRv6 SID的格式变为Locator:Function:Arguments。Arguments占据低比特位,通过Arguments字段可以定义一些报文的流和服务等信息。
SRv6 SID中最常用的两种类型是End SID和End.X SID。End SID表示端点段标识(Endpoint SID),用于标识网络中的某个目的地址前缀。End.X SID表示三层交叉连接的Endpoint SID,用于标识网络中的某条链路。
4、段路由策略(segment routing policy,SR Policy)
SR Policy用于利用段路由的源路由机制,通过在头节点封装一个有序的指令列表(即段列表)来指导报文在网络中进行转发。本申请实施例以SRv6 Policy为例介绍。
SR Policy使用<头端(HeadEnd),颜色(Color),尾端(Endpoint)>来全局唯一标识一个SRv6 Policy。其中,头端为SR Policy生成的节点,具体的,头端可以用于将段列表添加到报文中,以指示报文的转发。颜色为SR Policy携带的扩展团体属性,携带相同Color属性的边界网关协议(border gateway protocol,BGP)路由可以使用该SR Policy。尾端是SRPolicy的终结点,其可以表示为一个IPv6目的地址。
SR Policy中可以有多个候选路径(Candidate Path)。每个候选路径可以关联多个段列表,候选路径为使用段列表标识通过SRv6 Policy向尾端发送流量的源路由路径。
5、通用SRv6(generalized segment routing over IPv6,G-SRv6)
G-SRv6是一种兼容SRv6的通用机制,支持携带多种类型不同长度的SID,这些SID称为通用SID(generalized SID,G-SID)。
在SRv6网络中,SRv6 Policy头节点(即上述头端)会对报文封装上扩展报文头,再进行转发,这带来了一定的报文头开销。扩展报文头中包括段列表,当段列表中的SRv6 SID数量较多时,扩展报文头的长度将进一步增长。由此可能带来有效负载下降、传输效率低的问题。采用G-SRv6的头压缩技术则可以压缩段列表的长度,减少报文头的开销,提升传输效率。
该G-SRv6头压缩技术的核心思想是消除冗余,其将多个SID的公共前缀(例如包括网段地址)提取出来单独作为一部分,段列表中只保留SID中不同的部分(例如可以包括节点ID和/或功能标识等),以此通过删除冗余的信息来实现压缩。该保留在段列表中的不同的部分称为压缩段标识(compressed SID,C-SID。为了便于理解,可以示例性地参见图2。
可以看到,SID的Locator包括Block和Node ID两部分。其中,Block用于分配SID的地址块(Address Block),用于标识一个网段地址。即该Block是同一个网段中的SID的公共前缀(Common Prefix)。Node ID用于标识网络节点的ID,即节点标识。Block加Node ID组成SID中可路由的Locator,指导报文转发到发布该SID的节点。图2中,Function ID为节点本地的功能ID,位于上述图1的Function字段中。当然,SID中还可以包括上述Arguments等信息,本申请实施例对此不做限制。
由于上述Block属于同网段中的SID的公共前缀,在将段列表封装到报文的扩展报文头时,可以将该Block提取出来放在扩展报文头的IP目的地址字段的公共前缀字段中。而对于Node ID和/或Function ID则属于变化的部分,可以作为压缩段标识C-SID封装在扩展报文头的段列表字段中。由于C-SID的长度远小于SID的长度,因此,段列表中可以用较小的长度封装较多的C-SID,从而减少报文头的开销,提升传输效率。
示例性地,本申请实施例中所述的SID可以是128bits长度的普通SID,本申请实施例所述的C-SID可以是32bits的压缩后的SID。另一种可能的实现中,本申请实施例所述的C-SID可以是16bits的压缩后的SID。
在具体实现中,上述G-SRv6头压缩技术中引入了继续压缩(continuation ofcompression,COC)特征(Flavor)。通过该COC Flavor指示了一个执行动作。即当节点处理有COC Flavor的C-SID时,表明段列表中该C-SID的下一个SID也是C-SID,需要将该下一个SID更新到目的地址字段的C-SID字段中。但是按照当前G-SRv6的定义,段列表的最后一个C-SID不能设置COC Flavor标记。这就使得G-SRv6的应用场景受限。为此,本申请实施例提供了一种报文转发处理方法及相关装置,用于扩展G-SRv6的应用场景。
下面结合附图对本申请的实施例进行描述。
图3所示为本申请实施例提供的网络架构示意图。图3所示的网络架构可以是一个SR域的网络,简称SR网络。该SR网络中可以包括控制器301和多个网络设备。网络设备也可以称为节点。该多个网络设备包括客户端边缘设备(customer edge,CE)、运营商边缘设备(provider edge,PE)和运营商骨干设备(provider,P)。该CE例如可以参见图3中所示的CE130和CE 311。该PE例如可以参见图3中所示的PE 302、PE 305、PE 306和PE 309。该P例如可以是图3中所示的P 303、P304、P 307和P 308。控制器301、CE、PE和P之间的具体连接可以参考图3。
CE为服务供应商所连接的用户端路由器或者交换机。CE通过连接一个或多个PE为用户提供服务接入。CE与连接的PE可以建立邻接关系,例如可以建立边界网关协议(bordergateway protocol,BGP)邻居,或者建立开放最短路径优先(open shortest path first,OSPF)邻居,或者建立中间系统到中间系统(intermediate system to intermediatesystem,ISIS)的链接状态路由协议邻居等。PE也可以是路由器或者交换机,PE可以用于连接CE设备和运营商骨干设备P。用户的流量通过PE设备流入用户网络,或者通过PE设备流到骨干网。
控制器301可以与PE设备通过BGP协议或者通过路径计算单元协议(pathcomputation element protocol,PCEP)实现互相通信。
若控制器301与PE设备通过BGP协议实现互相通信,PE设备可以通过BGP协议将SID上报给控制器,用于控制器计算路径使用。控制器计算完成之后,可以通过BGP SR-Policy邻居关系下发包括段列表的段路由策略到头节点,指导头节点转发报文。
若控制器301与PE设备通过PCEP协议实现互相通信,则控制器301可以通过路径计算单元(path computation element,PCE)为PE设备计算报文转发的路径,并将计算得到的路径发送给该PE设备。该PE设备又可以称为路径计算客户端(path computation client,PCC)。PCC可以向PCE发送路径计算请求,PCE基于该路径计算请求利用已有的网络拓扑信息计算出满足约束条件和策略的报文转发路径,并下发给PCC。图3中示例性地将PE 302作为PCC。在具体实现中,SR网络中的任意一个PE设备都可以作为PCC请求控制器的PCE计算转发路径。
一种可能的实施方式中,上述SR网络可以是SRv6网络,基于IPv4数据平面的段路由(segment routing IPv4,SRv4)网络,或基于多协议标签交换(Multi-Protocol LabelSwitching,MPLS)数据平面的SR-MPLS网络。
上述网络架构仅为示例,上述PE 302和PE 305之间还可以包括更多的网络设备(图3中未画出),即报文从PE 302转发到PE 305的转发路径经过的节点可以更多。本申请实施例提供的应用场景不限于上述图3所示的网络架构。
下面介绍本申请实施例提供的第一种报文转发处理方法,示例性地,该方法可以应用于上述图3所示的网络。
为了便于理解,结合上述图3示例性进行描述。示例性地,在具体实现中,CE 130向CE 311发送报文。CE 130首先生成一个报文A发送给PE 302。该报文A中包括源地址和目的地址。该源地址可以是CE 130的地址,该目的地址可以是CE 311的地址。该源地址和目的地址例如可以是媒体访问控制(Media Access Control,MAC)地址等。PE 302解封该报文A获得该报文A中的目的地址。PE 302基于该CE 311的目的地址查路由表,匹配出前往该CE311的段路由策略。并从该段路由策略的一个或多个候选路径中选择最优的路径作为报文的第一转发路径,进而锁定该第一转发路径的段列表。该最优的第一转发路径的尾节点可以是PE 305。通过该段列表可以指示报文从PE 302转发到该PE 305。并且,PE 302可以通过查路由表匹配出该第一转发路径的尾节点发布的业务SID。
示例性地,该业务SID可以是虚拟专用网络(virtual private network,VPN)SID或操作维护管理(Operation Administration and Maintenance,OAM)SID等标识业务网络实例的SID,本申请实施例对具体的业务SID不做限制。
在具体实现中,上述PE 302中的段路由策略可以是由控制器301预先下发给该PE302。示例性地,上述控制器301预先下发给该PE 302的段路由策略可以包括如下内容:
上述SAFI为后续地址族标识符(Subsequent Address Family Identifiers),用于支持更多的IPv4或IPv6地址。
上述NLRI为网络可达信息(NetworkLayerReachableInformation),用于标识SRPolicy的候选路径。
上述Distinguisher为区分符,是在<color,endpoint>元组的上下文中唯一标识策略的4字节值。区分符没有语义值,仅由SR Policy发起者使用,以使同一SR Policy的多个候选路径以及不同SR Policy的候选路径(即具有不同的段列表)唯一(从NLRI角度来看)具有相同的颜色和端点,但适用于不同的头端。
上述Policy-Color和Endpoint分别表示SR Policy的颜色和尾端。
上述SR Policy的属性(Attributes)用于对段列表和SR Policy候选路径的其它信息进行描述。其中,SR Policy的属性可以包括隧道封装属性(Tunnel EncapsAttribute)、绑定段标识(Binding SID)、SRv6绑定段标识(SRv6 Binding SID)、优先(Preference)、优先级(Priority)、策略名称(Policy Name)、候选路径名称(PolicyCandidate Path Name)、显示空标签策略(Explicit NULL Label Policy)和段列表(Segment List)。其中,段列表中包括权重(weight)和SID(segment)。这些属性的具体定义和描述可以参考段路由的标准草案“draft-ietf-idr-segment-routing-te-policy-18”中2.4节的介绍,此处不赘述。
上述SR Policy中段列表的具体格式可以参考图4A。可以看到,该段列表的结构由下面这几部分组成:
类型Type字段:用于指示段列表的段类型,其长度可以是128bits。
长度Length字段:用于指示在该段列表中编码的子类型-长度-值(sub-TLVs)字段的总长度(不包括Type和Length字段的长度)。
预留RESERVED字段:RESERVED是预留字段,发送时设置为0,接收时可以忽略。
sub-TLVs字段中可以包括两项内容:可选的单个权重子TLV和Segment sub-TLV。该Segment sub-TLV用于承载SID,一个Segment sub-TLV可以用于承载一个SID。该Segmentsub-TLV的具体结构可以参见图4B。可以看到,该Segment sub-TLV的结构由下面这几部分组成:
类型Type字段:用于指示SID的段类型。图4B中以IPv6地址格式的SID为例,其段类型为B(或者说段类型为13)。那么,当封装该IPv6地址格式的SID时,该图4B所示的子TLV中的该Type字段的值为2。
长度Length字段:用于指示该子TLV中的SID字段,以及端点行为和SID结构字段(可选的)所占的字节数。当该两个字段都存在时,该长度字段的值可以是26字节。当只有SID字段时,该长度字段的值可以是18字节。
标记Flags字段:Flags用于定义一些必要的操作或者限制等。
预留RESERVED字段:RESERVED是预留字段,发送时设置为0,接收时可以忽略。
SRv6 SID字段用于存放16字节(即128bits)的IPv6地址。即该IPv6地址即为该SRv6SID。
端点行为和SID结构字段是可选的,该端点行为和SID结构字段的格式可以参加图4C。可以看到,该端点行为和SID结构字段的结构由下面这几部分组成:
端点行为(Endpoint Behavior)字段:占用2个八位字节。如[RFC8986]的第9.2节中定义的,该字段可以携带SRv6 SID的SRv6端点行为的代码点(code point),用于指示节点执行对应的操作。当设置为0时,SRv6 EndpointBehavior的选择留给头端。
保留(Reserved)字段:占用2个八位字节的保留位。传输时应设置为零,接收时必须忽略。
定位器块长度(Locator Block Length,LB Length)字段:占用1个八位字节。指示SR v6 SID定位器块(Block)的长度(以位为单位)。
定位器节点长度(Locator Node Length,LN Length)字段:占用1个八位字节。指示SRv6 SID定位器节点标识(Node ID)的长度(以位为单位)。
功能长度(Function Length,Fun.Length):占用1个八位字节。指示SRv6 SID功能标识(Function ID)的长度(以位为单位)。
参数长度(Argument Length,Arg.Length):占用1个八位字节。指示SRv6 SID的参数的长度(以位为单位)。
其中,上述Block、Node ID、Function ID和Argument的长度总和必须小于或等于128bits。
基于上述的描述,在本申请实施例中,上述控制器301可以在下发段路由策略给PE302时,在段路由策略的每个SID的TLV结构的Endpoint Behavior字段中指定该每个SID的行为(Behavior)。可以在该Endpoint Behavior字段中携带指示SID为替换特征(replaceflavo r)SID的标识,或者可以该Endpoint Behavior字段中携带指示SID为非替换特征(norepla ce flavor)SID的标识。示例性地,该替换特征SID的标识可以是上述COC Flavor。该非替换特征SID的标识则是NOCOC Flavor。基于前述的描述可知,COC Flavor可以指示节点将报文中的段列表的下一个SID更新到该报文中目的地址字段的C-SID字段中。那么,NOCOC Flavor可以指示节点将报文中的段列表的下一个SID更新到该报文中目的地址字段中,即此时该下一个SID为一个128bits的完整的SID,其更新到目的地址字段中后占用了整个目的地址字段的长度。可以理解的是,在本申请实施例中,一个SID为替换特征SID,则该SID的压缩SID(C-SID)也是替换特征SID。同理,一个SID为非替换特征SID,则该SID的压缩SID(C-SID)也是非替换特征SID。
上述控制器301将段路由策略下发给该PE 302,PE 302可以将接收到的段路由策略保存到自身的路由表中,以便后续转发报文的时候进行查表。另外,示例性地,上述PE302中的业务SID可以是由上述第一转发路径的尾节点通过BGP等协议进行泛洪到该PE302。PE 302接收到该业务SID后可以保存到自身的路由表中,以便后续转发报文的时候进行查表。
上述PE 302确定第一转发路径的段列表和上述业务SID后,可以基于该段列表和该业务SID对上述报文A进行封装,获得封装之后的报文B。示例性地,PE 302可以在报文A中增加一个扩展报文头,然后,将段列表和业务SID进行编码后封装到该扩展报文头中。在本申请实施例中,可以采用头压缩技术对该段列表和SID进行压缩编码后封装到该扩展报文头中。示例性地,对于IPv6网络,该头压缩技术可以是上述介绍的G-SRv6头压缩技术。或者,示例性地,在IPv4网络中,也可以参考该G-SRv6头压缩技术对该段列表和SID进行压缩编码后封装到该扩展报文头中。为了便于理解,本申请实施例以G-SRv6头压缩技术为例介绍。当基于G-SRv6头压缩技术来封装报文的扩展报文头时,该扩展报文头可以称为时通用扩展报文头G-SRH。此外,除了在上述报文A中增加一个扩展报文头之外,PE 302还在该报文A中增加一个IP报文头,以用于封装IP源地址和IP目的地址等信息。该IP源目的地址为上述第一转发路径的头节点的IP地址,即为该PE 302的IP地址。该IP目的地址则会随着报文的逐跳转发不断更新变化,以指示报文转发的下一跳节点。
可以示例性地参见图5A和图5B,图5A和图5B是基于G-SRv6头压缩技术进行压缩编码并封装后获得的报文B的格式示意图。可以看到,该报文B中包括IPv6报文头、扩展报文头(SRH)和负载(Payload)。其中,该IPv6报文头包括版本号(Version)字段、流量类型(TafficClass)字段、流标签(Flow Label)字段、负载长度(Pload Length)字段、下一报头(Next)字段、跳限制(Hop Limit)字段、IP源地址(Source Address)字段、IP目的地址(DestinationAddress)字段。该扩展报文头中包括下一报文头(Next Header)字段、扩展报文头的长度(Hdr Ext Len)字段、路由头部类型(Routing Type)Routing Type字段、段偏移(SegmentLeft,SL)字段、最后条目(Last Entry)字段、Flags字段、Tag字段和段列表字段。该IPv6报文头和扩展报文头SRH中包括的各个字段可以参考IPv6和SRv6的标准中的描述,此处不赘述。
上述IP目的地址字段包括Block字段、C-SID字段和CL字段。基于前述的描述可知,该Block字段用于承载上述确定的第一转发路径的段列表中一个或多个SID的公共前缀,即网段地址。该C-SID字段用于承载该第一转发路径的段列表中SID的压缩SID,即承载该SID的节点标识和/或功能标识。在图5A和图5B中,该C-SID字段用于承载C-SID1,用于指示该报文B的下一跳地址。
上述CL为压缩偏移(CompressLeft)的缩写,用于指示C-SID字段中承载的C-SID的偏移位置。在本申请实施例中,以该CL的取值为0、1、2或3为例介绍。可以示例性地参见图5A和图5B,在段列表字段中,一个完整的SID占用128bits,一个压缩SID即C-SID占用32bits,因此,存放一个完整的SID的位置可以存放4个C-SID。该4个C-SID的位置按照比特位从高到低的顺序分别可以用CL=0、CL=1、CL=2和CL=3来指示。为了便于理解,以图5A和图5B中的C-SID1、C-SID2、C-SID3和C-SID4为例。该C-SID1、C-SID2、C-SID3和C-SID4所在的位置可以分别用CL=3、CL=2、CL=1和CL=0来指示。在图5A和图5B中,C-SID字段用于承载C-SID1,因此,报文B中的CL为3。此处CL的取值仅为示例,在具体实现中,CL的取值也可以是其它的取值范围,例如取0到8之间的整数,此时,C-SID占用的长度可以是16bits。本申请实施例对该CL的取值范围不做限制。
另外,要在段列表字段中定位到具体的SID(或C-SID)还需要配合上述SL字段来定位。SL是一个指针,指示当前活跃的Segment的位置。为了便于理解,以图5A为例,在图5A中,SL的值为1,其指示的是C-SID4、C-SID3、C-SID2和C-SID1共同占用的128bits所在的位置。当SL的值为0时,其指示的是压缩业务SID、C-SID7、C-SID6和C-SID5共同占用的128bits所在的位置。基于此,在图5A中,获知SL=1,CL=3,从而可以定位到段列表字段中C-SID1所在的位置。在图5B中同理,获知SL=2,CL=3,从而可以定位到段列表字段中C-SID1所在的位置。
在上述确定的业务SID可以压缩的情况下,即可以提取出上述公共前缀的情况下,则可以将该业务SID进行压缩编码封装到报文B的段列表字段的最后一个位置中。例如可以参见图5A,段列表字段中可以包括一个或多个C-SID(以C-SID1至C-SID7为例示出)和压缩业务SID。该C-SID1至C-SID7是上述确定的第一转发路径的段列表中的SID的压缩SID。一般不将该第一转发路径的头节点的SID封装到报文中,因此,该C-SID1是该第一转发路径的段列表中按转发顺序排列的第二个位置的SID的压缩SID。该C-SID7则是指示该第一转发路径的尾节点的SID的压缩SID,即是指示上述PE 305的SID的压缩SID。而该压缩业务SID是从该业务SID中提取出上述公共前缀后剩余的部分。可以看到,该压缩业务SID封装在报文B的段列表字段的最后一个位置。
可以理解的是,报文的段列表中SID(或C-SID)是按转发顺序编码封装的,例如图5A中的C-SID1至C-SID7。本申请实施例中描述的段列表的第一个位置指的是该段列表中第一个SID(或C-SID)所在的位置,同理,本申请实施例中描述的段列表的第二个位置指的是该段列表中第二个SID(或C-SID)所在的位置,其余的同理。例如,在图5A中,段列表字段中第一个C-SID为C-SID1,则该C-SID1所在的位置即为该段列表中的第一个位置。段列表字段中第二个C-SID为C-SID2,则该C-SID2所在的位置即为该段列表中的第二个位置。此外,由于该报文的段列表中SID(或C-SID)是按转发顺序编码封装的,本申请实施例中所述的某个SID(或C-SID)的下一个SID(或C-SID),指的是该某个SID(或C-SID)顺序编码的下一个SID(或C-SID)。例如,在图5A中,C-SID2是C-SID1的下一个C-SID。C-SID3是C-SID2的下一个C-SID。C-SID5是C-SID4的下一个C-SID,等等。同理,本申请实施例中所述的某个SID(或C-SID)的下一个位置,指的是该某个SID(或C-SID)顺序编码的下一个SID(或C-SID)所在的位置。例如,在图5A中,C-SID2所在的位置是C-SID1的下一个位置。C-SID3所在的位置是C-SID2的下一个位置。C-SID5所在的位置是C-SID4的下一个位置,等等。
在上述确定的业务SID不可以压缩的情况下,即无法从该业务SID中提取出上述公共前缀的情况下,则可以将该业务SID完整封装到报文B的段列表字段的最后一个位置中。此时,该业务SID占用该段列表字段中的128bits的长度。例如可以参见图5B,该段列表字段中可以包括一个或多个C-SID(以C-SID1至C-SID7为例示出)和业务SID。同理,该C-SID1至C-SID7是上述确定的第一转发路径的段列表中的SID的压缩SID。一般不将该第一转发路径的头节点的SID封装到报文中,因此,该C-SID1是该第一转发路径的段列表中第二个位置的SID的压缩SID。该C-SID7则是指示该第一转发路径的尾节点的SID的压缩SID,即是指示上述PE 305的SID的压缩SID。而该业务SID由于无法进行压缩,因此将该业务SID整个封装到该段列表字段中,其单独占用了段列表字段的128bits。
此外,上述报文B中还可以包括上述报文A中包括的源地址和目的地址,即包括CE130的地址和CE 311的地址(图5A和图5B中未画出)。
可以理解的是,上述图5A和图5B中所示的段列表中包括的SID和C-SID仅为示例,不构成对本申请实施例的限制。在一种可能的实现中,上述第一转发路径的段列表中也可以包括不可压缩的SID,封装到报文中时占用段列表字段的128bits长度。具体根据实际场景确定,本申请实施例对此不做限制。
上述PE 302获得上述报文B之后,将报文B发送出去。在报文中的段列表的指示下,报文最终发送到该段列表指示的第一转发路径的尾节点,即发送到上述PE 305。此时,该PE305接收到的报文(简称报文C)中包括的内容可以示例性地参见图5C或图5D。
若上述PE 302发送的报文B的格式是如图5A所示的报文格式,则该PE 305接收到的报文格式是如图5C所示的报文格式。在图5C中可以看到,PE 305接收到的报文C中,IP目的地址字段中C-SID字段中的内容为C-SID7,即为指示该PE 305的SID的压缩SID。并且,该报文C中的CL的值为1,SL的值为0,该两个值的结合指示C-SID7在段列表字段中的位置。
若上述PE 302发送的报文B的格式是如图5B所示的报文格式,则该PE 305接收到的报文格式是如图5D所示的报文格式。在图5D中可以看到,PE 305接收到的报文C中,IP目的地址字段中C-SID字段中的内容为C-SID7,即为指示该PE 305的SID的压缩SID。并且,该报文C中的CL的值为1,SL的值为1,该两个值的结合指示C-SID7在段列表字段中的位置。
该PE 305接收到上述报文C后,获取报文C中IP目的地址字段中Block字段和C-SID字段的内容恢复出完整的SID。并基于该恢复出来的SID进行查表,识别出该SID是自己发布的SID。由于该PE 305是该段列表指示的第一转发路径的尾节点,因此,该PE 305识别出该恢复出来的SID为自己发布的SID之后,可以判断该报文C的段列表字段中该C-SID7的下一个位置的内容是否为零。该下一个位置为报文C中SL不变,CL减一后指示的位置。即报文C中的CL不为0。该下一个位置占用的字节长度与该段列表字段中一个C-SID占用的字节长度相同。
若该下一个位置的内容不为零,则表明上述业务SID可压缩,被压缩编码后封装在该下一个位置中。例如参见图5C。那么,PE 305可以将该下一个位置的压缩业务SID(也是该C-SID7的下一个SID)更新到报文C的IP目的地址字段的C-SID字段中,更新后的报文格式可以参见图5E。在图5E中可以看到,C-SID字段中的内容变成了压缩业务SID,CL的值减一变成了0。此时,CL的值为0,SL的值为0,该两个值的结合指示压缩业务SID在段列表字段中的位置。该PE 305更新报文C中IP目的地址字段的内容后,获取更新后的内容恢复出完整的业务SID。并基于该恢复出来的业务SID进行查表,识别出该业务SID为自己发布的业务SID,则可以根据该业务SID指示的操作对报文进行处理。例如,可以是解封装报文,去除扩展报文头和IP报文头,然后,根据解封装后的报文里的目的地址(即上述CE 311的目的地址),查找路由表,然后将报文转发给该CE 311。
若该下一个位置的内容为零,则表明上述业务SID不可压缩,被完整编码封装在段列表字段中。例如参见图5D。那么,PE 305可以将报文C中的SL减一,定位到业务SID所在的位置(该业务SID是该C-SID7的下一个SID),然后,将该业务SID更新到报文C的IP目的地址字段中,更新后的报文格式可以参见图5F。在图5E中可以看到,更新后IP目的地址字段中的内容变为了业务SID,SL的值减一变成了0。该PE 305更新报文C中IP目的地址字段的内容后,可以基于IP目的地址字段中的业务SID进行查表。该PE 305识别出该业务SID为自己发布的业务SID,则可以根据该业务SID指示的操作对报文进行处理。例如,可以是解封装报文,去除扩展报文头和IP报文头,然后,根据解封装后的报文里的目的地址(即上述CE 311的目的地址),查找路由表,并重新封装好报文,并将报文转发给该CE 311。
一种可能的实施方式中,上述PE 305可以基于预设的操作指示执行上述下一个位置的内容是否为零的判断操作。或者,另一种可能的实施方式中,该PE 305可以基于上述报文C中SL和CL的值来确定自身为上述第一转发路径的尾节点,进而触发执行上述下一个位置的内容是否为零的判断操作。此处仅为示例,本申请实施例对于第一转发路径的尾节点执行该判断操作的触发条件不做限制。
可以理解的是,上述描述过程中,很多示例都是以基于IPv6网络场景为例进行介绍,但是上述描述的内容也可以使用与IPv4网络的场景,本申请实施例对此不做限制。
在本申请实施例中,上述段路由策略中候选路径的尾节点对应的SID(例如上述C-SID7)可以是替换特征SID,或者可以是非替换特征SID。不管是哪种SID,该尾节点都可以基于上述下一个位置的内容是否为零的判断来执行对应的操作。进而兼容上述业务SID可压缩和不可压缩两种应用场景下,通过上述头压缩技术压缩报文头的开销的方案的应用场景。避免了需要对业务SID可压缩和不可压缩这两种不同的应用场景下各自配置段路由策略的问题。
下面介绍本申请实施例提供的第二种报文转发处理方法,示例性地,该方法可以应用于上述图3所示的网络。
同理,为了便于理解,结合上述图3示例性进行描述。示例性地,在具体实现中,CE130向CE 311发送报文。CE 130首先生成一个报文A’发送给PE 302。该报文A’中包括源地址和目的地址。该源地址和目的地址例如可以是媒体访问控制(Media Access Control,MAC)地址等。该源地址可以是CE 130的地址,该目的地址可以是CE 311的地址。PE 302解封该报文A’获得该报文A’中的目的地址。PE 302基于该CE 311的目的地址查路由表,匹配出前往该CE 311的段路由策略。并从该段路由策略的一个或多个候选路径中选择最优的路径作为报文的转发路径(简称为第二转发路径),进而锁定该第二转发路径的段列表。该第二转发路径的尾节点可以是PE 305。通过该段列表可以指示报文从PE 302转发到该PE 305。并且,PE 302可以通过查路由表匹配出该第二转发路径的尾节点发布的业务SID。
在具体实现中,上述PE 302中的段路由策略可以是由控制器301预先下发给该PE302。示例性地,该控制器301预先下发给该PE 302的段路由策略中包括上述第二转发路径的段列表。该段列表中最后一个位置为与该第二转发路径的尾节点对应的SID(即指示该尾节点的SID)的可变部分。该可变部分用于指示第二转发路径的头节点在报文中封装段列表时,将上述业务SID的功能标识更新到该最后一个位置。本申请实施例中,该第二路径的段列表中最后一个SID,即该最后一个位置的SID为非替换特征SID,即为NO COC Flavor标记的SID。从而可以符合现有G-SRv6标准的定义。或者,该第二路径的段列表中最后一个SID是替换特征SID,即为COC Flavor标记的SID。本申请实施例对此不做限制。
一种可能的实施方式中,该可变部分可以是该尾节点对应的SID的功能标识。这种情况下,上述第二转发路径的段列表中该可变部分的上一个SID为END.X类型的SID,即基于该END.X类型的SID即可到达该尾节点,因此,该可变部分可以不包括该尾节点的节点标识。为了便于理解,可以示例性地参见图6A。在图6A中,示例性地示出了该第二转发路径的段列表包括的内容。该段列表中包括SID1、SID2、SID3、SID4、SID5和END.F,该END.F用于表示该尾节点对应的SID的功能标识。则该SID1、SID2、SID3、SID4、SID5和END.F可以用于指示该第二转发路径。并且该SID5为END.X类型的SID。
另一种可能的实施方式中,该可变部分可以是该尾节点对应的SID的功能标识和节点标识。这种情况下,上述第二转发路径的段列表中该可变部分的上一个SID为END类型的SID,即该SID为指示一个节点的SID,需要知道尾节点的节点标识才能路由到尾节点。可选的,该上一个SID指示的节点和该尾节点之间可以间隔多跳节点,即从该上一个SID指示的节点到达该尾节点需要经过该多跳节点。为了便于理解,可以参见图6B。在图6B中,示例性地示出了该第二转发路径的段列表包括的内容。该段列表中包括SID1、SID2、SID3、SID4、SID5和END.F+END.N。该END.F用于表示该尾节点对应的SID的功能标识。该END.N用于表示该尾节点对应的SID中的节点标识。则该SID1、SID2、SID3、SID4、SID5和END.F+END.N可以用于指示该第二转发路径。并且该SID5为ENDSID。可选的,该SID5指示的节点和该尾节点之间可以间隔多跳节点。例如,假设指示该尾节点的SID为SID8,则SID5到SID8之间还包括SID6和SID7,从该SID5指示的节点到该尾节点,中间还需要经过过SID6指示的节点和SID7指示的节点。
示例性地,上述尾节点对应的SID的可变部分可以放置在段路由策略的段列表的最后一个Segment sub-TLV结构的SID字段中。例如,参见图4B,该尾节点对应的SID的可变部分可以放置在SRv6 SID字段中。
除了上述描述的段列表中最后一个位置的内容之外,该控制器301预先下发给该PE 302的段路由策略的其它描述可以参考前述的描述,此处不赘述。
在具体实现中,上述控制器301将段路由策略下发给该PE 302,PE 302可以将接收到的段路由策略保存到自身的路由表中,以便后续转发报文的时候进行查表。另外,示例性地,上述PE 302中的业务SID可以是由上述第二转发路径的尾节点通过BGP等协议进行泛洪到该PE 302。PE 302接收到该业务SID后可以保存到自身的路由表中,以便后续转发报文的时候进行查表。
上述PE 302确定第二转发路径的段列表和上述业务SID后,可以基于该段列表和该业务SID对上述报文A’进行封装,获得封装之后的报文B’。示例性地,PE 302可以在报文A’中增加一个扩展报文头,然后,将该段列表和业务SID进行编码后封装到该扩展报文头中。在本申请实施例中,可以采用头压缩技术对该段列表和SID进行压缩编码后封装到该扩展报文头中。示例性地,对于IPv6网络,该头压缩技术可以是上述介绍的G-SRv6头压缩技术。或者,示例性地,在IPv4网络中,也可以参考该G-SRv6头压缩技术对该段列表和SID进行压缩编码后封装到该扩展报文头中。同理,此外,除了在上述报文A’中增加一个扩展报文头之外,PE 302还在该报文A’中增加一个IP报文头,以用于封装IP源地址和IP目的地址等信息。该IP源目的地址为上述第二转发路径的头节点的IP地址,即为该PE 302的IP地址。该IP目的地址则会随着报文的逐跳转发不断更新变化,以指示报文转发的下一跳节点。
一种可能的实施方式中,若上述第二转发路径的段列表例如是图6A所示的段列表,并且在上述业务SID可压缩的情况下,封装到报文B’的段列表中的最后一个位置的内容为该业务SID的功能标识。可以示例性地参见图6C。可以看到,封装到报文B’中的段列表中,包括C-SID2、C-SID3、C-SID4、C-SID5和业务SID.F。该业务SID.F用于表示该业务SID的功能标识。该C-SID2、C-SID3、C-SID4、C-SID5分别是上述SID2、SID3、SID4、SID5对应的压缩SID。这种实现中,相当于是对上述第二转发路径的段列表中的SID进行压缩编码,并将上述END.F替换为该业务SID.F后封装到该报文B’的段列表中。一般不将该第二转发路径的头节点的SID封装到报文中,因此,封装到报文B’的段列表中不包括SID1的压缩SID,下面同理不赘述。
一种可能的实施方式中,若上述第二转发路径的段列表例如是图6A所示的段列表,并且在上述业务SID不可压缩的情况下,封装到报文B’的段列表中的最后一个位置的内容为该业务SID。可以示例性地参见图6D。可以看到,封装到报文B’中的段列表中,包括C-SID2、C-SID3、C-SID4、C-SID5、END.F和业务SID。该C-SID2、C-SID3、C-SID4、C-SID5分别是上述SID2、SID3、SID4、SID5对应的压缩SID。另外,该业务SID同样地在报文B’的段列表中占用128bits的长度。这种实现中,相当于是对上述第二转发路径的段列表中的SID进行压缩编码后和该业务SID一起封装到该报文B’的段列表中。
一种可能的实施方式中,若上述第二转发路径的段列表例如是图6B所示的段列表,并且在上述业务SID可压缩的情况下,封装到报文B’的段列表中的最后一个位置的内容为该业务SID的功能标识和上述尾节点对应的SID中的节点标识。可以示例性地参见图6E。可以看到,封装到报文B’中的段列表中,包括C-SID2、C-SID3、C-SID4、C-SID5和业务SID.F+END.N。该业务SID.F用于表示该业务SID的功能标识。该END.N用于表示该尾节点对应的SID中的节点标识。该C-SID2、C-SID3、C-SID4、C-SID5分别是上述SID2、SID3、SID4、SID5对应的压缩SID。这种实现中,相当于是对上述第二转发路径的段列表中的SID进行压缩编码,并将上述END.F替换为该业务SID.F后封装到该报文B’的段列表中。
一种可能的实施方式中,若上述第二转发路径的段列表例如是图6B所示的段列表,并且在上述业务SID不可压缩的情况下,封装到报文B’的段列表中的最后一个位置的内容为该业务SID。可以示例性地参见图6F。可以看到,封装到报文B’中的段列表中,包括C-SID2、C-SID3、C-SID4、C-SID5、END.F+END.N和业务SID。该C-SID2、C-SID3、C-SID4、C-SID5分别是上述SID2、SID3、SID4、SID5对应的压缩SID。另外,该业务SID同样地在报文B’的段列表中占用128bits的长度。这种实现中,相当于是对上述第二转发路径的段列表中的SID进行压缩编码后和该业务SID一起封装到该报文B’的段列表中。
除了上述描述的段列表中的内容之外,上述封装到报文B’的扩展报文头的描述可以参考前述的描述,此处不赘述。
上述PE 302获得上述报文B之后’将该报文发送出去,该报文在报文中的段列表的指示下发送到该第二路径的尾节点,即发送到上述PE 305。若PE 305接收到的报文(简称报文C’)中的段列表例如为图6C或图6E所示的段列表,则该PE 305可以基于该段列表的最后一个位置中的业务SID.F的指示执行对应的操作。例如,可以是解封装报文,去除扩展报文头和IP报文头,然后,根据解封装后的报文里的目的地址(即上述CE 311的目的地址),查找路由表,并重新封装好报文,并将报文转发给该CE 311。
若PE 305接收到的报文中的段列表例如为图6D或图6F所示的段列表,则该PE 305可以基于该段列表的最后一个位置中的业务SID的指示执行对应的操作。例如,可以是解封装报文,去除扩展报文头和IP报文头,然后,根据解封装后的报文里的目的地址(即上述CE311的目的地址),查找路由表,并重新封装好报文,并将报文转发给该CE 311。
在本申请实施例中,通过在段路由策略的候选路径的头节点根据业务SID可压缩和不可压缩两种情况分别进行对应的报文段列表封装,进而兼容该业务SID可压缩和不可压缩两种应用场景下,通过上述头压缩技术压缩报文头的开销的方案的应用场景。避免了需要对业务SID可压缩和不可压缩这两种不同的应用场景下各自配置段路由策略的问题。
参见图7,图7所示为本申请实施例提供的一种报文转发处理方法的流程示意图,该方法包括但不限于如下步骤:
S701、第一网络设备接收第一报文,该第一报文包括段列表字段和IP目的地址字段,该IP目的地址字段包括公共前缀字段和压缩段标识C-SID字段,该公共前缀字段用于承载一个或多个段标识SID的公共前缀部分,该C-SID字段用于承载第一C-SID,该段列表字段至少用于承载一个或多个C-SID,和,第一SID,该一个或多个C-SID包括该第一C-SID;该第一SID是该段列表字段中该第一C-SID的下一个SID。
S702、在该段列表字段中该第一C-SID的下一个位置的内容为零的情况下,该第一网络设备将该第一SID更新到该IP目的地址字段中,并基于更新后的IP目的地址字段中的内容进行处理获得第二报文。该下一个位置占用的字节长度与该段列表字段中一个C-SID占用的字节长度相同。
S703、该第一网络设备发送该第二报文。
在具体实现中,上述第一网络设备为候选路径的尾节点。该候选路径为与上述段列表字段中的一个或多个C-SID对应的路径。示例性地,该第一网络设备可以是上述介绍的第一种报文转发处理方法的实施例中所述的PE 305。该候选路径为该实施例中所述的第一转发路径。该第一报文可以是该实施例中所述的报文C。该第一报文可以是IPv4报文或者可以是IPv6报文,具体可以根据具体应用的IP网络决定。上述公共前缀部分可以是该实施例中C-SID1至C-SID7的公共的网段。上述第一C-SID可以是该实施例中的C-SID7。该第一SID可以是该实施例中所述的业务SID,例如可以是图5D所示中的业务SID。上述第二报文可以是该实施例中所述的转发给CE 311的报文。该方法的具体实现可以参考上述第一种报文转发处理方法的实施例中对应的描述,此处不赘述。
参见图8,图8所示为本申请实施例提供的一种报文转发处理方法的流程示意图,该方法包括但不限于如下步骤:
S801、第一网络设备接收第一报文,该第一报文包括段列表字段和IP目的地址字段,该IP目的地址字段包括公共前缀字段和压缩段标识C-SID字段,该公共前缀字段用于承载一个或多个段标识SID的公共前缀部分,该C-SID字段用于承载第一C-SID,该段列表字段至少用于承载多个C-SID,该多个C-SID包括该第一C-SID和第二C-SID,该第二C-SID是该段列表字段中该第一C-SID的下一个C-SID。
S802、在该段列表字段中该第一C-SID的下一个位置的内容非零的情况下,该第一网络设备将该第二C-SID更新到该IP目的地址字段的该C-SID字段中,并基于更新后的IP目的地址字段中的内容进行处理获得第二报文。该下一个位置占用的字节长度与该段列表字段中一个C-SID占用的字节长度相同。
S803、该第一网络设备发送该第二报文。
在具体实现中,上述第一网络设备为候选路径的尾节点。该候选路径为与上述段列表字段中除所第二C-SID之外的所述一个或多个C-SID对应的路径。示例性地,该第一网络设备可以是上述介绍的第一种报文转发处理方法的实施例中所述的PE 305。该候选路径为该实施例中所述的第一转发路径。该第一报文可以是该实施例中所述的报文C。该第一报文可以是IPv4报文或者可以是IPv6报文,具体可以根据具体应用的IP网络决定。上述公共前缀部分可以是该实施例中C-SID1至C-SID7的公共的网段。上述第一C-SID可以是该实施例中的C-SID7。上述第二C-SID可以是该实施例中所述的压缩业务SID,例如可以是图5C所示中的压缩业务SID。上述第二报文可以是该实施例中所述的转发给CE 311的报文。该方法的具体实现可以参考上述第一种报文转发处理方法的实施例中对应的描述,此处不赘述。
参见图9,图9所示为本申请实施例提供的一种报文转发处理方法的流程示意图,该方法包括但不限于如下步骤:
S901、第二网络设备向第三网络设备发送段路由策略,该段路由策略包括指示转发路径的段列表,该段列表中包括一个或多个段标识SID,该一个或多个SID包括第一SID,该第一SID指示该转发路径的尾节点,该第一SID为替换特征SID。
S902、第三网络设备接收来自第二网络设备的段路由策略,该段路由策略用于指示该第三网络设备发送第一报文时,将分别与该段列表中一个或多个SID对应的压缩段标识C-SID封装在该第一报文的报文头中的段列表字段中。
S903、该第三网络设备将分别与该段列表中一个或多个SID对应的C-SID封装在该第一报文的报文头中的段列表字段中;
S904、该第三网络设备发送该第一报文。
在具体实现中,上述第二网络设备可以是控制器,上述第三网络设备可以是上述转发路径的头节点。示例性地,该第二网络设备可以是上述介绍的第一种报文转发处理方法的实施例中所述的控制器301。该第二网络设备可以是该实施例中所述的PE 302。上述段路由策略可以是该实施例中控制器301向PE 302下发的段路由策略。该方法的具体实现可以参考上述第一种报文转发处理方法的实施例中对应的描述,此处不赘述。
参见图10,图10所示为本申请实施例提供的一种报文转发处理方法的流程示意图,该方法包括但不限于如下步骤:
S1001、第五网络设备向第四网络设备发送段路由策略;该段路由策略包括指示转发路径的段列表,该段列表中包括一个或多个段标识SID,该段列表中还包括与该转发路径的尾节点对应的SID的可变部分。
S1002、该第四网络设备接收来自第五网络设备的段路由策略并保存。
S1003、第四网络设备接收第一报文;并确定与该第一报文对应的转发路径的段列表和业务段标识SID,该段列表为上述段路由策略中的段列表。
S1004、该第四网络设备封装第一报文,获得第二报文,该第二报文中包括该一个或多个SID对应的压缩段标识C-SID,和,该业务SID的可变部分。
这种实现方式下,该业务SID可压缩。
S1005、该第四网络设备发送该第二报文。
可选的,上述一个或多个SID中包括与上述尾节点对应的SID的上一跳SID,该上一跳SID为指示出接口的SID。即该上一跳SID为END.X类型的SID。
一种可能的实现中,上述步骤S1004中获得的第二报文中可以包括该一个或多个SID对应的压缩段标识C-SID、尾节点对应的SID的可变部分和该业务SID。这种实现方式下,该业务SID不可压缩。
在具体实现中,上述第五网络设备可以是控制器,上述第四网络设备可以是上述转发路径的头节点。示例性地,该第五网络设备可以是上述介绍的第二种报文转发处理方法的实施例中所述的控制器301。该第四网络设备可以是该实施例中所述的PE 302。上述段路由策略可以是该实施例中控制器301向PE 302下发的段路由策略。上述第一报文可以是该实施例中的报文A’。上述第二报文可以是该实施例中的报文B’。该方法的具体实现可以参考上述第二种报文转发处理方法的实施例中对应的描述,此处不赘述。
上述主要对本申请实施例提供的报文转发处理方法进行了介绍。可以理解的是,各个设备为了实现上述对应的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本文中所公开的实施例描述的各示例的单元及步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图11示出了网络设备1100的一种可能的逻辑结构示意图,该网络设备1100可以是上述图7或图8所示报文转发处理方法中所述的第一网络设备。该网络设备1100包括接收单元1101、更新单元1102和发送单元1103。其中:
接收单元1101,用于接收第一报文,前述第一报文包括段列表字段和IP目的地址字段,前述IP目的地址字段包括公共前缀字段和压缩段标识C-SID字段,前述公共前缀字段用于承载一个或多个段标识SID的公共前缀部分,前述C-SID字段用于承载第一C-SID,前述段列表字段至少用于承载一个或多个C-SID,和,第一SID,前述一个或多个C-SID包括前述第一C-SID;前述第一SID是前述段列表字段中前述第一C-SID的下一个SID;
更新单元1102,用于在前述段列表字段中前述第一C-SID的下一个位置的内容为零的情况下,将前述第一SID更新到前述IP目的地址字段中,并基于更新后的IP目的地址字段中的内容进行处理获得第二报文;
发送单元1103,用于发送前述第二报文。
另一种可能的实施方式中:
接收单元1101,用于接收第一报文,前述第一报文包括段列表字段和IP目的地址字段,前述IP目的地址字段包括公共前缀字段和压缩段标识C-SID字段,前述公共前缀字段用于承载一个或多个段标识SID的公共前缀部分,前述C-SID字段用于承载第一C-SID,前述段列表字段至少用于承载多个C-SID,前述多个C-SID包括前述第一C-SID和第二C-SID,前述第二C-SID是前述段列表字段中前述第一C-SID的下一个C-SID;
更新单元1102,用于在前述段列表字段中前述第一C-SID的下一个位置的内容非零的情况下,将前述第二C-SID更新到前述IP目的地址字段的前述C-SID字段中,并基于更新后的IP目的地址字段中的内容进行处理获得第二报文;
发送单元1103,用于发送前述第二报文。
一种可能的实施方式中,上述段列表字段中前述第一C-SID是非替换特征SID。
一种可能的实施方式中,上述段列表字段中前述第一C-SID是替换特征SID。
一种可能的实施方式中,上述一个或多个SID的公共前缀部分包括前述一个或多个SID的公共的网段。
一种可能的实施方式中,上述一个或多个C-SID中的每一个C-SID包括对应的SID的节点标识和/或功能标识。
一种可能的实施方式中,上述段列表字段在SRH或G-SRH中。
一种可能的实施方式中,上述IP目的地址字段在IPv4报文头或IPv6报文头中。
一种可能的实施方式中,上述第一网络设备为候选路径的尾节点,前述候选路径为与前述段列表字段中的前述一个或多个C-SID对应的路径。
一种可能的实施方式中,上述第一网络设备为候选路径的尾节点,前述候选路径为与前述段列表字段中除前述第二C-SID之外的前述一个或多个C-SID对应的路径。
图11所示网络设备1100中各个单元的具体操作以及有益效果可以参见上述图7或图8及其可能的实施例中对应的描述,此处不再赘述。
在采用对应各个功能划分各个功能模块的情况下,图12示出了网络设备1200的一种可能的逻辑结构示意图,该网络设备1200可以是上述图9所示报文转发处理方法中所述的第二网络设备。该网络设备1200包括发送单元1201。其中:
发送单元1201,用于向第三网络设备发送段路由策略,前述段路由策略包括指示转发路径的段列表,前述段列表中包括一个或多个段标识SID,前述一个或多个SID包括第一SID,前述第一SID指示前述转发路径的尾节点,前述第一SID为替换特征SID。
在采用对应各个功能划分各个功能模块的情况下,图13示出了网络设备1300的一种可能的逻辑结构示意图,该网络设备1300可以是上述图9所示报文转发处理方法中所述的第三网络设备。该网络设备1300包括接收单元1301、封装单元1302和发送单元1303。其中:
接收单元1301,用于接收来自第二网络设备的段路由策略,前述段路由策略包括指示转发路径的段列表,前述段列表中包括一个或多个段标识SID,前述一个或多个SID包括第一SID,前述第一SID指示前述转发路径的尾节点,前述第一SID为替换特征SID,前述段路由策略用于指示前述第三网络设备发送第一报文时,将分别与前述段列表中一个或多个SID对应的压缩段标识C-SID封装在前述第一报文的报文头中的段列表字段中;
封装单元1302,用于将分别与前述段列表中一个或多个SID对应的C-SID封装在前述第一报文的报文头中的段列表字段中;
发送单元1303,用于发送前述第一报文。
一种可能的实施方式中,上述段列表字段在SRH或G-SRH中。
一种可能的实施方式中,上述第二网络设备是控制器,前述第三网络设备为前述转发路径的头节点。
图12所示网络设备1200和图13所示网络设备1300中各个单元的具体操作以及有益效果可以参见上述图9及其可能的实施例中对应的描述,此处不再赘述。
在采用对应各个功能划分各个功能模块的情况下,图14示出了网络设备1400的一种可能的逻辑结构示意图,该网络设备1400可以是上述图10所示报文转发处理方法中所述的第四网络设备。该网络设备1400包括接收单元1401、确定单元1402、封装单元1403和发送单元1404。其中:
接收单元1401,用于接收第一报文;
确定单元1402,用于确定与前述第一报文对应的转发路径的段列表和业务段标识SID,前述段列表中包括一个或多个SID,前述段列表中还包括与前述转发路径的尾节点对应的SID的可变部分;
封装单元1403,用于封装第一报文,获得第二报文,前述第二报文中包括前述一个或多个SID,和,前述业务SID的可变部分;
发送单元1404,用于发送前述第二报文。
一种可能的实施方式中,上述与前述尾节点对应的SID的可变部分为与前述尾节点对应的SID中的功能标识,前述业务SID的可变部分为前述业务SID中的功能标识。
一种可能的实施方式中,上述一个或多个SID中包括与前述尾节点对应的SID的上一跳SID,前述上一跳SID为指示出接口的SID。
一种可能的实施方式中,上述与前述尾节点对应的SID的可变部分为与前述尾节点对应的SID中的节点标识和功能标识,前述业务SID的可变部分为前述业务SID中的功能标识,前述第二报文中还包括与前述尾节点对应的SID中的节点标识。
另一种可能的实施方式中:
接收单元1401,用于接收第一报文;
确定单元1402,用于确定与前述第一报文对应的转发路径的段列表和业务段标识SID,前述段列表中包括一个或多个SID,前述段列表中还包括与前述转发路径的尾节点对应的SID的可变部分;
封装单元1403,用于封装第一报文,获得第二报文,前述第二报文中包括前述一个或多个SID、前述可变部分和前述业务SID;
发送单元1404,用于发送前述第二报文。
一种可能的实施方式中,上述第二报文为IPv4报文或为IPv6报文。
一种可能的实施方式中,上述接收单元用于接收第一报文之前,还用于:
接收来自第五网络设备的段路由策略,前述段路由策略包括前述段列表。
在采用对应各个功能划分各个功能模块的情况下,图15示出了网络设备1500的一种可能的逻辑结构示意图,该网络设备1500可以是上述图10所示报文转发处理方法中所述的第五网络设备。该网络设备1500包括发送单元1501。其中:
发送单元1501,用于向第四网络设备发送段路由策略;前述段路由策略包括指示转发路径的段列表,前述段列表中包括一个或多个段标识SID,前述段列表中还包括与前述转发路径的尾节点对应的SID的可变部分。
一种可能的实施方式中,上述与前述尾节点对应的SID的可变部分为与前述尾节点对应的SID中的功能标识。
一种可能的实施方式中,上述一个或多个SID中包括与前述尾节点对应的SID的上一跳SID,前述上一跳SID为指示出接口的SID。
一种可能的实施方式中,上述与前述尾节点对应的SID的可变部分为与前述尾节点对应的SID中的节点标识和功能标识。
图14所示网络设备1400和图15所示网络设备1500中各个单元的具体操作以及有益效果可以参见上述图10及其可能的实施例中对应的描述,此处不再赘述。
图16所示为本申请提供的网络设备1600的一种可能的硬件结构示意图,该网络设备1600可以是上述图7或图8所示报文转发处理方法中所述的第一网络设备。该网络设备1600包括:处理器1601、存储器1602和通信接口1603。处理器1601、通信接口1603以及存储器1602可以相互连接或者通过总线1604相互连接。
示例性的,存储器1602用于存储网络设备1600的计算机程序和数据,存储器1602可以包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read onlymemory,EPROM)或便携式只读存储器(compact disc read-only memory,CD-ROM)等。
上述方法实施例中第一网络设备的全部或部分单元的功能所需的软件或程序代码存储在存储器1602中。
一种可能的实施方式中,如果是部分单元的功能所需的软件或程序代码存储在存储器1602中,则处理器1601除了调用存储器1602中的程序代码实现部分功能外,还可以配合其他部件(如通信接口1603)共同完成方法实施例描述的其他功能(如接收或发送报文的功能)。
通信接口1603的个数可以为多个,用于支持网络设备1600进行通信,例如接收或发送报文等。
示例性的,处理器1601可以是中央处理器单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。处理器1601可以用于读取上述存储器1602中存储的程序,执行上述图7或图8及其可能的实施例所述的方法中第一网络设备执行的操作。
图16所示网络设备1600中各个单元的具体操作以及有益效果可以参见上述方法实施例中对应的描述,此处不再赘述。
图17所示为本申请提供的网络设备1700的一种可能的硬件结构示意图,该网络设备1700可以是上述图9所示报文转发处理方法中所述的第二网络设备。该网络设备1700包括:处理器1701、存储器1702和通信接口1703。处理器1701、通信接口1703以及存储器1702可以相互连接或者通过总线1704相互连接。
示例性的,存储器1702用于存储网络设备1700的计算机程序和数据,存储器1702可以包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read onlymemory,EPROM)或便携式只读存储器(compact disc read-only memory,CD-ROM)等。
上述方法实施例中第二网络设备的全部或部分单元的功能所需的软件或程序代码存储在存储器1702中。
一种可能的实施方式中,如果是部分单元的功能所需的软件或程序代码存储在存储器1702中,则处理器1701除了调用存储器1702中的程序代码实现部分功能外,还可以配合其他部件(如通信接口1703)共同完成方法实施例描述的其他功能(如接收或发送报文的功能)。
通信接口1703的个数可以为多个,用于支持网络设备1700进行通信,例如接收或发送报文等。
示例性的,处理器1701可以是中央处理器单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。处理器1701可以用于读取上述存储器1702中存储的程序,执行上述图9及其可能的实施例所述的方法中第二网络设备执行的操作。
图17所示网络设备1700中各个单元的具体操作以及有益效果可以参见上述方法实施例中对应的描述,此处不再赘述。
图18所示为本申请提供的网络设备1800的一种可能的硬件结构示意图,该网络设备1800可以是上述图9所示报文转发处理方法中所述的第三网络设备。该网络设备1800包括:处理器1801、存储器1802和通信接口1803。处理器1801、通信接口1803以及存储器1802可以相互连接或者通过总线1804相互连接。
示例性的,存储器1802用于存储网络设备1800的计算机程序和数据,存储器1802可以包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read onlymemory,EPROM)或便携式只读存储器(compact disc read-only memory,CD-ROM)等。
上述方法实施例中第三网络设备的全部或部分单元的功能所需的软件或程序代码存储在存储器1802中。
一种可能的实施方式中,如果是部分单元的功能所需的软件或程序代码存储在存储器1802中,则处理器1801除了调用存储器1802中的程序代码实现部分功能外,还可以配合其他部件(如通信接口1803)共同完成方法实施例描述的其他功能(如接收或发送报文的功能)。
通信接口1803的个数可以为多个,用于支持网络设备1800进行通信,例如接收或发送报文等。
示例性的,处理器1801可以是中央处理器单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。处理器1801可以用于读取上述存储器1802中存储的程序,执行上述图9及其可能的实施例所述的方法中第三网络设备执行的操作。
图18所示网络设备1800中各个单元的具体操作以及有益效果可以参见上述方法实施例中对应的描述,此处不再赘述。
图19所示为本申请提供的网络设备1900的一种可能的硬件结构示意图,该网络设备1900可以是上述图10所示报文转发处理方法中所述的第四网络设备。该网络设备1900包括:处理器1901、存储器1902和通信接口1903。处理器1901、通信接口1903以及存储器1902可以相互连接或者通过总线1904相互连接。
示例性的,存储器1902用于存储网络设备1900的计算机程序和数据,存储器1902可以包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read onlymemory,EPROM)或便携式只读存储器(compact disc read-only memory,CD-ROM)等。
上述方法实施例中第四网络设备的全部或部分单元的功能所需的软件或程序代码存储在存储器1902中。
一种可能的实施方式中,如果是部分单元的功能所需的软件或程序代码存储在存储器1902中,则处理器1901除了调用存储器1902中的程序代码实现部分功能外,还可以配合其他部件(如通信接口1903)共同完成方法实施例描述的其他功能(如接收或发送报文的功能)。
通信接口1903的个数可以为多个,用于支持网络设备1900进行通信,例如接收或发送报文等。
示例性的,处理器1901可以是中央处理器单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。处理器1901可以用于读取上述存储器1902中存储的程序,执行上述图10及其可能的实施例所述的方法中第四网络设备执行的操作。
图19所示网络设备1900中各个单元的具体操作以及有益效果可以参见上述方法实施例中对应的描述,此处不再赘述。
图20所示为本申请提供的网络设备2000的一种可能的硬件结构示意图,该网络设备2000可以是上述图10所示报文转发处理方法中所述的第五网络设备。该网络设备2000包括:处理器2001、存储器2002和通信接口2003。处理器2001、通信接口2003以及存储器2002可以相互连接或者通过总线2004相互连接。
示例性的,存储器2002用于存储网络设备2000的计算机程序和数据,存储器2002可以包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read onlymemory,EPROM)或便携式只读存储器(compact disc read-only memory,CD-ROM)等。
上述方法实施例中第五网络设备的全部或部分单元的功能所需的软件或程序代码存储在存储器2002中。
一种可能的实施方式中,如果是部分单元的功能所需的软件或程序代码存储在存储器2002中,则处理器2001除了调用存储器2002中的程序代码实现部分功能外,还可以配合其他部件(如通信接口2003)共同完成方法实施例描述的其他功能(如接收或发送报文的功能)。
通信接口2003的个数可以为多个,用于支持网络设备2000进行通信,例如接收或发送报文等。
示例性的,处理器2001可以是中央处理器单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。处理器2001可以用于读取上述存储器2002中存储的程序,执行上述图10及其可能的实施例所述的方法中第五网络设备执行的操作。
图20所示网络设备2000中各个单元的具体操作以及有益效果可以参见上述方法实施例中对应的描述,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述各个实施例及其可能的实施例中任意一个实施例的第一网络设备所做的操作。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述各个实施例及其可能的实施例中任意一个实施例的第二网络设备所做的操作。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述各个实施例及其可能的实施例中任意一个实施例的第三网络设备所做的操作。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述各个实施例及其可能的实施例中任意一个实施例的第四网络设备所做的操作。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述各个实施例及其可能的实施例中任意一个实施例的第五网络设备所做的操作。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品被计算机读取并执行时,上述各个实施例及其可能的实施例中任意一个实施例的第一网络设备所做的操作将被执行。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品被计算机读取并执行时,上述各个实施例及其可能的实施例中任意一个实施例的第二网络设备所做的操作将被执行。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品被计算机读取并执行时,上述各个实施例及其可能的实施例中任意一个实施例的第三网络设备所做的操作将被执行。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品被计算机读取并执行时,上述各个实施例及其可能的实施例中任意一个实施例的第四网络设备所做的操作将被执行。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品被计算机读取并执行时,上述各个实施例及其可能的实施例中任意一个实施例的第五网络设备所做的操作将被执行。
综上所述,本申请实施例能够拓宽报文头压缩技术(例如G-SRv6头压缩技术)的应用场景,使得该技术可以在更多应用场景下充分发挥其报文头开销低,负载传输效率高的优势。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (36)

1.一种报文转发处理方法,其特征在于,所述方法包括:
第一网络设备接收第一报文,所述第一报文包括段列表字段和IP目的地址字段,所述IP目的地址字段包括公共前缀字段和压缩段标识C-SID字段,所述公共前缀字段用于承载一个或多个段标识SID的公共前缀部分,所述C-SID字段用于承载第一C-SID,所述段列表字段至少用于承载一个或多个C-SID,和,第一SID,所述一个或多个C-SID包括所述第一C-SID;所述第一SID是所述段列表字段中所述第一C-SID的下一个SID;
在所述段列表字段中所述第一C-SID的下一个位置的内容为零的情况下,所述第一网络设备将所述第一SID更新到所述IP目的地址字段中,并基于更新后的IP目的地址字段中的内容进行处理获得第二报文;所述下一个位置占用的字节长度与所述段列表字段中一个C-SID占用的字节长度相同;
所述第一网络设备发送所述第二报文。
2.一种报文转发处理方法,其特征在于,所述方法包括:
第一网络设备接收第一报文,所述第一报文包括段列表字段和IP目的地址字段,所述IP目的地址字段包括公共前缀字段和压缩段标识C-SID字段,所述公共前缀字段用于承载一个或多个段标识SID的公共前缀部分,所述C-SID字段用于承载第一C-SID,所述段列表字段至少用于承载多个C-SID,所述多个C-SID包括所述第一C-SID和第二C-SID,所述第二C-SID是所述段列表字段中所述第一C-SID的下一个C-SID;
在所述段列表字段中所述第一C-SID的下一个位置的内容非零的情况下,所述第一网络设备将所述第二C-SID更新到所述IP目的地址字段的所述C-SID字段中,并基于更新后的IP目的地址字段中的内容进行处理获得第二报文;所述下一个位置占用的字节长度与所述段列表字段中一个C-SID占用的字节长度相同;
所述第一网络设备发送所述第二报文。
3.根据权利要求1或2所述的方法,其特征在于,所述段列表字段中所述第一C-SID是非替换特征SID。
4.根据权利要求1或2所述的方法,其特征在于,所述段列表字段中所述第一C-SID是替换特征SID。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述一个或多个SID的公共前缀部分包括所述一个或多个SID的公共的网段。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述一个或多个C-SID中的每一个C-SID包括对应的SID的节点标识和/或功能标识。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述段列表字段在SRH或G-SRH中。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述IP目的地址字段在IPv4报文头或IPv6报文头中。
9.根据权利要求1或3-8任一项所述的方法,其特征在于,所述第一网络设备为候选路径的尾节点,所述候选路径为与所述段列表字段中的所述一个或多个C-SID对应的路径。
10.根据权利要求2所述的方法,其特征在于,所述第一网络设备为候选路径的尾节点,所述候选路径为与所述段列表字段中除所述第二C-SID之外的所述一个或多个C-SID对应的路径。
11.一种报文转发处理方法,其特征在于,所述方法包括:
第二网络设备向第三网络设备发送段路由策略,所述段路由策略包括指示转发路径的段列表,所述段列表中包括一个或多个段标识SID,所述一个或多个SID包括第一SID,所述第一SID指示所述转发路径的尾节点,所述第一SID为替换特征SID。
12.一种报文转发处理方法,其特征在于,所述方法包括:
第三网络设备接收来自第二网络设备的段路由策略,所述段路由策略包括指示转发路径的段列表,所述段列表中包括一个或多个段标识SID,所述一个或多个SID包括第一SID,所述第一SID指示所述转发路径的尾节点,所述第一SID为替换特征SID,所述段路由策略用于指示所述第三网络设备发送第一报文时,将分别与所述段列表中一个或多个SID对应的压缩段标识C-SID封装在所述第一报文的报文头中的段列表字段中;
所述第三网络设备将分别与所述段列表中一个或多个SID对应的C-SID封装在所述第一报文的报文头中的段列表字段中;
所述第三网络设备发送所述第一报文。
13.根据权利要求12所述的方法,其特征在于,所述段列表字段在SRH或G-SRH中。
14.根据权利要求11-13任一项所述的方法,其特征在于,所述第二网络设备是控制器,所述第三网络设备为所述转发路径的头节点。
15.一种报文转发处理方法,其特征在于,所述方法包括:
第四网络设备接收第一报文;
所述第四网络设备确定与所述第一报文对应的转发路径的段列表和业务段标识SID,所述段列表中包括一个或多个SID,所述段列表中还包括与所述转发路径的尾节点对应的SID的可变部分;
所述第四网络设备封装第一报文,获得第二报文,所述第二报文中包括所述一个或多个SID对应的压缩段标识C-SID,和,所述业务SID的可变部分;
所述第四网络设备发送所述第二报文。
16.根据权利要求15所述的方法,其特征在于,与所述尾节点对应的SID的可变部分为与所述尾节点对应的SID中的功能标识,所述业务SID的可变部分为所述业务SID中的功能标识。
17.根据权利要求16所述的方法,其特征在于,所述一个或多个SID中包括与所述尾节点对应的SID的上一跳SID,所述上一跳SID为指示出接口的SID。
18.根据权利要求15所述的方法,其特征在于,与所述尾节点对应的SID的可变部分为与所述尾节点对应的SID中的节点标识和功能标识,所述业务SID的可变部分为所述业务SID中的功能标识,所述第二报文中还包括与所述尾节点对应的SID中的节点标识。
19.一种报文转发处理方法,其特征在于,所述方法包括:
第四网络设备接收第一报文;
所述第四网络设备确定与所述第一报文对应的转发路径的段列表和业务段标识SID,所述段列表中包括一个或多个SID,所述段列表中还包括与所述转发路径的尾节点对应的SID的可变部分;
所述第四网络设备封装第一报文,获得第二报文,所述第二报文中包括所述一个或多个SID对应的压缩段标识C-SID、所述可变部分和所述业务SID;
所述第四网络设备发送所述第二报文。
20.根据权利要求15-19任一项所述的方法,其特征在于,所述第二报文为IPv4报文或为IPv6报文。
21.根据权利要求15-20任一项所述的方法,其特征在于,所述第四网络设备接收第一报文之前,还包括:
所述第四网络设备接收来自第五网络设备的段路由策略,所述段路由策略包括所述段列表。
22.一种报文转发处理方法,其特征在于,所述方法包括:
第五网络设备向第四网络设备发送段路由策略;所述段路由策略包括指示转发路径的段列表,所述段列表中包括一个或多个段标识SID,所述段列表中还包括与所述转发路径的尾节点对应的SID的可变部分。
23.根据权利要求22所述的方法,其特征在于,与所述尾节点对应的SID的可变部分为与所述尾节点对应的SID中的功能标识。
24.根据权利要求23所述的方法,其特征在于,所述一个或多个SID中包括与所述尾节点对应的SID的上一跳SID,所述上一跳SID为指示出接口的SID。
25.根据权利要求22所述的方法,其特征在于,与所述尾节点对应的SID的可变部分为与所述尾节点对应的SID中的节点标识和功能标识。
26.一种网络设备,其特征在于,所述设备包括:
接收单元,用于接收第一报文,所述第一报文包括段列表字段和IP目的地址字段,所述IP目的地址字段包括公共前缀字段和压缩段标识C-SID字段,所述公共前缀字段用于承载一个或多个段标识SID的公共前缀部分,所述C-SID字段用于承载第一C-SID,所述段列表字段至少用于承载一个或多个C-SID,和,第一SID,所述一个或多个C-SID包括所述第一C-SID;所述第一SID是所述段列表字段中所述第一C-SID的下一个SID;
更新单元,用于在所述段列表字段中所述第一C-SID的下一个位置的内容为零的情况下,将所述第一SID更新到所述IP目的地址字段中,并基于更新后的IP目的地址字段中的内容进行处理获得第二报文;所述下一个位置占用的字节长度与所述段列表字段中一个C-SID占用的字节长度相同;
发送单元,用于发送所述第二报文。
27.一种网络设备,其特征在于,所述设备包括:
接收单元,用于接收第一报文,所述第一报文包括段列表字段和IP目的地址字段,所述IP目的地址字段包括公共前缀字段和压缩段标识C-SID字段,所述公共前缀字段用于承载一个或多个段标识SID的公共前缀部分,所述C-SID字段用于承载第一C-SID,所述段列表字段至少用于承载多个C-SID,所述多个C-SID包括所述第一C-SID和第二C-SID,所述第二C-SID是所述段列表字段中所述第一C-SID的下一个C-SID;
更新单元,用于在所述段列表字段中所述第一C-SID的下一个位置的内容非零的情况下,将所述第二C-SID更新到所述IP目的地址字段的所述C-SID字段中,并基于更新后的IP目的地址字段中的内容进行处理获得第二报文;所述下一个位置占用的字节长度与所述段列表字段中一个C-SID占用的字节长度相同;
发送单元,用于发送所述第二报文。
28.一种网络设备,其特征在于,所述设备包括:
发送单元,用于向第三网络设备发送段路由策略,所述段路由策略包括指示转发路径的段列表,所述段列表中包括一个或多个段标识SID,所述一个或多个SID包括第一SID,所述第一SID指示所述转发路径的尾节点,所述第一SID为替换特征SID。
29.一种网络设备,其特征在于,所述设备包括:
接收单元,用于接收来自第二网络设备的段路由策略,所述段路由策略包括指示转发路径的段列表,所述段列表中包括一个或多个段标识SID,所述一个或多个SID包括第一SID,所述第一SID指示所述转发路径的尾节点,所述第一SID为替换特征SID,所述段路由策略用于指示所述第三网络设备发送第一报文时,将分别与所述段列表中一个或多个SID对应的压缩段标识C-SID封装在所述第一报文的报文头中的段列表字段中;
封装单元,用于将分别与所述段列表中一个或多个SID对应的C-SID封装在所述第一报文的报文头中的段列表字段中;
发送单元,用于发送所述第一报文。
30.一种网络设备,其特征在于,所述设备包括:
接收单元,用于接收第一报文;
确定单元,用于确定与所述第一报文对应的转发路径的段列表和业务段标识SID,所述段列表中包括一个或多个SID,所述段列表中还包括与所述转发路径的尾节点对应的SID的可变部分;
封装单元,用于封装第一报文,获得第二报文,所述第二报文中包括所述一个或多个SID对应的压缩段标识C-SID,和,所述业务SID的可变部分;
发送单元,用于发送所述第二报文。
31.一种网络设备,其特征在于,所述设备包括:
接收单元,用于接收第一报文;
确定单元,用于确定与所述第一报文对应的转发路径的段列表和业务段标识SID,所述段列表中包括一个或多个SID,所述段列表中还包括与所述转发路径的尾节点对应的SID的可变部分;
封装单元,用于封装第一报文,获得第二报文,所述第二报文中包括所述一个或多个SID对应的压缩段标识C-SID、所述可变部分和所述业务SID;
发送单元,用于发送所述第二报文。
32.一种网络设备,其特征在于,所述设备包括:
发送单元,用于向第四网络设备发送段路由策略;所述段路由策略包括指示转发路径的段列表,所述段列表中包括一个或多个段标识SID,所述段列表中还包括与所述转发路径的尾节点对应的SID的可变部分。
33.一种网络设备,其特征在于,包括处理器和存储器,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,使得所述网络设备执行如权利要求1至10任一项所述的方法;或者,
使得所述网络设备执行如权利要求11所述的方法;或者,
使得所述网络设备执行如权利要求12至14任一项所述的方法;或者,
使得所述网络设备执行如权利要求15至21任一项所述的方法;或者,
使得所述网络设备执行如权利要求22至25任一项所述的方法。
34.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至10任意一项所述的方法;或者,
所述计算机程序被处理器执行以实现权利要求11所述的方法;或者,
所述计算机程序被处理器执行以实现权利要求12至14任意一项所述的方法;或者,
所述计算机程序被处理器执行以实现权利要求15至21任意一项所述的方法;或者,
所述计算机程序被处理器执行以实现权利要求22至25任意一项所述的方法。
35.一种通信系统,其特征在于,所述通信系统包括第一网络设备和第二网络设备,其中,所述第一网络设备用于执行权利要求11所述的方法,所述第二网络设备用于执行权利要求12-14所述的方法;或者,
所述第一网络设备用于执行权利要求15-21所述的方法,所述第二网络设备用于执行权利要求22-25所述的方法。
36.一种计算机程序产品,其特征在于,所述计算机程序产品存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至10任意一项所述的方法;或者,
所述计算机程序被处理器执行以实现权利要求11所述的方法;或者,
所述计算机程序被处理器执行以实现权利要求12至14任意一项所述的方法;或者,
所述计算机程序被处理器执行以实现权利要求15至21任意一项所述的方法;或者,
所述计算机程序被处理器执行以实现权利要求22至25任意一项所述的方法。
CN202210860789.2A 2022-06-28 2022-07-21 报文转发处理方法及相关装置 Pending CN117354221A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2022107459446 2022-06-28
CN202210745944 2022-06-28

Publications (1)

Publication Number Publication Date
CN117354221A true CN117354221A (zh) 2024-01-05

Family

ID=89361981

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210860789.2A Pending CN117354221A (zh) 2022-06-28 2022-07-21 报文转发处理方法及相关装置

Country Status (1)

Country Link
CN (1) CN117354221A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117596204A (zh) * 2024-01-19 2024-02-23 杭州网鼎科技有限公司 一种SRv6网络下动态加速的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117596204A (zh) * 2024-01-19 2024-02-23 杭州网鼎科技有限公司 一种SRv6网络下动态加速的方法

Similar Documents

Publication Publication Date Title
US8665887B2 (en) Number automatic routing method, updating method, withdrawing method, router and device
US7590119B2 (en) Method and apparatus for context-based prefix updates in border gateway protocol
EP1320224B1 (en) Telecommunications network and a packet header therefor
CN106059924B (zh) 一种管理信息的方法,装置及系统
CN107770073B (zh) 一种信息同步的方法,装置及系统
CN111385209B (zh) 一种报文处理方法、报文转发方法、装置及设备
US20220038364A1 (en) SRv6-Based Data Processing Method and Related Network Device
CN113556284B (zh) 数据包处理的方法及设备
WO2022184169A1 (zh) 报文转发方法、系统、存储介质及电子装置
CN114338495A (zh) 业务处理方法以及相关设备
CN117354221A (zh) 报文转发处理方法及相关装置
EP4024807A1 (en) Message sending method and apparatus
CN114726775A (zh) 一种路由信息发送方法、报文发送方法及相关装置
WO2002045375A2 (en) Auto-tunnelling in a heterogenous network
WO2021189993A1 (zh) 路由方法、路由装置及计算机可读存储介质
CN113438160B (zh) 路由方法、路由装置及计算机可读存储介质
WO2024007939A1 (zh) 报文处理方法、网络设备及通信系统
WO2024041064A1 (zh) Quic报文的传输方法及相关设备
CN116074395A (zh) 一种报文发送方法及装置
CN117640555A (zh) Quic报文的传输方法及相关设备
CN116800660A (zh) 转发表的生成方法及装置、存储介质、电子装置
CN114531391A (zh) 确定下一跳的方法及装置
CN118075186A (zh) 用于sd-wan的通信方法、报文处理方法及网络设备
CN117640502A (zh) 一种段标识sid通告方法、网络设备及存储介质
CN117376248A (zh) 报文转发方法、装置、电子设备及计算机程序产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication