Search

CN-122003849-A - Dynamic programming of source nodes with stream information

CN122003849ACN 122003849 ACN122003849 ACN 122003849ACN-122003849-A

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. 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; Receiving, from the first network node, a first instruction for updating a data packet to be sent to the destination based on the first data packet, the first instruction being based on a first data packet update performed by the first network node and enabling the source to bypass the first network node when sending the data packet to the destination; Transmitting a probe packet on a first network path based on a first instruction; Receiving, from the second network node, second instructions for updating the data packet to be sent to the destination based on the probe data packet, the second instructions being based on a second data packet update performed by the second network node and enabling the source to bypass the second network node when sending the data packet to the destination; storing a first instruction and a second instruction; Updating a second data packet destined for the destination based on the first instruction and the second instruction, and A second data packet is sent to the destination, the second data packet being sent using a second network path that bypasses the first network node and the second network node.
  2. 2. The computer-implemented method of claim 1, wherein the probe packet has the same header information as the first packet, wherein the payload information of the probe packet is different from the payload information of the first packet.
  3. 3. The computer-implemented method of claim 2, wherein header information of the second data packet is different from header information of the first data packet.
  4. 4. The computer-implemented method of any of claims 1-2, wherein the second instructions are received in a flow update from the second network node, and wherein the flow update further comprises the first instructions.
  5. 5. The computer-implemented method of any of claims 1-4, wherein the second instruction is received in a flow update from a second network node, and wherein the computer-implemented method further comprises: The first secret is contained in the probe data packet; Determining a second secret contained in the stream update, and A determination is made that the stream update is valid based on the first secret and the second secret.
  6. 6. The computer-implemented method of any of claims 1-5, wherein the sending of the probe data packets is triggered by the receipt of a first instruction, and wherein the computer-implemented method further comprises sending additional probe data packets at a predefined rate after sending the probe data packets.
  7. 7. The computer-implemented method of claim 6, wherein the probe packet is a first probe packet, and wherein the computer-implemented method further comprises: the second probe packets are transmitted at a predefined rate over the first network path to determine a modification to at least one of the first instruction or the second instruction.
  8. 8. The computer-implemented method of claim 7, further comprising: Receiving, by the source, a change to the first instruction based on the second probe packet, the change corresponding to a modification to the first packet update; updating a first instruction stored by the source based on the modification; updating a third data packet destined for the destination based on the updated first instruction, and The third data packet is sent to the destination on a third network path that is different from the second network path and bypasses the first network node.
  9. 9. 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; Performing a first data packet update on the first data packet before sending the first data packet to a second network node on the first network path; Transmitting to the source a first instruction for updating a data packet to be transmitted to the destination, the first instruction being based on the first data packet update and enabling the source to bypass the first network node when transmitting the data packet to the destination; Receiving probe packets on a first network path from a source based on a first instruction, and The first instructions are included in the probe data packet prior to sending the probe data packet to the second network node, wherein the probe data packet causes the second network node to send a second instruction to the source for updating the data packet to be sent to the destination, the second instruction being based on a second data packet update performed by the second network node and enabling the source to bypass the second network node when sending the data packet to the destination.
  10. 10. The computer-implemented method of claim 9, further comprising: Determining a total number of data packets transmitted by the source to the destination over the first network path within a predefined time period, and The total number is determined to exceed a threshold number, wherein the first instruction is sent based on the total number exceeding the threshold number.
  11. 11. The computer-implemented method of any of claims 9-10, the second network node configured to request from the destination whether the destination supports receiving data packets from the source, and wherein the second instruction is sent to the source based on the destination indicating that the destination supports receiving data packets from the source.
  12. 12. The computer-implemented method of any of claims 9-11, wherein probing the data packet further causes the second network node to send a first instruction to the source.
  13. 13. The computer-implemented method of any of claims 9-12, wherein the first instruction indicates a network operation to be applied by the source and corresponding to a first data packet update, and wherein the first instruction further indicates a set of values when the network operation is applied to a second data packet.
  14. 14. 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 a source and a destination, the first data packet destined for the destination; Receiving, from the first network node, a first instruction for updating a data packet to be sent to the destination based on the first data packet, the first instruction being based on a first data packet update performed by the first network node and enabling the source to bypass the first network node when sending the data packet to the destination; Transmitting a probe packet on a first network path based on a first instruction; Receiving, from the second network node, second instructions for updating the data packet to be sent to the destination based on the probe data packet, the second instructions being based on a second data packet update performed by the second network node and enabling the source to bypass the second network node when sending the data packet to the destination; storing a first instruction and a second instruction; Updating a second data packet destined for the destination based on the first instruction and the second instruction, and A second data packet is sent to the destination, the second data packet being sent using a second network path that bypasses the first network node and the second network node.
  15. 15. The source of claim 14, wherein the probe packet has the same header information as the first packet, wherein the payload information of the probe packet is different from the payload information of the first packet.
  16. 16. The source of claim 15, wherein header information of the second data packet is different from header information of the first data packet.
  17. 17. The source of any of claims 14-16, wherein the second instructions are received in a flow update from the second network node, and wherein the flow update further comprises the first instructions.
  18. 18. The source of any of claims 14-17, wherein the second instruction is received in a flow update from a second network node, and wherein execution of the program code further configures the source to: The first secret is contained in the probe data packet; Determining a second secret contained in the stream update, and A determination is made that the stream update is valid based on the first secret and the second secret.
  19. 19. The source of any of claims 14-18, wherein the transmission of the probe packet is triggered by receipt of a first instruction, and wherein execution of the program code further configures the source to transmit additional probe packets at a predefined rate after the transmission of the probe packet.
  20. 20. The source of claim 19, wherein the probe packet is a first probe packet, and wherein execution of the program code further configures the source to send a second probe packet at a predefined rate over the first network path to determine a modification to at least one of the first instruction or the second instruction.

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