Server-centric high performance network architecture for modular data centers

US9674082B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9674082-B2
Application numberUS-201615040819-A
CountryUS
Kind codeB2
Filing dateFeb 10, 2016
Priority dateJan 9, 2009
Publication dateJun 6, 2017
Grant dateJun 6, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Disclosed are systems and methods for network architecture that is a server-centric network architectural design.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: determining multiple flow paths between a source server and a destination computing device of a network architecture; sending, from the source server, one or more first probing packets via a first flow path of the multiple flow paths; sending, from the source server, one or more second probing packets via a second flow path of the multiple flow paths; receiving, at the source server, one or more first response packets, the one or more first response packets comprising first bandwidth information associated with the first flow path; receiving, at the source server, one or more second response packets, the one or more second response packets comprising second bandwidth information associated with the second flow path; determining, at the source server and based at least in part on at least one of the first bandwidth information or the second bandwidth information, a flow path of the multiple flow paths for packet flow to traverse; and selecting, at the source server, the flow path for the packet flow to traverse. 2. The method of claim 1 , further comprising sending the packet flow to the destination computing device using the flow path. 3. The method of claim 1 , wherein determining the flow path comprises determining whether to buffer packets for upcoming flows of packets. 4. The method of claim 1 , wherein selecting the flow path comprises selecting the flow path from parallel flow paths of the multiple flow paths. 5. The method of claim 1 , wherein selecting the flow path comprises determining that the flow path has maximum available bandwidth among flow paths included in the multiple flow paths. 6. The method of claim 1 , wherein the determining the flow path of the multiple flow paths for the packet flow to traverse comprises determining, based at least in part on the first bandwidth information and the second bandwidth information, that the first flow path has roughly a same amount of available bandwidth as the second flow path; and wherein selecting the flow path comprises, in response to determining that the first flow path has roughly the same amount of available bandwidth as the second flow path: determining that the first flow path has a shorter length than the second flow path; and based at least in part on the first flow path having the shorter length than the second flow path, selecting the first flow path for the packet flow to traverse. 7. The method of claim 1 , further comprising: prior to determining the flow path of the multiple flow paths for the packet flow to traverse, selecting a default path for the packet flow to traverse; sending the packet flow to the destination computing device via the default path; and in response to selecting the flow path for the packet flow to traverse, sending the packet flow to the destination computing device using the flow path. 8. The method of claim 1 , further comprising: periodically probing the multiple flow paths, the probing comprising: sending, from the source server, one or more probing packets via each of the multiple flow paths; and receiving, at the source server, one or more response packets, the one or more response packets comprising periodic bandwidth information associated with each of the multiple flow paths; receiving, at the source server, a path failure message indicating that the flow path selected for the packet flow to traverse is unavailable for the packet flow to traverse; and selecting, at the source server, another flow path from the multiple flow paths for the packet flow to traverse based at least in part on the periodic bandwidth information. 9. A system comprising: one or more processors; memory communicatively coupled to the one or more processors; computer-readable instructions stored in the memory and that, when executed by the one or more processors, cause the one or more processors to perform acts comprising: determining a first flow path between a source sever and a first set of servers; determining a second flow path between the source server and a second set of servers; sending, from the source server, one or more first probing packets via the first flow path; sending, from the source server, one or more second probing packets via the second flow path; receiving, at the source server, one or more first response packets, the one or more first response packets comprising first available bandwidth information associated with the first flow path; receiving, at the source server, one or more second response packets, the one or more second response packets comprising second available bandwidth information associated with the second flow path; determining, at the source server and based at least in part on at least one of the first available bandwidth information or the second available bandwidth information, that the first flow path has a first amount of available bandwidth that is greater than a second amount of available bandwidth of the second flow path; and selecting, at the source server, the first flow path for a packet flow to traverse based at least partly on the determining that the first amount of available bandwidth of the first flow path is greater than the second amount of available bandwidth of the second flow path. 10. The system of claim 9 , wherein the acts further comprise encoding the first flow path into packet headers associated with the packet flow. 11. The system of claim 9 , wherein selecting the first flow path comprises determining that the first flow path and the second flow path are parallel flow paths. 12. The system of claim 9 , wherein selecting the first flow path comprises selecting the first flow path and the second flow path for the packet flow to traverse. 13. The system of claim 9 , wherein selecting the first flow path comprises determining whether to buffer packets for upcoming flows of packets. 14. The system of claim 9 , wherein selecting the first flow path comprises determining that the first flow path is shorter than the second flow path. 15. The system of claim 9 , wherein the determining that the first flow path has a first amount of available bandwidth that is greater than a second amount of available bandwidth of the second flow path comprises: analyzing a first bandwidth field of the one or more first response packets to identify the first amount of available bandwidth of the first flow path, the first bandwidth field being populated by a destination computing device; and analyzing a second bandwidth field of the one or more second response packets to identify the second amount of available bandwidth of the second flow path, the second bandwidth field being populated by the destination computing device. 16. One or more computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to perform acts comprising: determining multiple flow paths between a source server and a destination computing device of a network architecture; sending, from the source server, one or more first probing packets via a first flow path of the multiple flow paths; sending, from the source server, one or more second probing packets via a second flow path of the multiple flow paths; receiving, at the source server, one or more first response packets, the one or more first response packets comprising first bandwidth information associated with the first flow path; receiving, at the source server, one or more second response packets, the one or more second response packets comprising second bandwidth information associated with the second f

Assignees

Inventors

Classifications

  • Address table lookup; Address filtering · CPC title

  • characterised by the switching fabric construction · CPC title

  • Multipath · CPC title

  • based on throughput or bandwidth · CPC title

  • channel conditions · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9674082B2 cover?
Disclosed are systems and methods for network architecture that is a server-centric network architectural design.
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification H04L45/38. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jun 06 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).