Method of performing segment routing in data communications network and routing node apparatus

The method and apparatus for segment routing in data networks address the overhead and flexibility issues by using checksum-neutral segment swapping with C-SIDs, improving efficiency and flexibility without modifying Layer 4 checksum, enabling advanced traffic engineering and compatibility with existing protocols.

WO2026067984A1PCT designated stage Publication Date: 2026-04-02HUAWEI TECH CO LTD +1
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-09-27
Publication Date
2026-04-02

AI Technical Summary

Technical Problem

Conventional SRv6 segment routing systems face challenges due to large overhead from multiple 128-bit SIDs in packet headers, requiring modifications to the IPv6 destination address and Layer 4 Checksum, limiting flexibility and efficiency.

Method used

A method and apparatus for segment routing that uses a destination address structure with specific bit groups, allowing for checksum-neutral segment swapping without requiring updates to the Layer 4 checksum, using compressed segment identifiers (C-SIDs) that are not restricted to multiples of 16 bits, enabling efficient routing decisions and flexible path control.

Benefits of technology

This approach reduces processing overhead, enhances network performance, and provides greater control over packet paths while maintaining compatibility with existing protocols, allowing for advanced traffic engineering and flexible routing policies.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024077291_02042026_PF_FP_ABST
    Figure EP2024077291_02042026_PF_FP_ABST
Patent Text Reader

Abstract

A method for performing segment routing in a data communications network is disclosed. A routing node (106) along path between sender node (102) and receiver node (104) receives data packet with destination address (302). The destination address includes a first group of bits (306) with fixed amount of most significant bits, a second group of bits (308) specifying first segment, and a third group of bits (310) specifying second segment. The second and third groups have equal fixed amounts of bits and the distance in the destination header between the second group of bits and the third group of bits is a multiple of 16 bits. The routing node (106) determines if the first and second groups match its address. If matched, the routing node (106) generates a modified destination address (304) by swapping the second and third groups of bits.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] METHOD OF PERFORMING SEGMENT ROUTING IN DATA COMMUNICATIONS NETWORK AND

[0002] ROUTING NODE APPARATUS

[0003] TECHNICAL FIELD

[0004] The present disclosure relates generally to the field of wireless communication systems and more specifically, to a method of performing segment routing in a data communications network and a routing node apparatus thereof.

[0005] BACKGROUND

[0006] Segment Routing in IPv6 (SRv6) is a routing approach that allows a source of a packet to determine a path of the packet by incorporating a list of routers in a header of the transmitted packet. The segment routing, defined for IPv6, uses a Segment Routing Header (SRH) as an extension header, which includes a list of Segment Identifiers (SIDs) representing routers along the packet's path.

[0007] Conventional SRv6 systems face challenges due to the large overhead incurred by including multiple 128-bit SIDs in the packet header. SRH compression techniques have been developed to address such challenges, which aim to reduce overhead by compressing several router addresses into a single SID. Such compression techniques often involve modifying the IPv6 destination address to include a compressed list of router addresses, represented by Compressed SIDs (C-SIDs).

[0008] However, the conventional compression techniques have significant limitations such as requiring modifications to the IPv6 destination address in the packet header, necessitating updates to the Layer 4 Checksum field (e.g., Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) Checksum). Some conventional compression techniques, while avoiding updates to the Layer 4 Checksum field, restrict the length of the C-SID field to multiples of 16 bits, limiting flexibility in address representation. Thus, the conventional compression techniques present challenges related to packet processing efficiency, routing flexibility, and network performance, and there exists a technical problem of how to perform checksumneutral compressed segment routing without an SRH, using C-SIDs that are not restricted to multiples of 16 bits.

[0009] Therefore, in light of the foregoing discussion, there exists a need to overcome the aforementioned drawbacks associated with the conventional compression techniques in order to improve routing efficiency, reduce packet overhead, and enhance flexibility in network address representation.

[0010] SUMMARY

[0011] The present disclosure provides a method of performing segment routing in a data communication network and a routing node apparatus. The present disclosure provides a solution to the existing technical problem of how to perform checksum-neutral compressed segment routing without an SRH, using C-SIDs that are not restricted to multiples of 16 bits. An objective of the present disclosure is to provide a solution that overcomes at least partially the problems encountered in the prior art and provides an improved method of performing segment routing in the data communication network and an improved routing node apparatus.

[0012] One or more objectives of the present disclosure are achieved by the solutions provided in the enclosed independent claims. Advantageous implementations of the present disclosure are further defined in the dependent claims. In one aspect, the present disclosure provides a method of performing segment routing in a data communication network carried out by a routing node of the data communications network. The routing node is located along a path of the data communications network between a sender node and a receiver node. The method comprises receiving a data packet, being sent by the sender node along the path to the receiver node. The data packet includes a destination address which includes a first group of bits having a first fixed amount of most significant bits, a second group of bits having a second fixed amount of bits, the second group of bits specifying a first segment along the path, a third group of bits having a third fixed amount of bits, the third group of bits specifying a second segment along the path. The second segment follows the first segment as the data packet traverses the path. The second fixed amount of bits is equal to the third fixed amount of bits. The method further comprises determining whether the first group of bits and the second group of bits of the destination address of the received data packet match an address of the routing node. Based on the determining of a match, the method further comprises generating a modified destination address by swapping the second and third groups of bits.

