throbber
Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 1 of 23 Page ID #:93
`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 1 of 23 Page ID #:93
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`EXHIBIT A
`
`EXHIBIT A
`
`

`

`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 2 of 23 Page ID #:94
`Case8=20-CV'00529 Wm“ 1'1 'lllllllllllllllfllllllllfllllfllll'llllllllllfillllllllllfilll
`
`USOO7266079B2
`
`(12) United States Patent
`(10) Patent No.:
`US 7,266,079 B2
`
`Fan
`(45) Date of Patent:
`Sep. 4, 2007
`
`(54) DYNAMIC NETWORK LOAD BALANCING
`OVER HETEROGENEOUS LINK SPEED
`
`EP
`
`0 910 195
`
`4/1999
`
`(75)
`
`Inventor: Kan Frankie Fan, Diamond Bar, CA
`(US)
`
`.
`.
`(73) ASSIgnee: Broadcom Corporation, Irvme, CA
`(US)
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 1127 days.
`
`(21) Appl. No.: 09/897,660
`
`(22)
`
`Filed:
`
`Jul. 2, 2001
`
`(65)
`
`Prior Publication Data
`US 2002/0054567 A1
`May 9, 2002
`
`Related US. Application Data
`
`(60) Provisional application N0~ 60/233338: filed on Sep.
`18: 2000'
`
`(51)
`
`Int. Cl'
`(200601)
`H04L 12/26
`(52) US. Cl.
`....................... 370/230; 370/235; 370/468
`(58) Field of Classification Search ................ 370/230,
`370/2301: 229, 235, 232, 468
`See application file for complete search history.
`References Cited
`
`(56)
`
`US. PATENT DOCUMENTS
`......... 709/239
`6,611,874 B1 *
`8/2003 Denecheau et a1.
`
`6 628 617 B1 *
`9/2003 Karol et al
`370/237
`6,831,893 B1 * 12/2004 Ben Nun et a1.
`370/235
`a
`a
`FOREIGN PATENT DOCUMENTS
`
`OTHER PUBLICATIONS
`
`Zhiro Cao et a1., “Performance of Hashing-Based Schemes for
`Internet Load Balancing,” Infocom 2000, 19th Annual Joint Con-
`ference of the IEEE Computer and Communications Societies,
`Proceedings, IEEE Tel Aviv, Israel Mar. 26-30, 2000, Piscataway,
`NJ, USA, IEEE, US, PP. 332-341.
`*
`. d b
`.
`we
`Y exammer
`Primary Examineriwmg Chan
`Assistant ExamineriRichard Chang
`(74) Attorney, Agent, or Firmisquire, Sanders & Dempsey,
`LLP
`
`(57)
`
`ABSTRACT
`
`A method, apparatus, and computer program product for
`balancing transmission unit
`traffic over network links,
`including disposing transmission units into flows; grouping
`flows into first flow lists, each corresponding to a selected
`network link; determining a traffic metric representative of
`a traffic load on the selected network link; responsive to the
`traffic metric, regrouping flows into second flow lists cor-
`responding to the selected network link,
`the regrouping
`balancing the transmission unit trafiic among the network
`links; and transmitting the respective second flow list over
`the respective selected network link. The invention also can
`include a method for transmitting transmission units through
`a network, mcludmg rece1vmg a transm1551on umt from a
`transmission unit source; classifying the transmission unit
`accordmg to a predetermmed flow characteristlc, selecting a
`preselected network link over which the transmission unit is
`to be transmitted; and transmitting the transmission unit over
`the preselected network link.
`
`EP
`
`0 891 061
`
`1/1999
`
`68 Claims, 9 Drawing Sheets
`
`
`
`
`
`@(W
`V
`31D
`PACKET INTO TRAFFIC
`
`CLASSIFV NETWORK JFLOWS
`
`V
`32°
`DERIVE
`EACH FLOW
`
`TRAFFIC METRICS FOR 1
`
`ORDER FLOWS INTO
`330
`i
`LINK
`TRAFFIC LIST FOR EACH /
`
`
`340
`DETERMINE
`MEI'RICS FOR TRAFFIC
`AGGREGATE TRAFFIC /
`
` LIST FoR EACH LINK
`
`CHARACTERIZE
`SELECTED TRAFFIC
`LIST PARAMETERS
`
`
`360
`CHARACTERIZE
`NETWORK LINKS USING
`
`PARAMETERS
`TRAFFIC LIST J
`I
`BALANCE TRAFFIC
`37D
`FLOW ACCORDING TO
`NETWORK LINKAND
`A66. TRAFFIC METRICS
`CHARACTERIZATIDNS
`
`
`
`
`
`
`35°
`
`—+
`
`

`

