CN112804146B - 报文传输方法、通信装置和系统 - Google Patents

报文传输方法、通信装置和系统 Download PDF

Info

Publication number
CN112804146B
CN112804146B CN202110068906.7A CN202110068906A CN112804146B CN 112804146 B CN112804146 B CN 112804146B CN 202110068906 A CN202110068906 A CN 202110068906A CN 112804146 B CN112804146 B CN 112804146B
Authority
CN
China
Prior art keywords
field
address information
subset
address
compressed
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
Application number
CN202110068906.7A
Other languages
English (en)
Other versions
CN112804146A (zh
Inventor
任首首
于德雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110068906.7A priority Critical patent/CN112804146B/zh
Publication of CN112804146A publication Critical patent/CN112804146A/zh
Application granted granted Critical
Publication of CN112804146B publication Critical patent/CN112804146B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/748Address table lookup; Address filtering using longest matching prefix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/659Internet protocol version 6 [IPv6] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/695Types of network addresses using masks or ranges of addresses

Landscapes

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

Abstract

本申请实施例提供一种报文传输方法、通信装置和系统,该方法包括:根据报文转发路径上的转发节点的地址信息,生成报文;所述报文包括第一指示域,所述第一指示域用于指示被压缩后的第一元素和被压缩后的第二元素,所述第一元素和所述第二元素为不同转发节点的地址信息,所述第一元素与所述第二元素所使用的地址压缩方式不同;发送所述报文。本申请实施例提供的报文传输方法、通信装置和系统,在采用IP源路由技术指导报文转发路径上的转发节点转发报文时,通过使用不同的地址压缩方式压缩不同的转发节点的地址信息,以增加报文所指示的转发节点的地址信息的数量,从而可以提高通过报文可指定的转发节点的数量,进而可以降低网络部署的难度。

Description

报文传输方法、通信装置和系统
技术领域
本申请实施例涉及通信技术,尤其涉及一种报文传输方法、通信装置和系统。
背景技术
物联网(Internet of things,IoT)是指物物相连的互联网。在IoT网络中,物与物之间可以通过互联网进行信息交换和通信,以实现智能化的识别、定位、跟踪、监控和管理等。IoT中的物可以称为节点。在大多数IoT场景中,节点的数目较多,一般都在几百甚至上千。节点同时扮演数据接收和转发的角色。即,节点不但要接收和处理IoT管理平台下发给本节点的消息,还要承担子节点和管理平台之间的数据转发任务。
由于节点的存储能力有限,极大的限制了节点可存储的路由表规模。因此,在IoT场景中,通常采用网络之间互连的协议(internet protocol,IP)源路由(source routing)技术来指导节点进行报文的转发。所谓源路由是指由源端节点指定报文的转发路径。以采用互联网协议第6版(internet protocol version 6,IPv6)协议进行报文传输为例,源端节点可以通过在报文的扩展报文头的地址列表字段中,添加该报文应当经过的部分或全部转发节点的地址信息(即IPv6地址),来指定该报文的转发路径。相应地,接收到该报文的节点可以根据地址列表字段所携带的转发节点的地址信息,对报文进行转发。这里所说的转发节点即为IoT场景中承担子节点和管理平台之间的数据转发任务的节点。在地址列表字段中,一个转发节点的地址信息可以称为地址列表字段的一个元素。
然而,由于地址信息较长(占用128比特),极大限制了地址列表字段中的元素的数量,即限制了源端节点可指定的转发节点的数量,给网络部署带来一定的困难。
发明内容
本申请实施例提供一种报文传输方法、通信装置和系统,用于解决在采用IPv6协议进行报文传输时,因每个转发节点的地址信息较长(占用128比特),极大限制了地址列表字段中的元素的数量,导致网络部署困难的技术问题。
第一方面,本申请实施例提供一种报文传输方法。该方法可以应用于压缩节点、也可以应用于压缩节点中的芯片。下面以应用于压缩节点为例对该方法进行描述,该方法包括:包括:
根据报文转发路径上的转发节点的地址信息,生成报文;所述报文包括第一指示域,所述第一指示域用于指示被压缩后的第一元素和被压缩后的第二元素,所述第一元素和所述第二元素为不同转发节点的地址信息,所述第一元素与所述第二元素所使用的地址压缩方式不同;
发送所述报文。
通过第一方面提供的报文传输方法,在采用IPv6协议进行报文传输报文、并采用IP源路由技术指导报文转发路径上的转发节点转发报文时,可以对具有不同压缩特点的转发节点的地址信息,采用不同的地址压缩方式进行压缩,以最大化的压缩更多转发节点的地址信息,使其被压缩后的地址信息的长度小于128比特,并通过报文的第一指示域指示这些被压缩后的地址信息来实现IP源路由。通过这种方式,在报文长度不变的情况,可以增加所指示的元素的数量,从而可以提高可指定的转发节点的数量,进而可以降低网络部署的难度。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括至少两个第一子集,每个所述第一子集包括至少两个元素,所述第一子集的元素之间相同的前缀为所述第一子集的前缀;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素与所述第二元素属于不同的第一子集,所述第一元素所属的第一子集的前缀与所述第二元素所属的第一子集的前缀不同;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素所属的第一子集的前缀相同的部分,得到被压缩后的第二元素。
通过该可能的设计提供的报文传输方法,针对具有不同压缩特点的元素,可以使用不同的地址压缩方式进行压缩,从而可以更大化的压缩每个元素的长度,以及,更大化的压缩更多的元素。这样,压缩节点在通过报文的第一指示域指示这些被压缩后的元素时,可以在第一指示域长度一定的情况下,通过第一指示域指示更多的元素,从而可以提高可指定的转发节点的数量,进而可以降低网络部署的难度。
在一种可能的设计中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;
所述地址信息集合还包括:第二子集,所述第二子集包括至少一个元素,所述第二子集所包括的元素与所述第一子集所包括的元素不同,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀;
所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:
所述第三元素属于所述第二子集;
所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第三元素,或者,去除所述第三元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第三元素。
通过该可能的设计提供的报文传输方法,针对具有不同压缩特点的元素,可以使用不同的地址压缩方式进行压缩,从而可以更大化的压缩每个元素的长度,以及,更大化的压缩更多的元素。这样,压缩节点在通过报文的第一指示域指示这些被压缩后的元素时,可以在第一指示域长度一定的情况下,通过第一指示域指示更多的元素,从而可以提高可指定的转发节点的数量,进而可以降低网络部署的难度。
在一种可能的设计中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;
所述地址信息集合还包括所述第三元素、且所述第三元素不属于所述第一子集,所述第三元素与每个所述第三元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:
所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述第三元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第三元素。
通过该可能的设计提供的报文传输方法,针对具有不同压缩特点的元素,可以使用不同的地址压缩方式进行压缩,从而可以更大化的压缩每个元素的长度,以及,更大化的压缩更多的元素。这样,压缩节点在通过报文的第一指示域指示这些被压缩后的元素时,可以在第一指示域长度一定的情况下,通过第一指示域指示更多的元素,从而可以提高可指定的转发节点的数量,进而可以降低网络部署的难度。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和至少一个第一子集,所述第二子集包括至少一个元素,每个所述第一子集包括至少两个元素,所述第二子集所包括的元素与所述至少一个第一子集所包括的元素不同,所述第一子集的元素之间相同的前缀为每个所述第一子集的前缀,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素属于一个第一子集,所述第二元素属于所述第二子集;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第二元素,或者,去除所述第二元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第二元素。
通过该可能的设计提供的报文传输方法,针对具有不同压缩特点的元素,可以使用不同的地址压缩方式进行压缩,从而可以更大化的压缩每个元素的长度,以及,更大化的压缩更多的元素。这样,压缩节点在通过报文的第一指示域指示这些被压缩后的元素时,可以在第一指示域长度一定的情况下,通过第一指示域指示更多的元素,从而可以提高可指定的转发节点的数量,进而可以降低网络部署的难度。
在一种可能的设计中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;
所述地址信息集合还包括所述第三元素、且所述第三元素不属于所述第一子集和所述第二子集,所述第三元素与每个所述第三元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:
所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述第三元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第三元素。
通过该可能的设计提供的报文传输方法,针对具有不同压缩特点的元素,可以使用不同的地址压缩方式进行压缩,从而可以更大化的压缩每个元素的长度,以及,更大化的压缩更多的元素。这样,压缩节点在通过报文的第一指示域指示这些被压缩后的元素时,可以在第一指示域长度一定的情况下,通过第一指示域指示更多的元素,从而可以提高可指定的转发节点的数量,进而可以降低网络部署的难度。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括至少一个第一子集和所述第二元素,每个所述第一子集包括至少两个元素,所述第一子集的元素之间相同的前缀为所述第一子集的前缀,所述第二元素与每个所述第二元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素属于一个第一子集;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第二元素。
通过该可能的设计提供的报文传输方法,针对具有不同压缩特点的元素,可以使用不同的地址压缩方式进行压缩,从而可以更大化的压缩每个元素的长度,以及,更大化的压缩更多的元素。这样,压缩节点在通过报文的第一指示域指示这些被压缩后的元素时,可以在第一指示域长度一定的情况下,通过第一指示域指示更多的元素,从而可以提高可指定的转发节点的数量,进而可以降低网络部署的难度。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和第二元素,所述第二子集包括至少一个元素,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同,所述第二元素与每个所述第二元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素属于所述第二子集;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第一元素,或者,去除所述第一元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第二元素。
通过该可能的设计提供的报文传输方法,针对具有不同压缩特点的元素,可以使用不同的地址压缩方式进行压缩,从而可以更大化的压缩每个元素的长度,以及,更大化的压缩更多的元素。这样,压缩节点在通过报文的第一指示域指示这些被压缩后的元素时,可以在第一指示域长度一定的情况下,通过第一指示域指示更多的元素,从而可以提高可指定的转发节点的数量,进而可以降低网络部署的难度。
在一种可能的设计中,所述第一指示域还用于指示第四元素,所述第四元素为报文转发路上一个未被压缩的转发节点的地址信息。
通过该可能的设计提供的报文传输方法,在采用IPv6协议进行报文传输报文、并采用IP源路由技术指导报文转发路径上的转发节点转发报文时,在存在无压缩特点的转发节点的地址信息和有压缩特点的转发节点的地址信息时,可以选择对有压缩特点的转发节点的地址信息进行压缩,对无压缩特点的转发节点的地址信息不压缩的方式,来最大化的压缩更多转发节点的地址信息,使其被压缩后的地址信息的长度小于128比特,并通过报文的第一指示域指示这些被压缩后的地址信息来实现IP源路由。通过这种方式,在报文长度不变的情况,可以增加所指示的元素的数量,从而可以提高可指定的转发节点的数量,进而可以降低网络部署的难度。
在一种可能的设计中,所述报文还包括:第二指示域,所述第二指示域用于指示所述第一指示域所指示的元素所使用的地址压缩方式。
通过该可能的设计提供的报文传输方法,接收到报文的转发节点通过第二指示域可以获知下一转发节点的地址信息(即元素)所使用的地址压缩方式,从而使得接收到报文的转发节点可以基于下一转发节点的地址信息(即元素)所使用的地址压缩方式,以及,第一指示域所指示的下一转发节点被压缩后的地址信息(即被压缩后的元素),还原该下一转发节点完整的地址信息。这样,接收到报文的转发节点可以通过该下一转发节点的地址信息,将报文转发给下一转发节点,实现IP源路由。
在一种可能的设计中,所述第二指示域包括至少一个第一字段,每个所述第一字段对应一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
通过该可能的设计提供的报文传输方法,可以通过设置与每种地址压缩方式对应的第一字段,来指示第一指示域所指示的每个元素所使用的地址压缩方式,从而使得接收到报文的转发节点通过第二指示域可以获知下一转发节点的地址信息(即元素)所使用的地址压缩方式,进而使得接收到报文的转发节点可以基于下一转发节点的地址信息(即元素)所使用的地址压缩方式,以及,第一指示域所指示的下一转发节点被压缩后的地址信息(即被压缩后的元素),还原该下一转发节点完整的地址信息。这样,接收到报文的转发节点可以通过该下一转发节点的地址信息,将报文转发给下一转发节点,实现IP源路由。
在一种可能的设计中,所述第二指示域包括第二字段和N个第一字段,所述N为大于或等于1的整数;
所述第二字段,用于指示所述第一指示域所指示的元素总计使用N种地址压缩方式;
每个所述第一字段对应N种地址压缩方式中的一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
通过该可能的设计提供的报文传输方法,通过设置指示第一指示域所指示的元素总计使用N种地址压缩方式的第二字段,以及与N种地址压缩方式中的每种地址压缩方式的第一字段,来实现指示第一指示域指示的每个元素所使用的地址压缩方式的同时,可以降低第二指示域的长度,降低了比特开销。
在一种可能的设计中,所述报文包括与所述第一指示域所指示的每个元素对应的第二指示域,用于指示对对应的元素所使用的地址压缩方式。
通过该可能的设计提供的报文传输方法,通过设置与元素对应的第二指示域指示该元素所使用的地址压缩方式,从而使得接收到报文的转发节点通过下一转发节点的地址信息对应的第二指示域,获知下一转发节点的地址信息(即元素)所使用的地址压缩方式,进而使得接收到报文的转发节点可以基于下一转发节点的地址信息(即元素)所使用的地址压缩方式,以及,第一指示域所指示的下一转发节点被压缩后的地址信息(即被压缩后的元素),还原该下一转发节点完整的地址信息。这样,接收到报文的转发节点可以通过该下一转发节点的地址信息,将报文转发给下一转发节点,实现IP源路由。
在一种可能的设计中,所述报文还包括:第三指示域,所述第三指示域用于指示每个所述第一子集的前缀信息。
通过该可能的设计提供的报文传输方法,通过指示每个第一子集的前缀信息的第三指示域,使接收到该报文的转发节点,可以基于下一转发节点的地址信息(即元素)所使用的地址压缩方式,将第三指示域所指示的下一转发节点的地址信息所属的第一子集的前缀信息,添加到第一指示域所指示的下一转发节点被压缩后的地址信息(即被压缩后的元素)的前面,还原出下一转发节点的地址信息,以使得转发节点可以基于下一转发节点的地址信息转发报文,实现IP源路由。
在一种可能的设计中,所述第三指示域包括至少一个第三字段,每个所述第三字段对应一个所述第一子集的前缀;每个所述第三字段包括第一部分和第二部分;
所述第三字段的第一部分用于指示对应的所述第一子集的前缀的长度,所述第三字段的第二部分,用于指示对应的所述第一子集的前缀。
通过该可能的设计提供的报文传输方法,通过第三字段的第一部分指示第一子集的前缀的长度,可以提高接收到该报文的转发节点解析第一子集的前缀的效率。
在一种可能的设计中,所述第一指示域包括至少一个第四字段;每个所述第四字段对应所述第一指示域所指示的一个元素;
在所述第四字段对应的元素属于所述第一子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示所述元素所属的第一子集的前缀对应的第三字段,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示被压缩后的所述元素;
在所述第四字段对应的元素属于所述第二子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示与所述第二元素具有相同前缀的源端节点的地址信息的标识或者与所述第二元素具有相同前缀的目的节点的地址信息的标识,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示所述被压缩后的所述元素;
在所述第四字段对应的元素与所述元素对应的转发节点的媒体访问控制MAC地址有部分地址相同时,所述第四字段包括第一部分和第二部分,所述第四字段的第一部分用于指示所述元素被压缩后的长度,所述第四字段的第二部分用于指示被压缩后的所述元素。
通过该可能的设计提供的报文传输方法,通过第四字段指示所对应第一指示域所指示的一个元素的方式,可以提高接收到该报文的转发节点解析下一转发节点的地址信息的效率。
在一种可能的设计中,所述报文还包括第四指示域;
所述第四指示域,用于指示所述第三指示域在所述报文中的起始位置。
通过该可能的设计提供的报文传输方法,在接收到该报文的转发节点需要使用某一第一子集的前缀信息还原下一转发节点的地址信息时,可以使接收到该报文的转发节点基于第四指示域,从第三指示域中快速提取到所需的第一子集的前缀信息,提升接收到该报文的转发节点从报文中解析出下一转发节点的地址信息的效率。
在一种可能的设计中,所述报文还包括第五指示域;
所述第五指示域,用于指示下一元素在所述第一指示域中的起始位置,所述下一元素对应的节点为报文转发路径上下一个转发或接收所述报文的节点。
通过该可能的设计提供的报文传输方法,通过第五指示域,可以使接收报文的转发节点在第一指示域中快速提取到下一转发节点的地址信息或下一转发节点被压缩后的地址信息,提升接收到该报文的转发节点从报文中解析出下一转发节点的地址信息的效率。
在一种可能的设计中,所述报文还包括第六指示域;
所述第六指示域,用于指示所述报文的类型,所述报文的类型用于标识所述第一指示域所指示的元素包括被压缩的元素。
通过该可能的设计提供的报文传输方法,通过第六指示域,可以使接收到该报文的转发节点获知第一指示域存在被压缩的元素,从而使得转发节点可以基于存在被压缩的元素的解析方式解析该报文的方式,从而提高了报文的解析效率。
第二方面,本申请实施例提供一种报文传输方法。该方法可以应用于报文转发路径上接收报文的转发节点、也可以应用于该转发节点中的芯片。下面以应用于转发节点为例对该方法进行描述,该方法包括:
接收报文;所述报文包括第一指示域,所述第一指示域用于指示被压缩后的第一元素和被压缩后的第二元素,所述第一元素和所述第二元素为报文转发路径上不同转发节点的地址信息,所述第一元素与所述第二元素所使用的地址压缩方式不同;
根据所述第一指示域,确定下一转发节点的地址信息;
根据所述下一转发节点的地址信息,向所述下一转发节点发送所述报文。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括至少两个第一子集,每个所述第一子集包括至少两个元素,所述第一子集的元素之间相同的前缀为所述第一子集的前缀;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素与所述第二元素属于不同的第一子集,所述第一元素所属的第一子集的前缀与所述第二元素所属的第一子集的前缀不同;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素所属的第一子集的前缀相同的部分,得到被压缩后的第二元素。
在一种可能的设计中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;
所述地址信息集合还包括:第二子集,所述第二子集包括至少一个元素,所述第二子集所包括的元素与所述第一子集所包括的元素不同,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀;
所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:
所述第三元素属于所述第二子集;
所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第三元素,或者,去除所述第三元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第三元素。
在一种可能的设计中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;
所述地址信息集合还包括所述第三元素、且所述第三元素不属于所述第一子集,所述第三元素与每个所述第三元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:
所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述第三元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第三元素。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和至少一个第一子集,所述第二子集包括至少一个元素,每个所述第一子集包括至少两个元素,所述第二子集所包括的元素与所述至少一个第一子集所包括的元素不同,所述第一子集的元素之间相同的前缀为每个所述第一子集的前缀,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素属于一个第一子集,所述第二元素属于所述第二子集;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第二元素,或者,去除所述第二元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第二元素。
在一种可能的设计中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;
所述地址信息集合还包括所述第三元素、且所述第三元素不属于所述第一子集和所述第二子集,所述第三元素与每个所述第三元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:
所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述第三元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第三元素。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括至少一个第一子集和所述第二元素,每个所述第一子集包括至少两个元素,所述第一子集的元素之间相同的前缀为所述第一子集的前缀,所述第二元素与每个所述第二元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素属于一个第一子集;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第二元素。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和第二元素,所述第二子集包括至少一个元素,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同,所述第二元素与每个所述第二元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素属于所述第二子集;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第一元素,或者,去除所述第一元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第二元素。
在一种可能的设计中,所述第一指示域还用于指示第四元素,所述第四元素为报文转发路上一个未被压缩的转发节点的地址信息。
在一种可能的设计中,所述报文还包括:第二指示域,所述第二指示域用于指示所述第一指示域所指示的元素所使用的地址压缩方式。
在一种可能的设计中,所述第二指示域包括至少一个第一字段,每个所述第一字段对应一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
在一种可能的设计中,所述第二指示域包括第二字段和N个第一字段,所述N为大于或等于1的整数;
所述第二字段,用于指示所述第一指示域所指示的元素总计使用N种地址压缩方式;
每个所述第一字段对应N种地址压缩方式中的一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
在一种可能的设计中,所述报文包括与所述第一指示域所指示的每个元素对应的第二指示域,用于指示对对应的元素所使用的地址压缩方式。
在一种可能的设计中,所述报文还包括:第三指示域,所述第三指示域用于指示每个所述第一子集的前缀信息。
在一种可能的设计中,所述第三指示域包括至少一个第三字段,每个所述第三字段对应一个所述第一子集的前缀;每个所述第三字段包括第一部分和第二部分;
所述第三字段的第一部分用于指示对应的所述第一子集的前缀的长度,所述第三字段的第二部分,用于指示对应的所述第一子集的前缀。
在一种可能的设计中,所述第一指示域包括至少一个第四字段;每个所述第四字段对应所述第一指示域所指示的一个元素;
在所述第四字段对应的元素属于所述第一子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示所述元素所属的第一子集的前缀对应的第三字段,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示被压缩后的所述元素;
在所述第四字段对应的元素属于所述第二子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示与所述第二元素具有相同前缀的源端节点的地址信息的标识或者与所述第二元素具有相同前缀的目的节点的地址信息的标识,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示所述被压缩后的所述元素;
在所述第四字段对应的元素与所述元素对应的转发节点的媒体访问控制MAC地址有部分地址相同时,所述第四字段包括第一部分和第二部分,所述第四字段的第一部分用于指示所述元素被压缩后的长度,所述第四字段的第二部分用于指示被压缩后的所述元素。
在一种可能的设计中,所述根据所述第一指示域,确定下一转发节点的地址信息,包括:
根据所述第二指示域,确定所述下一转发节点的地址信息所使用的地址压缩方式;
根据所述下一转发节点的地址信息所使用的地址压缩方式,以及,所述第一指示域所指示的下一转发节点被压缩的地址信息,还原所述下一转发节点的地址信息。
在一种可能的设计中,所述根据所述下一转发节点的地址信息所使用的地址压缩方式,以及,所述第一指示域所指示的下一转发节点被压缩的地址信息,还原所述下一转发节点的地址信息,包括:
在所述下一转发节点的地址信息属于所述第一子集时,根据所述下一转发节点的地址信息所使用的地址压缩方式,将所述第三指示域所指示的下一转发节点的地址信息所属的第一子集的前缀信息,添加到所述下一转发节点被压缩后的地址信息的前面,还原所述下一转发节点的地址信息;
在所述下一转发节点的地址信息属于所述第二子集时,根据所述下一转发节点的地址信息所使用的地址压缩方式,将所述源端节点的地址信息或所述目的节点的地址信息与所述下一转发节点的地址信息相同的前缀,添加到所述下一转发节点被压缩后的地址信息的前面,还原所述下一转发节点的地址信息;
在所述下一转发节点的地址信息与所述下一转发节点的媒体访问控制MAC地址有部分地址相同时,根据所述下一转发节点的地址信息所使用的地址压缩方式,将所述下一转发节点的媒体访问控制MAC地址中与所述下一转发节点的地址信息相同的部分,添加到所述下一转发节点被压缩后的地址信息中,还原所述下一转发节点的地址信息。
在一种可能的设计中,所述报文还包括第四指示域;
所述第四指示域,用于指示所述第三指示域在所述报文中的起始位置。
在一种可能的设计中,所述报文还包括第五指示域;
所述第五指示域,用于指示下一元素在所述第一指示域中的起始位置,所述下一元素对应的节点为报文转发路径上下一个转发或接收所述报文的节点。
在一种可能的设计中,所述报文还包括第六指示域;
所述第六指示域,用于指示所述报文的类型,所述报文的类型用于标识所述第一指示域所指示的元素包括被压缩的元素。
上述第二方面和第二方面的各可能的设计所提供的报文传输方法,其有益效果可以参见上述第一方面和第一方面的各可能的设计所带来的有益效果,在此不加赘述。
第三方面,本申请实施例提供一种通信装置,该通信装置可以为压缩节点,也可以为应用于压缩节点的芯片,该通信装置包括:
处理模块,用于根据报文转发路径上的转发节点的地址信息,生成报文;所述报文包括第一指示域,所述第一指示域用于指示被压缩后的第一元素和被压缩后的第二元素,所述第一元素和所述第二元素为不同转发节点的地址信息,所述第一元素与所述第二元素所使用的地址压缩方式不同;
发送模块,用于发送所述报文。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括至少两个第一子集,每个所述第一子集包括至少两个元素,所述第一子集的元素之间相同的前缀为所述第一子集的前缀;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素与所述第二元素属于不同的第一子集,所述第一元素所属的第一子集的前缀与所述第二元素所属的第一子集的前缀不同;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素所属的第一子集的前缀相同的部分,得到被压缩后的第二元素。
在一种可能的设计中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;
所述地址信息集合还包括:第二子集,所述第二子集包括至少一个元素,所述第二子集所包括的元素与所述第一子集所包括的元素不同,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀;
所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:
所述第三元素属于所述第二子集;
所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第三元素,或者,去除所述第三元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第三元素。
在一种可能的设计中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;
所述地址信息集合还包括所述第三元素、且所述第三元素不属于所述第一子集,所述第三元素与每个所述第三元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:
所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述第三元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第三元素。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和至少一个第一子集,所述第二子集包括至少一个元素,每个所述第一子集包括至少两个元素,所述第二子集所包括的元素与所述至少一个第一子集所包括的元素不同,所述第一子集的元素之间相同的前缀为每个所述第一子集的前缀,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素属于一个第一子集,所述第二元素属于所述第二子集;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第二元素,或者,去除所述第二元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第二元素。
在一种可能的设计中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;
所述地址信息集合还包括所述第三元素、且所述第三元素不属于所述第一子集和所述第二子集,所述第三元素与每个所述第三元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:
所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述第三元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第三元素。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括至少一个第一子集和所述第二元素,每个所述第一子集包括至少两个元素,所述第一子集的元素之间相同的前缀为所述第一子集的前缀,所述第二元素与每个所述第二元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素属于一个第一子集;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第二元素。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和第二元素,所述第二子集包括至少一个元素,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同,所述第二元素与每个所述第二元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素属于所述第二子集;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第一元素,或者,去除所述第一元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第二元素。
在一种可能的设计中,所述第一指示域还用于指示第四元素,所述第四元素为报文转发路上一个未被压缩的转发节点的地址信息。
在一种可能的设计中,所述报文还包括:第二指示域,所述第二指示域用于指示所述第一指示域所指示的元素所使用的地址压缩方式。
在一种可能的设计中,所述第二指示域包括至少一个第一字段,每个所述第一字段对应一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
在一种可能的设计中,所述第二指示域包括第二字段和N个第一字段,所述N为大于或等于1的整数;
所述第二字段,用于指示所述第一指示域所指示的元素总计使用N种地址压缩方式;
每个所述第一字段对应N种地址压缩方式中的一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
在一种可能的设计中,所述报文包括与所述第一指示域所指示的每个元素对应的第二指示域,用于指示对对应的元素所使用的地址压缩方式。
在一种可能的设计中,所述报文还包括:第三指示域,所述第三指示域用于指示每个所述第一子集的前缀信息。
在一种可能的设计中,所述第三指示域包括至少一个第三字段,每个所述第三字段对应一个所述第一子集的前缀;每个所述第三字段包括第一部分和第二部分;
所述第三字段的第一部分用于指示对应的所述第一子集的前缀的长度,所述第三字段的第二部分,用于指示对应的所述第一子集的前缀。
在一种可能的设计中,所述第一指示域包括至少一个第四字段;每个所述第四字段对应所述第一指示域所指示的一个元素;
在所述第四字段对应的元素属于所述第一子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示所述元素所属的第一子集的前缀对应的第三字段,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示被压缩后的所述元素;
在所述第四字段对应的元素属于所述第二子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示与所述第二元素具有相同前缀的源端节点的地址信息的标识或者与所述第二元素具有相同前缀的目的节点的地址信息的标识,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示所述被压缩后的所述元素;
在所述第四字段对应的元素与所述元素对应的转发节点的媒体访问控制MAC地址有部分地址相同时,所述第四字段包括第一部分和第二部分,所述第四字段的第一部分用于指示所述元素被压缩后的长度,所述第四字段的第二部分用于指示被压缩后的所述元素。
在一种可能的设计中,所述报文还包括第四指示域;
所述第四指示域,用于指示所述第三指示域在所述报文中的起始位置。
在一种可能的设计中,所述报文还包括第五指示域;
所述第五指示域,用于指示下一元素在所述第一指示域中的起始位置,所述下一元素对应的节点为报文转发路径上下一个转发或接收所述报文的节点。
在一种可能的设计中,所述报文还包括第六指示域;
所述第六指示域,用于指示所述报文的类型,所述报文的类型用于标识所述第一指示域所指示的元素包括被压缩的元素。
上述第三方面和第三方面的各可能的设计所提供的通信装置,其有益效果可以参见上述第一方面和第一方面的各可能的设计所带来的有益效果,在此不加赘述。
第四方面,本申请实施例提供一种通信装置,该通信装置可以为报文转发路径上接收报文的转发节点,也可以为应用于该转发节点的芯片,该通信装置包括:
接收模块,用于接收报文;所述报文包括第一指示域,所述第一指示域用于指示被压缩后的第一元素和被压缩后的第二元素,所述第一元素和所述第二元素为报文转发路径上不同转发节点的地址信息,所述第一元素与所述第二元素所使用的地址压缩方式不同;
处理模块,用于根据所述第一指示域,确定下一转发节点的地址信息;
发送模块,用于根据所述下一转发节点的地址信息,向所述下一转发节点发送所述报文。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括至少两个第一子集,每个所述第一子集包括至少两个元素,所述第一子集的元素之间相同的前缀为所述第一子集的前缀;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素与所述第二元素属于不同的第一子集,所述第一元素所属的第一子集的前缀与所述第二元素所属的第一子集的前缀不同;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素所属的第一子集的前缀相同的部分,得到被压缩后的第二元素。
在一种可能的设计中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;
所述地址信息集合还包括:第二子集,所述第二子集包括至少一个元素,所述第二子集所包括的元素与所述第一子集所包括的元素不同,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀;
所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:
所述第三元素属于所述第二子集;
所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第三元素,或者,去除所述第三元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第三元素。
在一种可能的设计中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;
所述地址信息集合还包括所述第三元素、且所述第三元素不属于所述第一子集,所述第三元素与每个所述第三元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:
所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述第三元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第三元素。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和至少一个第一子集,所述第二子集包括至少一个元素,每个所述第一子集包括至少两个元素,所述第二子集所包括的元素与所述至少一个第一子集所包括的元素不同,所述第一子集的元素之间相同的前缀为每个所述第一子集的前缀,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素属于一个第一子集,所述第二元素属于所述第二子集;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第二元素,或者,去除所述第二元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第二元素。
在一种可能的设计中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;
所述地址信息集合还包括所述第三元素、且所述第三元素不属于所述第一子集和所述第二子集,所述第三元素与每个所述第三元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:
所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述第三元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第三元素。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括至少一个第一子集和所述第二元素,每个所述第一子集包括至少两个元素,所述第一子集的元素之间相同的前缀为所述第一子集的前缀,所述第二元素与每个所述第二元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素属于一个第一子集;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第二元素。
在一种可能的设计中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和第二元素,所述第二子集包括至少一个元素,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同,所述第二元素与每个所述第二元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;
所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:
所述第一元素属于所述第二子集;
所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第一元素,或者,去除所述第一元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第一元素;
所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第二元素。
在一种可能的设计中,所述第一指示域还用于指示第四元素,所述第四元素为报文转发路上一个未被压缩的转发节点的地址信息。
在一种可能的设计中,所述报文还包括:第二指示域,所述第二指示域用于指示所述第一指示域所指示的元素所使用的地址压缩方式。
在一种可能的设计中,所述第二指示域包括至少一个第一字段,每个所述第一字段对应一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
在一种可能的设计中,所述第二指示域包括第二字段和N个第一字段,所述N为大于或等于1的整数;
所述第二字段,用于指示所述第一指示域所指示的元素总计使用N种地址压缩方式;
每个所述第一字段对应N种地址压缩方式中的一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
在一种可能的设计中,所述报文包括与所述第一指示域所指示的每个元素对应的第二指示域,用于指示对对应的元素所使用的地址压缩方式。
在一种可能的设计中,所述报文还包括:第三指示域,所述第三指示域用于指示每个所述第一子集的前缀信息。
在一种可能的设计中,所述第三指示域包括至少一个第三字段,每个所述第三字段对应一个所述第一子集的前缀;每个所述第三字段包括第一部分和第二部分;
所述第三字段的第一部分用于指示对应的所述第一子集的前缀的长度,所述第三字段的第二部分,用于指示对应的所述第一子集的前缀。
在一种可能的设计中,所述第一指示域包括至少一个第四字段;每个所述第四字段对应所述第一指示域所指示的一个元素;
在所述第四字段对应的元素属于所述第一子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示所述元素所属的第一子集的前缀对应的第三字段,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示被压缩后的所述元素;
在所述第四字段对应的元素属于所述第二子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示与所述第二元素具有相同前缀的源端节点的地址信息的标识或者与所述第二元素具有相同前缀的目的节点的地址信息的标识,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示所述被压缩后的所述元素;
在所述第四字段对应的元素与所述元素对应的转发节点的媒体访问控制MAC地址有部分地址相同时,所述第四字段包括第一部分和第二部分,所述第四字段的第一部分用于指示所述元素被压缩后的长度,所述第四字段的第二部分用于指示被压缩后的所述元素。
在一种可能的设计中,所述处理模块,具体用于根据所述第二指示域,确定所述下一转发节点的地址信息所使用的地址压缩方式,并根据所述下一转发节点的地址信息所使用的地址压缩方式,以及,所述第一指示域所指示的下一转发节点被压缩的地址信息,还原所述下一转发节点的地址信息。
在一种可能的设计中,所述处理模块,具体用于在所述下一转发节点的地址信息属于所述第一子集时,根据所述下一转发节点的地址信息所使用的地址压缩方式,将所述第三指示域所指示的下一转发节点的地址信息所属的第一子集的前缀信息,添加到所述下一转发节点被压缩后的地址信息的前面,还原所述下一转发节点的地址信息;在所述下一转发节点的地址信息属于所述第二子集时,根据所述下一转发节点的地址信息所使用的地址压缩方式,将所述源端节点的地址信息或所述目的节点的地址信息与所述下一转发节点的地址信息相同的前缀,添加到所述下一转发节点被压缩后的地址信息的前面,还原所述下一转发节点的地址信息;在所述下一转发节点的地址信息与所述下一转发节点的媒体访问控制MAC地址有部分地址相同时,根据所述下一转发节点的地址信息所使用的地址压缩方式,将所述下一转发节点的媒体访问控制MAC地址中与所述下一转发节点的地址信息相同的部分,添加到所述下一转发节点被压缩后的地址信息中,还原所述下一转发节点的地址信息。
在一种可能的设计中,所述报文还包括第四指示域;
所述第四指示域,用于指示所述第三指示域在所述报文中的起始位置。
在一种可能的设计中,所述报文还包括第五指示域;
所述第五指示域,用于指示下一元素在所述第一指示域中的起始位置,所述下一元素对应的节点为报文转发路径上下一个转发或接收所述报文的节点。
在一种可能的设计中,所述报文还包括第六指示域;
所述第六指示域,用于指示所述报文的类型,所述报文的类型用于标识所述第一指示域所指示的元素包括被压缩的元素。
上述第四方面和第四方面的各可能的设计所提供的通信装置,其有益效果可以参见上述第一方面和第一方面的各可能的设计所带来的有益效果,在此不加赘述。
第五方面,本申请实施例提供一种通信装置,所述通信装置包括:处理器、存储器、发送器;所述发送器均耦合至所述处理器,所述处理器控制所述发送器的发送动作;
其中,存储器用于存储计算机可执行程序代码,程序代码包括指令;当处理器执行指令时,指令使所述通信装置执行如第一方面或第一方面的各可能的设计所提供的报文传输方法。
第六方面,本申请实施例提供一种通信装置,所述通信装置包括:处理器、存储器、接收器、发送器;所述接收器和所述发送器均耦合至所述处理器,所述处理器控制所述接收器的接收动作,所述处理器控制所述发送器的发送动作;
其中,存储器用于存储计算机可执行程序代码,程序代码包括指令;当处理器执行指令时,指令使所述通信装置执行如第二方面或第二方面的各可能的设计所提供的报文传输方法。
第七方面,本申请实施例提供一种通信装置,包括用于执行以上第一方面或第一方面各可能的设计所提供的方法的单元、模块或电路。该通信装置可以为压缩节点,也可以为应用于压缩节点的一个模块,例如,可以为应用于压缩节点的芯片。
第八方面,本申请实施例提供一种通信装置,包括用于执行以上第二方面或第二方面各可能的设计所提供的方法的单元、模块或电路。该通信装置可以为报文转发路径上接收报文的转发节点,也可以为应用于该转发节点的一个模块,例如,可以为应用于该转发节点的芯片。
第九方面,本申请实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的各种可能的设计中的方法。
第十方面,本申请实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面或第二方面的各种可能的设计中的方法。
第十一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的各种可能的设计中的方法。
第十二方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第二方面或第二方面的各种可能的设计中的方法。
第十三方面,本申请实施例提供一种通信系统,所述通信系统包括:上述第三方面或第三方面的各种可能的设计中的通信装置,以及,上述第四方面或第四方面的各种可能的设计中的通信装置。
本申请实施例提供的报文传输方法、通信装置和系统,在采用IPv6协议进行报文传输报文、并采用IP源路由技术指导报文转发路径上的转发节点转发报文时,可以对具有不同压缩特点的转发节点的地址信息,采用不同的地址压缩方式进行压缩,以最大化的压缩更多转发节点的地址信息,使其被压缩后的地址信息的长度小于128比特,并通过报文的第一指示域指示这些被压缩后的地址信息来实现IP源路由。通过这种方式,在报文长度不变的情况,可以增加所指示的元素的数量,从而可以提高可指定的转发节点的数量,进而可以降低网络部署的难度。
附图说明
图1为本申请实施例的应用场景图;
图2为现有的报文的扩展报文头的示意图;
图3为本申请实施例提供的一种报文传输方法的流程示意图;
图4为本申请实施例提供的一种报文头的格式;
图5为本申请实施例提供的另一种报文头的格式;
图6为本申请实施例提供的又一种报文头的格式;
图7为本申请实施例提供的一种报文传输场景示意图;
图8为本申请实施例提供的又一种报文头的示意图;
图9为本申请实施例提供的另一种报文传输场景示意图;
图10为本申请实施例提供的又一种报文头的示意图;
图11为本申请实施例提供的一种通信装置的结构示意图;
图12为本申请实施例提供的另一种通信装置的结构示意图;
图13为本申请实施例提供的又一种通信装置的结构示意图;
图14为本申请实施例提供的又一种通信装置的结构示意图;
图15为本申请实施例提供的一种通信系统的结构示意图。
具体实施方式
图1为本申请实施例的应用场景图。如图1所示,本申请实施例可以应用于包括源端节点、目的节点和至少一个转发节点(如图1中的转发节点1至转发节点6)的场景,例如,IoT网络场景、封闭组网场景、传统IP网络场景等。其中,源端节点、至少一个转发节点、目的节点所在的网络可以为有线网络或无线网络。在图1所示的应用场景中,源端节点可以通过该至少一个转发节点向目的节点发送报文。因此,该至少一个转发节点可以称为报文转发路径上的转发节点。本申请实施例对报文转发路径上的转发节点的具体数量不做限定。
上述所说的源端节点和目的节点可以为网络服务器设备,也可以为终端设备。终端设备也可以称为终端Terminal、用户设备(user equipment,UE)、移动台(mobilestation,MS)、移动终端(mobile terminal,MT)等。终端设备可以是手机(mobile phone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、手持式通信设备、手持式计算设备、IoT节点(也可以称为IoT设备,本申请实施例对此不进行区分)等。
上述所说的转发节点可以为专门用于转发报文的转发设备,例如路由器、网关、交换机等。上述转发节点也可以为具备转发功能的数据节点,例如IoT节点。
现有技术中,源端节点在通过该至少一个转发节点向目的节点发送报文时,可以采用IP源路由技术指导报文转发路径上的转发节点转发报文。即,源端节点通过在报文中添加该报文转发路径上的转发节点的地址信息(简称:地址列表),来指定该报文的转发路径。这样,接收到该报文的转发节点可以根据报文所携带的地址列表,对报文进行转发。
下面以采用IPv6协议进行报文传输为例,对现有技术中源端节点如何在报文中添加地址列表进行说明。
具体地,报文中设置有地址列表字段,源端节点可以通过该地址列表字段中添加该报文转发路径上的转发节点的地址信息(即长度为128比特(bit)的IPv6地址),来指定该报文的转发路径。上述地址列表字段可以设置在报文的扩展报文头中。图2为现有的报文的扩展报文头的示意图。如图2所示,该扩展报文头可以包括如下字段:
1、用于指示下一报文头的类型的字段(例如Next Header字段)。
2、用于指示当前报文头的长度的字段(例如Hdr Ext Len字段)。
3、用于指示当前报文头的类型的字段(例如Routing Type字段)。在本示例中,该字段的取值为0。
4、用于指示报文转发路径上剩余节点的数量的字段(例如Segment left字段)。
5、保留字段。
6、用于指示报文转发路径上的转发节点的地址信息的地址列表字段。其中,一个转发节点的地址信息(即IPv6地址)可以称为地址列表字段的一个元素。
由于每个转发节点的地址信息较长(占用128比特),所以,当源端节点指定的转发节点的数量较多时,即地址列表字段的元素较多时,会导致地址列表字段过长,进而导致扩展报文头过长、报文的可用payload(即传输数据的字段)的空间变小,极大限制了地址列表字段中的元素的数量。另外,IEEE 802.15.4协议限制最大帧长为127字节,若IoT网络在二层采用IEEE 802.15.4协议传输报文,则为了避免因为报文超出最大帧长,导致报文分片、增加转发节点的处理负担的情况,需要限制报文的大小,进而限制了报文的地址列表字段中的元素的数量。
通过上述描述可以看出,在采用IPv6协议进行报文传输时,由于每个转发节点的地址信息较长(占用128比特),极大限制了地址列表字段中的元素的数量,即限制了源端节点可指定的转发节点的数量,给网络部署带来一定的困难。
考虑到上述问题,本申请实施例提供了一种报文传输方法,在采用IPv6协议进行报文传输报文、并采用IP源路由技术指导报文转发路径上的转发节点转发报文时,可以对具有不同压缩特点的转发节点的地址信息,采用不同的地址压缩方式进行压缩,以最大化的压缩更多转发节点的地址信息,使其被压缩后的地址信息的长度小于128比特,并通过报文的地址列表字段携带这些被压缩后的地址信息来实现IP源路由。通过这种方式,在报文的地址列表字段长度不变的情况,可以增加地址列表字段中的元素的数量,从而可以提高源端节点可指定的转发节点的数量,进而可以降低网络部署的难度。
可以理解,本申请实施例的方法可以适用于上述图1所示的应用场景。本申请实施例的执行主体可以为压缩节点,该压缩节点可以为源端节点、或、报文转发路径上的某一转发节点。在压缩节点为报文转发路径上的某一转发节点时,在该转发节点之前的节点之间可以不采用IP源路由技术发送该报文。以压缩节点为图1所示的转发节点3为例,则源端节点、转发节点1、转发节点2之间可以不采用IP源路由技术发送该报文,而是采用传统的查找路由表的方式发送该报文,具体可以参见现有技术,对此不再加以赘述。
下面结合图1所示的应用场景为例,通过一些实施例对本申请的技术方案进行详细说明。下面这几个实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图3为本申请实施例提供的一种报文传输方法的流程示意图。本实施例涉及的是压缩节点对报文转发路径上的一个或多个转发节点的地址信息采用不同的地址压缩方式进行压缩的过程。如图3所示,该方法包括:
S101、根据报文转发路径上的转发节点的地址信息,生成报文;报文包括第一指示域,第一指示域用于指示被压缩后的第一元素和被压缩后的第二元素,第一元素和第二元素为不同转发节点的地址信息,第一元素与第二元素所使用的地址压缩方式不同。
S102、发送报文。
具体的,报文转发路径上的转发节点的地址信息可以视为一个地址信息集合。其中,每个转发节点的地址信息作为地址信息集合中的一个元素。可以理解,当压缩节点为源端节点时,地址信息集合可以包括报文转发路径上的所有转发节点的地址信息,当压缩节点为报文转发路径上的某一转发节点时,地址信息集合可以包括该转发节点之后的所有转发节点的地址信息。
压缩节点在根据地址信息集合,生成报文时,可以先依据各个元素的压缩特点,对地址信息集合中的元素进行划分。其中,这里所说的元素的压缩特点例如可以为:与其他元素具有相同前缀、与源端节点的地址信息具有相同前缀、与目的节点的地址信息具有相同前缀、与元素本身对应的转发节点的媒体访问控制(media access control,MAC)地址有部分地址相同等中的任一项。
下面以与其他元素具有相同前缀、与源端节点的地址信息具有相同前缀、与目的节点的地址信息具有相同前缀、与元素本身对应的转发节点的MAC地址有部分地址相同这些压缩特点为例,介绍压缩节点如何依据各个元素的压缩特点,对地址信息集合中的元素进行划分,具体地:
1、压缩节点确定地址信息集合中是否存在具有相同前缀的元素,若存在,将具有相同前缀的元素划分为一个第一子集。其中,每个第一子集包括至少两个元素,第一子集的元素之间相同的前缀为该第一子集的前缀。各第一子集的前缀不同,例如,前缀长度不同,或者前缀长度相同、但前缀内容不同等。
2、压缩节点确定地址信息集合中是否存在与源端节点的地址信息、或者、目的节点的地址信息具有相同前缀的元素。若存在,将这些元素划分为第二子集。可以理解,对于第二子集中与源端节点的地址信息具有相同的前缀的元素,各元素与源端节点的地址信息所具有的相同前缀的长度可以相同也可以不同。相应地,对于第二子集中与目的节点的地址信息具有相同的前缀的元素,各元素与目的节点的地址信息所具有的相同前缀的长度可以相同也可以不同。
3、压缩节点确定地址信息集合中是否存在与元素本身对应的转发节点的MAC地址有部分地址相同,若存在,将这些元素划分为第三子集。可以理解,第三子集中的各元素与该元素本身对应的转发节点的MAC地址相同部分的长度,可以相同也可以不同。
可以理解,当地址信息集合包括多个子集时,各个子集所包括的元素不同。即,各个子集之间无交集。
压缩节点在依据上述压缩特点,对地址信息集合中的元素进行划分之后,可以对地址信息集合中所包括的元素进行压缩,并生成报文,以通过报文的第一指示域指示这些被压缩后的元素。具体可以包括如下几种场景:
第一种场景:地址信息集合包括至少两个第一子集。
在该场景下,针对每个第一子集中的元素的压缩特点(即同一子集中的元素之间具有相同的前缀),压缩节点可以通过去除该元素中与该元素所属的第一子集的前缀相同的部分,来对该元素进行压缩,得到被压缩后的元素(长度小于128比特)。若地址信息集合中存在不属于上述第一子集的元素,说明该元素无法进行压缩,则压缩节点可以对该元素不进行压缩。然后,压缩节点可以根据这些被压缩后的元素、未被压缩的元素,生成报文,以通过报文的第一指示域指示每个被压缩后的元素和每个未被压缩的元素。
以属于不同的第一子集的第一元素和第二元素、以及,不属于任何一个第一子集的第四元素为例,压缩节点对第一元素所使用的地址压缩方式可以为:去除第一元素中与第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素。压缩节点对第二元素所使用的地址压缩方式可以为:去除第二元素中与第二元素所属的第一子集的前缀相同的部分,得到被压缩后的第二元素。压缩节点可以对第四元素不进行压缩。即,针对能够被压缩、且具有不同压缩特点的第一元素和第二元素,压缩节点可以通过去除不同前缀的方式进行压缩(即不同的地址压缩方式)。然后,压缩节点可以根据被压缩后的第一元素、被压缩后的第二元素、未被压缩的第四元素,生成报文,以通过报文的第一指示域指示被压缩后的第一元素、被压缩后的第二元素、未被压缩的第四元素。
第二种场景:地址信息集合包括第二子集和至少一个第一子集。
在该场景下,针对每个第一子集中的元素的压缩特点(即同一子集中的元素之间具有相同的前缀),压缩节点可以通过去除该元素中与该元素所属的第一子集的前缀相同的部分,来对该元素进行压缩,得到被压缩后的元素(长度小于128比特)。针对第二子集中的元素的压缩特点(即与源端节点的地址信息或目的节点的地址信息具有相同的前缀),压缩节点可以通过去除该元素中与源端节点的地址信息或目的节点的地址信息相同的前缀,来对该元素进行压缩,得到被压缩后的元素(长度小于128比特)。若地址信息集合中存在不属于上述任一子集的元素,说明该元素无法进行压缩,则压缩节点可以对该元素不进行压缩。然后,压缩节点可以根据这些被压缩后的元素、未被压缩的元素,生成报文,以通过报文的第一指示域指示每个被压缩后的元素和每个未被压缩的元素。
以属于其中一个第一子集的第一元素、属于第二子集的第二元素、以及,不属于任何一个子集的第四元素为例,压缩节点对第一元素所使用的地址压缩方式可以为:去除第一元素中与第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素。压缩节点对第二元素所使用的地址压缩方式可以为:去除第二元素中与源端节点的地址信息或目的节点的地址信息相同的前缀,得到被压缩后的第二元素。压缩节点可以对第四元素不进行压缩。即,针对能够被压缩、且具有不同压缩特点的第一元素和第二元素,压缩节点可以通过去除不同前缀的方式进行压缩(即不同的地址压缩方式)。然后,压缩节点可以根据被压缩后的第一元素、被压缩后的第二元素、未被压缩的第四元素,生成报文,以通过报文的第一指示域指示被压缩后的第一元素、被压缩后的第二元素、未被压缩的第四元素。
以属于其中一个第一子集的第一元素、属于另一个第一子集的第二元素、属于第二子集的第三元素、以及,不属于任何一个子集的第四元素为例,压缩节点对第一元素所使用的地址压缩方式可以为:去除第一元素中与第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素。压缩节点对第二元素所使用的地址压缩方式可以为:去除第二元素中与第二元素所属的第一子集的前缀相同的部分,得到被压缩后的第二元素。压缩节点对第三元素所使用的地址压缩方式可以为:去除第三元素中与源端节点的地址信息或目的节点的地址信息相同的前缀,得到被压缩后的第三元素。压缩节点可以对第四元素不进行压缩。即,针对能够被压缩、且具有不同压缩特点的第一元素、第二元素和第三元素,压缩节点可以通过去除不同前缀的方式进行压缩(即不同的地址压缩方式)。然后,压缩节点可以根据被压缩后的第一元素、被压缩后的第二元素、被压缩后的第三元素、未被压缩的第四元素,生成报文,以通过报文的第一指示域指示被压缩后的第一元素、被压缩后的第二元素、被压缩后的第三元素、未被压缩的第四元素。
第三种场景:地址信息集合包括第三子集和至少一个第一子集。
在该场景下,针对每个第一子集中的元素的压缩特点(即同一子集中的元素之间具有相同的前缀),压缩节点可以通过去除该元素中与该元素所属的第一子集的前缀相同的部分,来对该元素进行压缩,得到被压缩后的元素(长度小于128比特)。针对第三子集中的元素的压缩特点(即与该元素本身对应的转发节点的MAC地址有部分地址相同),压缩节点可以通过去除该元素中与该元素对应的转发节点的MAC地址相同的部分,来对该元素进行压缩,得到被压缩后的元素(长度小于128比特)。若地址信息集合中存在不属于上述任一子集的元素,说明该元素无法进行压缩,则压缩节点可以对该元素不进行压缩。然后,压缩节点可以根据这些被压缩后的元素、未被压缩的元素,生成报文,以通过报文的第一指示域指示每个被压缩后的元素和每个未被压缩的元素。
以属于其中一个第一子集的第一元素、属于第三子集的第二元素、以及,不属于任何一个子集的第四元素为例,压缩节点对第一元素所使用的地址压缩方式可以为:去除第一元素中与第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素。压缩节点对第二元素所使用的地址压缩方式可以为:去除第二元素中与该第二元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第二元素。压缩节点可以对第四元素不进行压缩。即,针对能够被压缩、且具有不同压缩特点的第一元素和第二元素,压缩节点可以通过去除不同前缀的方式进行压缩(即不同的地址压缩方式)。然后,压缩节点可以根据被压缩后的第一元素、被压缩后的第二元素、未被压缩的第四元素,生成报文,以通过报文的第一指示域指示被压缩后的第一元素、被压缩后的第二元素、未被压缩的第四元素。
以属于其中一个第一子集的第一元素、属于另一个第一子集的第二元素、属于第三子集的第三元素、以及,不属于任何一个子集的第四元素为例,压缩节点对第一元素所使用的地址压缩方式可以为:去除第一元素中与第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素。压缩节点对第二元素所使用的地址压缩方式可以为:去除第二元素中与第二元素所属的第一子集的前缀相同的部分,得到被压缩后的第二元素。压缩节点对第三元素所使用的地址压缩方式可以为:去除第三元素中与该第三元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第三元素。压缩节点可以对第四元素不进行压缩。即,针对能够被压缩、且具有不同压缩特点的第一元素、第二元素和第三元素,压缩节点可以通过去除不同前缀的方式进行压缩(即不同的地址压缩方式)。然后,压缩节点可以根据被压缩后的第一元素、被压缩后的第二元素、被压缩后的第三元素、未被压缩的第四元素,生成报文,以通过报文的第一指示域指示被压缩后的第一元素、被压缩后的第二元素、被压缩后的第三元素、未被压缩的第四元素。
第四种场景:地址信息集合中存在第二子集和第三子集。
在该场景下,针对第二子集中的元素的压缩特点(即与源端节点的地址信息或目的节点的地址信息具有相同的前缀),压缩节点可以通过去除该元素中与源端节点的地址信息或目的节点的地址信息相同的前缀,来对该元素进行压缩,得到被压缩后的元素(长度小于128比特)。针对第三子集中的元素的压缩特点(即与该元素本身对应的转发节点的MAC地址有部分地址相同),压缩节点可以通过去除该元素中与该元素对应的转发节点的MAC地址相同的部分,来对该元素进行压缩,得到被压缩后的元素(长度小于128比特)。若地址信息集合中存在不属于上述任一子集的元素,说明该元素无法进行压缩,则压缩节点可以对该元素不进行压缩。然后,压缩节点可以根据这些被压缩后的元素、未被压缩的元素,生成报文,以通过报文的第一指示域指示每个被压缩后的元素和每个未被压缩的元素。
以属于第二子集的第一元素、属于第三子集的第二元素、以及,不属于任何一个子集的第四元素为例,压缩节点对第一元素所使用的地址压缩方式可以为:去除第一元素中与源端节点的地址信息或目的节点的地址信息相同的前缀,得到被压缩后的第一元素。压缩节点对第二元素所使用的地址压缩方式可以为:去除第二元素中与该第二元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第二元素。压缩节点可以对第四元素不进行压缩。即,针对能够被压缩、且具有不同压缩特点的第一元素和第二元素,压缩节点可以通过去除不同前缀的方式进行压缩(即不同的地址压缩方式)。然后,压缩节点可以根据被压缩后的第一元素、被压缩后的第二元素、未被压缩的第四元素,生成报文,以通过报文的第一指示域指示被压缩后的第一元素、被压缩后的第二元素、未被压缩的第四元素。
第五种场景:地址信息集合包括第二子集、第三子集、至少一个第一子集。
在该场景下,针对每个第一子集中的元素的压缩特点(即同一子集中的元素之间具有相同的前缀),压缩节点可以通过去除该元素中与该元素所属的第一子集的前缀相同的部分,来对该元素进行压缩,得到被压缩后的元素(长度小于128比特)。
针对第二子集中的元素的压缩特点(即与源端节点的地址信息或目的节点的地址信息具有相同的前缀),压缩节点可以通过去除该元素中与源端节点的地址信息或目的节点的地址信息相同的前缀,来对该元素进行压缩,得到被压缩后的元素(长度小于128比特)。
针对第三子集中的元素的压缩特点(即与该元素本身对应的转发节点的MAC地址有部分地址相同),压缩节点可以通过去除该元素中与该元素对应的转发节点的MAC地址相同的部分,来对该元素进行压缩,得到被压缩后的元素(长度小于128比特)。
若地址信息集合中存在不属于上述任一子集的元素,说明该元素无法进行压缩,则压缩节点可以对该元素不进行压缩。然后,压缩节点可以根据这些被压缩后的元素、未被压缩的元素,生成报文,以通过报文的第一指示域指示每个被压缩后的元素和每个未被压缩的元素。
以第一元素、第二元素、第三元素和第四元素为例,当第一元素属于其中一个第一子集、第二元素属于第二子集、第三元素属于第三子集、第四元素不属于任何一个子集时,压缩节点对第一元素所使用的地址压缩方式可以为:去除第一元素中与第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素。压缩节点对第二元素所使用的地址压缩方式可以为:去除第二元素中与源端节点的地址信息或目的节点的地址信息相同的前缀,得到被压缩后的第二元素。压缩节点对第三元素所使用的地址压缩方式可以为:去除第三元素中与该第三元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第三元素。压缩节点可以对第四元素不进行压缩。即,针对能够被压缩、且具有不同压缩特点的第一元素、第二元素和第三元素,压缩节点可以通过去除不同前缀的方式进行压缩(即不同的地址压缩方式)。然后,压缩节点可以根据被压缩后的第一元素、被压缩后的第二元素、被压缩后的第三元素、未被压缩的第四元素,生成报文,以通过报文的第一指示域指示被压缩后的第一元素、被压缩后的第二元素、被压缩后的第三元素、未被压缩的第四元素。
第六种场景:地址信息集合包括第二子集。
在该场景下,针对第二子集中的元素的压缩特点(即与源端节点的地址信息或目的节点的地址信息具有相同的前缀),压缩节点可以通过去除该元素中与源端节点的地址信息或目的节点的地址信息相同的前缀,来对该元素进行压缩,得到被压缩后的元素(长度小于128比特)。若地址信息集合中存在不属于上述第二子集的元素,说明该元素无法进行压缩,则压缩节点可以对该元素不进行压缩。然后,压缩节点可以根据这些被压缩后的元素、未被压缩的元素,生成报文,以通过报文的第一指示域指示每个被压缩后的元素和每个未被压缩的元素。
以属于第二子集的第一元素和第二元素、以及,不属于第二子集的第四元素为例,其中,第一元素与源端节点的地址信息具有相同的前缀、第二元素与目的节点的地址信息具有相同的前缀,则压缩节点对第一元素所使用的地址压缩方式可以为:去除第一元素中与源端节点的地址信息相同的前缀,得到被压缩后的第一元素。压缩节点对第二元素所使用的地址压缩方式可以为:去除第二元素中与目的节点的地址信息相同的前缀,得到被压缩后的第二元素。压缩节点可以对第四元素不进行压缩。即,针对能够被压缩、且具有不同压缩特点的第一元素和第二元素,压缩节点可以通过去除不同前缀的方式进行压缩(即不同的地址压缩方式)。然后,压缩节点可以根据被压缩后的第一元素、被压缩后的第二元素、未被压缩的第四元素,生成报文,以通过报文的第一指示域指示被压缩后的第一元素、被压缩后的第二元素、未被压缩的第四元素。
第七种场景:地址信息集合包括第三子集。
在该场景下,针对第三子集中的元素的压缩特点(即与该元素本身对应的转发节点的MAC地址有部分地址相同),压缩节点可以通过去除该元素中与该元素对应的转发节点的MAC地址相同的部分,来对该元素进行压缩,得到被压缩后的元素(长度小于128比特)。若地址信息集合中存在不属于上述第三子集的元素,说明该元素无法进行压缩,则压缩节点可以对该元素不进行压缩。然后,压缩节点可以根据这些被压缩后的元素、未被压缩的元素,生成报文,以通过报文的第一指示域指示每个被压缩后的元素和每个未被压缩的元素。
以属于第三子集的第一元素和第二元素、以及,不属于第三子集的第四元素为例,压缩节点对第一元素所使用的地址压缩方式可以为:去除第一元素中与该第一元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第一元素。压缩节点对第二元素所使用的地址压缩方式可以为:去除第二元素中与该第二元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第二元素。压缩节点可以对第四元素不进行压缩。即,针对能够被压缩、且具有不同压缩特点的第一元素和第二元素,压缩节点可以通过去除不同前缀的方式进行压缩(即不同的地址压缩方式)。然后,压缩节点可以根据被压缩后的第一元素、被压缩后的第二元素、未被压缩的第四元素,生成报文,以通过报文的第一指示域指示被压缩后的第一元素、被压缩后的第二元素、未被压缩的第四元素。
通过上述列举的各个场景可以看出,在本申请实施例中,压缩节点可以针对具有不同压缩特点的元素,使用不同的地址压缩方式进行压缩,从而可以更大化的压缩每个元素的长度,以及,更大化的压缩更多的元素。这样,压缩节点在通过报文的第一指示域指示这些被压缩后的元素时,可以在第一指示域长度一定的情况下,通过第一指示域指示更多的元素,从而可以提高源端节点可指定的转发节点的数量,进而可以降低网络部署的难度。
需要说明的是,上述所列举的元素的压缩特点、对地址信息集合中元素的划分方式、以及所列举的场景仅是一种示例,本申请实施例对此并不限定,具体可以基于地址信息集合中元素的压缩特点确定。
可选的,在一些实施例中,上述报文转发路径上还存在一个或多个转发节点为非IP地址类的转发节点,即,在向该转发节点发送报文时,不是通过该转发节点的地址信息将报文发送给该转发节点,而是通过该转发节点的其他标识信息将报文发送给该转发节点。例如,标签信息、设备身份标识号(identification,ID)等。针对这些转发节点,上述压缩节点可以通过第一指示域指示这些非IP地址类的转发节点的标识,来指导报文的转发路径。
继续以图1所示的场景为例,假定转发节点1、转发节点2、转发节点3、转发节点6至转发节点8为非多协议标签交换(multi-protocol label switching,MPLS)域的节点,这些节点均为IP地址类的转发节点。即,节点之间以节点的地址信息作为标识进行通信。转发节点4和转发节点5为MPLS域的节点,这些节点以节点的MPLS标签作为标识进行通信。
以压缩节点为源端节点为例,则压缩节点可以通过报文的第一指示域指示转发节点1、转发节点2、转发节点3、转发节点6至转发节点8的地址信息,并通过第一指示域指示转发节点4的标签信息和转发节点5的标签信息,来指导报文的转发路径。
通过上述列举的场景可以看出,在本申请实施例中,在报文转发路径上存在非IP地址类的转发节点和IP地址类的转发节点时,压缩节点可以针对具有不同压缩特点的IP地址类的转发节点的地址信息,使用不同的地址压缩方式进行压缩,从而可以更大化的压缩每个IP地址类的转发节点的地址信息的长度,以及,更大化的压缩更多的IP地址类的转发节点的地址信息。这样,压缩节点可以在第一指示域长度一定的情况下,通过第一指示域指示更多的元素,从而可以提高源端节点可指定的转发节点的数量,进而可以降低网络部署的难度。
如前述实施例所说,压缩节点可以针对具有不同压缩特点的元素,使用不同的地址压缩方式进行压缩,因此,在本申请实施例的一种实现方式中,上述报文还可以包括第二指示域。其中,第二指示域用于指示第一指示域所指示的元素所使用的地址压缩方式。
其中,本申请实施例不限定上述第二指示域指示第一指示域所指示的元素所使用的地址压缩方式的实现方式。例如,第二指示域可以包括至少一个第一字段,每个第一字段对应一种地址压缩方式,每个第一字段中的一个比特位对应一个第一指示域所指示的一个元素,当比特位为第一值时,指示对比特位对应的元素使用第一字段对应的地址压缩方式,当比特位为第二值时,指示对比特位对应的元素未使用第一字段对应的地址压缩方式。当第一值为0时,第二值可以为1,或者,第一值为1时,第二值为0。
或者,第二指示域包括第二字段和N个第一字段,N为大于或等于1的整数。其中,第二字段,用于指示第一指示域所指示的元素总计使用N种地址压缩方式。每个第一字段对应N种地址压缩方式中的一种地址压缩方式,每个第一字段中的一个比特位对应一个第一指示域所指示的一个元素。当比特位为第一值时,指示对比特位对应的元素使用第一字段对应的地址压缩方式,当比特位为第二值时,指示对比特位对应的元素未使用第一字段对应的地址压缩方式。
或者,报文包括与第一指示域所指示的每个元素对应的第二指示域,用于指示对对应的元素所使用的地址压缩方式。
因此,接收到报文的转发节点通过第二指示域可以获知下一转发节点的地址信息(即元素)所使用的地址压缩方式,从而使得接收到报文的转发节点可以基于下一转发节点的地址信息(即元素)所使用的地址压缩方式,以及,第一指示域所指示的下一转发节点被压缩后的地址信息(即被压缩后的元素),还原该下一转发节点完整的地址信息。这样,接收到报文的转发节点可以通过该下一转发节点的地址信息,将报文转发给下一转发节点。
例如,当上述下一转发节点的地址信息(即元素)所使用的地址压缩方式为,去除下一转发节点的地址信息中与源端节点的地址信息或目的节点的地址信息相同的前缀,得到下一转发节点被压缩后的地址信息(即被压缩后的元素)时,接收到报文的转发节点可以从报文携带的源端节点的地址信息或目的节点的地址信息中提取前缀,并将该前缀添加至第一指示域所指示的下一转发节点被压缩后的地址信息的前面,以还原出下一转发节点的地址信息。
再例如,当上述下一转发节点的地址信息(即元素)所使用的地址压缩方式为,去除下一转发节点的地址信息中与该下一转发节点的MAC地址相同的部分,得到下一转发节点被压缩后的地址信息(即被压缩后的元素)时,接收到报文的转发节点可以使用该下一转发节点的MAC地址,将第一指示域所指示的下一转发节点被压缩后的地址信息补齐至128比特,以还原出下一转发节点的地址信息。
可选的,在一些实施例中,当报文转发路径上还存在一个或多个非IP地址类的转发节点时,上述第二指示域还用于指示第一指示域所指示的元素是否为非IP地址类的转发节点的标识。
其中,本申请实施例不限定上述第二指示域指示第一指示域所指示的元素是否为非IP地址类的转发节点的标识的实现方式。例如,可以在第二指示域中新增一个第一字段,每个第一字段中的一个比特位对应一个第一指示域所指示的一个元素,当比特位为第一值时,指示对比特位对应的元素为非IP地址类的转发节点的标识,当比特位为第二值时,指示对比特位对应的元素为IP地址类的转发节点的标识。或者,报文包括与第一指示域所指示的每个元素对应的第二指示域,用于指示对应的元素所使用的地址压缩方式,或,用于指示对应的元素是否为非IP地址类的转发节点的标识。
因此,当下一转发节点为非IP地址类的转发节点时,接收到报文的转发节点通过第二指示域可以获知下一转发节点为非IP地址类的转发节点,从而使得接收到报文的转发节点可以第一指示域所指示的下一转发节点的标识,将报文转发给下一转发节点。
当上述第一指示域所指示的被压缩的元素为第一子集中的元素时,上述报文中还可以包括第三指示域,用于指示每个第一子集的前缀信息。通过这种方式,可以使接收到该报文的转发节点,可以基于下一转发节点的地址信息(即元素)所使用的地址压缩方式,将第三指示域所指示的下一转发节点的地址信息所属的第一子集的前缀信息,添加到第一指示域所指示的下一转发节点被压缩后的地址信息(即被压缩后的元素)的前面,还原出下一转发节点的地址信息。
其中,本申请实施例不限定上述第三指示域指示每个第一子集的前缀信息的方式。例如,上述第三指示域包括至少一个第三字段,每个第三字段对应一个第一子集的前缀,用于指示对应的第一子集的前缀。在另一实现方式中,每个第三字段可以包括第一部分和第二部分,其中,第三字段的第一部分用于指示对应的第一子集的前缀的长度,第三字段的第二部分,用于指示对应的第一子集的前缀。通过第一部分指示第一子集的前缀的长度,可以提高解析第一子集的前缀的效率。
在该实现方式下,上述第一指示域可以包括至少一个第四字段;每个第四字段对应第一指示域所指示的一个元素;
在第四字段对应的元素属于第一子集时,第四字段包括第一部分、第二部分和第三部分,第四字段的第一部分用于指示元素所属的第一子集的前缀对应的第三字段,第四字段的第二部分用于指示元素被压缩后的长度,第四字段的第三部分用于指示被压缩后的元素;
在第四字段对应的元素属于第二子集时,第四字段包括第一部分、第二部分和第三部分,第四字段的第一部分用于指示与第二元素具有相同前缀的源端节点的地址信息的标识或者与第二元素具有相同前缀的目的节点的地址信息的标识,第四字段的第二部分用于指示元素被压缩后的长度,第四字段的第三部分用于指示被压缩后的元素;
在第四字段对应的元素与元素对应的转发节点的媒体访问控制MAC地址有部分地址相同时,第四字段包括第一部分和第二部分,第四字段的第一部分用于指示元素被压缩后的长度,第四字段的第二部分用于指示被压缩后的元素;
在第四字段对应的元素为非IP地址类的转发节点的标识时,第四字段包括第一部分、第二部分和第三部分,第四字段的第一部分用于指示元素的类型(例如标签、ID等),第四字段的第二部分用于指示元素的长度,第四字段的第三部分用于指示元素。
可以理解,上述第四字段中也可以不包括用于指示元素被压缩后的长度的部分,具体可以根据使用需求确定。
在另一实现方式中,上述报文还可以包括如下指示域中的一个或多个指示域:
第四指示域,用于指示第三指示域在报文中的起始位置。
第五指示域,用于指示下一元素在第一指示域中的起始位置,下一元素对应的节点为报文转发路径上下一个转发或接收报文的节点。通过第四指示域和/或第五指示域,可以提升接收到该报文的转发节点从报文中解析出下一转发节点的地址信息的效率。
第六指示域,用于指示报文的类型,报文的类型用于标识第一指示域所指示的元素包括被压缩的元素。通过第六指示域,可以使接收到该报文的转发节点获知第一指示域存在被压缩的元素,从而使得转发节点可以基于存在被压缩的元素的解析方式解析该报文的方式,从而提高了报文的解析效率。
上述各指示域可以位于报文的数据域中,也可以位于报文的某一报文头中,还可以一部分指示域位于报文的数据域中,一部分指示域位于报文的报文头中。
下面以各指示域位于报文中现有的用于实现IP源路由的扩展报文头为例,对该报文头的格式进行说明和介绍,具体可以包括如下几种格式:
第一种格式:图4为本申请实施例提供的一种报文头的格式。如图4所示,该报文头可以包括如下字段:
1、用于指示下一报文头的类型的字段(例如Next Header字段)。
2、用于指示当前报文头的长度的字段(例如Hdr Ext Len字段)。
3、用于指示报文转发路径上剩余节点的数量的字段(例如Segment left字段)。
4、用于指示第一指示域所指示的元素所使用的地址压缩方式的第二指示域。在本示例中,第二指示域包括第二字段和N个第一字段。其中,N的取值具体与压缩节点在发送该报文时,对该报文转发路径上的转发节点的地址信息所使用的地址压缩方式确定。例如,压缩节点使用了如下地址压缩方式:通过去除该元素中与该元素所属的第一子集的前缀相同的部分,来对元素进行压缩的地址压缩方式,以及,通过去除该元素中与源端节点的地址信息或目的节点的地址信息相同的前缀,来对该元素进行压缩的地址压缩方式。则上述第二指示域可以包括两个第一字段。即N等于2。图4示出的是以N等于2为例的示意图。
5、用于指示每个第一子集的前缀信息的第三指示域。
6、用于指示每个被压缩后的元素和每个未被压缩的元素的第一指示域。其中,一个转发节点的地址信息(即IPv6地址)可以称为地址列表字段的一个元素。
可选的,该报文头还可以包括如下至少一个字段:
7、用于指示第三指示域在报文中的起始位置的第四指示域。
8、用于指示下一元素在第一指示域中的起始位置的第五指示域。
9、用于指示报文的类型的第六指示域。在本申请实施例中,该字段的取值例如为100。
具体实现时,上述第六指示域例如可以为原扩展报文头的Routing Type字段。原扩展报文头的保留字段可以被拆分成如下几个指示域中的一个或多个:第四指示域、第五指示域、第二指示域。原扩展报文头的地址列表字段可以被拆分成如下几部分:第三指示域、第一指示域、目的节点的地址信息。可以理解,上述图4仅是一种示意,本申请实施例并不限定各个指示域在报文头中的位置,以及,各个指示域的长度(即占用的比特数)。
第二种格式:图5为本申请实施例提供的另一种报文头的格式。如图5所示,该报文头与图4所示的报文头的区别在于:图5所示的报文头包括与第一指示域所指示的每个元素对应的第二指示域。即报文头所包括的第二指示域的数量与元素的数量一一对应,以指示对应的元素所使用的地址压缩方式。关于报文头所包括的其他字段和/或指示域,可以参见图4的描述,在此不再一一赘述。
则在该实现方式下,原扩展报文头的保留字段可以被拆分成如下几个指示域中的一个或多个:第四指示域、第五指示域。原扩展报文头的地址列表字段可以被拆分成如下几部分:第三指示域、第二指示域、第一指示域、目的节点的地址信息。可以理解,上述图5仅是一种示意,本申请实施例并不限定各个指示域在报文头中的位置,以及,各个指示域的长度(即占用的比特数)。
可选的,在一种实现方式中,上述第二指示域可以包括如下字段:用于指示地址压缩方式的字段、至少一个用于指示元素对应的功能的字段(该字段所指示的具体功能可以根据实际需要设置)。
第三种格式:图6为本申请实施例提供的又一种报文头的格式。如图6所示,该报文头与图4所示的报文头的区别在于:图6所示的报文头中的第二指示域可以包括至少一个第一字段。其中,第一字段的数量与压缩节点所能够支持的地址压缩方式确定。例如,压缩节点支持通过去除该元素中与该元素所属的第一子集的前缀相同的部分,来对元素进行压缩的地址压缩方式,以及,通过去除该元素中与源端节点的地址信息或目的节点的地址信息相同的前缀,来对该元素进行压缩的地址压缩方式,以及,通过去除元素中与该元素对应的转发节点的MAC地址相同的部分,来对该元素进行压缩的地址压缩方式。则上述第二指示域可以包括三个第一字段。即X等于3。
也就是说,在图6所示的报文头格式中,即便压缩节点对该报文转发路径上的转发节点的地址信息并未使用某一种地址压缩方式,但是该地址压缩方式对应的第一字段仍然存在于该报文头中。而在图4所示的报文头格式中,若压缩节点对该报文转发路径上的转发节点的地址信息未使用某一种地址压缩方式,则该地址压缩方式对应的第一字段可以不存在于该报文头中。
关于报文头所包括的其他字段和/或指示域,可以参见图6的描述,在此不再一一赘述。
则在该实现方式下,原扩展报文头的保留字段可以被拆分成如下几个指示域中的一个或多个:第四指示域、第五指示域。原扩展报文头的地址列表字段可以被拆分成如下几部分:第三指示域、第二指示域、第一指示域、目的节点的地址信息。可以理解,上述图5仅是一种示意,本申请实施例并不限定各个指示域在报文头中的位置,以及,各个指示域的长度(即占用的比特数)。
下面以图4所示的报文头格式为例,通过两个具体的示例对本申请实施例提供的报文传输方法进行详细说明。在下述示例中,源端节点S为压缩节点,即,源端节点S采用IP源路由技术指导报文转发路径上的转发节点转发报文。该场景中的转发节点支持如下两种地址压缩方式:
地址压缩方式1、通过去除该元素中与该元素所属的第一子集的前缀相同的部分,来对元素进行压缩的地址压缩方式。
地址压缩方式2、通过去除该元素中与源端节点的地址信息或目的节点的地址信息相同的前缀,来对该元素进行压缩的地址压缩方式。
示例1、
图7为本申请实施例提供的一种报文传输场景示意图。如图7所示,本申请实施例的报文传输场景为采用IPv6协议进行报文传输的广域网路由场景。该场景包括:源端节点S、目的节点D,以及,8个转发节点。图7中两个节点之间的连线为虚线时,说明该两个节点之间不是直连,两个节点之间的连线为实线时,说明该两个节点可以是直连,也可以不是直连。
每个节点的地址信息(即采用16进制表示的IPv6地址)如下述表1所示:
表1
Figure BDA0002905097650000291
通过表1可以获知如下信息:
1、转发节点1的地址信息至转发节点3的地址信息,以及,源端节点S的地址信息,属于同一自治域(即AS1)内的地址信息。由于同一自治域的节点的地址信息具有相同的前缀,可以使用地址压缩方式2对转发节点1至转发节点3的地址信息进行压缩,因此,转发节点1的地址信息至转发节点3的地址信息的压缩特点为:与源端节点S的地址信息具有相同的前缀。
2、转发节点4的地址信息和转发节点5的地址信息属于同一自治域(即AS2)内的地址信息,且与源端节点S的地址信息和目的节点D的地址信息均不属于同一自治域。由于同一自治域的节点的地址信息具有相同的前缀,可以使用地址压缩方式1对转发节点4至转发节点5的地址信息进行压缩,因此,转发节点4的地址信息和转发节点5的地址信息的压缩特点为:转发节点4的地址信息和转发节点5的地址信息之间具有相同的前缀。
3、转发节点6的地址信息单独属于一个自治域(即AS3)。即,转发节点6的地址信息与源端节点S的地址信息和目的节点D的地址信息均不属于同一自治域,与其他转发节点的地址信息也不属于同一自治域,无法对转发节点6的地址信息进行压缩。因此,转发节点6的地址信息无压缩特点。
4、转发节点7的地址信息和转发节点8的地址信息,以及,目的节点D的地址信息,属于同一自治域(即AS4)内的地址信息。由于同一自治域的节点的地址信息具有相同的前缀,可以使用地址压缩方式2对转发节点7至转发节点8的地址信息进行压缩,因此,转发节点7的地址信息和转发节点8的地址信息的压缩特点为:与目的节点的地址信息具有相同的前缀。
在本示例中,当源端节点S获取到报文转发路径上的转发节点的地址信息后,可以将报文转发路径上的转发节点的地址信息作为一个地址信息集合,并基于各个元素的压缩特点,对该地址信息集合划分子集,具体可以如下述表2所示:
表2
Figure BDA0002905097650000301
在表2所示的地址信息集合的划分方式下,第一子集的前缀为0xFC00:0000:0000:5678:1234:12 34:12,一共104个比特。可以理解,上述元素6与元素4和元素5也具有相同的前缀0xFC00::。因此,也可以将元素4、元素5和元素6划分为一个第一子集。具体如何划分地址信息集合,可以由压缩节点根据实际需求确定。另外,为了便于区分十六进制、十进制和二进制,下述申请文件中添加0b前缀的数据为二进制数据,添加0x前缀的数据为十六进制数据,未添加前缀的数据为十进制数据。需要说明的是,上述前缀仅是为了标明数据的进制。
源端节点在对地址信息集合中的元素进行划分后,可以对地址信息集合中的元素逐个进行压缩,具体地:
元素1:元素1与源端节点的地址信息具有相同的前缀,因此,源端节点可以去除元素1中与源端节点的地址信息相同的前缀“0xFC00::ABCD:1234:12FF:FE”,得到被压缩后的元素1“0x0F1234”。
元素2:元素2与源端节点的地址信息具有相同的前缀,因此,源端节点可以去除元素2中与源端节点的地址信息相同的前缀“0xFC00::ABCD:1234:12FF:FE”,得到被压缩后的元素2“0x34:AB12”。
元素3:元素3与源端节点的地址信息具有相同的前缀,因此,源端节点可以去除元素3中与源端节点的地址信息相同的前缀“0xFC00::ABCD:1234:12FF:FE”,得到被压缩后的元素3“0xCD:ABCD”。
元素4:元素4与元素5具有相同的前缀,该前缀即为第一子集的前缀“0xFC00:0000:0000:5678:1234:1234:12”。因此,源端节点可以去除元素4中与第一子集的前缀相同的部分,得到被压缩后的元素4“0x34:1234”。
元素5:元素4与元素5具有相同的前缀,该前缀即为第一子集的前缀“0xFC00:0000:0000:5678:1234:1234:12”。因此,源端节点可以去除元素5中与第一子集的前缀相同的部分,得到被压缩后的元素5“0x56:AB12”。
元素7:元素7与目的节点的地址信息具有相同的前缀,因此,源端节点可以去除元素7中与目的节点的地址信息相同的前缀“0xFC00::4567:1234:12FF:FE”,得到被压缩后的元素3“0x14:1235”。
元素8:元素8与目的节点的地址信息具有相同的前缀,因此,源端节点可以去除元素8中与目的节点的地址信息相同的前缀“0xFC00::4567:1234:12FF:FE”,得到被压缩后的元素8“0x1A:ABEE”。
然后,源端节点可以基于上述每个被压缩的元素,以及,未被压缩的元素6,生成报文,并按照图4所示的报文头的格式封装该报文。图8为本申请实施例提供的又一种报文头的示意图。如图8所示,封装后的报文的报文头中与本申请实施例相关的字段可以如下所示:
1、用于指示报文转发路径上剩余节点的数量的字段(例如Segment left字段):由于当前报文转发路径上剩余8个转发节点,因此,该字段的取值可以为8。
2、用于指示第一指示域所指示的元素所使用的地址压缩方式的第二指示域:
由于源端节点支持两种地址压缩方式,因此,报文头的第二指示域的第二字段可以占用两个比特,以通过该两个比特来指示源端节点在此次报文中使用了几种地址压缩方式。对应到本申请实施例中,源端节点对第一子集中的元素可以使用地址压缩方式1,对第二子集中的元素使用地址压缩方式2,即,一共可以使用两种地址压缩方式,因此,上述第二指示域的第二字段可以为11。
上述第二指示域可以包括两个第一字段,一个第一字段对应地址压缩方式1、一个第一字段对应地址压缩方式2。每个第一字段中的一个比特位对应一个第一指示域所指示的一个元素。在本示例中一共有8个元素,因此,每个第一字段有8个比特,每个比特对应一个元素,用于指示该元素是否使用该第一字段对应的地址压缩方式。
以比特为1用于指示该比特对应的元素使用该第一字段对应的地址压缩方式、比特为0用于指示该比特对应的元素未使用该第一字段对应的地址压缩方式为例,则对应压缩方式1的第一字段可以为:0b00011000、对应压缩方式2的第一字段可以为:0b11100011。每个第一字段的最高位表示转发路径上的第一个转发节点,依次类推。
3、用于指示每个第一子集的前缀信息的第三指示域:
由于本示例仅有一个第一子集的前缀,因此,第三指示域可以包括一个第三字段。该第三字段的第一部分用于指示第一子集的前缀的长度,第三字段的第二部分,用于指示对应的第一子集的前缀。其中,第三字段的第一部分的长度具体可以根据需求设定。
在本示例中,第一子集的前缀为:“0xFC00:0000:0000:5678:1234:1234:12”,一共104个比特。以第三字段的第一部分的长度为8个比特为例,则第三字段的第一部分的取值可以为:“0b11100111”。第三字段的第二部分为“0xFC00:0000:0000:5678:1234:1234:12”(需要说明的是,由于二进制数据太长,因此,为了便于理解,在此以十六进制来表示某些字段的部分,但是本领域技术人员可以理解的是,实际传输时传输的是该十六进制数对应的二进制数据,下述申请文件中出现十六进制的原因相同,不再一一赘述)。
综上,第三字段的取值为“0b11100111,0xFC00:0000:0000:5678:1234:1234:12”。
可以理解,当存在多个第一子集时,本申请实施例不限定各第一子集的前缀对应的第三字段在第三指示域中的顺序。
4、用于指示每个被压缩后的元素和每个未被压缩的元素的第一指示域:
以第一指示域包括至少一个第四字段,每个第四字段对应第一指示域所指示的一个元素为例,如前述所说,在第四字段对应的元素属于第一子集时,第四字段包括第一部分、第二部分和第三部分,第四字段的第一部分用于指示元素所属的第一子集的前缀对应的第三字段,第四字段的第二部分用于指示元素被压缩后的长度,第四字段的第三部分用于指示被压缩后的元素;在第四字段对应的元素属于第二子集时,第四字段包括第一部分、第二部分和第三部分,第四字段的第一部分用于指示与第二元素具有相同前缀的源端节点的地址信息的标识或者与第二元素具有相同前缀的目的节点的地址信息的标识,第四字段的第二部分用于指示元素被压缩后的长度,第四字段的第三部分用于指示被压缩后的元素。
因此,源端节点可以按照各个元素对应的转发节点在转发路径上的顺序在第一指示域中依次写入各个元素。以源端节点的地址信息的标识为0、目的节点的地址信息的标识为1、第四字段的第二部分通过7比特指示元素被压缩后的长度为例,具体地,
第一指示域的第一个第四字段对应元素1,第一个第四字段可以包括第一部分、第二部分和第三部分,元素1与源端节点的地址信息具有相同的前缀,因此,第一个第四字段的第一部分的取值为0b0。被压缩后的元素1的长度为24比特,因此,第一个第四字段的第二部分的取值为“0b0011000”。被压缩后的元素1为“0x0F:1234”,因此,第一个第四字段的第三部分的取值为“0x0F:1234”。综上,第一个第四字段的取值为“0b0,0b0011000,0x0F:1234”。
第一指示域的第二个第四字段对应元素2,第二个第四字段可以包括第一部分、第二部分和第三部分,元素2与源端节点的地址信息具有相同的前缀,因此,第二个第四字段的第一部分的取值为0b0。被压缩后的元素2的长度为24比特,因此,第二个第四字段的第二部分的取值为“0b0011000”。被压缩后的元素2为“0x34:AB12”,因此,第二个第四字段的第三部分的取值为“0x34:AB12”。综上,第二个第四字段的取值为“0b0,0b0011000,0x34:AB12”。
第一指示域的第三个第四字段对应元素3,第三个第四字段可以包括第一部分、第二部分和第三部分,元素3与源端节点的地址信息具有相同的前缀,因此,第三个第四字段的第一部分的取值为0b0。被压缩后的元素3的长度为24比特,因此,第三个第四字段的第二部分的取值为“0b0011000”。被压缩后的元素3为“0xCD:ABCD”,因此,第三个第四字段的第三部分的取值为“0xCD:ABCD”。综上,第三个第四字段的取值为“0b0,0b0011000,0xCD:ABCD”。
第一指示域的第四个第四字段对应元素4,第四个第四字段可以包括第一部分、第二部分和第三部分,元素4对应第三指示域指示的第一个第一子集的前缀(在本示例中也是唯一一个),因此,第四个第四字段的第一部分的取值为0b001(第一部分具体占用的比特数可以根据实际使用需求设定)。被压缩后的元素4的长度为24比特,因此,第四个第四字段的第二部分的取值为“0b0011000”。被压缩后的元素4为“0x34:1234”,因此,第四个第四字段的第三部分的取值为“0x34:1234”。综上,第四个第四字段的取值为“0b001,0b0011000,0x34:1234”。
第一指示域的第五个第四字段对应元素5,第五个第四字段可以包括第一部分、第二部分和第三部分,元素5对应第三指示域指示的第一个第一子集的前缀(在本示例中也是唯一一个),因此,第五个第四字段的第一部分的取值为0b001(第一部分具体占用的比特数可以根据实际使用需求设定)。被压缩后的元素5的长度为24比特,因此,第五个第四字段的第二部分的取值为“0b0011000”。被压缩后的元素4为“0x34:1234”,因此,第五个第四字段的第三部分的取值为“0x34:AB12”。综上,第五个第四字段的取值为“0b001,0b0011000,0x34:AB12”。
第一指示域的第六个第四字段对应元素6,由于元素6未被压缩,因此,第六个第四字段的取值为元素6,即“0xFC00::AAAA:1234:1234:1278:AB12”。
第一指示域的第七个第四字段对应元素7,第七个第四字段可以包括第一部分、第二部分和第三部分,元素7与目的节点的地址信息具有相同的前缀,因此,第七个第四字段的第一部分的取值为0b1。被压缩后的元素7的长度为24比特,因此,第七个第四字段的第二部分的取值为“0b0011000”。被压缩后的元素7为“0x14:1234”,因此,第七个第四字段的第三部分的取值为“0x14:1234”。综上,第七个第四字段的取值为“0b1,0b0011000,0x14:1234”。
第一指示域的第八个第四字段对应元素8,第八个第四字段可以包括第一部分、第二部分和第三部分,元素8与目的节点的地址信息具有相同的前缀,因此,第八个第四字段的第一部分的取值为0b1。被压缩后的元素8的长度为24比特,因此,第八个第四字段的第二部分的取值为“0b0011000”。被压缩后的元素8为“0x1A:ABEE”,因此,第八个第四字段的第三部分的取值为“0x1A:ABEE”。综上,第八个第四字段的取值为“0b1,0b0011000,0x1A:ABEE”。
在本示例中,第一指示域还可以用于指示元素9,该元素9为目的节点的地址信息。即,第一指示域的第九个第四字段对应元素9,,由于元素9未被压缩,因此,第九个第四字段的取值为元素9,即“0xFC00::4567:1234:12FF:FE1A:ABEF”。
5、用于指示第三指示域在报文中的起始位置的第四指示域,该指示域的取值为第三指示域在报文中的起始位置。
6、用于指示下一元素在第一指示域中的起始位置的第五指示域,该指示域的初始取值为元素2对应的第四字段在第一指示域中的位置。
7、用于指示报文的类型的第六指示域。在本示例中,该指示域的取值例如为100。
可以理解,上述报文头中十六进制数在实际传输时,会传输该十六进制数对应的二进制数。另外,上述出现逗号和/或冒号的字段仅是为了标记该字段的不同部分,实际传输和封装时不会出现逗号和/或冒号,以及标识该数据进制的前缀。
通过上述描述可以看出,源端节点可以针对具有不同压缩特点的元素,使用不同的地址压缩方式进行压缩,从而可以更大化的压缩每个元素的长度,以及,更大化的压缩更多的元素。这样,源端节点在通过报文的第一指示域指示这些被压缩后的元素时,可以使用较少的比特指示这些元素,从而可以增加源端节点可指定的转发节点的数量,进而可以降低网络部署的难度。
上述源端节点在将上述报文封装之后,可以根据转发节点1的地址信息,将上述报文发送给转发节点1。
转发节点1在接收到该报文之后,可以执行如下步骤:
步骤1、根据用于指示报文转发路径上剩余节点的数量的字段,确定当前报文转发路径剩余8个转发节点。即,包括转发节点1一共有8个转发节点。
步骤2、通过解析第六指示域,确定第一指示域所指示的元素包括被压缩的元素,需要读取第二指示域。
步骤3、根据第二指示域的第二字段,读取每个第一字段,确定源端节点对转发节点2的地址信息所使用的地址压缩方式。例如,可以先读取地址压缩方式1对应的第一字段中第2个比特位的取值,并判断该取值是否为0b1。若是,则表示源端节点对转发节点2的地址信息使用的是地址压缩方式1。若否,则读取地址压缩方式2对应的第一字段中第2个比特位的取值,并判断该取值是否为0b1。若是,则表示源端节点对转发节点2的地址信息使用的是地址压缩方式2。若否,表示源端节点对转发节点2的地址信息未使用任何地址压缩方式。在本示例中,地址压缩方式2对应的第一字段中第2个比特位的取值为0b1,即,源端节点对转发节点2的地址信息使用的是地址压缩方式2。
步骤4、根据用于指示下一元素在第一指示域中的起始位置的第五指示域,确定转发节点2被压缩后的地址信息在第一指示域中的位置。即对应转发节点2的第四字段在第一指示域中的位置。
步骤5:根据转发节点2被压缩后的地址信息在第一指示域中的位置,从第一指示域中读取转发节点2对应的第四字段。
步骤6:根据转发节点2对应的第四字段的第一部分的取值0b0,确定转发节点2的地址信息与源端节点的地址信息具有相同的前缀,根据转发节点2对应的第四字段的第二部分的取值,确定转发节点2被压缩后的地址信息长度为24比特。然后读取第二部分之后的24比特,得到第四字段的第三部分,即转发节点2被压缩后的地址信息0x0F1234。
步骤7、由于一个转发节点完整的地址信息长度为128比特,因此,可以从报文所携带的源端节点的地址信息中读取104比特的前缀,将该104比特的前缀拼接在转发节点2被压缩后的地址信息的前面,得到转发节点2的地址信息0xFC00::ABCD:1234:12FF:FE 0F:1234。
步骤8:将用于指示下一元素在第一指示域中的起始位置的第五指示域的取值修改为转发节点3对应的第四字段在第一指示域中的位置,将用于指示报文转发路径上剩余节点的数量的字段取值修改为7。
步骤9:根据转发节点2的地址信息,将报文转发给转发节点2。
转发节点2在接收到转发节点1发送的报文之后,可以采用转发节点1对报文的处理方式,从报文中获取转发节点3的地址信息,并根据转发节点3的地址信息,将报文转发给转发节点3,在此不再加以赘述。
转发节点3在接收到转发节点2发送的报文之后,可以执行如下步骤:
步骤1、根据用于指示报文转发路径上剩余节点的数量的字段,确定当前报文转发路径剩余6个转发节点。即,包括转发节点3一共有6个转发节点。
步骤2、通过解析第六指示域,确定第一指示域所指示的元素包括被压缩的元素,需要读取第二指示域。
步骤3、根据第二指示域的第二字段,读取每个第一字段,确定源端节点对转发节点4的地址信息所使用的地址压缩方式。在本示例中,地址压缩方式1对应的第一字段中第4个比特位的取值为0b1,即,源端节点对转发节点4的地址信息使用的是地址压缩方式1。
步骤4、根据用于指示下一元素在第一指示域中的起始位置的第五指示域,确定转发节点4被压缩后的地址信息在第一指示域中的位置。即对应转发节点4的第四字段在第一指示域中的位置。
步骤5:根据转发节点4被压缩后的地址信息在第一指示域中的位置,从第一指示域中读取转发节点4对应的第四字段。
步骤6:根据转发节点4对应的第四字段的第一部分的取值0b001,确定转发节点4的地址信息的前缀与第三指示域所指示的第一个第一子集的前缀相同,根据转发节点4对应的第四字段的第二部分的取值,确定转发节点4被压缩后的地址信息长度为24比特。然后读取第二部分之后的24比特,得到第四字段的第三部分,即转发节点4被压缩后的地址信息0x34:1234。
步骤7、根据用于指示第三指示域在报文中的起始位置的第四指示域的取值,确定第三指示域在报文中的起始位置。即,第一个第一子集的前缀对应的第三字段在报文中的起始位置。
步骤8、根据第一个第一子集的前缀对应的第三字段在报文中的起始位置,读取第一个第一子集的前缀对应的第三字段。根据第三字段的第一部分,确定第一子集的前缀长度为104比特。然后读取第一部分之后的104比特,得到第三字段的第二部分,即第一子集的前缀0xFC00:0000:0000:5678:1234:12 34:12。
步骤9、将第一子集的前缀拼接在转发节点4被压缩后的地址信息的前面,得到转发节点4的地址信息0xFC00::5678:1234:1234:1234:1234。
步骤10:将用于指示下一元素在第一指示域中的起始位置的第五指示域的取值修改为转发节点5对应的第四字段在第一指示域中的位置,将用于指示报文转发路径上剩余节点的数量的字段取值修改为5。
步骤9:根据转发节点4的地址信息,将报文转发给转发节点4。
转发节点4在接收到转发节点3发送的报文之后,可以采用转发节点3对报文的处理方式,从报文中获取转发节点5的地址信息,并根据转发节点5的地址信息,将报文转发给转发节点5,在此不再加以赘述。
转发节点5在接收到转发节点4发送的报文之后,可以执行如下步骤:
步骤1、根据用于指示报文转发路径上剩余节点的数量的字段,确定当前报文转发路径剩余4个转发节点。即,包括转发节点5一共有4个转发节点。
步骤2、通过解析第六指示域,确定第一指示域所指示的元素包括被压缩的元素,需要读取第二指示域。
步骤3、根据第二指示域的第二字段,读取每个第一字段,确定源端节点对转发节点6的地址信息所使用的地址压缩方式。在本示例中,地址压缩方式1对应的第一字段中第6个比特位的取值为0b0,地址压缩方式2对应的第一字段中第6个比特位的取值为0b0。即,源端节点对转发节点6的地址信息并未使用任何地址压缩方式。
步骤4、根据用于指示下一元素在第一指示域中的起始位置的第五指示域,确定转发节点6的地址信息在第一指示域中的位置。即对应转发节点6的第四字段在第一指示域中的位置。
步骤5:根据转发节点6的地址信息在第一指示域中的位置,从第一指示域中读取128比特的数据,该128比特的数据即为转发节点6对应的第四字段。即,转发节点6的地址信息:0xFC00::AAAA:1234:1234:1278:AB12。
步骤6:将用于指示下一元素在第一指示域中的起始位置的第五指示域的取值修改为转发节点7对应的第四字段在第一指示域中的位置,将用于指示报文转发路径上剩余节点的数量的字段取值修改为3。
步骤9:根据转发节点6的地址信息,将报文转发给转发节点6。
转发节点6在接收到该报文之后,可以执行如下步骤:
步骤1、根据用于指示报文转发路径上剩余节点的数量的字段,确定当前报文转发路径剩余3个转发节点。即,包括转发节点6一共有3个转发节点。
步骤2、通过解析第六指示域,确定第一指示域所指示的元素包括被压缩的元素,需要读取第二指示域。
步骤3、根据第二指示域的第二字段,读取每个第一字段,确定源端节点对转发节点7的地址信息所使用的地址压缩方式。在本示例中,地址压缩方式2对应的第一字段中第7个比特位的取值为0b1,即,源端节点对转发节点7的地址信息使用的是地址压缩方式2。
步骤4、根据用于指示下一元素在第一指示域中的起始位置的第五指示域,确定转发节点7被压缩后的地址信息在第一指示域中的位置。即对应转发节点7的第四字段在第一指示域中的位置。
步骤5:根据转发节点7被压缩后的地址信息在第一指示域中的位置,从第一指示域中读取转发节点7对应的第四字段。
步骤6:根据转发节点7对应的第四字段的第一部分的取值0b1,确定转发节点7的地址信息与目的节点的地址信息具有相同的前缀,根据转发节点7对应的第四字段的第二部分的取值,确定转发节点7被压缩后的地址信息长度为24比特。然后读取第二部分之后的24比特,得到第四字段的第三部分,即转发节点7被压缩后的地址信息0x141235。
步骤7、由于一个转发节点完整的地址信息长度为128比特,因此,可以从报文所携带的目的节点的地址信息中读取104比特的前缀,将该104比特的前缀拼接在转发节点7被压缩后的地址信息的前面,得到转发节点7的地址信息0xFC00::4567:1234:12FF:FE14:1235。
步骤8:将用于指示下一元素在第一指示域中的起始位置的第五指示域的取值修改为转发节点7对应的第四字段在第一指示域中的位置,将用于指示报文转发路径上剩余节点的数量的字段取值修改为2。
步骤9:根据转发节点7的地址信息,将报文转发给转发节点7。
转发节点7在接收到转发节点6发送的报文之后,可以采用转发节点6对报文的处理方式,从报文中获取转发节点8的地址信息,并根据转发节点8的地址信息,将报文转发给转发节点8,在此不再加以赘述。
转发节点8在接收到该报文之后,可以执行如下步骤:
步骤1、根据用于指示报文转发路径上剩余节点的数量的字段,确定当前报文转发路径剩余1个转发节点。即,包括转发节点8一共有1个转发节点,后续不再有转发节点,因此,可以直接读取第五指示域。
步骤2、根据用于指示下一元素在第一指示域中的起始位置的第五指示域,确定目的节点的地址信息在第一指示域中的位置。即对应目的节点D的第四字段在第一指示域中的位置。
步骤3、根据目的节点D的地址信息在第一指示域中的位置,从第一指示域中读取128比特的数据,该128比特的数据即为目的节点D对应的第四字段。即,目的节点D的地址信息:0xFC00::4567:1234:12FF:FE1A:ABEF。
步骤4、将用于指示下一元素在第一指示域中的起始位置的第五指示域的取值修改为目的节点对应的第四字段在第一指示域中的位置,将用于指示报文转发路径上剩余节点的数量的字段取值修改为0。
步骤5、根据目的节点D的地址信息,将报文转发给目的节点D。
目的节点D在接收到该报文之后,根据用于指示报文转发路径上剩余节点的数量的字段,确定当前报文转发路径无剩余转发节点,进而确定自己即为该报文的最终目的地址。则目的节点D可以按照现有技术的方式,对报文进行解析和处理,不再转发。
示例2、
图9为本申请实施例提供的另一种报文传输场景示意图。如图9所示,本申请实施例的报文传输场景为采用IPv6协议进行报文传输的IoT智能电表场景。该场景包括:源端节点(即网关)、目的节点D,以及,3个转发节点(转发节点A至转发节点C)。其中,目的节点D和转发节点均为IoT节点。图9中两个节点之间的连线为虚线时,说明该两个节点之间不是直连,两个节点之间的连线为实线时,说明该两个节点可以是直连,也可以不是直连。
在本示例中,IoT智能电表场景为封闭的局域网场景,即域内各个IoT节点和网关均有相同前缀FC00:/80。转发节点A至转发节点C为增量式部署的IoT节点,即,转发节点A至转发节点C为不同批次部署在该场景中的设备。例如,转发节点A为第一批部署的设备,转发节点B为第二批部署的设备,转发节点C为第三批部署的设备。
由于转发节点A至转发节点C为不同批次部署至局域网中的设备。因此,随着局域网中设备数量的增加,越是靠后批次部署至局域网中的设备的短地址越长(即地址信息中除与网关的地址信息相同的前缀之外的地址)。
假设转发节点A的短地址为8比特,转发节点B的短地址为12比特,转发节点C的短地址为16比特,则每个节点的地址信息(即十六进制的IPv6地址)如下述表3所示:
表3
Figure BDA0002905097650000371
通过表3可以获知,转发节点A的地址信息至转发节点C的地址信息,均与源端节点(网关)的地址信息具有相同的前缀,可以使用地址压缩方式1对转发节点A至转发节点C的地址信息进行压缩,因此,转发节点A的地址信息至转发节点C的地址信息的压缩特点为:与源端节点(网关)的地址信息具有相同的前缀。
在本示例中,当源端节点(网关)获取到报文转发路径上的转发节点的地址信息后,可以将报文转发路径上的转发节点的地址信息作为一个地址信息集合,并基于各个元素的压缩特点,对该地址信息集合划分子集,具体可以如下述表4所示:
表4
Figure BDA0002905097650000372
源端节点在对地址信息集合中的元素进行划分后,可以对地址信息集合中的元素逐个进行压缩,具体地:
元素1:元素1与源端节点的地址信息具有相同的前缀,因此,源端节点可以去除元素1中与源端节点的地址信息相同的前缀“0xFC00::”,得到被压缩后的元素1“0x15”。
元素2:元素2与源端节点的地址信息具有相同的前缀,因此,源端节点可以去除元素2中与源端节点的地址信息相同的前缀“0xFC00::”,得到被压缩后的元素2“0x10A”。
元素3:元素3与源端节点的地址信息具有相同的前缀,因此,源端节点可以去除元素3中与源端节点的地址信息相同的前缀“0xFC00::”,得到被压缩后的元素3“0x1FF0”。
然后,源端节点可以基于上述每个被压缩的元素,生成报文,并按照图4所示的报文头的格式封装该报文。图10为本申请实施例提供的又一种报文头的示意图。如图10所示,封装后的报文的报文头中与本申请实施例相关的字段可以如下所示:
1、用于指示报文转发路径上剩余节点的数量的字段(例如Segment left字段):由于当前报文转发路径上剩余3个转发节点,因此,该字段的取值可以为3。
2、用于指示第一指示域所指示的元素所使用的地址压缩方式的第二指示域:
由于源端节点支持两种地址压缩方式,因此,报文头的第二指示域的第二字段可以占用两个比特,以通过该两个比特来指示源端节点在此次报文中使用了几种地址压缩方式。对应到本示例中,源端节点对第二子集中的元素使用地址压缩方式2,即,一共使用一种地址压缩方式,因此,上述第二指示域的第二字段例如可以为0b01或0b10,具体可以根据通信系统的设置确定。图10示出的是以第二字段取值为0b10的示意图。
上述第二指示域可以包括两个第一字段,一个第一字段对应地址压缩方式1、一个第一字段对应地址压缩方式2。每个第一字段中的一个比特位对应一个第一指示域所指示的一个元素。在本示例中一共有3个元素,因此,每个第一字段有3个比特,每个比特对应一个元素,用于指示该元素是否使用该第一字段对应的地址压缩方式。在另一实现方式中,由于在此次发送报文时,并未使用地址压缩方式1,因此,上述第二指示域可以只包括对应地址压缩方式2的第一字段,无对应地址压缩方式1的第一字段。图10示出的是以第二指示域包括两个第一字段为例的示意图,其中,填充有波点的地址压缩方式1的第一字段表示,该第一字段可以在当前报文头中不出现。
以比特为1用于指示该比特对应的元素使用该第一字段对应的地址压缩方式、比特为0用于指示该比特对应的元素未使用该第一字段对应的地址压缩方式为例,则对应压缩方式2的第一字段可以为:0b111。该第一字段的最高位表示转发路径上的第一个转发节点,依次类推。
3、用于指示每个第一子集的前缀信息的第三指示域:
由于在此次发送报文时,并未使用地址压缩方式1,因此,也不存在第一子集的前缀。所以,上述第三指示域可以为空,或者,上述报文头不包括第三指示域。图10示出的是以报文头包括第三指示域的示意图,其中,填充有波点的第三指示域表示,该指示域可以在当前报文头中不出现。
4、用于指示每个被压缩后的元素和每个未被压缩的元素的第一指示域:
以第一指示域包括至少一个第四字段,每个第四字段对应第一指示域所指示的一个元素为例,如前述所说,在第四字段对应的元素属于第二子集时,第四字段包括第一部分、第二部分和第三部分,第四字段的第一部分用于指示与第二元素具有相同前缀的源端节点的地址信息的标识或者与第二元素具有相同前缀的目的节点的地址信息的标识,第四字段的第二部分用于指示元素被压缩后的长度,第四字段的第三部分用于指示被压缩后的元素。
因此,源端节点可以按照各个元素对应的转发节点在转发路径上的顺序在第一指示域中依次写入各个元素。以源端节点的地址信息的标识为0、第四字段的第二部分通过7比特指示元素被压缩后的长度为例,具体地,
第一指示域的第一个第四字段对应元素1,第一个第四字段可以包括第一部分、第二部分和第三部分,元素1与源端节点的地址信息具有相同的前缀,因此,第一个第四字段的第一部分的取值为0b0。被压缩后的元素1的长度为8比特,因此,第一个第四字段的第二部分的取值为“0b0001000”。被压缩后的元素1为“0x15”,因此,第一个第四字段的第三部分的取值为“0b00001111”。综上,第一个第四字段的取值为“0b0,0b0001000,0b00001111”。
第一指示域的第二个第四字段对应元素2,第二个第四字段可以包括第一部分、第二部分和第三部分,元素2与源端节点的地址信息具有相同的前缀,因此,第二个第四字段的第一部分的取值为0b0。被压缩后的元素2的长度为12比特,因此,第二个第四字段的第二部分的取值为“0b0001100”。被压缩后的元素2为“0x10A”,因此,第二个第四字段的第三部分的取值为“0b000100001010”。综上,第二个第四字段的取值为“0b0,0b0001100,0b000100001010”。
第一指示域的第三个第四字段对应元素3,第三个第四字段可以包括第一部分、第二部分和第三部分,元素3与源端节点的地址信息具有相同的前缀,因此,第三个第四字段的第一部分的取值为0b0。被压缩后的元素3的长度为16比特,因此,第三个第四字段的第二部分的取值为“0b0010000”。被压缩后的元素3为“0x1FF0”,因此,第三个第四字段的第三部分的取值为“0b0001111111110000”。综上,第三个第四字段的取值为“0b0,0b0010000,0b0001111111110000”。
在本示例中,第一指示域还可以用于指示元素4,该元素4为目的节点的地址信息。即,第一指示域的第四个第四字段对应元素4,由于元素4未被压缩,因此,第四个第四字段的取值为元素4,即“0xFC00::1FF0”。
5、用于指示第三指示域在报文中的起始位置的第四指示域,该指示域的取值为第三指示域在报文中的起始位置。
由于上述第三指示域可以为空,或者,上述报文头不包括第三指示域。因此,用于指示第三指示域在报文中的起始位置的第四指示域也可以为空、或者,上述报文头不包括第四指示域。图10示出的是以报文头包括第四指示域的示意图,其中,填充有波点的第四指示域表示,该指示域可以在当前报文头中不出现。
6、用于指示下一元素在第一指示域中的起始位置的第五指示域,该指示域的初始取值为元素2对应的第四字段在第一指示域中的位置。
7、用于指示报文的类型的第六指示域。在本示例中,该指示域的取值例如为100。
可以理解,上述报文头中十六进制数,在实际传输时会传输该十六进制数对应的二进制数。另外,上述出现逗号和/或冒号的字段仅是为了标记该字段的不同部分,实际传输和封装时不会出现逗号和/或冒号,以及标识该数据进制的前缀。
通过上述描述可以看出,源端节点可以针对具有不同压缩特点的元素,使用不同的地址压缩方式进行压缩,从而可以更大化的压缩每个元素的长度,以及,更大化的压缩更多的元素。这样,源端节点在通过报文的第一指示域指示这些被压缩后的元素时,可以使用较少的比特指示这些元素,从而可以增加源端节点可指定的转发节点的数量,进而可以降低网络部署的难度。
上述源端节点在将上述报文封装之后,可以通过转发节点X将报文转发给转发节点A。其中,转发节点X如何获知转发节点A的地址信息,可以参见现有技术。
转发节点A在接收到该报文之后,可以执行如下步骤:
步骤1、根据用于指示报文转发路径上剩余节点的数量的字段,确定当前报文转发路径剩余3个转发节点。即,包括转发节点A一共有3个转发节点。
步骤2、通过解析第六指示域,确定第一指示域所指示的元素包括被压缩的元素,需要读取第二指示域。
步骤3、根据第二指示域的第二字段,读取地址压缩方式2对应的第一字段,确定源端节点对转发节点B的地址信息所使用的地址压缩方式。在本示例中,地址压缩方式2对应的第一字段中第2个比特位的取值为0b1,即,源端节点对转发节点B的地址信息使用的是地址压缩方式2。
步骤4、根据用于指示下一元素在第一指示域中的起始位置的第五指示域,确定转发节点B被压缩后的地址信息在第一指示域中的位置。即对应转发节点B的第四字段在第一指示域中的位置。
步骤5:根据转发节点B被压缩后的地址信息在第一指示域中的位置,从第一指示域中读取转发节点B对应的第四字段。
步骤6:根据转发节点B对应的第四字段的第一部分的取值0b0,确定转发节点B的地址信息与源端节点的地址信息具有相同的前缀.根据转发节点B对应的第四字段的第二部分的取值,确定转发节点B被压缩后的地址信息长度为8比特。然后读取第二部分之后的8比特,得到第四字段的第三部分,即转发节点B被压缩后的地址信息0x15。
步骤7、由于一个转发节点完整的地址信息长度为128比特,因此,可以从报文所携带的源端节点的地址信息中读取120比特的前缀,将该120比特的前缀拼接在转发节点B被压缩后的地址信息的前面,得到转发节点B的地址信息0xFC00::15。
步骤8:将用于指示下一元素在第一指示域中的起始位置的第五指示域的取值修改为转发节点C对应的第四字段在第一指示域中的位置,将用于指示报文转发路径上剩余节点的数量的字段取值修改为2。
步骤9:根据转发节点B的地址信息,将报文转发给转发节点B。
转发节点B在接收到转发节点A发送的报文之后,可以采用转发节点A对报文的处理方式,从报文中获取转发节点C的地址信息,并根据转发节点C的地址信息,将报文转发给转发节点C,在此不再加以赘述。
转发节点C接收到转发节点B发送的报文之后,可以执行如下步骤:
步骤1、根据用于指示报文转发路径上剩余节点的数量的字段,确定当前报文转发路径剩余1个转发节点。即,包括转发节点C一共有1个转发节点,后续不再有转发节点,因此,可以直接读取第五指示域。
步骤2、根据用于指示下一元素在第一指示域中的起始位置的第五指示域,确定目的节点的地址信息在第一指示域中的位置。即对应目的节点D的第四字段在第一指示域中的位置。
步骤3、根据目的节点D的地址信息在第一指示域中的位置,从第一指示域中读取128比特的数据,该128比特的数据即为目的节点D对应的第四字段。即,目的节点D的地址信息:0xFC00::AABEF。
步骤4、将用于指示下一元素在第一指示域中的起始位置的第五指示域的取值修改为目的节点对应的第四字段在第一指示域中的位置,将用于指示报文转发路径上剩余节点的数量的字段取值修改为0。
步骤5、根据目的节点D的地址信息,将报文转发给目的节点D。
目的节点D在接收到该报文之后,根据用于指示报文转发路径上剩余节点的数量的字段,确定当前报文转发路径无剩余转发节点,进而确定自己即为该报文的最终目的地址。则目的节点D可以按照现有技术的方式,对报文进行解析和处理,不再转发。
本申请实施例提供的报文传输方法,在采用IPv6协议进行报文传输报文、并采用IP源路由技术指导报文转发路径上的转发节点转发报文时,可以对具有不同压缩特点的转发节点的地址信息,采用不同的地址压缩方式进行压缩,以最大化的压缩更多转发节点的地址信息,使其被压缩后的地址信息的长度小于128比特,并通过报文的第一指示域指示这些被压缩后的地址信息来实现IP源路由。通过这种方式,在报文长度不变的情况,可以增加可指示的元素的数量,从而可以提高可指定的转发节点的数量,进而可以降低网络部署的难度。
图11为本申请实施例提供的一种通信装置的结构示意图。该通信装置通过软件、硬件或者两者的结合实现上述压缩节点的部分或者全部功能。该通信装置可以为压缩节点,也可以为应用于压缩节点的芯片。如图11所示,该通信装置可以包括:处理模块11和发送模块12。
其中,
处理模块11,用于根据报文转发路径上的转发节点的地址信息,生成报文;所述报文包括第一指示域,所述第一指示域用于指示被压缩后的第一元素和被压缩后的第二元素,所述第一元素和所述第二元素为不同转发节点的地址信息,所述第一元素与所述第二元素所使用的地址压缩方式不同;
发送模块11,用于发送所述报文。
在一种实现方式中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括至少两个第一子集,每个所述第一子集包括至少两个元素,所述第一子集的元素之间相同的前缀为所述第一子集的前缀;所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:所述第一元素与所述第二元素属于不同的第一子集,所述第一元素所属的第一子集的前缀与所述第二元素所属的第一子集的前缀不同;所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素所属的第一子集的前缀相同的部分,得到被压缩后的第二元素。
在一种实现方式中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;所述地址信息集合还包括:第二子集,所述第二子集包括至少一个元素,所述第二子集所包括的元素与所述第一子集所包括的元素不同,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀;所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:所述第三元素属于所述第二子集;所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第三元素,或者,去除所述第三元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第三元素。
在一种实现方式中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;所述地址信息集合还包括所述第三元素、且所述第三元素不属于所述第一子集,所述第三元素与每个所述第三元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述第三元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第三元素。
在一种实现方式中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和至少一个第一子集,所述第二子集包括至少一个元素,每个所述第一子集包括至少两个元素,所述第二子集所包括的元素与所述至少一个第一子集所包括的元素不同,所述第一子集的元素之间相同的前缀为每个所述第一子集的前缀,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同;所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:所述第一元素属于一个第一子集,所述第二元素属于所述第二子集;所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第二元素,或者,去除所述第二元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第二元素。
在一种实现方式中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;所述地址信息集合还包括所述第三元素、且所述第三元素不属于所述第一子集和所述第二子集,所述第三元素与每个所述第三元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述第三元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第三元素。
在一种实现方式中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括至少一个第一子集和所述第二元素,每个所述第一子集包括至少两个元素,所述第一子集的元素之间相同的前缀为所述第一子集的前缀,所述第二元素与每个所述第二元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:所述第一元素属于一个第一子集;所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第二元素。
在一种实现方式中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和第二元素,所述第二子集包括至少一个元素,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同,所述第二元素与每个所述第二元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:所述第一元素属于所述第二子集;所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第一元素,或者,去除所述第一元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第一元素;所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第二元素。
在一种实现方式中,所述第一指示域还用于指示第四元素,所述第四元素为报文转发路上一个未被压缩的转发节点的地址信息。
在一种实现方式中,所述报文还包括:第二指示域,所述第二指示域用于指示所述第一指示域所指示的元素所使用的地址压缩方式。
例如,所述第二指示域包括至少一个第一字段,每个所述第一字段对应一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
再例如,所述第二指示域包括第二字段和N个第一字段,所述N为大于或等于1的整数;所述第二字段,用于指示所述第一指示域所指示的元素总计使用N种地址压缩方式;每个所述第一字段对应N种地址压缩方式中的一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
再例如,所述报文包括与所述第一指示域所指示的每个元素对应的第二指示域,用于指示对对应的元素所使用的地址压缩方式。
在一种实现方式中,所述报文还包括:第三指示域,所述第三指示域用于指示每个所述第一子集的前缀信息。例如,所述第三指示域包括至少一个第三字段,每个所述第三字段对应一个所述第一子集的前缀;每个所述第三字段包括第一部分和第二部分;所述第三字段的第一部分用于指示对应的所述第一子集的前缀的长度,所述第三字段的第二部分,用于指示对应的所述第一子集的前缀。
在一种实现方式中,所述第一指示域包括至少一个第四字段;每个所述第四字段对应所述第一指示域所指示的一个元素;在所述第四字段对应的元素属于所述第一子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示所述元素所属的第一子集的前缀对应的第三字段,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示被压缩后的所述元素;在所述第四字段对应的元素属于所述第二子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示与所述第二元素具有相同前缀的源端节点的地址信息的标识或者与所述第二元素具有相同前缀的目的节点的地址信息的标识,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示所述被压缩后的所述元素;在所述第四字段对应的元素与所述元素对应的转发节点的媒体访问控制MAC地址有部分地址相同时,所述第四字段包括第一部分和第二部分,所述第四字段的第一部分用于指示所述元素被压缩后的长度,所述第四字段的第二部分用于指示被压缩后的所述元素。
在一种实现方式中,所述报文还包括第四指示域;所述第四指示域,用于指示所述第三指示域在所述报文中的起始位置。
在一种实现方式中,所述报文还包括第五指示域;所述第五指示域,用于指示下一元素在所述第一指示域中的起始位置,所述下一元素对应的节点为报文转发路径上下一个转发或接收所述报文的节点。
在一种实现方式中,所述报文还包括第六指示域;所述第六指示域,用于指示所述报文的类型,所述报文的类型用于标识所述第一指示域所指示的元素包括被压缩的元素。
本申请实施例提供的通信装置,可以执行上述方法实施例中压缩节点侧的动作,其实现原理和技术效果类似,在此不再赘述。
图12为本申请实施例提供的另一种通信装置的结构示意图。该通信装置通过软件、硬件或者两者的结合实现上述接收报文的转发节点的部分或者全部功能。该通信装置可以为该转发节点,也可以为应用于该转发节点的芯片。如图12所示,该通信装置可以包括:接收模块21、处理模块22和发送模块23。其中,
接收模块21,用于接收报文;所述报文包括第一指示域,所述第一指示域用于指示被压缩后的第一元素和被压缩后的第二元素,所述第一元素和所述第二元素为报文转发路径上不同转发节点的地址信息,所述第一元素与所述第二元素所使用的地址压缩方式不同;
处理模块22,用于根据所述第一指示域,确定下一转发节点的地址信息;
发送模块23,用于根据所述下一转发节点的地址信息,向所述下一转发节点发送所述报文。
在一种实现方式中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括至少两个第一子集,每个所述第一子集包括至少两个元素,所述第一子集的元素之间相同的前缀为所述第一子集的前缀;所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:所述第一元素与所述第二元素属于不同的第一子集,所述第一元素所属的第一子集的前缀与所述第二元素所属的第一子集的前缀不同;所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素所属的第一子集的前缀相同的部分,得到被压缩后的第二元素。
在一种实现方式中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;所述地址信息集合还包括:第二子集,所述第二子集包括至少一个元素,所述第二子集所包括的元素与所述第一子集所包括的元素不同,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀;所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:所述第三元素属于所述第二子集;所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第三元素,或者,去除所述第三元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第三元素。
在一种实现方式中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;所述地址信息集合还包括所述第三元素、且所述第三元素不属于所述第一子集,所述第三元素与每个所述第三元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述第三元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第三元素。
在一种实现方式中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和至少一个第一子集,所述第二子集包括至少一个元素,每个所述第一子集包括至少两个元素,所述第二子集所包括的元素与所述至少一个第一子集所包括的元素不同,所述第一子集的元素之间相同的前缀为每个所述第一子集的前缀,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同;所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:所述第一元素属于一个第一子集,所述第二元素属于所述第二子集;所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第二元素,或者,去除所述第二元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第二元素。
在一种实现方式中,所述第一指示域还用于指示被压缩后的第三元素,所述第三元素为一个转发节点的地址信息,所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同;所述地址信息集合还包括所述第三元素、且所述第三元素不属于所述第一子集和所述第二子集,所述第三元素与每个所述第三元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;所述第三元素与第一元素、所述第二元素所使用的地址压缩方式均不同,包括:所述第三元素所使用的地址压缩方式为:去除所述第三元素中与所述第三元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第三元素。
在一种实现方式中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括至少一个第一子集和所述第二元素,每个所述第一子集包括至少两个元素,所述第一子集的元素之间相同的前缀为所述第一子集的前缀,所述第二元素与每个所述第二元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:所述第一元素属于一个第一子集;所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述第一元素所属的第一子集的前缀相同的部分,得到被压缩后的第一元素;所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第二元素。
在一种实现方式中,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和第二元素,所述第二子集包括至少一个元素,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同,所述第二元素与每个所述第二元素对应的转发节点的媒体访问控制MAC地址有部分地址相同;所述第一元素与所述第二元素所使用的地址压缩方式不同,包括:所述第一元素属于所述第二子集;所述第一元素所使用的地址压缩方式为:去除所述第一元素中与所述源端节点的地址信息相同的前缀,得到被压缩后的第一元素,或者,去除所述第一元素中与所述目的节点的地址信息相同的前缀,得到被压缩后的第一元素;所述第二元素所使用的地址压缩方式为:去除所述第二元素中与所述第二元素对应的转发节点的MAC地址相同的部分,得到被压缩后的第二元素。
在一种实现方式中,所述第一指示域还用于指示第四元素,所述第四元素为报文转发路上一个未被压缩的转发节点的地址信息。
在一种实现方式中,所述报文还包括:第二指示域,所述第二指示域用于指示所述第一指示域所指示的元素所使用的地址压缩方式。
例如,所述第二指示域包括至少一个第一字段,每个所述第一字段对应一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
再例如,所述第二指示域包括第二字段和N个第一字段,所述N为大于或等于1的整数;所述第二字段,用于指示所述第一指示域所指示的元素总计使用N种地址压缩方式;每个所述第一字段对应N种地址压缩方式中的一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
再例如,所述报文包括与所述第一指示域所指示的每个元素对应的第二指示域,用于指示对对应的元素所使用的地址压缩方式。
在一种实现方式中,所述报文还包括:第三指示域,所述第三指示域用于指示每个所述第一子集的前缀信息。例如,所述第三指示域包括至少一个第三字段,每个所述第三字段对应一个所述第一子集的前缀;每个所述第三字段包括第一部分和第二部分;所述第三字段的第一部分用于指示对应的所述第一子集的前缀的长度,所述第三字段的第二部分,用于指示对应的所述第一子集的前缀。
在一种实现方式中,所述第一指示域包括至少一个第四字段;每个所述第四字段对应所述第一指示域所指示的一个元素;在所述第四字段对应的元素属于所述第一子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示所述元素所属的第一子集的前缀对应的第三字段,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示被压缩后的所述元素;在所述第四字段对应的元素属于所述第二子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示与所述第二元素具有相同前缀的源端节点的地址信息的标识或者与所述第二元素具有相同前缀的目的节点的地址信息的标识,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示所述被压缩后的所述元素;在所述第四字段对应的元素与所述元素对应的转发节点的媒体访问控制MAC地址有部分地址相同时,所述第四字段包括第一部分和第二部分,所述第四字段的第一部分用于指示所述元素被压缩后的长度,所述第四字段的第二部分用于指示被压缩后的所述元素。
在一种实现方式中,所述处理模块22,具体用于根据所述第二指示域,确定所述下一转发节点的地址信息所使用的地址压缩方式,并根据所述下一转发节点的地址信息所使用的地址压缩方式,以及,所述第一指示域所指示的下一转发节点被压缩的地址信息,还原所述下一转发节点的地址信息。例如,所述处理模块23,具体用于在所述下一转发节点的地址信息属于所述第一子集时,根据所述下一转发节点的地址信息所使用的地址压缩方式,将所述第三指示域所指示的下一转发节点的地址信息所属的第一子集的前缀信息,添加到所述下一转发节点被压缩后的地址信息的前面,还原所述下一转发节点的地址信息;在所述下一转发节点的地址信息属于所述第二子集时,根据所述下一转发节点的地址信息所使用的地址压缩方式,将所述源端节点的地址信息或所述目的节点的地址信息与所述下一转发节点的地址信息相同的前缀,添加到所述下一转发节点被压缩后的地址信息的前面,还原所述下一转发节点的地址信息;在所述下一转发节点的地址信息与所述下一转发节点的媒体访问控制MAC地址有部分地址相同时,根据所述下一转发节点的地址信息所使用的地址压缩方式,将所述下一转发节点的媒体访问控制MAC地址中与所述下一转发节点的地址信息相同的部分,添加到所述下一转发节点被压缩后的地址信息中,还原所述下一转发节点的地址信息。
在一种实现方式中,所述报文还包括第四指示域;所述第四指示域,用于指示所述第三指示域在所述报文中的起始位置。
在一种实现方式中,所述报文还包括第五指示域;所述第五指示域,用于指示下一元素在所述第一指示域中的起始位置,所述下一元素对应的节点为报文转发路径上下一个转发或接收所述报文的节点。
在一种实现方式中,所述报文还包括第六指示域;所述第六指示域,用于指示所述报文的类型,所述报文的类型用于标识所述第一指示域所指示的元素包括被压缩的元素。
本申请实施例提供的通信装置,可以执行上述方法实施例中接收到报文的转发节点侧的动作,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上发送模块实际实现时可以为发送器,接收模块实际实现时可以为接收器,而处理模块可以以软件通过处理元件调用的形式实现;也可以以硬件的形式实现。例如,处理模块可以为单独设立的处理元件,也可以集成在上述设备的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述设备的存储器中,由上述节点的某一个处理元件调用并执行以上处理模块的功能。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessing unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图13为本申请实施例提供的又一种通信装置的结构示意图。如图13所示,该通信装置可以包括:处理器31(例如CPU)、存储器32、发送器34;可选的,还可以包括接收器33,接收器33和发送器34均耦合至处理器31,处理器31控制接收器33的接收动作、处理器31控制发送器34的发送动作;存储器32可能包含高速随机存取存储器(random-access memory,RAM),也可能还包括非易失性存储器(non-volatile memory,NVM),例如至少一个磁盘存储器,存储器32中可以存储各种指令,以用于完成各种处理功能以及实现本申请的方法步骤。可选的,本申请涉及的通信装置还可以包括:电源35、通信总线36以及通信端口37。接收器33和发送器34可以集成在通信装置的收发信机中,也可以为通信装置上独立的收发天线。通信总线36用于实现元件之间的通信连接。上述通信端口37用于实现通信装置与其他外设之间进行连接通信。
在本申请实施例中,上述存储器32用于存储计算机可执行程序代码,程序代码包括指令;当处理器31执行指令时,指令使通信装置的处理器31执行上述方法实施例中压缩节点的处理动作,使接收器33执行上述方法实施例中压缩节点的接收动作,使发送器34执行上述方法实施例中压缩节点的发送动作,其实现原理和技术效果类似,在此不再赘述。
图14为本申请实施例提供的又一种通信装置的结构示意图。如图14所示,该通信装置可以包括:处理器41(例如CPU)、存储器42、接收器43、发送器44;接收器43和发送器44均耦合至处理器41,处理器41控制接收器43的接收动作、处理器41控制发送器44的发送动作;存储器42可能包含高速RAM存储器,也可能还包括非易失性存储器NVM,例如至少一个磁盘存储器,存储器42中可以存储各种指令,以用于完成各种处理功能以及实现本申请的方法步骤。可选的,本申请涉及的通信装置还可以包括:电源45、通信总线46以及通信端口47。接收器43和发送器44可以集成在通信装置的收发信机中,也可以为通信装置上独立的收发天线。通信总线46用于实现元件之间的通信连接。上述通信端口47用于实现通信装置与其他外设之间进行连接通信。
在本申请中,上述存储器42用于存储计算机可执行程序代码,程序代码包括指令;当处理器41执行指令时,指令使通信装置的处理器41执行上述方法实施例中接收报文的转发节点的处理动作,使接收器43执行上述方法实施例中接收报文的转发节点的接收动作,使发送器44执行上述方法实施例中接收报文的转发节点的发送动作,其实现原理和技术效果类似,在此不再赘述。
图15为本申请实施例提供的一种通信系统的结构示意图。如图12所示,上述通信系统可以包括:通信装置51和通信装置52。其中,上述通信装置51可以为前述实施例所说的压缩节点,上述通信装置52可以为前述实施例所说的任一接收报文的转发节点,其实现原理和技术效果类似,在此不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
本文中的术语“多个”是指两个或两个以上。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。
可以理解的是,在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。

Claims (24)

1.一种报文传输方法,其特征在于,所述方法包括:
根据报文转发路径上的转发节点的地址信息,生成报文;所述报文包括被压缩后的第一元素和被压缩后的第二元素,所述第一元素和所述第二元素为不同转发节点的地址信息,所述第一元素与所述第二元素所使用的地址压缩方式不同,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和至少一个第一子集,所述第二子集包括至少一个元素,每个所述第一子集包括至少两个元素,所述第二子集所包括的元素与所述至少一个第一子集所包括的元素不同,所述第一子集的元素之间相同的前缀为每个所述第一子集的前缀,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同,所述第一元素属于一个第一子集,所述第二元素属于所述第二子集;
发送所述报文。
2.根据权利要求1所述的方法,其特征在于,所述报文还包括:第二指示域,所述第二指示域用于指示第一指示域所指示的元素所使用的地址压缩方式,所述第一指示域用于指示被压缩后的第一元素和被压缩后的第二元素。
3.根据权利要求2所述的方法,其特征在于,所述第二指示域包括第二字段和N个第一字段,所述N为大于或等于1的整数;
所述第二字段,用于指示所述第一指示域所指示的元素总计使用N种地址压缩方式;
每个所述第一字段对应N种地址压缩方式中的一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
4.根据权利要求1所述的方法,其特征在于,所述报文还包括:第三指示域,所述第三指示域用于指示每个所述第一子集的前缀信息。
5.根据权利要求4所述的方法,其特征在于,所述第三指示域包括至少一个第三字段,每个所述第三字段对应一个所述第一子集的前缀;每个所述第三字段包括第一部分和第二部分;
所述第三字段的第一部分用于指示对应的所述第一子集的前缀的长度,所述第三字段的第二部分,用于指示对应的所述第一子集的前缀。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述被压缩后的第一元素和所述被压缩后的第二元素位于第一指示域,所述第一指示域包括至少一个第四字段;每个所述第四字段对应所述第一指示域所指示的一个元素;
在所述第四字段对应的元素属于所述第一子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示所述元素所属的第一子集的前缀对应的第三字段,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示被压缩后的所述元素;
在所述第四字段对应的元素属于所述第二子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示与所述第二元素具有相同前缀的源端节点的地址信息的标识或者与所述第二元素具有相同前缀的目的节点的地址信息的标识,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示所述被压缩后的所述元素;
在所述第四字段对应的元素与所述元素对应的转发节点的媒体访问控制MAC地址有部分地址相同时,所述第四字段包括第一部分和第二部分,所述第四字段的第一部分用于指示所述元素被压缩后的长度,所述第四字段的第二部分用于指示被压缩后的所述元素。
7.一种报文传输方法,其特征在于,所述方法包括:
接收报文;所述报文包括被压缩后的第一元素和被压缩后的第二元素,所述第一元素和所述第二元素为报文转发路径上不同转发节点的地址信息,所述第一元素与所述第二元素所使用的地址压缩方式不同,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和至少一个第一子集,所述第二子集包括至少一个元素,每个所述第一子集包括至少两个元素,所述第二子集所包括的元素与所述至少一个第一子集所包括的元素不同,所述第一子集的元素之间相同的前缀为每个所述第一子集的前缀,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同,所述第一元素属于一个第一子集,所述第二元素属于所述第二子集;
根据所述被压缩后的第一元素或所述被压缩后的第二元素,确定下一转发节点的地址信息;
根据所述下一转发节点的地址信息,向所述下一转发节点发送所述报文。
8.根据权利要求7所述的方法,其特征在于,所述报文还包括:第二指示域,所述第二指示域用于指示第一指示域所指示的元素所使用的地址压缩方式,所述第一指示域用于指示被压缩后的第一元素和被压缩后的第二元素。
9.根据权利要求8所述的方法,其特征在于,所述第二指示域包括第二字段和N个第一字段,所述N为大于或等于1的整数;
所述第二字段,用于指示所述第一指示域所指示的元素总计使用N种地址压缩方式;
每个所述第一字段对应N种地址压缩方式中的一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
10.根据权利要求8所述的方法,其特征在于,所述报文还包括:第三指示域,所述第三指示域用于指示每个所述第一子集的前缀信息。
11.根据权利要求10所述的方法,其特征在于,所述第三指示域包括至少一个第三字段,每个所述第三字段对应一个所述第一子集的前缀;每个所述第三字段包括第一部分和第二部分;
所述第三字段的第一部分用于指示对应的所述第一子集的前缀的长度,所述第三字段的第二部分,用于指示对应的所述第一子集的前缀。
12.根据权利要求7-11任一项所述的方法,其特征在于,所述被压缩后的第一元素和所述被压缩后的第二元素位于第一指示域,所述第一指示域包括至少一个第四字段;每个所述第四字段对应所述第一指示域所指示的一个元素;
在所述第四字段对应的元素属于所述第一子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示所述元素所属的第一子集的前缀对应的第三字段,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示被压缩后的所述元素;
在所述第四字段对应的元素属于所述第二子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示与所述第二元素具有相同前缀的源端节点的地址信息的标识或者与所述第二元素具有相同前缀的目的节点的地址信息的标识,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示所述被压缩后的所述元素;
在所述第四字段对应的元素与所述元素对应的转发节点的媒体访问控制MAC地址有部分地址相同时,所述第四字段包括第一部分和第二部分,所述第四字段的第一部分用于指示所述元素被压缩后的长度,所述第四字段的第二部分用于指示被压缩后的所述元素。
13.根据权利要求8或9所述的方法,其特征在于,所述根据所述被压缩后的第一元素或所述被压缩后的第二元素,确定下一转发节点的地址信息,包括:
根据所述第二指示域,确定所述下一转发节点的地址信息所使用的地址压缩方式;
根据所述下一转发节点的地址信息所使用的地址压缩方式,以及,所述第一指示域所指示的下一转发节点被压缩的地址信息,还原所述下一转发节点的地址信息。
14.根据权利要求10或11所述的方法,其特征在于,所述根据所述下一转发节点的地址信息所使用的地址压缩方式,以及,所述第一指示域所指示的下一转发节点被压缩的地址信息,还原所述下一转发节点的地址信息,包括:
在所述下一转发节点的地址信息属于所述第一子集时,根据所述下一转发节点的地址信息所使用的地址压缩方式,将所述第三指示域所指示的下一转发节点的地址信息所属的第一子集的前缀信息,添加到所述下一转发节点被压缩后的地址信息的前面,还原所述下一转发节点的地址信息;
在所述下一转发节点的地址信息属于所述第二子集时,根据所述下一转发节点的地址信息所使用的地址压缩方式,将所述源端节点的地址信息或所述目的节点的地址信息与所述下一转发节点的地址信息相同的前缀,添加到所述下一转发节点被压缩后的地址信息的前面,还原所述下一转发节点的地址信息;
在所述下一转发节点的地址信息与所述下一转发节点的媒体访问控制MAC地址有部分地址相同时,根据所述下一转发节点的地址信息所使用的地址压缩方式,将所述下一转发节点的媒体访问控制MAC地址中与所述下一转发节点的地址信息相同的部分,添加到所述下一转发节点被压缩后的地址信息中,还原所述下一转发节点的地址信息。
15.一种通信装置,其特征在于,所述装置包括:
处理模块,用于根据报文转发路径上的转发节点的地址信息,生成报文;所述报文包括被压缩后的第一元素和被压缩后的第二元素,所述第一元素和所述第二元素为不同转发节点的地址信息,所述第一元素与所述第二元素所使用的地址压缩方式不同,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和至少一个第一子集,所述第二子集包括至少一个元素,每个所述第一子集包括至少两个元素,所述第二子集所包括的元素与所述至少一个第一子集所包括的元素不同,所述第一子集的元素之间相同的前缀为每个所述第一子集的前缀,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同,所述第一元素属于一个第一子集,所述第二元素属于所述第二子集;
发送模块,用于发送所述报文。
16.根据权利要求15所述的装置,其特征在于,所述报文还包括:第二指示域,所述第二指示域用于指示第一指示域所指示的元素所使用的地址压缩方式,所述第一指示域用于指示被压缩后的第一元素和被压缩后的第二元素;
所述第二指示域包括第二字段和N个第一字段,所述N为大于或等于1的整数;
所述第二字段,用于指示所述第一指示域所指示的元素总计使用N种地址压缩方式;
每个所述第一字段对应N种地址压缩方式中的一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
17.根据权利要求16所述的装置,其特征在于,所述报文还包括:第三指示域,所述第三指示域用于指示每个所述第一子集的前缀信息;
所述第三指示域包括至少一个第三字段,每个所述第三字段对应一个所述第一子集的前缀;每个所述第三字段包括第一部分和第二部分;
所述第三字段的第一部分用于指示对应的所述第一子集的前缀的长度,所述第三字段的第二部分,用于指示对应的所述第一子集的前缀。
18.根据权利要求15-17任一项所述的装置,其特征在于,所述被压缩后的第一元素和所述被压缩后的第二元素位于第一指示域,所述第一指示域包括至少一个第四字段;每个所述第四字段对应所述第一指示域所指示的一个元素;
在所述第四字段对应的元素属于所述第一子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示所述元素所属的第一子集的前缀对应的第三字段,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示被压缩后的所述元素;
在所述第四字段对应的元素属于所述第二子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示与所述第二元素具有相同前缀的源端节点的地址信息的标识或者与所述第二元素具有相同前缀的目的节点的地址信息的标识,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示所述被压缩后的所述元素;
在所述第四字段对应的元素与所述元素对应的转发节点的媒体访问控制MAC地址有部分地址相同时,所述第四字段包括第一部分和第二部分,所述第四字段的第一部分用于指示所述元素被压缩后的长度,所述第四字段的第二部分用于指示被压缩后的所述元素。
19.一种通信装置,其特征在于,所述装置包括:
接收模块,用于接收报文;所述报文包括被压缩后的第一元素和被压缩后的第二元素,所述第一元素和所述第二元素为报文转发路径上不同转发节点的地址信息,所述第一元素与所述第二元素所使用的地址压缩方式不同,所述报文转发路径上的转发节点的地址信息为一个地址信息集合,每个转发节点的地址信息为一个元素,所述地址信息集合包括第二子集和至少一个第一子集,所述第二子集包括至少一个元素,每个所述第一子集包括至少两个元素,所述第二子集所包括的元素与所述至少一个第一子集所包括的元素不同,所述第一子集的元素之间相同的前缀为每个所述第一子集的前缀,所述第二子集的每个元素与源端节点的地址信息或目的节点的地址信息具有相同的前缀、且前缀长度相同,所述第一元素属于一个第一子集,所述第二元素属于所述第二子集;
处理模块,用于根据所述被压缩后的第一元素或所述被压缩后的第二元素,确定下一转发节点的地址信息;
发送模块,用于根据所述下一转发节点的地址信息,向所述下一转发节点发送所述报文。
20.根据权利要求19所述的装置,其特征在于,所述报文还包括:第二指示域,所述第二指示域用于指示第一指示域所指示的元素所使用的地址压缩方式,所述第一指示域用于指示被压缩后的第一元素和被压缩后的第二元素;
所述第二指示域包括第二字段和N个第一字段,所述N为大于或等于1的整数;
所述第二字段,用于指示所述第一指示域所指示的元素总计使用N种地址压缩方式;
每个所述第一字段对应N种地址压缩方式中的一种地址压缩方式,每个所述第一字段中的一个比特位对应一个所述第一指示域所指示的一个元素,当所述比特位为第一值时,指示对所述比特位对应的元素使用所述第一字段对应的地址压缩方式,当所述比特位为第二值时,指示对所述比特位对应的元素未使用所述第一字段对应的地址压缩方式。
21.根据权利要求19所述的装置,其特征在于,所述报文还包括:第三指示域,所述第三指示域用于指示每个所述第一子集的前缀信息;
所述第三指示域包括至少一个第三字段,每个所述第三字段对应一个所述第一子集的前缀;每个所述第三字段包括第一部分和第二部分;
所述第三字段的第一部分用于指示对应的所述第一子集的前缀的长度,所述第三字段的第二部分,用于指示对应的所述第一子集的前缀。
22.根据权利要求19所述的装置,其特征在于,所述被压缩后的第一元素和所述被压缩后的第二元素位于第一指示域,所述第一指示域包括至少一个第四字段;每个所述第四字段对应所述第一指示域所指示的一个元素;
在所述第四字段对应的元素属于所述第一子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示所述元素所属的第一子集的前缀对应的第三字段,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示被压缩后的所述元素;
在所述第四字段对应的元素属于所述第二子集时,所述第四字段包括第一部分、第二部分和第三部分,所述第四字段的第一部分用于指示与所述第二元素具有相同前缀的源端节点的地址信息的标识或者与所述第二元素具有相同前缀的目的节点的地址信息的标识,所述第四字段的第二部分用于指示所述元素被压缩后的长度,所述第四字段的第三部分用于指示所述被压缩后的所述元素;
在所述第四字段对应的元素与所述元素对应的转发节点的媒体访问控制MAC地址有部分地址相同时,所述第四字段包括第一部分和第二部分,所述第四字段的第一部分用于指示所述元素被压缩后的长度,所述第四字段的第二部分用于指示被压缩后的所述元素。
23.根据权利要求20所述的装置,其特征在于,
所述处理模块,具体用于根据所述第二指示域,确定所述下一转发节点的地址信息所使用的地址压缩方式;
在所述下一转发节点的地址信息属于所述第一子集时,根据所述下一转发节点的地址信息所使用的地址压缩方式,将第三指示域所指示的下一转发节点的地址信息所属的第一子集的前缀信息,添加到所述下一转发节点被压缩后的地址信息的前面,还原所述下一转发节点的地址信息;
在所述下一转发节点的地址信息属于所述第二子集时,根据所述下一转发节点的地址信息所使用的地址压缩方式,将所述源端节点的地址信息或所述目的节点的地址信息与所述下一转发节点的地址信息相同的前缀,添加到所述下一转发节点被压缩后的地址信息的前面,还原所述下一转发节点的地址信息;
在所述下一转发节点的地址信息与所述下一转发节点的媒体访问控制MAC地址有部分地址相同时,根据所述下一转发节点的地址信息所使用的地址压缩方式,将所述下一转发节点的媒体访问控制MAC地址中与所述下一转发节点的地址信息相同的部分,添加到所述下一转发节点被压缩后的地址信息中,还原所述下一转发节点的地址信息。
24.一种通信系统,其特征在于,所述通信系统包括:如权利要求15-18任一项所述的通信装置,以及,如权利要求19-23任一项所述的通信装置。
CN202110068906.7A 2018-05-25 2018-05-25 报文传输方法、通信装置和系统 Active CN112804146B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110068906.7A CN112804146B (zh) 2018-05-25 2018-05-25 报文传输方法、通信装置和系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810516567.2A CN110535812B (zh) 2018-05-25 2018-05-25 报文传输方法、通信装置和系统
CN202110068906.7A CN112804146B (zh) 2018-05-25 2018-05-25 报文传输方法、通信装置和系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201810516567.2A Division CN110535812B (zh) 2018-05-25 2018-05-25 报文传输方法、通信装置和系统

Publications (2)

Publication Number Publication Date
CN112804146A CN112804146A (zh) 2021-05-14
CN112804146B true CN112804146B (zh) 2022-05-10

Family

ID=68616592

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201810516567.2A Active CN110535812B (zh) 2018-05-25 2018-05-25 报文传输方法、通信装置和系统
CN202110070885.2A Pending CN112804147A (zh) 2018-05-25 2018-05-25 报文传输方法、通信装置和系统
CN202110068906.7A Active CN112804146B (zh) 2018-05-25 2018-05-25 报文传输方法、通信装置和系统

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN201810516567.2A Active CN110535812B (zh) 2018-05-25 2018-05-25 报文传输方法、通信装置和系统
CN202110070885.2A Pending CN112804147A (zh) 2018-05-25 2018-05-25 报文传输方法、通信装置和系统

Country Status (4)

Country Link
US (1) US11444874B2 (zh)
EP (1) EP3813318B1 (zh)
CN (3) CN110535812B (zh)
WO (1) WO2019223795A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112368980B (zh) * 2018-07-13 2022-03-01 华为技术有限公司 用于将一个或多个在网业务添加到mpls网络中的方法
CN113395206B (zh) * 2020-03-13 2023-06-02 华为技术有限公司 路由确定方法、装置和网络设备
CN112583829A (zh) * 2020-12-14 2021-03-30 上海英方软件股份有限公司 一种自适配多级端到端传输行情信息流的方法和装置
CN113242180B (zh) * 2021-07-12 2021-12-14 广东省新一代通信与网络创新研究院 报文转发方法、装置、设备、可读存储介质及程序产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645823A (zh) * 2009-09-02 2010-02-10 杭州华三通信技术有限公司 一种6to4隧道的压缩方法及装置
CN101854361A (zh) * 2010-05-21 2010-10-06 南京邮电大学 一种基于物联网的下一代互联网协议报头压缩方法
CN102118356A (zh) * 2009-12-30 2011-07-06 华为技术有限公司 一种报文发送方法和发送装置
CN103152770A (zh) * 2011-12-07 2013-06-12 中国移动通信集团广东有限公司 Ip报头压缩的方法及装置
CN104506439A (zh) * 2014-12-19 2015-04-08 重庆邮电大学 一种适用于WIA-PA网络的IPv6报文传输系统及方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100450100C (zh) * 2006-08-29 2009-01-07 华为技术有限公司 一种路由方法和路由设备
WO2009036792A1 (en) * 2007-09-21 2009-03-26 Greenpeak Technologies Compressed source routing
KR101417744B1 (ko) * 2008-01-17 2014-07-09 경희대학교 산학협력단 인터넷 프로토콜 버전6 기반 저전력 무선네트워크에서이동성 헤더 압축 방법 및 장치
KR101563001B1 (ko) * 2009-03-20 2015-10-23 삼성전자주식회사 인터넷 프로토콜 패킷의 헤더의 압축 방법 및 이를 위한 복수 주소 기반의 네트워크를 구성하는 노드
US8553688B2 (en) * 2011-07-28 2013-10-08 Cisco Technology, Inc. Dynamic allocation of context identifiers for header compression
US20140105098A1 (en) * 2012-10-16 2014-04-17 Stmicroelectronics, Inc. Frame specification for a wireless network communication
CN104168151B (zh) * 2013-05-17 2018-06-12 中国移动通信集团公司 一种基于IPv6的通信方法、监测设备、网关及系统
US20150003458A1 (en) * 2013-06-27 2015-01-01 Futurewei Technologies, Inc. Boarder Gateway Protocol Signaling to Support a Very Large Number of Virtual Private Networks
US11051140B2 (en) * 2014-09-19 2021-06-29 Texas Instruments Incorporated Compression of internet protocol version 6 addresses in wireless sensor networks
CN105743790B (zh) * 2014-12-08 2019-12-03 中兴通讯股份有限公司 一种sdn网络中流量转发的管理方法及装置
CN106656781B (zh) * 2015-11-02 2020-12-11 中兴通讯股份有限公司 一种报文传输的方法、装置和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645823A (zh) * 2009-09-02 2010-02-10 杭州华三通信技术有限公司 一种6to4隧道的压缩方法及装置
CN102118356A (zh) * 2009-12-30 2011-07-06 华为技术有限公司 一种报文发送方法和发送装置
CN101854361A (zh) * 2010-05-21 2010-10-06 南京邮电大学 一种基于物联网的下一代互联网协议报头压缩方法
CN103152770A (zh) * 2011-12-07 2013-06-12 中国移动通信集团广东有限公司 Ip报头压缩的方法及装置
CN104506439A (zh) * 2014-12-19 2015-04-08 重庆邮电大学 一种适用于WIA-PA网络的IPv6报文传输系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IETF Standardization in the Field of the Internet of Things (IoT): A Survey;Isam Ishaq 等;《Journal of Sensor and Actuator Networks》;20130425;全文 *
RFC5664 An IPv6 Routing Header for Source Routes with the Routing Protocol for Low-Power and Lossy Networks (RPL);J. Hui等;《http://rfc.ac.cn/txt/rfc6554.txt》;20120326;全文 *

Also Published As

Publication number Publication date
EP3813318A1 (en) 2021-04-28
EP3813318B1 (en) 2023-08-30
US20210083977A1 (en) 2021-03-18
EP3813318A4 (en) 2021-06-30
CN112804146A (zh) 2021-05-14
CN110535812A (zh) 2019-12-03
CN110535812B (zh) 2021-01-29
US11444874B2 (en) 2022-09-13
CN112804147A (zh) 2021-05-14
WO2019223795A1 (zh) 2019-11-28

Similar Documents

Publication Publication Date Title
CN112804146B (zh) 报文传输方法、通信装置和系统
WO2018059496A1 (en) Method and apparatus for encapsulating /decapsulating data packets at a radio access node
US20190245809A1 (en) System and method for message handling in a network device
CN111917640B (zh) SRv6网络生成段列表、报文转发的方法、设备和系统
CN110138618B (zh) 一种报文处理方法、装置及系统
CN113765857B (zh) 报文转发方法、装置、设备及存储介质
JP6269999B2 (ja) パケット処理方法および装置
CN108123870B (zh) 报文转发方法和装置
CN110830356B (zh) 传输报文的方法和装置
US20220078631A1 (en) Management plane functionality for switched network shared cell configuration of open radio access network (o-ran) system
CN116319617A (zh) 一种在sr网络中转发报文的方法、设备和系统
EP4024782A1 (en) Method by which host network performance requirements may be programmed, device and system
JP6929946B2 (ja) データ伝送方法、装置、送信端、受信端及びシステム
US11218575B2 (en) Communication method and communications device
CN113141338B (zh) 一种消息生成方法、处理方法及装置
CN111277580B (zh) 节点数据发送方法、接收方法以及传输方法
CN116095197B (zh) 数据传输方法及相关装置
JP5328622B2 (ja) スイッチングハブ、フレーム中継方法、及びネットワーク中継機器
CN116567076A (zh) 一种数据报文处理方法及相关装置
CN115733898A (zh) 一种传输数据的方法以及相关设备
CN114556894A (zh) 用于分组转发控制协议消息捆绑的方法、装置和计算机程序产品
CN112714063A (zh) 一种报文传输方法、设备以及数字处理芯片
CN114079675B (zh) 报文处理方法、装置、终端设备及移动宽带上网设备
JP7176237B2 (ja) 情報伝送方法、装置及び電子機器
WO2023078144A1 (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