[0013] The method enables compressed segment routing without requiring updates to the Layer 4 checksum, which significantly reduces processing overhead at each hop. For IPv4 network, the method also eliminates the need to update the IPv4 header checksum. The method is applicable to both IPv4 and IPv6 networks, providing a versatile solution for modem networking environments. The method enhances network performance, reduces latency, and provides greater control over packet paths without compromising on efficiency or compatibility of the data communication network.

[0014] In an implementation form, the segment routing uses a segment routing header in a data packet.

[0015] The inclusion of the segment routing header in the data packet allows for flexible and efficient routing decisions. By including routing information, via the segment routing header, directly in the data packet, network devices can make forwarding decisions based on the data packet's content rather than relying solely on routing tables, resulting in improved network utilization and enabling advanced traffic engineering capabilities.

[0016] In a further implementation form, the segment routing header includes a list of routers along a path.

[0017] By including the list of routers in the segment routing header, the data communication network enables source routing, where the sender node specifies the segment routing path the data packet should take. The data communication network, thus gives network operators fine-grained control over traffic flow, allowing the network operators to optimize paths for specific requirements such as latency, bandwidth, or security.

[0018] In a further implementation form, each router in the list is represented by a segment identifier (SID).

[0019] By using SIDs, the data communication network also provides a level of abstraction that can simplify network management and allow for more flexible routing policies. The network operators can also assign meanings to the SIDs that go beyond simple node identification, enabling advanced traffic engineering techniques.

[0020] In a further implementation form, based on determining that there is not a match, routing the data packet according to its destination address using the first group of bits.

[0021] The re-routing of the data packet allows for gradual deployment of the segment routing without requiring an immediate overhaul of the data communication network.

[0022] In an implementation form, the second group of bits is a compressed segment identifier representing a first router, and the third group of bits is a compressed segment identifier representing a destination host for the data packet. By using compressed SIDs, the data communication network allows for efficient encoding of routing information within the limited space of an IP address. The compression enables the inclusion of multiple routing segments without significantly increasing packet overhead.

[0023] In a further implementation form, a fourth group of bits is located in the destination address in between the second group of bits and the third group of bits.

[0024] The fourth group of bits enables routers to make more informed decisions about packet handling without requiring deep packet inspection, potentially improving processing speed and enabling more sophisticated network services.

[0025] In a further implementation form, a fourth group of bits is located in the destination address subsequent to the third group of bits.

[0026] Placing the fourth group of bits at the end of the destination address allows for variable-length encoding of additional data without affecting the core routing information. Such flexibility is useful for implementing features like traffic classification or application-specific routing policies without modifying the basic routing mechanism.

[0027] In a further implementation form, the distance in the destination header between the second group of bits and the third group of bits is a multiple of 16 bits.

[0028] A 16-bit alignment is required for preserving the checksum when performing segment swapping operation. Since an Internet checksum algorithm operates on 16-bit words, swapping segments that are aligned to 16-bit boundaries does not change the checksum value.

[0029] In a further implementation form, the receiver node receives the data packet and verifies the checksum of the data packet.

[0030] By verifying the checksum at the receiving node, the data communication network ensures the integrity of the data of the data packet, detecting any corruption that may have occurred during transmission.

[0031] In another aspect, a routing node apparatus for use in performing segment routing in a data communications network is disclosed. The routing node is located along a path of the data communications network between a sender node and a receiver node. The routing node apparatus comprises a receiving unit which receives a data packet, being sent by the sender node along the path to the receiver node. The data packet includes a destination address which includes a first group of bits having a first fixed amount of most significant bits, a second group of bits having a second fixed amount of bits, the second group of bits specifying a first segment along the path, a third group of bits having a third fixed amount of bits, the third group of bits specifying a second segment along the path. The second segment follows the first segment as the data packet traverses the path. The second fixed amount of bits is equal to the third fixed amount of bits. The routing node apparatus further comprises a determining unit which determines whether the first group of bits and the second group of bits of the destination address of the received data packet match an address of the routing node. The routing node apparatus further comprises a generating unit which, based on the determining of a match, generates a modified destination address by swapping the second and third groups of bits.

[0032] The routing node apparatus achieves all the advantages and technical effects of the method of the present disclosure.

[0033] It is to be appreciated that all the aforementioned implementation forms can be combined.

[0034] It has to be noted that all devices, elements, circuitry, units and means described in the present application could be implemented in the software or hardware elements or any kind of combination thereof. All steps which are performed by the various entities described in the present application as well as the functionalities described to be performed by the various entities are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if, in the following description of specific embodiments, a specific functionality or step to be performed by external entities is not reflected in the description of a specific detailed element of that entity which performs that specific step or functionality, it should be clear for a skilled person that these methods and functionalities can be implemented in respective software or hardware elements, or any kind of combination thereof. It will be appreciated that features of the present disclosure are susceptible to being combined in various combinations without departing from the scope of the present disclosure as defined by the appended claims.

[0035] Additional aspects, advantages, features and objects of the present disclosure would be made apparent from the drawings and the detailed description of the illustrative implementations construed in conjunction with the appended claims that follow.

[0036] BRIEF DESCRIPTION OF THE DRAWINGS

[0037] The summary above, as well as the following detailed description of illustrative embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the present disclosure, exemplary constructions of the disclosure are shown in the drawings. However, the present disclosure is not limited to specific methods and instrumentalities disclosed herein. Moreover, those in the art will understand that the drawings are not to scale. Wherever possible, like elements have been indicated by identical numbers.

[0038] Embodiments of the present disclosure will now be described, by way of example only, with reference to the following diagrams wherein:

