CN114915589B - 报文传输方法及装置 - Google Patents
报文传输方法及装置 Download PDFInfo
- Publication number
- CN114915589B CN114915589B CN202110474671.1A CN202110474671A CN114915589B CN 114915589 B CN114915589 B CN 114915589B CN 202110474671 A CN202110474671 A CN 202110474671A CN 114915589 B CN114915589 B CN 114915589B
- Authority
- CN
- China
- Prior art keywords
- message
- network device
- header
- network
- packet
- 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
- 238000000034 method Methods 0.000 title claims abstract description 125
- 230000005540 biological transmission Effects 0.000 title claims abstract description 55
- 238000012545 processing Methods 0.000 claims description 53
- 230000015654 memory Effects 0.000 description 47
- 102100027384 Proto-oncogene tyrosine-protein kinase Src Human genes 0.000 description 29
- 230000006870 function Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 19
- 239000004744 fabric Substances 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 230000010076 replication Effects 0.000 description 11
- 238000013461 design Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 101000710137 Homo sapiens Recoverin Proteins 0.000 description 5
- 101000912503 Homo sapiens Tyrosine-protein kinase Fgr Proteins 0.000 description 5
- 102100034572 Recoverin Human genes 0.000 description 5
- 102100026150 Tyrosine-protein kinase Fgr Human genes 0.000 description 5
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 101100534223 Caenorhabditis elegans src-1 gene Proteins 0.000 description 3
- 101000602926 Homo sapiens Nuclear receptor coactivator 1 Proteins 0.000 description 3
- 101000651467 Homo sapiens Proto-oncogene tyrosine-protein kinase Src Proteins 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 102000001332 SRC Human genes 0.000 description 2
- 108060006706 SRC Proteins 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 102100027368 Histone H1.3 Human genes 0.000 description 1
- 101001009450 Homo sapiens Histone H1.3 Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
- 239000002699 waste material Substances 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/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of 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/74—Address processing for routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种报文传输方法及装置,该方法包括:第一网络设备接收源用户设备发送的第一报文,该第一报文包括第一比特串和目的地址DA,该第一比特串用于指示至少一个目的用户设备,该第一报文的DA为所述第一网络设备的地址;该第一网络设备根据该第一比特串获取第二报文,该第二报文包括第一信息,该第一信息用于指示到达至少一个目的用户设备的下一跳设备;该第一网络设备向该下一跳设备发送该第二报文。本申请提供的技术方案能够在支持用户IP网络中点到多点的数据传送的同时,还可以降低用户设备的开销和复杂性。
Description
本申请要求于2021年02月10日提交中国专利局、申请号为202110184047.8、发明名称为“一种报文转发方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及网络通信领域,并且更具体地,涉及一种报文传输方法及装置。
背景技术
互联网协议(internet protocol,IP)网络中点到多点的数据传输方式能够有效地节约网络带宽、降低网络负载,因此,在实时数据传送、多媒体会议、数据拷贝、交互式网络电视(internet protocol television,IPTV)、游戏和仿真等诸多方面都有广泛的应用。目前用户网络中通过组播报文实现点到多点的数据传输,源用户设备通过使用一个组播地址将数据发往多个接收者(多个目的用户设备)。由于用户网络中的设备(例如,源用户设备、多个目的用户设备)需要能够进行组播报文的处理,以及支持相应的IP组播协议,因此,该技术方案中用户设备会存在额外的开销,实现的复杂度也较高。因此,如何在支持用户IP网络中点到多点的数据传送的同时,还可以降低用户设备的开销和复杂性成为亟需要解决的问题。
发明内容
本申请提供一种报文传输方法及装置,能够在支持用户IP网络中点到多点的数据传送的同时,还可以降低用户设备的开销和复杂性。
第一方面,提供了一种报文传输方法,该方法包括:第一网络设备接收源用户设备发送的第一报文,该第一报文包括第一比特串和目的地址DA,该第一比特串用于指示至少一个目的用户设备,该第一报文的DA为该第一网络设备的地址;该第一网络设备根据该第一比特串获取第二报文,该第二报文包括第一信息,该第一信息用于指示到达该至少一个目的用户设备的下一跳设备;该第一网络设备向该下一跳设备发送该第二报文。
上述技术方案中,用户IP网络中可以通过单播报文进行点到多点的数据传送,这样,用户设备不需要支持组播报文的处理能力以及相应的IP组播协议,可以降低用户设备的开销和复杂性。
结合第一方面,在第一方面的某些实现方式中,该第一报文为单播报文或互联网协议第6版(internet protocol version 6,IPv6)单播报文。
结合第一方面,在第一方面的某些实现方式中,该下一跳设备为第一目的用户设备,该第一网络设备向该第一目的用户设备发送该第二报文,该第一信息包括作为DA的该第一目的用户设备的地址。
结合第一方面,在第一方面的某些实现方式中,该下一跳设备为第二网络设备,该第一网络设备向该第二网络设备发送该第二报文,该第一信息包括作为DA的该述第二网络设备的地址。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备通过隧道向该第二网络设备发送该第二报文,该第二报文包括隧道头,该第一信息为该隧道头包括的与该隧道对应的信息。
结合第一方面,在第一方面的某些实现方式中,该第二报文包括该隧道头和该第一报文。
结合第一方面,在第一方面的某些实现方式中,该第二报文包括该隧道头和第三报文,该第三报文是基于组播地址和该第一报文获得的报文,该第三报文的DA为该组播地址;或者该第二报文包括该隧道头和第三报文,该第三报文是基于该第一报文和该第二网络设备的地址获得的报文,该第三报文的DA为该第二网络设备的地址。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备位于第一区域region,该第二网络设备位于第二region,该第一信息包括第二比特串,该第二比特串用于指示该第二网络设备。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:该第一网络设备根据对应关系和该第一比特串,获得该第二比特串,该对应关系包括该第一比特串中与该至少一个目的用户设备对应的比特位和该第二比特串中与该第二网络设备对应的比特位;该第一网络根据该第二比特串获得该第二报文。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备位于第一数据中心,该第二网络设备位于第二数据中心;或者该第一网络设备位于第一region,该第二网络设备位于第二region。一个region中可以包括多个数据中心。
结合第一方面,在第一方面的某些实现方式中,该第一报文还包括第一校验checksum,该第二报文还包括第二checksum,该第二checksum是基于该第一checksum、该第一报文的DA以及该第一信息获得的checksum。
结合第一方面,在第一方面的某些实现方式中,该源用户设备和该至少一个目的用户设备属于同一用户。
结合第一方面,在第一方面的某些实现方式中,该第一报文为互联网协议第六版IPv6单播报文,该IPv6单播报文包括IPv6扩展头,该第一比特串位于该IPv6扩展头中。
第二方面,提供了一种报文传输方法,包括:第二设备接收第一设备发送的第二报文,该第二报文包括第一信息,该第一信息用于指示第一设备到达至少一个目的用户设备的下一跳设备。
结合第二方面,在第二方面的某些实现方式中,该第二设备为第一目的用户设备,该第一设备为第一网络设备,该第一信息包括作为目的地址DA的该第一目的用户设备的地址。
结合第二方面,在第二方面的某些实现方式中,该第二设备为第一目的用户设备,该第一设备为第一网络设备,该第一信息包括作为目的地址DA的该第一目的用户设备的地址。
结合第二方面,在第二方面的某些实现方式中,该第二设备为第二网络设备,该第一设备为第一网络设备,该第二网络设备通过隧道接收该第一网络设备发送的该第二报文,该第二报文包括隧道头,该第一信息为该隧道头包括的与该隧道对应信息。
结合第二方面,在第二方面的某些实现方式中,该第二报文包括该隧道头和第一报文,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备。
结合第二方面,在第二方面的某些实现方式中,该第二报文包括该隧道头和第三报文,该第三报文是基于组播地址和第一报文获得的报文,该第三报文的DA为该组播地址,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备;或者该第二报文包括该隧道头和第三报文,该第三报文是基于该第一报文和该第二网络设备的地址获得的报文,该第三报文的DA为该第二网络设备的地址,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备。
结合第二方面,在第二方面的某些实现方式中,该第一网络设备位于第一区域region,该第二网络设备位于第二region,该第一信息包括第二比特串,该第二比特串用于指示该第二网络设备。
结合第二方面,在第二方面的某些实现方式中,该第二报文还包括用户报文和第一比特串,该第一比特串用于指示该至少一个目的用户设备,该方法还包括:该第二网络设备基于该第二报文获得该用户报文;该第二网络设备根据该第二报文包括的该第一比特串和该第一信息,向该第一目的用户设备发送该用户报文。
结合第二方面,在第二方面的某些实现方式中,该第二报文还包括用户报文,该方法还包括:该第二网络设备对该第二报文进行解封装获得该用户报文;该第二网络设备根据该第二报文包括的该第一比特串和该第一信息,向该第一目的用户设备发送该用户报文。
结合第二方面,在第二方面的某些实现方式中,该第一网络设备位于第一数据中心,该第二网络设备位于第二数据中心;或者该第一网络设备位于第一region,该第二网络设备位于第二region。
结合第二方面,在第二方面的某些实现方式中,该第二报文还包括第二校验checksum,该第二checksum是基于第一报文包括的第一checksum、该第一报文的DA以及该第一信息获得的checksum。
第二方面和第二方面的任意一个可能的实现方式的有益效果和第一方面以及第一方面的任意一个可能的实现方式的有益效果是对应的,对此,不再赘述。
第三方面,提供了一种用于报文传输的装置,该装置设置于第一网络设备,包括:接收模块,处理模块,发送模块,
接收模块,用于接收源用户设备发送的第一报文,该第一报文包括第一比特串和目的地址DA,该第一比特串用于指示至少一个目的用户设备,该第一报文的DA为该第一网络设备的地址;
处理模块,用于根据该第一比特串获取第二报文,该第二报文包括第一信息,该第一信息用于指示到达该至少一个目的用户设备的下一跳设备;
发送模块,用于向该下一跳设备发送该第二报文。
结合第三方面,在第三方面的某些实现方式中,该下一跳设备为第一目的用户设备,该发送模块具体用于:向该第一目的用户设备发送该第二报文,该第一信息包括作为DA的该第一目的用户设备的地址。
结合第三方面,在第三方面的某些实现方式中,该下一跳设备为第二网络设备,该发送模块具体用于:向该第二网络设备发送该第二报文,该第一信息包括作为DA的该第二网络设备的地址。
结合第三方面,在第三方面的某些实现方式中,该下一跳设备为第二网络设备,该发送模块具体用于:通过隧道向该第二网络设备发送该第二报文,该第二报文包括隧道头,该第一信息为该隧道头包括的与该隧道对应的信息。
结合第三方面,在第三方面的某些实现方式中,该第二报文包括该隧道头和该第一报文。
结合第三方面,在第三方面的某些实现方式中,该第二报文包括该隧道头和第三报文,该第三报文是基于组播地址和该第一报文获得的报文,该第三报文的DA为该组播地址;或者该第二报文包括该隧道头和第三报文,该第三报文是基于该第一报文和该第二网络设备的地址获得的报文,该第三报文的DA为该第二网络设备的地址。
结合第三方面,在第三方面的某些实现方式中,该第一网络设备位于第一区域region,该第二网络设备位于第二region,该第一信息包括第二比特串,该第二比特串用于指示该第二网络设备。
结合第三方面,在第三方面的某些实现方式中,该处理模块还用于:根据对应关系和该第一比特串,获得该第二比特串,该对应关系包括该第一比特串中与该至少一个目的用户设备对应的比特位和该第二比特串中与该第二网络设备对应的比特位;根据该第二比特串获得该第二报文。
结合第三方面,在第三方面的某些实现方式中,该第一网络设备位于第一数据中心,该第二网络设备位于第二数据中心;或者该第一网络设备位于第一region,该第二网络设备位于第二region。
结合第三方面,在第三方面的某些实现方式中,该第一报文还包括第一校验checksum,该第二报文还包括第二checksum,该第二checksum是基于该第一checksum、该第一报文的DA以及该第一信息获得的checksum。
结合第三方面,在第三方面的某些实现方式中,该源用户设备和该至少一个目的用户设备属于同一用户。
结合第三方面,在第三方面的某些实现方式中,该第一报文为互联网协议第六版IPv6单播报文,该IPv6单播报文包括IPv6扩展头,该第一比特串位于该IPv6扩展头中。
第四方面,提供了一种用于报文传输的装置,该装置设于第二设备,包括:接收模块,用于接收第一设备发送的第二报文,该第二报文包括第一信息,该第一信息用于指示第一设备到达至少一个目的用户设备的下一跳设备。
结合第四方面,在第四方面的某些实现方式中,该第二设备为第一目的用户设备,该第一设备为第一网络设备,该第一信息包括作为目的地址DA的该第一目的用户设备的地址。
结合第四方面,在第四方面的某些实现方式中,该第二设备为第二网络设备,该第一设备为该第一网络设备,该第一信息包括作为DA的该第二网络设备的地址。
结合第四方面,在第四方面的某些实现方式中,该第二设备为第二网络设备,该第一设备为第一网络设备,该接收模块具体用于:该第二网络设备通过隧道接收该第一网络设备发送的该第二报文,该第二报文包括隧道头,该第一信息为该隧道头包括的与该隧道对应信息。
结合第四方面,在第四方面的某些实现方式中,该第二报文包括该隧道头和第一报文,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备。
结合第四方面,在第四方面的某些实现方式中,该第二报文包括该隧道头和第三报文,该第三报文是基于组播地址和第一报文获得的报文,该第三报文的DA为该组播地址,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备;或者该第二报文包括该隧道头和第三报文,该第三报文是基于该第一报文和该第二网络设备的地址获得的报文,该第三报文的DA为该第二网络设备的地址,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备。
结合第四方面,在第四方面的某些实现方式中,该第一网络设备位于第一区域region,该第二网络设备位于第二region,该第一信息包括第二比特串,该第二比特串用于指示该第二网络设备。
结合第四方面,在第四方面的某些实现方式中,该第二报文还包括用户报文和第一比特串,该第一比特串用于指示该至少一个目的用户设备,该第二设备还包括:处理模块,发送模块,
处理模块,用于基于该第二报文获得该用户报文;
发送模块,用于根据该第二报文包括的该第一比特串和该第一信息,向该第一目的用户设备发送该用户报文。
结合第四方面,在第四方面的某些实现方式中,该第二报文还包括用户报文,处理模块,用于对该第二报文进行解封装获得该用户报文;发送模块,用于根据该第二报文包括的该第一比特串和该第一信息,向该第一目的用户设备发送该用户报文。
结合第四方面,在第四方面的某些实现方式中,该第一网络设备位于第一数据中心,该第二网络设备位于第二数据中心;或者该第一网络设备位于第一region,该第二网络设备位于第二region。
结合第四方面,在第四方面的某些实现方式中,该第二报文还包括第二校验checksum,该第二checksum是基于第一报文包括的第一checksum、该第一报文的DA以及该第一信息获得的checksum。
第五方面,提供了一种用于报文传输的装置,该装置设置于第一网络设备,具有实现上述第一方面或第一方面中任一种实现方式中报文传输方法的功能。该功能可以基于硬件实现,也可以基于硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,该装置的结构中包括处理器,该处理器被配置为支持该装置执行上述方法中相应的功能。
该装置还可以包括存储器,该存储器用于与处理器耦合,其保存该装置必要的程序指令和数据。
在另一个可能的设计中,该装置包括:处理器、发送器、接收器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接发送器、接收器、随机存取存储器以及只读存储器。其中,当需要运行该装置时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导该装置进入正常运行状态。在该装置进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
第六方面,提供一种用于报文传输的装置,该装置设置于第一网络设备,包括:主控板和接口板,进一步,还可以包括交换网板。该装置用于执行第一方面或第一方面的任意可能的实现方式中报文传输方法方法。具体地,该装置包括用于执行第一方面或第一方面的任意可能的实现方式中报文传输方法的模块。
需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,第一网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,该装置可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,第一网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的该装置的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
第七方面,提供一种用于报文传输的装置,该装置设置于第一网络设备,包括控制模块和第一转发子设备。该第一转发子设备包括:接口板,进一步,还可以包括交换网板。该第一转发子设备用于执行第六方面中的接口板的功能,进一步,还可以执行第六方面中交换网板的功能。该控制模块中包括接收器、处理器、发送器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接接收器、发送器、随机存取存储器以及只读存储器。其中,当需要运行控制模块时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导控制模块进入正常运行状态。在控制模块进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第六方面中主控板的功能。在实际应用中,该装置可以包含任意数量的接口,处理器或者存储器。
第八方面,提供了一种用于报文传输的装置,该装置设于第二设备,具有实现上述第二方面或第二方面中任一种实现方式中报文传输方法的功能。该功能可以基于硬件实现,也可以基于硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,该装置的结构中包括处理器,该处理器被配置为支持该装置执行上述方法中相应的功能。
该装置还可以包括存储器,该存储器用于与处理器耦合,其保存该装置必要的程序指令和数据。
在另一个可能的设计中,该装置包括:处理器、发送器、接收器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接发送器、接收器、随机存取存储器以及只读存储器。其中,当需要运行该装置时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导该装置进入正常运行状态。在该装置进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第二方面或第二方面的任意可能的实现方式中的方法。
第九方面,提供一种用于报文传输的装置,该装置设于第二设备,包括:主控板和接口板,进一步,还可以包括交换网板。该装置用于执行第二方面或第二方面的任意可能的实现方式中报文传输方法方法。具体地,该装置包括用于执行第二方面或第二方面的任意可能的实现方式中报文传输方法的模块。
需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,该装置的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,该装置可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,该装置可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的该装置的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
第十方面,提供一种用于报文传输的装置,该装置设于第二设备,包括控制模块和第一转发子设备。该第一转发子设备包括:接口板,进一步,还可以包括交换网板。该第一转发子设备用于执行第八方面中的接口板的功能,进一步,还可以执行第八方面中交换网板的功能。该控制模块中包括接收器、处理器、发送器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接接收器、发送器、随机存取存储器以及只读存储器。其中,当需要运行控制模块时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导控制模块进入正常运行状态。在控制模块进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第八方面中主控板的功能。在实际应用中,该装置可以包含任意数量的接口,处理器或者存储器。
第十一方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种可能执行的方法。
第十二方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第二方面或第二方面的任一种可能执行的方法。
第十三方面,提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种可能执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasablePROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(harddrive)。
第十四方面,提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第二方面或第二方面的任一种可能执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasablePROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(harddrive)。
第十五方面,提供一种芯片,该芯片包括处理器与数据接口,其中,处理器通过该数据接口读取存储器上存储的指令,以执行第一方面或第一方面任意一种可能的实现方式中的方法。在具体实现过程中,该芯片可以以中央处理器(central processing unit,CPU)、微控制器(micro controller unit,MCU)、微处理器(micro processing unit,MPU)、数字信号处理器(digital signal processing,DSP)、片上系统(system on chip,SoC)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或可编辑逻辑器件(programmable logicdevice,PLD)的形式实现。
第十六方面,提供一种芯片,该芯片包括处理器与数据接口,其中,处理器通过该数据接口读取存储器上存储的指令,以执行第二方面或第二方面任意一种可能的实现方式中的方法。在具体实现过程中,该芯片可以以中央处理器(central processing unit,CPU)、微控制器(micro controller unit,MCU)、微处理器(micro processing unit,MPU)、数字信号处理器(digital signal processing,DSP)、片上系统(system on chip,SoC)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或可编辑逻辑器件(programmable logicdevice,PLD)的形式实现。
第十七方面,提供了一种系统,该系统包括上述如第三方面或第三方面任意一种可能的实现方式中的用于报文传输的装置和/或上述如第四方面或第四方面任意一种可能的实现方式中的用于报文传输的装置。
附图说明
图1是一种应用场景示意图。
图2是本申请实施例提供的一种报文传输方法的示意性流程图。
图3是应用于实施例的一种单数据中心多租户的场景示意图。
图4是本申请实施例提供的一种在单数据中心场景内进行报文传输的方法的示意性流程图。
图5是应用于实施例的另一种单数据中心多租户的场景示意图。
图6是本申请实施例提供的另一种在单数据中心场景内进行报文传输的方法的示意性流程图。
图7是应用于实施例的一种多数据中心多租户的场景示意图。
图8是本申请实施例提供的一种在多数据中心多租户场景内进行报文传输的方法的示意性流程图。
图9是应用于实施例的一种跨region的多数据中心多租户场景示意图。
图10示出了region1中的一种可能的场景。
图11是本申请实施例提供的在跨region的场景内进行报文传输的方法的示意性流程图。
图12是本申请实施例提供的一种用于报文传输的装置1200的示意性结构图。
图13是本申请实施例提供的另一种用于报文传输的装置1300的示意性结构图。
图14是本申请实施例提供的另一种用于报文传输的装置2000的硬件结构示意图。
图15为本申请实施例提供的另一种用于报文传输的装置2100的硬件结构示意图。
图16是本申请实施例提供的另一种用于报文传输的装置2200的硬件结构示意图。
图17为本申请实施例提供的另一种用于报文传输的装置2300的硬件结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请将围绕包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本申请实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例描述的网络架构以及业务场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:包括单独存在A,同时存在A和B,以及单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
互联网协议(internet protocol,IP)网络中点到多点的数据传输方式能够有效地节约网络带宽、降低网络负载,因此,在实时数据传送、多媒体会议、数据拷贝、交互式网络电视(internet protocol television,IPTV)、游戏和仿真等诸多方面都有广泛的应用。图1一种应用场景示意图。如图1所示,该应用场景中可以包括:多个用户设备(例如,源用户设备1、目的用户设备2、目的用户设备3)以及运营商网络,其中,该多个用户设备组成的网络也可以称为用户网络。作为示例,上述用户设备也可以称为用户边缘设备(customeredge,CE),可以是路由器或用户主机。图1中是以一个源用户设备,两个目的用户设备进行举例说明的。在该用户网络中,源用户设备1需要经过运营商网络将报文转发给至少两个目的用户设备,例如目的用户设备2以及目的用户设备3。相关的技术方案中,源用户设备1向运营商网络发送一个组播报文,运营商网络将该组播报文分别发送给目的用户设备2、目的用户设备3,从而实现了用户IP网络中点到多点的数据传送。但是,在该种技术方案中,需要用户设备支持IP组播报文以及相应的IP组播协议,这样对于用户设备而言会存在额外的开销和复杂性。
有鉴于此,本申请实施例提供了一种报文传输方法,该方法能够在支持用户IP网络中点到多点的数据传送的同时,还可以降低用户设备的开销和复杂性。本申请实施例对上述应用场景中源用户设备和目的用户设备的数量不做具体限定,可以包括至少一个源用户设备、至少两个目的用户设备。
图2是本申请实施例提供的一种报文传输方法的示意性流程图。图2对应的实施例所提供的方法可以应用于图1所示的场景中。如图2所示,该方法可以包括步骤210-230,下面分别对步骤210-230进行详细描述。
步骤210:第一网络设备接收源用户设备发送的第一报文,该第一报文包括第一比特串和目的地址DA。
上述源用户设备发送给第一网络设备的第一报文可以是单播报文,具体可以是IPv6单播报文,本申请对此不做具体限定。该第一报文中可以包括第一比特串和目的地址(destination address,DA)。该第一比特串用于指示至少一个目的用户设备。该第一报文的DA为该第一网络设备的地址。
步骤220:第一网络设备根据该第一比特串获取第二报文,该第二报文包括第一信息,该第一信息用于指示到达该至少一个目的用户设备的下一跳设备。
本申请实施例对所述第二报文不做具体限定,一种可能的实现方式中,该下一跳设备为第一目的用户设备,该第二报文的DA为第一目的用户设备的地址,该第一信息包括作为DA的所述第一目的用户设备的地址。另一种可能的实现方式中,该下一跳设备为第二网络设备,该第二报文的DA为该第二网络设备的地址,该第一信息包括作为DA的所述第二网络设备的地址。另一种可能的实现方式中,该下一跳设备为第二网络设备,该第二报文包括隧道头,该第一信息为所述隧道头包括的与所述隧道对应的信息。具体的,一个示例,该第二报文包括隧道头和第一报文。另一个示例,该第二报文包括所述隧道头和第三报文,该第三报文是基于组播地址和该第一报文获得的报文,该第三报文的DA为所述组播地址。另一个示例,该第二报文包括该隧道头和第三报文,该第三报文是基于该第一报文和该第二网络设备的地址获得的报文,该第三报文的DA为该第二网络设备的地址。下面会结合具体的场景详细描述,此处暂不详述。
步骤230:第一网络设备向该下一跳设备发送该第二报文。
第一网络设备向该下一跳设备发送该第二报文的具体实现方式有多种,本申请实施例对此不做具体限定。一个示例,下一跳设备为第一目的用户设备,第一网络设备可以直接向该第一目的用户设备发送所述第二报文。另一个示例,下一跳设备为第二网络设备,第一网络设备向第二网络设备发送所述第二报文。另一个示例,下一跳设备为第二网络设备,第一网络设备可以通过隧道向第二网络设备发送所述第二报文。该隧道可以是单播隧道,或者也可以是多播隧道。举例说明,该单播隧道例如可以是多协议标签交换(multipleprotocol label switching,MPLS)隧道,或者IP隧道,或者IPv6隧道。该多播隧道例如可以是点到多点(point-to-multipoint,P2MP)隧道或者多点到多点(multi-point to multi-point,MP2MP)隧道。
上述技术方案中,用户IP网络中可以通过单播报文进行点到多点的数据传送,这样,用户设备不需要支持组播报文的处理能力以及相应的IP组播协议,可以降低用户设备的开销和复杂性。
下面会结合不同的场景,对本申请实施例提供的报文传输方法的具体实现过程进行详细描述。下面的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的下面的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
图3是应用于实施例的一种单数据中心多租户的场景示意图。如图3所示,该场景中可以包括:IP报文复制系统(包括设备R1)、SW1-SW6、SRC1、SRC2、RCV1、RCV2、RCV3、RCV4、RCVX。在图3的示例中,IP报文复制系统是一个具有IP报文复制能力的设备R1,该设备R1可以是由具有IP报文复制能力的专用硬件组成,也有可能是由通用硬件(如服务器及网卡)和具有IP报文复制能力的软件模块组成,本申请实施例对此不做限定。举例说明,设备R1例如可以是路由器、交换机、通用计算机上的应用软件等。可选地,IP报文复制系统还可以是一个由多台设备组成的网络,该网络属于运营商或网络服务提供商(service provider,SP),为一个或多个用户(也可以称为租户)提供IP报文点到多点的传输服务。下面会结合图5对这种应用场景进行描述,此处不再赘述。SW1-SW6为交换机,其组成的交换网络也可以称为Fabric网络。该Fabric网络可以为数据中心(data center,DC)的多个租户提供报文的转发服务。SRC1、RCV2、RCV3、RCVX及其链路属于DC内的第一用户(也可以称为第一租户)的专用设备和链路。比如,这些设备和链路可以是运营商租赁给第一用户的,或者这些设备和链路是第一用户自行购买并安装部署的。其中,第一用户的SRC1获取第一报文,将该第一报文经过Fabric网络发送给R1,R1根据该第一报文获得第二报文,并经过Fabric网络将该第二报文发送给RCV2、RCV3、RCVX。SRC2、RCV1、RCV4及其链路属于DC内的第二用户(也可以称为第二租户)的专用设备和链路。比如,这些设备和链路可以是运营商租赁给第二用户的,或者这些设备和链路是第二用户自行购买并安装部署的。SRC2、RCV1、RCV4之间的报文传输过程与第一用户的设备之间进行报文传输的过程类似,具体的请参见上述第一用户的设备之间进行报文传输,此处不再赘述。
下面以图3所示的应用场景为例,结合图4,对本申请实施例提供的一种在单数据中心场景内进行报文传输的方法的具体实现过程进行详细描述。图4是本申请实施例提供的一种在单数据中心场景内进行报文传输的方法的示意性流程图。如图4所示,该方法可以包括步骤410-430,下面分别对步骤410-430进行详细描述。为了便于描述,下面以属于所述第一用户的设备(例如,图3中的SRC1、RCV2、RCV3、RCVX)之间进行报文传输为例进行说明。
步骤410:SRC1根据原始用户报文获得第一报文,并通过Fabric网络发送给设备R1。
SRC1作为第一用户的源用户设备,当其需要将原始用户报文发送给RCV2、RCV3、RCVX时,SRC1可以根据原始用户报文构造如下所示的第一报文,并将该第一报文发送给设备R1。SRC1发送给设备R1的第一报文可采用如下格式:
{IPv6头(SA=SRC1,DA=IP1),IPv6扩展头(BitString=0000 1110),用户报文(UDP,Video Payload)}
上述SRC1发送给设备R1的第一报文可以是在用户报文的外层封装IPv6头和IPv6扩展头。其中,IPv6头的源地址(source address,SA)为SRC1的地址,目的地址(destination address,DA)为设备R1上为第一用户分配的地址IP1。IPv6扩展头中可以包括BitString,或者也可以包括BIER头,BIER头中包括BitString,本申请实施例对此不做具体限定。上述位串(BitString)中不同的比特位(bit)可以对应RCV2、RCV3、RCVX。例如,可以将位串(BitString)中对应于RCV2、RCV3、RCVX的bit位置1,从而用于指导设备R1将第一报文分别发送给RCV2、RCV3、RCVX。以RCV2、RCV3、RCVX分别配置的位转发路由器标识(Bit-forwarding router identifier,BFR ID)分别为2、3、4为例,上述BitString可以是00001110。上述用户报文不是一个隧道报文(tunnel packet),而是一个没有封装隧道头(tunnel header)的原始用户报文。例如,该用户报文的IP头后面是UDP头,UDP头后面的Payload不是一个IP报文而是一个净荷如视频或音频数据等。
步骤420:设备R1接收第一报文,并确定所述第一报文属于第一用户。
作为示例,设备R1可以通过Fabric网络中的SW1、SW3接收到SRC1发送的第一报文。设备R1还可以根据第一报文确定该报文属于第一用户,具体的实现方式有多种,下面分别对几种不同的实现进行详细描述。
一种可能的实现方式中,设备R1可以根据第一报文的SA为SRC1的地址,确定该第一报文属于第一用户。
另一种可能的实现方式中,设备R1还可以根据第一报文的DA为设备R1上为第一用户分配的地址IP1,确定确定该第一报文属于第一用户。
另一种可能的实现方式中,设备R1还可以根据接收到第一报文的虚拟局域网标识(virtual local area network identifier,VLAN ID)确定该第一报文属于第一用户。具体的,作为示例,在Fabric网络中,SW1连接SRC1的端口、SW5连接RCV2的端口、SW6连接RCV3的端口以及SW6连接RCVX的端口都配置为虚拟网络实例(virtual network instance,VNI)标识10(vni10)。SW3连接设备R1的接口进一步划分为用VLAN区分的多个子接口,其中第1个子接口使用一个VLAN ID区分并配置为vni10实例,例如第一子接口的VLAN ID可以是10。在这个例子中,SRC1发出的第一报文实际上首先是被SW1收到,SW1确定报文属于第一用户,SW1使用虚拟扩展局域网(virtual extensible local area network,VXLAN)隧道将第一报文进行封装并发送到SW3,vxlan隧道中会携带vni10标识。SW3对第一报文进行vxlan解封装,根据VXLAN中的vni10确定第一报文属于第一用户,并往第一子接口发送给设备R1。发送给设备R1的第一报文会携带VLAN ID(本例中是10),设备R1根据收到第一报文的接口以及该报文中的VLAN ID确定报文属于第一用户。
步骤430:设备R1根据第一用户对应的转发表项以及第一报文中的BitString确定第二报文,将该第二报文分别发送至RCV2、RCV3、RCVX。
设备R1上可以配置对应于多个租户的IP组播转发实例,例如可以将对应于第一用户的IP组播转发实例配置在虚拟路由转发(virtual routing forwarding,VRF)实例1(vrf1)上,将对应于第二用户的IP组播转发实例配置在VRF实例2(vrf2)上。具体的如下表1所示。
表1设备R1上配置的第一用户、第二用户对应的IP组播转发实例
以vrf1为例,设备R1分配对应于vrf1的IP地址为IP1,也就是说,设备R1上为第一用户分配的地址IP1。转发表项“IP地址=SRC1,Nbr=SRC,FBM=0000 0001”表示当有报文的bit string从右往左第1个bit位为1时,报文会往设备R1的邻居(SRC1)发送,Nbr=SRC1表示设备R1的邻居为SRC1,IP地址=SRC1表示发往SRC1的报文的DA为SRC1的地址。转发表项“IP地址=RCV2,Nbr=RCV2,FBM=0000 0010”表示当有报文的bit string从右往左第2个bit位为1时,报文会往设备R1的邻居(RCV2)发送,Nbr=RCV2表示设备R1的邻居为RCV2,IP地址=RCV2表示发往RCV2的报文的DA为RCV2的地址。转发表项“IP地址=RCV3,Nbr=RCV3,FBM=0000 0100”表示当有报文的bit string从右往左第3个bit位为1时,该报文会往设备R1的邻居(RCV3)发送,Nbr=RCV3表示设备R1的邻居为RCV3,IP地址=RCV3表示发往RCV3的报文的DA为RCV3的地址。转发表项“IP地址=RCVX,Nbr=RCVX,FBM=0000 1000”表示当有报文的bit string从右往左第4个bit位为1时,该报文会往设备R1的邻居(RCVX)发送,Nbr=RCVX表示设备R1的邻居为RCVX,IP地址=RCVX表示发往RCVX的报文的DA为RCVX的地址。
以vrf2为例,设备R1分配对应于vrf2的IP地址为IP2,也就是说,设备R1上为第二用户分配的地址IP2。关于设备R1上对应于第二用户的各个转发表项的解释说明请参考上文中对第一用户的各个转发表项的描述,此处不再赘述。
在上面的例子中,设备R1针对第一用户和第二用户,分别建立vrf1和vrf2的BIER转发表并确保只有第一用户能访问vr1所对应的R1的地址,只有第二用户才能访问vrf2所对应的R1的地址。另一种方法,可以针对第一用户和第二用户分别建立sub-domain 1和sub-domain 2的BIER转发表,并且sub-domain 1和sub-domain 2分别配置IP1和IP2作为服务地址,IP1只允许第一用户的IP地址访问,IP2只允许第二用户的IP地址访问,比如可以通过访问控制列表(access control list,ACL)进行控制。
下面对设备R1根据上述转发表项确定属于第一用户的第二报文,并转发第二报文的过程进行详细描述。
一个示例,设备R1根据上述转发表项“IP地址=RCV2,Nbr=RCV2,FBM=00000010”以及第一报文中的BitString=0000 1110,确定设备R1需要向RCV2发送报文。具体的,设备R1向RCV2发送报文时,报文外层IPv6头中的DA会更新为RCV2的地址,并将IPv6扩展头中的BitString(0000 1110)以及FBM字段做AND操作,本申请实施例中AND的结果是00000010。因此,设备R1发送给RCV2的报文的外层IPv6头中的DA为RCV2的地址,IPv6扩展头中的BitString为0000 0010。举例说明,设备R1发送给RCV2的第二报文为:{IPv6头(SA=SRC1,DA=RCV2),IPv6扩展头(BitString=0000 0010),用户报文(UDP,Video Payload)}。
另一个示例,设备R1根据上述转发表项“IP地址=RCV3,Nbr=RCV3,FBM=00000100”以及第一报文中的BitString=0000 1110,确定设备R1需要向RCV3发送报文。具体的,设备R1向RCV3发送报文时,报文外层IPv6头中的DA会更新为RCV3的地址,并将IPv6扩展头中的BitString(0000 1110)以及FBM字段做AND操作,本申请实施例中AND的结果是00000100。因此,设备R1发送给RCV3的报文的外层IPv6头中的DA为RCV3的地址,IPv6扩展头中的BitString为0000 0100。举例说明,设备R1发送给RCV3的第二报文为:{IPv6头(SA=SRC1,DA=RCV3),IPv6扩展头(BitString=0000 0100),用户报文(UDP,Video Payload)}。
另一个示例,设备R1根据上述转发表项“IP地址=RCVX,Nbr=RCVX,FBM=00001000”以及第一报文中的BitString=0000 1110,确定设备R1需要向RCVX发送报文。具体的,设备R1向RCVX发送报文时,报文外层IPv6头中的DA会更新为RCVX的地址,并将IPv6扩展头中的BitString(0000 1110)以及FBM字段做AND操作,本申请实施例中AND的结果是00001000。因此,设备R1发送给RCVX的外层IPv6头中的DA为RCVX的地址,IPv6扩展头中的BitString为0000 1000。举例说明,设备R1发送给RCVX的第二报文为:{IPv6头(SA=SRC1,DA=RCVX),IPv6扩展头(BitString=0000 1000),用户报文(UDP,Video Payload)}。
需要说明的是,以设备R1发送给RCV2的第二报文为例,其SA为SRC1、DA为RCV2,这和SRC1发送给设备R1的第一报文(SA为SRC1、DA为IP1)有所改变。由于UDP头的checksum字段是根据报文的源地址、目的地址及Payload等字段计算出来的校验值,下面列举出了几种确定第二报文中UDP头的checksum值的具体实现方式。
一种可能的实现方式中,设备R1在更改第一报文的目的地址得到第二报文时,会根据第二报文和第一报文的目的地址的改变对checksum做一个增量更新,从而确定第二报文中的checksum值。这样,通过增量更新checksum值可以不需要重新读取整个payload来重新计算checksum,节省计算开销。
另一种可能的实现方式中,可以在SRC1/RCV2/RCV3/RCVX各主机上配置使能“零UDP校验(zero UDP checksum)”。例如,本实施例用在特定的“目的UDP端口”上、对“目的UDP端口”为第一预设值的情况下使能“零UDP校验”。相应的,SRC1发送给设备R1的第一报文在UDP头checksum字段填0值,RCV2收到第一报文时不校验checksum字段,设备R1向RCV2发送第二报文时,虽然第二报文的目的地址相比较第一报文的目的地址有所更改,但第二报文中的checksum值保持0值不变即可。
另一种可能的实现方式中,本实施例所述的UDP头也可以是UDP-Lite头(UDP-Liteheader),设备R1向RCV2发送第二报文时,设备R1在修改第一报文的目的地址等字段得到第二报文时,对UDP-Lite头中的checksum字段作相应的修改。
图5是应用于实施例的另一种单数据中心多租户的场景示意图。如图5所示,该场景中可以包括:IP报文复制系统(包括设备A-设备F)、SW1-SW6、SRC1、SRC2、RCV1、RCV2、RCV3、RCV4、RCVX。在图5的示例中,IP报文复制系统是由设备A-设备F多台设备组成的网络,该网络属于运营商或网络服务提供商(network service provider,NSP),为一个或多个用户(也可以称为租户)提供IP报文点到多点的传输服务。SW1-SW6、SRC1、SRC2、RCV1、RCV2、RCV3、RCV4、RCVX与图3所示的场景相同,具体的请参考图3中的描述,此处不再赘述。
下面以图5所示的应用场景为例,结合图6,对本申请实施例提供的另一种在单数据中心场景内进行报文传输的方法的具体实现过程进行详细描述。图6是本申请实施例提供的另一种在单数据中心场景内进行报文传输的方法的示意性流程图。如图6所示,该方法可以包括步骤610-630,下面分别对步骤610-630进行详细描述。
步骤610:SRC1根据原始用户报文获得第一报文,并通过Fabric网络发送给设备A。
SRC1作为第一用户的源用户设备,当其需要将原始用户报文发送给RCV2、RCV3、RCVX时,SRC1可以根据原始用户报文构造如下所示的第一报文,并将该第一报文发送给设备A。第一报文采用的报文格式如下所示:
{IPv6头(SA=SRC1,DA=A1),IPv6扩展头(BitString=0000 1110),用户报文(UDP,Video Payload)}
其中,第一报文的外层IPv6头的SA为SRC1的地址,DA为设备A上为第一用户分配的地址A1。
步骤620:设备A接收第一报文,根据第一报文中的BitString确定第二报文。
设备A接收到第一报文后,可以根据第一报文中的DA为A1确定该报文属于第一用户,再根据第一报文中的BitString为0000 1110确定需要向设备F和设备E发送的第二报文。具体的,设备A可以根据第一报文的BitString中RCV2(BFR ID=2)对应的bit为置1,确定需要向设备F发送第二报文;根据第一报文的BitString中RCV3(BFR ID=3)、RCVX(BFRID=4)分别对应的bit为置1,确定需要向设备E发送第二报文。
一种可能的实现方式中,设备A将第二报文发送给设备F和设备E的过程,可以看做设备A和设备F之间有一个单播隧道,设备A和设备E之间有另一个单播隧道。为了便于描述,下面以设备A通过单播隧道将第二报文发送给设备E的过程为例进行说明。例如,设备A可以对从SRC1接收到的第一报文的外层再封装一个隧道头得到第二报文,该第二报文包括隧道头和第一报文。该隧道头比如可以是多协议标签交换(multiple protocol labelswitching,MPLS)隧道头或者IP隧道头或者IPv6隧道头。以IP隧道头为例,第二报文中IP隧道头的源地址是设备A的地址,IP隧道头的目的地址是设备E的地址E1。举例说明,这种实现方式中,设备A发送给设备E的第二报文如下所示:{IP隧道头(IPv6头(SA=A1,DA=E1)),IPv6头(SA=SRC1,DA=A1),IPv6扩展头(BitString=0000 1110),用户报文(UDP,VideoPayload)}。又如,设备A会对接收到的第一报文的的外层增加封装一个隧道头得到第二报文,该第二报文包括隧道头和第三报文,第三报文是基于设备E的地址E1和第一报文获得的报文,该第三报文的目的地址为设备E的地址E1。以隧道头用IP隧道头或者IPv6隧道头时,隧道头的目的地址也是E的一个地址,例如也可以是E1。举例说明,这种实现方式中,设备A发送给设备E的第二报文如下所示:{IP隧道头(IPv6头(SA=A1,DA=E1)),IPv6头(SA=SRC1,DA=E1),IPv6扩展头(BitString=0000 1110),用户报文(UDP,Video Payload)}。
另一种可能的实现方式中,设备A将第二报文发送给设备F和设备E的过程,可以看做设备A通过多播隧道(例如点到多点(point-to-multipoint,P2MP)隧道或者MP2MP隧道)分别发送给设备F和设备E。例如,设备A对收到的第一报文增加封装一个多播隧道头得到第二报文,该第二报文包括隧道头和第三报文,第三报文是基于组播地址和所述第一报文获得的报文。比如,该第三报文的目的地址为一个组播组地址MC-Grp-1,该组播组地址MC-Grp-1可以用于将第二报文通过多播隧道分别发送给设备E和设备F。举例说明,这种实现方式中,设备A发送的第二报文如下所示:{P2MP隧道头,IPv6头(SA=SRC1,DA=MC-Grp-1),IPv6扩展头(BitString=0000 1110),用户报文(UDP,Video Payload)}。
步骤630:设备E、设备F通过Fabric网络分别将第二报文发送至RCV2、RCV3、RCVX。
下面以设备E通过单播隧道接收设备A发送的第二报文为例,对设备E通过Fabric网络分别向RCV2、RCV3、RCVX发送报文的具体实现过程进行描述。
以设备E通过单播隧道接收到的第二报文为:{IP隧道头(IPv6头(SA=A1,DA=E1)),IPv6头(SA=SRC1,DA=A1),IPv6扩展头(BitString=0000 1110),用户报文(UDP,Video Payload)}作为示例。设备E根据第二报文的IP隧道头中的DA为自己,对该第二报文进行解封装,得到内层的第一报文{IPv6头(SA=SRC1,DA=A1),IPv6扩展头(BitString=00001110),用户报文(UDP,Video Payload)},并根据内层报文的DA为A1确定该报文属于第一用户。
设备E还可以根据第一报文的IPv6扩展头中的BitString为0000 1110,确定需要向RCV2、RCV3、RCVX发送报文。设备E发送给RCV2的报文中外层IPv6头的DA为RCV2的地址,IPv6扩展头中的BitString为0000 0010,设备E发送给RCV3的报文中外层IPv6头的DA为RCV3的地址,IPv6扩展头中的BitString为0000 0100。发送给RCVX的报文中外层IPv6头的DA为RCVX的地址,IPv6扩展头中的BitString为0000 1000。
需要说明的是,设备E也可以对分别发送给RCV2、RCV3、RCVX的报文中的checksum进行重新计算和更改。例如,设备A收到SRC发送的报文,再通过单播隧道发送给设备F或设备E时,虽然内层报文的目的地址进行了更改,但不对UDP头的checksum进行更改,在设备E或设备F收到报文时也不对UDP头的checksum进行校验。但当设备E和设备F发送给RCV2/RCV3/RCVX时则进行checksum的重新计算和更改,使得RCV2/RCV3/RCVX上收到的checksum是正确的。再如,设备A对从SRC收到的报文经过多播隧道封装发送给设备F和设备E时,虽然内层报文的目的地址进行了更改,但不对UDP头的checksum进行更改,在设备E或设备F收到报文时也不对UDP头的checksum进行校验。但当设备E和设备F发送给RCV2/RCV3/RCVX时则进行checksum的重新计算和更改,使得RCV2/RCV3/RCVX上收到的报文的checksum是正确的。
图7是应用于实施例的一种多数据中心多租户的场景示意图。在如图7所示的一个区域内可以包括多个数据中心或可用区(available zone,AZ)。其中,Fabric1位于第一个数据中心或可用区AZ,Fabric2位于第2个AZ,Fabric位于第3个AZ,这三个AZ之间相互连接。R1/R2/R3分别是AZ1、AZ2、AZ3的复制路由器。第一用户包括位于AZ1的J1/J2/J3、位于AZ2的J4/J5/J6以及位于AZ3的J7/J8。第二用户包括位于AZ1的H1/H2/H3、位于AZ2的H4/H5/H6以及位于AZ3的H7/H8。
下面以图7所示的应用场景为例,结合图8,对本申请实施例提供的一种在多数据中心多租户场景内进行报文传输的方法的具体实现过程进行详细描述。图8是本申请实施例提供的一种在多数据中心多租户场景内进行报文传输的方法的示意性流程图。如图8所示,该方法可以包括步骤810-820,下面分别对步骤810-820进行详细描述。为了便于描述,下面以第一用户的J1需要将报文分别发送至J2/J3/J4/J5/J6/J7/J8为例进行说明。
步骤810:J1根据原始用户报文获得第一报文,并通过Fabric1网络发送给R1。
假设J1需要发送报文给J2/J3/J4/J5/J6/J7/J8,J1可以封装如下的第一报文:
{IPv6头(SA=J1,DA=IP1),IPv6扩展头(BitString=1111 1110),用户报文(UDP,Video Payload)}
其中,DA为R1上为第一用户分配的地址IP1。J1可以根据DA为IP1,通过Fabric1网络将上述第一报文发送给R1。
步骤820:R1根据第一用户对应的转发表项以及第一报文中的BitString确定第二报文,并对该第二报文进行转发。
R1上可以配置对应于多个租户的IP组播转发实例,例如可以将对应于第一用户的IP组播转发实例配置在VRF实例1(vrf1)上,将对应于第二用户的IP组播转发实例配置在VRF实例2(vrf2)上。具体的如下表2所示。
表2设备R1/R2/R3上配置的第一用户、第二用户对应的IP组播转发实例
R1通过Fabric1网络收到J1发送的第一报文后,可以确定第一报文属于第一用户,并根据vrf1所对应的转发表确定第二报文,并对该第二报文进行转发。下面对具体的转发过程进行详细描述。为了便于描述,本申请实施例中可以将报文中最右的一个bit本文称为bit 1,从右往左依次是bit 2、3、4、5、6、7、8。
由于第一报文的BitString中的bit 2、3分别对应于J2和J3,J1根据表2中vrf1对应的转发表项“IP地址=J2,Nbr=J2,FBM=0000 0010”以及“IP地址=J3,Nbr=J3,FBM=0000 0100”,确定J1需要向J2和J3发送报文。具体的,J1向J2发送报文时,报文转发的实际路径会经过Fabric1,该报文外层IPv6头中的DA为J2的地址,IPv6扩展头中的BitString为0000 0010。J1向发送J3发送报文时,报文外层IPv6头中的DA为J3的地址,IPv6扩展头中的BitString为0000 0100。
本实施例中,J1发送给J2/J3的报文中的BitString是第一报文中的BitString和转发表项中的FBM进行AND操作的结果。以J1发送给J2的报文为例,J1接收到的第一报文中的BitString为1111 1110,转发表项中的FBM为0000 0010,AND操作的结果为0000 0010,因此,J1发送给J2的报文的BitString为0000 0010。由于第一报文的BitString中的bit4、5、6分别对应于J4/J5/J6,J1根据表2中vrf1对应的转发表项“IP地址=J4/J5/J6,Nbr=R2<IP12>,FBM=0011 1000”,确定J1需要向R2<IP12>发送报文。具体的,J1向R2发送报文时,报文转发的实际路径会经过Fabric1和Fabric2,该报文外层IPv6头中的DA为R2的地址IP12,IPv6扩展头中的BitString为0011 1000。
R2接收到该报文后,根据DA为IP12确定该报文属于第一用户,并根据vrf1所对应的转发表对该报文进行转发。例如,R2根据表2中vrf1对应的转发表项“IP地址=J4,Nbr=J4,FBM=0000 1000”确定需要向J4发送报文。具体的,R2向J4发送报文时,该报文外层IPv6头中的DA为J4的地址,IPv6扩展头中的BitString为0000 1000。又如,R2根据表2中vrf1对应的转发表项“IP地址=J5,Nbr=J5,FBM=0001 0000”确定需要向J5发送报文。具体的,R2向J5发送报文时,该报文外层IPv6头中的DA为J5的地址,IPv6扩展头中的BitString为00010000。又如,R2根据表2中vrf1对应的转发表项“IP地址=J6,Nbr=J6,FBM=0010 0000”确定需要向J6发送报文。具体的,R2向J6发送报文时,该报文外层IPv6头中的DA为J6的地址,IPv6扩展头中的BitString为0010 0000。
由于第一报文的BitString中的bit 7、8分别对应于J7和J8,J1根据表2中vrf1对应的转发表项“IP地址=J7/J8,Nbr=R3<IP13>,FBM=1100 0000”确定需要向R3<IP13>发送报文。具体的,J1向R3发送报文时,报文转发的实际路径会经过Fabric1和Fabric3,该报文外层IPv6头中的DA为R3的地址IP13,IPv6扩展头中的BitString为1100 0000。R3接收到该报文后,根据DA为IP13确定该报文属于第一用户,并根据vrf1所对应的转发表对该报文进行转发。例如,R3根据表2中vrf1对应的转发表项“IP地址=J7,Nbr=J7,FBM=01000000”确定需要向J7发送报文。具体的,R3向J7发送报文时,该报文外层IPv6头中的DA为J7的地址,IPv6扩展头中的BitString为0100 0000。又如,R3根据表2中vrf1对应的转发表项“IP地址=J8,Nbr=J8,FBM=1000 0000”确定需要向J8发送报文。具体的,R3向J8发送报文时,该报文外层IPv6头中的DA为J8的地址,IPv6扩展头中的BitString为1000 0000。
图9是应用于实施例的一种跨region的多数据中心多租户场景示意图。如图9所示,该场景中可以包括多个region,例如,7个region,分别是region1、region2、region3、region4、region5、region6、region7。每个region有一个区域路由器(region router,RR1),图9所示的RR1-RR7分别代表region1-region7。RR1-RR7可以是云商(cloudprovider)的网络,云商的网络也可以称为(云)服务提供商。
下面对各个region中的租户情况进行举例说明。
region1:包括第一用户的主机J1-J8,第二用户的主机H1-H8。
region2:包括第一用户的主机J9-J13,第二用户的主机H9-H11。
region3:包括第一用户的主机J14-J16,第二用户的主机H12-H16。
region4:包括第一用户的主机为空,第二用户的主机H17-H18。
region5:包括第一用户的主机J20-J24,第二用户的主机为空。
region6:包括第一用户的主机J25-J32,第二用户的主机H21-H24。
region7:包括第一用户的主机为空,第二用户的主机H25-H 32。
图10示出了region1中的一种可能的场景。一个region内可以包括多个AZ。如图10所示,region1中可以包括AZ1、AZ2、AZ3,其中,AZ1包括H1-3、J1-3、Fabric1、R1,AZ2包括H4-6、J4-6、Fabric2、R2,AZ3包括H7-8、J7-8、Fabric3、R3。region1中还包括一个区域路由器RR1及Fabric0,RR1通过Fabric0及各AZ的Fabric与区域中的各节点相连。
下面以图9所示的应用场景为例,结合图11,对本申请实施例提供的一种在跨region的场景内进行报文传输的方法的具体实现过程进行详细描述。图11是本申请实施例提供的在跨region的场景内进行报文传输的方法的示意性流程图。如图11所示,该方法可以包括步骤1110-1170,下面分别对步骤1110-1170进行详细描述。
为了便于描述,下面以第一用户位于region 1的J1需要发送报文给region2、region3、region5、region6的每一个主机为例,对一种跨region的场景内进行报文传输的方法进行说明。
步骤1110:region 1中的J1根据原始用户报文获得第一报文,并将该第一报文发送给region 1中的RR1。
假设第一用户为主机J1-J8、J9-J13、J14-J16、J20-24、J25-32分配的BFR-id分别是1-8、9-13、14-16、20-24、25-32。第一用户位于region 1的J1需要发送报文给region2、region3、region5、region6的每一个主机(例如,J9-J13、J14-J16、J20-J24、J25-J32),J1可以对原始用户报文进行封装,得到如下的第一报文:{IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,VideoPayload)}。其中,IPv6头的SA为J1的地址,DA为RR1上为第一用户分配的地址RR1_1。IPv6扩展头中的BitString从右往左的bit位中值为1的bit位包括:bit 9-16(代表J9-J16),20-32(代表J20-J32)。
J1可以根据DA为RR1上为第一用户分配的地址RR1_1,将该第一报文发送给RR1。
步骤1120:RR1根据第一报文的BitString,对第一报文进行封装获得第二报文,并根据RR1的BIER转发表将该第二报文发送给RR2。
RR1在接收到J1发送的第一报文后,可以确定该第一报文属于第一用户。具体的,作为示例,在RR1上,也需要为第一用户、第二用户分配不同的IP组播复制服务地址,本实施例中用RR1_1和RR1_2分别表示RR1上为第一用户、第二用户提供IP组播复制服务的地址。RR1上收到的第一报文目的地址是RR1_1时,RR1可以确定报文属于第一用户。例如,RR1上为第一用户配置vrf1,将RR1_1的地址绑定在vrf1上。RR1还通过VLAN ID 10子接口绑定第一用户对应的vrf1,VLAN ID 10的子接口连接Fabric0,Fabric0上的路由器设备将VLAN ID10的子接口和VNI 10绑定,Fabric0-Fabric1之间通过VNI 10标识第一用户。这样RR1上的RR1_1地址只能通过VLAN ID 10、VNI 10进行访问,RR1可以根据接收到的报文目的地址为RR1_1,或者接收报文的接口是VLAN ID 10的子接口等方式确定该第一报文属于第一用户。
为了实现跨region进行报文传输,作为第一用户的服务提供商,会对RR1~RR7分配BFR ID,这个BFR ID的分配空间不同于第一用户,而是服务提供商自己所分配的。例如服务提供商可以对RR1~RR7分别分配BFR ID=1~7。
一种实现方式中,RR1可以根据第一报文中的BitString确定报文要发送给哪些RR所在的region,并确定封装第二报文的BitString,该BitString为服务提供商自己的BitString。在这种实现方式中,为了能根据第一用户的报文中的BitString确定报文要发送给哪些RR所在的区域,服务提供商会还会建立第一用户的Bit位和服务提供商自己的Bit位的对应关系,以便在收到第一用户的报文后根据报文中的BitString确定服务提供商自己的BitString。具体的如下表3所示。
表3设备RR1上第一用户的Bit位和服务提供商自己的Bit位的对应关系
第一用户的Bitmask | 服务提供商的BFR-id |
0000 0000,0000 0000,0000 0000,1111 1111(bit 1-8) | 1 |
0000 0000,0000 0000,0001 1111,0000 0000(bit 9-13) | 2 |
0000 0000,0000 0000,1110 0000,0000 0000(bit 14-16) | 3 |
0000 0000,1111 1000,0000 0000,0000 0000(bit 20-24) | 5 |
1111 1111,0000 0000,0000 0000,0000 0000(bit 25-32) | 6 |
如果第一用户的报文中的BitString和上表3中的第1行的BitMask进行AND操作的结果为非0,则服务提供商的BitString中的第1位将置1,其它各行同理。作为示例,RR1接收到的第一报文的BitString=1111 1111,1111 1000,1111 1111,0000 0000,其从右往左的bit位中值为1的bit位包括:bit 9-16(代表J9-J16),20-32(代表J20-J32)。因此,RR1可以根据表3确定服务提供商自己的BitString为0011 0110(即自己的BFR ID 2/3/5/6位置1)。
服务提供商还可以建立的自己的BIER转发表,具体的如下表4所示。
表4服务提供商建立的自己的BIER转发表
如表4所示,每个RR节点对于收到的报文,会取报文中的BitString和每个表项中的FBM进行AND操作。当AND操作的结果是非0值时,标识该条表项需要处理。如果该条表项没有Flag=Decapsulation的指示,则会往相应的邻居发送报文,并且发送给邻居的报文的BitString会更新为AND操作后的结果。如果该条表项有Flag=Decapsulation的指示,则会复制一份报文并将报文解封装去掉外层封装的头部,再对内层报文进行转发。
针对第一用户,RR1/RR2/RR3/RR5/RR6上还会生成对应于第一用户vrf1的BIER转发表,如下表5所示。
表5RR1/RR2/RR3/RR5/RR6上对应于第一用户vrf1的BIER转发表
/>
在这种实现方式中,RR1可以对该第一报文封装一个新的IPv6头2和IPv6扩展头2,得到如下的第二报文:{IPv6头2(SA=RR1_1,DA=0),IPv6扩展头2(BitString=00110110),IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,11111111,0000 0000),用户报文(UDP,Video Payload)}。
其中,IPv6头2的SA为RR1上为第一用户分配的地址RR1_1,DA的地址为0,需要进一步的根据由IPv6扩展头2中的BitString所确定的下一跳节点确定。具体的,RR1根据所获得的报文中的Ipv6扩展头2中的BitString以及RR1的BIER转发表(表4),将Ipv6扩展头2中的BitString和BIER转发表中RR1对应的每一个转发表项的FBM进行AND操作,确定是否往该转发表发送(或解封装并发送)报文。
作为示例,本例中只会往Nbr=RR2的这一个转发表项发送,发送给RR2的第二报文如下:
{IPv6头2(SA=RR1_1,DA=RR2),
IPv6扩展头2(BitString=0011 0110),
IPv6头(SA=J1,DA=RR1_1),
IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),
用户报文(UDP,Video Payload)};
或者,RR1发送给RR2的报文的Ipv6头的目的地址也可以改为组播组地址Mcast-Grp-1,具体的,RR1发送给RR2的第二报文如下:
{IPv6头2(SA=RR1_1,DA=RR2),
IPv6扩展头2(BitString=0011 0110),
IPv6头(SA=J1,DA=Mcast-Grp-1),
IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),
用户报文(UDP,Video Payload)};
另一种实现方式中,为了避免服务提供商要建立第一用户的Bit位和服务提供商自己的Bit位的对应关系,简化实现的过程,也可以在入口RR路由器(例如,RR1)中配置生成一个第一用户和BitString的静态映射关系。这样,即使第一用户的某个用户报文只到部分区域,报文也会发送给第一用户的所有区域路由器,再在区域路由器上丢弃报文。例如:针对第一用户,RR1上生成如下的对应关系:(第一用户,BitString=0011 0110),其中从右往左的值为1的bit位分别是bit 2/3/5/6,分别对应于RR2/3/5/6。即RR1收到第一用户的报文后会封装隧道头并携带BitString=0011 0110,从而将报文发送给RR2/3/5/6。当RR2收到上述报文,根据Ipv6扩展头2中的BitString以及RR2的BIER转发表,如果报文中的Bit位9-13中有任何一位或多位1bit则报文会发给相应的主机,如果报文中的Bit位9-13中没有任何一个值为1的bit则报文会在RR2上丢弃。这种方式虽然可能导致链路带宽浪费,但对RR1来说实现较为简单,第一用户和第二用户也不需要针对各区域的RR路由器配置BFR ID,只需要服务提供商配置各区域的RR路由器的BFR ID即可。
步骤1130:RR2接收RR1发送的第二报文,并根据RR2的BIER转发表分别向region2中的J9-J13以及RR3发送报文。
一个示例,RR2接收RR1发送的第二报文后,可以根据Ipv6扩展头2中的BitString(0011 0110)中从右往左的第2个bit为置1以及表4中RR2的BIER转发表项“Nbr=RR2*,FBM=0000 0010,Flag=Decapsulation”,确定该第二报文需要往Nbr=RR2的这一转发表项发送。该表项有Flag=Decapsulation标记,RR2将第二报文解封装获得内层的第一报文{IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,00000000),用户报文(UDP,Video Payload)}。RR2确定第一报文属于第一用户(即vrf1),根据RR2上生成的对应于第一用户vrf1的BIER转发表进行转发。例如,RR2可以根据外层SA=RR1_1确定报文属于第一用户。RR2接收到RR1发送的第二报文中Ipv6头的目的地址也可能是组播组地址Mcast-Grp-1,上述Ipv6头的DA为RR1_1只是一种举例说明。
具体的,RR2可以根据解封装后获得的第一报文的BitString=1111 1111,11111000,1111 1111,0000 0000以及转发表项“Nbr=J9,FBM=0000 0000,0000 0000,00000000,0000 0001,0000 0000”、“Nbr=J10,FBM=0000 0000,0000 0000,0000 0000,00000010,0000 0000”、“Nbr=J11,FBM=0000 0000,0000 0000,0000 0000,0000 0100,00000000”、“Nbr=J12,FBM=0000 0000,0000 0000,0000 0000,0000 1000,0000 0000”、“Nbr=J13,FBM=0000 0000,0000 0000,0000 0000,0001 0000,0000 0000”确定需要将第一报文分别发送给J9、J10、J11、J12、J13。发送给J9、J10、J11、J12、J13的报文目的地址分别是J9、J10、J11、J12、J13。
举例说明,RR2发送给J9的报文如下:{IPv6头(SA=J1,DA=J9),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,0000 0001,0000 0000),用户报文(UDP,Video Payload)}。发送给J10的报文如下:{IPv6头(SA=J1,DA=J10),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,0000 0010,0000 0000),用户报文(UDP,Video Payload)}。发送给J11的报文如下:{IPv6头(SA=J1,DA=J11),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,0000 0100,0000 0000),用户报文(UDP,Video Payload)}。发送给J12的报文如下:{IPv6头(SA=J1,DA=J12),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,0000 1000,0000 0000),用户报文(UDP,Video Payload)}。发送给J13的报文如下:{IPv6头(SA=J1,DA=J13),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,0001 0000,0000 0000),用户报文(UDP,Video Payload)}。需要说明的是,发送给J9/J10/J11/J12/J13的报文中的用户报文UDP的checksum可以相应的更新。具体的更新方法请参考上文中确定第二报文的checksum值的具体实现方式,此处不再赘述。
另一个示例,RR2接收RR1发送的第二报文后,可以根据Ipv6扩展头2中的BitString(0011 0110)中从右往左的第3、5、6个bit为置1以及表4中RR2的BIER转发表项“Nbr=RR3,FBM=0111 1100”,确定需要向RR3发送报文。发送给RR3的报文如下:{IPv6头2(SA=RR1_1,DA=RR3),IPv6扩展头2(BitString=0011 0100),IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,Video Payload)}。RR2接收RR1发送的第二报文中,Ipv6头的目的地址也可能是组播组地址Mcast-Grp-1,上述Ipv6头的目的地址为RR1_1只是一种举例说明。
步骤1140:RR3接收RR2发送的报文,并根据RR3的BIER转发分别向region3中的J14-J16以及RR4发送报文。
一个示例,RR3接收RR2发送的报文后,可以根据Ipv6扩展头2中的BitString(00110100)中从右往左的第3个bit为置1以及表4中RR3的BIER转发表项“Nbr=RR3*,FBM=00000100,Flag=Decapsulation”,确定该报文需要往Nbr=RR3的这一转发表项发送。该表项有Flag=Decapsulation标记,RR3将报文解封装获得内层报文{IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,Video Payload)}。RR3确定该报文属于第一用户(即vrf1),根据表5中RR3上生成的对应于第一用户vrf1的BIER转发表进行转发。RR3接收RR2发送的报文中Ipv6头的目的地址也可能是组播组地址Mcast-Grp-1,上述Ipv6头的DA为RR1_1只是一种举例说明。
具体的,RR3可以根据解封装后获得的内层报文的BitString=1111 1111,11111000,1111 1111,0000 0000以及转发表项“Nbr=J14,FBM=0000 0000,0000 0000,00000000,0010 0000,0000 0000”、“Nbr=J15,FBM=0000 0000,0000 0000,0000 0000,01000000,0000 0000”、“Nbr=J16,FBM=0000 0000,0000 0000,0000 0000,1000 0000,0000000”,将内层报文分别发送给J14、J15、J16。发送给J14、J15、J16的报文目的地址分别是J14、J15、J16。
举例说明,RR3发送给J14的报文如下:{IPv6头(SA=J1,DA=J14),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,0010 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J15的报文如下:{IPv6头(SA=J1,DA=J15),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,0100 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J16的报文如下:{IPv6头(SA=J1,DA=J16),IPv6扩展头(BitString=0000 0000,0000 0000,0000 0000,1000 0000,0000 000),用户报文(UDP,Video Payload)}。需要说明的是,发送给J14/J15/J16的报文中的用户报文UDP的checksum可以相应的更新。具体的更新方法请参考上文中确定第二报文的checksum值的具体实现方式,此处不再赘述。
另一个示例,RR3接收RR1发送的报文后,可以根据Ipv6扩展头2中的BitString(0011 0100)中从右往左的第5、6个bit为置1以及表4中RR3的BIER转发表项“Nbr=RR4,FBM=0111 1000”,确定需要将该报文发送给RR4。发送给RR4的报文如下:{IPv6头2(SA=RR1_1,DA=RR4),IPv6扩展头2(BitString=0011 0000),IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,VideoPayload)}。RR3发送给RR4的报文中Ipv6头的目的地址也可能是组播组地址Mcast-Grp-1,上述Ipv6头的DA为RR1_1只是一种举例说明。
步骤1150:RR4接收RR3发送的报文,并根据RR4的BIER转发表分别向RR5以及RR6发送报文。
一个示例,RR4接收RR3发送的报文后,可以根据Ipv6扩展头2中的BitString(00110000)中从右往左的第5、第6个bit为置1以及表4中RR4的BIER转发表项“Nbr=RR5,FBM=0101 0000”、“Nbr=RR6,FBM=0010 0000”,确定需要将该报文发送给RR5、RR6。
举例说明,发送给RR5的报文如下:{IPv6头2(SA=RR1_1,DA=RR5),IPv6扩展头2(BitString=0001 0000),IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=11111111,1111 1000,1111 1111,0000 0000),用户报文(UDP,Video Payload)}。发送给RR6的报文如下:{IPv6头2(SA=RR1_1,DA=RR6),IPv6扩展头2(BitString=0010 0000),IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,00000000),用户报文(UDP,Video Payload)}。RR4发送给RR5的报文中Ipv6头的目的地址也可能是组播组地址Mcast-Grp-1,上述Ipv6头的DA为RR1_1只是一种举例说明。
步骤1160:RR5接收RR4发送的报文,并根据RR5的BIER转发表分别向region5中的J20-J24发送报文。
RR5接收RR4发送的报文后,可以根据Ipv6扩展头2中的BitString(0001 0000)中从右往左的第5个bit为置1以及表4中RR5的BIER转发表项“Nbr=RR5*,FBM=0001 0000,Flag=Decapsulation”,确定该报文需要往Nbr=RR5的这一转发表项发送。该表项有Flag=Decapsulation标记,RR5将该报文解封装获得内层报文{IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,Video Payload)}。RR5确定该报文属于第一用户(即vrf1),根据表5中RR5上生成的对应于第一用户vrf1的BIER转发表进行转发。
具体的,RR5可以根据解封装后获得的内层报文的BitString=1111 1111,11111000,1111 1111,0000 0000以及转发表项“Nbr=J20,FBM=0000 0000,0000 0000,00001000,0000 0000,0000 0000”、“Nbr=J21,FBM=0000 0000,0000 0000,0001 0000,00000000,0000 0000”、“Nbr=J22,FBM=0000 0000,0000 0000,0010 0000,0000 0000,00000000”、“Nbr=J23,FBM=0000 0000,0000 0000,0100 0000,0000 0000,0000 0000”、“Nbr=J24,FBM=0000 0000,0000 0000,1000 0000,0000 0000,0000 0000”,将内层报文分别发送给J20、J21、J22、J23、J24。发送给J20、J21、J22、J23、J24的报文目的地址分别是J20、J21、J22、J23、J24。
举例说明,RR5发送给J20的报文如下:{IPv6头(SA=J1,DA=J20),IPv6扩展头(BitString=0000 0000,0000 0000,0000 1000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J21的报文如下:{IPv6头(SA=J1,DA=J21),IPv6扩展头(BitString=0000 0000,0000 0000,0001 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J22的报文如下:{IPv6头(SA=J1,DA=J22),IPv6扩展头(BitString=0000 0000,0000 0000,0010 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J23的报文如下:{IPv6头(SA=J1,DA=J23),IPv6扩展头(BitString=0000 0000,0000 0000,0100 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J24的报文如下:{IPv6头(SA=J1,DA=J24),IPv6扩展头(BitString=0000 0000,0000 0000,1000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。
需要说明的是,发送给J20/J21/J22/J23/J24的报文中的用户报文UDP的checksum可以相应的更新。具体的更新方法请参考上文中确定第二报文的checksum值的具体实现方式,此处不再赘述。
步骤1170:RR6接收RR4发送的报文,并根据RR6的BIER转发表分别向region6中的J25-J32发送报文。
RR6接收RR4发送的报文后,可以根据Ipv6扩展头2中的BitString(0010 0000)中从右往左的第6个bit为置1以及表4中RR6的BIER转发表项“Nbr=RR6*,FBM=00100000,Flag=Decapsulation”,确定该报文需要往Nbr=RR6的这一转发表项发送。该表项有Flag=Decapsulation标记,RR6将该报文解封装获得内层报文{IPv6头(SA=J1,DA=RR1_1),IPv6扩展头(BitString=1111 1111,1111 1000,1111 1111,0000 0000),用户报文(UDP,Video Payload)}。RR6确定该报文属于第一用户(即vrf1),根据表5中RR6上生成的对应于第一用户vrf1的BIER转发表进行转发。RR4发送给RR6的报文中Ipv6头的目的地址也可能是组播组地址Mcast-Grp-1,上述Ipv6头的DA为RR1_1只是一种举例说明。
具体的,RR6可以根据解封装后获得的内层报文的BitString=1111 1111,11111000,1111 1111,0000 0000以及转发表项“Nbr=J25,FBM=0000 0000,0000 0001,00000000,0000 0000,0000 0000”、“Nbr=J26,FBM=0000 0000,0000 0010,0000 0000,00000000,0000 0000”、“Nbr=J27,FBM=0000 0000,0000 0100,0000 0000,0000 0000,00000000”、“Nbr=J28,FBM=0000 0000,0000 1000,0000 0000,0000 0000,0000 0000”、“Nbr=J29,FBM=0000 0000,0001 0000,0000 0000,0000 0000,0000 0000”、“Nbr=J30,FBM=0000 0000,0010 0000,0000 0000,0000 0000,0000 0000”、“Nbr=J31,FBM=0000 0000,0100 0000,0000 0000,0000 0000,0000 0000”、“Nbr=J32,FBM=0000 0000,1000 0000,0000 0000,0000 0000,0000 0000”,将内层报文分别发送给J25-J32。发送给J25、J26、J27、J28、J29、J30、J31、J32的报文目的地址分别是J25、J26、J27、J28、J29、J30、J31、J32。
举例说明,RR6发送给J25的报文如下:{IPv6头(SA=J1,DA=J25),IPv6扩展头(BitString=0000 0000,0000 0001,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J26的报文如下:{IPv6头(SA=J1,DA=J26),IPv6扩展头(BitString=0000 0000,0000 0010,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J27的报文如下:{IPv6头(SA=J1,DA=J27),IPv6扩展头(BitString=0000 0000,0000 0100,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J28的报文如下:{IPv6头(SA=J1,DA=J28),IPv6扩展头(BitString=0000 0000,0000 1000,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J29的报文如下:{IPv6头(SA=J1,DA=J29),IPv6扩展头(BitString=0000 0000,0001 0000,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J30的报文如下:{IPv6头(SA=J1,DA=J30),IPv6扩展头(BitString=0000 0000,0010 0000,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J31的报文如下:{IPv6头(SA=J1,DA=J31),IPv6扩展头(BitString=0000 0000,0100 0000,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。发送给J32的报文如下:{IPv6头(SA=J1,DA=J32),IPv6扩展头(BitString=0000 0000,1000 0000,0000 0000,0000 0000,0000 0000),用户报文(UDP,Video Payload)}。
需要说明的是,发送给J25/J26/J27/J28/J29/J30/J31/J32的报文中的用户报文UDP的checksum可以相应的更新。具体的更新方法请参考上文中确定第二报文的checksum值的具体实现方式,此处不再赘述。
在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文结合图1至图11,详细描述了本申请实施例提供的报文传输方法,下面将结合图12至图17,详细描述本申请的装置的实施例。方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图12是本申请实施例提供的一种用于报文传输的装置1200的示意性结构图,该装置1200设置于第一网络设备。图12所示的该用于报文传输的装置1200可以执行上述实施例的报文传输方法的相应步骤。如图12所示,该装置1200包括:接收模块1210,处理模块1220和发送模块1230。接收模块1210用于接收源用户设备发送的第一报文,该第一报文包括第一比特串和目的地址DA,该第一比特串用于指示至少一个目的用户设备,该第一报文的DA为该第一网络设备的地址。处理模块1220用于根据该第一比特串获取第二报文,该第二报文包括第一信息,该第一信息用于指示到达该至少一个目的用户设备的下一跳设备。发送模块1230用于向该下一跳设备发送该第二报文。
可选地,该下一跳设备为第一目的用户设备,该发送模块1230具体用于:向该第一目的用户设备发送该第二报文,该第一信息包括作为DA的该第一目的用户设备的地址。
可选地,该下一跳设备为第二网络设备,该发送模块1230具体用于:向该第二网络设备发送该第二报文,该第一信息包括作为DA的该第二网络设备的地址。
可选地,该下一跳设备为第二网络设备,该发送模块1230具体用于:通过隧道向该第二网络设备发送该第二报文,该第二报文包括隧道头,该第一信息为该隧道头包括的与该隧道对应的信息。
可选地,该第二报文包括该隧道头和该第一报文。
可选地,该第二报文包括该隧道头和第三报文,该第三报文是基于组播地址和该第一报文获得的报文,该第三报文的DA为该组播地址;或者该第二报文包括该隧道头和第三报文,该第三报文是基于该第一报文和该第二网络设备的地址获得的报文,该第三报文的DA为该第二网络设备的地址。
可选地,该第一网络设备位于第一区域region,该第二网络设备位于第二region,该第一信息包括第二比特串,该第二比特串用于指示该第二网络设备。
可选地,该处理模块1220还用于:根据对应关系和该第一比特串,获得该第二比特串,该对应关系包括该第一比特串中与该至少一个目的用户设备对应的比特位和该第二比特串中与该第二网络设备对应的比特位;根据该第二比特串获得该第二报文。
可选地,该第一网络设备位于第一数据中心,该第二网络设备位于第二数据中心;或者该第一网络设备位于第一region,该第二网络设备位于第二region。
可选地,该第一报文还包括第一校验checksum,该第二报文还包括第二checksum,该第二checksum是基于该第一checksum、该第一报文的DA以及该第一信息获得的checksum。
可选地,该源用户设备和该至少一个目的用户设备属于同一用户。
可选地,所述第一报文为互联网协议第六版IPv6单播报文,所述IPv6单播报文包括IPv6扩展头,所述第一比特串位于所述IPv6扩展头中。
图13是本申请实施例提供的一种用于报文传输的装置1300的示意性结构图,该装置1300设于第二设备。图13所示的该用于报文传输的装置1300可以执行上述实施例的报文传输方法中的相应步骤。如图13所示,该装置1300包括:接收模块1310,用于接收第一设备发送的第二报文,该第二报文包括第一信息,该第一信息用于指示第一设备到达至少一个目的用户设备的下一跳设备。
可选地,该第二设备为第一目的用户设备,该第一设备为第一网络设备,该第一信息包括作为目的地址DA的该第一目的用户设备的地址。
可选地,该第二设备为第二网络设备,该第一设备为第一网络设备,该第一设备为该第一网络设备,该第一信息包括作为DA的该第二网络设备的地址。
可选地,该第二设备为第二网络设备,该第一设备为第一网络设备,该接收模块1310具体用于:该第二网络设备通过隧道接收该第一网络设备发送的该第二报文,该第二报文包括隧道头,该第一信息为该隧道头包括的与该隧道对应信息。
可选地,该第二报文包括该隧道头和第一报文,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备。
可选地,该第二报文包括该隧道头和第三报文,该第三报文是基于组播地址和第一报文获得的报文,该第三报文的DA为该组播地址,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备;或者该第二报文包括该隧道头和第三报文,该第三报文是基于该第一报文和该第二网络设备的地址获得的报文,该第三报文的DA为该第二网络设备的地址,该第一报文包括第一比特串,该第一比特串用于指示该至少一个目的用户设备。
可选地,该第一网络设备位于第一区域region,该第二网络设备位于第二region,该第一信息包括第二比特串,该第二比特串用于指示该第二网络设备。
可选地,该第二报文还包括用户报文和第一比特串,该第一比特串用于指示该至少一个目的用户设备,该装置1300还包括:处理模块1320,发送模块1330,
处理模块1320,用于基于该第二报文获得该用户报文;
发送模块1330,用于根据该第二报文包括的该第一比特串和该第一信息,向该第一目的用户设备发送该用户报文。
可选地,该第二报文还包括用户报文,处理模块1320,用于对该第二报文进行解封装获得该用户报文;发送模块1330,用于根据该第二报文包括的该第一比特串和该第一信息,向该第一目的用户设备发送该用户报文。
可选地,该第一网络设备位于第一数据中心,该第二网络设备位于第二数据中心;或者该第一网络设备位于第一region,该第二网络设备位于第二region。
可选地,该第二报文还包括第二校验checksum,该第二checksum是基于第一报文包括的第一checksum、该第一报文的DA以及该第一信息获得的checksum。
图14是本申请实施例的用于报文传输的装置2000的硬件结构示意图,该装置2000设置于第一网络设备。图14所示的用于报文传输的装置2000可以执行上述实施例的报文传输方法。如图14所示,该装置2000包括处理器2001、存储器2002、接口2003和总线2004。其中接口2003可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器2001、存储器2002和接口2003通过总线2004连接。所述接口2003具体可以包括发送器和接收器,用于第一网络设备实现上述收发。所述处理器2001用于执行上述实施例中由第一网络设备进行的处理。存储器2002包括操作系统20021和应用程序20022,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及BFIR的处理过程。可选的,所述存储器2002可以包括只读存储器(read-only memory,ROM)和随机存取存储器(random access memory,RAM)。其中,所述ROM包括基本输入/输出系统(basic input/output system,BIOS)或嵌入式系统;所述RAM包括应用程序和操作系统。当需要运行第一网络设备2000时,通过固化在ROM中的BIOS或者嵌入式系统中的bootloader引导系统进行启动,引导第一网络设备进入正常运行状态。在第一网络设备进入正常运行状态后,运行在RAM中的应用程序和操作系统,从而,完成方法实施例中涉及第一网络设备的处理过程。图14仅仅示出了用于报文传输的装置2000的简化设计。在实际应用中,该装置可以包含任意数量的接口,处理器或者存储器。
图15为本申请实施例的另一种用于报文传输的装置2100的硬件结构示意图,该装置2100设置于第一网络设备。图15所示的用于报文传输的装置2100可以执行上述实施例的报文传输方法。如图15所述,该装置2100包括:主控板2110、接口板2130、交换网板2120和接口板2140。主控板2110、接口板2130和2140,以及交换网板2120之间通过系统总线与系统背板相连实现互通。其中,主控板2110用于完成系统管理、设备维护、协议处理等功能。交换网板2120用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板2130和2140用于提供各种业务接口(例如,POS接口、GE接口、ATM接口等),并实现数据包的转发。接口板2130可以包括中央处理器2131、转发表项存储器2134、物理接口卡2133和网络处理器2132。其中,中央处理器2131用于对接口板进行控制管理并与主控板上的中央处理器进行通信。转发表项存储器2134用于保存表项,例如,上文中的转发表项。物理接口卡2133用于完成流量的接收和发送。本申请实施例中接口板2140上的操作与所述接口板2130的操作一致,为了简洁,不再赘述。本实施例的用于报文传输的装置2100可对应于上述方法实施例所具有的功能和/或所实施的各种步骤,在此不再赘述。
此外,需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,BFIR的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,第一网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下第一网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的第一网络设备的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
图16是本申请实施例的用于报文传输的装置2200的硬件结构示意图,该装置2200设于第二设备。图16所示用于报文传输的装置2200可以执行上述实施例的方法中第二设备执行的相应步骤。如图16所示,该装置2200包括处理器2201、存储器2202、接口2203和总线2204。其中接口2203可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器2201、存储器2202和接口2203通过总线2204连接。所述接口2203具体可以包括发送器和接收器,用于第二设备实现上述收发。所述处理器2201用于执行上述实施例中由第二设备进行的处理。存储器2202包括操作系统22021和应用程序22022,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及第二设备的处理过程。可选的,所述存储器2202可以包括只读存储器(read-only memory,ROM)和随机存取存储器(random access memory,RAM)。其中,所述ROM包括基本输入/输出系统(basicinput/output system,BIOS)或嵌入式系统;所述RAM包括应用程序和操作系统。当需要运行第二设备时,通过固化在ROM中的BIOS或者嵌入式系统中的bootloader引导系统进行启动,引导第二设备进入正常运行状态。在第二设备进入正常运行状态后,运行在RAM中的应用程序和操作系统,从而,完成方法实施例中涉及第二设备的处理过程。图16仅仅示出了用于报文传输的装置2200的简化设计。在实际应用中,该装置可以包含任意数量的接口,处理器或者存储器。
图17为本申请实施例的另一种用于报文传输的装置2300的硬件结构示意图,该装置2300设于第二设备。图17所示的用于报文传输的装置2300可以执行上述实施例的方法中第二设备执行的相应步骤。如图17所述,该装置2300包括:主控板2310、接口板2330、交换网板2320和接口板2340。主控板2310、接口板2330和2340,以及交换网板2320之间通过系统总线与系统背板相连实现互通。其中,主控板2310用于完成系统管理、设备维护、协议处理等功能。交换网板2320用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板2330和2340用于提供各种业务接口(例如,POS接口、GE接口、ATM接口等),并实现数据包的转发。接口板2330可以包括中央处理器2331、转发表项存储器2334、物理接口卡2333和网络处理器2332。其中,中央处理器2331用于对接口板进行控制管理并与主控板上的中央处理器进行通信。转发表项存储器2334用于保存表项,例如,上文中的转发表项。物理接口卡2133用于完成流量的接收和发送。本申请实施例中接口板2340上的操作与所述接口板2330的操作一致,为了简洁,不再赘述。本实施例的用于报文传输的装置2300可对应于上述方法实施例所具有的功能和/或所实施的各种步骤,在此不再赘述。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一网络设备执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-onlymemory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasable PROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(harddrive)。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第二设备执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasable PROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(hard drive)。
本申请实施例还提供了一种芯片,应用于第一网络设备中,该芯片包括:至少一个处理器、至少一个存储器和接口电路,所述接口电路负责所述芯片与外界的信息交互,所述至少一个存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述至少一个处理器执行,以进行上述各个方面的所述的方法中所述第一网络设备的操作。在具体实现过程中,该芯片可以以中央处理器(centralprocessing unit,CPU)、微控制器(micro controller unit,MCU)、微处理器(microprocessing unit,MPU)、数字信号处理器(digital signal processing,DSP)、片上系统(system on chip,SoC)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或可编辑逻辑器件(programmable logic device,PLD)的形式实现。
本申请实施例还提供了一种芯片,应用于第二设备中,该芯片包括:至少一个处理器、至少一个存储器和接口电路,所述接口电路负责所述芯片与外界的信息交互,所述至少一个存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述至少一个处理器执行,以进行上述各个方面的所述的方法第二设备的操作。在具体实现过程中,该芯片可以以中央处理器(central processing unit,CPU)、微控制器(micro controller unit,MCU)、微处理器(micro processing unit,MPU)、数字信号处理器(digital signal processing,DSP)、片上系统(system on chip,SoC)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或可编辑逻辑器件(programmable logicdevice,PLD)的形式实现。
本申请实施例还提供了一种计算机程序产品,应用于第一网络设备中,所述计算机程序产品包括一系列指令,当所述指令被运行时,以进行上述各个方面的所述的方法中所述第一网络设备的操作。
本申请实施例还提供了一种计算机程序产品,应用于第二设备中,所述计算机程序产品包括一系列指令,当所述指令被运行时,以进行上述各个方面的所述的方法中所述第二设备的操作。
本申请实施例还提供了一种系统,包括:上述第一网络设备和第二设备。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (28)
1.一种报文传输方法,其特征在于,所述方法包括:
第一网络设备接收源用户设备发送的第一报文,所述第一报文为互联网协议第六版IPv6单播报文,所述第一报文包括第一数据,所述第一数据的外层依次封装有第一用户数据报协议UDP头、第一IPv6扩展头、第一IPv6头,所述第一UDP头中包括第一校验checksum,所述第一校验checksum为0,所述第一IPv6扩展头中包括第一比特串,所述第一比特串中的每个比特位对应于一个目的用户设备,所述每个比特位的值用于指示是否向对应的目的用户设备发送报文,所述第一IPv6头中包括第一目的地址DA,所述第一DA为所述第一网络设备的地址,所述源用户设备和所述目的用户设备为用户主机;
所述第一网络设备根据所述第一比特串获取第二报文,所述第二报文为IPv6报文,所述第二报文包括所述第一数据,所述第一数据的外层依次封装有第二UDP头、第二IPv6扩展头、第二IPv6头,所述第二UDP头中包括所述第一校验checksum,所述第二报文还包括第一信息,所述第一信息用于指示到达至少一个目的用户设备的下一跳设备,所述下一跳设备为第二网络设备,所述第一网络设备和所述第二网络设备属于交换网络、运营商网络或网络服务提供商NSP网络中的任一项;
所述第一网络设备向所述下一跳设备发送所述第二报文。
2.根据权利要求1所述的方法,其特征在于,所述第一信息为第二DA,所述第二DA为所述第二网络设备的地址。
3.根据权利要求1所述的方法,其特征在于,所述第一网络设备向所述下一跳设备发送所述第二报文,包括:
所述第一网络设备通过隧道向所述第二网络设备发送所述第二报文,所述第二报文包括隧道头,所述第一信息为所述隧道头包括的与所述隧道对应的信息。
4.根据权利要求3所述的方法,其特征在于,所述第二报文包括所述隧道头和第三报文,所述第三报文是基于组播地址和所述第一报文获得的报文,所述第三报文的DA为所述组播地址;或者
所述第二报文包括所述隧道头和第三报文,所述第三报文是基于所述第一报文和所述第二网络设备的地址获得的报文,所述第三报文的DA为所述第二网络设备的地址。
5.根据权利要求3或4所述的方法,其特征在于,所述第一网络设备位于第一区域region,所述第二网络设备位于第二region,所述第一信息包括第二比特串,所述第二比特串用于指示所述第二网络设备。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述第一网络设备根据对应关系和所述第一比特串,获得所述第二比特串,所述对应关系包括所述第一比特串中与所述至少一个目的用户设备对应的比特位和所述第二比特串中与所述第二网络设备对应的比特位;
所述第一网络根据所述第二比特串获得所述第二报文。
7.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一网络设备位于第一数据中心,所述第二网络设备位于第二数据中心;或者
所述第一网络设备位于第一region,所述第二网络设备位于第二region。
8.根据权利要求1至4中任一项所述的方法,其特征在于,所述源用户设备和所述至少一个目的用户设备属于同一用户。
9.一种报文传输方法,其特征在于,所述方法包括:
第二网络设备接收第一网络设备发送的第二报文,所述第二报文为互联网协议第六版IPv6报文,所述第二报文包括第一数据,所述第一数据的外层依次封装有第二用户数据报协议UDP头、第二IPv6扩展头、第二IPv6头,所述第二UDP头中包括第一校验checksum,所述第一校验checksum为0,所述第二IPv6扩展头中包括第一比特串,所述第一比特串中的每个比特位对应于一个目的用户设备,所述每个比特位的值用于指示是否向对应的目的用户设备发送报文,所述第二报文还包括第一信息,所述第一信息用于指示到达至少一个目的用户设备的下一跳设备,所述下一跳设备为所述第二网络设备,所述第二网络设备和所述第一网络设备属于交换网络、运营商网络或网络服务提供商NSP网络中的任一项;
所述第二网络设备根据所述第二报文获取第四报文,所述第四报文为IPv6单播报文,所述第四报文包括所述第一数据,所述第一数据的外层依次封装有第三UDP头、第三IPv6扩展头、第三IPv6头,所述第三UDP头中包括所述第一校验checksum,所述第三IPv6头中包括第三目的地址DA,所述第三DA为第一目的用户设备的地址,所述第一目的用户设备为用户主机;
所述第二网络设备向所述第一目的用户设备发送所述第四报文。
10.根据权利要求9所述的方法,其特征在于,所述第一信息为第二DA,所述第二DA为所述第二网络设备的地址。
11.根据权利要求9所述的方法,其特征在于,所述第二网络设备接收第一网络设备发送的第二报文,包括:
所述第二网络设备通过隧道接收所述第一网络设备发送的所述第二报文,所述第二报文包括隧道头,所述第一信息为所述隧道头包括的与所述隧道对应信息。
12.根据权利要求11所述的方法,其特征在于,所述第二报文包括第二DA,所述第二DA为组播地址;或者,所述第二DA为所述第二网络设备的地址。
13.根据权利要求11或12所述的方法,其特征在于,所述第一网络设备位于第一区域region,所述第二网络设备位于第二region,所述第一信息包括第二比特串,所述第二比特串用于指示所述第二网络设备。
14.根据权利要求9至12中任一项所述的方法,其特征在于,所述第一网络设备位于第一数据中心,所述第二网络设备位于第二数据中心;或者
所述第一网络设备位于第一region,所述第二网络设备位于第二region。
15.一种用于报文传输的装置,其特征在于,所述装置设置于第一网络设备,包括:
接收模块,用于接收源用户设备发送的第一报文,所述第一报文为互联网协议第六版IPv6单播报文,所述第一报文包括第一数据,所述第一数据的外层依次封装有第一用户数据报协议UDP头、第一IPv6扩展头、第一IPv6头,所述第一UDP头中包括第一校验checksum,所述第一校验checksum为0,所述第一IPv6扩展头中包括第一比特串,所述第一比特串中的每个比特位对应于一个目的用户设备,所述每个比特位的值用于指示是否向对应的目的用户设备发送报文,所述第一IPv6头中包括第一目的地址DA,所述第一DA为所述第一网络设备的地址,所述源用户设备和所述目的用户设备为用户主机;
处理模块,用于根据所述第一比特串获取第二报文,所述第二报文为IPv6报文,所述第二报文包括所述第一数据,所述第一数据的外层依次封装有第二UDP头、第二IPv6扩展头、第二IPv6头,所述第二UDP头中包括所述第一校验checksum,所述第二报文还包括第一信息,所述第一信息用于指示到达至少一个目的用户设备的下一跳设备,所述下一跳设备为第二网络设备,所述第一网络设备和所述第二网络设备属于交换网络、运营商网络或网络服务提供商NSP网络中的任一项;
发送模块,用于向所述下一跳设备发送所述第二报文。
16.根据权利要求15所述的装置,其特征在于,所述第一信息为第二DA,所述第二DA为所述第二网络设备的地址。
17.根据权利要求15所述的装置,其特征在于,所述发送模块具体用于:
通过隧道向所述第二网络设备发送所述第二报文,所述第二报文包括隧道头,所述第一信息为所述隧道头包括的与所述隧道对应的信息。
18.根据权利要求17所述的装置,其特征在于,所述第二报文包括所述隧道头和第三报文,所述第三报文是基于组播地址和所述第一报文获得的报文,所述第三报文的DA为所述组播地址;或者
所述第二报文包括所述隧道头和第三报文,所述第三报文是基于所述第一报文和所述第二网络设备的地址获得的报文,所述第三报文的DA为所述第二网络设备的地址。
19.根据权利要求17或18所述的装置,其特征在于,所述第一网络设备位于第一区域region,所述第二网络设备位于第二region,所述第一信息包括第二比特串,所述第二比特串用于指示所述第二网络设备。
20.根据权利要求19所述的装置,其特征在于,所述处理模块还用于:
根据对应关系和所述第一比特串,获得所述第二比特串,所述对应关系包括所述第一比特串中与所述至少一个目的用户设备对应的比特位和所述第二比特串中与所述第二网络设备对应的比特位;
根据所述第二比特串获得所述第二报文。
21.根据权利要求15至18中任一项所述的装置,其特征在于,所述第一网络设备位于第一数据中心,所述第二网络设备位于第二数据中心;或者
所述第一网络设备位于第一region,所述第二网络设备位于第二region。
22.根据权利要求15至18中任一项所述的装置,其特征在于,所述源用户设备和所述至少一个目的用户设备属于同一用户。
23.一种用于报文传输的装置,其特征在于,所述装置设于第二网络设备,包括:
接收模块,用于接收第一网络设备发送的第二报文,所述第二报文为互联网协议第六版IPv6报文,所述第二报文包括第一数据,所述第一数据的外层依次封装有第二用户数据报协议UDP头、第二IPv6扩展头、第二IPv6头,所述第二UDP头中包括第一校验checksum,所述第一校验checksum为0,所述第二IPv6扩展头中包括第一比特串,所述第一比特串中的每个比特位对应于一个目的用户设备,所述每个比特位的值用于指示是否向对应的目的用户设备发送报文,所述第二报文还包括第一信息,所述第一信息用于指示到达至少一个目的用户设备的下一跳设备,所述下一跳设备为所述第二网络设备,所述第二网络设备和所述第一网络设备属于交换网络、运营商网络或网络服务提供商NSP网络中的任一项;
处理模块,用于根据所述第二报文获取第四报文,所述第四报文为IPv6单播报文,所述第四报文包括所述第一数据,所述第一数据的外层依次封装有第三UDP头、第三IPv6扩展头、第三IPv6头,所述第三UDP头中包括所述第一校验checksum,所述第三IPv6头中包括第三目的地址DA,所述第三DA为第一目的用户设备的地址,所述第一目的用户设备为用户主机;
发送模块,用于向所述第一目的用户设备发送所述第四报文。
24.根据权利要求23所述的装置,其特征在于,所述第一信息为第二DA,所述第二DA为所述第二网络设备的地址。
25.根据权利要求23所述的装置,其特征在于,所述接收模块具体用于:
通过隧道接收所述第一网络设备发送的所述第二报文,所述第二报文包括隧道头,所述第一信息为所述隧道头包括的与所述隧道对应信息。
26.根据权利要求25所述的装置,其特征在于,所述第二报文包括第二DA,所述第二DA为组播地址;或者,所述第二DA为所述第二网络设备的地址。
27.根据权利要求25或26所述的装置,其特征在于,所述第一网络设备位于第一区域region,所述第二网络设备位于第二region,所述第一信息包括第二比特串,所述第二比特串用于指示所述第二网络设备。
28.根据权利要求23至26中任一项所述的装置,其特征在于,所述第一网络设备位于第一数据中心,所述第二网络设备位于第二数据中心;或者
所述第一网络设备位于第一region,所述第二网络设备位于第二region。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/074787 WO2022171014A1 (zh) | 2021-02-10 | 2022-01-28 | 报文传输方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021101840478 | 2021-02-10 | ||
CN202110184047 | 2021-02-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114915589A CN114915589A (zh) | 2022-08-16 |
CN114915589B true CN114915589B (zh) | 2024-06-04 |
Family
ID=82761036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110474671.1A Active CN114915589B (zh) | 2021-02-10 | 2021-04-29 | 报文传输方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114915589B (zh) |
WO (1) | WO2022171014A1 (zh) |
Citations (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060486A (zh) * | 2007-06-05 | 2007-10-24 | 杭州华三通信技术有限公司 | 一种报文混播变换及转发的方法和交换设备 |
CN101606345A (zh) * | 2006-11-24 | 2009-12-16 | Ktf电信公司 | 用于路由x-cast ip数据报的设备和方法 |
CN102377646A (zh) * | 2010-08-12 | 2012-03-14 | 盛科网络(苏州)有限公司 | 转发芯片、网络交换系统及组播实现方法 |
CN103095585A (zh) * | 2011-11-02 | 2013-05-08 | 中兴通讯股份有限公司 | 一种IPv4和IPv6之间组播控制流信息互通的方法和系统 |
WO2013139337A2 (en) * | 2012-03-05 | 2013-09-26 | Netiter Aps | SYSTEM AND METHOD FOR DATA COMMUNICATION BETWEEN A FIRST INTERNET PROTOCOL VERSION (IPv4) AND A SECOND INTERNET PROTOCOL VERSION (IPv6) |
CN103841037A (zh) * | 2012-11-21 | 2014-06-04 | 华为技术有限公司 | 组播报文转发的方法及设备 |
CN105429841A (zh) * | 2014-09-15 | 2016-03-23 | 中兴通讯股份有限公司 | Nni ping的实现方法及装置 |
CN105721359A (zh) * | 2014-12-04 | 2016-06-29 | 中兴通讯股份有限公司 | Vxlan报文传输方法及装置 |
CN105743793A (zh) * | 2014-12-31 | 2016-07-06 | 瞻博网络公司 | 用于网络设备组件的比特索引显式复制(bier)转发 |
WO2016198017A1 (zh) * | 2015-10-16 | 2016-12-15 | 中兴通讯股份有限公司 | 一种组播地址的传输方法和装置 |
CN106357542A (zh) * | 2016-10-12 | 2017-01-25 | 华为技术有限公司 | 提供组播业务的方法和软件定义网络控制器 |
CN106664601A (zh) * | 2014-07-08 | 2017-05-10 | 英特尔公司 | 用于分组系统承载分流的设备 |
CN106878181A (zh) * | 2016-12-29 | 2017-06-20 | 新华三技术有限公司 | 一种报文传输方法和装置 |
CN109120526A (zh) * | 2017-06-26 | 2019-01-01 | 北京华为数字技术有限公司 | 点对点的传输报文的方法和网络设备 |
CN109688240A (zh) * | 2018-12-24 | 2019-04-26 | 睿哲科技股份有限公司 | IPv4组播和IPv6组播互相转换装置和设备 |
CN109729012A (zh) * | 2018-12-24 | 2019-05-07 | 新华三技术有限公司 | 一种单播报文传输方法和装置 |
CN109729009A (zh) * | 2017-10-31 | 2019-05-07 | 华为技术有限公司 | 用于实现组播业务的方法和装置 |
CN110784411A (zh) * | 2019-09-30 | 2020-02-11 | 华为技术有限公司 | 建立bier转发表项的方法、装置和系统 |
CN111147383A (zh) * | 2018-11-02 | 2020-05-12 | 华为技术有限公司 | 报文转发的方法、发送报文的装置和接收报文的装置 |
CN111245731A (zh) * | 2020-02-24 | 2020-06-05 | 重庆金美通信有限责任公司 | 一种协议无关组播信令穿越bier的改进方法 |
CN111385209A (zh) * | 2018-12-28 | 2020-07-07 | 华为技术有限公司 | 一种报文处理方法、报文转发方法、装置及设备 |
CN111669330A (zh) * | 2019-03-08 | 2020-09-15 | 华为技术有限公司 | 一种bier报文的发送方法和装置 |
CN112039920A (zh) * | 2020-09-14 | 2020-12-04 | 迈普通信技术股份有限公司 | 通信方法、装置、电子设备及存储介质 |
CN112054959A (zh) * | 2019-06-06 | 2020-12-08 | 华为技术有限公司 | 一种bier报文的发送方法和装置 |
US10880208B1 (en) * | 2019-02-11 | 2020-12-29 | Google Llc | Offloads for multicast virtual network packet processing in a network interface card |
CN112187647A (zh) * | 2019-07-05 | 2021-01-05 | 华为技术有限公司 | 报文转发方法、设备及计算机可读存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7286510B2 (en) * | 2002-04-15 | 2007-10-23 | Qualcomm Incorporated | Method and apparatus for providing compatibility between elements of a wireless communication system |
US7447203B2 (en) * | 2003-07-29 | 2008-11-04 | At&T Intellectual Property I, L.P. | Broadband access for virtual private networks |
CN100454900C (zh) * | 2006-01-24 | 2009-01-21 | 华为技术有限公司 | 快速响应ip分片报文的方法和系统 |
US8542622B2 (en) * | 2008-02-25 | 2013-09-24 | Telefonaktiebolaget L M Ericsson (Publ) | Delivery of multicast data |
KR101376014B1 (ko) * | 2009-06-03 | 2014-04-02 | 알까뗄 루슨트 | 복수의 랑데뷰 포인트에서 모바일 멀티캐스트 소스로부터의 멀티캐스트 트래픽을 함께 처리하기 위한 방법 및 장치 |
US9036633B2 (en) * | 2011-10-17 | 2015-05-19 | Futurewei Technologies, Inc. | Multicast support for internet protocol version four residual deployment via encapsulation or translation |
US10511548B2 (en) * | 2017-06-22 | 2019-12-17 | Nicira, Inc. | Multicast packet handling based on control information in software-defined networking (SDN) environment |
US20190386837A1 (en) * | 2018-06-19 | 2019-12-19 | Juniper Networks, Inc. | Forwarding multicast data packets using bit index explicit replication (bier) for bier-incapable network devices |
US10644900B2 (en) * | 2018-06-19 | 2020-05-05 | Juniper Networks, Inc. | Forwarding multicast data packets using bit index explicit replication (BIER) for BIER-incapable network devices |
US11296899B2 (en) * | 2019-02-28 | 2022-04-05 | Cisco Technology, Inc. | Redundant multicast trees without duplication and with fast recovery |
US11362954B2 (en) * | 2019-03-27 | 2022-06-14 | Nokia Solutions And Networks Oy | Tunneling inter-domain stateless internet protocol multicast packets |
-
2021
- 2021-04-29 CN CN202110474671.1A patent/CN114915589B/zh active Active
-
2022
- 2022-01-28 WO PCT/CN2022/074787 patent/WO2022171014A1/zh active Application Filing
Patent Citations (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101606345A (zh) * | 2006-11-24 | 2009-12-16 | Ktf电信公司 | 用于路由x-cast ip数据报的设备和方法 |
CN101060486A (zh) * | 2007-06-05 | 2007-10-24 | 杭州华三通信技术有限公司 | 一种报文混播变换及转发的方法和交换设备 |
CN102377646A (zh) * | 2010-08-12 | 2012-03-14 | 盛科网络(苏州)有限公司 | 转发芯片、网络交换系统及组播实现方法 |
CN103095585A (zh) * | 2011-11-02 | 2013-05-08 | 中兴通讯股份有限公司 | 一种IPv4和IPv6之间组播控制流信息互通的方法和系统 |
WO2013139337A2 (en) * | 2012-03-05 | 2013-09-26 | Netiter Aps | SYSTEM AND METHOD FOR DATA COMMUNICATION BETWEEN A FIRST INTERNET PROTOCOL VERSION (IPv4) AND A SECOND INTERNET PROTOCOL VERSION (IPv6) |
CN103841037A (zh) * | 2012-11-21 | 2014-06-04 | 华为技术有限公司 | 组播报文转发的方法及设备 |
CN106664601A (zh) * | 2014-07-08 | 2017-05-10 | 英特尔公司 | 用于分组系统承载分流的设备 |
CN105429841A (zh) * | 2014-09-15 | 2016-03-23 | 中兴通讯股份有限公司 | Nni ping的实现方法及装置 |
CN105721359A (zh) * | 2014-12-04 | 2016-06-29 | 中兴通讯股份有限公司 | Vxlan报文传输方法及装置 |
CN105743793A (zh) * | 2014-12-31 | 2016-07-06 | 瞻博网络公司 | 用于网络设备组件的比特索引显式复制(bier)转发 |
WO2016198017A1 (zh) * | 2015-10-16 | 2016-12-15 | 中兴通讯股份有限公司 | 一种组播地址的传输方法和装置 |
CN106357542A (zh) * | 2016-10-12 | 2017-01-25 | 华为技术有限公司 | 提供组播业务的方法和软件定义网络控制器 |
CN106878181A (zh) * | 2016-12-29 | 2017-06-20 | 新华三技术有限公司 | 一种报文传输方法和装置 |
CN109120526A (zh) * | 2017-06-26 | 2019-01-01 | 北京华为数字技术有限公司 | 点对点的传输报文的方法和网络设备 |
CN109729009A (zh) * | 2017-10-31 | 2019-05-07 | 华为技术有限公司 | 用于实现组播业务的方法和装置 |
CN111147383A (zh) * | 2018-11-02 | 2020-05-12 | 华为技术有限公司 | 报文转发的方法、发送报文的装置和接收报文的装置 |
CN109688240A (zh) * | 2018-12-24 | 2019-04-26 | 睿哲科技股份有限公司 | IPv4组播和IPv6组播互相转换装置和设备 |
CN109729012A (zh) * | 2018-12-24 | 2019-05-07 | 新华三技术有限公司 | 一种单播报文传输方法和装置 |
CN111385209A (zh) * | 2018-12-28 | 2020-07-07 | 华为技术有限公司 | 一种报文处理方法、报文转发方法、装置及设备 |
US10880208B1 (en) * | 2019-02-11 | 2020-12-29 | Google Llc | Offloads for multicast virtual network packet processing in a network interface card |
CN111669330A (zh) * | 2019-03-08 | 2020-09-15 | 华为技术有限公司 | 一种bier报文的发送方法和装置 |
CN112054959A (zh) * | 2019-06-06 | 2020-12-08 | 华为技术有限公司 | 一种bier报文的发送方法和装置 |
CN112187647A (zh) * | 2019-07-05 | 2021-01-05 | 华为技术有限公司 | 报文转发方法、设备及计算机可读存储介质 |
CN110784411A (zh) * | 2019-09-30 | 2020-02-11 | 华为技术有限公司 | 建立bier转发表项的方法、装置和系统 |
CN111245731A (zh) * | 2020-02-24 | 2020-06-05 | 重庆金美通信有限责任公司 | 一种协议无关组播信令穿越bier的改进方法 |
CN112039920A (zh) * | 2020-09-14 | 2020-12-04 | 迈普通信技术股份有限公司 | 通信方法、装置、电子设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
Charles Perkins ; Nokia ; .Mobility Support in IPv6.IETF .1999,全文. * |
D. Johnson ; Rice University ; C. Perkins (Ed.) ; WiChorus Inc. ; J. Arkko ; Ericsson ; .Mobility Support in IPv6 draft-ietf-mext-rfc3775bis-02.txt.IETF .2008,全文. * |
David B. Johnson ; Carnegie Mellon University * |
Also Published As
Publication number | Publication date |
---|---|
CN114915589A (zh) | 2022-08-16 |
WO2022171014A1 (zh) | 2022-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218178B (zh) | 一种报文处理方法及网络设备 | |
CN110784411B (zh) | 建立bier转发表项的方法、装置和系统 | |
EP3720066B1 (en) | Packet sending and processing method and apparatus, pe node, and node | |
CN109873760B (zh) | 处理路由的方法和装置、以及数据传输的方法和装置 | |
US20210409242A1 (en) | BIER Packet Sending Method and Apparatus | |
EP4231597A1 (en) | Method for forwarding bier message, and device and system | |
CN104579954B (zh) | 报文跨域转发方法、装置及通信设备 | |
CN103685022A (zh) | 报文转发方法及服务提供商网络边缘设备 | |
CN113114576B (zh) | 报文发送的方法、设备和系统 | |
WO2021093463A1 (zh) | 报文转发的方法、第一网络设备以及第一设备组 | |
CN112134776A (zh) | 生成组播转发表项的方法和接入网关 | |
CN109120526B (zh) | 点对点的传输报文的方法和网络设备 | |
CN113328937B (zh) | 分布式聚合的实现方法及装置 | |
CN113541924B (zh) | 报文检测的方法、设备以及系统 | |
CN112532563B (zh) | 报文的发送方法和装置 | |
CN114915589B (zh) | 报文传输方法及装置 | |
US20220337521A1 (en) | Packet Sending Method, Device and System | |
US20220247598A1 (en) | Packet Detection Method, Connectivity Negotiation Relationship Establishment Method, and Related Device | |
WO2022116895A1 (zh) | Bier报文转发的方法、设备以及系统 | |
JP7322088B2 (ja) | パケット検出方法および第1のネットワーク機器 | |
CN114520762B (zh) | BIERv6报文的发送方法以及第一网络设备 | |
CN113285878B (zh) | 负载分担的方法、第一网络设备 | |
CN114006780A (zh) | 报文转发的方法、设备以及系统 | |
US20240171510A1 (en) | Packet transmission method and related device | |
CN116132364A (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 |