IP Library › Granted Patent US 11,811,646
Granted Patent B2
US 11,811,646 · App. 17/827,675 · Granted Nov 7, 2023

Decentralized wide-area network traffic engineering

Inventors: Umesh Krishnaswamy (San Jose, CA); Rachee Singh (Redmond, WA); Nikolaj Bjorner (Woodinville, WA); Himanshu Raj (Mountain View, CA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
H04L45/125H04L45/18H04L45/50
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,811,646
App. No.
17/827,675
Granted
Nov 7, 2023
Kind
B2
Abstract

A system manages network traffic in a distributed system comprising a plurality of network devices. The network devices are divided into a plurality of network slices, each of the network slices including a subset of the network devices such that there is no overlap of network devices between the network slices. Individual network slices are associated with individual slice controllers, and an individual slice controller is configured to manage network routing of an individual network slice. Each of the individual slice controllers route the network traffic within each respective individual network slice. The network traffic is independently routed based on expected network conditions for each respective individual network slice, and data defining routing decisions is contained within each network slice to limit fault effects between the network slices.

Claims (29)

1. A method for managing network traffic in a distributed computing system comprising a plurality of network devices that are configured to send or receive network traffic between the plurality of network devices, the method comprising:

dividing the plurality of network devices in the distributed computing system into a plurality of network slices, wherein each of the plurality of network slices include a subset of the plurality of network devices such that there is no overlap of network devices between the network slices;

associating individual network slices of the plurality of network slices with individual slice controllers, wherein an individual slice controller is configured to manage network routing of an individual network slice; and

routing, by each of the individual slice controllers, the network traffic within each of the respective individual network slices, wherein the network traffic is independently routed based on expected network conditions for each of the respective individual network slices, and wherein data defining routing decisions is contained within each network slice to limit fault effects between the network slices.

2. The method of claim 1 , further comprising controlling routing of the network traffic between network slices to prevent network routing loops.

3. The method of claim 2 , wherein the controlling the routing of the network traffic comprises configuring each of the slice controllers with constraint data.

4. The method of claim 3 , wherein the constraint data comprises disallowed links represented by slice source and destination identifiers.

5. The method of claim 1 , wherein inter-slice communications are implemented using Multiprotocol Label Switching (MPLS).

6. The method of claim 1 , wherein network traffic is routed by each slice controller such that a failure of one of the slice controllers in one of the network slices does not impede routing of network traffic in other network slices.

7. The method of claim 1 , wherein inter-slice flows use slice-local encapsulation to a slice boundary.

8. The method of claim 1 , wherein packets are forwarded using protocol routes along shortest paths to packet destinations when a downstream slice controller fails to program routes to the packet destinations.

9. A system for managing network traffic in a distributed system comprising a plurality of network devices, the system comprising:

one or more computing devices comprising a processor and a memory in communication with the processor, the memory having computer-readable instructions stored thereupon that, when executed by the processor, cause the system to perform operations comprising:

associating each network slice of a plurality of network slices of a distributed computing system with a slice controller, wherein the distributed computing system comprises a plurality of network devices that are divided into the plurality of network slices, each of the plurality of network slices including a subset of the plurality of network devices such that there is no overlap of the network devices between the network slices, and wherein each slice controller is configured to manage network routing of a network slice associated with the slice controller; and

routing, by each of the slice controllers, network traffic within each of the respective network slices, wherein the network traffic is independently routed based on expected network conditions for each of the respective network slices, and wherein data defining routing decisions is contained within each network slice to limit fault effects between the network slices.

10. The system of claim 9 , further comprising computer-readable instructions stored thereupon that, when executed by the one or more processors, cause the system to perform operations comprising:

controlling routing of the network traffic between network slices to prevent network routing loops.

11. The system of claim 10 , wherein the controlling the routing of the network traffic comprises configuring each of the slice controllers with constraint data.

12. The system of claim 11 , wherein the constraint data comprises disallowed links represented by slice source and destination identifiers.

13. The system of claim 9 , wherein network traffic is routed by each slice controller such that a failure of one of the slice controllers in one of the network slices does not impede routing of network traffic in other network slices.

14. A computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by one or more processors of a computing device, cause the computing device to:

associate each network slice of a plurality of network slices of a distributed computing system with a slice controller, wherein the distributed computing system comprises a plurality of the network devices that are divided into the plurality of network slices, each of the plurality of network slices including a subset of the plurality of network devices such that there is no overlap of the network devices between the network slices, and wherein each slice controller is configured to manage network routing of a network slice associated with the slice controller; and

route, by each of the slice controllers, network traffic within each of the respective network slices, wherein the network traffic is independently routed based on expected network conditions for each of the respective network slices, and wherein data defining routing decisions is contained within each network slice to limit fault effects between the network slices.

15. The computer-readable storage medium of claim 14 , further comprising computer-executable instructions stored which, when executed by one or more processors of a computing device, cause the computing device to controlling routing of the network traffic between network slices to prevent network routing loops.

16. The computer-readable storage medium of claim 15 , wherein the controlling the routing of the network traffic comprises configuring each of the slice controllers with constraint data.

17. The computer-readable storage medium of claim 16 , wherein the constraint data comprises disallowed links represented by slice source and destination identifiers.

18. The computer-readable storage medium of claim 14 , wherein network traffic is routed by each slice controller such that a failure of one of the slice controllers in one of the network slices does not impede routing of network traffic in other network slices.

19. The computer-readable storage medium of claim 18 , wherein inter-slice flows use slice-local encapsulation to a slice boundary.

20. The computer-readable storage medium of claim 14 , wherein packets are forwarded using protocol routes along shortest paths to packet destinations when a downstream slice controller fails to program routes to the packet destinations.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2022
From: KRISHNASWAMY, UMESH; SINGH, RACHEE; BJORNER, NIKOLAJ; RAJ, HIMANSHU
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 061362/0531 →
Continuity (2)
Provisional Application 63315048 · Feb 28, 2022
Related Publication 20230275828A1 · Aug 31, 2023