`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 3 of 23 Page ID #:95
`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 3 of 23 Page ID #:95
`
`U.S. Patent
`
`Sep. 4, 2007
`
`Sheet 1 0f 9
`
`US 7,266,079 B2
`
`
`
`CLIENTD
`CLIENTF
`CLIENTE
`CLIENTA
`CLIENTC
`CLIENTB
`
`
`
`NETWORKSWITCH
`
`COMMUNICATIONNETWORK
`
`
`
`
`LINK1
`
`106
`
`NETWORK
`
`SERVER
`
`

`

`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 4 of 23 Page ID #:96
`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 4 of 23 Page ID #:96
`
`U.S. Patent
`
`Sep. 4, 2007
`
`Sheet 2 0f 9
`
`US 7,266,079 B2
`
`1000Mbps
`
`SOURCE
`
`225
`
`SERVER
`
`n:
`023
`g2
`45
`D
`
`<C
`
`PACKET
`
`BUFFER
`
`PACKET/
`
`STREAM
`
`

`

`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 5 of 23 Page ID #:97
`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 5 of 23 Page ID #:97
`
`U.S. Patent
`
`Sep. 4, 2007
`
`Sheet 3 0f 9
`
`US 7,266,079 B2
`
`300
`
`CLASSIFY NETWORK
`PACKET INTO TRAFFIC
`FLOWS
`
`DERIVE
`TRAFFIC METRICS FOR
`EACH FLOW
`
`ORDER FLOWS INTO
`TRAFFIC LIST FOR EACH
`LINK
`
`
`
`DETERMINE
`AGGREGATE TRAFFIC
`METRICS FOR TRAFFIC
`LIST FOR EACH LINK
`
`CHARACTERIZE
`SELECTED TRAFFIC
`LIST PARAMETERS
`
`CHARACTERIZE
`NETWORK LINKS USING
`TRAFFIC LIST
`PARAMETERS
`
`BALANCE TRAFFIC
`FLOW ACCORDING TO
`NETWORK LINK AND
`AGG. TRAFFIC METRICS
`CHARACTERIZATIONS
`
`FIG. 3
`
`

`

`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 6 of 23 Page ID #:98
`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 6 of 23 Page ID #:98
`
`U.S. Patent
`
`eS
`
`4n
`
`m
`
`m.hS
`
`9f
`
`US 7,266,079 B2
`
`59¢>>o._u_
`
`omov
`
`7Nov
`2,ax225:07:25
`
`mEx225:o_n_u_<E.
`
`OEHZE
`
`V65%
`
`:x225:
`
`

`

`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 7 of 23 Page ID #:99
`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 7 of 23 Page ID #:99
`
`U.S. Patent
`
`Sep. 4, 2007
`
`Sheet 5 0f 9
`
`US 7,266,079 B2
`
`8
`Ln
`
`z
`0
`IEDO
`(9 LL <1: -
`i<0$o: _l
`I—
`CC
`
`o
`Q
`LL
`
`TD\—
`Q
`
`+ EE
`
`a
`
`E”
`
`:3.
`\—
`Q
`
`é 2
`
`______________________________________._
`
`< __ D Z
`2 “-
`Q
`fig—J." n: & 6 (.9
`0 n: _I L“
`z |--
`DE
`
`——————————————————————————————————
`
`MO
`
`mw TRAFFIC
`
`LOAD
`
`REGION
`
`

`

`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 8 of 23 Page ID #:100
`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 8 of 23 Page ID #:100
`
`U.S. Patent
`
`Sep. 4, 2007
`
`Sheet 6 0f 9
`
`US 7,266,079 B2
`
`
`
`6101»W
`
`612
`
`613
`
`614
`
`615
`
`611
`
`
`
`6201.m
`
`
`TRAFFIC LIST(LINK n) — LOW FLOW
`630—1» M
`
`TRAFFIC LIST(LINK 1) — HIGH FLOW
`
`621
`
`622
`
`623
`
`TRAFFIC LIST(LINK 2) - NORMAL FLOW
`
`631
`
`632
`
`-
`
` 600
`
` 611
`610-1»We a
`
`612
`
`613
`
`614
`
`TRAFFIC LIST(LINK 1) - NORMAL FLOW
`
`
`
`
`
`621
`
`622
`
`623
`
`620—1»m
`
`TRAFFIC LIST(LINK 2) — NORMAL FLOW
`
`,’
`
`,I
`
`650
`
`

`

