Network device and method for communication
By introducing a checksum and neutral field into the destination address of the data structure, the problem of data integrity verification in compressed segmented routing is solved, and data integrity verification and compatibility with traditional network devices are achieved in the case of segmentless route extension headers.
Patent Information
- Application Number
- CN202380098207.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-05-16
- Publication Date
- 2025-12-12
AI Technical Summary
In compressed segmented routing, the destination cannot verify whether there are errors in the data structure during the transmission process from the source to the destination, resulting in the inability to effectively verify data integrity.
By introducing a checksum-neutral field into the destination address of the data structure, such that the checksum of this field with the preceding network device identifier is equal to zero, the integrity and checksum consistency of the data structure are maintained during transmission, without relying on the segment routing extension header.
It enables the destination network device to effectively verify whether there are errors in the data structure during transmission without the segment routing extension header, ensuring data integrity, while allowing mixed use with traditional network devices.
Smart Images

Figure CN121128148A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to network devices for communication and methods for communication. Background Technology
[0002] Internet Protocol version 6 (IPv6) is an example of a network protocol used for communication between network devices. This protocol enables an optional feature called source routing. Source routing is a routing method in which the source of a message (e.g., the network device sending the message, which can be called the sender) determines the path of the message (to its destination, i.e., the target network device) by appending a list of routers to the header of the sent message. The source can be called the source network device or the sender. The destination can be called the destination network device or the (target) receiver. A variant of source routing is called segment routing (SR), in which the source of the message can include a segment routing header (SRH) as an extension header to the message (e.g., an IPv6 message), and the SRH includes a list of routers along the path from the source to the destination. Each router in the list is represented by a segment identifier (SID), which can be, for example, 128 bits long (in the case of IPv6).
[0003] A router list (where each router is represented by 128 bits) can incur significant overhead for IPv6 packets that include SRHs. Therefore, SRH compression aims to reduce this overhead by compressing multiple router addresses into a single segment identifier (SID). Thus, an SRH can include multiple SIDs, where each SID includes multiple compressed segment identifiers (C-SIDs).
[0004] The structure of a SID that includes a C-SID list may include a prefix (which may be called a location block) specifying the network (or location) address and a C-SID list. Summary of the Invention
[0005] In source routing, such as in segmented routing, Layer 4 protocols like Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) can use checksum functions for error detection. The checksum can be a double octet field (a field of 2 octets) residing in the Layer 4 header (e.g., the TCP header when TCP is used as a Layer 4 protocol, or the UDP header when UDP is used as a Layer 4 protocol). This checksum can be called a "Layer 4 checksum." The source (sender) of a message such as a TCP or UDP message can calculate the value of the checksum field based on the message header and data. The destination (receiver) can recalculate the checksum value and compare it with the received checksum value (calculated by the source). If the two values are equal, the checksum is successful. Otherwise, an error is considered to exist somewhere in the message, and the message is discarded.
[0006] The layer 4 checksum of the message can be calculated by executing a hash function that takes the message's layer 4 header, layer 4 payload, and layer 3 pseudo-header (e.g., an IP pseudo-header in the case of IP protocol used for communication) as input. The pseudo-header (e.g., an IP pseudo-header) includes several fields from the layer 3 header (e.g., an IPv6 header for the IPv6 protocol, etc.), which includes source and destination addresses (e.g., source IP address and destination IP address, such as source IPv6 address and destination IPv6 address).
[0007] For example, executing a hash function may include: first, decomposing the input (i.e., the Level 4 header, Level 4 payload, and Level 3 pseudo-header) into 16-bit words; second, calculating the one's complement sum of these words; and third, inverting the bits of the result. In this context, the one's complement sum is a sum that satisfies the condition that the result is always a 16-bit word. If the sum exceeds a 16-bit word due to carry, the first and second steps of the hash function algorithm are repeated until the result is 16 bits long.
[0008] For example, suppose the input to the hash function is equal to the hexadecimal representation 0xF0 00 F0 00, that is, to calculate the level 4 checksum of 0xF0 00F0 00, the following steps are performed. First, the input 0xF0 00 F0 00 is decomposed into 16-bit words, which in this hypothetical example are 0xF0 00 and 0xF0 00. Second, the two's complement sum of these words is calculated, which equals 0x1E000 (i.e., 0xF000 + 0xF000 = 0x1E000). Since the result (i.e., 0x1E000) requires more than 16 bits to represent, the first and second steps above are repeated. Therefore, in the repeated first step, 0x1E000 is decomposed into 16-bit words, namely 0x0001 and 0xE000. In the repeated second step, the two's complement sum of these words is calculated, which equals 0xE001 (i.e., 0x0001 + 0xE000 = 0xE001 = 0b1110 0000 0000 0001). Since the result (i.e., 0xE001 = 0b 1110 0000 0000 0001) is a 16-bit word, the third step does not need to exceed 16 bits. In the third step, the bits of the result obtained from the repeated second step (i.e., 0xE001 = 0b 11100000 0000 0001) are inverted, which equals 0b 0001 1111 1111 1110 = 0x1FFE. Therefore, the Level 4 checksum calculated from the input 0xF0 00F0 00 is equal to either the binary representation 0b 0001 1111 1111 1110 or the hexadecimal representation 0x1FFE. In the above description, "0x" represents the hexadecimal representation and "0b" represents the binary representation.
[0009] One property of the Level 4 checksum is that the inverse of the two's complement sum of the 16-bit words generated in the first step based on the initial input used to calculate the checksum, when added to the calculated checksum, equals zero. In the example above, the two 16-bit words generated in the first step based on the initial input used to calculate the checksum are 0xF0 00 and 0xF0 00; the calculated checksum is 0x1FFE. The inverse of the two's complement sum of these three 16-bit words equals zero. That is, 0xF000 + 0xF000 + 0x1FFE = 0x1FFFE, where the result exceeds 16 bits. Therefore, this result is decomposed into two 16-bit words, 0x0001 and 0xFFFE. The sum of these two 16-bit words is 0x0001 + 0xFFFE = 0xFFFF. This result is a 16-bit word, therefore, the inverse of this result is 0x0000.
[0010] Figure 7a An example of an IPv6 data structure, such as an IPv6 packet, is shown. Figure 7aAs shown, data structure 200 includes a Layer 2 header 301, a Layer 3 header 302 (an IPv6 header), a segment routing header (SRH) 303 (as an option for the Layer 3 header), a Layer 4 header 304 including a checksum 400 of the data structure (which can be called a Layer 4 checksum), and a Layer 4 payload 305. In Figure 7, Layer 2 is indicated by the reference numeral "L2", Layer 3 by the reference numeral "L3", and Layer 4 by the reference numeral "L4".
[0011] If the SRH is included in the message (e.g., an IPv6 message), then the SRH is not included in the calculation of the Layer 4 checksum.
[0012] As described above, the destination IP address (which may be referred to as the destination address) is included in the input of the Layer 4 checksum calculation performed at the source. However, if the message includes an SRH (Search Engine Response), then according to the IPv6 protocol, the source of the message uses the final destination IP address (which may be referred to as the final destination address) from the SRH instead of the destination IP address in the IPv6 header to calculate the Layer 4 checksum. Therefore, when a message (transmitted from the source via a source route such as fragmentation routing) arrives at the destination at the end of the path (through which the message travels from the source), the destination calculates the checksum based on the destination IP address in the IPv6 header. A path can be understood as one or more network devices through which a data structure (e.g., a message) received at the destination traverses from the source that sent the received data structure. A portion of the path between two network devices (e.g., the source and a network device that is a router; two network devices that are both routers, or a network device that is a router and the destination) can be called a "fragment".
[0013] In traditional fragmented routing using SRH, the Layer 4 checksum is calculated by the source based on the destination address. In fragmented routing such as compressed fragmented routing, the Layer 4 checksum is calculated based on the transmitted destination address instead of SRH. This means the destination cannot verify the checksum. In other words, during fragmented routing, the destination address is changed at each network device (i.e., router) along the path from source to destination. Therefore, the destination address received by the destination differs from the initial destination address transmitted by the source. Consequently, the Layer 4 checksum calculated by the source using the initial destination address differs from the Layer 4 checksum calculated by the destination using the destination address received by the destination. Therefore, in fragmented routing such as compressed fragmented routing, without SRH, the destination cannot use the calculated Layer 4 checksum to check for data structure errors during transmission along the path from source to destination.
[0014] In view of the foregoing, the present invention aims to provide an improved network device and communication method for segment routing (SR). The object is to provide a network device and method for communication that can perform segment routing (e.g., compressed segment routing) without a segment router header (SRH), while enabling the destination network device to verify whether errors have occurred during the transmission of data structures received from the source via the path, or to verify whether errors exist in the data structures received by the destination network device.
[0015] These and other objectives are achieved by the embodiments of the invention described in the independent claims. Advantageous implementations are further specified in the dependent claims.
[0016] A first aspect of the present invention provides a network device for communication. The network device is used to generate a data structure including a destination address. The destination address includes, starting from its most significant bit, a network identifier, a plurality of network device identifiers (each network device identifier identifying another network device), and a field immediately preceding the last of the plurality of network device identifiers. The checksum of the field and all one or more consecutive network device identifiers preceding the field is equal to zero.
[0017] In other words, according to the first aspect, a network device is provided that generates a data structure including a destination address such that all network device identifiers of the destination address (except for the last network device identifier) do not affect the calculation of the checksum (e.g., Layer 4 checksum) of the data structure. The term "effect" can be used as a synonym for "(influence)". That is, the checksum of the field and one or more consecutive network device identifiers preceding the field is equal to zero. Therefore, when transmitting the data structure from the network device to a router network device (which may be called a router), changing multiple network device identifiers (e.g., deleting a network device identifier adjacent to a network identifier) will not cause a difference between the result of calculating the checksum (e.g., Layer 4 checksum) at the network device and the result of calculating the checksum at the destination network device. This holds true as long as no errors occur during the transmission of the data structure from the network device to the destination via one or more routers, the data structure received at the destination is error-free. That is, when calculating the Layer 4 checksum at the network device, one or more consecutive network device identifiers preceding the field do not participate in the checksum calculation because the checksum of the field and one or more consecutive network device identifiers is equal to zero. Therefore, when a data structure including a destination address is received by the destination, where the received destination address only includes the network identifier of the initial destination address and the last network device identifier, the Layer 4 checksum calculation performed by the destination (assuming no errors occurred during the transmission of the data structure from the source to the destination) will produce the same result as the Layer 4 checksum calculation performed by the network device. That is, as mentioned above, due to the presence of the initial destination address field, one or more consecutive network device identifiers preceding the initial destination address field do not participate in the checksum. Therefore, for the initial destination address, only the network identifier and the last network device identifier participate in the checksum. The initial destination address is the destination address of the data structure generated by the network device.
[0018] Therefore, the network device according to the first aspect can perform segmented routing (e.g., compressed segmented routing) without a segment router header (SRH), while enabling the destination network device to verify whether an error has occurred during the transmission of the data structure received by the destination network device. The network device according to the first aspect achieves this without changing the network protocol used to transmit the data structure (e.g., IPv6).
[0019] Furthermore, since the network device according to the first aspect only adds an additional field to the destination address without changing the network device identifier, conventional segmented routing can be performed. That is, data structures can be transmitted from the network device to conventional network devices such as conventional routers. This allows for the establishment of a hybrid network using both the network device according to the invention and conventional network devices.
[0020] Network devices can be used to communicate according to network protocols. That is, a network device can be a network device used to communicate according to network protocols. The network protocol can be the Internet Protocol (IP). For example, the network protocol can be IPv6. IPv6 stands for "Internet Protocol version 6". The destination address can be abbreviated to the word "address". The destination address can be an IP address, such as a destination IPv6 address or a destination IP address. A network device can be a node in a network; that is, a network device can be part of the network. A network device can be a host. A network device can be a computer. A network device can be a server. A network interface card (NIC). A network device can be called a "source" or "source network device".
[0021] The destination address of a data structure includes information about the destination network device (to which the data structure is addressed) and information about the path (to the destination network device). The last network device identifier among the multiple network device identifiers of the destination address (from the perspective of the most significant bit of the destination address) can indicate the destination network device. That is, the last network device identifier can be the destination network device identifier. The term "destination identifier" can be used as a synonym for "destination network device identifier." One or more other network device identifiers among the multiple network device identifiers of the destination address can indicate one or more router network devices (which can be referred to as one or more routers) used to forward or route the data structure from the network device to the destination. That is, one or more other network device identifiers can be one or more router network device identifiers. The term "router identifier" can be used as a synonym for "router network device identifier."
[0022] At least one of a plurality of network device identifiers (optionally, each network device identifier) may include location information (e.g., a location field) and optionally function information (e.g., a function field). Optionally, at least two of the plurality of network device identifiers may have different lengths (i.e., equal to different numbers of bits). The plurality of network device identifiers may be an integer number of 16-bit words. That is, the number of bits in each network device identifier may be equal to 16 bits or an integer multiple of 16 bits, wherein the integer multiple is greater than or equal to 2.
[0023] The destination address of the data structure includes information about routing the data structure to the destination network device. The route can be segmented routing, such as compressed segmented routing. Network devices can be used to perform segmented routing (e.g., compressed segmented routing) by generating a data structure that includes the destination address, as described herein. Network devices can be used to provide or allow segmented routing (SR), such as compressed segmented routing. Network devices can be used to generate a data structure that includes the destination address based on a segmented routing scheme (e.g., a compressed segmented routing scheme). For example, in the case where the network device is used to transmit a data structure according to the IPv6 protocol, the destination address may include 128 bits.
[0024] The data structure can be a message, such as a data packet. For example, the data structure can be an IPv6 message.
[0025] A network identifier can be a prefix of a destination address. A network identifier can be called a "location block" or "location". A network identifier can be a network ID or network ID. When a network device is used to communicate according to the IPv6 network protocol, the network identifier can be an IPv6 network identifier. Network devices can be used for segmented routing. A network device identifier can be a compressed segment identifier (C-SID). A network device identifier can be a list of segments from multiple C-SIDs. The terms "multiple" and "two or more" can be used synonyms. The terms "network identifier" and "network device identifier" can be used synonyms for "network identifier" and "network device identifier," respectively.
[0026] The field may be referred to as the "checksum neutral value field". The checksum may be a Level 4 checksum. For example, the checksum may be a Level 4 checksum according to the IP protocol (e.g., IPv6 protocol). The checksum of the field and all one or more consecutive network device identifiers preceding the field can be calculated by performing a hash function. The network device may be used to calculate (i.e., generate) the field such that the checksum of the field and all one or more consecutive network device identifiers preceding the field (e.g., a Level 4 checksum) is equal to zero.
[0027] Optionally, the destination address of the data structure may also include a last field immediately following the last network device identifier among the multiple network device identifiers; wherein the checksum of the last field and all or more consecutive network device identifiers preceding the last field is equal to zero. The aforementioned one or more consecutive network device identifiers preceding the last field are or include the last network device identifier among the multiple network device identifiers. The term "last field" may be used as a synonym for the term "last field". The term "last field" or "end field" should not be construed as an optional implementation where no additional information (i.e., bits) may be arranged after "last field" or "end field". That is, optionally, the destination address of the data structure may include information (i.e., bits) following an optional last field. Therefore, the term "last field" is chosen to emphasize that the last field is immediately following the last network device identifier among the multiple network device identifiers. Nevertheless, there may be optional implementations where no additional information (i.e., bits) is arranged after the last field.
[0028] A network device can be used to compute (i.e., generate) a last field such that the checksum (e.g., a Level 4 checksum) of the last field and all one or more consecutive network device identifiers preceding the last field is equal to zero.
[0029] Optionally, when the destination address includes two network device identifiers, the aforementioned field, and an optional last field, each network device identifier is followed immediately by the field. Therefore, the destination address includes a network identifier, which may be followed by a pair of network device identifiers and the field, wherein the checksum of each pair of network device identifiers and the field is equal to zero. The aforementioned pair may be a compressed segment identifier (C-SID).
[0030] The description of the field (immediately preceding the last network device identifier) applies accordingly to the optional last field. In the case of checksums mentioned in this document, the checksum can be a Level 4 checksum.
[0031] The term "continuous" means "one after another, without any other content in between," that is, "following each other continuously (without any interruption)." For example, continuous network device identifiers refer to adjacent network device identifiers that are not separated from any other network device identifiers by fields or any other content. In other words, continuous network device identifiers are network device identifiers that are close to or arranged sequentially, where no two network device identifiers are separated by fields or any other content.
[0032] The phrases “(arranged) before” and “(arranged) in front of” can be used as synonyms for the word “before”. Accordingly, the phrases “closely (arranged) before” and “closely (arranged) in front of” can be used as synonyms for the word “right next to”.
[0033] The phrase "the field immediately preceding the last network device identifier in a plurality of network device identifiers" can mean that the field is positioned between the penultimate network device identifier and the last network device identifier (from the perspective of the most significant bit of the destination address).
[0034] In one implementation of the first aspect, the network device is used to transmit the data structure to a network device indicated by a network device identifier adjacent to the network identifier of the destination address.
[0035] Network devices can be used to generate and transmit data structures including destination addresses according to a segmented routing scheme (e.g., a compressed segmented routing scheme). In other words, network devices can be used to transmit data structures according to a segmented routing scheme (e.g., a compressed segmented routing scheme).
[0036] Network devices can be used to optionally transmit data structures including destination addresses to a destination network device (i.e., the destination) via one or more router network devices (i.e., one or more routers) according to a segmentation routing scheme (e.g., a compressed segmentation routing scheme). The one or more router network devices can be one or more network devices according to the second aspect of the invention. Optionally, in the case of multiple router network devices, at least one of the multiple router network devices (other than the router network device immediately preceding the destination network device) can be a conventional router network device. The aforementioned router network device immediately preceding the destination network device can be referred to as a "last-hop router". The destination network device can be a conventional destination network device.
[0037] A network device, one or more router network devices, and a destination network device can be nodes in a network; that is, they can be part of the network. The number of router network devices that a network device intends to transmit a data structure to a destination network device is one less than the number of network device identifiers for the destination address of the data structure.
[0038] The phrase “network device identifier immediately following the network identifier” can be used as a synonym for the phrase “network device identifier adjacent to the network identifier”. The word “close to” can be used as a synonym for the word “adjacent”. The word “adjacent” should be understood as the first element (e.g., network device identifier) adjacent to the second element (e.g., network identifier) indicating that the first and second elements are arranged close to each other, with no arrangement fields or anything else between them.
[0039] Optionally, the network device can be used to directly transmit the data structure to the destination network device. In this case, the network device can be used to generate the data structure such that the destination address of the data structure includes, starting from its most significant bit, a network identifier, a network device identifier identifying the other network device (i.e., the destination network device), and optionally a last field arranged immediately after the network identifier. The checksum of the optional last field and the network device identifier immediately preceding it is equal to zero.
[0040] In one implementation of the first aspect, the destination address of the data structure further includes at least one other field immediately preceding the network device identifier among the plurality of network device identifiers that is not adjacent to the network identifier and is not the last network device identifier; the other field is generated such that the checksum of the other field and all one or more consecutive network device identifiers among the plurality of network device identifiers preceding the other field is equal to zero.
[0041] In other words, the checksum of the other fields and all one or more consecutive network device identifiers preceding the other fields is equal to zero. The checksum may be a Level 4 checksum. The network device may be used to compute (i.e., generate) the other fields such that the checksum (e.g., a Level 4 checksum) of the other fields and all one or more consecutive network device identifiers preceding the other fields is equal to zero.
[0042] The description of the field (immediately preceding the last network device identifier) is valid for at least one other optional field accordingly.
[0043] In one implementation of the first aspect, the destination address of the data structure further includes other fields immediately preceding each of the plurality of network device identifiers that is not adjacent to the network identifier and is not the last network device identifier; the other fields are generated such that the checksum of the other fields and the network device identifiers immediately preceding the other fields is equal to zero.
[0044] In other words, the checksum of the other fields (i.e., each other field) and the network device identifiers among the plurality of network device identifiers immediately preceding the other fields is equal to zero. The checksum may be a Level 4 checksum. The network device may be used to compute (i.e., generate) the other fields (i.e., each other field) such that the checksum of the other fields and the network device identifiers among the plurality of network device identifiers immediately preceding the other fields (e.g., a Level 4 checksum) is equal to zero.
[0045] The description of the field (immediately preceding the last network device identifier) is valid for each of the other optional fields accordingly.
[0046] In the above optional implementation, the last field can optionally be arranged immediately after the last network device identifier among the multiple network device identifiers; wherein the checksum of the last field and the last network device identifier among the multiple network device identifiers immediately preceding the last field is equal to zero.
[0047] Optionally, when the destination address includes three or more network device identifiers, the aforementioned field, one or more optional other fields, and a last field, each network device identifier is followed immediately by a field. Therefore, the destination address includes a network identifier, which may be followed by pairs of network device identifiers and fields, wherein the checksum of each pair of network device identifiers and fields is equal to zero. These pairs may be compressed segment identifiers (C-SIDs).
[0048] The descriptions of the field (immediately preceding the last network device identifier) and one or more optional fields apply to the last optional field accordingly.
[0049] In one implementation of the first aspect, the other fields include 16 bits.
[0050] In one implementation of the first aspect, the data structure does not include a segment routing extension header.
[0051] In other words, network devices can be used to generate data structures that do not include segment routing extension headers.
[0052] In one implementation of the first aspect, the third-level header of the data structure includes the destination address.
[0053] In other words, network devices can be used to generate data structures such that the Layer 3 header of the data structure includes the destination address. When the network device is used to communicate according to an IP protocol (e.g., IPv6), the Layer 3 header is an IP header (e.g., an IPv6 header).
[0054] In one implementation of the first aspect, the network device is configured to calculate a checksum of a portion of the destination address adjacent to the network identifier of the destination address, wherein the calculated checksum is included in the layer 4 header of the data structure.
[0055] In other words, the network device can be used to calculate a checksum of multiple network device identifiers for the destination address, the said field, and optionally one or more other optional fields. Alternatively, the network device can be used to calculate a checksum of multiple network device identifiers for the destination address, the said field, and optionally one or more other optional fields and optionally the last field.
[0056] In one implementation of the first aspect, the field comprises 16 bits.
[0057] In order to implement the network device according to the first aspect of the present invention, some or all of the implementations and optional features of the first aspect can be combined with each other.
[0058] A second aspect of the present invention provides a network device for communication. The network device is configured to receive a data structure including a destination address, and determine whether a network identifier followed by a network device identifier adjacent to the destination address is equal to the address of the network device. If the network identifier followed by the destination address is equal to the address of the network device, the network device is configured to generate a modified destination address of the received data structure in the following manner:
[0059] - Delete the network device identifier of the destination address and shift the remaining portion of the destination address adjacent to the network identifier of the destination address, or
[0060] - Delete the network device identifier and the field immediately following the network device identifier in the destination address, and shift the rest of the destination address adjacent to the network identifier in the destination address.
[0061] In other words, the network device is used to delete the network identifier and, if there is no field immediately following the network device identifier adjacent to the network identifier (e.g., in conjunction with the field described in the network device description according to the first aspect, or alternatively, other optional fields), shift the remaining portion of the destination address adjacent to the network identifier of the destination address. The network device is used to delete the network device identifier and the field immediately following the network device identifier of the destination address, and, if the field immediately following the network device identifier adjacent to the network identifier (e.g., in conjunction with the field described in the network device description according to the first aspect, or alternatively, other optional fields), shift the remaining portion of the destination address adjacent to the network identifier of the destination address.
[0062] Network devices can be used to communicate according to network protocols. That is, a network device can be a network device used to communicate according to network protocols. A network device can be a node in a network; that is, a network device can be part of the network. A network device can be a computer. A network interface card (NIC). A network device can be a router. A network device can be a switch (e.g., a network switch).
[0063] The above description of the network device according to the first aspect, such as the description of data structure, communication type, network protocol type, and fields, is correspondingly applicable to the network device according to the second aspect. The network device according to the second aspect can be the network device according to the first aspect.
[0064] In one implementation of the second aspect, the network device is configured to transmit the data structure including the modified destination address to a network device identified by a network device identifier adjacent to the network identifier of the modified destination address.
[0065] In other words, network devices can be used to route received data structures including modified destination addresses. Network devices can be used to provide or allow segment routing (SR), such as compressed segment routing. Network devices can be used to generate modified destination addresses for data structures based on segment routing schemes (SR schemes) such as compressed segment routing schemes, and then transmit the data structures. In other words, network devices can be used to transmit data structures according to segment routing schemes.
[0066] In one implementation of the second aspect, the network device is configured to: when the network identifier following the network identifier and adjacent to the network identifier of the destination address is not equal to the address of the network device.
[0067] - Use the destination address to determine which network device the data structure should be transmitted to;
[0068] - Transmit the received data structure, including the destination address, to the determined network device.
[0069] In other words, network devices can be used to perform traditional routing, such as traditional segmented routing, when the network identifier following the network identifier of the destination address is not equal to the address of the network device.
[0070] In one implementation of the second aspect, the network device is configured to perform the following operation triggered by information of a network device identifier adjacent to the network identifier of the destination address:
[0071] - Delete the network device identifier of the destination address and shift the remaining portion of the destination address adjacent to the network identifier of the destination address, or
[0072] - Delete the network device identifier and the field immediately following the network device identifier of the destination address, and shift the remaining portion of the destination address adjacent to the network identifier of the destination address.
[0073] Information about the network device identifier adjacent to the network identifier of the destination address can indicate whether a field (e.g., in conjunction with the field described in the network device description according to the first aspect, or alternatively, other optional fields) exists immediately following the network device identifier. Optionally, the aforementioned information is location information (e.g., a location field) and optional functional information (e.g., a function field) of the network device identifier adjacent to the network identifier of the destination address. When a field (e.g., in conjunction with the field described in the network device description according to the first aspect, or alternatively, other fields) is arranged immediately following the network device identifier adjacent to the network identifier, the information about the network device identifier adjacent to the network identifier can instruct the network device to delete the network device identifier and the field immediately following the network device identifier of the destination address, and shift the remaining portion of the destination address adjacent to the network identifier of the destination address.
[0074] Optionally, the network device can be used to perform the following operations triggered by information received from outside the network device (e.g., a network controller):
[0075] - Delete the network device identifier of the destination address and shift the remaining portion of the destination address adjacent to the network identifier of the destination address, or
[0076] - Delete the network device identifier and the field immediately following the network device identifier of the destination address, and shift the remaining portion of the destination address adjacent to the network identifier of the destination address.
[0077] In one implementation of the second aspect, the field comprises 16 bits.
[0078] The above description of the network device according to the second aspect is applicable to the network device according to the first aspect.
[0079] The network device and its implementation and optional features described in the second aspect have the same advantages as the network device and its corresponding implementation and optional features described in the first aspect.
[0080] To implement the network device according to the second aspect of the present invention, some or all of the implementations and optional features of the second aspect can be combined with each other.
[0081] A third aspect of the present invention provides a method for communication. The method includes generating a data structure comprising a destination address. The destination address includes, starting from its most significant bit, a network identifier, a plurality of network device identifiers (each network device identifier identifying another network device), and a field immediately preceding the last of the plurality of network device identifiers. The checksum of the field and all one or more consecutive network device identifiers preceding the field is equal to zero.
[0082] The method can be a communication method based on a network protocol. For example, the protocol could be IPv6.
[0083] In one implementation of the third aspect, the method includes transmitting the data structure to a network device indicated by a network device identifier adjacent to the network identifier of the destination address.
[0084] In one implementation of the third aspect, the destination address of the data structure further includes at least one other field immediately preceding the network device identifier among the plurality of network device identifiers that is not adjacent to the network identifier and is not the last network device identifier; the other field is generated such that the checksum of the other field and all one or more consecutive network device identifiers among the plurality of network device identifiers preceding the other field is equal to zero.
[0085] In one implementation of the third aspect, the destination address of the data structure further includes other fields immediately preceding each of the plurality of network device identifiers that is not adjacent to the network identifier and is not the last network device identifier; the other fields are generated such that the checksum of the other fields and the network device identifiers immediately preceding the other fields is equal to zero.
[0086] In one implementation of the third aspect, the other fields include 16 bits.
[0087] In one implementation of the third aspect, the data structure does not include a segment routing extension header.
[0088] In one implementation of the third aspect, the third-level header of the data structure includes the destination address.
[0089] In one implementation of the third aspect, the method includes calculating a checksum of a portion of the destination address adjacent to the network identifier of the destination address, wherein the calculated checksum is included in the layer 4 header of the data structure.
[0090] In one implementation of the third aspect, the field comprises 16 bits.
[0091] The description of the network device according to the first aspect is correspondingly effective for the method according to the third aspect.
[0092] The method and its implementation and optional features according to the third aspect have the same advantages as the network device and its corresponding implementation and optional features according to the first aspect.
[0093] To implement the method according to the third aspect of the present invention, some or all of the implementations and optional features of the third aspect described above may be combined with each other.
[0094] A fourth aspect of the present invention provides a method for communication. The method includes: receiving a data structure including a destination address, and determining whether a network device identifier followed by a network identifier adjacent to the destination address is equal to the address of the network device. The method further includes: if the network device identifier followed by the destination address is equal to the address of the network device, generating a modified destination address of the received data structure in the following manner:
[0095] - Delete the network device identifier of the destination address and shift the remaining portion of the destination address adjacent to the network identifier of the destination address, or
[0096] - Delete the network device identifier and the field immediately following the network device identifier in the destination address, and shift the rest of the destination address adjacent to the network identifier in the destination address.
[0097] The method can be a communication method based on a network protocol. For example, the protocol could be IPv6.
[0098] In one implementation of the fourth aspect, the method includes: transmitting the data structure including the modified destination address to a network device identified by a network device identifier adjacent to the network identifier of the modified destination address.
[0099] In one implementation of the fourth aspect, the method includes: if the network device identifier following the network identifier adjacent to the network identifier of the destination address is not equal to the address of the network device, determining which network device to transmit the data structure to using the destination address; and transmitting the received data structure including the destination address to the determined network device.
[0100] In one implementation of the fourth aspect, the method includes performing the following operation triggered by information of a network device identifier adjacent to the network identifier of the destination address:
[0101] - Delete the network device identifier of the destination address and shift the remaining portion of the destination address adjacent to the network identifier of the destination address, or
[0102] - Delete the network device identifier and the field immediately following the network device identifier of the destination address, and shift the remaining portion of the destination address adjacent to the network identifier of the destination address.
[0103] In one implementation of the fourth aspect, the field comprises 16 bits.
[0104] The description of the network device according to the second aspect is correspondingly effective for the method according to the fourth aspect.
[0105] The method and its implementation and optional features according to the fourth aspect have the same advantages as the network device and its corresponding implementation and optional features according to the first aspect.
[0106] To implement the method according to the fourth aspect of the present invention, some or all of the implementations and optional features of the fourth aspect described above may be combined with each other.
[0107] It should be noted that all devices, elements, units, and modules described in this application can be implemented in software or hardware elements or any combination thereof. All steps performed by the various entities described in this application, and the functions to be performed by the various entities described, are intended to refer to the respective entities performing the respective steps and functions. Although the specific functions or steps to be performed by external entities are not reflected in the detailed description of the specific elements of the entities performing the specific steps or functions in the following description of specific embodiments, those skilled in the art will understand that these methods and functions can be implemented by the corresponding hardware or software elements or any combination thereof. Attached Figure Description
[0108] The following detailed description of specific embodiments, in conjunction with the accompanying drawings, will illustrate the above aspects and their implementation methods, as shown in the drawings:
[0109] Figure 1 An example of a network device according to the present invention is shown.
[0110] Figure 2 It shows Figure 1 Examples of network devices.
[0111] Figure 3 It shows Figure 1 Examples of network devices.
[0112] Figure 4 It shows Figure 1 Examples of network devices.
[0113] Figure 5 An example of a network device according to the present invention is shown.
[0114] Figure 6 It shows Figure 5 Examples of network devices.
[0115] Figure 7a An example of a data structure is shown.
[0116] Figure 7b An example of a data structure according to the present invention is shown.
[0117] Figure 8a An example of the destination address of the data structure according to the present invention is shown.
[0118] Figure 8b An example of the destination address of the data structure according to the present invention is shown.
[0119] Figure 9 An example of the method according to the present invention is shown.
[0120] Figure 10 An example of the method according to the present invention is shown.
[0121] In the accompanying drawings, corresponding elements are labeled with the same reference numerals. Detailed Implementation
[0122] Figure 1 An example of a network device according to the present invention is shown. Figure 1 The network device described herein is an example of a network device according to the first aspect of the present invention. Figure 1 The network devices are correspondingly valid. In the attached figures, the reference numeral "MSB" indicates the most significant bit, while the reference numeral "LSB" indicates the least significant bit.
[0123] Figure 1 Network device 1 is a network device for communication, wherein the network device is used to generate a data structure 200 including a destination address 100. The destination address 100 includes, starting from its most significant bit (MSB), a network identifier 101, a plurality of network device identifiers 102 (each network device identifier 102 identifies another network device), and a field 103a immediately preceding the last network device identifier 102c among the plurality of network device identifiers 102. The checksum (e.g., a level 4 checksum) of field 103a and all consecutive network device identifiers 104a of the plurality of network device identifiers 102 preceding field 103a is equal to zero. In the figures, reference numeral "102a" denotes a network device identifier among the plurality of network device identifiers 102 adjacent to network identifier 101; reference numeral "102c" denotes the last network device identifier among the plurality of network device identifiers 102; and reference numeral "102b" denotes any network device identifier among the plurality of network device identifiers 102 that is not adjacent to network identifier 101 and is not the last network device identifier 102c. Figure 1 The number of network device identifiers 102 shown is merely an example and can vary. That is, destination address 100 may include two or more network device identifiers 102. In the case where destination address 100 includes two network device identifiers 102, only one network device identifier 104a (the network device identifier 102a adjacent to network identifier 101) exists before field 103a. In the case where destination address includes only two network device identifiers 102, the following description of multiple consecutive network device identifiers 104a before field 103a is correspondingly valid for a single network device identifier 104a before field 103a.
[0124] Since the checksum (e.g., Level 4 checksum) of field 103a and all consecutive network device identifiers 104a preceding field 103a in the network device identifiers 102 is equal to zero, consecutive network device identifiers 104a preceding field 103a in the network device identifiers 102 do not participate in the checksum (e.g., Level 4 checksum) calculation of data structure 200. In other words, when destination address 100 is used to calculate the checksum (e.g., Level 4 checksum) of data structure 200, only network identifier 101 and the last network identifier 102c can participate in the checksum. Since the checksum of these network device identifiers 104a of destination address 100 and field 103a is equal to zero, other network device identifiers 104a of destination address 100 do not participate in the checksum of destination address 100. That is, field 103a invalidates or prevents these network device identifiers 104a from participating in the checksum of destination address 100.
[0125] One or more network device identifiers 102a and optionally 102b, excluding the last network device identifier 102c, among the plurality of network device identifiers 102 for destination address 100, may be router identifiers used to identify the corresponding router used to route or transmit data structure 200 from network device 1 to the destination network device (to which data structure 200 is targeted). Therefore, one or more network device identifiers 102a and optionally 102b, excluding the last network device identifier 102c, among the plurality of network device identifiers 102, may include information about the path from network device 1 to the destination network device to which data structure 200 is targeted (e.g., the path may be defined).
[0126] Since the consecutive network device identifiers 104a preceding field 103a do not affect the checksum calculation of destination address 100, all of these network device identifiers 104a can be deleted by the router network device. Data structure 200 can then be transmitted along with field 103a through the router network device, ensuring that the destination network device only receives the data structure containing the modified destination address. The modified destination address includes network field 101 and the last network device identifier 102c of the destination address 100 generated by network device 1. In other words, as long as no errors occur during the transmission of data structure 200 from network device 1 to the destination network device (to which data structure 200 is targeted) via one or more routers, the checksum of the modified destination address received by the destination can be equal to the checksum of the destination address 100 generated by network device 1. As mentioned earlier, the checksum of the modified destination address received by the destination can correspond to the checksum calculation of network identifier 101 and the last network device identifier 102c of the destination address 100 generated by network device 1. The checksum of destination address 100 generated by network device 1 can correspond to the checksum calculation of network identifier 101, multiple network device identifiers 102, and field 103a. As mentioned above, due to the presence of field 103a, network device identifier 104a preceding field 103a does not participate in the checksum of destination address 100. Therefore, the result of calculating the checksum of network identifier 101, multiple network device identifiers 102, and field 103a for destination address 100 is the same as the result of calculating only the checksum of network identifier 101 and the last network device identifier 102c for destination address 100.
[0127] therefore, Figure 1 Network device 1 can perform segmented routing (e.g., compressed segmented routing) without a segment router header (SRH), while enabling the destination network device to verify whether errors occurred during the transmission of the received data structure from the source via the path. That is, as described above, the checksum of the entire destination address 100 generated by network device 1 is equal to the checksums of the network identifier 101 and the last network device identifier 102c of destination address 100. In other words, assuming no errors occurred during the transmission of data structure 200 from network device 1 to the destination device via one or more routers, the checksum of the destination address 100 calculated by network device 1 will be equal to the checksum of the modified destination address calculated by the destination network device, where the modified destination address includes the network identifier 101 and the last network device identifier 102c of destination address 100, starting from the most significant bit (MSB).
[0128] Figure 8a An example is shown whereby the destination network device can receive a destination address 100 (which may be generated by network device 1) and a modified destination address 600 after data structure 200 is transmitted from network device 1 to the destination network device via one or more routers.
[0129] Network device 1 may include a processor or processing circuitry (not shown) for performing, conducting, or initiating various operations of network device 1 as described herein. The processing circuitry may include hardware and / or may be software-controlled. The hardware may include analog or digital circuitry, or both. Digital circuitry may include components such as application-specific integrated circuits (ASICs), field-programmable arrays (FPGAs), digital signal processors (DSPs), or multi-purpose processors. Network device 1 may also include memory circuitry storing one or more instructions executable by a processor or processing circuitry, particularly under software control. For example, the memory circuitry may include a non-transitory storage medium storing executable software code that, when executed by the processor or processing circuitry, causes various operations of network device 1 to be performed. In one example, the processing circuitry includes one or more processors and a non-transitory memory connected to one or more processors. The non-transitory memory may carry executable program code that, when executed by one or more processors, causes network device 1 to perform, conduct, or initiate the operations or methods described herein.
[0130] about Figure 1 For further information on the network device, please refer to the description of the network device according to the first aspect of the present invention.
[0131] Figure 2 It shows Figure 1 Examples of network devices. Figure 1 The description of network devices for Figure 2 The network devices are correspondingly effective.
[0132] like Figure 2 As shown, network device 1 can be used to transmit a data structure 200 including a destination address 100 to network device 2 indicated by network device identifier 102a among a plurality of network device identifiers 102 adjacent to the network identifier 101 of the destination address 100. Therefore, the address of another network device 2 can be equal to network identifier 101 followed by network device identifier 102a adjacent to the network identifier 101 of the destination address 100.
[0133] For further information about the other network device 2, please refer to [link / reference]. Figure 5 The description of the network device. That is, another network device 2 could be... Figure 5 Network equipment.
[0134] Figure 3 It shows Figure 1 Examples of network devices. Figure 1 and Figure 2 The description of network devices for Figure 3 The network devices are correspondingly effective.
[0135] like Figure 3 As shown, the destination address 100 of data structure 200 may further include at least one other field 103b immediately preceding network device identifier 102b, which is not adjacent to network identifier 101 and is not the last network device identifier 102c among the plurality of network device identifiers 102. The checksum of the other field 103b and all one or more consecutive network device identifiers 104b1 among the plurality of network device identifiers 102 preceding the other field 103b is equal to zero. Figure 3 As shown, the arrangement of other fields 103b, which is adjacent to network device identifier 102b (not adjacent to network identifier 101 and not the last network device identifier 102c) among multiple network device identifiers 102, is only an example and can therefore be different. In cases where other fields 103b in the destination address have different arrangements, Figure 3 The description is accordingly valid. Figure 3 The number of at least one other field 103b shown (i.e., one other field 103b) is merely an example and may vary. Destination address 100 may include one other field 103b and multiple other fields 103b, two fewer than the number of network device identifiers 102 in destination address 100. In the case where two or more other fields 103b exist in destination address 100, Figure 3 The description is accordingly valid. Figure 4 An example is shown where the number of other fields 103b in destination address 100 is 2 less than the number of network device identifiers 102 in destination address 100.
[0136] like Figure 3 As shown, with Figure 1Compared to the consecutive network device identifiers 104a preceding field 103a in destination address 100, since other fields 103b exist in destination address 100, the consecutive network device identifiers 104a preceding field 103a in the plurality of network device identifiers 102c immediately adjacent to the last network device identifier 102c does not include the network device identifier 102a adjacent to network identifier 101. This is because the term "consecutive" means "one after another, without any other content in between," that is, "following each other continuously (without any interruption)." In other words, consecutive network device identifiers refer to adjacent network device identifiers that are not separated by fields or any other content from any two network device identifiers mentioned above. In other words, consecutive network device identifiers refer to network device identifiers that are close to or arranged sequentially, where any two network device identifiers are not separated by fields or any other content. Figure 3 In the example, the network device identifier 102a adjacent to the network identifier 101 is not part of the consecutive network device identifier 104a preceding field 103a, because the other field 103b is arranged between the network device identifier 102a adjacent to the network identifier 101 and the first network device identifier 102b in the consecutive network device identifier 104a preceding field 103a (from the perspective of the most significant bit (MSB) of the destination address 100).
[0137] Figure 3 Examples of network devices have the characteristics described above. Figure 1 The same advantages described in network devices, because in computing Figure 3 When performing a checksum on destination address 100 (e.g., a Layer 4 checksum), only network identifier 101 and the last network device identifier 102c participate in the checksum. This is because the checksums of other fields 103b and network device identifier 104b1 preceding other fields 103b (e.g., a Layer 4 checksum) are equal to zero; and the checksums of field 103a and all consecutive network device identifiers 104a preceding field 103a are equal to zero.
[0138] Figure 4 It shows Figure 1 Examples of network devices. Figure 1 , Figure 2 and Figure 3 The description of network devices for Figure 4 The network devices are correspondingly effective.
[0139] like Figure 4As shown, the destination address 100 of data structure 200 may also include other fields 103b immediately preceding each network device identifier 102a that is not adjacent to network identifier 101 and is not the last network device identifier 103 among the plurality of network device identifiers 102. The checksum of the other fields 103b and the network device identifiers 104b1 or 104b2 among the plurality of network device identifiers 102 immediately preceding the other fields 103b is equal to zero. That is, the checksum of each other field 103b and the corresponding network device identifier 104b1 or 1042 among the plurality of network device identifiers 102 immediately preceding the other fields 103b is equal to zero. Figure 4 The number of network device identifiers 102 shown for destination address 100 is for illustrative purposes only and may vary. Figure 4 The number of other fields 103b shown for destination address 100 is for illustrative purposes only and may vary. Different numbers of network device identifiers 102 and / or different numbers of other fields 103b may exist. Figure 4 The description is accordingly valid. According to... Figure 4 For example, the number of other fields 103b is 2 less than the number of network device identifiers 102 in destination address 100. Therefore, due to Figure 4 The destination address 100 exemplarily includes four network device identifiers 102, therefore Figure 4 The destination address 100 includes two additional fields 103b, which are 2 fewer than the number of network device identifiers 102 in the destination address 100 (i.e., 4 network device identifiers 102 – 2 = 2 additional fields 103b).
[0140] Figure 2 , Figure 3 and Figure 4 At least two optional features of network devices can be combined with each other.
[0141] Figure 5 An example of a network device according to the present invention is shown. Figure 5 Network device 2 is an example of a network device according to the second aspect of the present invention. The description of the network device according to the second aspect of the present invention is for... Figure 5 The network devices are correspondingly effective.
[0142] Figure 5 Network device 2 is a network device used for communication. Network device 2 is used to receive data structure 200 including destination address 100. Figure 1 The description of destination address 100 for Figure 5The destination address 100 is valid. Network device 2 is used to determine whether the network device identifier 102a following the network identifier 101 adjacent to the destination address 100 is equal to the address of network device 2. According to... Figure 5 For example, network identifier 101 can be called "Net-ID", and multiple network device identifiers 102 can be called "ND-ID1, ND-ID2, ..., ND-ID1". n–1 and ND-ID n Field 103a can be called "Fld". The number of network device identifiers 102 for destination address 100 is only an example and can vary. That is, destination address 100 can include two or more network device identifiers 102 (i.e., the exponent n can be greater than or equal to 2, n≥2). Figure 5 The description is accordingly valid.
[0143] Network device 2 is used to generate the modified destination address 500 of the received data structure 200 in the following manner, when network identifier 101 is followed by network device identifier 102a, which is adjacent to network identifier 101 and equal to the address of network device 2:
[0144] - Delete the network device identifier 102a of destination address 100, and delete the rest of the destination address 100 adjacent to the network identifier 101 of destination address 100 (such as...). Figure 5 (As shown by the dashed line) shift, or
[0145] - Delete network device identifier 102a and the field immediately following network device identifier 102a in destination address 100, and delete the rest of destination address 100 adjacent to network identifier 101 in destination address 100 ( Figure 5 (Not shown in the image) Shift.
[0146] The second alternative is the following: Network Device Identifier (ND-ID) n–1 It is the network device identifier 102a adjacent to the network identifier 101. That is, in this case, field 103a will be adjacent to the network device identifier ND-ID. n–1 Delete them together. In the second alternative to deleting network device identifier 102a adjacent to network identifier 101, the aforementioned field can be field 103a (immediately before the last network device identifier 102c) or other field 103b (immediately before network device identifier 102b that is not adjacent to network identifier 101 and is not the last network device identifier 102c, such as...). Figure 2 or Figure 3 (As shown).
[0147] exist Figure 5In the example, assume that network device identifier 102a, which is adjacent to network identifier 101 of destination address 100, indicates network device 2 (e.g., Figure 5 As shown in ND-ID1), and only the field 103a exists immediately before the last network device identifier 102c among the multiple network device identifiers 102. Therefore, network device 2 can determine that its address is equal to network identifier 101 followed by network device identifier 102a adjacent to network identifier 101. Therefore, network device 2 can generate the modified destination address 500 of the received data structure 200 by deleting network device identifier 102a of destination address 100 and shifting the remaining part of destination address 100 adjacent to network identifier 101 of destination address 100. Therefore, as Figure 5 As shown, the modified network identifier 501 of the destination address 500 is the network identifier "Net-ID" of the destination address 100. The network device identifier 502a adjacent to the modified network identifier 501 of the address 500 (that is, from the perspective of the most significant bit (MSB), the first network device identifier 502a) is the network device identifier ND-ID2 of the destination address 100 (that is, the second network device identifier 102b), and so on.
[0148] like Figure 5 As shown, the bits of the modified destination address 500 after the last network device identifier 502c (equal to the last network device identifier 102c of destination address 100) can be set to any value or to zero. When the bits are set to arbitrary values, the network protocol used for communication can define that the destination network device calculates the checksum of the received destination address (e.g., a Layer 4 checksum) by only calculating the checksum of the network identifier and the network device identifier adjacent to the network identifier. Alternatively or additionally, the above can be defined by information that can be stored and / or received by the destination network device. The bits that can be set to arbitrary values or to zero can be the deleted bits of the network device identifier 102a adjacent to the network identifier 101 of destination address 100.
[0149] Let's further assume a scenario ( Figure 5 (not shown in the image), wherein the destination address 100, starting from the most significant bit (MSB), includes only the network identifier Net-ID and the network device identifier ND-ID, which is the network device identifier 102a adjacent to the network identifier Net-ID. n–1 The network device identifier ND-ID, which is the last network device identifier in the 102c network device identifier set. nAnd field 103a, which precedes the last network device identifier 102c and is positioned immediately after network device identifier 102a. This scenario could be as follows: data structure 200 has already passed through network device identifiers ND-ID1, ND-ID2, ..., ND-ID... n–2 The network device (i.e., the router) is indicated for transmission, and network device 2 is identified by the network device identifier ND-ID. n–1 instruct( Figure 5 (Not shown in the image). In the above scenario, network device 2 can determine that its address is equal to network identifier 101 (i.e., Net-ID) followed by network device identifier 102a (i.e., ND-ID) adjacent to network identifier 101. n–1 Therefore, network device 2 can delete network device identifier 102a (i.e., ND-ID). n–1 The modified destination address of the received data structure 200 is generated by shifting the remaining portion of the destination address 100 adjacent to the network device identifier 102a of the destination address 100, and the field 103a (i.e., Fld) immediately following the network device identifier 102a of the destination address 100. The bits of the modified destination address following the last network device identifier can be set to any value or to zero.
[0150] Network device 2 can be used to perform the following operations triggered by information from network device identifier 102a adjacent to network identifier 101 of destination address 100:
[0151] - Delete the network device identifier 102a adjacent to the network identifier 101 of the destination address 100, and shift the rest of the destination address 100 adjacent to the network identifier 101 of the destination address 100, or
[0152] - Delete the fields of network device identifier 102a adjacent to network identifier 101 and immediately following network device identifier 102a of destination address, and shift the rest of destination address 100 adjacent to network identifier 101 of destination address 100.
[0153] Therefore, in Figure 5 In the example, the information of the network device identifier 102a adjacent to the network identifier 101 of the destination address 100 can cause or trigger network device 2 to delete the network device identifier 102a adjacent to the network identifier 101 of the destination address 100, and shift the rest of the destination address 100 adjacent to the network identifier 101 of the destination address 100 (to generate) Figure 5 The modified destination address 500 is shown. Alternatively or additionally, the above can be defined by information that can be stored and / or received by the destination network device 2.
[0154] In the above hypothetical scenario ( Figure 5 In (not shown), the information of network device identifier 102a adjacent to network identifier 101 of destination address 100 can cause or trigger network device 2 to delete network device identifier 102a (ND-ID) adjacent to network identifier 101. n–1 The network device identifier 102a immediately following the destination address is field 103a (Fld), and the remainder of the destination address 100 adjacent to the network identifier 101 of the destination address 100 is shifted. Alternatively or additionally, the above can be defined by information that can be stored and / or received by the destination network device 2.
[0155] Network device 2 may include a processor or processing circuitry (not shown) for performing, conducting, or initiating various operations of network device 2 as described herein. The processing circuitry may include hardware and / or may be software-controlled. The hardware may include analog or digital circuitry, or both. The digital circuitry may include components such as application-specific integrated circuits (ASICs), field-programmable arrays (FPGAs), digital signal processors (DSPs), or multi-purpose processors. Network device 2 may also include memory circuitry storing one or more instructions executable by a processor or processing circuitry, particularly under software control. For example, the memory circuitry may include a non-transitory storage medium storing executable software code that, when executed by the processor or processing circuitry, causes various operations of network device 2 to be performed. In one example, the processing circuitry includes one or more processors and a non-transitory memory connected to one or more processors. The non-transitory memory may carry executable program code that, when executed by one or more processors, causes network device 2 to perform, conduct, or initiate the operations or methods described herein.
[0156] about Figure 6 For further information on the network device, please refer to the description of the network device according to the second aspect of the present invention.
[0157] Figure 5 It shows Figure 5 Examples of network devices. Figure 6 The description of network devices for Figure 6 The network devices are correspondingly effective.
[0158] like Figure 6As shown, network device 2 can be used to transmit data structure 200 including the modified destination address 500 to network device 3 identified by network device identifier 502a, which is adjacent to the network identifier 501 of the modified destination address 500. Therefore, as... Figure 5 As shown, the address of network device 3 can be equal to network identifier 501 followed by network device identifier 502a adjacent to the network identifier 501 of the modified destination address 500. The implementation of network device 3 can be similar to... Figure 5 The network device 2 is the same. Therefore, Figure 6 The description of network device 2 is for Figure 7a Network device 3 may be effective.
[0159] Figure 7b An example of a data structure is shown. Figure 7b An example of a data structure according to the present invention is shown.
[0160] like Figure 7b As shown, data structure 200 includes a Layer 2 header 301, a Layer 3 header 302, a Layer 4 header 304, and a Layer 4 payload 305. The Layer 3 header 302 can be an IPv6 header if the communication protocol used to transmit data structure 200 is IPv6. Figure 7b In the figures, the second layer is indicated by the reference numeral "L2", the third layer by the reference numeral "L3", and the fourth layer by the reference numeral "L4". For example... Figure 7b As shown, the Layer 3 header 302 may include the destination address 100 (or a modified destination address 500) of data structure 200, and the Layer 4 header 304 may include a checksum 400 (which may be referred to as a Layer 4 checksum). The checksum 400 can be calculated using the destination address 100 of data structure 200. The checksum 400 is the checksum of data structure 200 calculated by the source network device that transmits data structure 200 to the destination network device via one or more routers. One or more routers represent the path between the source and the destination. As described above, the destination address 100 of data structure 200 defines one or more routers and the destination network device.
[0161] therefore, Figure 7a Examples of the data structure 200 according to the present invention and Figure 7b The difference in data structure 200 is that, Figure 8a Data structure 200 does not include the segment routing header (SRH) 303.
[0162] Figure 8b An example of the destination address of the data structure according to the present invention is shown. Figure 8a An example of the destination address of the data structure according to the present invention is shown.Figures 1 to 4 Destination address 100 is the destination address of the data structure, which was originally created by Figures 1 to 4 Any network device in the graph, such as the source network device, transmits data through multiple network device routers (identified by network device identifiers ND-ID1, ND-ID2, ..., ND-ID...). n–1 Instructions) are transmitted to the destination network device (by the network device identifier ND-ID). n (Instructions). The source network device can be... Figure 5 Any of the network devices shown in the diagram. Multiple router network devices can be... Figure 6 or Figure 1 The network device shown. Figure 5 Description of destination address 100 and Figure 8a The description of destination address 100 Figure 8a The destination address 100 is valid accordingly. Figure 5 The destination address 100 can be obtained by Figure 6 or Figure 8b The network device 2, or a router network device, receives the data. This router network device is indicated by a network device indicator 102a adjacent to the network identifier 101 of the destination address 100. Figure 8a The destination address 600 is from Figure 8b The changed destination address of the (initial) destination address 100. Figure 8b Destination address 600 indicates the last network device router on the path (as indicated by the network device identifier ND-ID of destination address 100). n–1 The modified destination address of the data structure (originally transmitted from the source network device) transmitted to the destination network device (assuming no errors occurred during transmission from the source along the path). In other words, Figure 8a The modified destination address (originating from) is shown in the data structure received by the destination network device. Figure 8a The destination address (assuming no errors occurred during the transmission from the source to the destination via the path).
[0163] from Figure 8b and Figure 8a It can be concluded that Figure 8b The calculation of the checksum (e.g., the Level 4 checksum) of the destination address 100. Figure 8aThe calculation of the checksum (e.g., the Layer 4 checksum) of the modified destination address 600 yields the same result. That is, the checksum of field 103a and all consecutive network device identifiers 104a preceding field 103a in the plurality of network device identifiers 102 is equal to zero. Therefore, the aforementioned consecutive network device identifiers 104a preceding field 103a, as well as field 103a itself, do not participate in the calculation of the checksum of destination address 100. In other words, when calculating... Figure 8b When calculating the checksum of destination address 100, only network identifier 101 and the last network device identifier 102c participate in the checksum calculation. When the destination network device calculates... Figure 8a When checking the destination address 600, only the network device identifier 601 (for...) is used. Figure 8a The network identifier 101 for destination address 100 and the network device identifier 602a (for Figure 8a The last network device identifier 102c of the destination address 100 participates in the checksum calculation. That is, the bits after the network device identifier 602a are set to zero or any value that does not participate in the checksum calculation. Bits that are zero do not participate in the checksum. With the bits set to arbitrary values, the network protocol used for communication can define that the destination network device calculates the checksum of the received destination address 600 (e.g., a Layer 4 checksum) by only calculating the checksum of the network identifier 601 and the network device identifier 602a adjacent to the network identifier 601. Alternatively or additionally, the above can be defined by information that can be stored and / or received by the destination network device.
[0164] Therefore, from Figure 8b and Figure 9 The example demonstrates that this invention enables a destination network device to verify whether an error occurred during the transmission of a data structure from a source network device to a destination network device via one or more router network devices by calculating a checksum (e.g., a Layer 4 checksum) of the data structure using the destination address 600 of the received data structure. If the calculated checksum equals the checksum calculated by the source network device using the (initial) destination address 100, no error has occurred. Otherwise, the destination network device may know that an error has occurred.
[0165] Figure 9 An example of the method according to the present invention is shown. Figure 9 The method described is an example of the method according to the third aspect of the present invention. The description of the method according to the third aspect of the present invention is for... Figure 9 The method is correspondingly effective.
[0166] Figure 9 This method is a method used for communication. For example... Figures 1 to 4As shown, the method includes: in step S1, generating a data structure including a destination address, wherein the destination address includes, starting from its most significant bit, a network identifier, multiple network device identifiers (each network device identifier identifying another network device), and a field immediately preceding the last network device identifier among the multiple network device identifiers. The checksum (e.g., a Level 4 checksum) of this field and all one or more consecutive network device identifiers preceding this field is equal to zero.
[0167] Figure 9 Network device 1 in any of the graphs can be used to perform Figure 5 The method. Figure 6 or Figure 9 Network device 2 can be used to perform Figure 9 The method.
[0168] about Figure 10 For further information on the method, please refer to the description of the method according to the third aspect of the present invention.
[0169] Figure 10 An example of the method according to the present invention is shown. Figure 10 The method is an example of the method according to the fourth aspect of the present invention. The description of the method according to the fourth aspect of the present invention is for... Figure 10 The method is correspondingly effective.
[0170] Figure 10 This method is a method used for communication. For example... Figure 5 As shown, the method includes: in step S10, receiving a data structure including a destination address. The method further includes: in step S20 after step S10, determining whether a network device identifier followed by the network identifier adjacent to the network identifier of the destination address is equal to the address of the network device. The method further includes: in step S30 after step S20, if the network device identifier followed by the network identifier is equal to the address of the network device, generating the modified destination address of the received data structure in the following manner:
[0171] - Delete the network device identifier of the destination address and shift the rest of the destination address adjacent to the network identifier of the destination address, or
[0172] - Delete the network device identifier and the field immediately following the network device identifier of the destination address, and shift the rest of the destination address adjacent to the network identifier of the destination address.
[0173] Figure 6 or Figure 10 Network device 2 can be used to perform Figures 1 to 4 The method.
[0174] Figure 10 Network device 1 in any of the graphs can be used to perform Figure 10 The method.
[0175] about For further information on the method, please refer to the description of the method according to the fourth aspect of the present invention.
[0176] This invention has been described in conjunction with various embodiments as examples and implementations. However, based on a study of the drawings, the invention, and the independent claims, those skilled in the art will be able to understand and implement other variations when practicing the claimed subject matter. In the claims and the description, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" does not exclude a plurality. A single element or other unit may fulfill the function of several entities or items described in the claims. The fact that certain measures are enumerated in dissimilar dependent claims does not in itself imply that combinations of these measures cannot be used in advantageous implementations.
Claims
1. A network device (1) for communication, characterized in that, The network device (1) is used for: Generate a data structure including a destination address (100), wherein the destination address (100) includes, starting from its most significant bit: Network identifier (101). Multiple network device identifiers (102), each network device identifier (102) identifies another network device. The field (103a) immediately preceding the last network device identifier (102c) among the plurality of network device identifiers (102); The checksum of the field (103a) and all one or more consecutive network device identifiers (104a) in the plurality of network device identifiers (102) preceding the field (103a) is equal to zero.
2. The network device (1) according to claim 1, characterized in that, The network device (1) is used to transmit the data structure (200) to the network device (2) indicated by the network device identifier (102a) adjacent to the network identifier (101) of the destination address (100).
3. The network device (1) according to claim 1 or 2, characterized in that, The destination address (100) of the data structure also includes at least one other field (103b) immediately preceding the network device identifier (102b) of the plurality of network device identifiers (102) that is not adjacent to the network identifier (101) and is not the last network device identifier (102c). The other field (103b) is generated such that the checksum of the other field (103b) and all one or more consecutive network device identifiers (104b1) in the plurality of network device identifiers (102) preceding the other field (103b) is equal to zero.
4. The network device (1) according to claim 1 or 2, characterized in that, The destination address (100) of the data structure also includes other fields (103b) immediately preceding each network device identifier (102b) that is not adjacent to the network identifier (101) and is not the last network device identifier (102c). The other field (103b) is generated such that the checksum of the other field (103b) and the network device identifiers (104b1, 104b2) in the plurality of network device identifiers (102) immediately preceding the other field (103b) is equal to zero.
5. The network device (1) according to claim 3 or 4, characterized in that, The other fields (103b) consist of 16 bits.
6. The network device (1) according to any one of the preceding claims, characterized in that, The data structure (200) does not include the segment routing extension header (303).
7. The network device (1) according to any one of the preceding claims, characterized in that, The third-level header (302) of the data structure (200) includes the destination address (100, 500).
8. The network device (1) according to any one of the preceding claims, characterized in that, The network device (1) is used for: Calculate the checksum (400) of a portion of the destination address (100, 500) that is adjacent to the network identifier (101, 501) of the destination address (100, 500). The fourth-level header (304) of the data structure (200) includes the calculated checksum (400).
9. A network device (2) for communication, characterized in that, The network device (2) is used for: Receive a data structure (200) including the destination address (100); Determine whether the network device identifier (102a) following the network identifier (101) adjacent to the destination address (100) is equal to the address of the network device (2); When the network identifier (101) followed by the network device identifier (102a) is equal to the address of the network device (2), the modified destination address (500) of the received data structure (200) is generated by the following operation: Delete the network device identifier (102a) of the destination address (100), and shift the remaining portion of the destination address (100) adjacent to the network identifier (101) of the destination address (100), or Delete the network device identifier (102a) and the field immediately following the network device identifier (102a) in the destination address (100), and shift the rest of the destination address (100) that is adjacent to the network identifier (101) of the destination address (100).
10. The network device (2) according to claim 9, characterized in that, The network device (2) is used to transmit the data structure (200) including the modified destination address (500) to the network device (3) identified by the network device identifier (502a) adjacent to the network identifier (501) of the modified destination address (500).
11. The network device (2) according to claim 9 or 10, characterized in that, The network device (2) is configured to: when the network device identifier (102a) following the network identifier (101) adjacent to the destination address (100) is not equal to the address of the network device (2), The destination address (100) is used to determine which network device the data structure (200) is to be transmitted to. The received data structure (200) including the destination address (100) is transmitted to the determined network device.
12. The network device (2) according to any one of claims 9 to 11, characterized in that, The network device (2) is configured to perform the following operations triggered by information from the network device identifier (102a) adjacent to the network identifier (101) of the destination address (100): Delete the network device identifier (102a) of the destination address (100), and shift the remaining portion of the destination address (100) adjacent to the network identifier (101) of the destination address (100), or Delete the network device identifier (102a) and the field immediately following the network device identifier (102a) of the destination address, and shift the remaining portion of the destination address (100) that is adjacent to the network identifier (101) of the destination address (100).
13. The network device (1, 2) according to any one of the preceding claims, characterized in that, The field (103a) consists of 16 bits.
14. A method for communication, characterized in that, The method includes: Generation (S1) includes a data structure comprising a destination address, wherein the destination address comprises, starting from its most significant bit: Network identifier, Multiple network device identifiers, each identifying another network device. The field immediately preceding the last network device identifier among the plurality of network device identifiers; Wherein, the checksum of the field and all one or more consecutive network device identifiers preceding the field is equal to zero.
15. A method for communication, characterized in that, The method includes: Receive (S10) a data structure including the destination address; (S20) Determine whether the network device identifier following the network identifier adjacent to the network identifier of the destination address is equal to the address of the network device; When the network identifier followed by the network device identifier is equal to the address of the network device, the modified destination address of the received data structure is generated through the following operation (S30): Delete the network device identifier of the destination address, and shift the remaining portion of the destination address adjacent to the network identifier of the destination address, or Delete the network device identifier and the field immediately following the network device identifier in the destination address, and shift the rest of the destination address that is adjacent to the network identifier in the destination address.