[0039] FIG. 1 is a block diagram of a data communication network, in accordance with an embodiment of the present disclosure;

[0040] FIG. 2 is a block diagram that depicts a routing node apparatus for use in performing segment routing in a data communications network, in accordance with an embodiment of the present disclosure;

[0041] FIG. 3 is a diagram illustrating a segment swapping operation in the destination address, in accordance with an embodiment of the present disclosure;

[0042] FIG. 4 is a diagram that depicts an example of the segment swapping operation in the data communication network, in accordance with an embodiment of the present disclosure; and

[0043] FIG. 5 is a flow chart of a method of performing segment routing in a data communications network, in accordance with an embodiment of the present disclosure.

[0044] In the accompanying drawings, an underlined number is employed to represent an item over which the underlined number is positioned or an item to which the underlined number is adjacent. A non-underlined number relates to an item identified by a line linking the non-underlined number to the item. When a number is non-underlined and accompanied by an associated arrow, the non-underlined number is used to identify a general item at which the arrow is pointing.

[0045] DETAILED DESCRIPTION OF EMBODIMENTS

[0046] The following detailed description illustrates embodiments of the present disclosure and ways in which they can be implemented. Although some modes of carrying out the present disclosure have been disclosed, those skilled in the art would recognize that other embodiments for carrying out or practicing the present disclosure are also possible. FIG. 1 is a block diagram of a data communication network, in accordance with an embodiment of the present disclosure. With reference to FIG. 1 , there is shown the block diagram of a data communication network 100 that includes a sender node 102, a receiver node 104, and a routing node 106 connected through a communication network 110. The routing node further comprises a hardware processor 108.

[0047] The data communication network 100 refers to a network comprising the sender node 102, the receiver node 104, and the routing node 106. The data communication network 100 specifically refers to the network employing a segment routing technique of the present disclosure. The data communication network 100 is useful in scenarios like IPv6 (Internet Protocol version 6)-based systems and IPv4 (Internet Protocol version 4)-based systems, demonstrating efficient compressed segment routing without requiring updates to the Layer 4 checksum. The data communication network 100 allows for flexible routing paths while maintaining compatibility with existing network protocols. In an example, the data communication networks 100 may include but are not limited to, Internet, local area networks (LANs), and wide area networks (WANs), where devices communicate and exchange data using segment swapping operation that preserves both checksum correctness and path information.

[0048] The sender node 102 refers to a component within the data communication network 100 responsible for transmitting data packets. In an example, the sender node 102 may include but are not limited to, a transmitter, a sender, a transceiver, an encoder, a user terminal of a cellular network, a customized hardware for wireless telecommunication, or any other portable or nonportable electronic device, client device, user equipment, and the like.

[0049] The receiver node 104 refers to a component in the data communication network 100 responsible for receiving the data packets transmitted by the sender node 102. In an example, the receiver node 104 may include but are not limited to, a transmitter, a transceiver, an encoder, a user terminal of a cellular network, a customized hardware for wireless telecommunication, or any other portable or non-portable electronic device, client device, user equipment, and the like.

[0050] The routing node 106 refers to a component in the data communication network 100 responsible for receiving the data packets transmitted by the sender node 102 and sending the data packets to the receiver node 104. The routing node 106 is located along a path of the data communications network 100 between the sender node 102 and the receiver node 104. In an example, the routing node 106 may include but are not limited to, a transmitter, a transceiver, an encoder, a user terminal of a cellular network, a customized hardware for wireless telecommunication, or any other portable or non-portable electronic device, client device, user equipment, and the like.

[0051] The routing node 106 comprises a hardware processor 108. The hardware processor 108 refers to a computational element that is configured to receive and process the data packets in the data communication network 100. The hardware processor 108 may refer to one or more individual processors, processing devices, and various elements associated with a processing device that may be shared by other processing devices. Additionally, the one or more individual processors, processing devices, and elements are arranged in various architectures for responding to and processing the instructions that drive the routing node 106. In some implementations, the hardware processor 108 may be an independent unit and may be located outside the routing node 106 of the data communication network 100. Examples of the hardware processor 108 may include but are not limited to, a hardware processor, a digital signal processor (DSP), a microprocessor, a microcontroller, a complex instruction set computing (CISC) processor, an application-specific integrated circuit (ASIC) processor, a reduced instruction set (RISC) processor, a very long instruction word (VLIW) processor, a state machine, a data processing unit, a graphics processing unit (GPU), and other processors or control circuitry.

[0052] The communication network 110 includes a medium (e.g., a communication channel) through which the sender node 102 communicates with the receiver node 104 via the routing node 106. The communication network 114 may be a wired or wireless communication network. Examples of the communication network 114 may include, but are not limited to, Internet, a Local Area Network (LAN), a wireless personal area network (WPAN), a Wireless Local Area Network (WLAN), a wireless wide area network (WWAN), a cloud network, a Long-Term Evolution (LTE) network, a plain old telephone service (POTS), a Metropolitan Area Network (MAN), and / or the Internet.

[0053] In operation, the routing node 106 is configured to receive the data packet, being sent by the sender node 102 along the path to the receiver node 104. In other words, the routing node 106 receives the data packet sent by the sender node 102 along the segment routing path to the receiver node 104. The data packet is received by the routing node's 106 network interface, which processes the incoming data packets on the data communication network 100, further allowing the routing node 106 to examine and modify the data packet's routing information, enabling efficient segment routing through the data communication network 100.