`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 9 of 23 Page ID #:101
`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 9 of 23 Page ID #:101
`
`U.S. Patent
`
`Sep. 4, 2007
`
`Sheet 7 0f 9
`
`US 7,266,079 B2
`
`INITIALIZE accT(i,t) = 0
`
`VISIT NEXT SELECTED TRAFFIC
`FLOW IN TRAFFIC LIST
`
`SUM FLOW TRAFFIC METRICS IN
`
`LIST TO GET LINK aCCT(I',t)
`
`COMPARE LINK aCCT(i,l‘) TO
`Adm/3030
`
`IS accT(i,t) >
`M(t) + 00‘) ?
`
`BALANCING
`
`NVISITED FLOWS
`FOR LINK i?
`
`MOVE UNVISITED
`FLOWS TO LOW FLOW
`
`MOVE ALL FLOWS TO
`HIGHER SPEED LOW
`FLOW LINK
`
`PROCEED TO
`NEXT LIST/LINK IN
`FLOW TABLE
`
`ERE ALL HIG
`FLOW LINKS
`V'S'TED?
`
`DYNAMIC
`LOAD
`
`

`

`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 10 of 23 Page ID #:102
`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 10 of 23 Page ID #:102
`
`U.S. Patent
`
`Sep. 4, 2007
`
`Sheet 8 0f 9
`
`US 7,266,079 B2
`
`HASHINGPROCESS
`
`FIG.8
`
`,_0-
`
`>-'
`L'-
`CD
`2
`.4
`o
`
`t
`25
`cox
`20
`§<
`
`UPDATE
`
`METRICS
`
`

`

`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 11 of 23 Page ID #:103
`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 11 of 23 Page ID #:103
`
`U.S. Patent
`
`D...&
`
`9mmm4,
`
`2B970,662.}7SU
`
`mgk1.
`
`mjmfi25d..........._5&8...w
`
`
`mm>>o-_u__T--Neso-E0x2:
`
`

