CN-122003848-A - Dynamic programming of source nodes with stream information
Abstract
Techniques for de-intermediating a network path between a source and a destination are described. In an example, a source sends a first data packet destined for a destination. A network node on a network path between a source and a destination performs a network operation on the data packet and generates a set of instructions to indicate the network operation and parameters for performing the network operation. The set of instructions is sent to the source as a stream update. When the source needs to send a second data packet to the destination, the source applies these instructions to the second data packet. Thus, similar network operations are performed on the second data packet at the source, avoiding the need to send the second data packet on the same network path including the network node. Accordingly, the second data packet is sent on a different network path bypassing the network node.
Inventors
- C. D. Marat
- S. GANGULI
- L. T. Tracy
- M.D.Jin
- A. Yulovsky
- L. A. Reid
- A. Smirnov
- M. J. Carlson
Assignees
- 甲骨文国际公司
Dates
- Publication Date
- 20260508
- Application Date
- 20241010
- Priority Date
- 20231012
Claims (20)
- 1. A computer-implemented method on a first network node, the computer-implemented method comprising: receiving a first data packet from a source destined for a destination, the first network node being on a first network path between the source and the destination; Determining that the source supports sending the data packet to the destination using one or more network paths that bypass the first network node; Performing an update on the first data packet, the update enabling the first network node to send the data packet to a next network hop, the next network hop being a second network node or destination, and An instruction is sent to the source to update a data packet to be sent to the destination, the instruction based on the update and enabling the source to send a second data packet on a second network path bypassing the first network node.
- 2. The computer-implemented method of claim 1, wherein the first data packet indicates that the source support bypasses the first network node.
- 3. The computer-implemented method of any of claims 1-2, wherein the instructions are sent in a flow update, wherein the flow update causes a source to update a flow table by including an entry in the flow table associated with a flow between a source and a destination, wherein the entry indicates the flow and includes the instructions.
- 4. The computer-implemented method of claim 3, further comprising: determining that the destination supports receiving the data packet from the destination instead of the first network node, wherein the flow update is sent based on the destination supporting receipt of the data packet.
- 5. The computer-implemented method of any of claims 1-4, further comprising: Determining that the first data packet includes an indication requesting the instruction, wherein the instruction is sent based on the indication.
- 6. The computer-implemented method of any of claims 1-5, wherein the instruction is a first instruction, and wherein the computer-implemented method further comprises: receiving a probe packet from a source based on a first instruction; updating the probe packet by including the first instruction in the probe packet, and The updated probe data packet is sent to the second network node, wherein the source is configured to receive the first instruction and the second instruction of the second network node in a flow update based on the updated probe data packet.
- 7. The computer-implemented method of claim 6, wherein the first data packet and the probe data packet contain the same header information, and wherein the payload information of the probe data packet is different from the payload information of the first data packet.
- 8. The computer-implemented method of claim 6, wherein the probe packet contains a secret of the source, and wherein the stream update contains the secret.
- 9. The computer-implemented method of any of claims 1-8, wherein the instructions are to indicate a network operation applied by a first network node to a first data packet and to be applied by a source to a second data packet, and a set of values for the network operation, wherein the second data packet is sent based on the network operation and the set of values.
- 10. A first network node, comprising: one or more processors, and One or more memories storing program code that, when executed by the one or more processors, configures a first network node to: receiving a first data packet from a source destined for a destination, the first network node being on a first network path between the source and the destination; Determining that the source supports sending the data packet to the destination using one or more network paths that bypass the first network node; Performing an update on the first data packet, the update enabling the first network node to send the data packet to a next network hop, the next network hop being a second network node or destination, and An instruction is sent to the source to update a data packet to be sent to the destination, the instruction based on the update and enabling the source to send a second data packet on a second network path bypassing the first network node.
- 11. The first network node of claim 10, wherein the instructions are first instructions, and wherein execution of the program code further configures the first network node to: Receiving a probe packet from a second network node, the probe packet destined for the source and containing second instructions for the second network node, the second instructions indicating a second network operation performed by the second network node on the flow from the destination to the source, and A flow update is sent to the destination based on the probe packet, wherein the flow update contains a second instruction and enables the destination to send the packet to the source by bypassing the second network node.
- 12. The first network node of claim 11, wherein execution of the program code further configures the first network node to: third instructions are included in the flow update indicating a first network operation performed by the first network node on the flow from the destination to the source, wherein the flow update enables the destination to send the data packet to the source by also bypassing the first network node.
- 13. The first network node of any of claims 10-12, wherein the instructions are first instructions, and wherein execution of the program code further configures the first network node to: Based on the instructions being sent to the source, receiving a probe packet from the source on the first network path having the same header information as the first packet and having different payload information than the first packet; Updating the probe packet to include the instruction, and The probe data packet is sent to a second network node, wherein the second network node is configured to send a flow update to the source, wherein the flow update contains the instructions and additional instructions regarding network operations performed by the second network node on the data packet received on the first network path.
- 14. The first network node of claim 13, wherein the instruction is sent to a source triggering the source to send probe packets, and wherein the source is configured to send subsequent probe packets at a predefined rate.
- 15. One or more computer-readable storage media storing program code that, when executed on a first network node, causes the first network node to perform operations comprising: receiving a first data packet from a source destined for a destination, the first network node being on a first network path between the source and the destination; Determining that the source supports sending the data packet to the destination using one or more network paths that bypass the first network node; Performing an update on the first data packet, the update enabling the first network node to send the data packet to a next network hop, the next network hop being a second network node or destination, and An instruction is sent to the source to update a data packet to be sent to the destination, the instruction based on the update and enabling the source to send a second data packet on a second network path bypassing the first network node.
- 16. The one or more computer-readable storage media of claim 15, wherein the first data packet indicates that the source support bypasses the first network node.
- 17. One or more computer-readable storage media as recited in any of claims 15-16, wherein the instructions are sent in a flow update, wherein the flow update causes a source to update a flow table by including an entry in the flow table associated with a flow between a source and a destination, wherein the entry indicates the flow and includes the instructions.
- 18. The one or more computer-readable storage media of claim 17, wherein the operations further comprise: determining that the destination supports receiving the data packet from the destination instead of the first network node, wherein the flow update is sent based on the destination supporting receipt of the data packet.
- 19. The one or more computer-readable storage media of any of claims 15-18, wherein the operations further comprise: Determining that the first data packet includes an indication requesting the instruction, wherein the instruction is sent based on the indication.
- 20. The one or more computer-readable storage media of any of claims 15-19, wherein the instructions are first instructions, and wherein the operations further comprise: receiving a probe packet from a source based on a first instruction; updating the probe packet by including the first instruction in the probe packet, and The updated probe data packet is sent to the second network node, wherein the source is configured to receive the first instruction and the second instruction of the second network node in a flow update based on the updated probe data packet.
Description
Dynamic programming of source nodes with stream information Cross Reference to Related Applications The present application is non-provisional application Ser. No.63/543,879 entitled "DYNAMIC PROGRAMMING OF A SOURCE NODE WITH ROUTING INFORMATION" filed on 10/12/2023 and U.S. Pat. No.63/600,910 entitled "DYNAMIC PROGRAMMING OF A SOURCE NODE WITH ROUTING INFORMATION" filed on 11/20/2023, the disclosures of which are incorporated herein by reference in their entireties for all purposes, and claims their rights and priority in accordance with 35 U.S. C.119 (e). Technical Field The present application relates to cloud environments, and more particularly to transmitting data packets between a source node and a destination node in a cloud environment. Background The adoption of cloud services has increased dramatically over the past few years, and this trend has only increased. Different Cloud Service Providers (CSPs) are providing a variety of different cloud environments, each providing a set of one or more cloud services. The set of cloud services provided by the cloud environment may include one or more different types of services including, but not limited to, software as a service (SaaS) services, infrastructure as a service (IaaS) services, platform as a service (PaaS) services, and others. While a variety of different cloud environments are currently available, each provides a closed ecosystem for its subscribing clients. Therefore, clients of the cloud environment are limited to using services offered by the cloud environment. For customers subscribing to a cloud environment provided by a CSP, there is no simple way to use services provided by different CSPs via the cloud environment. The embodiments discussed herein address these and other issues. Drawings The features, embodiments, and advantages of the present disclosure may be better understood when the following detailed description is read with reference to the accompanying drawings. Fig. 1 is a high-level diagram illustrating a distributed environment of a virtual or overlay cloud network hosted by a cloud service provider infrastructure, in accordance with some embodiments. Fig. 2 depicts a simplified architectural diagram of physical components in a physical network within a Cloud Service Provider Infrastructure (CSPI) according to some embodiments. FIG. 3 illustrates an example arrangement of host machines connected to multiple Network Virtualization Devices (NVDs) within a CSPI in accordance with certain embodiments. FIG. 4 depicts a connection between a host machine and an NVD for providing I/O virtualization to support multi-tenancy in accordance with certain embodiments. Fig. 5 depicts a simplified block diagram of a physical network provided by a CSPI, in accordance with some embodiments. Fig. 6 depicts a simplified block diagram of traffic flow between a source and a destination. Fig. 7 depicts a simplified block diagram of traffic flow between a source and destination using dynamic programming for flow information, according to some embodiments. Fig. 8 depicts a simplified block diagram of traffic flow between a source and destination using dynamically programmed updates to flow information, in accordance with some embodiments. FIG. 9 depicts a simplified block diagram of a response from a destination to a source, according to some embodiments. FIG. 10 depicts another simplified block diagram of a response from a destination to a source, according to some embodiments. Fig. 11 depicts a sequence diagram of network path de-intermediation (disintermediation) in accordance with some embodiments. FIG. 12 depicts a flow implemented by a source for network path de-intermediation in accordance with some embodiments. Fig. 13 depicts a flow implemented by a network node for network path de-intermediation in accordance with some embodiments. Fig. 14 depicts another flow implemented by a network node for network path de-intermediation in accordance with some embodiments. Fig. 15 depicts a flow implemented by a destination for network path de-intermediation in accordance with some embodiments. FIG. 16 depicts a flow of store instructions implemented by a source for use as part of network path de-intermediation, according to some embodiments. FIG. 17 depicts a flow implemented by a source for using probe packets as part of network path de-intermediation in accordance with some embodiments. Fig. 18 depicts a flow implemented by a network node for sending instructions as part of network path de-intermediation, in accordance with some embodiments. Fig. 19 depicts a flow implemented by a network node for responding to probe packets as part of network path de-mediation in accordance with some embodiments. Fig. 20 is a block diagram illustrating one mode for implementing a cloud infrastructure as a service system in accordance with certain embodiments. Fig. 21 is a block diagram illustrating another mode for implementing a cloud infrastructure as a service s