US 12,231,353 B2
Fabric control protocol for data center networks with packet spraying over multiple alternate data paths
Deepak Goel, San Jose, CA (US); Narendra Jayawant Gathoo, San Jose, CA (US); Philip A Thomas, San Jose, CA (US); Srihari Raju Vegesna, San Jose, CA (US); Pradeep Sindhu, Los Altos Hills, CA (US); Wael Noureddine, Santa Clara, CA (US); Robert William Bowdidge, San Jose, CA (US); Ayaskant Pani, Fremont, CA (US); and Gopesh Goyal, Cupertino, CA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Jan. 28, 2020, as Appl. No. 16/774,941.
Application 16/774,941 is a continuation in part of application No. 16/147,070, filed on Sep. 28, 2018, granted, now 11,178,262.
Claims priority of provisional application 62/638,788, filed on Mar. 5, 2018.
Claims priority of provisional application 62/566,060, filed on Sep. 29, 2017.
Prior Publication US 2020/0169513 A1, May 28, 2020
This patent is subject to a terminal disclaimer.
Int. Cl. H04L 49/25 (2022.01); H04L 12/46 (2006.01); H04L 45/00 (2022.01); H04L 47/34 (2022.01); H04L 47/41 (2022.01); H04L 67/10 (2022.01); H04L 69/16 (2022.01)
CPC H04L 49/25 (2013.01) [H04L 12/4633 (2013.01); H04L 45/22 (2013.01); H04L 47/34 (2013.01); H04L 47/41 (2013.01); H04L 67/10 (2013.01); H04L 69/16 (2013.01)] 17 Claims
OG exemplary drawing
 
1. A system comprising:
a plurality of servers, including a source server and a destination server;
a switch fabric comprising a plurality of core switches;
a destination access node coupled to at least the destination server, and
a source access node coupled to at least the source server, wherein the source access node communicates with the destination access node over a plurality of data paths through the switch fabric, wherein the source access node is configured to spray, over the plurality of data paths, packets of a packet flow between the source access node and the destination access node, and wherein to spray the packets of the packet flow, the source access node:
tracks a number of bytes of the packets of the packet flow previously transmitted on each of the plurality of data paths by the source access node,
determines, for each of the plurality of data paths, a count of bytes previously transmitted on each respective path, and
directs each of the packets of the packet flow to a least loaded data path selected based on the count of bytes previously transmitted on each respective path, wherein a first packet and a second packet of the packets of the packet flow travel over different data paths of the plurality of data paths.