`

`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 12 of 23 Page ID #:104
`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 12 of 23 Page ID #:104
`
`US 7,266,079 B2
`
`1
`DYNAMIC NETWORK LOAD BALANCING
`OVER HETEROGENEOUS LINK SPEED
`
`CROSS-REFERENCE TO RELATED
`APPLICATION
`
`This patent application claims the benefit of the filing date
`of US. Provisional Patent Application No. 60/233,338, filed
`Sep.
`18, 2000, and entitled “DYNAMIC NETWORK
`LOAD BALANCING OVER HETEROGENEOUS LINK
`
`SPEED,” the entire contents of which are hereby expressly
`incorporated by reference.
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`
`The present invention relates to communications appara-
`tus and methods, particularly to computer networking appa-
`ratus and methods, and more particularly to computer net-
`working apparatus and methods for balancing data flow
`therethrough.
`2. Description of the Relevant Art
`A common problem in communication networks is main-
`taining efficient utilization of network resources, particularly
`with regard to bandwidth, so that data traffic is efficiently
`distributed over the available links between sources and
`
`destinations. Prior art solutions include apparatus and meth-
`ods that balance data traffic over homogeneous (same-speed)
`links between heterogeneous or homogeneous computing
`platforms (servers, clients, etc.). Increasingly, high-perfor-
`mance computing platforms communicate with other com-
`puters, routers, switches, and the like, using multiple links
`which, for a variety of reasons, may operate at disparate link
`speeds. For example, a server may communicate with other
`devices using a combination of new and legacy network
`cards, thus producing a heterogeneous-link-speed environ-
`ment; or adverse network conditions may degrade the per-
`formance of one or more links, effectively presenting a
`heterogeneous-link-speed environment to the server and its
`link partner(s). What is needed is a method to dynamically
`balance transmission unit traffic in a heterogeneous-link-
`speed environment, and an apparatus and computer program
`product therefor.
`
`SUMMARY OF THE INVENTION
`
`The present invention satisfies the above needs by pro-
`viding a method for balancing transmission unit traffic over
`heterogeneous speed network links,
`including disposing
`transmission units into flows; grouping flows into first flow
`lists corresponding to a selected network link; determining
`a traffic metric representative of a traffic load on the selected
`network link; responsive to the traffic metric, regrouping
`flows into second flow lists corresponding to the selected
`network link, the regrouping balancing the transmission unit
`traffic among the network links; and transmitting the respec-
`tive second flow list over the respective selected network
`link using a predetermined link-layer transmission protocol.
`The transmission units can include source information,
`destination information, and a combination thereof, and the
`flows are generated by characterizing each of the transmis-
`sion units according to the source information, the destina-
`tion information, or a combination thereof. Each of the
`transmission units can be a packet, a frame, a cell, or a
`combination thereof. It is desirable that the flow lists be
`
`decreasing-size-ordered linked lists. The predetermined
`link-layer transmission protocol can communicate the trans-
`
`2
`
`mission unit traffic over the network links in cooperation
`with a network-layer protocol; and the network-layer pro-
`tocol cooperates with a transport-layer protocol to commu-
`nicate the transmission unit traffic across the network links.
`
`Either the network-layer protocol or the transport-layer
`protocol can be a connectionless protocol or a connection-
`based protocol.
`The predetermined link-layer transmission protocol is one
`of an IEEE STD. 802 protocol, an ATM protocol, an FDDI
`protocol, an X.25 protocol, an ISDN protocol, a CDPD
`protocol, and a Frame Relay protocol. The network-layer
`protocol can be an intemet protocol (IP), a Switched Multi-
`megabit Data Service protocol (SMDS), a general packet
`radio service (GPRS), a Message Transfer Part Level 3
`protocol (MTP3), a an intemet packet exchange protocol
`(IPX), an X.25/X.75 protocol, a connectionless network
`protocol (CLNP), internet datagram protocol (IDP), a data-
`gram delivery protocol (DDP), a Xerox Network Systems
`protocol OiNS), or a combination thereof. The transport-
`layer protocol can be a transmission control protocol (TCP),
`a user datagram protocol (UDP), a NetBIOS protocol, an
`H.323 protocol, a GSM/CDMA protocol, a Stream Control
`Transmission Protocol (SCTP), or a combination thereof.
`The Traffic Metric representative of a traffic load on the
`selected network link characterized by:
`
`Naif» I)*Ki +N51(fxa 1)
`DI
`
`2
`
`T
`+ 1(fxal
`
`—l
`
`)
`
`T;(J’X,I)=
`
`where
`
`Ti(fx,t) is a Traffic Metric of Flow f,C in selected link i,
`sampled at time t,
`NLi,(fX,t) is the number of transmission units of Flow f,C in
`selected link i, with a transmission unit size greater than
`or equal
`to a preselected size threshold, observed
`between time t—l and time t,
`NSZ.(fX,t) is the number of transmission units of Flow f,C in
`selected link i, with a transmission unit size less than a
`preselected size threshold, observed between sampling
`time t—l and time t,
`Ki,C is a predetermined link load factor for Flow x in link
`i having a value in a range between about 4.0 and about
`5.0, and
`At is the inter-sampling time, measured as the interval
`between time t—l and time t, in selected link i.
`
`Also, an Aggregate Traffic Metric can be employed, which
`can be characterized by
`
`TA(i, r) = 2 TM, 0
`
`where
`
`TA(i,t) is an Aggregate Traffic Metric for selected link i,
`and
`
`Tl.(fx,t) is the Traffic Metric of Flow f,C in link i, sampled
`at time t.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Furthermore, the Aggregate Traffic Metric can be a Scaled
`Aggregate Traffic Metric characterized by
`
`STA (i, z):TA (i, z)*S(z', z)
`
`

`

`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 13 of 23 Page ID #:105
`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 13 of 23 Page ID #:105
`
`where
`
`3
`
`US 7,266,079 B2
`
`4
`
`nique, such as the one mentioned above. The method also
`can include monitoring the operation of a plurality of
`preselected network links, and re-assigning the predeter-
`mined flow characteristic from a first preselected network
`link to a second preselected network link, if the first prese-
`lected network link operationally fails.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`These and other features, aspects and advantages of the
`present invention will be more fully understood when con-
`sidered with respect to the following detailed description,
`appended claims and accompanying drawings, wherein:
`FIG. 1 is a block diagram of a communication network in
`which the present invention can reside;
`FIG. 2 is a block diagram of a communication server in
`according to an embodiment of the present invention;
`FIG. 3 is a flow diagram of a dynamic load balancing
`method according to an embodiment of the present inven-
`tion;
`FIG. 4 is an illustration of a Flow Table having Flow Lists
`within the context of the invention herein;
`FIG. 5 is a diagrammatic representation of flow classifi-
`cation within the context of the invention herein;
`FIG. 6A is a block diagram illustration of a Flow Table
`having Flow Lists therein, according to the present inven-
`tion;
`FIG. 6B is a block diagram illustration of a Flow Table
`having Flow Lists with re-assigned Flows therein, according
`to the present invention;
`FIG. 7 is a flow diagram of another aspect of a dynamic
`load balancing technique according to the present invention;
`FIG. 8 is a diagrammatic representation of another
`embodiment of the present invention; and
`FIG. 9 is a block diagram representation of a Flow Table
`having Flow Lists with re-assigned Flows therein, according
`to another aspect of the present invention.
`
`DESCRIPTION OF THE EMBODIMENTS
`
`The present invention is oriented to a flow-based method,
`apparatus, and computer program product for dynamically
`balancing transmission unit loads over heterogeneous-speed
`links between two devices in a communication network. A
`
`flow is a sequence of transmission units transmitted from a
`particular source to a particular destination, using unicast,
`multicast, or broadcast techniques. As used herein, a trans-
`mission unit is an ordered sequence of data bits, including,
`without limitation, packets, frames, and cells. Transmission
`units typically are transmitted through a communication
`network using one or more protocols arranged in protocol
`layers, similar to the international standard of a seven-layer
`Reference Model for Open System Interconnection (OSI
`model, ISO STD. 7498), which standard is herein incorpo-
`rated by reference in its entirety. In general, a transmission
`unit includes data, and communication-related information
`prepended and appended to the data. The communication-
`related information can include network, routing, control,
`priority, and state information, synchronization sequences,
`source and destination addresses, protocol-specific informa-
`tion, as well as error-correction/checking sequences, data-
`length information, and a potential myriad of other bit
`sequences used to facilitate the transmission of data across
`a communication network. The term “data” includes all
`
`forms of digital information, including without limitation,
`data, text, voice, video, graphics, and the like.
`
`the Scaled Aggregated Traffic Metrics
`is
`STA(i,t)
`observed at time t for network link i,
`TA(i,t) is the Trafiic Metric observed at time t for network
`link i, and
`S(i,t) is a preselected scaling factor for network link i at
`time t.
`
`5
`
`The scaled value can be used to determine a Link Group
`Arithmetic Mean characterized by
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`where
`
`is the Link Group Arithmetic Mean of Scaled
`M(t)
`Aggregated Traffic Metrics summed over all network
`links i,
`the Scaled Aggregated Traffic Metrics
`is
`STA(i,t)
`observed at time t for network link i, and
`n is the number of active network links.
`
`The aforementioned Link Group Arithmetic Mean and the
`Scaled Aggregated Trafiic Metric can be used to determine
`a Link Group Absolute Deviation characterized by
`
`|STA(i, I) — M(t)|
`
`n 2
`
`D(t) = ‘:1
`
`where
`
`D(t) is the Link Group Absolute Deviation of the Scaled
`Aggregated Traffic Metrics summed over all network
`links i,
`STA(i,t) is the Scaled Aggregated Traffic Metric observed
`at time t for network link i,
`M(t) is the Link Group Arithmetic Mean of the Scaled
`Aggregated Traffic Metrics summed over all network
`links i, and
`n is the number of active network links.
`
`thus is possible to classify a
`it
`With this information,
`network link according to its relative load:
`(I) a HIGH trafiic load on link i can be characterized by
`STA(i,t) §M(t)+D(t),
`(2) a LOW traffic load on link i can be characterized by
`STA(i,t)<M(t)—D(t), and
`(3) a NORMAL traffic load on link i can be characterized
`by M(t)+D(t)>STA(i,t) §M(t)—D(t).
`When a preselected link having a HIGH traffic load is
`detected preselected flow from a first flow list corresponding
`to the HIGH traffic load are re-assigned to a second flow list,
`preferably corresponding to a second preselected link having
`a LOW traffic load.
`
`The present invention also includes a method for trans-
`mitting transmission units through a network,
`including
`receiving a transmission unit from a transmission unit
`source; classifying the transmission unit according to a
`predetermined flow characteristic; selecting a preselected
`network link over which the transmission unit
`is to be
`
`transmitted; and transmitting the transmission unit over the
`preselected network link. The preselected network link can
`be selected according to the predetermined flow character-
`istic using a predetermined dynamic load balancing tech-
`
`

