Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CONTROLLER TO BE USED IN NETWORK NODES AND METHOD FOR USE IN NETWORK NODES
Document Type and Number:
WIPO Patent Application WO/2023/222231
Kind Code:
A1
Abstract:
A controller is configured to be used in a network node to determine one or more network paths from the network node to a destination node corresponding to a connection to the destination node. Further, the controller generates a data packet for each of the one or more network paths, each data packet includes a delay field and transmits each data packet along each of the one or more network paths to the destination node. Further, the controller receives a response message to each of the transmitted data packets. The response message includes a delay field indicative of the delay along the network path and determines which network path (or paths) to use. The determination of the one or more network paths with reduced congestion levels increases the throughput of the network and provides multi-path usage of the network paths to improve the network utilisation and cost-effectiveness.

Inventors:
MIZRAHI TAL (DE)
COHEN REUVEN (DE)
BELKAR BEN-SHAHAR (DE)
Application Number:
PCT/EP2022/063608
Publication Date:
November 23, 2023
Filing Date:
May 19, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
MIZRAHI TAL (DE)
International Classes:
H04L45/121; H04L43/08; H04L43/0852; H04L43/0888; H04L45/00; H04L45/12; H04L45/125
Foreign References:
EP3716541A12020-09-30
US10541946B12020-01-21
US20200120029A12020-04-16
Other References:
BROCKNERS F ET AL: "Data Fields for In-situ OAM draft-ietf-ippm-ioam-data-17; draft-ietf-ippm-ioam-data-17.txt", no. 17, 13 December 2021 (2021-12-13), pages 1 - 48, XP015149317, Retrieved from the Internet [retrieved on 20211213]
Attorney, Agent or Firm:
KREUZ, Georg M. (DE)
Download PDF:
Claims:
CLAIMS A controller (104, 304, 504) configured to be used in anetwork node (102, 302, 502), wherein the controller (104, 304, 504) is configured to: determine one or more network paths (106) from the network node (102, 302, 502) to a destination node (118) corresponding to a connection to the destination node (118); generate a data packet for each of the one or more network paths (106), wherein each data packet comprises a delay field; transmit each data packet along each of the one or more network paths (106) to the destination node (118); receive a response message (506) to each of the data packets transmitted along the corresponding network path, wherein the response message (506) comprises a delay field indicative of the delay along the network path; and determine which network path to use based on the delay fields of the received responses. The controller (104, 304, 504) according to claim 1, wherein the controller (104, 304, 504) is further configured to determine which network path to use based on the delay fields of the received responses by selecting the network path having the lowest delay. The controller (104, 304, 504) according to claim 1 or 2, wherein the controller (104, 304, 504) is further configured to determine which network path to use based on the delay fields of the received responses by selecting a network path having a delay under a threshold delay level. The controller (104, 304, 504) according to any preceding claim, wherein the controller (104, 304, 504) is further configured to determine which network path to use by determining that a congestion is present in a network path and in response thereto select another network path that does not include the congestion. The controller (104, 304, 504) according to claim 4, wherein the data packet further comprises a congestion bitmap and wherein the controller (104, 304, 504) is further configured to determine that a congestion is present in a network path based on the congestion bitmap.

6. The controller (104, 304, 504) according to claim 5, wherein the congestion bitmap comprises a bit array wherein each bit in the bit array corresponds to a hop in the network path, and wherein a set bit in the bit array indicates that the corresponding hop is congested.

7. The controller (104, 304, 504) according to claim 5 or 6, wherein the congestion bitmap is carried in a pay load of the data packet.

8. The controller (104, 304, 504) according to claim 5 or 6, wherein the congestion bitmap is carried in an Internet Protocol Version 6, IPv6, header of the data packet.

9. he controller (104, 304, 504) according to any preceding claim, wherein the delay field is carried in an IPv6 header of the data packet.

10. The controller (104, 304, 504) according to any of claims 1 to 8, wherein the delay field is carried in a pay load of the data packet.

11. The controller (104, 304, 504) according to any preceding claim, wherein the response message (506) carrying the delay field is an acknowledgment, ACK, message or its Congestion Notification Packets (in RDMA).

12. The controller (104, 304, 504) according to any preceding claim, wherein the response message (506) carrying the delay field is a Congestion Notification Packet.

13. The controller (104, 304, 504) according to any preceding claim, wherein the controller (104, 304, 504) is further configured to determine more than one network path to use.

14. The controller (104, 304, 504) according to any preceding claim, wherein the controller (104, 304, 504) is further configured to determine which network path to use at the initiation of the connection to the destination node (104, 304, 504).

15. The controller (104, 304, 504) according to any preceding claim, wherein the controller (104, 304, 504) is further configured to determine which network path to use at intervals for the connection to the destination node (104, 304, 504).

16. The controller (104, 304, 504) according to any preceding claim, wherein the controller (104, 304, 504) is further configured to determine which network path to use for the connection to the destination node (118) when more than one network paths are used, by determining that one network path has a low throughput and in response thereto refrain from using that network path.

17. The controller (104, 304, 504) according to any preceding claim, wherein the controller (104, 304, 504) is further configured to determine which network path to use for the connection to the destination node (118) by determining that the connection has a low throughput and in response thereto determine an additional network path to be used for the connection.

18. A controller (104, 304, 504) configured to be used in anetwork node (102, 302, 502), wherein the controller (104, 304, 504) is configured to: receive a data packet (306) comprising a delay field (308); update the delay field (308) with a current delay; and transmit the data packet (306) to a next hop (310) in a network path.

19. The controller (104, 304, 504) according to claim 18, wherein the data packet (306) further comprises a congestion bitmap and wherein the controller (104, 304, 504) is further configured to determine that a congestion is present for the network node (102, 302, 502) and in response thereto update the congestion bitmap.

20. The controller (104, 304, 504) according to claim 19, wherein the congestion bitmap comprises a bit array wherein each bit in the bit array corresponds to a hop in the network path, and wherein a set bit in the bit array indicates that the corresponding hop is congested.

21. A controller (104, 304, 504) configured to be used in a network node (102, 302, 502), wherein the controller (104, 304, 504) is configured to: receive a data packet (306) comprising a delay field (308); generate a response message (506) comprising a delay field (508); set the delay field of the response message (506) to the delay field (308) of the received data packet (306) and the delay of the network node (102, 302, 502); determine the sending network node (510A, 510B) for the data packet (306); and to transmit the response message (506) to the sending network node (510A, 510B).

22. A method (200) for use in a network node (102, 302, 502), wherein the method (200) comprises: determining one or more network paths (106) from the network node (102, 302, 502) to a destination node (118) corresponding to a connection to the destination node (118); generating a data packet (306) for each of the one or more network paths (106), wherein each data packet comprises a delay field; transmitting each data packet along each of the one or more network paths (106) to the destination node (118); receiving a response message (506) to each of the data packets transmitted along the corresponding network path, wherein the response message (506) comprises a delay field (508) indicative of the delay along the network path; and determining which network path to use based on the delay fields of the received responses.

23. A method (400) for use in a network node (102, 302, 502), wherein the method (400) comprises: receiving a data packet (306) comprising a delay field (308); updating the delay field (308) with a current delay; and transmitting the data packet (306) to a next hop (310) in a network path.

