CN-122003850-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 source, the computer-implemented method comprising: Transmitting a first data packet to a first network node, the first network node on a first network path between a source and a destination, the first data packet destined for the destination; Storing instructions for updating a data packet to be sent to a destination, the instructions being based on an update to a first header of a first data packet, the update being performed by a first network node to send the first data packet to the destination; Updating a second data packet destined for the destination based on the instruction, a second header of the second data packet being defined based on the updating, and A second data packet is sent to the destination, the second data packet being sent using a second network path based on the second header and bypassing the first network node.
- 2. The computer-implemented method of claim 1, further comprising: receiving a first stream update from a first network node, the first stream update comprising first instructions regarding the update, and An entry in a flow table is updated, the entry associating a flow between a source and a destination with a first instruction.
- 3. The computer-implemented method of claim 2, further comprising: determining that no entry for the flow is contained in the flow table, and An indication that the first stream update is requested is contained in the first data packet.
- 4. The computer-implemented method of claim 2, further comprising: Transmitting a probe packet to a first network node based on the first flow update; Receiving a second stream update from a second network node on the first network path, the second stream update comprising the first instruction and a second instruction regarding additional updates performed by the second network node on the probe data packet, and The entry in the flow table is updated to associate the flow with a first instruction and a second instruction, wherein the instructions include the first instruction and the second instruction.
- 5. The computer-implemented method of any of claims 1-4, further comprising: Receiving a first streaming update from a first network node, the first streaming update comprising a first instruction regarding the update and a second instruction regarding a different update performed on a first data packet by a second network node on a first network path, wherein the instructions comprise the first instruction and the second instruction, and The first instruction is determined to be executed instead of the second instruction such that the second data packet is sent based on the first instruction being executed instead of the second instruction being executed.
- 6. The computer-implemented method of any of claims 1-5, further comprising: Determining that the instruction indicates a copy of a second data packet to be generated and sent to a different destination, and The copy is sent to the different destination.
- 7. The computer-implemented method of any of claims 1-6, wherein the instructions are stored in an entry of a flow table, and wherein the computer-implemented method further comprises: determining that the entry applies to a second data packet; determining the instruction from the entry, and Updating a header of the second data packet based on the instruction, wherein the updated header corresponds to the second network path.
- 8. The computer-implemented method of any of claims 1-7, wherein the instructions are stored in an entry of a flow table, wherein the flow table associates flows between a source and a destination with a first network path and with the instructions, and wherein the computer-implemented method further comprises: Transmitting a probe packet on the first network path after transmitting the first packet, wherein the probe packet is usable to determine a change to the instruction; determining that the instruction in the entry applies to the second data packet, and Updating a header of the second data packet based on the instruction, wherein the updated header corresponds to the second network path.
- 9. The computer-implemented method of any of claims 1-8, wherein the instructions are stored in an entry of a flow table, and wherein the computer-implemented method further comprises: determining that no updates are made to the entry for a predefined duration of time, and It is determined that the entry is no longer available for sending subsequent data packets to the destination.
- 10. The computer-implemented method of any of claims 1-9, wherein the instructions are stored in an entry of a flow table, and wherein the computer-implemented method further comprises: Completing the installation of the software update on the source, and The flow table is persisted despite the software update installation.
- 11. A source, comprising: one or more processors, and One or more memories storing program code that, when executed by the one or more processors, configures the source to: transmitting a first data packet to a first network node, the first network node on a first network path between the source and destination, the first data packet destined for the destination; Storing instructions for updating a data packet to be sent to a destination, the instructions being based on an update to a first header of a first data packet, the update being performed by a first network node to send the first data packet to the destination; Updating a second data packet destined for the destination based on the instruction, a second header of the second data packet being defined based on the updating, and A second data packet is sent to the destination, the second data packet being sent using a second network path based on the second header and bypassing the first network node.
- 12. The source of claim 11, wherein the first portion of the instructions is received based on a first data packet, and wherein the second portion of the instructions is received based on a probe data packet, wherein receiving the first portion triggers the source to send the probe data packet on a first network path.
- 13. The source of any of claims 11-12, wherein a first data packet indicates that the source supports bypassing a first network node using the instruction.
- 14. The source of any of claims 11-13, wherein execution of the program code further configures the source to: information about the first network node is contained in the second data packet, wherein the destination is configured to validate the second data packet based on the information.
- 15. The source of any of claims 11-14, wherein execution of the program code further configures the source to: after the second data packet is sent, a third data packet is received on the first network path, the third data packet being sent by the destination.
- 16. The source of any of claims 11-15, wherein execution of the program code further configures the source to: After the second data packet is transmitted, a third data packet is received on the second network path, the third data packet being transmitted by the destination.
- 17. One or more computer-readable storage media storing program code that, when executed on a source, causes the source to perform operations comprising: transmitting a first data packet to a first network node, the first network node on a first network path between the source and destination, the first data packet destined for the destination; Storing instructions for updating a data packet to be sent to a destination, the instructions being based on an update to a first header of a first data packet, the update being performed by a first network node to send the first data packet to the destination; Updating a second data packet destined for the destination based on the instruction, a second header of the second data packet being defined based on the updating, and A second data packet is sent to the destination, the second data packet being sent using a second network path based on the second header and bypassing the first network node.
- 18. The one or more computer-readable storage media of claim 17, wherein the instructions indicate a network operation to apply and a set of values for the network operation, and wherein the second data packet is updated by applying the network operation using the set of values.
- 19. The one or more computer-readable storage media of any of claims 17-18, wherein the operations further comprise: An acknowledgement of the second data packet is received by the source from the destination, the acknowledgement being received along the first network path.
- 20. The one or more computer-readable storage media of any of claims 17-19, wherein the operations further comprise: receiving, by the source from the destination, a first acknowledgement of the first data packet, the first acknowledgement being received along a first network path, and A second acknowledgement of the second data packet is received by the source from the destination, the second acknowledgement being received along a second network path.
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