`

`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 14 of 23 Page ID #:106
`Case 8:20-cv-00529 Document 1—1 Filed 03/13/20 Page 14 of 23 Page ID #:106
`
`US 7,266,079 B2
`
`5
`For the purposes of illustrating embodiments of the
`present invention, three exemplary protocol layers of the
`OSI model hierarchy will be described: the link layer (Layer
`Two), the network layer (Layer Three), and the transport
`layer (Layer Four). A skilled artisan would realize that there
`is no bright-line distinction between these layers, and that
`the functionality of one layer often overlaps with the func-
`tionality of an adjacent layer, particularly as the nature of the
`reference model employed varies. Furthermore, a link-layer
`protocol can encompass functionality extending well into
`the physical layer (Layer One) and, in the context of the
`present invention, references to link layer, or Layer Two,
`protocols will also be considered to include Layer One
`where appropriate.
`Exemplary Layer Two protocols can include, without
`limitation, an IEEE STD. 802-1990 protocol, an ATM pro-
`tocol, an FDDI protocol, an X.25 protocol, an ISDN proto-
`col, a CDPD protocol, a Frame Relay protocol, and a
`combination thereof. IEEE STD. 802-related protocols are
`inclusive of protocols such as IEEE STD. 802.3 (CSMA-
`CD/Ethernet), IEEE STD. 802.4 (Token Bus), IEEE STD.
`802.5 (Token Ring), IEEE STD. 802.11 (Wireless LAN),
`IEEE STD. 802.15 (Wireless Personal LAN) and IEEE
`STD. 802.16 (Broadband Wireless Access). Exemplary
`Layer Three (network layer) protocols can include, without
`limitation, connection-oriented and connectionless protocols
`such as an intemet protocol (IP), a Switched Multi-megabit
`Data Service protocol
`(SMDS), a general packet radio
`service (GPRS), a Message Transfer Part Level 3 protocol
`(MTP3), a an intemet packet exchange protocol (IPX), an
`X.25/X.75 protocol, a connectionless network protocol
`(CLNP), intemet datagram protocol (IDP), a datagram deliv-
`ery protocol (DDP), a Xerox Network Systems protocol
`(XNS), and a combination thereof. Exemplary Layer Four
`(transport layer) protocols can include, without limitation,
`connection-oriented and connectionless protocols such as a
`transmission control protocol (TCP), a user datagram pro-
`tocol (UDP), a NetBIOS protocol, an H.323 protocol, a
`GSM/CDMA protocol, a Stream Control Transmission Pro-
`tocol (SCTP), and a combination thereof. All of the stan-
`dards representative of the aforementioned protocols are
`hereby incorporated by reference herein in their entireties.
`A particular source device can be identified by its IP
`(intemet protocol) address, and a port number. The particu-
`lar port number at the source device is identified by either a
`port number which is specific to a particular process, or by
`a standard port number for the particular transmission pro-
`tocol type. For example, a standard port number for the TCP
`protocol type is 6 and a standard port number for the UDP
`protocol type is 17. Other protocols which may have stan-
`dard port numbers include the FTP protocol, the TELNET
`protocol, an internet telephone protocol, or an internet video
`protocol; these protocols are known in the art of networking.
`Similarly, the particular destination device is identified by its
`IP address; the particular port number at the destination
`device is identified by either a port number which is specific
`to a particular process, or a standard port number for the
`particular transmission protocol type.
`Flows can be classified using a variety of characteristics,
`including source address, destination address, or both. Other
`characteristics of a particular transmission unit, such as
`priority, protocol type, control data, and the like may be
`used. Typically, in a communication network, a transaction
`between devices involves bidirectional flows, e.g., a device
`responds to a received sequence of transmission units from
`a sender by transmitting other transmission units to the
`sender. With regard to the present invention, however, it is
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`desirable to analyze and balance unidirectional flows, e.g.,
`flows being transmitted by a server, although bidirectional
`flow balancing may be effected under the inventive prin-
`ciples herein.
`In an exemplary IP-oriented flow, it is desirable that all
`packets belonging to the same flow bear the same source
`address, destination address, and priority. Similarly, in an
`exemplary TCP-oriented flow, it is desirable that all packets
`belonging to the same flow bear the same source port and/or
`destination port, and priority.
`For the purposes of illustration, the present invention is
`described within the context of unidirectional flows ema-
`
`nating, for example, from a device employing multiple,
`heterogeneous-speed links in an environment defined by
`IEEE STD. 802.3, 2000 Ed., which standard is hereby
`incorporated herein in its entirety. Hereinafter, “Standard
`Ethernet” will describe 10 Mbps service under IEEE STD.
`802.3,“Fast Ethernet” for 100 Mbps service, and “Gigabit
`Ethernet” for 1000 Mbps service.
`In the communication network 100 of FIG. 1, network
`server 105 communicates, via network switch 110, with
`multiple clients 120-125. Server 105 is coupled with switch
`110 using, for example, 11 communication links, with each
`link 106, 107, 108 being configured to transmit data at
`disparate link speeds. For example,
`link 106 may be a
`Standard Ethernet link, link 107 may be a Fast Ethernet link,
`and link 108 may be a Gigabit Ethernet link. The invention
`herein provides dynamic flow balancing of communication
`traffic over heterogeneous-speed links 106, 107, 108 such
`that each active link bears a desirable load, generally com-
`mensurate with the link’s physical transmission character-
`istics.
`
`FIG. 2 illustrates a simplified server 200 having packet
`source 210 coupled with network 220 through load balancer
`225, using network interface card (NIC) A 230, NIC B 240,
`and NIC C 250. Server 200 also can employ packet buffer
`215 interposed between source 210 and load balancer 225.
`Although three NICs are shown in FIG. 2, a modern server
`can employ an arbitrary number of network interfaces,
`subject to resource constraints. In this example, NIC A can
`be a 1000 Mbps NIC, with Link A being a Gigabit Ethernet
`link; NIC B can be a 100 Mbps NIC, with Link B being a
`Fast Ethernet link; and NIC C can be a 10 Mbps NIC, with
`Link C 255 being a standard Ethernet link. Because each
`NIC and associated link can provide differing bandwidth
`capacities when active, each will exhibit differing traffic
`handling characteristics, potentially leading to overutiliza-
`tion of one or more links, while others are underutilized.
`When used with the present invention, links A, B, and C can
`be a variety of links of arbitrary capacities, and potentially
`have heterogeneous link speeds, and not merely the three
`types of links illustrated. The present invention also may be
`used with homogeneous speed links as well. Given its
`configuration, Link A can transmit transmission units at a
`rate approximately two orders of magnitude greater than
`transmission rate of Link C. Link A can transmit transmis-
`
`sion units at a rate approximately one order of magnitude
`greater than transmission rate of Link B. Similarly, Link B
`can transmit transmission units at a rate approximately two
`orders of magnitude greater than transmission rate of Link
`C. A corollary to Link C having lower throughput than either
`Link A, or Link B, is having a longer transmission time than
`either Link A, or Link B, for a given transmission unit size.
`Thus, the impact of a larger transmission unit on the slowest
`link can be disproportionate to the same transmission unit’s
`impact on the highest-capacity link in a system. Accord-
`ingly, it is desirable to take into consideration factors other
`
`