24. The method (200) according to claim 22, wherein the network node (102, 302, 502) is the destination node (118) and wherein the method (200) further comprises: generating a response message (506) comprising a delay field (508); setting the delay field (508) of the response message (506) to the delay field (508) of the received data packet (306) and the delay of the network node (102, 302, 502); determining the sending network node (510A, 510B) for the data packet (306); and to transmitting the response message (506) to the sending network node (510A, 510B). 25. A method (600) for use in a network node (102, 302, 502), wherein the method (600) comprises: receiving a data packet (306) comprising a delay field (308); generating a response message (506) comprising a delay field (508); setting the delay field (508) of the response message (506) to the delay field (308) of the received data packet (306) and the delay of the network node (102, 302, 502); determining the sending network node (510A, 510B) for the data packet (306); and to transmitting the response message (506) to the sending network node (510A, 510B).

Description:
CONTROLLER TO BE USED IN NETWORK NODES AND METHOD FOR USE IN NETWORK NODES

TECHNICAL FIELD

The present disclosure relates generally to the field of data networks and more specifically, to controllers to be used in network nodes and methods for use in the network nodes for multipath transport based on telemetry in networks.

BACKGROUND

In today’s world, the internet connects people from all over the world as anyone can share the information and communicate easily with the help of the internet. The internet provides a network to share the data at high speed with multiple communication devices. The data is generally transferred by a transmission protocol, such as a transport control protocol (TCP) or a remote direct memory access (RDMA). The transmission protocol is responsible for establishing a connection and ensuring that all data has arrived safely. However, in some cases, the transmission protocol faces the problem of choosing an appropriate network path to transmit the data without facing any delay. The delay in the network path is caused by various factors, including different network path, different speed (e.g., bandwidth), and different congestion states, which affects queueing delay along the routers/s witches. Therefore, the selection of the best network path among the multiple network paths is important because it greatly affects the performance of the transport protocol. Further, the transmission protocol selects the network path by varying fields in a packet header, such as a transport layer, or an internet protocol version 6 (IPv6) flow label field. Many of the transmission protocols use in-band telemetry, and each router along the network path pushes telemetry data into the transit packets.

Conventionally, certain attempts have been made to select the best network path to transmit the data, such as by using the network telemetry method. The network telemetry method uses a constant-size telemetry field that is added to data packets. The constant-size telemetry field consists of the transit delay along the network path that is updated by each router/s witch. However, the network telemetry method is not desirable to choose the appropriate network path for transmitting the data without any delay. Another method discloses about the telemetry field with a performance bitmap that is added to the data packets. Each router along the network path updates a corresponding bit, indicating whether the current router is congested or not. Further, the information collected from the router is used by a central management entity in the network to report or correct the problem. However, the existing method does not explicitly disclose about selecting the best network path for the transmission of the data without facing any delay. As a result, there exists a technical problem of how to select the best network path among the multiple network paths and to transmit the data while minimizing the delay due to congestion.

Therefore, in light of the foregoing discussion, there exists a need to overcome the aforementioned drawbacks associated with the conventional network path selection techniques.

SUMMARY

The present disclosure provides controllers to be used in network nodes and methods for use in the network nodes. The present disclosure provides a solution to the existing problem of how to select the best network path among the multiple network paths to transmit the data while minimizing the delay due to congestion. 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 controller and methods for multipath transport based on telemetry in the networks.

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 controller configured to be used in a network node. The controller is configured to determine one or more network paths from the network node to a destination node corresponding to a connection to the destination node. The controller is further configured to generate a data packet for each of the one or more network paths. Each data packet comprises a delay field and transmits each data packet along each of the one or more network paths to the destination node. The controller is configured to receive a response message to each of the data packets transmitted along the corresponding network path, wherein the response message comprises a delay field indicative of the delay along the network path and determines which network path to use based on the delay fields of the received responses.

The controller is configured to be used in the network node. The controller is configured to determine the one or more network paths from the network node to the destination node. Further, the controller generates the data packet for each of the one or more network paths. Each data packet includes the delay field and transmits each data packet along each of the one or more network paths to the destination node. Further, the controller receives the response message to each of the data packets transmitted along the corresponding network path. The response message includes the delay field indicative of the delay along the network path and determines which network path to use based on the delay fields of the received responses. The determination of the one or more network paths with reduced congestion levels increases the throughput of the network. Additionally, the controller improves the performance of the network. Furthermore, the controller provides multi-path usage of the network paths and improves the network utilisation and cost-effectiveness.

In an implementation form, the controller is configured to determine which network path to use based on the delay fields of the received responses by selecting the network path having the lowest delay.

Beneficially, the determination of the network path to be used with the lowest delay increases the performance of data transmission that further increases the overall throughput of the network node.

In a further implementation form, the controller is configured to determine which network path to use based on the delay fields of the received responses by selecting a network path having a delay under a threshold delay level.

Beneficially, the selection of the network path having the delay under the threshold delay level enables the data transmission through the network path with reduced delay. Further, the data transmission through the network path with reduced delay increases the performance of the data transmission.

In a further implementation form, the controller is further configured to determine which network path to use by determining that a congestion is present in a network path and in response thereto select another network path that does not include the congestion. In such implementation, it is advantageous to determine congestion in the one or more network paths and further select another network path with no congestion. Therefore, enables the controller to increase the overall performance of the network.

In a further implementation form, the data packet further comprises a congestion bitmap and wherein the controller is further configured to determine that a congestion is present in a network path based on the congestion bitmap.

Beneficially, the congestion bitmap enables the controller to know the congestion in one or more network paths to further eliminate the congested network path for transmission of the data packet.

In a further implementation form, the congestion bitmap comprises a bit array wherein each bit in the bit array corresponds to a hop in the network path, and wherein a set bit in the bit array indicates that the corresponding hop is congested.

Beneficially, the indication of hop congestion enables the controller to detect the congested network path to eliminate the congested network path and improve the network performance.

In a further implementation form, the congestion bitmap is carried in a payload of the data packet.

Beneficially, the transmission of the data packet with the congestion bitmap in the payload enables the controller to maintain the performance of the network node during the transmission of the data packet.

In a further implementation form, the congestion bitmap is carried in an internet protocol version 6 (IPv6) header of the data packet.

Beneficially, the IPv6 header is used to transmit the data packet from the one or more network paths and to measure the delay in the one or more network paths.

In a further implementation form, the delay field is carried in an IPv6 header of the data packet.

The IPv6 header carries the delay field is beneficial to enable the controller to measure the delay experienced by each network node in the one or more network paths.

In a further implementation form, the delay field is carried in a pay load of the data packet. In such an implementation form, the controller is used to maintain the performance of the network throughout the data packet transmission by the determination of the delay by the delay field in each network node of the network path.

In a further implementation form, the response message carrying the delay field is an acknowledgement (ACK) message or its Congestion Notification Packets.

Beneficially, the acknowledgement message enables the controller to select the network path based on the response message.

In a further implementation form, the response message carrying the delay field is a congestion notification packet.

The congestion notification packet enables the controller to select the network path based on the response message.

In a further implementation form, the controller is further configured to determine more than one network path to use.

Beneficially, the determination of more than one network path enables the controller to transfer data from multiple network paths to the destination node that further increases the performance of data transmission.

In a further implementation form, the controller is further configured to determine which network path to use at the initiation of the connection to the destination node.

It is advantageous to initiate the connection to the destination node for the transmission of data through the network path with less delay.

In a further implementation form, the controller is further configured to determine which network path to use at intervals for the connection to the destination node.

In such an implementation form, the controller continuously checks the overall throughput (or the performance) of the network path to maintain low latency and reduce congestion levels.

In a further implementation form, the controller is further configured to determine which network path to use for the connection to the destination node when more than one network paths are used, by determining that one network path has a low throughput and in response thereto refrain from using that network path.

By virtue of determining the network path with low throughput enables the controller to refrain from the usage of that network path to improve network path utilisation and increase the performance of the data transmission.

In a further implementation form, the controller is further configured to determine which network path to use for the connection to the destination node by determining that the connection has a low throughput and in response thereto determine an additional network path to be used for the connection.

