Flow Collision Avoidance via Dynamic Port Perturbation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flow-based hashing in networks can lead to flow collisions, causing network congestion and packet drops due to persistent routing of flows through overburdened routes, even when overall network contention is low, and this issue is exacerbated in overlay networks where multiple flows are aggregated into fewer substrate flows.
Innovation Solution
Changing one or more port numbers defining the flow to alter the hashing result, detecting network congestion through monitoring, and perturbing flow identification information to redistribute flows across different routes, thereby avoiding flow collisions and optimizing network performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If flow-based hashing is used to maintain in-order delivery, then packet delivery order is improved, but network congestion occurs due to persistent routing through overburdened routes
Solution Approach 1:
The patent implements dynamic flow identification information that can change over time. Instead of persistent hashing, the system periodically changes flow identification information (such as source port numbers) to redistribute flows across different routes. This dynamic approach prevents any single route from being permanently overloaded while maintaining in-order delivery within each flow cohort, resolving the contradiction between delivery reliability and network productivity.
Solution Approach 2:
The patent changes flow identification parameters (specifically source port numbers or other header fields used for hashing) to alter hashing results and redistribute traffic. By modifying these parameters periodically or in response to congestion detection, the system redirects flows from overburdened routes to underutilized routes, thereby improving overall network performance while maintaining the in-order delivery guarantee through controlled parameter changes.
2Stability of the object's composition
If flows are persistently routed through the same route, then in-order delivery is maintained, but flow collisions cause congestion on overburdened routes
Solution Approach 1:
The patent implements periodic changes to flow identification information rather than persistent routing. By systematically changing flow identifiers at intervals (or in response to congestion detection), the system redistributes flows across different routes over time. This periodic action maintains routing consistency within each period while preventing long-term congestion on any single route, resolving the contradiction between stability and harmful congestion effects.
Solution Approach 2:
The patent incorporates feedback mechanisms that monitor network conditions (such as congestion levels on different routes) and use this information to dynamically adjust flow identification information. When congestion is detected on a particular route, the system modifies flow identifiers to redirect affected flows to alternative routes, thereby eliminating the harmful congestion effect while maintaining adequate routing consistency for in-order delivery.
3Productivity
If flow identification information is changed to avoid congestion, then network performance is improved, but packet delivery order may be disrupted
Solution Approach 1:
The patent introduces an intermediary mechanism (such as flow cookies or sequence numbering) that tracks packets across flow identification changes. When flow identifiers are modified to avoid congestion, this intermediary structure ensures that packets can be properly correlated and reassembled in order at the destination. The intermediary maintains the logical flow identity even as the hashing-based flow identification changes, thereby improving network performance without sacrificing delivery order reliability.
Data Source
AI summary
Disclosed are various embodiments for avoiding flow collisions in networks employing flow-based hashing to assign flows to routes. A flow of packets is sent from a source endpoint to a destination endpoint by way of a network. The flow is associated with flow identification information including, for example, a source port, a source network address, a destination port, and a destination address. It is determined whether to perturb the flow identification information for the flow to avoid flow collisions caused by flow-based hashing performed in the network. A state associated with the flow is updated to effect a perturbation to the flow identification information for the flow if the flow identification information for the flow is to be perturbed.