`

`Case 8:20-cv-00529 Document 1-1 Filed 03/13/20 Page 15 of 23 Page ID #:107
`Case 8:20-cv-00529 Document 1—1 Filed 03/13/20 Page 15 of 23 Page ID #:107
`
`US 7,266,079 B2
`
`7
`than raw link speed, such as time-for-transmission, when
`balancing transmission unit traffic among the several links in
`a communication system. Because the transmission capacity
`on a given link can vary over time due to conditions of the
`network to which a link is coupled, the physical environment
`of the link, and the state of the NIC, it is desirable to provide
`adaptive, dynamic load balancing responsive to sensed
`conditions, and an aspect of the present
`invention can
`include such dynamic load balancing. The present invention
`also can provide desirable automatic failover among the 10
`multiple NICs disposed within a server, thereby maintaining
`transmission unit transmission in the face of one or more
`
`5
`
`link failures, and affording fault-tolerance in addition to
`dynamic load balancing.
`FIG. 3 illustrates one embodiment of method 300 for
`
`15
`
`effecting dynamic load balancing of heterogeneous-speed
`links in a communication network. Solely for the sake of
`illustration,
`transmission units are described in terms of
`packets, although other forms of transmission units, includ-
`ing without limitation, cells, frames, and combinations of 20
`packets, cells, and frames may be used, as well as any
`sequence of data bits intended to convey information.
`In general, method 300 includes classifying a received
`network transmission unit (e.g., a packet) into a traffic flow,
`operation 310; deriving metrics, such as traffic metrics, for 25
`selected flows, operation 320; and ordering flows into a
`link-specific traffic list, operation 330. It is desirable that
`metrics be derived for each flow, that the traffic lists so
`created be ordered, for example, by flow size, and that the
`traffic lists be linked lists. Once flows have been thus 30
`
`it further is desirable to determine aggregated
`arranged,
`metrics for a selected flow list related to a particular link,
`operation 340, and to derive preselected link group charac-
`teristics of the group of flows represented in the flow list for
`a selected link, operation 350. The utilization of a selected 35
`link can then be determined using the preselected link group
`characteristics, operation 360. For example, the utilization
`of a link may be HIGH, NORMAL, or LOW relative to the
`link’s inherent transmission capacity, and to other links.
`With link utilization thus determined, it then is desirable to 40
`balance the traffic flow according to aggregated traffic met-
`rics, or the associated network link characterizations, or
`both, operation 370. For example, a particular flow may be
`re-assigned from a first link having HIGH utilization, or
`traffic, to a second link having LOW utilization, or traffic, 45
`responsive to the aforementioned metrics and/or link char-
`acterizations.
`
`Exemplary techniques for implementing each of the
`operations of method 300 follow forthwith.
`Determine Traffic Metric for Each Flow in Each Link.
`
`In one embodiment of the present invention, it is desirable
`to determine a metric of a flow f,C in a selected link i, which
`in this case is a traffic-related metric according to the
`equation:
`
`Wolf» I))* Ki + Naif» 1)
`Ar
`
`2
`
`T-
`+ 1(fxal
`
`—1
`
`)
`
`TM, 0 =
`
`8
`NSZ.(fX,t) is the number of packets of Flow f,C in link i, with
`a size less than a preselected size threshold, observed
`between sampling time t—1 and t;
`Ki,C is a predetermined link load factor; and
`At is the inter-sampling time, measured between the time
`sample t—1 and sample t are taken in link i.
`
`Empirically, a suitable value for link loading factor, Km, can
`be between about 1.0 and about 10.0, although network
`conditions, components, and other network architectural and
`operational
`factors, may warrant other values.
`In one
`embodiment of the present invention, the link loading factor,
`Km,
`is desired to be a constant with a desired range of
`between about 4.0 and about 5.0. Additionally, a suitable
`size for the aforementioned preselected size threshold is
`about
`1 kilobyte (1,024 bytes), although different values
`may be selected to accommodate different network condi-
`tions, components, and other network architectural and
`operational factors.
`Order Flows in Each Link
`
`FIG. 4 illustrates a Flow Table, T], 400, here composed of
`three Traffic Flow Lists 401, 402, 403, each corresponding
`to a respective selected link i (where i:1 .
`.
`. 11 links). Traffic
`Flow List T1 401, corresponding to link 1, includes infor-
`mation corresponding to Flow fl 401a, Flow f2 401b, and
`Flow f3 4010; Traffic Flow List T2 402, corresponding to link
`2, includes information corresponding to Flow f4 402a, Flow
`f5 402b, and Flow f6 4020; and Traffic Flow List Tn 403,
`corresponding to link 11, includes information corresponding
`to Flow f7, Flow f8, and Flow f9. It is desirable that each
`Traffic Flow List, Ti, be constructed as a linked list.
`Although Flow Table 400 is symmetric, there is no require-
`ment for symmetry in Table 400 or in any list 401-403 in
`Table 400. Also, Flow Table 400 may include information
`for a large number of Flows (e.g., on the order of 104 flows),
`which Flows are distributed according to the link/network
`conditions. It is desirable that each Flow entry e.g., entry
`401a, 401b, 4010, in a selected list, e.g., Traffic Flow List
`401, be ordered by traffic metric value, associated with
`sample time t. For example,
`in one embodiment,
`it
`is
`desirable to order traffic flows by descending traffic metric
`value:
`
`Tim, 02mm;
`
`E@11)3T(13,l); and
`
`201103001)-
`
`Although other orderings may be effected, descending met-
`ric size order permits adjustments of potentially finer granu-
`larity to the balance of the traffic load.
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket