CN112583711B - 一种报文处理方法及装置 - Google Patents
一种报文处理方法及装置 Download PDFInfo
- Publication number
- CN112583711B CN112583711B CN201910925207.2A CN201910925207A CN112583711B CN 112583711 B CN112583711 B CN 112583711B CN 201910925207 A CN201910925207 A CN 201910925207A CN 112583711 B CN112583711 B CN 112583711B
- Authority
- CN
- China
- Prior art keywords
- function
- message
- topology
- identifier
- identification
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 121
- 230000006870 function Effects 0.000 claims description 1173
- 238000012545 processing Methods 0.000 claims description 113
- 230000008569 process Effects 0.000 claims description 39
- 238000004891 communication Methods 0.000 claims description 28
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 238000013461 design Methods 0.000 description 117
- 238000010586 diagram Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000002124 flame ionisation detection Methods 0.000 description 3
- 101100064323 Arabidopsis thaliana DTX47 gene Proteins 0.000 description 2
- 101100256916 Caenorhabditis elegans sid-1 gene Proteins 0.000 description 2
- 101150039239 LOC1 gene Proteins 0.000 description 2
- 101150026676 SID1 gene Proteins 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 101000823100 Homo sapiens Putative alpha-1-antitrypsin-related protein Proteins 0.000 description 1
- 102100022709 Putative alpha-1-antitrypsin-related protein Human genes 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/76—Routing in software-defined topologies, e.g. routing between virtual machines
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请提供一种报文处理方法及装置,应用于分段路由,该方法包括:第二设备接收来自第一设备的第一报文,所述第一报文的报头包括功能指示信息和功能标识信息,所述功能指示信息包括所述第一报文经过的至少一个设备的功能指示;所述功能指示用于指示所述设备是否需要执行网络功能;所述功能标识信息包括所述第一报文经过的至少一个需执行网络功能的设备对应的功能标识;第二设备若根据所述第二设备的功能指示,确定所述第二设备需要执行网络功能,则通过所述功能标识信息中的所述第二设备的功能标识执行对应的网络功能。该方法可以减少报头的开销,有助于提高报文的转发性能。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种报文处理方法及装置。
背景技术
分段路由(Segment Routing,SR)是一种源路由技术,网络入口节点使用一定顺序的段(Segment)作为指令来指导数据包的转发,通常用段标识符(Segment Identifier,SID)来描述一个段,一个段标识符中包括分段路由中的一个节点的路由信息和功能信息。通过路由信息,可以实现对分段路由的报文的转发。通过功能信息,可以确定当前节点需执行的网络功能。
其中,SR中的报文格式可以基于IPv6的格式。在进行报文的路由转发时,IPv6的报头中携带有源地址和目的地址,源地址为当前节点的SID信息,目的地址为下一路由节点的SID信息。通过目的地址中的SID的路由信息,当前节点可以将报文转发至下一路由节点。为保证报文的正常转发,需要使路由过程中的每个节点都知晓下一路由节点的SID信息,因此,转发报文的扩展报头域中,需携带路由过程中的每个节点的SID信息。
现有技术中,由于每个段标识符为固定字节长度,无论节点是否需要执行网络功能,都需要占用固定字节长度;另外,在路由过程中,可能存在执行相同网络功能的节点,也需要重复写入扩展报头域,导致分段路由的报头开销很大。
发明内容
本申请提供一种报文处理方法、装置及系统,用以解决SRv6报头的开销过大的问题。
第一方面,本申请提供一种报文处理方法,应用于分段路由,第二设备接收来自第一设备的第一报文,所述第一报文的报头包括功能指示信息和功能标识信息,所述功能指示信息包括所述第一报文经过的至少一个设备的功能指示;所述功能指示用于指示所述设备是否需要执行网络功能;所述功能标识信息包括所述第一报文经过的至少一个需执行网络功能的设备对应的功能标识;所述第二设备若根据所述第二设备的功能指示,确定所述第二设备需要执行网络功能,则通过所述功能标识信息中的所述第二设备的功能标识执行对应的网络功能。
上述实施例中,可以通过功能指示信息,指示第一报文经过的各指定的设备是否需要执行网络功能。设置功能指示,用于指示在路径上指定的设备上是否需要执行网络功能。在处理报头时,由于功能标识信息是单独设置的,可以根据功能指示确定在处理路由信息的同时,确定是否还需要读取功能标识,有助于设备快速处理报文。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述第二设备的拓扑标识的字段包括所述第二设备的功能指示;此时,第二设备根据所述拓扑标识信息中,所述第二设备的拓扑标识的字段中的功能指示,确定所述第二设备是否需要执行网络功能。
上述方案中,通过携带在拓扑标识中的功能指示,可以不额外占用字段存储功能指示信息,节省了报文的开销的同时,设备通过功能指示,若确定不需要执行网络功能的设备,则不需要读取第一报文中的功能标识信息,也不需要在本地查找功能标识信息对应的功能,提高了设备处理报文的效率。
一种可能的设计,所述第一报文的扩展报头还包括第一指针;所述第一指针用于指向所述第二设备的拓扑标识;此时,第二设备根据所述第一指针,在所述拓扑标识信息中确定所述第二设备的拓扑标识;第二设备根据所述第二设备的拓扑标识的字段中的功能指示,确定所述第二设备是否需要执行网络功能。
上述方案中,通过第一指针,可以快速查找到第二设备的拓扑标识,及拓扑标识的字段中的功能指示,以提高设备处理报文的效率。
一种可能的设计,所述第一报文的目的地址包括所述第二设备的拓扑标识;所述第二设备的拓扑标识的字段包括所述第二设备的功能指示;此时,第二设备根据所述第一报文的目的地址中,所述第二设备的拓扑标识的字段中的功能指示,确定所述第二设备是否需要执行网络功能。
上述方案中,可以通过第一报文的目的地址中的拓扑标识,确定拓扑标识字段中的功能指示,无需至报头的拓扑标识信息中确定第二设备的拓扑标识,提高了设备的处理效率。
一种可能的设计,所述功能指示信息占用第一连续字段;此时,第二设备根据所述第一连续字段,确定所述第二设备的功能指示,进而确定是否需要执行网络功能。
上述方案中,可以快速方便的获取路径上的所有需要执行网络功能的设备,即可以获取全局的服务部署情况,有利于对报文实现更好的处理。
一种可能的设计,所述功能标识信息占用第二连续字段;此时,第二设备在所述第二连续字段中,确定所述第二设备的功能标识,并执行所述第二设备的功能标识对应的网络功能。
上述方案中,解耦了功能标识与拓扑标识,有利于减少报文的开销,提高报头中信息的灵活设置。
一种可能的设计,所述第一报文的扩展报头还包括第二指针;所述第二指针用于指示所述第二连续字段中所述第二设备的功能标识;此时,第二设备根据所述第二指针,在所述第二连续字段中,确定所述第二设备的功能标识,并执行所述第二设备的功能标识对应的网络功能。
上述方案中,通过第二指针指示的第二设备的功能标识,可以快速在报头中的功能标识信息中确定第二设备的功能标识,提高了设备的处理效率。
一种可能的设计,所述第一报文的扩展报头还包括功能索引信息;所述功能索引信息包括所述第一报文经过的至少一个设备所执行的网络功能的功能标识的功能索引,功能索引与功能标识之间具有对应关系;此时,第二设备根据所述第二设备的功能索引,在所述功能标识信息中,确定所述第二设备的功能索引对应的功能标识;第二设备根据所述第二设备的功能索引对应的功能标识,执行对应的网络功能。
上述方案中,解耦了功能标识与拓扑标识,有利于减少报文的开销,提高报头中信息的灵活设置。有利于对功能标识的复用,若确定转发报文的设备执行相同的网络功能,可以通过功能索引的指针,指向相同的功能标识,进而,可以节省报头的开销。
一种可能的设计,所述功能索引信息占用第三连续字段;所述第一报文的扩展报头还包括第三指针;所述第三指针用于指向所述功能索引信息中所述第二设备的功能索引;此时,第二设备可以通过所述第三指针,确定所述第二设备的功能索引。
上述方案中,通过第三指针,可以快速在报头中的功能索引信息中确定第二设备的功能索引,进而确定功能索引对应的功能标识,并执行功能标识对应的网络功能,提高了设备的处理效率。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息和第一指针;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;若所述第二设备需要执行网络功能,则所述第二设备的功能索引与所述第二设备的拓扑标识占用连续的字段;所述第一指针用于指向所述第二设备的拓扑标识;此时,第二设备通过所述第一指针,确定所述第二设备的功能索引与所述第二设备的拓扑标识占用连续的字段,进而确定所述第二设备的功能索引。
上述方案中,第二设备的功能索引与所述第二设备的拓扑标识占用连续的字段,使得可以不为功能索引设置第三指针,仅通过第一指针,即可以确定第二设备的功能索引,节省了报头的开销。
一种可能的设计,所述第二连续字段中包括第一功能标识;所述第二设备将所述第一功能标识,作为所述第二设备的功能标识;所述第二设备根据在本地存储的第二设备的功能标识与所述第二设备的网络功能的对应关系,执行所述第二设备的功能标识对应的网络功能。
上述方案中,通过设置第一功能标识,使得报头的开销极大的降低,通过解耦了第一功能标识与拓扑标识,提高报头中信息的灵活设置。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息和第一指针;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;若所述第二设备需要执行网络功能,则所述功能标识信息中的所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段;所述第一指针用于指向所述第二设备的拓扑标识;此时,第二设备通过所述第一指针,确定所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段,进而确定所述第二设备的功能标识,进而根据所述第二设备的功能标识执行对应的网络功能。
上述方案中,通过将功能标识信息中的所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段,提高报头中信息的灵活设置,并可以兼容SRv6中的SID表,扩展了本申请实施例的适用范围。
一种可能的设计,第二设备若根据所述第二设备的功能指示,确定所述第二设备不需要执行网络功能,则所述第二设备不处理所述第一报文中的功能标识信息。
上述方案中,针对不需要执行网络功能的设备,则不需要读取第一报文中的功能标识信息,也不需要在本地查找功能标识信息对应的功能,提高了设备对报文的处理效率。
一种可能的设计,第二设备若根据所述第一报文确定存在第三设备,则向所述第三设备转发所述第一报文;所述第三设备为所述第一报文指定的所述第二设备的下一设备。
上述方案中,通过确定是否存在第三设备,是否需要转发第一报文,实现对第一报文的分段路由。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;此时,第二设备根据所述拓扑标识信息,确定所述第三设备的拓扑标识;第二设备根据所述第三设备的拓扑标识,更新所述第一报文的目的地址;第二设备向所述第三设备转发所述更新后的所述第一报文。
上述方案中,通过获取三设备的拓扑标识,更新所述第一报文的目的地址,进而实现对第一报文的转发。
一种可能的设计,所述功能标识信息占用第二连续字段;所述第一报文的报头还包括第二指针;所述第二指针用于指示所述功能标识信息中所述第二设备的功能标识;所述第二设备更新所述第二指针,更新后的所述第二指针指向指定的下一需要执行网络功能的设备的功能标识。
上述方案中,第二设备可以更新第二指针,以使转发过程中,设备接收到的报文中,第二指针在使用时,指向的都是需执行网络功能的当前设备,进而可以快速确定该设备的功能标识。
一种可能的设计,所述第一报文的扩展报头还包括功能索引信息;所述功能索引信息包括所述第一报文经过的至少一个设备所执行的网络功能的功能标识的功能索引,功能索引与功能标识之间具有对应关系;所述功能索引信息占用第三连续字段;所述第一报文的扩展报头还包括第三指针;所述第三指针用于指向所述功能索引信息中所述第二设备的功能索引;第二设备更新所述第三指针,所述更新后的第三指针指向指定的下一需要执行网络功能的设备的功能索引。
上述方案中,第二设备可以更新第三指针,以使转发过程中,设备接收到的报文中,第三指针在使用时,指向的都是需执行网络功能的当前设备,进而可以快速确定该设备的功能标识。
一种可能的设计,所述第一报文的扩展报头还包括功能索引信息;所述功能索引信息包括所述第一报文经过的至少一个设备所执行的网络功能的功能标识的功能索引,功能索引与功能标识之间具有对应关系;所述第二设备的功能索引与所述第二设备的拓扑标识占用连续的字段;所述第一报文的扩展报头还包括第一指针;所述第一指针用于指向所述第二设备的拓扑标识;此时,第二设备根据所述第一指针及所述第二设备的拓扑标识及所述第二设备的功能索引的长度,确定所述第三设备的拓扑标识。
上述方案中,拓扑标识和功能索引成组出现,因此,第二设备可以根据第一指针及所述第二设备的拓扑标识及所述第二设备的功能索引的长度,确定所述第三设备的拓扑标识,可以无需第三指针,即可确定第三设备的拓扑标识。
一种可能的设计,所述拓扑标识信息占用第四连续字段;所述第一报文的扩展报头还包括第一指针;所述第一指针用于指向所述第二设备的拓扑标识;此时,第二设备根据所述第一指针及所述第二设备的拓扑标识的长度,在所述第四连续字段中,确定所述第三设备的拓扑标识。
上述方案中,由于拓扑标识信息占用第四连续字段,此时,第二设备可以根据第一指针及拓扑标识的长度,确定第三设备的拓扑标识。
一种可能的设计,所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段;所述第一报文的扩展报头还包括第一指针;所述第一指针用于指向所述第二设备的拓扑标识;此时,第二设备根据所述第一指针及所述第二设备的拓扑标识及所述第二设备的功能标识的长度,确定所述第三设备的拓扑标识。
上述方案中,由于拓扑标识信息与功能标识信息成组出现,第二设备可以根据第一指针及所述第二设备的拓扑标识及所述第二设备的功能标识的长度,确定第三设备的拓扑标识。
一种可能的设计,所述第二设备向所述第三设备转发所述更新后的所述第一报文之前,所述第二设备更新所述第一指针,所述更新后的第一指针指向所述第三设备的拓扑标识。
上述方案中,第二设备可以更新第一指针,以使转发过程中,设备接收到的报文中,第一指针在使用时,指向的都是当前设备的拓扑标识,进而设备可以根据第一指针快速确定该设备的拓扑标识。
一种可能的设计,所述第一报文的目的地址包括:多个设备的拓扑标识,此时,第二设备若确定所述第一报文的目的地址包括所述第三设备的拓扑标识,则在所述第一报文的目的地址中,确定第三设备的拓扑标识。
上述方案中,通过目的地址中的多个拓扑标识,确定第三设备的拓扑标识,有效利用了目的地址携带拓扑标识的能力,进而更新第一报文的目的地址,提高了报文更新目的地址的效率,提高了报文的处理效率。
一种可能的设计,所述第一报文的扩展报头包括所述拓扑标识信息的至少一个拓扑标识组;所述拓扑标识组包括的拓扑标识的数量与所述第一报文中目的地址可承载的拓扑标识的数量相同;此时,第二设备若确定所述第一报文的目的地址不包括所述第三设备的拓扑标识,则根据至少一个拓扑标识组,确定所述第三设备的拓扑标识;第二设备将所述第一报文的目的地址中的多个拓扑标识更新为所述第三设备的拓扑标识所在的拓扑标识组的多个拓扑标识。
上述方案中,通过扩展报头中的拓扑标识组,确定第三设备的拓扑标识,进而更新第一报文的目的地址,有效利用了目的地址携带拓扑标识的能力,并根据路径上需携带的拓扑标识的个数,在扩展报头中的拓扑标识组中查找无法存储于目的地址中的拓扑标识,实现了对拓扑标识的灵活读取,提高了报文更新目的地址的效率,提高了报文的处理效率。
一种可能的设计,第一报文的扩展报头还包括第四指针;所述第四指针用于指向拓扑标识组;此时,第二设备将所述第四指针对应的第一拓扑标识组,确定为所述第三设备的拓扑标识所在的拓扑标识组。
上述方案中,通过第四指针,可以在扩展报头中的拓扑标识组中快速查找拓扑标识,提高了报文更新目的地址的效率,提高了报文的处理效率。
一种可能的设计,第二设备若确定所述第一报文的扩展报头包括除所述第一拓扑标识组的其他拓扑标识组,则将所述第四指针指向所述第一拓扑标识组的下一拓扑标识组。
上述方案中,通过更新第四指针,保证了转发过程中,设备接收到的报文中,第四指针在使用时,指向的都是当前设备的拓扑标识所在的拓扑标识组,进而可以快速确定该设备的拓扑标识。
一种可能的设计,所述第一报文的扩展报头还包括第一拓扑标识;所述第一拓扑标识用于指示所述第一报文经过的至少一个设备的路由信息;第二设备根据本地存储的拓扑标识与第三设备的拓扑标识和/或端口的对应关系,确定所述第一拓扑标识对应的第三设备的目的地址;第二设备根据所述第一拓扑标识对应的所述第三设备的目的地址,将所述第一报文转发至所述第三设备。
上述方案中,通过将功能标识设置为第一功能标识,用于指向多个设备的网络功能,进而极大的压缩了报头的开销。
一种可能的设计,所述第一报文的目的地址包括:所述第二设备的拓扑标识或所述第一拓扑标识;或者,所述第一报文的目的地址包括:所述第二设备的拓扑标识或所述第一拓扑标识的任一项,及所述第二设备的功能标识或所述第一功能标识的任一项。
上述方案中,通过对目的地址的灵活设置,以满足不同场景的需要,实现对报头的灵活配置。
第二方面,本申请实施例提供一种报文处理方法,应用于分段路由,第一设备生成第一报文;所述第一报文的报头包括功能标识信息和功能指示信息;所述功能标识信息包括所述第一报文经过的至少一个需执行网络功能的设备对应的功能标识;所述功能指示信息包括所述第一报文经过的至少一个设备的功能指示;所述功能指示用于指示所述设备是否需要执行网络功能;第一设备向第二设备发送所述第一报文;所述第二设备为所述第一设备指定的下一设备。
上述实施例中,通过在报文设置功能指示信息,指示第一报文经过的各指定的设备是否需要执行网络功能。设置功能指示,用于指示在路径上指定的设备上是否需要执行网络功能。使得接收到第一报文的设备在处理报头时,通过将功能标识信息与路由信息单独设置,可以根据功能指示确定在处理路由信息的同时,确定是否还需要读取功能标识,有助于设备快速处理报文。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述设备的拓扑标识的字段包括所述设备的功能指示。
上述方案中,通过携带在拓扑标识中的功能指示,可以不额外占用字段存储功能指示信息,节省了报文的开销的同时,设备通过功能指示,若确定不需要执行网络功能的设备,则不需要读取第一报文中的功能标识信息,也不需要在本地查找功能标识信息对应的功能,提高了设备处理报文的效率。
一种可能的设计,所述第一报文的报头还包括第一指针;所述第一设备将第一指针指向第二设备的拓扑标识。
上述方案中,通过第一指针,可以快速查找到第二设备的拓扑标识,及拓扑标识的字段中的功能指示,以提高设备处理报文的效率。
一种可能的设计,所述第一报文的目的地址包括所述第二设备的拓扑标识;所述第二设备的拓扑标识的字段包括所述第二设备的功能指示。
上述方案中,可以通过第一报文的目的地址中的拓扑标识,确定拓扑标识字段中的功能指示,无需至报头的拓扑标识信息中确定第二设备的拓扑标识,提高了设备的处理效率。
一种可能的设计,所述功能指示信息占用第一连续字段;所述第一连续字段用于所述设备根据所述第一连续字段确定所述设备的功能指示。
上述方案中,通过将功能指示信息设置为第一连续字段,可以快速方便的获取路径上的所有需要执行网络功能的设备,即可以获取全局的服务部署情况,有利于对报文实现更好的处理。
一种可能的设计,所述功能标识信息占用第二连续字段;所述第二连续字段用于所述设备根据所述第二连续字段,确定所述设备的功能标识。
上述方案中,解耦了功能标识与拓扑标识,有利于减少报文的开销,提高报头中信息的灵活设置。
一种可能的设计,所述第一报文的扩展报头还包括第二指针;第一设备若确定所述第二设备需执行网络功能,则将所述第二指针指向所述第二连续字段中所述第二设备的功能标识。
上述方案中,通过第二指针指示的第二设备的功能标识,可以使得接收第一报文的设备快速在报头中的功能标识信息中确定第二设备的功能标识,提高了设备的处理效率。
一种可能的设计,所述第一报文的扩展报头还包括功能索引信息;所述功能索引信息包括所述第一报文经过的至少一个设备所执行的网络功能的功能标识的功能索引,功能索引与功能标识之间具有对应关系;所述功能索引信息用于所述第二设备根据所述第二设备的功能索引,在所述功能标识信息中,确定所述第二设备的功能索引对应的功能标识。
上述方案中,解耦了功能标识与拓扑标识,有利于减少报文的开销,提高报头中信息的灵活设置。有利于对功能标识的复用,若确定转发报文的设备执行相同的网络功能,可以通过功能索引的指针,指向相同的功能标识,进而,可以节省报头的开销。
一种可能的设计,所述功能索引信息占用第三连续字段;所述第一报文的扩展报头还包括第三指针;所述第一设备若确定存在所述第二设备的功能索引,则将所述第三指针指向所述功能索引信息中所述第二设备的功能索引。
上述方案中,通过第三指针,可以快速在报头中的功能索引信息中确定第二设备的功能索引,进而确定功能索引对应的功能标识,并执行功能标识对应的网络功能,提高了设备的处理效率。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息和第一指针;所述第一指针用于指向所述第二设备的拓扑标识;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述第一设备若确定所述第二设备需要执行网络功能,则确定所述第二设备的功能索引与所述第二设备的拓扑标识占用连续的字段。
上述方案中,第二设备的功能索引与所述第二设备的拓扑标识占用连续的字段,使得可以不为功能索引设置第三指针,仅通过第一指针,即可以确定第二设备的功能索引,节省了报头的开销。
一种可能的设计,所述第二连续字段中包括第一功能标识;所述第一功能标识用于所述第二设备根据本地存储的所述第一功能标识与所述第二设备的网络功能的对应关系,执行所述第一功能标识对应的网络功能。
上述方案中,通过设置第一功能标识,使得报头的开销极大的降低,通过解耦了第一功能标识与拓扑标识,提高报头中信息的灵活设置。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息和第一指针;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;若所述第二设备需要执行网络功能,则所述功能标识信息中的所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段;所述第一指针用于指向所述第二设备的拓扑标识。
上述方案中,通过将功能标识信息中的所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段,提高报头中信息的灵活设置,并可以兼容SRv6中的SID表,扩展了本申请实施例的适用范围。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;第一设备根据所述第二设备的拓扑标识,生成所述第二设备的目的地址;第一设备根据所述第二设备的目的地址、所述第一报文的扩展报头及所述第一报文的数据域,生成第一报文。
上述方案中,通过确定第二设备对应的拓扑标识,生成第二设备的目的地址,及第一报文的扩展报头,实现对第一报文的分段路由。
一种可能的设计,所述拓扑标识信息占用第四连续字段;所述第一报文的报头还包括第一指针;所述第一指针用于所述第二设备根据所述第一指针在所述第四连续字段中,确定所述第二设备的拓扑标识。
上述方案中,由于拓扑标识信息占用第四连续字段,此时,第一设备可以根据第一指针及拓扑标识的长度,确定第二设备的拓扑标识。
一种可能的设计,所述第一报文的报头还包括第一指针;所述第一指针用于指向所述第二设备的拓扑标识;第一设备若确定所述第二设备需要执行网络功能,则确定所述功能标识信息中的所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段。
上述方案中,第一设备可以确定第一指针的指向,以使转发过程中,第二设备根据第一指针确定第二设备的拓扑标识。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息,所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述第一报文的目的地址包括:多个设备的拓扑标识,所述多个设备包括所述第二设备。
上述方案中,通过目的地址中的多个拓扑标识,确定第二设备的拓扑标识,有效利用了目的地址携带拓扑标识的能力。
一种可能的设计,所述第一报文的扩展报头包括所述拓扑标识信息的至少一个拓扑标识组;所述拓扑标识组包括的拓扑标识的数量与所述第一报文中目的地址可承载的拓扑标识的数量相同;所述至少一个拓扑标识组用于所述第二设备根据至少一个拓扑标识组,确定所述第三设备的拓扑标识;所述第三设备为所述第一报文指定的所述第二设备的下一设备。
述方案中,通过扩展报头中的拓扑标识组,确定第二设备的拓扑标识,有效利用了目的地址携带拓扑标识的能力,并根据路径上需携带的拓扑标识的个数,在扩展报头中的拓扑标识组中查找无法存储于目的地址中的拓扑标识,实现了对拓扑标识的灵活读取,提高了报文的处理效率。
一种可能的设计,所述第一报文的扩展报头还包括第四指针;所述第四指针用于指向所述拓扑标识组。
上述方案中,通过第四指针,可以在扩展报头中的拓扑标识组中快速查找拓扑标识,提高了报文的处理效率。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息,所述拓扑标识信息包括所述第一报文经过的至少一个设备的第二拓扑标识;所述第二拓扑标识为所述设备的拓扑标识中除至少一个设备的拓扑标识的相同部分之外的部分;所述设备的拓扑标识用于与第一前缀,生成所述设备的路由信息;第一设备根据所述第一报文的转发路径上的多个设备的拓扑标识中相同部分及所述第一前缀,确定第二前缀;第一设备根据所述第二前缀和至少一个设备的第二拓扑标识,生成第二设备的目的地址。
上述方案中,第一设备可以根据路径,生成第二前缀和第二拓扑标识,进一步压缩第一报文的报头的开销。
一种可能的设计,所述第一报文的扩展报头还包括第一拓扑标识;所述第一拓扑标识用于指示所述第一报文经过的至少一个设备的路由信息;所述第一拓扑标识用于所述第二设备根据本地存储的拓扑标识与第三设备的拓扑标识和/或端口的对应关系,确定所述第一拓扑标识对应的第三设备的目的地址,进而将所述第一报文转发至所述第三设备。
上述方案中,通过将功能标识设置为第一功能标识,用于指向多个设备的网络功能,进而极大的压缩了报头的开销。
一种可能的设计,所述第一报文的目的地址包括:所述第二设备的拓扑标识或所述第一拓扑标识;或者,所述第一报文的目的地址包括:所述第二设备的拓扑标识或所述第一拓扑标识的任一项,及所述第二设备的功能标识或所述第一功能标识的任一项。
上述方案中,通过对目的地址的灵活设置,以满足不同场景的需要,实现对报头的灵活配置。
第三方面,本申请提供一种报文处理装置,该装置可以是第二设备,还可以是用于第二设备的芯片。该装置具有实现上述第一方面或第一方面的各实施例的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第四方面,本申请提供一种报文处理装置,该装置可以是第一设备,还可以是用于第一设备的芯片。该装置具有实现上述第二方面或第二方面的各实施例的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第五方面,本申请提供一种报文处理装置,该装置可以是网关设备或路由设备,还可以是用于网关设备的芯片或用于路由设备的芯片。该装置具有实现上述第一方面或第一方面的各实施例的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第六方面,本申请提供一种报文处理装置,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该装置执行如上述各方面所述的方法。
第七方面,本申请提供一种报文处理装置,包括:包括用于执行上述各方面的各个步骤的单元或手段(means)。
第八方面,本申请提供一种报文处理装置,包括处理器和接口电路,所述处理器用于通过接口电路与其它装置通信,并执行上述各方面所述的方法。该处理器包括一个或多个。
第九方面,本申请提供一种报文处理装置,包括处理器,用于与存储器相连,用于调用所述存储器中存储的程序,以执行上述各方面所述的方法。该存储器可以位于该装置之内,也可以位于该装置之外。且该处理器包括一个或多个。
第十方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得处理器执行上述各方面所述的方法。
第十一方面,本申请还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第十二方面,本申请还提供一种芯片系统,包括:处理器,用于执行上述各方面所述的方法。
第十三方面,本申请还提供一种报文处理系统,包括:用于执行上述第一方面任意所述方法的第二设备和用于执行上述第二方面任意所述方法的第一设备。
附图说明
图1a-图1b为本申请提供的一种可能的网络架构示意图;
图2为本申请提供的一种分段路由的报文传输方法示例图;
图3为本申请提供的一种报文处理方法的流程示意图;
图4a-图4l分别为本申请提供的第一报文的示例;
图5a-图5b为本申请提供的第一报文的示例;
图6为本申请提供的一种报文处理方法示例图;
图7a为本申请提供的第一报文的示例;
图7b为本申请提供的一种报文处理方法流程示意图;
图8a为本申请提供的第一报文的示例;
图8b为本申请提供的报文处理方法的流程示意图;
图9为本申请提供的一种报文处理装置示意图;
图10为本申请提供的又一种报文处理装置示意图。
具体实施方式
下面将结合附图对本申请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。其中,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例适用的通信系统中,可以包括路由节点以及服务节点,其中,一个路由节点可以连接一个或多个服务节点。路由节点可以用于提供服务路由,例如将用户设备发送的业务报文路由到服务节点,其中,用户设备等需要发送报文的设备最先接入的路由节点可以称为网络入口(Ingress)节点。Ingress节点可以负责将用户发送的报文路由到网络出口(Egress)节点,其中,Egress节点可以负责将用户发送的报文路由到服务节点。服务节点指为用户提供服务的节点。
在网络中当存在需要传输的报文时,通常情况下基于网络中各个节点之间的拓扑结构确定需要传输的报文的网络入口节点和网络出口节点之间最短传输路径,然后网络入口节点通过最短传输路径向网络出口节点发送需要传输的报文。但是,当网络中的节点个数较多,或者网络拓扑结构较为复杂、且需要传输的报文较多时,通过直接确定需要传输的报文的网络入口节点与网络出口节点之间的最短传输路径时计算的工作量较大,较为复杂。为了降低确定需要传输的网络业务的网络入口节点(也可以为源节点)与网络出口节点(也可以为目的节点)之间的最短传输路径时的工作量,提出了分段路由的路由方案,即通过确定网络入口节点和网络出口节点之间的一个或多个分段节点,其中,分段节点为经过网络入口节点和网络出口节点的传输路径上的一个中间节点,将网络入口节点和网络出口节点之间的传输路径划分成至少两段分段路径,然后确定每段分段路径上的节点。
由于报文数据以及网络的动态性(如服务负载,网络拥塞等),不同时刻,对于同一网络入口节点进行路径规划时可能选择不同的分段节点。网络入口节点通过一个有序的指令列表控制报文的转发路径及转发路径上节点执行的网络功能,这个指令被称为分段(segment)。每个指令代表了一个功能函数,在网络中可以在特定的节点被调用。功能函数可以为在执行该功能的节点本地定义的,也可以为在网络入口节点定义的,功能函数的适用范围可以从简单的基于分段路由转发,到复杂的用户自定义的功能函数,例如,此处可以称为针对该节点执行的网络功能,具体的功能函数在下面介绍。因此,在进行分段路由时,至少需携带路径上指定的分段节点及网络出口节点的路由信息和在该分段节点及网络出口节点上所执行的网络功能。
如图1a所示,为本申请适用的一种网络架构,该网络架构包括第一设备和第二设备,可选的,该网络架构还可以包括第三设备。具体的网络架构中的设备的数量与网络入口节点和网络出口节点之间的节点的数量有关。其中,第一设备可以为路径上的网络入口节点,也可以为分段节点对应的设备,第二设备可以从第一设备接收报文,并将接收到的报文发送到第三设备。此时,第二设备为路径上的分段节点。若第三设备为网络出口节点,则第三设备确定该分段路由的报文转发完成,可以对报文进行解封装。该第一设备可以是路由设备(route)、网关设备(gateway)等,该第二设备可以是网关设备、路由设备等,该第三设备可以是路由设备、网关设备等。
如图1b所示,为基于SRV6的报文发送方法示例图,图中包括的设备如下:源节点对应的设备、分段节点对应的设备和目的节点对应的设备。其中,当图1b确定指定的路径上中仅有一个分段节点对应的设备时,则图1b中的分段节点对应的设备是图1a中的第二设备。或者,当图1b中有两个分段节点对应的设备时,则图1b中的分段节点对应的设备可以是图1a中的第一设备和第二设备,或者,第二设备和第三设备。以此类推到三个或三个以上的路由设备的情形,不再赘述。
下面以3个分段节点(P1,P2,P3)为例,网络入口节点为PE1,网络出口节点为PE2,对SRv6的报文进行说明。
IPv6报文可以包括报头和报文数据。其中,报头可以包括IPV6标准报头域,扩展报头。SRv6的报文可以表示如图2所示。
IPV6的标准报头中可以包括源地址和目的地址。其中,源地址可以为PE1节点的SID,即Loc_PE1::FUNCT0,目的地址可以为PE1节点的下一指定的节点PE2的SID,即Loc_PE2::FUNCT4。其中,段标示(Segment Identifier,SID),SID可以指代SRv6 Segment,SID是一个128bit的值。SRv6 SID包括路由信息LOC:功能函数(Function,FUNCT),路由信息LOC的长度为L个bit(128bit中的最高位的L个bit),用于路由至下一指定的节点。L为locator长度,例如,locator长度可以为64位,本申请并不限定。例如,SID可以通过短掩码的前缀路由到目的地址对应的节点,其中短掩码的前缀也可以为任何一个前缀长度。功能函数FUNCT为剩下的128-L个bit(128bit中的低位)。SID的功能函数FUNCT可以部分或全部标识该SID对应的网络功能。另外,需要说明的是,网络功能对应的功能函数可能需要其它的一些参数,这些参数可以被放置在128bit空间的最右边位置。此时,SRv6 SID可以有这样的格式LOC:FUNCT:ARGS。这些参数可能是逐包改变的,即与目的地址指定的下一节点的SID中携带的信息有关,可能包含涉及流、服务或者SRv6 SID关联的功能函数需要的其他信息。一种可能的情况中,一个节点可能收到一个目的地址是SRv6 SID的报文,但是该报文的扩展报头中不包含SRH。在这种情况下,该报文也需要被分段路由SR的装置处理,以获得SID中的功能函数,进而执行对应的网络功能。
另外,IPV6的标准报头还可以包括下一报头域(IPv6 next-header field,NH)字段,NH字段可以用于确定IPv6报文的扩展报头中是否携带SRH。如果扩展报头没有SRH时,NH即为IP头部的下一报头(next-header),如果扩展报头有SRH则表示最后一个SRH中的next-header。若NH为分段路由头(Segment Routing Header,SRH),此时next-header字段值可以为43,同时路由类型字段可以参考IPV6协议定义的扩展报头定义的路由类型,也可以为其他路由类型,在此不做限定。
SRH中可以包括各节点的SID。SRH可以在报文中出现多次。当有多个SRH时,SRH可以为顺序排列,也可以为其他方式排列,在此不做限定。SRH可以包含的SID列表<SID_PE 1,SID_P1,SID_P2,SID_P3,SID_PE2>,可以表示一个段列表,此时,指针SL可以从做往右顺序读取,其含义可以为在整个SR路径上,SID_PE1是第一个被访问的,SID_P2是第二个,SID_P2是第三个,SID_P3是第四个,SID_PE2是最后一个。当然,SID列表可以为<SID_PE2,SID_P3,SID_P2,SID_P1,SID_PE1>,此时,指针SL可以从后往前顺序读取,即在整个SR路径上,SID_PE1是第一个被访问的,SID_P2是第二个,SID_P2是第三个,SID_P3是第四个,SID_PE2是最后一个。当然,在网络入口节点向指的第一个被访问的节点发送第一报文时,SRH中也可以不携带网络入口节点的SID,如图2所示,SRH中包括除源节点的路径上指定的各节点P1,P2,P3,PE2的SID。即SRH包含的SID列表可以为<SID_P1,SID_P2,SID_P3,SID_PE2>。
SRH中还可以包含一个SID的指针,SID的指针可以占用一个字段(Segments Left,SL)。SRH[SL]表示的是SL字段指向的SID。结合图2,以从右至左降序排列的方式为例,指针SRH[3]可以指向SID_P1,SRH[2]可以代表SID_P2,SRH[1]可以代表SID_P3,SRH[0]可以代表SID_PE2。设备间转发之前,设备需对指针SL进行更新,此时,可以通过减1的方式实现。
以第一设备(PE1)向第二设备(P1)转发第一报文为例,如图2所示,此时,第一报文的报头中携带的SID指针指向的节点为第二设备(P1),结合上述例子,SRH[SL]为SRH[3]。则第二设备P1可以根据SRH[3],确定SRH[4]对应的第二设备(P1)的SID1,进而确定SID1中的路由信息LOC1和FUNCT1。若确定FUNCT1中没有网络功能,则第二设备(P1)可以确定第二设备P1不需要执行网络功能,若确定FUNCT1对应的网络功能为切片,则对第一报文中的报文数据进行切片处理。
另一种可能的实现方式,第二设备接收到的第一报文中没有SRH,但是,第一报文的目的地址中携带有第二设备的SID,此时,第二设备需要处理SID的装置对第一报文中的目的地址中的第二设备的SID进行处理,以获得第二设备(P1)的SID1,进而确定SID1中的路由信息LOC1和FUNCT1。若确定FUNCT1中没有网络功能,则第二设备(P1)可以确定第二设备P1不需要执行网络功能,若确定FUNCT1对应的网络功能为限流,则对第一报文进行限流处理。
现有技术中,不论第一报文中是否包含SRH,都需要处理SID的装置对第一报文中的当前节点的目的地址的SID进行处理,以确定当前节点是否需要执行对应的网络功能,进一步的,还需根据SID中的功能标识FUNCT,确定当前节点需执行的网络功能,进而执行对应的网络功能。这导致的问题是,接收到第一报文的设备需要处理报文的程序较为复杂。另外,若确定第一报文需要携带SRH,且SRH中各节点的SID都需要占用128bit,导致第一报文的报头开销很大。若要执行沿途策略,则首先需要预先知道此数据包的转发路径,然后将此路径上必须经过的节点的SID(路由信息LOC字段包含此节点的地址)都携带在数据包的SRH中,即SRH中需要携带多个SID。即使路径上的节点都执行同一个网络功能,仍然需要在SRH中携带每个节点的SID,FUNCT字段无法复用,增大了报文的开销。
基于上述问题,本申请实施例提供一种报文处理方法可以如图3所示,该方法可以应用为图1a所示的网络架构,该方法具体包括:
步骤301:第一设备生成第一报文;其中,所述第一报文的报头可以包括功能标识信息和功能指示信息。所述功能标识信息包括所述第一报文经过的至少一个需执行网络功能的设备对应的功能标识。所述功能指示信息包括所述第一报文经过的至少一个设备的功能指示;所述功能指示用于指示所述设备是否需要执行网络功能。
其中,功能标识可以为SRv6中的功能函数的标识(Function Identifier,FID),例如,本申请中可以将功能函数和功能函数的参数称为功能标识。当然,也可以为根据需要,确定的可以指示本申请实施例中涉及的网络功能的功能标识,在此不做限定。
在具体实施过程中,网络功能可以包括邻接转发。具体的,邻接转发可以为根据功能标识对应的网络出口节点绑定的三层(layer 3,L3)邻接转发的功能,或者,查找指定IPv6表的功能。针对分段节点的设备的功能标识,还可以有绑定分段路由的策略,例如,可以将一个新的路由头(Routing Header,RH)插入第一报文的标准报头和第一报文的RH之间,其中,第一报文的RH为第一设备生成的第一报文携带在第一报文的扩展报头中的路由头,为第一设备指定的第一报文经过的设备。进而,接收第一报文的设备可以根据新插入的RH进行转发。或者,在标准报头上插入一个外层IPv6头,报文可以根据外层IPv6头进行转发,上述邻接转发的例子可以用于在多个域中扩展流量。针对网络出口节点上的邻接转发,还可以包括的网络功能可以包括解封装,例如,在解封装之后,进行二层VLAN转发或二层单播MAC表项查找,二层泛洪,或者,进行三层VLAN转发或三层单播MAC表项查找,三层泛洪,或者,在一组IPv6/IPv4邻接中转发,查找指定的IPv6/IPv4/IP表等邻接转发。
另外,网络功能还可以包括绑定FID的应用;例如,任何识别分段路由(SegmentRouting,SR)的应用都可以绑定到一个节点的设备的功能标识上,以使节点的设备执行对应的应用。这些应用可以是任何形式的,可以从关注拓扑/租户功能的一小撮代码,到关注高层应用的大的组件(比如,视频压缩,编码转换等)。例如:节点可以绑定一个功能标识FID到本地的虚拟机或容器上,以此对报文应用任何复杂的网络功能。举例来说,一个识别SR的应用运行在Linux操作系统上,一种可能的实现方式,第一报文中,针对第二设备的FID指示关联FID到一个目标(虚拟)接口,此时,第二设备执行该网络功能即发送第一报文到关联的目标接口。在该方法中,识别SR的应用可以简单的侦听该接口上接收的所有报文。
再比如,绑定FID的应用还可以为设置第一报文在当前节点的设备的VPN、防火墙的相关信息,也可以为与OAM有关的网络功能;例如,采样时间戳,丢包率等。在具体实施过程中,在网络中节点可根据与OAM有关的网络功能的功能标识,将报文上送控制平面处理。也可以为TLV封装的功能标识,对应的,在目的节点的设备上,根据TLV封装的功能标识,进行TLV解析和处理。
另外,网络功能还可以包括基于流的应用,例如,对第一报文转发路径上的各指定设备的网络限速,流量整形等;网络功能还可以为基于报文的应用,例如,深度包检测(DeepPacket Inspection,DPI),通过对应用层数据的应用协议识别,第一报文的数据包内容检测与深度解码,实现基于应用层的流量检测和控制;网络功能还可以基于当前网络环境对应的应用,例如网络地址转换(Network Address Translation,NAT),用于利用源节点的第一设备将多个私网地址映射到一个公网地址,以实现第一报文从私网转发至公网,或者从公网转发至私网。
当然,还可以有非分段路由的应用绑定至FID,可以参考现有技术中关于非分段路由中的转发时所涉及的应用,在此不再赘述。
一种可能的设计中,第一设备可以根据网络入口节点至网络出口节点确定的第一报文所经过的各分段节点对应的设备,确定各设备上需执行的网络功能,进而针对需要执行网络功能的设备,确定对应的功能标识及功能指示,将需要执行网络功能的设备对应的功能标识携带在功能标识信息中,将各设备对应的功能指示携带在功能指示信息中。
另一种可能的设计中,第一设备不需要确定第一报文从网络入口节点至网络出口节点经过的所有设备是否需要执行网络功能。可以根据需要,指定第一报文必须要经过的分段节点上需执行网络功能,该方法的好处是,可以在不确定路径之前,先确定第一报文在分段路由过程中,需执行的网络功能,可以实现对第一报文的转发更加灵活的配置。
举例来说,在网络入口节点至指定的分段节点之间,或者,分段节点和分段节点之间,或者,分段节点和网络出口节点间可以存在多个路由设备,通过现有路由的方式,实现第一报文的转发,此时,第一报文中的功能指示信息可以包括指定的设备的功能指示,第一报文中的功能标识信息可以包括指定的设备中需执行网络功能的功能指示。
第一设备可以通过如下任一种方式在第一报文中携带功能指示信息,以使路径上的设备,在功能指示信息中获得该设备的功能指示。
方式一:设备的功能指示携带在该设备的拓扑标识的字段中。
其中,该设备的拓扑标识携带在拓扑标识信息中,并存储于第一报文的报头中。所述拓扑标识信息包括所述第一报文经过的至少一个路由设备的拓扑标识;
其中,针对拓扑标识信息中的拓扑标识对应的设备,可以为第一设备根据网络入口节点至网络出口节点的转发路径,确定的第一报文所经过的各分段节点对应的设备;也可以为第一设备根据网络入口节点至网络出口节点指定的第一报文所经过的分段节点及网络出口节点对应的设备。因此,拓扑标识信息中的拓扑标识可以为第一设备指定的第一报文经过的各设备的拓扑标识,用于标识对应设备的路由信息,进而,针对源节点而言,第一设备可以根据第二设备的拓扑标识,生成第二设备的目的地址。对应路径上的分段节点,拓扑标识还可以用于路径上需转发第一报文的设备,根据对应设备的拓扑标识,生成转发所述第一报文的设备的目的地址。
举例来说,在网络入口节点至第二设备之间,可以存在多个路由设备,此处的第二设备可以为第一报文的转发路径上指定的网络入口节点对应的下一设备。此时,第一设备生成的第一报文的目的地址中用于路由至指定的下一设备的拓扑标识为第二设备的拓扑标识。在经过上述多个路由设备的过程中,第一报文可以不需要更新目的地址,直至第一报文转发至第二设备后,第二设备可以根据拓扑标识信息中,第二设备的拓扑标识的下一拓扑标识,确定指定的第二设备对应的下一设备,进而将第一报文的目的地址中用于路由至指定的下一设备的拓扑标识更新为所述第二设备的拓扑标识的下一拓扑标识。
通过在第一报文中携带拓扑标识,即可以携带指定的设备的功能指示。举例来说,以拓扑标识为一个设备的路由信息(Topology Identifier,TID)为例,TID的长度可以为16bit,此时,可以将16bit中的1bit或2bit作为功能指示的字段,若将16bit中的1bit作为功能指示的字段,可以通过1bit中设置为1,确定该设备需执行网络功能,对应的,通过1bit中设置0,确定该设备不需执行网络功能。一种可能的设计中,将16bit中的2bit中设置为11,确定该设备需执行网络功能,对应的通过2bit中设置为00,确定该设备不需执行网络功能。上述例子仅为举例,具体功能指示占用的bit数可以根据实际需要设置,bit中指示的方式也可以具体设置,在此不做限定。
一种可能的设计中,功能指示在拓扑标识的字段的具体位置可以不限定,如图4a所示,可以唯一拓扑标识的字段的高位,也可以位于拓扑标识的字段的中间位,也可以位于拓扑标识的字段的最后。只需在预先确定功能指示在拓扑标识的字段的位置,即可以通过查找到拓扑标识,进而查找到该拓扑标识对应的设备的功能指示。
由于拓扑标识通常占用的字段是以字节为单位的,因此,上述设计中,将功能指示融合在拓扑标识里,可以不增加报头开销的同时,有助于提高报文的处理效率。本实施例中的拓扑标识中包括功能指示的方式,便于设备根据拓扑标识找到对应的功能指示。在处理报头时,在处理拓扑标识的同时,可以根据拓扑标识中的功能指示确定该设备的功能指示,指示在当前节点的设备是否需要执行网络功能,进而确定当前的设备是否还需要读取功能标识,有助于设备处理报文。对应的,针对不需要执行网络功能的设备,则不需要读取功能标识,也不需要在本地查找功能标识对应的网络功能,有效的提高了设备处理报文的效率。
在一种可能的设计中,第一报文的报头还可以包括第一指针;第一指针可以位于第一报文的扩展报头中。第一设备可以将第一指针指向第二设备的拓扑标识,进而,所述第二设备在接收到第一报文后,可以根据所述第一指针指向的所述拓扑标识信息中的第二设备的拓扑标识,确定所述第二设备的拓扑标识的字段中的功能指示,进而确定第一报文在第二设备上是否需要执行网络功能。
一种可能的实现方式中,拓扑标识信息可以为一连续字段,也可以与功能标识信息组合为一连续字段,也可以与其他信息组合为一连续字段,此时,通过第一指针指向的第二设备的拓扑标识的位置及拓扑标识的长度,可以确定第二设备的拓扑标识的具体内容,进而,根据功能指示在拓扑标识中的位置,确定第二设备的拓扑标识的字段中的功能指示。具体实施方式在后续详细说明。
在一种可能的设计中,第一报文的目的地址可以包括所述第二设备的拓扑标识;第二设备的拓扑标识的字段包括所述第二设备的功能指示。进而,第二设备可以通过第一报文的目的地址中的第二设备的拓扑标识的字段,确定第二设备的功能指示。
方式二:功能指示信息占用第一连续字段;所述第一连续字段中包括的功能指示可以为网络入口节点对应的设备的功能指示、网络入口节点指定的各分段节点对应的设备的功能指示及网络出口节点对应的功能指示,也可以为网络入口节点指定的各分段节点对应的设备的功能指示及网络出口节点对应的功能指示。进而,指定转发第一报文的设备可以根据第一连续字段确定该设备的功能指示。如图4b所示,若确定路径包括n个指定的设备,则可以根据n个指定的设备,确定每个指定的设备的功能指示,包括功能指示1,功能指示2,……,功能指示n。
其中,功能指示信息可以位于第一报文的扩展报头中。一种可能的实现方式,可以针对功能指示信息设置单独的指针,用于指向当前转发第一报文的设备的功能指示。
举例来说,第一设备向第二设备发送的第一报文中的扩展报头包括第一连续字段,及功能指示信息的指针,该指针指向第二设备的功能指示,进而,第二设备在接收到第一报文后,可以根据该指针,确定第二设备的功能指示。
当然,也可以根据功能指示信息预先确定的扩展报头的位置,及当前转发第一报文的设备的拓扑标识的指针,确定功能指示信息中当前转发第一报文的设备的功能指示。
举例来说,第一设备可以将第一报文中的扩展报头的第一位置设置为第一连续字段的起始位置,因此,第二设备接收到第一报文后,可以根据第一位置,及功能指示的长度,及第一报文的指定跳数,确定第二设备的功能指示。例如,以路径中指定的节点为<PE1,P1,P2,P3,PE2>,第二设备为指定的第一跳P1,若第一固定位置为扩展报头的第80bit位,功能指示的长度为1bit,则可以在80bit位后移1bit,确定为第二设备的功能指示的起始位置,进而将第81bit位上的信息作为第二设备的功能指示。若第三设备为指定的第二跳P2,则可以在80bit位后移2*1bit,确定为第三设备的功能指示的起始位置,进而将第82bit位上的信息作为第三设备的功能指示。
将第一报文经过的各指定的设备是否需要执行网络功能的功能指示放在一起,形成一个第一连续字段,与拓扑标识解耦。当一个拓扑标识是用于标识一个指定的设备的路由信息时,则在接收到第一报文的指定的设备处理第一报文的拓扑标识之前或之后,可以跳转到第一连续字段中当前接收到第一报文的指定的设备的功能指示的位置,读取当前接收到第一报文的指定的设备的功能指示。第一连续字段的一种可能的形式,可以是以一串连续字段bitmap的形式存在,每个指定的设备的功能指示若为1bit,且路径中指定的节点为<PE1,P1,P2,P3,PE2>,则第一连续字段占用5bit。
另一种可能的实现方式,若拓扑标识是用于标识一条转发路径,例如,拓扑标识信息中包括第一拓扑标识,第一拓扑标识指示一条转发路径上的指定的设备的路由信息。如图4c所示,例如,路径中指定的设备为<PE1,P1,P2,P3,PE2>,第一拓扑标识对应不同的至少设备所代表的含义不同,即若第二设备(P1)接收到第一拓扑标识,第二设备可以根据本地存储的拓扑标识与指定的下一设备的路由信息的关系,确定第一拓扑标识所指示的指定的下一设备的路由信息为P2的路由信息。若第三设备(P2)接收到第一拓扑标识,第三设备可以根据本地存储的拓扑标识与指定的下一设备的路由信息的关系,确定第一拓扑标识所指示的指定的下一设备的路由信息为P3的路由信息。此时,功能指示信息可以存储在第一连续字段中,转发路径上的指定的设备在根据第一拓扑标识确定下一跳之前或之后,可以跳转到第一连续字段中指定的位置,读取与当前的指定的设备对应的功能指示,当然,也可以设置计数器或指针,用于指示第一连续字段中当前的指定的设备对应的功能指示的位置。
上述设计中,可以通过功能指示信息,指示第一报文经过的各指定的设备是否需要执行网络功能。通过将各设备的拓扑标识与功能指示解耦的方式,通过计数器或指针,可以找到与拓扑标识相对应的指定的设备的路由信息,并且可以快速方便的获取路径上的所有需要执行网络功能的设备,即可以获取全局的服务部署情况,有利于对报文实现更好的处理。本实施例设置功能指示,用于指示在路径上的指定的设备上是否需要执行网络功能。在处理报头时,可以根据功能指示确定在处理拓扑标识的同时,是否还需要读取功能标识,有助于设备快速处理报文;并且针对不需要执行网络功能的设备,则不需要读取第一报文中的功能标识信息,也不需要在本地查找功能标识信息对应的功能,提高了设备对报文的处理效率。
针对功能标识信息,一种可能的设计中,所述功能标识信息占用第二连续字段;第二连续字段中可以包括路径上指定的需要执行网络功能的设备的功能标识。进而,接收到第一报文的设备可以根据所述第二连续字段,确定所述设备的功能标识。其中,功能标识信息可以位于第一报文的扩展报头中。
举例来说,若第一设备确定路径中指定的设备为<PE1,P1,P2,P3,PE2>,有P1,P2,P3这3个设备需执行网络功能,则可以在第二连续字段中存储这3个设备对应的功能标识。如图4d所示,功能标识信息中的功能标识(Function Identifier,FID)存储的顺序可以为<FID[P1],FID[P2],FID[P3]>,当然,也可以为<FID[P3],FID[P2],FID[P1]>,在此不做限定。对应的第二连续字段的存储位置,第一设备可以将第一报文中的扩展报头的第二位置设置为第二连续字段的起始位置,其中,若第一报文中存在第一连续字段,则第二位置可以为第一位置之后,也可以为第一位置之前,在此不做限定。若不存在第一连续字段,则第二位置可以与第一位置相同。第二设备可以根据第二连续字段,第二设备对应的指定跳数为指定的第一跳P1,及功能标识的长度L1个bit,在第二连续字段的第二位置上,后移L1个bit,进而确定第二设备的功能标识。
一种可能的实现方式,所述第一报文的扩展报头还包括第二指针;此时,第一设备若确定所述第二设备需执行网络功能,则可以将所述第二指针指向所述第二连续字段中第二设备的功能标识。
下面的举例以FID在栈内的存放是倒序为例,FID在栈内的存放为顺序的方式中可以参考该实施例,在此不再赘述。举例来说,结合上述例子,以第二连续字段存储的功能标识FID的顺序为<FID[P3],FID[P2],FID[P1]>为例,第二指针FID在路径上可能的值为[2],[1],[0]。其中,FID[2]指向P1对应的设备,第二指针FID[1]指向P2对应的设备,第二指针FID[0]指向P3对应的设备。第一设备向第二设备(此处的例子中为P1)转发的第一报文中,第二指针为[2]。第二连续字段中的第一个功能标识的长度L1对应第二设备的功能标识,此时,第二指针[2]指向第二连续字段中FID[P1]的起始位置。因此,第二设备可以根据第二位置,后移2*L1,确定出第二设备的功能标识FID[P1]。
另一种可能的实现方式,第一设备若确定路径上需执行的网络功能有相同的网络功能,则可以采用功能标识复用的方案,具体的,所述第一报文的扩展报头还包括功能索引信息;所述功能索引信息包括所述第一报文经过的至少一个设备所执行的网络功能的功能标识的功能索引(FID Pointer,FIDP),功能索引与功能标识之间具有对应关系;所述功能索引信息用于所述第二设备根据所述第二设备的功能索引,在所述功能标识信息中,确定所述第二设备的功能索引对应的功能标识。
举例来说,结合上述例子,若确定路径中指定的设备有P1,P2,P3这3个设备需执行网络功能,且P2和P3为相同的网络功能,则可以为第一报文设置功能索引信息。此时,功能索引信息包括P1,P2,P3这3个设备的功能索引,P1的功能索引FIDP[P1]和P2的功能索引FIDP[P2]关联的功能标识为FID1,P3的功能索引关联的功能标识为FID2。
其中,针对功能索引信息,也可以有多种实现方式。一种可能的设计,所述功能索引信息占用第三连续字段;如图4e所示,第三连续字段可以位于第二连续字段之前,当然,也可以位于第一连续字段之后,也可以位于拓扑标识信息占用的第四连续字段之后,或者报文的扩展报头的其他位置,在此不做限定。
一种可能实现方式中,所述第一报文的扩展报头还可以包括第三指针;第三指针用于指向功能索引信息中的功能索引。此时,第一设备若确定存在所述第二设备的功能索引,则将所述第三指针指向所述功能索引信息中所述第二设备的功能索引。P1和P2的功能索引关联的功能标识为FID1,P3的功能索引关联的功能标识为FID2。此时,P1的功能索引的值可以为FID1对应的索引F1,F1用于指向第二连续字段中的功能标识信息中的功能标识FID1。P3的功能索引的值可以为FID2对应的索引F2,F2用于指向第二连续字段中的功能标识信息中的功能标识FID2。
下面的举例以FIDP在栈内的存放是倒序为例,FIDP在栈内的存放顺序可以参考该实施例,在此不再赘述。举例来说,以第三连续字段位于第二连续字段之后的场景为例,此时,第一报文中可以携带第二连续字段的最后一个功能标识的位置标识Last FID,例如,若拓扑标识信息为栈的形式存储时,栈底的标识为Last FID,若确定Last FID的计数方式是从0开始,则根据Last FID,及功能标识的长度L1,可以确定第二连续字段的长度为(LastFID+1)*L1,进而可以确定第三连续字段的起始位置为第二连续字段的起始位置+LastFID*L1。若Last FID的计数方式是从1开始,则根据Last FID,及功能标识的长度L1,可以确定第二连续字段的长度为Last FID*L1。若此时第三指针FIDP的值为F1,进而,可以根据F1,在第二连续字段的起始位置+F1*L1,确定第二设备的功能标识。
上述方案中,解耦了功能标识与拓扑标识,有利于对功能标识复用,若确定转发报文的设备执行相同的网络功能,可以通过功能索引的指针,指向相同的功能标识,进而,可以节省报头的开销。
另一种可能的实现方式,功能索引FIDP可以不以栈的形式存在于第一报文中。在第一报文中,各设备的功能索引直接设置于各设备的拓扑标识之后或之前,即功能索引与拓扑标识成组出现。对应的,第一设备若确定所述第二设备需要执行网络功能,则确定所述第二设备的功能索引与所述第二设备的拓扑标识占用连续的字段。
下面的举例以TID在栈内的存放是倒序为例,TID在栈内的存放顺序可以参考该实施例,在此不再赘述。举例来说,若确定P1、P2和P3存在功能索引,PE2不存在功能索引,则第一报文中的拓扑标识与功能索引占用的字段中,可以为如图4f所示的格式,当然,还可以为以下格式:TID[PE2],TID[P3],FIDP[P3],TID[P2],FIDP[P2],TID[P1],FIDP[P1]。在此不做限定。
一种可能的实现方式,第二设备(P1)可以根据拓扑标识所在字段的起始位置+第一指针*(拓扑标识的长度L2)+第三指针*功能索引的长度L3,确定第二设备P1的拓扑标识TID[P1],进而根据第二设备的功能指示,确定第二设备是否需要执行网络功能,在该场景中,第二设备需要执行网络功能,即存在第二设备对应的功能索引,进而,第二设备可以在TID[P1]后,确定功能索引F1。
另一种可能的实现方式,功能指示信息位于第一连续字段,此时,接收第一报文的指定的设备,可以根据第一连续字段中功能指示中指示的当前指定的设备之后需执行网络功能的设备的个数N,确定当前指定的设备之后存在的功能索引的个数N。进而可以根据拓扑标识所在字段的起始位置+第一指针*(拓扑标识的长度L2)+N*功能索引的长度L3,确定第二设备P1的拓扑标识TID[P1],结合上述例子,第二设备P1之后存在的功能索引的个数为2,因此,第二设备P1的拓扑标识的位置为拓扑标识所在字段的起始位置+3*L2+2*L3。
需要说明的是,在具体实施过程中,可以根据第二设备对第一报文的扩展报头顺序读取字段过程中,确定每个设备是否执行网络功能,进而确定下一字段为功能索引还是拓扑标识的方式,查找到第一指针指向的拓扑标识,无需设置第三指针的方式,或确定功能索引的个数N的过程,以提高报文的处理效率。
上述方案中,解耦了功能标识与拓扑标识,增加了第一设备设置路径上设备执行的网络功能的灵活性,比如,可以在转发路径未指定完全的场景下,指定转发第一报文的设备应执行的网络功能。将功能标识以栈或者列表的形式集中放在一起,有利于对功能标识复用,以节省报头的开销。
另一种可能的设计,功能标识信息不占用一个连续的第二连续字段,功能标识信息中的各设备的功能标识可以与对应设备的拓扑标识成组。以第二设备存在功能标识为例,所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段。
第一设备若确定一个指定的设备需要执行网络功能,则在该设备的拓扑标识后放置该设备需要执行网络功能的功能标识;第一设备若确定一个指定的设备不需要执行网络功能,则在该指定的设备的拓扑标识后无需设置功能标识的字段。
举例来说,若确定P1、P2和P3存在功能标识,PE2不存在功能标识,则第一报文中的拓扑标识与功能标识占用的字段中,可以为如图4g所示的格式,当然,也可以为以下格式:TID[PE2],TID[P3],FID[P3],TID[P2],FID[P2],TID[P1],FID[P1]。
一种可能的确定设备的拓扑标识的方式中,可以根据拓扑标识的第一指针和/或第二指针确定。以第二设备为例,若第二设备接收到第一设备发送的第一报文,可以根据第一指针及拓扑标识的长度,及第二指针及功能标识的长度,确定第二设备的拓扑标识。
结合上述例子,第二设备(P1)可以根据拓扑标识所在字段的起始位置+第一指针*(拓扑标识的长度L2)+第二指针*功能标识的长度L1,确定第二设备P1的拓扑标识TID[P1],若拓扑标识所在字段的起始位置为扩展报头的第80位,则第二设备P1的拓扑标识所在的位置为:第80+3*L2+2*L1位。
另一种可能的实现方式,可以根据第一指针,及功能指示信息,确定设备的拓扑标识在第一报文中的位置。
还是以第二设备为例,若第二设备根据功能指示信息,确定第二设备之后指定的设备中的功能指示有N个需要执行网络功能,则可以根据拓扑标识所在字段的起始位置+第一指针*(拓扑标识的长度L2)+N*功能标识的长度L1,确定第二设备P1的拓扑标识TID[P1]。
需要说明的是,在具体实施过程中,设备还可以根据功能指示信息,在逐个拓扑标识和/或功能标识读取的过程中,确定第一指针指向的拓扑标识,可以不需要通过第二指针*功能标识的长度L1或N确定第一指针指向的拓扑标识。
上述实施例中,将功能标识设置于拓扑标识后,当然,也可以将功能标识设置与拓扑标识前,在此不做限定,具体的确定设备的拓扑标识和功能标识的方式,可以参考上述实施例,在此不再赘述。
需要说明的是,在该设计中,并不限定功能指示的存放方式,可以为上述实施例中功能指示的任一种实现方式,举例来说,可以在设备的拓扑标识之后设置功能指示,也可以在设备的拓扑标识中设置功能指示,用于指示该设备是否需要执行网络功能,如果需要执行网络功能,则在功能指示后设置该设备的功能标识。若确定该设备需要执行网络功能,则在功能指示后为指定的下一设备的拓扑标识,或者结束该拓扑标识及功能标识的字段。
上述实施例中,解耦了功能标识与拓扑标识,增加了执行网络功能的灵活性,将功能标识与需要执行网络功能的设备的拓扑标识成组,便于查找设备需要执行的网络功能。
另一种可能的设计,功能标识信息还可以有如下实现方式:所述第二连续字段中包括第一功能标识;此时,第一设备可以在转发第一报文之前,向路径上指定的设备发送第一功能标识与设备需执行的网络功能的对应关系,进而,各指定的设备在接收到第一报文后,可以根据本地存储的所述第一功能标识与所述设备的网络功能的对应关系,执行所述第一功能标识对应的网络功能。
上述设计中,第一功能标识可以是对应一个网络功能,或者是对应多个网络功能。第一功能标识对应多个功能时,此时,功能标识在不同节点上对应的功能可能是不一样的。比如在路径上,需要依次在设备P1上执行防火墙功能,在设备P2上执行VPN功能,则功能标识在设备P1上对应的功能是防火墙,在设备P2上对应的功能是VPN。具体的,第一功能标识可以对应整条路径上应该执行的所有网络功能,第一功能标识也可以是对应路径上部分需要执行的网络功能,其他需执行的网络功能对应的功能标识可以携带在功能标识信息中,此场景可以为第一设备无法确定设备是否接收到预先配置的第一功能标识对应的网络功能时,功能标识信息对应的格式。
针对上述功能标识信息的各种设计示例中,功能指示信息在第一报文中的格式不做限定,可以为上述实施例中的任一种,可以参考上述实施例,在此不再赘述。报文转发到指定的设备之后,指定的设备可以先读取功能指示信息中的该指定的设备的功能指示,进而判断在该设备上是否需要执行网络功能。如果需要执行,则读取第一功能标识,在本地查找第一功能标识所代表的网络功能。需要说明的是,由于第一功能标识对应多个网络功能,因此,第一报文中不需要携带对应的指针,例如,第二指针或第三指针。若该指定的设备不需要执行网络功能,则无需查找本地存储的所述第一功能标识与所述设备的网络功能的对应关系,可以有效的提高报文的处理效率。
一种可能的实现方式,目的地址中的拓扑标识包括第一拓扑标识,此时,功能指示信息可以以占用第一连续字段的方式实现。例如,如图4k所示,第一拓扑标识对应一条路径上的多个节点的设备。因此,需要预先配置第一拓扑标识在各设备上对应的下一跳以及出端口。第一设备可以预先在各指定的设备上配置好该指定的设备对应的网络出口节点的目的地址x对应的转发行为,即该指定的设备的转发表的内容可以包括指定的下一设备的转发信息:网络出口节点目的地址:x,指定的下一设备的目的地址:y,出端口:port_1。使用第一拓扑标识在本地存储的转发表中,查找到的第一拓扑标识对应的指定的下一设备的目的地址和出端口,转发第一报文。
当指定的设备收到第一报文后,根据第一拓扑标识确定对应的转发行为,还可以根据功能指示信息,确定该指定的设备上是否需要执行网络功能,如果需要执行网络功能,则在功能标识信息中确定该指定的设备对应的功能标识。例如,第一报文中可以携带第一功能标识和第一拓扑标识,如图4l所示。在每个指定的设备上,获取该设备的功能指示及功能标识的方式,可以根据以上实施例中的方式实施,在此不再赘述。
上述设计,可以实现约束路径转发,并且可以通过功能指示信息,判断该指定的设备是否需要执行网络功能,可以有效提高报文的处理效率。
针对上述实现方式,步骤301中,第一设备可以根据所述第二设备的拓扑标识,生成所述第二设备的目的地址;进而根据所述第二设备的目的地址、所述第一报文的扩展报头及所述第一报文的数据域,生成第一报文。
针对拓扑标识对应一个指定的设备的场景,第一设备可以根据指定的下一设备的拓扑标识生成第一报文的目的地址。此时,第一报文的目的地址字段可以包括:前缀和拓扑标识。前缀可以为路径上的每个指定的设备共用的部分,通过前缀与拓扑标识缀连,可以组成可路由的地址前缀,作为第一报文的录音信息。当需要向下一个指定的设备转发时,可以将当前目的地址的拓扑标识字段替换为下一个指定的设备的拓扑标识,生成新的目的地址,然后按照新的目的地址转发第一报文。
针对第一设备在第一报文中存储设备的拓扑标识的方式,可以但不限于以下的方式。
方式1:拓扑标识信息占用第四连续字段。结合上述例子,如图4h所示,拓扑标识信息中可以包括:TID[PE2],TID[P3],TID[P2],TID[P1]。此时,第一报文的报头还可以包括第一指针。对应的,第二设备可以根据所述第一指针在所述第四连续字段中,确定所述第二设备的拓扑标识。
方式2:功能标识和拓扑标识成组的场景,所述第一设备若确定所述第二设备需要执行网络功能,则确定所述功能标识信息中的所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段。所述第一设备若确定所述第二设备不需要执行网络功能,则确定第一报文中不携带第二设备的功能标识,所述第二设备的拓扑标识占用单独的字段。如图4g所示,具体的格式可以参考上述实施例中的描述,在此不再赘述。
对应的,第二设备可以根据第一报文中的第一指针,及拓扑标识和或功能标识的长度,确定第二设备的拓扑标识的位置,进而,确定第二设备的拓扑标识。
方式3:第二设备的拓扑标识存储于第一报文的目的地址中,此时,第一报文的目的地址可以包括:多个设备的拓扑标识,所述多个设备包括所述第二设备。
举例来说,如图4i所示,以拓扑标识TID长度为16bit为例,则目的地址中可以同时携带6个TID。对应的,最后一个非零的TID为当前接收到第一报文的设备的TID。以第二设备为例,若第二设备确定第一报文的目的地址中还包括其他TID,则更新第一报文的目的地址,以使第一报文的目的地址中,最后一个非零的TID为第二设备转发第一报文的设备的TID。举例来说,可以将第二设备的TID删除并补零处理。
当然,若目的地址中,以目的地址前缀后第一个TID作为当前接收到第一报文的设备的TID,此时,第二设备获取到第一报文的目的地址中的第二设备的TID后,确定第一报文的目的地址中,存在除第二设备的TID之外的TID,则确定需转发至指定的下一设备,此时,可以将第二设备的TID删除,并将剩余的其他TID移位至前缀后。
举例来说,第一报文的目的地址的前缀为2001:db8,第一目的地址中携带3个指定的设备的拓扑标识为例,指定的设备1的拓扑标识为0x0100,指定的设备2的拓扑标识为0x0200和指定的设备3的拓扑标识为0x0300。源路由的路径为指定的设备1→指定的设备2→指定的设备3。在发送第一报文之前,可以分别通告3个指的设备的路由信息2001:db8:0100::,2001:db8:0200::和2001:db8:0300::的可达性。在源节点(第一设备)处生成的第一报文的目的地址可以为:2001:db8:0100:0200:0300::。第一设备可以根据指定的设备1的路由信息2001:db8:0100::,路由到指定的设备1。指定的设备1根据接收到的第一报文中的目的地址,确定前缀后面16bits的0200不等于0,则将0200:0300::向前移位16bits,剩余部分用0填充,生成2001:db8:0200:0300::,更新至第一报文的目的地址。指定的设备1将更新目的地址后的第一报文向指定的设备2转发。指定的设备2接收到转发的第一报文后,若确定目的地址中前缀后面16bits的0300不等于0,则将0300::向前移位16bits,剩余部分用0填充,生成2001:db8:0300::,更新至第一报文的目的地址。指定的设备2将更新目的地址后的第一报文向指定的设备3转发。指定的设备3接收到转发的第一报文后,若确定目的地址中前缀后面16bits为0,说明本节点的设备是当前目的地址的最后一跳,可以查看扩展报头中是否存在其他TID,若确定存在,则按拓扑标识组(拓扑标识组存在3个拓扑标识,若确定扩展报头中仅存在少于3个的拓扑标识,则将扩展报头中的所有拓扑标识作为一个拓扑标识组)的形式,复制至目的地址字段,进而重复上述转发的操作。若确定不存在其他指定的设备的拓扑标识,则可以确定该节点的设备为第一报文在当前路径的网络出口节点,进而可以剥除外部报文封装等操作。
对应的,对于接收到第一报文的指定的设备可以根据目的地址中的自身设备的TID,对转发报文进行验证,并进一步确定路径上的指定的下一设备,或者,确定自身设备是否为目的节点,可以对第一报文进行解封装等操作。
进一步的,若路径上的指定的设备的个数超过了目的地址所能承载的个数,此时,可以将剩余指定的设备的TID携带在扩展报头中,此时,所述第一报文的扩展报头包括所述拓扑标识信息的至少一个拓扑标识组;所述拓扑标识组包括的拓扑标识的数量与所述第一报文中目的地址可承载的拓扑标识的数量相同;如图4j所示,拓扑标识信息中可以包括拓扑标识组1和拓扑标识组2,拓扑标识组1中携带的TID的数量与目的地址中可携带的TID数量相同,即若确定目的地址中最多携带6个TID,则拓扑标识组1中携带6个,拓扑标识组2中可以携带少于6个,具体的拓扑标识组的数量,及最后一个拓扑标识组中的拓扑标识的数量可以根据路径上需携带的TID的数量确定。所述至少一个拓扑标识组用于所述第二设备根据至少一个拓扑标识组,确定第三设备的拓扑标识;所述第三设备为所述第一报文指定的所述第二设备的下一设备。一种可能的设计,所述第一报文的扩展报头还包括第四指针;所述第四指针用于指向所述拓扑标识组。上述方案在进行约束路径转发时,可以有效降低报头的开销。
方式4:报文的目的地址字段可以由三个部分组成:前缀,拓扑标识,填充部分。前缀为路径上的每个指定的设备共用,通过前缀与拓扑标识缀连,可以组成可路由的地址前缀;填充部分内容可以为其他指定的设备的拓扑标识,也可以为设备的功能标识,此处不限定。举例来说,可以如图5a所示,第二设备的目的地址中携带前缀,第二设备的拓扑标识和第二设备的功能标识。例如,目的地址可以由第一前缀,拓扑标识组成,第一前缀为同一个域中的每个设备共用的部分,所述设备的拓扑标识用于与第一前缀,生成所述设备的路由信息。进一步的,为进一步压缩报头,短前缀可以根据本转发路径上指定的设备的拓扑标识的具体情况生成,同一个域的不同路径上,前缀可以不同,长度可以不同。本申请实施例中,第一设备还可以根据路径,生成第二前缀和对应的第二拓扑标识。具体的,可以包括:
步骤一、第一设备根据所述第一报文的转发路径上的多个设备的拓扑标识中相同部分及所述第一前缀,确定第二前缀;
具体的,可以将转发路径上所有指定的设备的拓扑标识的相同部分提取出来,和第一前缀合成为第二前缀。此处的相同部分可以为从每个拓扑标识的第一个bit开始确定的相同部分,也可以为根据其他方式确定的相同部分,在此不做限定。
步骤二、第一设备根据所述第二前缀和至少一个设备的第二拓扑标识,生成第二设备的目的地址。
将每个指定的设备的拓扑标识除第二前缀中的部分作为第二拓扑标识,此时,第一报文生成的第二设备的目的地址,可以为根据第二前缀和第二设备的第二拓扑标识生成的。
对应的,第一报文中的拓扑标识信息可以包括所述第一报文经过的至少一个设备的第二拓扑标识;所述第二拓扑标识为所述设备的拓扑标识中除至少一个设备的拓扑标识的相同部分之外的部分。对应的,第二设备生成第三设备的目的地址的场景,可以为根据第二前缀和第三设备的第二拓扑标识生成的。
举例来说,第一前缀prefix为n个bits,拓扑标识长度为m个bits,如图5b所示,第一前缀为2001:db8::/32,拓扑标识1=0x0001,拓扑标识2=0x0200,拓扑标识3=0x0003,拓扑标识4=0x0400,拓扑标识5=0x0005,拓扑标识6=0x0006。
以路径PE1-P1-P3-PE2为例,此时,拓扑标识5,拓扑标识1,拓扑标识3,拓扑标识6的相同部分为x个bits,则此路径的第二前缀prefix_1的长度为(n+x)个bits,报文携带的第二拓扑标识的长度为(m-x)个bits。
对于路径PE1-P1-P3-PE2,第二前缀为2001:db8::/44,第二拓扑标识1=0x1,第二拓扑标识3=0x3,第二拓扑标识5=0x5,第二拓扑标识6=0x6;
以路径PE1-P2-P4-PE2为例,拓扑标识5,拓扑标识2,拓扑标识4,拓扑标识6的相同部分为y个bits,则此路径的第二前缀prefix_2的长度为(n+y)个bits,报文携带的第二拓扑标识的长度为(m-y)个bits。进而,第二前缀为2001:db8::/36,第二拓扑标识2=0x200,第二拓扑标识4=0x400。
本实施例可以根据转发路径上的各指定的设备的拓扑标识,将路径上每个指定的设备共用的部分提取出来,作为第二前缀,报文中只需携带拓扑标识中不同的部分,从而可以进一步降低携带在报文中的拓扑标识的长度,从而进一步压缩报头,降低报头开销。
方式5:第一报文中还可以包括第一拓扑标识,第一拓扑标识指示一段路径上的设备的拓扑标识。即第一拓扑标识用于指示所述第一报文经过的至少一个设备的路由信息。针对第一拓扑标识,第一设备可以在第一报文的扩展报头存储第一拓扑标识,也可以直接在第一报文的目的地址中存储第一拓扑标识,在此不做限定。第一设备可以提前在每个指定的设备上配置好第一拓扑标识对应的出端口,下一跳等转发信息。进而,每个指定的设备收到第一报文后,可以读取第一拓扑标识,进而在本地查找第一拓扑标识对应的转发信息,从而按照查到的转发信息转发第一报文。以路径上的指定的设备为第二设备为例,第二设备可以根据本地存储的拓扑标识与第三设备的拓扑标识和/或端口的对应关系,确定所述第一拓扑标识对应的第三设备的目的地址,进而将所述第一报文转发至所述第三设备。
另外,针对上述实施例,所述第一报文的目的地址也可以有多种设计,包括:所述第二设备的拓扑标识或所述第一拓扑标识;或者,所述第一报文的目的地址包括:所述第二设备的拓扑标识或所述第一拓扑标识的任一项,及所述第二设备的功能标识或所述第一功能标识的任一项。
由于目的地址为固定长度,目的地址可以由前缀和拓扑标识组成,若前缀和拓扑标识未用完该固定长度,还可以包括填充部分,填充部分内容不限定,可以是全0填充,也可以是功能标识等其他内容。
针对填充部分为功能标识的情况,当需要向指定的下一个设备转发时,将当前目的地址的拓扑标识字段替换为指定的下一个设备的拓扑标识,同时,通过指定的下一个设备的指示信息,得知在指定的下一个设备上是否需要执行网络功能;如果不需要执行网络功能,则目的地址的填充部分仍然是用0填充;如果需要执行网络功能,则将对应的功能标识复制到填充部分。这样,生成了新的目的地址,然后仍然按照新的目的地址的可路由前缀(短前缀+拓扑标识)转发报文。当第一报文到达指定的下一个设备之后,读取填充部分的功能标识,即可执行该功能标识对应的功能。
在生成目的地址时,读取功能标识,将功能标识复制到目的地址中,对应的设备在接收到第一报文是,可以直接从目的地址字段中确定功能标识,进而执行对应的网络功能。本实施例中,通过确定功能标识后,查找功能标识对应的网络功能时,可以采用SRv6的SID表,即可以下行兼容SRv6的设备。需要说明的是,SID表指的是具有SRV6能力的设备都会维护一张本地SID表(My Local SID Table)。这个表包含节点N所有显示实例化的SRv6segments。每一个SRv6 SID实例都绑定了一个明确的指令(处理程序)。这些信息存储在本地SID表。表中每一个实例都标识着与本地SID及其参数关联的网络功能。
本实施例中生成的目的地址符合SRv6的SID的格式,可以下行兼容SRv6的设备。本实施例中,如果需要执行网络功能,则第一报文携带对应的功能标识,在生成该设备的目的地址时,将此功能标识也复制到目的地址中;如果不需要执行网络功能,则报文不携带该设备的功能标识。通过按需携带功能标识的方式,有效压缩报头开销。
步骤302:第一设备向第二设备发送所述第一报文;所述第二设备为所述第一报文中指定的所述第一设备的下一设备。
上述实施例中,通过解耦拓扑标识和功能标识,及通过功能指示,指示在指定的设备上是否需要执行网络功能,若不需要执行网络功能,则没有功能标识。相比于SRv6,由于SID的locator和function是耦合在一起的,可以按需携带功能标识,减少了报头开销。对应的,也进一步减少了设备处理报文的时间,提高了报文的转发效率和设备处理报文的效率。
如图6所示,为本申请提供的报文处理方法示例图,包括:
步骤601:第二设备接收来自第一设备的第一报文。
需要说明的是,此处的第一设备可以为与上述实施例中生成第一报文的第一设备相同,也可以为路径上的分段节点对应的设备,在此不做限定。
步骤602:第二设备若根据所述第二设备的功能指示,确定所述第二设备需要执行网络功能,则通过所述功能标识信息中的所述第二设备的功能标识执行对应的网络功能。
在执行网络功能时,如果功能指示表明当前设备需要执行网络功能,则在报文中存放功能标识的位置读取相应的功能标识;如果功能指示表明当前设备不需要执行网络功能,则当前设备不处理相应的功能标识信息。进一步的,所述第二设备若根据所述第二设备的功能指示,确定所述第二设备不需要执行网络功能,则所述第二设备不处理所述第一报文中的功能标识信息。
上述实施例中,第二设备可以根据报文携带的第二设备的功能指示,确定第二设备是否需要执行网络功能。如果不执行网络功能,就不用读取功能标识在本地的功能标识与网络功能的表,可以有效提高设备处理效率。
针对功能指示信息,可以包括但不限于以下方式。
方式一:所述第一报文的报头还包括拓扑标识信息;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述第二设备的拓扑标识的字段包括所述第二设备的功能指示;此时,第二设备根据所述拓扑标识信息中,所述第二设备的拓扑标识的字段中的功能指示,确定所述第二设备是否需要执行网络功能。
进一步的,所述第一报文的扩展报头还可以包括第一指针;所述第一指针用于指向所述第二设备的拓扑标识;此时,第二设备根据所述第一指针,在所述第四连续字段中确定所述第二设备的拓扑标识;所述第二设备根据所述第二设备的拓扑标识的字段中的功能指示,确定所述第二设备是否需要执行网络功能。
方式二:所述第一报文的目的地址包括所述第二设备的拓扑标识;所述第二设备的拓扑标识的字段包括所述第二设备的功能指示;此时,第二设备根据所述第一报文的目的地址中,所述第二设备的拓扑标识的字段中的功能指示,确定所述第二设备是否需要执行网络功能。
方式三:所述功能指示信息占用第一连续字段;此时,第二设备根据所述第一连续字段,确定所述第二设备的功能指示,进而确定是否需要执行网络功能。
针对功能标识信息,可以包括但不限于以下实现方式。
方式1:所述功能标识信息占用第二连续字段;此时,第二设备可以在所述第二连续字段中,确定所述第二设备的功能标识,并执行所述第二设备的功能标识对应的网络功能。
一种可能的实现方式中,第二设备可以根据所述第二指针,在所述第二连续字段中,确定所述第二设备的功能标识,并执行所述第二设备的功能标识对应的网络功能。
方式2:所述第一报文的扩展报头还包括功能索引信息;此时,第二设备根据所述第二设备的功能索引,在所述功能标识信息中,确定所述第二设备的功能索引对应的功能标识;所述第二设备根据所述第二设备的功能索引对应的功能标识,执行对应的网络功能。
一种可能的设计,功能索引信息占用第三连续字段;此时,所述第一报文的扩展报头还包括第三指针;所述第二设备通过所述第三指针,确定所述第二设备的功能索引。
另一种可能的设计,若所述第二设备需要执行网络功能,则所述第二设备的功能索引与所述第二设备的拓扑标识占用连续的字段;所述第一指针用于指向所述第二设备的拓扑标识;此时,所述第二设备可以通过第一指针,确定所述第二设备的功能索引与所述第二设备的拓扑标识占用连续的字段,进而确定所述第二设备的功能索引。
上述设计中,在网络功能有相同的场景下,可以在第一报文中携带功能索引信息,功能索引用于指示设备要执行的网络功能在功能标识信息中对应的功能标识。此时,第一报文中只携带一个相同网络功能的功能标识。使得报文中的功能标识可以灵活的复用,降低报头开销。
方式3:若所述第二设备需要执行网络功能,则所述功能标识信息中的所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段;此时,第二设备可以通过所述第一指针,确定所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段,进而确定所述第二设备的功能标识,进而根据所述第二设备的功能标识执行对应的网络功能。
方式4:所述第二连续字段中包括第一功能标识;所述第二设备将所述第一功能标识,作为所述第二设备的功能标识;所述第二设备根据在本地存储的第二设备的功能标识与所述第二设备的网络功能的对应关系,执行所述第二设备的功能标识对应的网络功能。
进一步的,第二设备若不是网络出口节点对应的设备,则可以包括以下步骤:所述第二设备若根据所述第一报文确定存在第三设备,则向所述第三设备转发所述第一报文;所述第三设备为所述第一报文指定的第二设备的下一设备。
一种可能的设计,第二设备可以根据所述拓扑标识信息,确定所述第三设备的拓扑标识;第二设备根据所述第三设备的拓扑标识,更新所述第一报文的目的地址;第二设备向所述第三设备转发所述更新后的所述第一报文。
针对第二设备确定第一报文中第三设备的拓扑标识的方法,可以有但不限于以下实现方式:
情形1:所述拓扑标识信息占用第四连续字段;此时,第二设备可以根据所述第一指针及所述第二设备的拓扑标识的长度,在所述第四连续字段中,确定所述第三设备的拓扑标识。
举例来说,若拓扑标识信息在第一报文中的格式为:TID[PE2],TID[P3],TID[P2],TID[P1]。第一指针的值可以为0-3。第一指针的值为0时,第一指针指向TID[PE2],第一指针的值为3时,第一指针指向TID[P1]。若第二设备确定第一指针的值为2,则确定第二设备的拓扑标识为TID[P2],此时,可以向左移拓扑标识的长度的bit数,进而确定第三设备的拓扑标识为TID[P3],同时,由于第一指针的值不为0,需要将第一指针的值减1,更新为2,以使第一指针指向TID[P3]。当然,若拓扑标识信息以顺序的方式存放,第二指针的更新方式可以为加1,具体实施过程可以参考上述实施例,在此不再赘述。
情形2:所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段;所述第二设备根据所述第一指针及所述第二设备的拓扑标识及所述第二设备的功能标识的长度,确定所述第三设备的拓扑标识。
举例来说,若拓扑标识信息和功能标识信息在第一报文中的格式为:TID[PE2],TID[P3],FID[P3],TID[P2],FID[P2],TID[P1],FID[P1]。
第一指针的值为0时,第一指针指向TID[PE2]。第一指针的值为3时,第一指针指向TID[P1]。一种可能的实现方式,第二设备可以根据第一指针的值,及第一指针后的设备是否需要执行网络功能,确定需执行网络功能的设备的个数,即确定功能标识的个数M,可以确定第二设备的拓扑标识的位置为:拓扑标识所在字段的起始位置+第一指针*拓扑标识的长度L2+M*功能标识的长度L1。需要说明的是,在具体实施过程中,可以根据第二设备对第一报文的扩展报头顺序读取字段过程中,确定每个设备是否执行网络功能,进而确定下一字段为功能标识还是拓扑标识的方式,查找到第一指针指向的拓扑标识,无需执行确定功能标识的个数M的过程,以提高报文的处理效率。
若第二设备根据第二设备的功能指示,确定需要执行网络功能,则根据第二设备的拓扑标识的位置,左移L1+L2的长度,即可以确定第三设备的拓扑标识。若第二设备根据第二设备的功能指示,确定不需要执行网络功能,则根据第二设备的拓扑标识的位置,左移L2的长度,即可以确定第三设备的拓扑标识。此时,若第一指针的值不为0,因此,需要将第一指针更新为指向第三设备的拓扑标识的值,即第一指针的值减1。当然,若功能标识信息以顺序的方式存放,第以指针的更新方式可以为加1,具体实施过程可以参考上述实施例,在此不再赘述。
进一步的,第二设备更新所述第一指针,所述更新后的第一指针指向所述第三设备的拓扑标识。
情形3:针对第一报文的目的地址包括多个设备的拓扑标识的场景,可以包括以下情况。
情况一,第二设备若确定所述第一报文的目的地址包括所述第三设备的拓扑标识,则在所述第一报文的目的地址中,确定第三设备的拓扑标识。
具体的第二设备根据目的地址确定第三设备的拓扑标识的方式,可以参考上述实施例,在此不再赘述。
情况二,所述第二设备若确定所述第一报文的目的地址不包括所述第三设备的拓扑标识,则根据至少一个拓扑标识组,确定所述第三设备的拓扑标识。其中,所述第一报文的扩展报头包括所述拓扑标识信息的至少一个拓扑标识组。对应的,所述第二设备将所述第一报文的目的地址中的多个拓扑标识更新为所述第三设备的拓扑标识所在的拓扑标识组的多个拓扑标识。
一种可能的实现方式,第二设备根据至少一个拓扑标识组,确定所述第三设备的拓扑标识的方式为根据第四指针确定的。即第二设备可以将所述第四指针对应的第一拓扑标识组,确定为所述第三设备的拓扑标识所在的拓扑标识组。其中,第四指针存储于第一报文的扩展报头,所述第四指针用于指向拓扑标识组。进一步的,所述第二设备若确定所述第一报文的扩展报头包括除所述第一拓扑标识组的其他拓扑标识组,则将所述第四指针指向所述第一拓扑标识组的下一拓扑标识组。
举例来说,若确定扩展报头中还包括2个拓扑标识组,其格式为:拓扑标识组2,拓扑标识组1。此处的举例是以拓扑标识组1中的拓扑标识对应的设备先路由的顺序进行设置的,具体的设置方式可以不做限定。此时,第四指针的值可以为0,1。当第四指针的值为0时,第四指针指向拓扑标识组2,当第四指针的值为1时,第四指针指向拓扑标识组1。
若第二设备确定第四指针指向拓扑标识组1,则将拓扑标识组1作为第一拓扑标识组,根据第一拓扑标识组更新第一报文中的目的地址中的拓扑标识的字段,更新后的第一报文的目的地址中包括拓扑标识组1中的所有拓扑标识。进一步的,由于第四指针此时的值不为0,因此,需要更新第四指针,即将第四指针的值减1,以使第四指针指向拓扑标识组2。当然,若拓扑标识信息以顺序的方式存放,第四指针的更新方式可以为加1,具体实施过程可以参考上述实施例,在此不再赘述。更新后,第二设备根据更新后的目的地址,将更新后的第一报文向第三设备转发。具体的转发方式可以参考上述实施例,在此不再赘述。
情形4:第二设备还可以根据第一报文中的第一拓扑标识,确定第三设备的路由信息。具体的,所述第二设备根据本地存储的拓扑标识与第三设备的拓扑标识和/或端口的对应关系,确定所述第一拓扑标识对应的第三设备的目的地址;所述第二设备根据所述第一拓扑标识对应的所述第三设备的目的地址,将所述第一报文转发至所述第三设备。此时,由于第一拓扑标识也标识了第三设备的路由信息,因此,第一报文的目的地址中的拓扑标识字段无需进行更新。
需要说明的是,若第二设备无法根据第一报文中的第一拓扑标识,确定第三设备的路由信息,可能存在的场景是,第三设备的拓扑标识并不包含在第一拓扑标识中,此时,第三设备的拓扑标识TID存储于扩展报头中的拓扑标识信息中,第二设备可以根据上述实施例针对一个拓扑标识对应一个设备的场景中的实施方式,确定第三设备的拓扑标识,进而更新第一报文的目的地址中的拓扑标识的字段。另一种可能的场景为,第二设备为指定路径的网络出口节点的设备,因此,第一拓扑标识在第二设备中没有指定的下一设备的路由信息。此时,第二设备可以直接执行网络出口节点对应的操作。
进一步的,若第二设备需执行网络功能,则针对功能标识或功能索引的相关信息,还需对应更新第一报文。具体的可以包括但不限于以下场景:
场景1:功能标识信息占用第二连续字段;所述第一报文的报头还包括第二指针;所述第二指针用于指示所述功能标识信息中所述第二设备的功能标识;此时,第二设备更新所述第二指针,更新后的所述第二指针指向所述第三设备的功能标识。
场景2:第一报文的扩展报头还包括功能索引信息;所述功能索引信息占用第三连续字段;所述第一报文的扩展报头还包括第三指针;所述第三指针用于指向所述功能索引信息中所述第二设备的功能索引;此时,第二设备更新所述第三指针,所述更新后的第三指针指向所述第三设备的功能索引。
此时,第二设备可以根据第三指针FIDP,确定第二设备是否为最后一个需要执行网络功能的设备,进而确定第二设备是否需要更新第三指针。
结合图3中的实施例,若功能索引字段的格式为:F2[P3],F1[P2],F1[P1]。第三指针指向的第二设备为P3,即第三指针的值为0,此时,可以确定第二设备为最后一个需要执行网络功能的设备,进而确定第二设备不需要更新第三指针。若第三指针指向的第二设备为P2,即第三指针的值大于0,为1,则可以确定第二设备不为最后一个需要执行网络功能的设备,进而确定第二设备需要更新第三指针,即将第三指针的值减1,以使第三指针指向P3。当然,若功能索引信息以顺序的方式存放,第三指针的更新方式可以为加1,具体实施过程可以参考上述实施例,在此不再赘述。
场景3:所述第一报文的扩展报头还包括功能索引信息;所述第二设备的功能索引与所述第二设备的拓扑标识占用连续的字段;此时,第二设备根据所述第一指针及所述第二设备的拓扑标识及所述第二设备的功能索引的长度,确定所述第三设备的拓扑标识。
举例来说,第一报文中的拓扑标识与功能索引占用的字段中,可以为以下格式:TID[PE2],TID[P3],F2,TID[P2],F1,TID[P1],F1。第一指针的值可以为0-3。若此时,第一指针的值为2,则可以根据第一指针指向的TID[P2],右移L2+L3的长度,即可以确定第三设备的拓扑标识。此时,右移第一指针的值不为0,因此,可以将第一指针的值减1,更新为1。
针对第一报文的目的地址,所述第一报文的目的地址包括:所述第二设备的拓扑标识或所述第一拓扑标识;或者,所述第一报文的目的地址包括:所述第二设备的拓扑标识或所述第一拓扑标识的任一项,及所述第二设备的功能标识或所述第一功能标识的任一项。
举例来说,若第一报文的目的地址包括第二设备的拓扑标识和第二设备的功能标识,则第二设备向第三设备转发第一报文之前,第二设备可以根据第三设备的功能指示,确定第三设备是否存在功能标识,若确定第三设备存在功能标识,则将第一报文的目的地址的拓扑标识的字段更新为第三设备的拓扑标识,将第一报文的目的地址中的功能标识的字段更新为第三设备的拓扑标识。再比如,若第一报文的目的地址包括第一功能标识和第一拓扑标识。则第二设备向第三设备转发第一报文之前,第二设备可以根据第一拓扑标识确定的第三设备路由信息,确定第一拓扑标识也是第三设备的拓扑标识,进而,可以直接将第一报文转发至第三设备,无需更新第一报文的目的地址。
另一种可能的场景中,若第二设备确定第二设备为网络出口节点的设备,则对第一报文进行解封装,无需针对该路径进行转发。
具体的确定第二设备为网络出口节点的设备的方式,可以包括:
一种可能的设计,若第一报文中包括第一指针,可以根据第一指针的值,确定第二设备是否为网络出口节点。举例来说,第一报文中的拓扑标识信息占用的字段的顺序可以为以下顺序:TID[PE2],TID[P3],TID[P2],TID[P1]。且第一指针当前指向TID[PE2],即第一指针的值为0,此时,可以确定第二设备没有指定的下一设备,因此,可以将第二设备确定为网络出口节点的设备。
另一种可能的设计,若第一报文中包括第一拓扑标识,且第二设备根据第一拓扑标识在本地存储的拓扑标识与下一跳的路由信息的关系中,确定第一拓扑标识没有对应的下一跳的路由信息,则确定第二设备为网络出口节点的设备。
下面以功能标识复用,且功能标识信息、拓扑标识信息、功能索引信息分别占用连续的字段的报文处理方法进行具体说明,第一报文的格式如图7a所示。第一报文的标准报头中包括第一设备的源地址,及以第二设备为指定的下一设备的目的地址,NH字段。其中,目的地址中包括前缀和第二设备的拓扑标识TID组成可路由的IPv6前缀,并且保证前缀不冲突。前缀可以由源节点逐路径确定。NH字段可以占用8bit,用于标识下一个报头的类型。第一报文的扩展报头中包括第一部分:扩展头部长度Hdr Ext Len,可以为8bits;路由类型Routing Type,可以为8bits,具体的路由类型可以不限定。第一指针(TID Left),可以为8bits,指示接收第一报文的设备的拓扑标识TID;第三指针(FIDP Left)可以为8bits,指示接收第一报文的设备的功能索引(Function IDentifier Pointer,FIDP);拓扑标识的长度(TID Len,TIDL)可以为8bits,TID长度不限定。功能标识的长度(FID Len,FIDL)可以为4bits。功能索引的长度(FID Pointer Len,FIDPL)可以为4bits。最后一个拓扑标识的位置(Last TID,LTID)可以为8bits,用于指示拓扑标识信息TID栈底的索引值。最后一个功能索引的位置(Last FIDP,LFIDP)可以为8bits,用于指示功能索引信息FIDP栈底的索引值。复用标识(Flag)可以为1bit,标识是否有功能标识复用。例如,若Flag是0,则确定第一报文中的功能标识不复用,不使用FIDP确定功能标识;若Flag是1,则确定第一报文中的功能标识复用,使用FIDP确定功能标识。
需要说明的是,由于该例子中,第一报文中按照拓扑标识信息、功能索引信息、功能标识信息的顺序设置第四连续字段、第三连续字段和第二连续字段,因此,可以设置最后一个功能索引的位置(Last FIDP,LFIDP)及最后一个拓扑标识的位置(Last TID,LTID),若更改拓扑标识信息、功能索引信息、功能标识信息的顺序,则此时,也可以对应设置连续字段的最后一个位置的标识。例如,若第一报文中按照第一连续字段、第四连续字段、第二连续字段和第三连续字段的顺序设置,则还可以在第一部分中设置最后一个功能标识的位置的字段。再比如,若功能标识不复用,则第一报文中可以按照第四连续字段和第二连续字段设置,则此时,第一报文中可以设置最后一个拓扑标识的位置(Last TID,LTID)即可。
以图7a为例,第一报文的报头的第二部分可以包括拓扑标识信息、功能索引信息、功能标识信息。拓扑标识信息可以为栈的形式,即TID stack,拓扑标识信息占用第四连续字段。功能索引信息可以为栈的形式,即FIDP stack,此时,功能索引信息占用第三连续字段。其中,FID的长度可以根据本域的服务部署规模灵活选择,例如,FIDP可以设置为0001对应8bits,0010对应16bits,……,1111对应120bits等。功能标识信息可以为栈的形式,即FID table:存储该路径上指定的设备上需执行的功能标识FID;此时,功能标识信息占用第二连续字段。
针对第二设备接收到第一报文的场景中,第二设备可以根据第一报文的报头中的第一部分和第二部分,确定第一报文是否需要执行网络功能,且第二设备是否需要向第三设备转发,或者第二设备是否为第一报文的网络出口节点的设备等。需要说明的是,在具体实施过程中,第一报文中的报头的格式可以为图3和图6的实施例中的任一种及其结合,在此仅为举例。
结合上述例子,一种可能的实现方式,可以如图7b所示,包括以下步骤:
步骤701:第二设备接收来自第一设备的第一报文。
此处第一设备可以为网络入口节点的设备,也可以为分段节点的设备,在此不做限定。
步骤702:第二设备确定第一报文中的第二设备的功能指示。
具体的,第二设备根据扩展报头的第24位,确定第一指针TID_Left,记录第一指针TID_Left是否为0。进一步的,根据扩展报头的第32位,确定第三指针FIDP_Left,记录第二指针FIDP_Left是否为0。进一步的,根据扩展报头的第80位+第一指针TID_Left*TIDL,确定第二设备的拓扑标识,此处的示例中,功能指示位于对应设备的拓扑标识中的最后1位,因此,第二设备可以右移TIDL-1个bit位,确定第二设备的功能指示。此处,以功能指示为1作为需要执行网络功能,以功能指示为0作为不需要执行网络功能为例。第二设备根据第二设备的功能指示,确定是否为1,若为1,则可以确定第二设备需执行网络功能,执行步骤703;若为0,则可以确第二设备不需要执行网络功能,执行步骤705;
步骤703:第二设备确定第二设备的功能索引。
需要说明的是,第二设备可以根据flag字段,确定第一报文中的功能标识为复用,即需要根据功能索引确定对应的功能标识。
具体的,第二设备可以根据第三指针,从扩展报头的第80位+(LTID+1)*TIDL+FIDP_Left*FIDPL,确定第二设备的功能索引为FIDP[FIDP_Left]。
步骤704:第二设备根据第二设备的功能索引,确定第二设备的功能标识,进而执行功能标识对应的网络功能。
具体的,第二设备可以根据第三指针,从扩展报头的第80位+(LTID+1)*TIDL+(LFIDP+1)*TIDPL+FID[FIDP_Left],确定为第二设备的功能标识。
进一步的,第二设备更新第三指针。具体更新第三指针的方式可以为对第三指针的值减1。
步骤705:第二设备确定第二设备是否为网络出口节点的设备,若否,则执行步骤706;若是,则执行步骤707。
具体的,第二设备可以根据第三指针的值是否为0,确定第二设备是否为网络出口节点的设备,具体实施方式,可以参考上述实施例在此不再赘述。
步骤706:第二设备更新第一指针,并将第一指针指向的第三设备的拓扑标识更新至第一报文的目的地址,并转发所述更新后的第一报文。
具体更新第一指针的方式可以为对第一指针的值减1。
步骤707:对第一报文进行解封装。解封装可以包括剥离外层IPv6报头,及扩展报头等操作,在此不做限定。
以图8a为例,功能指示信息以位于拓扑标识中为例,需要说明的是,在具体实施过程中,第一报文中的报头的格式可以为图3和图6的实施例中的任一种及其结合,在此仅为举例。第一报文的报头的第二部分可以包括拓扑标识信息、功能标识信息。此时,可以包括功能指示信息的最后一个功能指示的位置及功能指示的长度,及功能标识对应的第二指针FID_Left。此实施例中,第二指针占用的bit位可以与图7a中的FIDP_Left相同,也可以不同,在此不做限定。拓扑标识信息可以为栈的形式,即TID stack,拓扑标识信息占用第四连续字段。功能标识信息可以为栈的形式,即FID table:存储该路径上指定的设备上需执行的功能标识FID;此时,功能标识信息占用第二连续字段。
针对第二设备接收到第一报文的场景中,第二设备可以根据第一报文的报头中的第二部分中的第二设备拓扑标识中的功能指示,确定第一报文是否需要执行网络功能,根据第二部分中的拓扑标识信息,确定第二设备是否需要向第三设备转发,或者第二设备是否为第一报文的网络出口节点的设备等。
结合上述例子,一种可能的实现方式,可以如图8b所示,包括以下步骤:
步骤801:第二设备接收来自第一设备的第一报文。
此处第一设备可以为网络入口节点的设备,也可以为分段节点的设备,在此不做限定。
步骤802:第二设备确定第二设备的功能指示及功能标识不复用。
需要说明的是,第二设备可以根据flag字段,确定第一报文中的功能标识为不复用。例如,第二设备根据扩展报头的第24位,确定第三指针TID_Left,记录第三指针TID_Left是否为0。进一步的,根据第三指针TID_Left的值,在扩展报头的第80位+TID_Left*拓扑标识的长度LTID,确定第二设备的拓扑标识,进而根据功能指示在拓扑标识中的位置,确定第二设备的功能指示。
步骤803:第二设备根据第二设备的功能指示,确定是否为1,若为1,则可以确定第二设备需执行网络功能,执行步骤804;若为0,则可以确第二设备不需要执行网络功能,执行步骤805;此处,以功能指示为1作为需要执行网络功能,以功能指示为0作为不需要执行网络功能为例。
步骤804:第二设备确定第一报文中的第二设备的功能标识。
即根据第二指针,确定对应的功能标识,进而执行功能标识对应的网络功能。
具体的,第二设备可以根据第二指针,从扩展报头的第80位+(LTID+1)*TIDL+FID_Left*FIDL,确定第二设备的功能标识为FID[FID_Left]。
进一步的,第二设备对应更新第二指针FID_Left。具体更新第二指针FID_Left的方式可以为对第二指针的值减1。
步骤805:第二设备确定第二设备是否为网络出口节点的设备,若否,则执行步骤806;若是,则执行步骤807。
具体的,第二设备可以根据第二指针FID_Left的值是否为0,确定第二设备是否为网络出口节点的设备,具体实施方式,可以参考上述实施例在此不再赘述。
步骤806:第二设备更新第一指针TID_Left,并将第一指针指向的第三设备的拓扑标识更新至第一报文的目的地址,并转发所述更新后的第一报文。
具体更新第一指针的方式可以为对第一指针的值减1。
步骤807:对第一报文进行解封装。解封装可以包括剥离外层IPv6报头,及扩展报头等操作,在此不做限定。
上述主要从各个节点之间交互的角度对本申请提供的方案进行了介绍。可以理解的是,上述实现各节点为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
如图9所示,为本申请所涉及的报文处理装置的一种可能的示例性框图,该装置900可以以软件或硬件的形式存在。装置900可以包括:处理单元902和通信单元901。作为一种实现方式,该通信单元901可以包括接收单元和发送单元。处理单元902用于对装置900的动作进行控制管理。通信单元901用于支持装置900与其他网络实体的通信。
其中,处理单元902可以是处理器或控制器,例如可以是通用中央处理器(centralprocessing unit,CPU),通用处理器,数字信号处理(digital signal processing,DSP),专用字段成电路(application specific integrated circuits,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元901是一种该装置的接口电路,用于从其它装置接收信号。例如,当该装置以芯片的方式实现时,该通信单元901是该芯片用于从其它芯片或装置接收信号的接口电路,或者是该芯片用于向其它芯片或装置发送信号的接口电路。
该装置900可以为上述任一实施例中的第一设备,第二设备或第三设备,还可以为用于第一设备的芯片,第二设备的芯片,或第三设备的芯片。例如,当装置900为第二设备时,该处理单元902例如可以是处理器,该通信单元901例如可以是收发器。可选的,该收发器可以包括射频电路。例如,当装置900为用于第二设备的芯片时,该处理单元902例如可以是处理器,该通信单元901例如可以是输入/输出接口、管脚或电路等。该处理单元902可执行存储单元存储的计算机执行指令,可选地,该存储单元为该芯片内的存储单元,如寄存器、缓存等,该存储单元还可以是该第二设备内的位于该芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
在一个实施例中,该装置900为上述第二设备,所述通信单元901,用于接收来自第一设备的第一报文,所述第一报文的报头包括功能指示信息和功能标识信息,所述功能指示信息包括所述第一报文经过的至少一个设备的功能指示;所述功能指示用于指示所述设备是否需要执行网络功能;所述功能标识信息包括所述第一报文经过的至少一个需执行网络功能的设备对应的功能标识。所述处理单902,用于若根据所述装置900的功能指示,确定所述装置900需要执行网络功能,则通过所述功能标识信息中的所述装置900的功能标识执行对应的网络功能。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述拓扑标识用于对应的设备生成转发所述第一报文的目的地址;所述第二设备的拓扑标识的字段包括所述第二设备的功能指示;所述处理单元902,用于根据所述拓扑标识信息中,所述第二设备的拓扑标识的字段中的功能指示,确定所述装置900是否需要执行网络功能。
一种可能的设计,所述第一报文的扩展报头还包括第一指针;所述第一指针用于指向所述第二设备的拓扑标识;所述处理单元902,用于根据所述第一指针,在所述拓扑标识信息中确定所述装置900的拓扑标识;根据所述装置900的拓扑标识的字段中的功能指示,确定所述装置900是否需要执行网络功能。
一种可能的设计,所述第一报文的目的地址包括所述第二设备的拓扑标识;所述第二设备的拓扑标识的字段包括所述第二设备的功能指示;所述处理单元902,用于根据所述第一报文的目的地址中,所述装置900的拓扑标识的字段中的功能指示,确定所述装置900是否需要执行网络功能。
一种可能的设计,所述功能指示信息占用第一连续字段;所述处理单元902,用于根据所述第一连续字段,确定所述装置900的功能指示,进而确定是否需要执行网络功能。
一种可能的设计,所述功能标识信息占用第二连续字段;此时,所述处理单元902,用于在所述第二连续字段中,确定所述装置900的功能标识,并执行所述装置900的功能标识对应的网络功能。
一种可能的设计,所述第一报文的扩展报头还包括第二指针;所述第二指针用于指示所述第二连续字段中所述第二设备的功能标识;所述处理单元902,用于根据所述第二指针,在所述第二连续字段中,确定所述装置900的功能标识,并执行所述装置900的功能标识对应的网络功能。
一种可能的设计,所述第一报文的扩展报头还包括功能索引信息;所述功能索引信息包括所述第一报文经过的至少一个设备所执行的网络功能的功能标识的功能索引,功能索引与功能标识之间具有对应关系;所述处理单元902,用于根据所述第二设备的功能索引,在所述功能标识信息中,确定所述装置900的功能索引对应的功能标识;根据所述装置900的功能索引对应的功能标识,执行对应的网络功能。
一种可能的设计,所述功能索引信息占用第三连续字段;所述第一报文的扩展报头还包括第三指针;所述第三指针用于指向所述功能索引信息中所述第二设备的功能索引;所述处理单元902,用于通过所述第三指针,确定所述装置900的功能索引。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息和第一指针;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述拓扑标识用于对应的设备生成转发所述第一报文的目的地址;若所述装置900需要执行网络功能,则所述装置900的功能索引与所述装置900的拓扑标识占用连续的字段;所述第一指针用于指向所述装置900的拓扑标识;所述处理单元902,用于通过所述第一指针,确定所述装置900的功能索引与所述装置900的拓扑标识占用连续的字段,进而确定所述装置900的功能索引。
一种可能的设计,所述第二连续字段中包括第一功能标识;所述处理单元902,用于将所述第一功能标识,作为所述装置900的功能标识;根据在本地存储的装置900的功能标识与所述装置900的网络功能的对应关系,执行所述装置900的功能标识对应的网络功能。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息和第一指针;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述拓扑标识用于对应的设备生成转发所述第一报文的目的地址;若所述装置900需要执行网络功能,则所述功能标识信息中的所述装置900的功能标识与所述装置900的拓扑标识占用连续的字段;所述第一指针用于指向所述装置900的拓扑标识;所述处理单元902,用于通过所述第一指针,确定所述装置900的功能标识与所述装置900的拓扑标识占用连续的字段,进而确定所述装置900的功能标识,进而根据所述装置900的功能标识执行对应的网络功能。
一种可能的设计,所述处理单元902,用于若根据所述装置900的功能指示,确定所述装置900不需要执行网络功能,则不处理所述第一报文中的功能标识信息。
一种可能的设计,所述处理单元902,用于若根据所述第一报文确定存在第三设备,则所述通信单元901,用于向所述第三设备转发所述第一报文;所述第三设备为所述第一报文指定的所述装置900的下一设备。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述拓扑标识用于对应的设备生成转发所述第一报文的目的地址;所述处理单元902,用于根据所述拓扑标识信息,确定所述第三设备的拓扑标识;根据所述第三设备的拓扑标识,更新所述第一报文的目的地址;所述通信单元901,用于向所述第三设备转发所述更新后的所述第一报文。
一种可能的设计,所述功能标识信息占用第二连续字段;所述第一报文的报头还包括第二指针;所述第二指针用于指示所述功能标识信息中所述装置900的功能标识;所述处理单元902,用于更新所述第二指针,更新后的所述第二指针指向指定的下一需要执行网络功能的设备的功能标识。
一种可能的设计,所述第一报文的扩展报头还包括功能索引信息;所述功能索引信息包括所述第一报文经过的至少一个设备所执行的网络功能的功能标识的功能索引,功能索引与功能标识之间具有对应关系;所述功能索引信息占用第三连续字段;所述第一报文的扩展报头还包括第三指针;所述第三指针用于指向所述功能索引信息中所述装置900的功能索引;所述处理单元902,用于更新所述第三指针,所述更新后的第三指针指向指定的下一需要执行网络功能的设备的功能索引。
一种可能的设计,所述第一报文的扩展报头还包括功能索引信息;所述功能索引信息包括所述第一报文经过的至少一个设备所执行的网络功能的功能标识的功能索引,功能索引与功能标识之间具有对应关系;所述装置900的功能索引与所述装置900的拓扑标识占用连续的字段;所述第一报文的扩展报头还包括第一指针;所述第一指针用于指向所述装置900的拓扑标识;此时,所述处理单元902,用于根据所述第一指针及所述装置900的拓扑标识及所述装置900的功能索引的长度,确定所述第三设备的拓扑标识。
一种可能的设计,所述拓扑标识信息占用第四连续字段;所述第一报文的扩展报头还包括第一指针;所述第一指针用于指向所述装置900的拓扑标识;此时,装置900根据所述第一指针及所述装置900的拓扑标识的长度,在所述第四连续字段中,确定所述第三设备的拓扑标识。
一种可能的设计,所述装置900的功能标识与所述装置900的拓扑标识占用连续的字段;所述第一报文的扩展报头还包括第一指针;所述第一指针用于指向所述装置900的拓扑标识;此时,所述处理单元902,用于根据所述第一指针及所述装置900的拓扑标识及所述装置900的功能标识的长度,确定所述第三设备的拓扑标识。
一种可能的设计,所述处理单元902,用于更新所述第一指针,所述更新后的第一指针指向所述第三设备的拓扑标识。
一种可能的设计,所述第一报文的目的地址包括:多个设备的拓扑标识,此时,所述处理单元902,用于若确定所述第一报文的目的地址包括所述第三设备的拓扑标识,则在所述第一报文的目的地址中,确定第三设备的拓扑标识。
一种可能的设计,所述第一报文的扩展报头包括所述拓扑标识信息的至少一个拓扑标识组;所述拓扑标识组包括的拓扑标识的数量与所述第一报文中目的地址可承载的拓扑标识的数量相同;此时,所述处理单元902,用于若确定所述第一报文的目的地址不包括所述第三设备的拓扑标识,则根据至少一个拓扑标识组,确定所述第三设备的拓扑标识;将所述第一报文的目的地址中的多个拓扑标识更新为所述第三设备的拓扑标识所在的拓扑标识组的多个拓扑标识。
一种可能的设计,第一报文的扩展报头还包括第四指针;所述第四指针用于指向拓扑标识组;此时,所述处理单元902,用于将所述第四指针对应的第一拓扑标识组,确定为所述第三设备的拓扑标识所在的拓扑标识组。
一种可能的设计,所述处理单元902,用于若确定所述第一报文的扩展报头包括除所述第一拓扑标识组的其他拓扑标识组,则将所述第四指针指向所述第一拓扑标识组的下一拓扑标识组。
一种可能的设计,所述第一报文的扩展报头还包括第一拓扑标识;所述第一拓扑标识用于指示所述第一报文经过的至少一个设备的路由信息;所述处理单元902,用于根据本地存储的拓扑标识与第三设备的拓扑标识和/或端口的对应关系,确定所述第一拓扑标识对应的第三设备的目的地址;所述通信单元901,用于根据所述第一拓扑标识对应的所述第三设备的目的地址,将所述第一报文转发至所述第三设备。
一种可能的设计,所述第一报文的目的地址包括:所述第二设备的拓扑标识或所述第一拓扑标识;或者,所述第一报文的目的地址包括:所述第二设备的拓扑标识或所述第一拓扑标识的任一项,及所述第二设备的功能标识或所述第一功能标识的任一项。
在一个实施例中,装置900为第一设备,所述处理单元902,用于生成第一报文;所述第一报文的报头包括功能标识信息和功能指示信息;所述功能标识信息包括所述第一报文经过的至少一个需执行网络功能的设备对应的功能标识;所述功能指示信息包括所述第一报文经过的至少一个设备的功能指示;所述功能指示用于指示所述设备是否需要执行网络功能;所述通信单元901,用于向第二设备发送所述第一报文;所述第二设备为所述第一设备指定的下一设备。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述拓扑标识用于对应的设备生成转发所述第一报文的目的地址;所述设备的拓扑标识的字段包括所述设备的功能指示。
一种可能的设计,所述第一报文的报头还包括第一指针;所述处理单元902,用于将第一指针指向第二设备的拓扑标识。
一种可能的设计,所述第一报文的目的地址包括所述第二设备的拓扑标识;所述第二设备的拓扑标识的字段包括所述第二设备的功能指示。
一种可能的设计,所述功能指示信息占用第一连续字段;所述第一连续字段用于所述设备根据所述第一连续字段确定所述设备的功能指示。
一种可能的设计,所述功能标识信息占用第二连续字段;所述第二连续字段用于所述装置900根据所述第二连续字段,确定所述装置900的功能标识。
一种可能的设计,所述第一报文的扩展报头还包括第二指针;所述处理单元902,用于若确定所述第二设备需执行网络功能,则将所述第二指针指向所述第二连续字段中所述装置900的功能标识。
一种可能的设计,所述第一报文的扩展报头还包括功能索引信息;所述功能索引信息包括所述第一报文经过的至少一个设备所执行的网络功能的功能标识的功能索引,功能索引与功能标识之间具有对应关系;所述功能索引信息用于所述第二设备根据所述第二设备的功能索引,在所述功能标识信息中,确定所述第二设备的功能索引对应的功能标识。
一种可能的设计,所述功能索引信息占用第三连续字段;所述第一报文的扩展报头还包括第三指针;所述处理单元902,用于若确定存在所述第二设备的功能索引,则将所述第三指针指向所述功能索引信息中所述第二设备的功能索引。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息和第一指针;所述第一指针用于指向所述第二设备的拓扑标识;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述拓扑标识用于对应的设备生成所述第一报文的目的地址;所述处理单元902,用于若确定所述第二设备需要执行网络功能,则确定所述第二设备的功能索引与所述第二设备的拓扑标识占用连续的字段。
一种可能的设计,所述第二连续字段中包括第一功能标识;所述第一功能标识用于所述第二设备根据本地存储的所述第一功能标识与所述第二设备的网络功能的对应关系,执行所述第一功能标识对应的网络功能。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息和第一指针;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述拓扑标识用于对应的设备生成转发所述第一报文的目的地址;所述处理单元902,用于若确定所述第二设备需要执行网络功能,则所述功能标识信息中的所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段;所述第一指针用于指向所述第二设备的拓扑标识。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述处理单元902,用于根据所述第二设备的拓扑标识,生成所述第二设备的目的地址;根据所述第二设备的目的地址、所述第一报文的扩展报头及所述第一报文的数据域,生成第一报文。
一种可能的设计,所述拓扑标识信息占用第四连续字段;所述第一报文的报头还包括第一指针;所述第一指针用于所述第二设备根据所述第一指针在所述第四连续字段中,确定所述第二设备的拓扑标识。
一种可能的设计,所述第一报文的报头还包括第一指针;所述第一指针用于指向所述第二设备的拓扑标识;所述处理单元902,用于若确定所述第二设备需要执行网络功能,则确定所述功能标识信息中的所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息,所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述第一报文的目的地址包括:多个设备的拓扑标识,所述多个设备包括所述第二设备。
一种可能的设计,所述第一报文的扩展报头包括所述拓扑标识信息的至少一个拓扑标识组;所述拓扑标识组包括的拓扑标识的数量与所述第一报文中目的地址可承载的拓扑标识的数量相同;所述至少一个拓扑标识组用于所述第二设备根据至少一个拓扑标识组,确定所述第三设备的拓扑标识;所述第三设备为所述第一报文指定的所述第二设备的下一设备。
一种可能的设计,所述第一报文的扩展报头还包括第四指针;所述第四指针用于指向所述拓扑标识组。
一种可能的设计,所述第一报文的报头还包括拓扑标识信息,所述拓扑标识信息包括所述第一报文经过的至少一个设备的第二拓扑标识;所述第二拓扑标识为所述设备的拓扑标识中除至少一个设备的拓扑标识的相同部分之外的部分;所述设备的拓扑标识用于与第一前缀,生成所述设备的路由信息;所述处理单元902,用于根据所述第一报文的转发路径上的多个设备的拓扑标识中相同部分及所述第一前缀,确定第二前缀;根据所述第二前缀和至少一个设备的第二拓扑标识,生成第二设备的目的地址。
一种可能的设计,所述第一报文的扩展报头还包括第一拓扑标识;所述第一拓扑标识用于指示所述第一报文经过的至少一个设备的路由信息;所述第一拓扑标识用于所述第二设备根据本地存储的拓扑标识与第三设备的拓扑标识和/或端口的对应关系,确定所述第一拓扑标识对应的第三设备的目的地址,进而将所述第一报文转发至所述第三设备。
一种可能的设计,所述第一报文的目的地址包括:所述第二设备的拓扑标识或所述第一拓扑标识;或者,所述第一报文的目的地址包括:所述第二设备的拓扑标识或所述第一拓扑标识的任一项,及所述第二设备的功能标识或所述第一功能标识的任一项。
可以理解的是,该装置用于上述报文处理方法时的具体实现过程以及相应的有益效果,可以参考前述方法实施例中的相关描述,这里不再赘述。
如图10所示,为本申请提供的一种报文处理装置示意图,该装置可以是上述实施例中的第一设备,第二设备,或第三设备,还可以为用于第一设备,第二设备,或第三设备的芯片。该装置1000包括:处理器1002、通信接口1003、存储器1001。可选的,装置1000还可以包括通信线路1004。其中,通信接口1003、处理器1002以及存储器1001可以通过通信线路1004相互连接;通信线路1004可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。所述通信线路1004可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器1002可以是一个CPU,微处理器,ASIC,或一个或多个用于控制本申请方案程序执行的字段成电路。
通信接口1003,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN),有线接入网等。
存储器1001可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路1004与处理器相连接。存储器也可以和处理器字段成在一起。
其中,存储器1001用于存储执行本申请方案的计算机执行指令,并由处理器1002来控制执行。处理器1002用于执行存储器1001中存储的计算机执行指令,从而实现本申请上述实施例提供的报文处理方法。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
本领域普通技术人员可以理解:本申请中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围,也表示先后顺序。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“至少一个”是指一个或者多个。至少两个是指两个或者多个。“至少一个”、“任意一个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个、种),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。“多个”是指两个或两个以上,其它量词与之类似。此外,对于单数形式“a”,“an”和“the”出现的元素(element),除非上下文另有明确规定,否则其不意味着“一个或仅一个”,而是意味着“一个或多于一个”。例如,“a device”意味着对一个或多个这样的device。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质字段成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本申请实施例中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用字段成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本申请实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以字段成到处理器中。处理器和存储媒介可以设置于ASIC中。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包括这些改动和变型在内。
Claims (33)
1.一种报文处理方法,其特征在于,应用于分段路由,包括:
第二设备接收来自第一设备的第一报文,所述第一报文的报头包括功能指示信息和功能标识信息,所述功能指示信息包括所述第一报文经过的至少一个设备的功能指示;所述功能指示用于指示所述设备是否需要执行网络功能;所述功能标识信息包括所述第一报文经过的至少一个需执行网络功能的设备对应的功能标识;
所述第二设备若根据所述第二设备的功能指示,确定所述第二设备需要执行网络功能,则通过所述功能标识信息中的所述第二设备的功能标识执行对应的网络功能;
所述第二设备若根据所述第二设备的功能指示,确定所述第二设备不需要执行网络功能,则所述第二设备不处理所述第一报文中的功能标识信息。
2.如权利要求1所述的方法,其特征在于,所述第一报文的报头还包括拓扑标识信息;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述第二设备的拓扑标识的字段包括所述第二设备的功能指示;所述第二设备根据所述第二设备的功能指示,确定所述第二设备是否需要执行网络功能,包括:
所述第二设备根据所述拓扑标识信息中,所述第二设备的拓扑标识的字段中的功能指示,确定所述第二设备是否需要执行网络功能。
3.如权利要求2所述的方法,其特征在于,所述第一报文的扩展报头还包括第一指针;所述第一指针用于指向所述第二设备的拓扑标识;所述第二设备根据所述拓扑标识信息中,所述第二设备的拓扑标识的字段中的功能指示,确定所述第二设备是否需要执行网络功能,包括:
所述第二设备根据所述第一指针,在所述拓扑标识信息中确定所述第二设备的拓扑标识;
所述第二设备根据所述第二设备的拓扑标识的字段中的功能指示,确定所述第二设备是否需要执行网络功能。
4.如权利要求1所述的方法,其特征在于,所述第一报文的目的地址包括所述第二设备的拓扑标识;所述第二设备的拓扑标识的字段包括所述第二设备的功能指示;所述第二设备根据所述第二设备的功能指示,确定所述第二设备是否需要执行网络功能,包括:
所述第二设备根据所述第一报文的目的地址中,所述第二设备的拓扑标识的字段中的功能指示,确定所述第二设备是否需要执行网络功能。
5.如权利要求1所述的方法,其特征在于,所述功能指示信息占用第一连续字段;所述第二设备根据所述第二设备的功能指示,确定所述第二设备是否需要执行网络功能,包括:
所述第二设备根据所述第一连续字段,确定所述第二设备的功能指示,进而确定是否需要执行网络功能。
6.如权利要求1所述的方法,其特征在于,所述功能标识信息占用第二连续字段;所述第二设备通过所述功能标识信息中的所述第二设备的功能标识执行对应的网络功能,包括:
所述第二设备在所述第二连续字段中,确定所述第二设备的功能标识,并执行所述第二设备的功能标识对应的网络功能。
7.如权利要求6所述的方法,其特征在于,所述第一报文的扩展报头还包括第二指针;所述第二指针用于指示所述第二连续字段中所述第二设备的功能标识;所述第二设备在所述第二连续字段中,确定所述第二设备的功能标识,并执行所述第二设备的功能标识对应的网络功能,包括:
所述第二设备根据所述第二指针,在所述第二连续字段中,确定所述第二设备的功能标识,并执行所述第二设备的功能标识对应的网络功能。
8.如权利要求6所述的方法,其特征在于,所述第一报文的扩展报头还包括功能索引信息;所述功能索引信息包括所述第一报文经过的至少一个设备所执行的网络功能的功能标识的功能索引,功能索引与功能标识之间具有对应关系;所述二设备在所述第二连续字段中,确定所述第二设备的功能标识,并执行所述第二设备的功能标识对应的网络功能,包括:
所述第二设备根据所述第二设备的功能索引,在所述功能标识信息中,确定所述第二设备的功能索引对应的功能标识;
所述第二设备根据所述第二设备的功能索引对应的功能标识,执行对应的网络功能。
9.如权利要求8所述的方法,其特征在于,所述功能索引信息占用第三连续字段;所述第一报文的扩展报头还包括第三指针;所述第三指针用于指向所述功能索引信息中所述第二设备的功能索引;所述方法还包括:
所述第二设备通过所述第三指针,确定所述第二设备的功能索引。
10.如权利要求8所述的方法,其特征在于,所述第一报文的报头还包括拓扑标识信息和第一指针;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;若所述第二设备需要执行网络功能,则所述第二设备的功能索引与所述第二设备的拓扑标识占用连续的字段;所述第一指针用于指向所述第二设备的拓扑标识;所述方法包括:
所述第二设备通过所述第一指针,确定所述第二设备的功能索引与所述第二设备的拓扑标识占用连续的字段,进而确定所述第二设备的功能索引。
11.如权利要求6所述的方法,其特征在于,所述第二连续字段中包括第一功能标识;
所述第二设备在所述第二连续字段中,确定所述第二设备的功能标识,并执行所述第二设备的功能标识对应的网络功能,包括:
所述第二设备将所述第一功能标识,作为所述第二设备的功能标识;
所述第二设备根据在本地存储的第二设备的功能标识与所述第二设备的网络功能的对应关系,执行所述第二设备的功能标识对应的网络功能。
12.如权利要求1所述的方法,其特征在于,所述第一报文的报头还包括拓扑标识信息和第一指针;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;若所述第二设备需要执行网络功能,则所述功能标识信息中的所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段;所述第一指针用于指向所述第二设备的拓扑标识;
所述第二设备通过所述功能标识信息中的所述第二设备的功能标识执行对应的网络功能,包括:
所述第二设备通过所述第一指针,确定所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段,进而确定所述第二设备的功能标识,进而根据所述第二设备的功能标识执行对应的网络功能。
13.如权利要求1-12任一项所述的方法,其特征在于,所述方法还包括:所述第二设备若根据所述第一报文确定存在第三设备,则向所述第三设备转发所述第一报文;所述第三设备为所述第一报文指定的所述第二设备的下一设备。
14.如权利要求13所述的方法,其特征在于,所述第一报文的报头还包括拓扑标识信息;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述第二设备向第三设备转发所述第一报文,包括:
所述第二设备根据所述拓扑标识信息,确定所述第三设备的拓扑标识;
所述第二设备根据所述第三设备的拓扑标识,更新所述第一报文的目的地址;
所述第二设备向所述第三设备转发所述更新后的所述第一报文。
15.如权利要求14所述的方法,其特征在于,所述功能标识信息占用第二连续字段;所述第一报文的报头还包括第二指针;所述第二指针用于指示所述功能标识信息中所述第二设备的功能标识;所述第二设备向所述第三设备转发所述更新后的所述第一报文之前,还包括:
所述第二设备更新所述第二指针,更新后的所述第二指针指向指定的下一需要执行网络功能的设备的功能标识。
16.如权利要求14所述的方法,其特征在于,所述第一报文的扩展报头还包括功能索引信息;所述功能索引信息包括所述第一报文经过的至少一个设备所执行的网络功能的功能标识的功能索引,功能索引与功能标识之间具有对应关系;所述功能索引信息占用第三连续字段;所述第一报文的扩展报头还包括第三指针;所述第三指针用于指向所述功能索引信息中所述第二设备的功能索引;所述第二设备向所述第三设备转发所述更新后的所述第一报文之前,还包括:
所述第二设备更新所述第三指针,所述更新后的第三指针指向指定的下一需要执行网络功能的设备的功能索引。
17.如权利要求14所述的方法,其特征在于,所述第一报文的扩展报头还包括功能索引信息;所述功能索引信息包括所述第一报文经过的至少一个设备所执行的网络功能的功能标识的功能索引,功能索引与功能标识之间具有对应关系;所述第二设备的功能索引与所述第二设备的拓扑标识占用连续的字段;所述第一报文的扩展报头还包括第一指针;所述第一指针用于指向所述第二设备的拓扑标识;所述第二设备根据所述拓扑标识信息,确定所述第三设备的拓扑标识,包括:
所述第二设备根据所述第一指针及所述第二设备的拓扑标识及所述第二设备的功能索引的长度,确定所述第三设备的拓扑标识。
18.如权利要求14所述的方法,其特征在于,所述拓扑标识信息占用第四连续字段;所述第一报文的扩展报头还包括第一指针;所述第一指针用于指向所述第二设备的拓扑标识;所述第二设备根据所述拓扑标识信息,确定所述第三设备的拓扑标识,包括:
所述第二设备根据所述第一指针及所述第二设备的拓扑标识的长度,在所述第四连续字段中,确定所述第三设备的拓扑标识。
19.如权利要求14所述的方法,其特征在于,所述第二设备的功能标识与所述第二设备的拓扑标识占用连续的字段;所述第一报文的扩展报头还包括第一指针;所述第一指针用于指向所述第二设备的拓扑标识;所述第二设备根据所述拓扑标识信息,确定所述第三设备的拓扑标识,包括:
所述第二设备根据所述第一指针及所述第二设备的拓扑标识及所述第二设备的功能标识的长度,确定所述第三设备的拓扑标识。
20.如权利要求17-19任一项所述的方法,其特征在于,所述第二设备向所述第三设备转发所述更新后的所述第一报文之前,还包括:
所述第二设备更新所述第一指针,所述更新后的第一指针指向所述第三设备的拓扑标识。
21.如权利要求14所述的方法,其特征在于,
所述第一报文的目的地址包括:多个设备的拓扑标识,所述第二设备根据所述拓扑标识信息,确定所述第三设备的拓扑标识,包括:
所述第二设备若确定所述第一报文的目的地址包括所述第三设备的拓扑标识,则在所述第一报文的目的地址中,确定第三设备的拓扑标识。
22.如权利要求21所述的方法,其特征在于,所述第一报文的扩展报头包括所述拓扑标识信息的至少一个拓扑标识组;所述拓扑标识组包括的拓扑标识的数量与所述第一报文中目的地址可承载的拓扑标识的数量相同;所述第二设备根据所述拓扑标识信息,确定所述第三设备的拓扑标识,包括:
所述第二设备若确定所述第一报文的目的地址不包括所述第三设备的拓扑标识,则根据至少一个拓扑标识组,确定所述第三设备的拓扑标识;
所述第二设备根据所述第三设备的拓扑标识,更新所述第一报文的目的地址,包括:
所述第二设备将所述第一报文的目的地址中的多个拓扑标识更新为所述第三设备的拓扑标识所在的拓扑标识组的多个拓扑标识。
23.如权利要求22所述的方法,其特征在于,所述第一报文的扩展报头还包括第四指针;所述第四指针用于指向拓扑标识组;所述第二设备根据至少一个拓扑标识组,确定所述第三设备的拓扑标识,包括:
所述第二设备将所述第四指针对应的第一拓扑标识组,确定为所述第三设备的拓扑标识所在的拓扑标识组。
24.如权利要求23所述的方法,其特征在于,所述方法还包括:
所述第二设备若确定所述第一报文的扩展报头包括除所述第一拓扑标识组的其他拓扑标识组,则将所述第四指针指向所述第一拓扑标识组的下一拓扑标识组。
25.如权利要求1-24任一项所述的方法,其特征在于,所述第一报文的扩展报头还包括第一拓扑标识;所述第一拓扑标识用于指示所述第一报文经过的至少一个设备的路由信息;所述方法还包括:
所述第二设备根据本地存储的拓扑标识与第三设备的拓扑标识和/或端口的对应关系,确定所述第一拓扑标识对应的第三设备的目的地址;
所述第二设备根据所述第一拓扑标识对应的所述第三设备的目的地址,将所述第一报文转发至所述第三设备。
26.如权利要求1-25任一项所述的方法,其特征在于,所述第一报文的目的地址包括:所述第二设备的拓扑标识或第一拓扑标识;
或者,所述第一报文的目的地址包括:所述第二设备的拓扑标识或第一拓扑标识的任一项,及所述第二设备的功能标识或第一功能标识的任一项;
其中,所述第一拓扑标识用于指示所述第一报文经过的至少一个设备的路由信息;
所述第一功能标识与所述第二设备的网络功能对应。
27.一种报文处理方法,其特征在于,应用于分段路由,包括:
第一设备生成第一报文;所述第一报文的报头包括功能标识信息和功能指示信息;所述功能标识信息包括所述第一报文经过的至少一个需执行网络功能的设备对应的功能标识;所述功能指示信息包括所述第一报文经过的至少一个设备的功能指示;所述功能指示用于指示所述设备是否需要执行网络功能;
所述第一设备向第二设备发送所述第一报文;所述第二设备为所述第一设备指定的下一设备。
28.如权利要求27所述的方法,其特征在于,所述第一报文的报头还包括拓扑标识信息;所述拓扑标识信息包括所述第一报文经过的至少一个设备的拓扑标识;所述第一设备生成第一报文,包括:
所述第一设备根据所述第二设备的拓扑标识,生成所述第二设备的目的地址;
所述第一设备根据所述第二设备的目的地址、所述第一报文的扩展报头及所述第一报文的数据域,生成第一报文。
29.如权利要求27或28所述的方法,其特征在于,所述第一报文的报头还包括拓扑标识信息,所述拓扑标识信息包括所述第一报文经过的至少一个设备的第二拓扑标识;所述第二拓扑标识为所述设备的拓扑标识中除至少一个设备的拓扑标识的相同部分之外的部分;所述设备的拓扑标识用于与第一前缀,生成所述设备的路由信息;所述方法还包括:
所述第一设备根据所述第一报文的转发路径上的多个设备的拓扑标识中相同部分及所述第一前缀,确定第二前缀;
所述第一设备根据所述第二前缀和至少一个设备的第二拓扑标识,生成第二设备的目的地址。
30.一种报文处理装置,其特征在于,包括处理单元和通信单元;
所述通信单元,用于接收来自第一设备的第一报文,所述第一报文的报头包括功能指示信息和功能标识信息,所述功能指示信息包括所述第一报文经过的至少一个设备的功能指示;所述功能指示用于指示所述设备是否需要执行网络功能;所述功能标识信息包括所述第一报文经过的至少一个需执行网络功能的设备对应的功能标识;
所述处理单元,用于若根据所述报文处理装置的功能指示,确定所述报文处理装置需要执行网络功能,则通过所述功能标识信息中的所述报文处理装置的功能标识执行对应的网络功能。
31.一种报文处理装置,其特征在于,包括处理单元和通信单元;
所述处理单元,用于生成第一报文;所述第一报文的报头包括功能标识信息和功能指示信息;所述功能标识信息包括所述第一报文经过的至少一个需执行网络功能的设备对应的功能标识;所述功能指示信息包括所述第一报文经过的至少一个设备的功能指示;所述功能指示用于指示所述设备是否需要执行网络功能;
所述通信单元,用于向第二设备发送所述第一报文;所述第二设备为所述报文处理装置指定的下一设备。
32.一种报文处理装置,其特征在于,包括处理器和存储器,所述处理器调用所述存储器中存储的程序,以使得所述装置执行如权利要求1-29任一所述的方法。
33.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-29任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910925207.2A CN112583711B (zh) | 2019-09-27 | 2019-09-27 | 一种报文处理方法及装置 |
PCT/CN2020/116629 WO2021057683A1 (zh) | 2019-09-27 | 2020-09-21 | 一种报文处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910925207.2A CN112583711B (zh) | 2019-09-27 | 2019-09-27 | 一种报文处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112583711A CN112583711A (zh) | 2021-03-30 |
CN112583711B true CN112583711B (zh) | 2024-06-28 |
Family
ID=75110197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910925207.2A Active CN112583711B (zh) | 2019-09-27 | 2019-09-27 | 一种报文处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112583711B (zh) |
WO (1) | WO2021057683A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116208541A (zh) * | 2020-04-03 | 2023-06-02 | 华为技术有限公司 | 信息处理方法、装置及系统 |
CN116192738A (zh) * | 2021-11-26 | 2023-05-30 | 中兴通讯股份有限公司 | 信息的收集方法、装置、存储介质及电子装置 |
CN114900455B (zh) * | 2022-05-13 | 2024-06-11 | 北京字节跳动网络技术有限公司 | 一种报文传输方法、系统、设备及存储介质 |
CN117240769A (zh) * | 2022-06-06 | 2023-12-15 | 华为技术有限公司 | 一种报文控制方法以及相关装置 |
CN117319217A (zh) * | 2022-06-22 | 2023-12-29 | 华为技术有限公司 | 复用目的节点标识的方法、装置以及第一设备 |
CN117792999A (zh) * | 2022-09-29 | 2024-03-29 | 华为技术有限公司 | 一种报文处理方法、信息处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014117339A1 (zh) * | 2013-01-30 | 2014-08-07 | 华为技术有限公司 | 网络功能的通知处理方法、装置和系统 |
CN108156077A (zh) * | 2016-12-02 | 2018-06-12 | 中兴通讯股份有限公司 | 一种基于IPv6数据平面的分段路由转发方法及装置 |
CN109688057A (zh) * | 2018-12-13 | 2019-04-26 | Ut斯达康通讯有限公司 | 基于ipv6的段路由网络的报文转发方法及装置 |
CN110224934A (zh) * | 2018-03-01 | 2019-09-10 | 中兴通讯股份有限公司 | 一种利用统一sr标签栈进行报文处理的方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106487686B (zh) * | 2015-08-28 | 2021-01-22 | 中兴通讯股份有限公司 | Sr转发条目生成方法及装置 |
CN106982134A (zh) * | 2016-01-18 | 2017-07-25 | 中兴通讯股份有限公司 | 报文生成方法、报文转发方法及装置 |
WO2019011114A1 (en) * | 2017-07-14 | 2019-01-17 | Huawei Technologies Co., Ltd. | METHOD FOR ESTABLISHING SEGMENT ROUTING FOR IPV6 TUNNEL |
CN113839871B (zh) * | 2017-09-25 | 2024-10-22 | 华为技术有限公司 | 一种报文转发的方法及网络设备 |
CN111510386B (zh) * | 2019-01-30 | 2023-06-20 | 华为技术有限公司 | 用于处理报文的方法和装置 |
-
2019
- 2019-09-27 CN CN201910925207.2A patent/CN112583711B/zh active Active
-
2020
- 2020-09-21 WO PCT/CN2020/116629 patent/WO2021057683A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014117339A1 (zh) * | 2013-01-30 | 2014-08-07 | 华为技术有限公司 | 网络功能的通知处理方法、装置和系统 |
CN108156077A (zh) * | 2016-12-02 | 2018-06-12 | 中兴通讯股份有限公司 | 一种基于IPv6数据平面的分段路由转发方法及装置 |
CN110224934A (zh) * | 2018-03-01 | 2019-09-10 | 中兴通讯股份有限公司 | 一种利用统一sr标签栈进行报文处理的方法及装置 |
CN109688057A (zh) * | 2018-12-13 | 2019-04-26 | Ut斯达康通讯有限公司 | 基于ipv6的段路由网络的报文转发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112583711A (zh) | 2021-03-30 |
WO2021057683A1 (zh) | 2021-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112583711B (zh) | 一种报文处理方法及装置 | |
KR102620026B1 (ko) | 패킷 처리 방법, 관련 기기 및 컴퓨터 저장 매체 | |
US11876883B2 (en) | Packet processing method, network node, and system | |
CN111147383B (zh) | 报文转发的方法、发送报文的装置和接收报文的装置 | |
CN113055290B (zh) | 基于业务功能链sfc的报文转发方法、装置和系统 | |
CN112422393B (zh) | 可扩展虚拟局域网报文发送方法、计算机设备和可读介质 | |
US9590820B1 (en) | Methods and apparatus for improving load balancing in overlay networks | |
CN102938795B (zh) | 通过隧道和地址转换实现IPv6地址访问IPv4资源的方法 | |
CN111385209B (zh) | 一种报文处理方法、报文转发方法、装置及设备 | |
CN105634942B (zh) | 转发报文的方法和交换机 | |
CN111510386B (zh) | 用于处理报文的方法和装置 | |
CN112787923B (zh) | 一种报文的处理方法,装置和系统 | |
CN115004656A (zh) | 一种报文发送方法、设备及系统 | |
CN113259239A (zh) | 一种在混合网络中转发报文的方法、设备和系统 | |
CN112532563B (zh) | 报文的发送方法和装置 | |
EP4099648A1 (en) | Method for processing segment id, and apparatus | |
US11683265B2 (en) | Mechanisms for packet path tracing and per-hop delay measurement in segment routing with multiprotocol label switching (SR-MPLS) networks | |
CN110022263B (zh) | 一种数据传输的方法及相关装置 | |
CN113630316B (zh) | 一种数据传输方法及通信装置 | |
CN113497760B (zh) | 分段路由头压缩方法、业务处理方法及装置 | |
CN109218258B (zh) | 数据包传输方法及网关设备 | |
CN113542126B (zh) | 广义SRv6全路径压缩方法及装置 | |
CN112565044B (zh) | 报文处理方法及装置 | |
CN113542112B (zh) | 一种报文转发方法及网络设备 | |
WO2023208056A1 (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 |