[0054] The data packet includes a destination address which includes a first group of bits, a second group of bits, and a third group of bits. In other words, the data packet's destination address is structured with three distinct groups of bits: the first group of bits, the second group of bits, and the third group of bits. Such a structure of the destination address is implemented by defining specific bit ranges within the IP address. For instance, in an IPv4 address like "10.2.0.5", the first group might be the network ID (10), the second group (2), and the third group (5). Such structure of the destination address allows for embedding multiple routing segments within a single IP address, enabling compact representation of the routing path without the need for additional headers. There is further provided that the first group of bits has a fixed amount of most significant bits. The second group of bits has a second fixed amount of bits. The third group of bits has a third fixed amount of bits. The second fixed amount of bits is equal to the third fixed amount of bits. The second group of bits specifies a first segment along the path. The third group of bits specifies a second segment along the path. The second segment follows the first segment as the data packet traverses the path. In the above-given IPv4 example, it may translate to 8 bits for the first group of bits and 8 bits each for the second group of bits and the third group of bits.

[0055] In accordance with an embodiment, the second group of bits is a compressed segment identifier (C-SID 1 ) representing a first router, and the third group of bits is a compressed segment identifier (C-SID 2) representing a destination host for the data packet. The C-SID 1 and the C-SID 2 refer to the SIDs that use fewer bits than a full IP address to represent a network node. For example, if C = 16, each SID could be a 16-bit value mapping to an address of a specific router or host. By using compressed SIDs, the data communication network 100 allows for efficient encoding of routing information within the limited space of an IP address. The compression enables the inclusion of multiple routing segments without significantly increasing packet overhead. It also allows for a large number of possible segments while keeping the address size manageable.

[0056] In accordance with an embodiment, a fourth group of bits is located in the destination address in between the second group of bits and the third group of bits. In other words, the destination address includes a fourth group of bits positioned between C- SID 1 and C-SID 2. The fourth group of bits may be used for additional routing information or network function identifiers. For instance, the fourth group of bits might contain flags for specific packet processing requirements or identifiers for virtual network functions. The inclusion of the fourth group of bits in the destination address allows for more complex routing scenarios and network service chaining. The fourth group of bits enables routers to make more informed decisions about packet handling without requiring deep packet inspection, potentially improving processing speed and enabling more sophisticated network services.

[0057] In accordance with an embodiment, the fourth group of bits is located in the destination address subsequent to the third group of bits. In other words, the fourth group of bits may be positioned after C-SID 2 in the destination address. The fourth group of bits may contain metadata about the data packet or additional routing instructions. For example, the fourth group of bits might include a service tag or quality of service indicator. Placing the fourth group of bits at the end of the destination address allows for variable-length encoding of additional data without affecting the core routing information. Such flexibility can be useful for implementing features like traffic classification or application-specific routing policies without modifying the basic routing mechanism.

[0058] The routing node 106 is further configured to determine whether the first group of bits and the second group of bits of the destination address of the received data packet match an address of the routing node 106. The routing node 106 is configured to determine by performing a bitwise comparison between the first group of bits and the second group of bits of the destination address of the received data packet. For example, if the router's node 106 address is "10.2.x.x" and the data packet' s destination address is "10.2.0.5", there will be a match. The match of the destination address enables identifying whether the current router is the intended next hop in the segment routing path of the data communication network 100.

[0059] Based on the determining of the match between the first group of bits, the second group of bits of the destination address of the received data packet and the address of the routing node 106, the routing node 106 is further configured to generate a modified destination address by swapping the second and third groups of bits. In other words, upon determining the match, the routing node 106 generates the modified destination address by swapping the second and third groups of bits. In the IPv4 example, "10.2.0.5" will become "10.5.0.2". Such a swapping operation is performed using bitwise operations, ensuring that the overall structure of the destination address remains intact. The swapping operation allows for progression along the segment routing path without requiring changes to the data packet's checksum, preserving routing information while maintaining compatibility with existing network protocols and improving routing efficiency.

[0060] In accordance with an embodiment, based on determining that there is not a match, the routing node 106 is configured to route the data packet according to its destination address using the first group of bits. In other words, if the first group of bits and the second group of bits of the destination address of the received data packet does not match the address of the routing node 106, the routing node 106 is configured to re-route the data packet back to conventional routing using the first group of bits of the destination address. The re-routing of the data packet is implemented through a simple comparison operation followed by a lookup in a router's forwarding table based on the first group of bits of the destination address. The re-routing of the data packet ensures compatibility with existing routing infrastructure and hence the routers that don't support the segment routing of the present disclosure can still forward the data packets correctly based on traditional longest-prefix matching. Thus, the re-routing of the data packet allows for gradual deployment of the segment routing without requiring an immediate overhaul of the data communication network 100.

[0061] In accordance with an embodiment, the segment routing uses a segment routing header in the data packet. In other words, the segment routing incorporates the segment routing header within each data packet. The segment routing header is implemented as a field in the structure of the data packet, containing information about the routing segments. For example, the segment routing header may include a list of segment identifiers (SIDs) representing the segment routing path the data packet should take. The inclusion of the segment routing header in the data packet allows for flexible and efficient routing decisions. By including routing information directly in the data packet, network devices can make forwarding decisions based on the data packet's content rather than relying solely on routing tables, resulting in improved network utilization and enables advanced traffic engineering capabilities.

[0062] In accordance with an embodiment, the segment routing header includes a list of routers along a path. In an implementation, the segment routing header contains an ordered list of routers that define the segment routing path for the data packet. The list is implemented as a series of router identifiers or addresses within the segment routing header structure. For instance, the segment routing header might contain IP addresses or unique identifiers for each router in the segment routing path. By including the router list in the segment routing header, the data communication network 100 enables source routing, where the sender node 102 specifies the segment routing path the data packet should take. The data communication network 100, thus gives network operators fine-grained control over traffic flow, allowing the network operators to optimize paths for specific requirements such as latency, bandwidth, or security. The data communication network 100 also simplifies the routing process for intermediate nodes, as they can simply forward to the next router in the list of routers.

[0063] In accordance with an embodiment, each router in the list is represented by a segment identifier. Each router in the list of routers is represented by the unique segment identifier (SID). The SIDs are compact, fixed-length identifiers that correspond to specific routers or network segments. For example, a 32-bit integer might be used as an SID, with each value mapped to a particular router in the data communication network 100. By using SIDs instead of full IP addresses, the data communication network 100 reduces the overhead in the data packet header, allowing for more efficient use of network bandwidth. By using SIDs, the data communication network 100 also provides a level of abstraction that can simplify network management and allow for more flexible routing policies. The network operators can assign meanings to the SIDs that go beyond simple node identification, enabling advanced traffic engineering techniques.

[0064] In accordance with an embodiment, the distance in the destination header between the second group of bits and the third group of bits is a multiple of 16 bits. In other words, an offset between the C-SID 1 and the C-SID 2 in the destination address is designed to be a multiple of 16 bits. The offset is designed by carefully structuring the destination address format and potentially including padding bits if necessary. For instance, if C = 12, there might be 4 padding bits to ensure 16-bit alignment. The 16- bit alignment is required for preserving the checksum when performing segment swapping operation. Since an Internet checksum algorithm operates on 16-bit words, swapping segments that are aligned to 16-bit boundaries does not change the checksum value. The designing of the offset allows routers to perform the segment swapping operation without needing to recalculate the checksum, improving processing efficiency and reducing the potential for errors.

[0065] In accordance with an embodiment, the receiver node 104 receives the data packet and verifies the checksum of the data packet. In other words, when the data packet reaches the receiver node 104, the receiver node 104 is configured to perform a standard checksum verification. The checksum is verified by calculating the checksum over the entire data packet and comparing it to the checksum value in the data packet header. By verifying the checksum at the receiver node 104, the data communication network 100 ensures the integrity of the data of the data packet, detecting any corruption that may have occurred during transmission. Since the segment swapping operation preserves the checksum value, the verification will succeed even if the data packet has undergone multiple swaps along the segment routing path. Thus, the data communication network 100 maintains compatibility with existing network protocols and security measures while enabling the benefits of the segment routing of the present disclosure.

[0066] FIG. 2 is a block diagram that depicts a routing node apparatus for use in performing segment routing in a data communications network, in accordance with an embodiment of the present disclosure. FIG. 2 is described in conjunction with elements from FIG. 1. With reference to FIG. 2, there is shown a block diagram illustrating a routing node apparatus 200 configured in the data communication network 100. The routing node apparatus 200 comprises a receiving unit 202, a determining unit 204, a generating unit 206, a memory 208, and a network interface 210 along with the hardware processor 108.

[0067] The receiving unit 202 refers to a processing unit configured to receive data packets sent by the sender node 102 along the path to the receiver node 104. The data packets include a destination address with a specific group of bits for segment routing. Examples of the receiving unit 202 may include, but are not limited to, network interface controllers, packet processing engines, dedicated hardware modules, and the like for data packet reception and initial processing of the data packet.

[0068] The data packet includes the destination address which includes the first group of bits having the first fixed amount of most significant bits. The destination address further includes the second group of bits having the second fixed amount of bits. The second group of bits specifies the first segment along the path. The destination address also includes the third group of bits having the third fixed amount of bits. The third group of bits specifies a second segment along the path. The second segment follows the first segment as the data packet traverses the path. The second fixed amount of bits is equal to the third fixed amount of bits

[0069] The determining unit 204 refers to a processing unit configured to analyze the received data packets and determine whether the first group of bits and the second group of bits of the destination address match the address of the routing node 106. Examples of the determining unit 204 may include, but are not limited to, dedicated address comparison circuits, content-addressable memory (CAM) modules, software-based address matching algorithms running on general-purpose processors, and the like.

[0070] The generating unit 206 refers to a processing unit configured to generate a modified destination address by swapping the second and third groups of bits when the match between the first group of bits and the second group of bits of the destination address and the address of the routing node 106, is determined. The generating unit 206 is configured to perform the segment swapping operation that enables efficient segment routing without checksum updates. Examples of the generating unit 206 may include, but are not limited to, dedicated bit manipulation circuits, field-programmable gate arrays (FPGAs) programmed for address modification, software routines optimized for bit swapping operations, and the like.

[0071] The memory 208 refers to a volatile or persistent medium, such as an electrical circuit, magnetic disk, virtual memory, or optical disk, in which a computer can store data or software for any duration. Optionally, the memory 208 is a non-volatile mass storage, such as a physical storage media. The memory 208 is configured to store routing tables, the segment identifiers, and data packet temporarily for processing. Furthermore, a single memory may encompass and, in a scenario, and the routing node apparatus 200 is distributed, the hardware processor 108, and / or the memory 208 may be distributed as well. Examples of implementation of the memory 208 may include, but are not limited to, an Electrically Erasable Programmable Read-Only Memory (EEPROM), Dynamic Random-Access Memory (DRAM), Random Access Memory (RAM), Read-Only Memory (ROM), Elard Disk Drive (EfDD), Flash memory, a Secure Digital (SD) card, Solid-State Drive (SSD), and / or CPU cache memory.

[0072] The network interface 210 refers to a hardware component configured to enable communication of the routing node apparatus 200 with the data communication network 100. Examples of the network interface 210 include but are not limited to, a network interface card, a transceiver, Ethernet controllers, optical transceivers, wireless network adapters, and the like.

[0073] In accordance with an embodiment, the segment routing uses the segment routing header in the data packet. The inclusion of the segment routing header in the data packet allows for flexible and efficient routing decisions. By including routing information such as, the segment routing header directly in the data packet, network devices can make forwarding decisions based on the data packet's content rather than relying solely on routing tables, resulting in improved network utilization and enabling advanced traffic engineering capabilities of the data communication network 100.

[0074] In accordance with an embodiment, the segment routing header includes the list of routers along the path. In an implementation, the segment routing header contains an ordered list of routers that define the segment routing path for the data packet. The list is implemented as a series of router identifiers or addresses within the segment routing header structure. For instance, the segment routing header might contain IP addresses or unique identifiers for each router in the segment routing path. By including the router list in the segment routing header, the data communication network 100 enables source routing, where the sender node 102 specifies the segment routing path the data packet should take. The data communication network 100, thus gives network operators fine-grained control over traffic flow, allowing the network operators to optimize paths for specific requirements such as latency, bandwidth, or security. The data communication network 100 also simplifies the routing process for intermediate nodes, as they can simply forward to the next router in the list of routers. In accordance with an embodiment, the second group of bits is the compressed segment identifier (C-SID 1 ) representing the first router, and the third group of bits is the compressed segment identifier (C-SID 2) representing the destination host for the data packet. The C-SID 1 and the C-SID 2 refer to the SIDs that use fewer bits than a full IP address to represent a network node. For example, if C = 16, each SID could be a 16-bit value mapping to an address of a specific router or host. By using compressed SIDs, the data communication network 100 allows for efficient encoding of routing information within the limited space of an IP address. The compression enables the inclusion of multiple routing segments without significantly increasing packet overhead. It also allows for a large number of possible segments while keeping the address size manageable.

[0075] FIG. 3 is a diagram illustrating a segment swapping operation in the destination address, in accordance with an embodiment of the present disclosure. FIG. 3 is described in conjunction with elements from FIGs. 1 and 2. With reference to FIG. 3, there is shown a diagram 300 depicting a destination address 302 and a modified destination address 304. The destination address includes a first group of bits 306 (for example, network ID), a second group of bits 308 (for example, C-SID 1), a third group of bits 310 (for example, C-SID 2), and a fourth group of bits 312.