Beneficially, the determination of the network path with low throughput enables the controller to determine the additional network path to be used for the connection to improve network path utilisation and increase the performance of the network.

In another aspect, the present disclosure provides a controller configured to be used in a network node. The controller is configured to receive a data packet that includes a delay field, update the delay field with a current delay and transmit the data packet to a next hop in a network path.

The controller is configured to be used in the network node. The controller receives the data packet that includes the delay field and further updates the delay field with the current delay, and optionally update the congestion bitmap. Further, the controller transmits the data packet to the next hop in the network path. The controller of the present disclosure ensures an efficient and effective determination of the network path with reduced congestion. By virtue of detecting the delay in the intermediate network node enables the controller of the network node to eliminate the network path that includes the congestion.

In yet another aspect, the present disclosure provides a controller for use in a network node. The controller is configured to receive a data packet comprising a delay field and generate a response message comprising a delay field. Further, the controller is configured to set the delay field of the response message to the delay field of the received data packet and the delay of the network node. Further, the controller is configured to determine the sending network node for the data packet and to transmit the response message to the sending network node. The controller receives the data packet that includes the delay field. Further, the controller generates the response message that includes the delay field. Optionally, the response message includes the congestion bitmap. Further, the delay field of the response message is set to the delay field of the data packet by the controller. Further, the sending network node is determined by the controller and the response message is sent to the sending network node by the controller that helps to know the congestion in the one or more network paths.

In yet another aspect, there is provided a method for use in a network node. The method comprises determining one or more network paths from the network node to a destination node corresponding to a connection to the destination node. The method is configured for generating a data packet for each of the one or more network paths, each data packet includes a delay field and transmitting each data packet along each of the one or more network paths to the destination node. The method is configured for receiving a response message to each of the data packets transmitted along the corresponding network path. The response message includes a delay field indicative of the delay along the network path and determining which network path to use based on the delay fields of the received responses.

The method achieves all the advantages and technical effects of the controller configured to be used in the network node of the present disclosure.

In yet another aspect, there is provided a method for use in a network node. The method comprises receiving a data packet comprising a delay field, updating the delay field with a current delay, and transmitting the data packet to a next hop in a network path.

The method achieves all the advantages and technical effects of the controller configured to be used in the network node of the present disclosure.

In yet another aspect, there is provided a method for use in a network node. The method includes receiving a data packet comprising a delay field, generating a response message comprising a delay field, setting the delay field of the response message to the delay field of the received data packet and the delay of the network node, determining the sending network node for the data packet and to transmitting the response message to the sending network node.

The method achieves all the advantages and technical effects of the controller configured to be used in the network node of the present disclosure. 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.

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.

BRIEF DESCRIPTION OF THE DRAWINGS

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.

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

FIG. 1 is a block diagram of a controller for use in a network node, in accordance with an embodiment of the present disclosure; FIG. 2 is a flow chart of a method for use in a network node, in accordance with an embodiment of the present disclosure;

FIG. 3 is another block diagram of a controller for use in a network node, in accordance with an embodiment of the present disclosure;

FIG. 4 is another flow chart of a method for use in a network node, in accordance with an embodiment of the present disclosure;

FIG. 5 is yet another block diagram of a controller for use in a network node, in accordance with an embodiment of the present disclosure;

FIG. 6 is yet another flow chart of a method for use in a network node, in accordance with an embodiment of the present disclosure;

FIG. 7 is an illustration that depicts an example of an operation for path selection in one or more network paths, in accordance with an embodiment of the present disclosure;

FIG. 8 is an illustration that depicts an example of path reassignment for an existing connection, in accordance with an embodiment of the present disclosure;

FIG. 9 is an illustration that depicts an example of removing an existing path, in accordance with an embodiment of the present disclosure;

FIG. 10 is an illustration that depicts a possible specification of a telemetry field, in accordance with an embodiment of the present disclosure;

FIG. 11 is an illustration that depicts an example of telemetry in a data packet in extension files, in accordance with an embodiment of the present disclosure; and

FIG. 12 is an illustration that depicts telemetry feedback from a destination node to a network node, in accordance with an embodiment of the present disclosure.

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 nonunderlined 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. DETAILED DESCRIPTION OF EMBODIMENTS

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 practising the present disclosure are also possible.

FIG. 1 is a block diagram of a controller for use in a network node, in accordance with an embodiment of the present disclosure. With reference to the FIG. 1, there is shown a block diagram 100 that includes a network node 102, a communication interface 112, a memory 114, and a destination node 118. The network node 102 includes a controller 104, one or more network paths 106, such as a network path 106A, up to a network path 106N. There are further shown data packets 108A to 108N, and delay fields 110A to 110N.

The network node 102 may include suitable logic, circuitry, interfaces, or code to transmit a data packet through one of the one or more network paths 106. The one or more network paths 106 corresponds to a path through which the network node 102 sends the data packet, such as the data packet 108A, and subsequent data packets up to the data packet 108N to the destination node 118.

The controller 104 may include suitable logic, circuitry, interfaces, hardware, software, or code that is configured to transmit the data packet, such as the data packet 108A, and subsequent data packets up to the data packet 108N from the network node 102 to the destination node 118. Examples of implementation of the controller 104 may include but are not limited to a central data processing device, 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, and other processors or control circuitry.

Each data packet from the data packets 108A to 108N is transferred by the network node 102 to the destination node 118. In an implementation, the data packets 108A to 108N may correspond to the data packet that is transmitted along with each of the one or more network paths 106. For example, the data packet 108A is transmitted along the network path 106A, and similarly for the subsequent network paths, such as the data packet 108N is transmitted along the network path 106N. Each delay field from the delay fields 11OA to 110N stores the delay while traversing through the network node 102 to the destination node 118. In an implementation, the delay field 110A to 110N may correspond to the delay field that is included in each of the data packets 108A to 108N. For example, a delay field 110A is included by the data packet 108A, and a delay field 110N is included by a data packet 108N, and similar for the subsequent data packets.

The communication interface 112 includes hardware or software that is configured to establish communication among the controller 104, the memory 114, and the data packets 108A to 108N. Examples of the communication interface 112 may include but are not limited to, a computer port, a network socket, a network interface controller (NIC), and any other network interface device.

The memory 114 may include suitable logic, circuitry, interfaces, or code that is configured to store data for generating a relevant result. In an implementation, the memory 114 corresponds to a local memory, such as an Electrically Erasable Programmable Read-Only Memory (EEPROM), Random Access Memory (RAM), Read-Only Memory (ROM), a central processing unit (CPU) cache memory, and the like. In another implementation, the memory 114 corresponds to disc storage memory, such as a Hard Disk Drive (HDD), Flash memory, Solid-State Drive (SSD), and the like.

The destination node 118 corresponds to the final node to which the network node 102 sends the data packets such as the data packet 108A, and the data packet 108N through the one or more network paths 106.

There is provided the controller 104 that is configured to be used in the network node 102. The controller 104 is used to provide multi-path transport based on telemetry in the network node 102.

In operation, the controller 104 is configured to determine the one or more network paths 106 from the network node 102 to the destination node 118 that corresponds to a connection to the destination node 118. The one or more network paths 106 connect the network node 102 with the destination node 118 to transmit the data packet as further shown and described in detail through an example in FIG. 7. In an example, the controller 104 determines the network path 106A from the network node 102 that corresponds to a connection to the destination node 118 to send the data packet 108A. In another example, the controller 104 determines a subsequent network path from the network node 102 that corresponds to another connection to the destination node 118 to send a subsequent data packet, and similarly up to the network path 106N and up to the data packet 108N. Beneficially, the connection between the one or more network paths 106 enables the network node 102 to transfer the data to the destination node 118.