[0076] The segment-swapping operation, (as shown in FIG. 3), is performed by the routing node 106 through the routing node apparatus 200 installed in the data communication network 100 when processing the data packet. Initially, the routing node 106 examines the destination address 302. The first group of bits 306 (corresponding to the "Network ID) is used for initial routing. The routing node 106 then checks if the first group of bits 306 and the second group of bits 308 match the address of the routing node 106. If the match is found, the routing node 106 performs the segment-swapping operation by exchanging the positions of the second group of bits 308 (C-SID 1 ) and the third group of bits 310 (C-SID 2). Both the second and third groups of bits have the same size of C bits. The fourth group of bits 312 remains unchanged during the segment-swapping operation. The result of the segment-swapping operation is the modified destination address 304. In the modified destination address 304, the third group of bits, C-SID 2 310 now occupies the position immediately after the first group of bits 306, while the second group of bits, C-SID 1 308 is moved to the previous location of C-SID 2. The segment-swapping operation preserves the overall structure of the destination address while changing the routing information. It is noted that the distance between the original positions of C-SID 1 and C-SID 2 is designed to be a multiple of 16 bits, ensuring that the segment swapping operation does not alter the data packet's checksum, maintaining the integrity of the data packet without requiring checksum recalculation. The C-SID 1 in the modified destination address 304 identifies the routing node 106 that performed the segment-swapping operation, allowing subsequent routers to forward the data packet based on the new address structure, and enabling the final destination to extract information about the data packet's path, specifically the identity of the routing node 106 that performed the segment-swapping operation. The segment-swapping operation allows for efficient routing, preserves path information, and maintains packet integrity, all while enabling flexible traffic engineering in the data communication network 100.

[0077] FIG. 4 is a diagram that depicts an example of the segment swapping operation in the data communication network, in accordance with an embodiment of the present disclosure. FIG. 4 is described in conjunction with elements from FIGs. 1, 2, and 3. With reference to FIG. 4, there is shown an exemplary diagram 400 depicting the sender node 102, the routing node 106, the receiver node 104, the destination address 302, the modified destination address 304, and a plurality of intermediate nodes such as 402, 404, and 406.

[0078] In the exemplary diagram 400, the sender node 102 sends the data packet to the receiver node 104 with the destination address 302 (for example, IPv4 address: 10.2.0.5). In the IPv4 address, the first group of bits 306 (10) represents the network ID. The second group of bits 308 (2) is C-SID 1, representing the routing node 106. The data packet is first received by an intermediate node 402, which routes the data packet based on its prefix (10.2), causing the data packet to be forwarded towards the routing node 106. When the data packet reaches the routing node 106, the routing node 106 matches the first and the second group of bits (10.2) with its own address and performs the segment swapping operation. The routing node 106 generates the modified destination address 304 by swapping the second group of bits (C-SID 1) with the third group of bits (C-SID 2). As a result, the routing node 106 sends the data packet with the modified destination address 304 of 10.5.0.2. In the modified destination address 304, the third group of bits (5) now represents C-SID 2, which identifies the receiver node 104.

[0079] Subsequent intermediate nodes, such as node 406, route the data packet according to its new prefix (10.5), which ultimately directs the data packet to the receiver node 104. When the data packet reaches the receiver node 104, it matches the address with its own address. The receiver node 104 also notes that the last byte (2) in the modified destination address 304 indicates the routing node 106 through which the data packet was routed.

[0080] In an exemplary scenario, an IPv4 address 10.1.2.3 undergoes segment swapping operation at a router, resulting in the address 10.3.2.1. The segment swapping operation demonstrates how the checksum remains unchanged despite the IP address modification. The initial checksum is calculated as the one's complement sum of OxAOl and 0x203, which equals -(0xA00 + 0x01 + 0x200 + 0x03). After the swap, the new address 10.3.2.1 yields the same checksum value, calculated as -(0xA03 + 0x201), which simplifies to -(0xA00 + 0x03 + 0x200 + 0x01). Such an equivalence occurs because the swapped segments are aligned on 16-bit boundaries, ensuring that the one's complement addition used in the checksum calculation remains invariant. Thus, the present disclosure allows the routers to perform segment swapping operation without the need to recalculate the checksum, thereby improving routing efficiency while maintaining data packet integrity.

[0081] In another exemplary scenario, an IPv6 address B:0:0:X0:Xl :X4:X3:X2 is transformed to B:0:0:X2:Xl:X4:X3:X0 through the segment swapping operation. Such an example illustrates how the technique extends to 128-bit IPv6 addresses, where each segment represents a 16-bit value. The initial checksum is computed as the negation of the sum of all eight 16-bit segments: - (B+0+0+X0+X1+X4+X3+X2). After the segment swapping operation, which exchanges the positions of X0 and X2, the checksum remains unchanged: -(B+0+0+X2+X1+X4+X3+X0). Such preservation of the checksum occurs because the swapped segments (X0 and X2) are both 16 bits long and their positions in the address are multiples of 16 bits apart. Consequently, the segment’s contribution to the one's complement sum remains the same, regardless of the order of the segment. The example demonstrates the scalability of the segment swapping operation to larger address spaces while maintaining checksum-preserving property.

[0082] In yet another exemplary scenario, a more granular swap is performed on the IPv4 address, denoted by hexadecimal digits, A.21.2.33, resulting in A.23.2.31. Such an example showcases how the segment swapping operation can operate on smaller, 4- bit segments (represented by single hexadecimal digits) while still preserving the checksum. The initial checksum is calculated as -(0xA21 + 0x233), which expands to -(0xA20 + 0x1 + 0x230 + 0x3). After swapping the 1 and 3, the new address A.23.2.31 yields the same checksum: -(0xA23 + 0x231), which simplifies to -(0xA20 + 0x3 + 0x230 + 0x1). The example illustrates that as long as the swapped segments are positioned such that their distance is a multiple of 16 bits, the checksum remains invariant, even when dealing with smaller segment sizes. Such flexibility allows for more fine-grained control over routing while still benefiting from the efficiency gains of not having to recalculate the checksum after each swap operation.

[0083] FIG. 5 is a flow chart of a method of performing segment routing in a data communications network, in accordance with an embodiment of the present disclosure. FIG. 5 is described in conjunction with elements from FIGs. 1 and 2. With reference to FIG. 5, there is shown a flow chart of a method 500 of performing segment routing in the data communication network 100. The method 500 includes steps 502 to 506.

[0084] At step 502, the routing node 106 is configured to receive the data packet, being sent by the sender node 102 along the path to the receiver node 104. The data packet includes the destination address with specific groups of bits for segment routing. The routing node 106 is enabled to process packets with embedded routing information, allowing for efficient path selection without the need for additional headers. The routing node 106 also maintains compatibility with existing network protocols while supporting advanced routing capabilities of the method 500. At step 504, the routing node 106 is configured to determine whether the first group of bits and the second group of bits of the destination address of the received data packet match the address of the routing node. The determination of the match allows the routing node 106 to identify whether it is the intended next hop in the segment routing path. By performing the match determination, the method 500 ensures that only the appropriate routers along the segment routing path modify the data packet, maintaining the integrity of the routing information and preventing unnecessary processing by intermediate nodes.

[0085] At step 506, based on the determining of the match, the routing node 106 is configured to generate the modified destination address by swapping the second and third groups of bits. The segment swapping operation enables updating the routing information without altering the data packet's checksum. By preserving the checksum, the method 500 eliminates the need for computationally expensive recalculations at each hop, speeding up packet processing. Additionally, the method 500 maintains a record of the segment routing path traversed, allowing the destination to extract routing information if needed.

[0086] Advantageously, the method 500 is an efficient and flexible approach to segment routing that overcomes limitations of conventional techniques of routing. The method 500 enables compressed segment routing without requiring updates to the Layer 4 checksum, which significantly reduces processing overhead at each hop. The method 500 is applicable to both IPv4 and IPv6 networks, providing a versatile solution for modem networking environments. By embedding routing information directly in the IP address, the method 500 minimizes header overhead while still allowing for complex routing scenarios. The method 500 also maintains backward compatibility with existing network infrastructure, as non-supporting routers can still process the data packets using standard routing techniques. Overall, the method 500 enhances network performance, reduces latency, and provides greater control over packet paths without compromising on efficiency or compatibility of the data communication network 100.

[0087] The steps 502 to 506 are only illustrative, and other alternatives can also be provided where one or more steps are added, one or more steps are removed, or one or more steps are provided in a different sequence without departing from the scope of the claims herein.

[0088] There is further provided, a computer program product comprising program instructions for performing the method 500 when executed by the routing node 106 in the data communication network 100. The computer program product is implemented as an algorithm, embedded in a software stored in a non-transitory computer-readable storage medium. The non-transitory computer-readable storage means may include but are not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. Examples of implementation of computer-readable storage medium, but are not limited to, Electrically Erasable Programmable Read-Only Memory (EEPROM), Random Access Memory (RAM), Read Only Memory (ROM), Hard Disk Drive (HDD), Flash memory, a Secure Digital (SD) card, Solid-State Drive (SSD), a computer-readable storage medium, and / or CPU cache memory.

[0089] Modifications to embodiments of the present disclosure described in the foregoing are possible without departing from the scope of the present disclosure as defined by the accompanying claims. Expressions such as "including", "comprising", "incorporating", "have", "is" used to describe, and claim the present disclosure are intended to be construed in a non-exclusive manner, namely allowing for items, components or elements not explicitly described also to be present. Reference to the singular is also to be construed to relate to the plural. The word "exemplary" is used herein to mean "serving as an example, instance or illustration". Any embodiment described as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments or to exclude the incorporation of features from other embodiments. The word "optionally" is used herein to mean "is provided in some embodiments and not provided in other embodiments" . It is appreciated that certain features of the present disclosure, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the disclosure, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable combination or as suitable in any other described embodiment of the disclosure.

Claims

CLAIMS1. A method (500) of performing segment routing in a data communications network (100), comprising steps, carried out by a routing node (106) of the data communications network (100), the routing node (106) located along a path of the data communications network (100) between a sender node (102) and a receiver node (104), of: receiving a data packet, being sent by the sender node (102) along the path to the receiver node (104), wherein the data packet includes a destination address (302) which includes a first group of bits (306) having a first fixed amount of most significant bits, a second group of bits (308) having a second fixed amount of bits, the second group of bits (308) specifying a first segment along the path, a third group of bits (310) having a third fixed amount of bits, the third group of bits (310) specifying a second segment along the path, wherein the second segment follows the first segment as the data packet traverses the path, wherein the second fixed amount of bits is equal to the third fixed amount of bits; determining whether the first group of bits (306) and the second group of bits (308) of the destination address (302) of the received data packet match an address of the routing node (106); based on the determining of a match, generating a modified destination address (304) by swapping the second and third groups of bits (308, 310).

2. The method of claim 1 , wherein the segment routing uses a segment routing header in a data packet.

3. The method of claim 2, wherein the segment routing header includes a list of routers along a path.

4. The method of claim 3, wherein each router in the list is represented by a segment identifier.

5. The method of claim 1, wherein, based on determining that there is not a match, routing the data packet according to its destination address (302) using the first group of bits.

6. The method of claim 1, wherein the second group of bits (308) is a compressed segment identifier representing a first router, and the third group of bits (310) is a compressed segment identifier representing a destination host for the data packet.

7. The method of claim 1, wherein a fourth group of bits (312) is located in the destination address (302) in between the second group of bits (308) and the third group of bits (310).

8. The method of claim 1, wherein a fourth group of bits (312) is located in the destination address subsequent to the third group of bits (310).

9. The method of claim 1, wherein the distance in the destination header between the second group of bits (308) and the third group of bits (310) is a multiple of 16 bits.

10. The method of claim 1, wherein the receiver node (106) receives the data packet and verifies the checksum of the data packet.

11. A computer program comprising instructions for carrying out all the steps of the method according to any preceding method claim, when said computer program is executed on a computer system.

12. A routing node apparatus (200) for use in performing segment routing in a data communications network (100), the routing node (106) located along a path of the data communications network (100) between a sender node (102) and a receiver node (104), the routing node apparatus (200) comprising: a receiving unit (202) which receives a data packet, being sent by the sender node (102) along the path to the receiver node (104), wherein the data packet includes a destination address (302) which includes a first group of bits (306) having a first fixed amount of most significant bits, a second group of bits (308) having a second fixed amount of bits, the second group of bits (308) specifying a first segment along the path, a third group of bits (310) having a third fixed amount of bits, the third group of bits (310) specifying a second segment along the path, wherein the second segment follows the first segment as the data packet traverses the path, wherein the second fixed amount of bits is equal to the third fixed amount of bits; a determining unit (204) which determines whether the first group of bits (306) and the second group of bits (308) of the destination address (302) of the received data packet match an address of the routing node (106); and a generating unit (206) which, based on the determining of a match, generates a modified destination address (304) by swapping the second and third groups of bits (308, 310).

13. The apparatus (200) of claim 12, wherein the segment routing uses a segment routing header in a data packet.

14. The apparatus (200) of claim 13, wherein the segment routing header includes a list of routers along a path.

15. The apparatus (200) of claim 12, wherein the second group ofbits(308) is a compressed segment identifier representing a first router, and the third group of bits (310) is a compressed segment identifier representing a destination host for the data packet.

Citation Information

Patent Citations

  • Address setting method and device, storage medium and electronic device

    CN116938789A

  • Routing method, routing apparatus and computer-readable storage medium

    EP4064623A1

  • Address setting method and device, storage medium, and electronic device

    EP4507268A1