In accordance with an embodiment, the controller 104 is further configured to determine more than one network path to use. In an example, the controller 104 determines the network path 106A and one or more subsequent network paths from the network node 102 that corresponds to the connection to the destination node 118, as further described in detail in FIG. 7. Beneficially, the determination of more than one network path enables the controller 104 to transfer data from multiple network paths to the destination node 118 that further increases the performance of data transmission.

In accordance with an embodiment, the controller 104 is further configured to determine which network path to use at the initiation of the connection to the destination node 118. After determination of the one or more network paths 106 connected to the destination node 118, the controller 104 determines the network path to initiate the connection with the destination node 118 as further described in FIG. 7. In an example, the controller 104 determines the network path 106A to use at the initiation of the connection to the destination node 118 and similarly for the subsequent network paths. Therefore, enables the controller 104 to select the best network path to use at the initiation of the connection to the destination node 118 from the one or more network paths 106 determined to connect to the destination node 118.

In accordance with an embodiment, the controller 104 is further configured to determine which network path to use at intervals for the connection to the destination node 118. Firstly, the controller 104 determines the one or more network paths 106. After that, the controller 104 determines the network path to be used for the initiation of the connection to the destination node 118. After the initiation of the connection to the destination node 118, the controller 104 continuously determines the network path to be used at intervals for the connection to the destination node 118. In an example, the controller 104 determines that the network path 106A at intervals for the connection to the destination node 118. Similarly, the controller 104 determines the subsequent network path at intervals for the connection to the destination node 118. By virtue of determining which network path to use at intervals for the connection to the destination node 118 enabled the controller 104 to continuously check the overall throughput (or performance) of the network path to maintain low latency and reduce congestion level.

In accordance with an embodiment, the controller 104 is further configured to determine which network path to use for the connection to the destination node 118 when more than one network path is used. Moreover, by determining that one network path has a low throughput and in response thereto refrain from using that network path. After the determination of the one or more network paths 106, the controller 104 determines which network path from the determined one or more network paths is used for the connection to the destination node 118. The controller 104 further determines that one network path has the low throughput. Furthermore, the controller 104 refrains the network paths with the low throughput. In an example, the network path 106A has low throughput, and the controller 104 refrains the usage of the network path 106A, and similarly, for the subsequent network paths. Hence, the determination of the network path with low throughput enables the controller 104 to refrain from the usage of that network path to improve network path utilisation and to increase the performance of the network node 102.

In accordance with an embodiment, the controller 104 is further configured to determine which network path to use for the connection to the destination node 118 by determining that the connection has a low throughput and in response thereto determine an additional network path to be used for the connection. In an example, the controller 104 determines that the connection through the network path 106A has low throughput. Thus, the controller 104 determines the additional network path such as the subsequent network path to be used for the connection. In another example, the controller 104 determines that the connection through the subsequent network path has low throughput. Thus, the controller 104 determines the additional network path to be used for the connection. Beneficially, the determination of the network path with low throughput enables the controller 104 to determine the additional network path to be used for the connection to improve network path utilisation and increase the performance of the network node 102.

The controller 104 is configured to generate the data packet for each of the one or more network paths 106. Moreover, each data packet includes the delay field. In an example, the network path 106A generates the data packet 108A that includes the delay field 110A. In another example, the network path 106N generates the subsequent data packet that includes a subsequent delay field, and similarly up to the data packet 108N. The delay field corresponds to a telemetry protocol between the network node 102 and the destination node 118 that reports the performance of each of the one or more network paths 106 to the network node 102. The delay field includes the transit delay in the transmission of the data packet from the network node 102 to the destination node 118. Furthermore, the delay field indicates the transit delay throughout the one or more network paths 106, and the level of congestion along the one or more network paths 106, which is beneficial to determine the best network path among the one or more network paths 106.

The controller 104 is configured to transmit each data packet along each of the one or more network paths 106 to the destination node 118. Firstly, the data packet such as the data packets 108A to 108N are generated for each of the one or more network paths 106. After that, each of the data packets 108A to 108N, such as the data packet 108A, and the subsequent data packets are transmitted along each of the one or more network paths 106 to the destination node 118. In an example, the data packet 108A is transmitted along the network path 106A. Similarly, the subsequent data packet is transmitted along the subsequent network path, and similarly for subsequent data packets. Hence, enables the controller 104 to send the data packets through the one or more network paths 106 and to check the congestion in the one or more network paths 106.

In accordance with an embodiment, the data packet further includes a congestion bitmap. Moreover, the controller 104 is further configured to determine that a congestion is present in the network path based on the congestion bitmap. In an implementation, the congestion bitmap corresponds to the bitmap that indicates the congestion level of the network path. For example, the data packet 108A includes the congestion bitmap to determine the congestion present in the network path 106A. Similarly, the subsequent data packet includes the congestion bitmap to determine the congestion present in the subsequent network path. Beneficially, the congestion bitmap enables the controller 104 to determine the congestion in the one or more network paths 106 to further eliminate the congested network path for the transmission of the data packets 108A to 108N.

In accordance with an embodiment, the congestion bitmap includes a bit array. Further, each bit in the bit array corresponds to a hop in the network path, and a set bit in the bit array indicates that the corresponding hop is congested. Each bit in the bit array that corresponds to the hop in the network path and the set bit indicates congestion in the hop. Beneficially, each congested hop enables the controller 104 to detect the congested network path and to eliminate the congested network path, which is beneficial to improve the performance of the network node 102.

In accordance with an embodiment, the congestion bitmap is carried in a pay load of the data packet. For example, the data packet 108A, and the subsequent data packets include the congestion bitmap. Moreover, the congestion bitmap indicates the congestion level of the one or more network paths 106. Thus, the transfer of the data packets 108A to 108N from the network node 102 to the destination node 118 includes the transmission of the congestion bitmap to continuously check the congestion level of the network path. Therefore, the congestion bitmap is carried in the payload of the data packet. For example, the congestion bitmap of the data packet 108A is carried in the payload of the data packet 108A. Beneficially, the transmission of the data packet with the congestion bitmap in the payload enables the controller 104 to maintain the performance of the network node 102 during the transmission of the data packet.

In accordance with an embodiment, the congestion bitmap is carried in an internet protocol version 6 (IPv6) header of the data packet. The IPv6 header corresponds to a segment routing internet protocol version 6 (SRv6) header. Each network path from the one or more network paths 106 determines the connection between the network node 102 and the destination node 118 that can be performed through segment routing or through different header fields such as layer 4 pots or IPv6 flow labels that cause network routers to forward the data packet 108A to 108N over the one or more network paths 106 using equal-cost multipath routing (ECMP) as further described in FIG. 11. Beneficially, the IPv6 header is used to transmit the data packet from the one or more network paths 106 and to measure the delay in the one or more network paths 106.

In accordance with an embodiment, the delay field is carried in the IPv6 header of the data packet. In an implementation, when the data packet is transmitted from the network node 102 to the destination node 118, then the IPv6 header of the data packet carries the delay field that is updated by adding the delay experienced by each router in a corresponding network path from which the data packet is being traversed. Beneficially, the IPv6 header carries the delay field enables the controller 104 to measure the delay experienced by each network node in the one or more network paths 106. In accordance with an embodiment, the delay field 108 is carried in a payload of the data packet. In an implementation, the transfer of data packet from the network node 102 to the destination node 118 includes the transmission of the delay field to continuously check the delay in the network path. Therefore, the delay field, such as the delay field 110A, and the subsequent delay fields are carried in the pay load of the data packet. For example, the delay field 110A of the data packet 108A is carried in the payload of the data packet 108A. Beneficially, the transmission of the data packet with the delay field in the payload enables the controller 104 to improve the performance of the network throughout the data packet transmission by the determination of the delay through the delay field in each network node of a network path.

The controller 104 is further configured to receive a response message to each of the data packets transmitted along the corresponding network path. The response message includes the delay field indicative of the delay along the network path. In other words, the destination node 118 sends the response message after receiving each of the data packets. Thereafter, the controller 104 receives the response message that includes the delay field to indicate the delay in the one or more network paths 106. For example, the controller 104 receives the response message of the data packet 108A that is transmitted along with the network path 106A. Beneficially, the indication of the delay along the one or more network paths 106 enables the controller 104 to select the most appropriate network path with reduced delay.

In accordance with an embodiment, the response message carrying the delay field is an acknowledgment (ACK) message or its congestion notification packets. In an implementation, the response message (or telemetry information) that includes the delay field is the acknowledgement message that is sent through the transport layer in transmission control protocol (TCP) or in remote direct memory access (RDMA). In another implementation, the response message that includes the delay field is the congestion notification packets that are sent through the transport layer in the RDMA, as further shown and described in FIG. 12. Beneficially, the acknowledgement message carried by the delay field enables the controller 104 to select the network path based on the response message. In accordance with another embodiment, the response message carrying the delay field is a congestion notification packet. In an implementation, the response message that includes the delay field is the congestion notification packets that are sent through the transport layer in the RDMA, as further shown and described in FIG. 12. Beneficially, the congestion notification packet enables the controller 104 to select the network path from the one or more network paths 106.

The controller 104 is further configured to determine which network path to use based on the delay fields of the received responses. As the response message is received by the controller 104, then the information related to the delay stored in the delay field of the response message is analysed by the controller 104. Thereafter, the controller 104 is configured to determine the network path from the one or more network paths 106. In an example, the controller 104 receives the responses and further determines the network path 106A based on the delay fields of the received responses. Therefore, enables the controller 104 to use the path with a reduced delay that is used to improve the performance of the data transmission.

In accordance with an embodiment, the controller 104 is further configured to determine which network path to use based on the delay fields of the received responses by selecting the network path having the lowest delay. In an example, the controller 104 is configured to use the network path 106A based on the delay fields of the received responses that include the lowest delay field. In another example, the controller 104 is configured to use the subsequent network path based on the delay fields of the received responses that include the lowest delay field. Beneficially, the determination of the network path to be used with the lowest delay increases the performance of data transmission that further increases the overall throughput of the network node.

In accordance with an embodiment, the controller 104 is further configured to determine which network path to use based on the delay fields of the received responses by selecting a network path having a delay under a threshold delay level. The threshold delay level corresponds to the delay level under which the network path includes the delay is determined to be used. However, the network path that includes the delay level above the threshold delay level is not selected by the controller 104 for data transmission. In an example, the delay of the network path 106A is under the threshold delay level, and the controller 104 is configured to use the network path 106A based on the delay fields of the received responses. In another example, the delay of the subsequent network path is under the threshold delay level, and the controller 104 is configured to use the subsequent network path based on the delay fields of the received responses. Beneficially, the selection of the network path having the delay under the threshold delay level enables the data transmission through the network path with reduced delay. Further, the data transmission through the network path with reduced delay increases the performance of the data transmission.

In accordance with an embodiment, the controller 104 is further configured to determine which network path to use by determining that a congestion is present in a network path and in response thereto select another network path that does not include the congestion. In an example, the network path 106A is determined by the controller 104 that includes the congestion. Thus, the controller 104 selects the another network path, such as the subsequent network path to be used. Beneficially, the determination of the network path to use by determining that the congestion is present in the network path and further the selection of the another network path that does not include the congestion enables the controller 104 to improve network path utilisation and increase the performance of the network node 102.

The controller 104 is used in the network node 102 to determine the network path from the one or more network paths 106 for data transmission from the network node 102 to the destination node 118. Further, the controller 104 generates the data packet for each of the one or more network paths 106. Each data packet includes the delay field that is transmitted along each of the one or more network paths 106 to the destination node 118, which provides the delay for each intermediate network node. Thereafter, the controller 104 receives the response message for each of the data packets transmitted along the corresponding network path. The response message includes the delay field indicative of the delay along the network path and determines which network path to use based on the delay fields of the received responses that increase the overall throughput of the network. Additionally, the controller 104 provides multi-path usage of the network path that improves the network utilisation and reduces the cost-effectiveness.

FIG. 2 is a flowchart of a method for use in a network node, 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 flowchart of a method 200 that includes steps 202-to-210. The controller 104 (of FIG. 3) is configured to execute the method 200.

There is provided the method 200 for use in the network node 102. The method 200 provides multi-path transport based on telemetry in the network node 102.

At step 202, the method 200 includes determining the one or more network paths 106 from the network node 102 to the destination node 118 corresponding to a connection to the destination node 118. The one or more network paths 106 are used for connecting the network node 102 with the destination node 118 to transmit the data packet as further shown and described in detail through an example in FIG. 7. Beneficially, the connection between the one or more network paths 106 enables the network node 102 to transfer the data to the destination node 118.

At step 204, the method 200 further includes generating a data packet for each of the one or more network paths 106. Each data packet includes the delay field. The delay field corresponds to a telemetry protocol between the network node 102 and the destination node 118 that reports the performance of each of the one or more network paths 106 to the network node 102. The delay field includes the transit delay in the transmission of the data packets from the network node 102 to the destination node 118. Furthermore, the delay field indicates the transit delay throughout the one or more network paths 106, and the level of congestion along the one or more network paths 106, which is beneficial for determining the best network path among the one or more network paths 106.

At step 206, the method 200 further includes transmitting each data packet along each of the one or more network paths 106 to the destination node 118. Firstly, the data packets 108A to 108N are generated for each of the one or more network paths 106. After that, each data packet is transmitted along each of the one or more network paths 106 to the destination node 118. In an example, the data packet 108A is transmitted along the network path 106A. Similarly, the subsequent data packet is transmitted along the subsequent network path, and similarly for subsequent data packets. Therefore, enables the controller 104 to send the data packets through the one or more network paths 106 and to check the congestion in the one or more network paths 106.

At step 208, the method 200 further includes receiving a response message to each of the data packets transmitted along the corresponding network path. In other words, the destination node 118 sends the response message after receiving each of the data packets. Thereafter, the method 200 includes receiving the response message that includes the delay field to indicate the delay in the one or more network paths 106. For example, the controller 104 receives the response message of the data packet 108A that is transmitted along with the network path 106A. Beneficially, the indication of the delay along the one or more network paths 106 enables the method 200 for selecting the most appropriate network path with reduced delay. At step 210, the method 200 further includes determining which network path to use based on the delay fields of the received responses. As the response message is received by the controller 104, then the information related to the delay stored in the delay field of the response message is analysed by the controller 104. Thereafter, the method 200 includes determining the network path from the one or more network paths 106. Therefore, enables the method 200 for using the path with a reduced delay that improves the performance of the data transmission.

The method 200 is used in the network node 102 for determining the network path from the one or more network paths 106 for data transmission from the network node 102 to the destination node 118. Further, the method 200 includes generating the data packet for each of the one or more network paths 106. Each data packet includes the delay field that is transmitted through each of the one or more network paths 106 to the destination node 118 that provides the delay for each intermediate network node. Thereafter, the method 200 includes receiving the response message to each of the data packets transmitted along the corresponding network path. The response message includes the delay field indicative of the delay along the network path and determines which network path to use based on the delay fields of the received responses that increase the overall throughput of the network. Additionally, the method 200 provides multi-path usage of the network path that improves the network utilisation and reduces the cost-effectiveness.

The steps 202 to 210 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.

FIG. 3 is another block diagram of a controller for use in a network node, in accordance with an embodiment of the present disclosure. FIG. 3 is described in conjunction with elements from FIG. 1. With reference to the FIG. 3, there is shown a block diagram 300 that includes a network node 302, a controller 304, a data packet 306, a delay field 308, and a next hop 310

The network node 302 is one of the intermediate nodes that exist in the one or more network paths 106 from the network node 102 to the destination node 118 of FIG. 1. The network node 302 includes the controller 304 for controlling the task performed by the network node 302. The data packet 306 corresponds to the data packet (of FIG.1) that is generated by the network node 102 (or the sending network node). The data packet 306 also includes the delay field 308 that corresponds to the delay field (of FIG.1). The next hop 310 corresponds to the next network node in the one or more network paths 106 through which the data packet 306 is transmitted to the destination node 118.

There is provided the controller 304 to be used in the network node 302. The network node 302 includes the controller 304 that is further connected to the next hop 310. The controller 304 is used to provide multi-path transport based on telemetry in the network node 102.

In operation, the controller 304 is configured to receive the data packet 306 that includes the delay field 308. The data packet 306 is generated for each of the one or more network paths 106. Furthermore, the data packet 306 includes the delay field 308. In an implementation, the delay field 308 corresponds to the telemetry protocol between the network node 302 and the destination node 118 that reports the performance of each of the one or more network paths 106 to the network node 102. Moreover, the delay field 308 includes the transit delay in the transmission of data packet 306 from the network node 302 to the next hop 310 till the destination node 118. In an implementation, the network node 302 receives the data packet 306 from the network node 102. In another implementation, the network node 302 receives the data packet 306 from the next hop 310 (or the intermediate network node). Furthermore, the transit delay throughout the one or more network paths 106 and the level of congestion along the one or more network paths 106 indicated by the delay field 308 is beneficial to determine the network path to be used among the one or more network paths 106.

In accordance with an embodiment, the data packet 306 further includes the congestion bitmap, and the controller 304 is further configured to determine that the congestion bitmap is present for the network node 302 and in response thereto update the congestion bitmap. The congestion bitmap corresponds to a bitmap that indicates the congestion level of the network path. For example, the data packet 306 includes the congestion bitmap to determine the congestion present for the network node 302. Similarly, the subsequent data packet includes the congestion bitmap to determine the congestion present in the subsequent network path. Beneficially, the congestion bitmap enables the controller 304 to determine the congestion in one or more network paths 106 and to eliminate the congested network path for transmission of the data packet.

In accordance with an embodiment, the congestion bitmap includes a bit array. Each bit in the bit array corresponds to a hop in the network path, and a set bit in the bit array indicates that the corresponding hop is congested. Each bit in the bit array that corresponds to the hop in the network path and the set bit indicates congestion in the hop. Beneficially, each congested hop enables the controller 104 to detect the congested network path and eliminate the congested network path, which is beneficial to improve the performance of the network node 102.

The controller 304 is further configured to update the delay field 308 with a current delay and transmit the data packet 306 to the next hop 310 in the network path. Firstly, the controller 304 detects the delay in the network node 302. Then, the controller 304 updates the delay field 308 with the current delay and finally, transmits the data packet 306 to the next hop 310 in the network path. Hence, enables the controller 304 to select the path with reduced delay and congestion that further increases the overall performance of the network node 302.

The controller 304 is configured to be used in the network node 302 to provide best possible network path from the one or more network paths 106 for data transmission. The controller 304 receives the data packet 306 that includes the delay field 308 and further updates the delay field 308 with the current delay. Further, the controller 304 transmits the data packet 306 to the next hop 310 in the network path. The controller 304 of the present disclosure ensures an efficient and effective determination of the network path with reduced congestion. By virtue of detecting the delay in the intermediate network node enables the controller 304 of the network node 302 to eliminate the network path that includes the congestion.

FIG. 4 is another flowchart of a method for use in a network node, in accordance with an embodiment of the present disclosure. FIG. 2 is described in conjunction with elements from FIG. 1 to FIG. 3. With reference to FIG. 2, there is shown a flowchart of a method 200 that includes steps 402-to-406. The controller 304 (of FIG. 3) is configured to execute the method 400

There is provided the method 400 for use in the network node 302. The network node 302 includes the controller 304 that is further connected to the next hop 310. The method 400 provides multi-path transport based on telemetry in the network node 102. At step 402, the method 400 includes receiving the data packet 306 including the delay field 308. The data packet 306 is generated for each of the one or more network paths 106. Furthermore, the data packet 306 includes the delay field 308. In an implementation, the delay field 308 corresponds to the telemetry protocol between the network node 302 and the destination node 118 that reports the performance of each of the one or more network paths 106 to the network node 102. Moreover, the delay field 308 includes the transit delay in the transmission of data packet 306 from the network node 302 to the next hop 310 till the destination node 118. In an implementation, the network node 302 receives the data packet 306 from the network node 102. In another implementation, the network node 302 receives the data packet 306 from the next hop 310 (or the intermediate network node). Furthermore, the transit delay throughout the one or more network paths 106 and the level of congestion along the one or more network paths 106 indicated by the delay field 308 is beneficial for determining the network path to be used among the one or more network paths 106.

At step 404, the method 400 further includes updating the delay field 308 with a current delay. Firstly, the method 400 includes detecting the delay in the network node 302. Then, the method 400 includes updating the delay field 308 with the current delay. The method 400 is used for determining the best possible network path for data transmission.

At step 406, the method 400 further includes transmitting the data packet 108 to the next hop 310 in the network path. Firstly, the method 400 includes detecting the delay in the network node 302. Then, the method 400 includes updating the delay field 308 with the current delay, and finally, the method 400 includes transmitting the data packet 306 to the next hop 310 in the network path. Thus, the method 400 includes selecting the path with reduced delay and congestion that further increases the overall performance of the network node 302.

The method 400 is used in the network node 302 for providing the best possible network path from the one or more network paths 106 for data transmission. The method 400 includes receiving the data packet 306 that including the delay field 308 and further updating the delay field 308 with the current delay. Further, the method 400 includes transmitting the data packet 306 to the next hop 310 in the network path. The method 400 ensures an efficient and effective determination of the network path with reduced congestion. By virtue of detecting the delay in the intermediate network node, the network path that includes the congestion is eliminated.

The steps 402 to 410 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.

FIG. 5 is yet another block diagram of a controller for use in a network node, in accordance with an embodiment of the present disclosure. FIG. 5 is described in conjunction with elements from FIG. 1 to FIG. 4. With reference to the FIG. 5, there is shown a block diagram 500 that includes a network node 502, a controller 504, a response message 506, a delay field 508, a sending network node 510A, a sending network node 510B, the data packet 306, and the delay field 308.

The network node 502 corresponds to the destination node 118 (of FIG. 1) and the controller 504 corresponds to the controller 104 (of FIG. 1) that is configured to receive the data packet such as the data packet 306 at the network node 502. The response message 506 corresponds to the message that is transmitted by the destination node 118, which includes the updated delay field. Furthermore, the delay field 508 of the response message 506 is used to store the delay that occurred in the network path. The sending network node 510A and the sending network node 510B correspond to the network node 102 of FIG. 1.

The controller 504 is configured to be used in the network node 502. In an implementation, the network node 502 corresponds to the destination node 118 for the one or more network paths 106. The controller 504 is used to provide multi-path transport based on telemetry in the network node 102.

In operation, the controller 504 is configured to receive the data packet 306 that includes the delay field 308. The data packet 306 traverses through the one or more network paths 106 to reach at the network node 502. Further, the controller 504 in the network node 502 receives the data packet 306 that includes the delay field 308. Further, the delay field 308 stores the values of the transit delay throughout the one or more network paths 106.

The controller 504 is further configured to generate the response message 506 that includes the delay field 508. Upon receiving the data packet 306, the response message 506 is generated by the controller 504. Further, the response message 506 includes the delay field 508 that stores the performance of each of the one or more network paths 106. In an implementation, the delay field 508 indicates the level of congestion along the one or more network paths 106, which is beneficial to determine the best network path among the one or more network paths 106.

The controller 504 further sets the delay field 508 of the response message 506 to the delay field 308 of the received data packet and the delay of the network node 502. For example, the delay field 308 stores the values of the transit delay throughout the one or more network paths 106. Further, the controller 504 is configured to set the delay field 508 to the delay field 308 of the data packet 306 for updating the delay field 508. In an implementation, the response message 506 includes the congestion bitmap. The controller 504 further sets the delay of the network node 502, as further shown and described in FIG. 7.

The controller 504 further determines the sending network node for the data packet 306. After receiving the data packet 306, the controller 504 determines the sending network node such as the sending network node 510A, and the sending network node 510B from which the data packet 306 has arrived. In an example, the sending network node corresponds to the initial node from which the transmission of the data packet 306 is initiated. In an implementation, the controller 504 determines that the data packet 306 has arrived from the sending network node 510A. In another implementation, the controller 504 determines that the data packet 306 has arrived from the sending network node 510B.

The controller 504 is further configured to transmit the response message 506 to the sending network node. After determining the sending network node, the controller 504 transmits the response message 506 to the sending network node to indicate the level of congestion in the one or more network paths 106. In an implementation, the controller 504 transmits the response message 506 to the sending network node 510A. In another implementation, the controller 504 transmits the response message 506 to the sending network node 510B. Beneficially, the generation of the response message 506 and further transmission of the response message 506 to the sending network node enables the controller 104 to determine the congestion in the one or more network paths 106.

The controller 504 receives the data packet 306 that includes the delay field 308. Further, the controller 504 generates the response message 506 that includes the delay field 508. The response message is used to acknowledge the network node 102. Further, the delay field 508 of the response message 506 is set to the delay field 308 of the data packet 306 by the controller 504 to update the delay field 508 according to the delay field 308 of the data packet 306. Further, the sending network node, such as the sending network node 510A, and the sending network node 510B is determined by the controller 504. Moreover, the response message 506 is sent to the sending network node 510A and the sending network node 510B by the controller 504 that helps to determine the delay experienced by each of the one or more network paths 106. In addition, the response message 506 helps the controller 104 of the network node 102 to select the most appropriate network path for the transmission of any data. Additionally, the controller 504 provides multi-path usage of the network path that improves the network utilisation and reduces the cost-effectiveness.

FIG. 6 is yet another flowchart of a method for use in a network node, in accordance with an embodiment of the present disclosure. FIG. 6 is described in conjunction with elements from FIG. 1 to FIG. 5. With reference to FIG.6, there is shown a flowchart of a method 600 that includes steps 602-to-610. The controller 504 (of FIG. 5) is configured to execute the method 600.

There is provided the method 600 for use in the network node 502. In an implementation, the network node 502 corresponds to the destination node 118 for the one or more network paths 106. The method 600 is used for providing multi-path transport based on telemetry in the network node 102. At step 602, the method 600 includes receiving the data packet 306 including the delay field 308. The data packet 306 traverses through the one or more network paths 106 to reach the network node 502. Further, the method 600 includes receives the data packet 306 that includes the delay field 308. Further, the delay field 308 stores the values of the transit delay throughout the one or more network paths 106.

At step 604, the method 600 further includes generating a response message 506 comprising a delay field 508. Upon receiving the data packet 306, the response message 506 is generated by the controller 504. Further, the response message 506 includes the delay field 508 that stores the performance of each of the one or more network paths 106. In an implementation, the delay field 508 indicates the level of congestion along the one or more network paths 106, which is beneficial to determine the best network path among the one or more network paths 106.

At step 606, the method 600 further includes setting the delay field 508 of the response message 506 to the delay field 308 of the received data packet and the delay of the network node 502. The method 600 includes setting the delay field 508 to the delay field 308 of the data packet 306 for updating the delay field 508. The method 600 further includes setting the delay of the network node 502, as further shown and described in FIG. 7.

At step 608, the method 600 further includes determining the sending network node 502 for the data packet 306. After receiving the data packet 306, the controller 504 determines the sending network node such as the sending network node 510A, and the sending network node 510B from which the data packet 306 has arrived. In an example, the sending network node corresponds to the initial node from which the transmission of the data packet 306 is initiated. In an implementation, the method 600 includes determining that the data packet 306 has arrived from the sending network node 510A.

At step 610, the method 600 further includes transmitting the response message 506 to the sending network node. After determining the sending network node, the method 600 includes transmitting the response message 506 to the sending network node to indicate the level of congestion in the one or more network paths 106. Beneficially, the generation of the response message 506 and further transmission of the response message 506 to the sending network node is used to determine the congestion in the one or more network paths 106.

The method 600 includes receiving the data packet 306 that includes the delay field 308. Further, the method 600 includes generating the response message 506 that includes the delay field 508. The response message is used to acknowledge the network node 102. Further, the delay field 508 of the response message 506 is set to the delay field 308 of the data packet 306 by the controller 504 to update the delay field 508 according to the delay field 308 of the data packet 306. Further, the sending network node, such as the sending network node 510A, and the sending network node 510B is determined by the controller 504. Moreover, the response message 506 is sent to the sending network node 510A and the sending network node 510B by the controller 504 that helps to determine the delay experienced by each of the one or more network paths 106. In addition, the response message 506 helps the controller 104 of the network node 102 to select the most appropriate network path for the transmission of any data. Additionally, the method 600 provides multi-path usage of the network path that improves the network utilisation and reduces the costeffectiveness.

The steps 602 to 610 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.

FIG. 7 is an illustration that depicts an example of an operation for path selection in one or more network paths, in accordance with an embodiment of the present disclosure. FIG. 7 is described in conjunction with elements from FIG. 1 to FIG. 6. With reference to the FIG. 7, there is shown a flowchart 700 that includes a series of operations from 702A to 702C. The controller 104 (of FIG.1) is configured to execute the flowchart 700. There is provided a sending network node 704 that corresponds to the network node 102 of FIG. 1 (or a sender) that sends the data packet 306 through the controller 104 of the sending network node 704. Further, there is provided a first network node 706A, a second network node 706B, a third network node 706C, a fourth network node 706D, a fifth network node 706E, and a sixth network node 706F that individually corresponds to the intermediate network nodes through which the sending network node 704 transmits the data packet 306. In an implementation, each network node, such as the first network node 706A, the second network node 706B, the third network node 706C, the fourth network node 706D, and the fifth network node 706E, the sixth network node 706F corresponds to the network node 302 of FIG. 3. Furthermore, there is provided a destination node 708 that corresponds to the network node 502 of FIG. 5 (or the destination node 118 of FIG. 1) that is configured to receive the data packet 306 and further transmits the response message 506 to the sending network node 704.

At operation 702A, the sending network node 704 sends the data packet 306 (or a control message) with the delay field 308 (or the telemetry fields) through each of the available network paths. In an example, the available possible network path for the transmission of the data packet 306 is from the first network node 706A to the second network node 706B. Then, from the second network node 706B to the third network node 706C, and then to the fourth network node 706D. After that, from the fourth network node 706D to the sixth network node 706F and finally to the destination node 708. In another implementation, the another possible network path includes the transfer of the data packet 306 from the first network node 706A to the second network node 706B. Then, from the second network node 706B to the fifth network node 706E, and then to the fourth network node 706D. After that, from the fourth network node 706D to the sixth network node 706F and finally to the destination node 708. Each intermediate node (or a router) between the sending network node 704 and the destination node 708 updates the delay field 308 according to the transit delay for each transmission. Further, at operation 702B, the destination node 708 sends the response message 506 to the sending network node 704. In an implementation, the response message 506 is transmitted through the same network path through which the data packet 306 was received. In an example, the response message 506 includes the delay field 508 (or the telemetry field). Thereafter, at operation 702C, the sending network node 704 selects the network path based on the delay field 508 of the response message 506. In an example, the sending network node 704 selects the network path with the best performance and sends the data to the destination node 708. Therefore, the selection of the network path with the best performance, increases the overall network utilisation, and further improves the costeffectiveness of the network path.

FIG. 8 is an illustration that depicts an example of path selection in multiple network paths, in accordance with an embodiment of the present disclosure. FIG. 8 is described in conjunction with elements from FIG. 1 to FIG. 7. With reference to the FIG. 8, there is shown a flowchart 800 that includes a series of operations from 802A to 802C. The controller 104 (of FIG.1) is configured to execute the flowchart 800.

At operation 802A, the sending network node 704 sends the data packet 306 (or a control message) that includes the delay field 308 (or the telemetry fields) through the selected network paths. In an example, the selected network path for the transmission of the data packet 306 is from the first network node 706A to the second network node 706B. Then, from the second network node 706B to the fourth network node 706D through the third network node 706C. After that, from the fourth network node 706D to the sixth network node 706F and finally to the destination node 708. However, the third network node 706C indicates the congestion level above the threshold congestion (or congested) due to which the transit delay of the third network node 706C is high. Thus, at operation 802B, the destination node 708 sends the response message 506 carrying the delay field 508 to the sending network node 704. In an implementation, the response message 506 carrying the delay field 508 is an acknowledgment (ACK) message or its congestion notification packets. Thereafter, at operation 802C, the sending network node 704, selects a new path with a low congestion level to avoid the congested network node (or router), such as through the third network node 706C. Thus, the sending network node 704 reassigns the network path and uses a new network path for sending the data packet 306.

FIG. 9 is an illustration that depicts an example of path selection in multiple network paths, in accordance with an embodiment of the present disclosure. FIG. 9 is described in conjunction with elements from FIG. 1 to FIG. 8. With reference to the FIG. 9, there is shown a flowchart 900 that includes a series of operations from 902A to 902C. The controller 104 (of FIG.1) is configured to execute the flowchart 900.

At operation 902A, the sending network node 704 sends the data packet 306 with the delay field 308 (or the telemetry fields) through the available network paths. In an example, the available possible network path for the transmission of the data packet 306 is from the first network node 706A to the second network node 706B. Then, from the second network node 706B to the fourth network node 706D through the third network node 706C. After that, from the fourth network node 706D to the sixth network node 706F and finally to the destination node 708. In another implementation, the another possible network path includes the transfer of the data packet 306 from the first network node 706A to the second network node 706B. Then, from the second network node 706B to the fourth network node 706D through the fifth network node 706E. After that, from the fourth network node 706D to the sixth network node 706F and finally to the destination node 708.

Further, at operation 902B, the intermediate network node, such as the third network node 706C indicates congestion due to which the transit delay of the third network node 706C is high. In an implementation, the destination node 708 further transmits the response message 506 to the sending network node 704. In an example, the response message 506 carries the delay field about the congestion in one of the available network paths. After that, at operation 702C, the sending network node 704 removes the network path that includes congestion and uses the remaining network path for the transmission of the data packet 306, such as through the fifth network node 706E.

FIG. 10 is an illustration that depicts a possible specification of a telemetry field, in accordance with an embodiment of the present disclosure. FIG. 10 is described in conjunction with elements from FIG. 1 to FIG. 9. With reference to the FIG. 10, there is shown an illustration 1000 that includes a namespace-ID 1002, flags 1004, an accumulated delay 1006, a hop count 1008, and a status bitmap 1010.

There is provided the namespace-ID 1002 that provides a way to group network nodes such as the sending network node 704 (of FIG. 7), the intermediate network nodes (of FIG. 7), the destination node 708 (of FIG. 7) to support different deployment approaches of in-suite, operation administration, and maintenance (I0AM). Further, there is provided the flags 1004 that determine the telemetry (or an opcode) functionality to indicate the presence of each telemetry field such as the accumulated delay 1006 (or the hop count 1008 or a status bitmap). There is further provided the accumulated delay 1006 to increment the transit delay that is updated by the intermediate network nodes (or transit nodes). Further, there is provided the hop count 1008 that is incremented by each hop, and the status bitmap 1010 that corresponds to a one-bit per hop configured to indicate the congestion status of each intermediate network node along the one or more network paths 106. The hop count 1008 is used by each intermediate network node as a pointer to the congestion bitmap. The illustration 1000 is an example of an extension of I0AM that includes the namespace-ID 1002 that is present in all IO AM options. Moreover, the illustration 1000 specifies a possible specification of the telemetry field that provides a telemetry field format for the intermediate network nodes that can be sent over various encapsulations such as the internet protocol version6 (IPv6) extension header.

FIG. 11 is an illustration that depicts a telemetry in a data packet in an extension field, in accordance with an embodiment of the present disclosure. FIG. 11 is described in conjunction with elements from FIG. 1 to FIG. 10. With reference to the FIG. 11, there is shown an illustration 1100 that includes an ethemet header 1102, an internet protocol version 6 (IPv6) header 1104, an IPV6 extension field with telemetry 1106, a layer 4 header 1108, and a payload 1110.

There is provided the ethemet header 1102 that contains the address for the sending network node 706 and the destination node 708. Further, there is provided the IPv6 header 1104 to provide a command to the destination node 118. The IPv6 corresponds to a segment routing internet protocol version 6 (SRv6) header and the IPV6 extension field with the telemetry 1106 provides encapsulation to the telemetry field. In an example, the layer 4 header 1108 indicates the existence of the delay. Furthermore, the payload 1110 is used to store information in the data packet 306.

The illustration 1100 provides an example of the presence of the IPv6 header 1104 in the telemetry field. The telemetry field in the shown illustration 1100 defines an IO AM option that can be transported. For example, the telemetry field is transported over the IPv6. Thus, the transportation of the telemetry field over the IPV6 provides encapsulation of the telemetry field that further increases the performance for data transmission.

FIG. 12 is an illustration that depicts telemetry feedback from a destination node to a network node, in accordance with an embodiment of the present disclosure. FIG. 12 is described in conjunction with elements from FIG. 1 to FIG. 11. With reference to the FIG. 12, there is shown an illustration 1200 that includes a delay bitmap 1202, the ethemet header 1102, the IPV6 extension field with telemetry 1106, and the layer 4 header 1108. The delay bitmap 1202 indicates the delay for each intermediate network node along the one or more network paths 106. After the transmission of the data packet 306 that includes the delay field 308 from the network node 102 to the destination node 118, the telemetry feedback is transmitted from the destination node 118 to the network node 102 that includes the delay bitmap 1202 of a forward network path. In an implementation, the delay bitmap 1202 provides a backward telemetry indicator. The telemetry feedback is transmitted at the transport layer over ACK messages. Moreover, the layer 4 1108 indicates the existence of the transmission of the data packet 306. The ACK messages include the delay that enables the network node 102 through the controller 104 to select the one or more network paths 106 for data transmission.

The method 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 present 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.