CN113785541A - 用于在存在错误的情况下的即时路由的系统和方法 - Google Patents
用于在存在错误的情况下的即时路由的系统和方法 Download PDFInfo
- Publication number
- CN113785541A CN113785541A CN202080031356.5A CN202080031356A CN113785541A CN 113785541 A CN113785541 A CN 113785541A CN 202080031356 A CN202080031356 A CN 202080031356A CN 113785541 A CN113785541 A CN 113785541A
- Authority
- CN
- China
- Prior art keywords
- flow
- link
- packet
- network
- switch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 51
- 230000005540 biological transmission Effects 0.000 claims abstract description 42
- 230000004044 response Effects 0.000 claims abstract description 14
- 230000003044 adaptive effect Effects 0.000 claims description 65
- 238000012790 confirmation Methods 0.000 claims 1
- 239000004744 fabric Substances 0.000 description 112
- 230000008569 process Effects 0.000 description 25
- 238000004891 communication Methods 0.000 description 24
- 239000000872 buffer Substances 0.000 description 19
- 238000003860 storage Methods 0.000 description 16
- 238000002347 injection Methods 0.000 description 13
- 239000007924 injection Substances 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000013507 mapping Methods 0.000 description 9
- 230000000670 limiting effect Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 235000008694 Humulus lupulus Nutrition 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000000739 chaotic effect Effects 0.000 description 2
- 235000014510 cooky Nutrition 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 229920006395 saturated elastomer Polymers 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241000238633 Odonata Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001152 differential interference contrast microscopy Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 229920000747 poly(lactic acid) Polymers 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009738 saturating Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/021—Ensuring consistency of routing table updates, e.g. by using epoch numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/028—Dynamic adaptation of the update intervals, e.g. event-triggered updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/20—Hop count for routing purposes, e.g. TTL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/46—Cluster building
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
- H04L45/566—Routing instructions carried by the data packet, e.g. active networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/70—Routing based on monitoring results
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/18—End to end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/20—Traffic policing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2466—Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
- H04L47/323—Discarding or blocking control packets, e.g. ACK packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/39—Credit based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/621—Individual queue per connection or flow, e.g. per VC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/6235—Variable service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6255—Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/626—Queue scheduling characterised by scheduling criteria for service slots or service orders channel conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/629—Ensuring fair share of resources, e.g. weighted fair queuing [WFQ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/76—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/76—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
- H04L47/762—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/781—Centralised allocation of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/101—Packet switching elements characterised by the switching fabric construction using crossbar or matrix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3018—Input queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9005—Buffering arrangements using dynamic buffer space allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9021—Plurality of buffers per packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9036—Common buffer combined with individual queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/38—Universal adapter
- G06F2213/3808—Network interface controller
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
Abstract
提供了用于在存在错误的情况下“即时”路由数据传输的系统和方法。交换机可以建立对应于网络中的流的流通道。响应于在沿着传输路径的网络链路上遇到严重的错误,交换机可以生成错误确认。交换机可以经由所述多个流通道将错误确认传输到在网络链路上游的入口端口。通过传输错误确认,它将遇到严重的错误的网络链路作为故障链路指示给在故障链路上游的入口端口。随后,在故障链路上游的每个入端口可以动态地更新在故障链路上游的所述多个流的路径,使得在故障链路上游的所述多个流以避开故障链路的方式被路由。
Description
政府权利声明
本文中所描述的(多项)发明是在美国政府支持下根据下文所阐述的一个或多个合同进行。美国政府在这些发明中具有某些权利。
相关申请
根据35U.S.C.119,本申请要求于2019年5月23日提交的标题为“Network Switch”的美国临时专利申请号62/852273、2019年5月23日提交的标题为“Network InterfaceController”的美国临时专利申请号62/852203、以及2019年5月23日提交的标题为“Network Computer System”的美国临时专利申请号62/852289的权益和优先权,以上各者的公开内容通过引用被并入。
背景技术
随着启用网络的装置和应用变得越来越普及,各种类型的流量以及不断增加的网络负载继续要求来自底层网络架构的更高性能。例如,诸如高性能计算(HPC)、媒体串流和物联网(IOT)之类的应用可以生成具有鲜明特性的不同类型的流量。结果,除了常规的网络性能指标(诸如,带宽和延迟)之外,网络架构继续面临诸如可扩展性、多功能性和效率之类的挑战。
附图说明
根据一个或多个各种实施例,参考以下附图来详细描述本公开。附图仅出于图示的目的而被提供并且仅描绘典型或示例实施例。
图1图示了其中可实施各种实施例的示例网络。
图2A图示了促进流通道的示例交换机。
图2B图示了沿着数据路径的交换机如何可以维持流状态信息的示例。
图3A图示了用于数据包的示例结构报头。
图3B图示了示例确认(ACK)包格式。
图3C图示了用于导出和维持流的状态信息的不同变量之间的示例关系。
图4A图示了如何可以使用流通道表来递送流的示例。
图4B图示了边缘流通道表(EFCT)的示例。
图4C图示了输入流通道表(IFCT)的示例。
图4D图示了输出流通道表(OFCT)的示例。
图5图示了经历拥塞的网络的示例,其中可以实施自适应路由和“即时”路由。
图6图示了根据各种实施例的在存在错误的情况下的“即时”路由的示例性过程的流程图。
图7图示了促进用于在存在错误的情况下的“即时”路由的流通道的交换机的示例。
图8是可用于实施本公开中所描述的实施例的各种特征的示例计算部件。
附图并非为详尽的,并且不将本公开限制为所公开的精确形式。
具体实施方式
本公开描述了可以适应百亿亿次计算的系统和方法,例如以百亿亿次速度执行诸如模拟、数据分析、人工智能工作负载之类的数据密集型任务。特别地,提供了高性能计算(HPC)网络或互连结构,其可为以太网兼容的、能够连接到第三方数据存储装置(datastorage)、以及可以使用带宽极高的交换机部件(例如,每个交换机大约12.8Tb/s/dir)来构建,其中例如64个200Gbps端口支持以非常低的直径(例如,仅三个网络跃点)的大型网络创建。
交换机芯片用于实施上述交换机。交换机芯片是为网络设计的定制式专用集成电路(ASIC)。作为示例,它可以提供64个网络端口,这些网络端口可以以100Gbps抑或200Gbps操作以实现12.8Tbps的聚合吞吐量。每个网络边缘端口能够支持IEEE 802.3以太网和基于优化IP的协议以及门户(一种提供对更高速率的小消息的支持的增强型帧格式)。以太网帧可以基于其L2地址进行桥接,或者它们可以基于其L3(1PV4//1PV6)地址进行路由。优化IP帧仅具有L3(1PV4/1PV6)报头,因此必须始终被路由。增强型门户格式帧需要专门化NIC支持,并且可以直接映射到交换机增强型结构格式上。
当交换机芯片连接到另一个交换机芯片时,它们可以使用增强型结构帧格式进行通信,该增强型结构帧格式提供附加的控制和状态字段以支持多芯片结构。当与商用以太网交换机ASIC或替代性技术(诸如,无限带宽)相比较时,交换机芯片的区分性特征在于它具有被称为流通道的新颖的拥塞控制机制。在交换机ASIC之间操作的增强型结构帧格式的目的之一是为拥塞控制流通道提供状态的前向和反向路径信令。通过利用流通道,所公开的交换机实现了增强的控制机制,诸如“即时”路由、自适应路由以及允许在带宽整形、优先级和路由策略方面的灵活性的独特流量类别。
在交换机芯片内,可以管理网络流量以潜在地避开故障链路。尽管如此,当不存在去往某个目的地的替代性路径时,用于管理网络流量的典型方法并未完全防止使用故障链路。通常,故障链路避开可以以两部分来完成:1)交换机提供错误率和错误类型的度量;以及2)适应重新路由以避开故障链路(例如,它可以使故障链路看起来为重负载的,使得自适应路由将优选替代性路径)。在实践中,可以生成并向上游传输错误确认,从而以一种方式适应“即时”路由以避免错误。在与交换机芯片独立的部分中,进入完全断开链路中的帧流将以防止重新排序的方式并从故障链路上游的每个交换机被重新路由到替代性路径上。
图1示出了包括多个交换机的示例网络100,其也可以被称为“交换机结构”。如图1中所图示的,网络100可以包括交换机102、104、106、108和110。每个交换机可以在交换机结构100内具有唯一的地址或标识符(ID)。各种类型的装置和网络可以联接到交换机结构。例如,存储阵列112可以经由交换机110联接到交换机结构100;基于无限带宽(IB)的HPC网络114可以经由交换机108联接到交换机结构100;若干个终端主机(诸如,主机116)可以经由交换机104联接到交换机结构100;并且IP/以太网网络118可以经由交换机102联接到交换机结构100。例如,交换机(诸如,交换机102)可通过以太网装置(诸如,网络接口卡(NIC)、交换机、路由器或网关)来接收802.3帧(包括封装的IP有效负载)。IPv4或IPv6包、专门针对网络100格式化的帧等也可被接收、通过交换机结构100传送到另一个交换机(例如,交换机110)。因此,网络100能够同时处理多种类型的流量。一般而言,交换机可以具有边缘端口和结构端口。边缘端口可以联接到结构外部的装置。结构端口可以经由结构链路联接到结构内的另一个交换机。
通常,流量可以经由边缘交换机的入口端口注入到交换机结构100中,并且经由另一个(或同一个)边缘交换机的出口端口离开交换机结构100。入口边缘交换机可以将注入的数据包集合成流,这些流可以通过流ID进行识别。流的概念不限于特定的协议或层(诸如,开放系统接口(OSI)参考模型中的第2层或第3层)。例如,流可以被映射到具有特定的以太网源地址的流量、源IP地址和目的地IP地址之间的流量、对应于TCP或UDP端口/IP 5元组的流量(源IP地址和目的地IP地址、源TCP或UDP端口号和目的地TCP或UDP端口号、以及IP协议号)、或由在终端主机上运行的进程或线程产生的流量。换句话说,流可以被配置成映射到任何物理或逻辑实体之间的数据。此映射的配置可以远程地或在入口边缘交换机处本地地完成。
在接收到注入的数据包时,入口边缘交换机可以将流ID指派给该流。该流ID可以被包括在特殊的报头中,入口边缘交换机可以使用该报头来封装注入的包。此外,入口边缘交换机还可以检查注入的包的原始报头字段以确定适当的出口边缘交换机地址,并将此地址作为目的地地址包括在封装报头中。注意,流ID可以是特定于链路的本地有效值,并且此值可以仅对于交换机上的特定输入端口是唯一的。当包被转发到下一跳(next-hop)交换机时,包进入另一个链路,并且可以相应地更新流ID。由于流的包横过多个链路和交换机,因此对应于该流的流ID可以形成唯一的链。也就是说,在每个交换机处,在包离开该交换机之前,包的流ID可以被更新为由送出链路使用的流ID。流ID之间的这种从上游到下游的一对一映射可以在入口边缘交换机处开始并在出口边缘交换机处结束。由于流ID只需要在引入链路内是唯一的,因此交换机可以容纳大量的流。例如,如果流ID为11位长,则输入端口可以支持多达2048个流。此外,用于映射到流的匹配模式(包的一个或多个报头字段)可以包括更大的位数。例如,32位长的匹配模式(其可以在包报头中包括多个字段)可以映射2^32种不同的报头字段模式。如果结构具有N个入口边缘端口,则可以支持总数为N*2^32个可识别流。
交换机可以向每个流指派单独的专用输入队列。这种配置允许交换机监视和管理各个流的拥塞程度,并防止在将共享缓冲区用于多个流的情况下可能发生的队列头阻塞。当包被递送到目的地出口交换机时,出口交换机可以生成确认(ACK)并沿上游方向沿着同一条数据路径将该ACK发送回到入口边缘交换机。由于此ACK包横过同一条数据路径,因此沿着路径的交换机可以通过监视未完成的(outstanding)、未确认的数据量来获得与对应流的递送相关联的状态信息。然后,可以使用此状态信息来执行特定于流的流量管理,以确保整个网络的健康和对流的公平处理。如下文更详细解释的,这种按流排队与特定于流的递送确认相结合,可以允许交换机结构实施有效、快速和准确的拥塞控制。反过来,交换机结构可以在不遭受拥塞的情况下以显著改善的网络利用率来递送流量。
可以基于需求动态地或“即时”设立和释放流。具体地,当数据包到达交换机并且先前没有将流ID指派给此包时,可以由入口边缘交换机设立流(例如,建立流ID到包报头的映射)。当此包行进通过网络时,可以沿着该包横过的每个交换机来指派流ID,并且可以建立从入口到出口的流ID链。属于同一个流的后续包可以沿着数据路径使用相同的流ID。当包被递送到目的地出口交换机并且ACK包由沿着数据路径的交换机接收时,每个交换机可以更新它的关于该流的未完成的、未确认的数据量的状态信息。当交换机的用于该流的输入队列为空并且不存在更多未确认的数据时,交换机可以释放流ID(即,释放该流通道)并将该流ID重新用于其他流。这种数据驱动的动态流设立和拆除机制可以消除对集中化流管理的需要,并且允许网络快速响应流量模式变化。注意,本文中所描述的网络架构与软件定义网络(SDN)不同,后者通常使用OpenFlow协议。在SDN中,交换机由中央网络控制器配置,并且基于第2层(数据链路层,诸如以太网)、第3层(网络层,诸如IP)或第4层(传送层,诸如TCP或UDP)报头中的一个或多个字段来转发包。在SDN中,这种报头-字段查找在网络中的每个交换机处执行,并且不存在如在本文中所描述的网络中完成的基于流ID的快速转发。此外,由于OpenFlow报头-字段查找是使用三态内容可寻址存储器(TCAM)完成的,因此这种查找的成本会是高的。而且,由于报头-字段映射配置由中央控制器完成,因此每种映射关系的设立和拆除相对缓慢并且可能需要相当量的控制流量。结果,SDN网络对各种网络情形(诸如,拥塞)的响应会是缓慢的。相比之下,在本文中所描述的网络中,可以基于流量需求动态地设立和拆除流;并且可以根据定长(fixed-length)流ID来转发包。换句话说,流通道可以在没有中央控制器的干预的情况下以分布式方式进行数据驱动和管理(即,设立、监视和拆除)。此外,基于流ID的转发可以减少所使用的TCAM空间的量,且结果可以容纳数量大得多的流。
参考图1中所示的示例,假设存储阵列112要使用TCP/IP将数据发送到主机116。在操作期间,存储阵列112可以利用主机116的IP地址(作为目的地地址)和TCP报头中所指定的预定TCP端口来发送第一包。当此包到达交换机110时,交换机110的输入端口处的包处理器可以识别此包的TCP/IP 5元组。交换机110的包处理器还可以确定这个5元组当前没有被映射到任何流ID,并且可以将新的流ID分配给这个5元组。此外,交换机110可以基于目的地(即,主机116的)IP地址(假定交换机110知道主机116联接到交换机104)来确定用于此包的出口交换机(其为交换机104)。随后,交换机110可以用结构报头来封装接收到的包,该结构报头指示新指派的流ID和交换机104的结构地址。然后,交换机110可以基于结构转发表将所封装的包调度为朝向交换机104转发,该结构转发表可以由结构100中的所有交换机使用路由算法(诸如,链路状态或距离矢量)来计算。
注意,当接收到第一包时,上文所描述的操作可以基本上以线速度执行且几乎没有缓冲和延迟。在第一包被处理并调度用于传输之后,由于使用了相同的流ID,因此来自同一个流的后续包可以由交换机110甚至更快地处理。另外,流通道的设计可以使得流通道的分配、匹配和解除分配可以具有基本相同的成本。例如,可以在几乎每个时钟周期中并发地执行基于查找匹配对流通道的有条件分配和对另一个流通道的单独、独立的解除分配。这意味着,生成和控制流通道几乎不会将附加的开销加到包的常规转发。另一方面,拥塞控制机制可以将一些应用的性能改善三个数量级以上。
在沿着数据路径的每个交换机(其包括交换机110、106和104)处,可以为该流提供专用的输入缓冲区,并且可以跟踪已传输但未确认的数据量。当第一包到达交换机104时,交换机104可以确定包的结构报头中的目的地结构地址与它自己的地址匹配。作为响应,交换机104可以从结构报头解封包,并将解封后的包转发到主机116。此外,交换机104可以生成ACK包并将此ACK包发送回到交换机110。当此ACK包横过同一条数据路径时,交换机106和110可以各自针对该流的未确认的数据更新它们自己的状态信息。
一般而言,网络内的拥塞会引起填充网络缓冲区。当网络缓冲区满时,应减慢或停止理想情况下试图通过缓冲区的流量。否则,缓冲区可能溢流,并且可能丢失包。在常规网络中,拥塞控制通常在边缘处端对端完成。假定网络的核心仅用作“哑管道”,其主要目的是转发流量。这种网络设计常常遭受对拥塞的响应缓慢的问题,因为拥塞信息常常无法快速发送到边缘装置,并且由边缘装置采取的所得动作并非总是能有效去除拥塞。这种缓慢的响应进而限制了网络的利用率,因为为了保持网络畅通无阻,网络运营商常常需要限制注入到网络中的流量总量。此外,端到端拥塞控制通常只有在网络还没有发生拥塞的条件下才有效。一旦网络严重拥塞,端到端拥塞控制就将不起作用,因为拥塞通知消息本身会发生拥塞(除非使用与数据平面网络不同的单独的控制平面网络来发送拥塞控制消息)。
相比之下,流通道可以防止这种拥塞在交换机结构内增长。流通道机制可以辨识流何时正经历某种程度的拥塞,并且作为响应,可以减慢或停止同一个流的新包进入结构。反过来,这些新包可以被缓存在边缘端口上的流通道队列中,并且它们只有当同一个流的包在目的地边缘端口处离开结构时才被允许进入结构中。这个过程可以将结构内对该流的总缓冲要求限制为将不会引起结构缓冲区变得太满的量。
就流通道而言,交换机具有关于结构内未完成的传输中(in-transit)数据的量的相当准确的状态信息。可以聚合入口边缘端口上的所有流的此状态信息。这意味着,通过入口边缘端口注入的数据总量可以是已知的。因此,流通道机制可以对结构中的数据总量设定限制。当所有边缘端口都应用此限制动作时,可以很好地控制整个结构中的包数据总量,这进而可以防止整个结构饱和。流通道还可以减慢结构内单独的拥塞流的进展,而不会减慢其他流。这个特征可以保持包远离拥塞热点,同时防止缓冲区变满并为不相关流量确保可用的缓冲区空间。
流通道的操作
一般而言,流通道可以为跨越交换机结构的每个通信会话定义路径。可以在与交换机结构的每个链路相关联的一组动态地连接的流表中描述属于每个流的数据的路径和量。在每个入口端口、边缘和结构上,可以定义一组流通道队列。每个流通道可以存在一个队列。当包到达时,它们可以要么被指派给边缘端口上的流通道,要么已由链路伙伴的出口结构端口在结构入口端口上指派给流通道。流通道信息可以用于将包引导到适当的流通道队列中。
图2A示出了促进流通道的示例性交换机。在此示例中,交换机可以包括纵横交换机202。纵横交换机202可以具有若干个输入端口(诸如,输入端口204)以及若干个输出端口(诸如,输出208)。纵横交换机202可以将包从输入端口转发到输出端口。每个输入端口可以与若干个输入队列相关联,每个输入队列被指派给到达该输入端口的不同传入流。例如,到达交换机的给定端口的数据可以首先基于它们的各个流进行分离,并且存储在特定于流的输入队列(诸如,输入队列206)中。存储在输入队列中的包可以基于被设计成控制拥塞的调度算法(在后面的章节中更详细地描述)而出列并发送到纵横交换机202。在输出侧上,一旦包通过纵横交换机202,它就可以临时存储在输出传输队列(诸如,输出传输队列210)中,该输出传输队列可以由在同一个输出端口上离开的所有流共享。同时,在包从输出传输队列中出列并在送出链路上传输之前,包的报头可以用送出链路的流ID进行更新。注意,当流中的第一包行进跨越网络时,可以完成这种逐跳(hop-by-hop)流ID映射。当包到达下一跳交换机时,包可以再次存储在特定于流的输入队列中并且可以重复相同的过程。注意,流ID用于区分在同一条结构链路上行进的流,并且通常可以由该链路的发射器端指派,该发射器端是正传输到此链路上的交换机的输出端口。
通过提供特定于流的输入队列,交换机可以允许每个流独立于所有其他流移动。交换机可以避免队列头阻塞问题,队列头阻塞问题在共享输入缓冲区的情况下是常见的。特定于流的输入队列还允许使单个流内的包保持有序。当流通过交换机时,可以为该流分配每个输入端口上的特定于流的输入队列,并且这些输入队列变得被链接,从而针对该流有效地形成到达跨越整个结构的一个长队列,并且可以使该流的包保持有序。
属于一个流的包的成功递送进展可以通过由出口交换机的边缘端口生成的一系列ACK来报告。这些ACK包可以沿相反方向沿着数据包所横过的数据路径行进,并且可以由交换机根据流表中所维持的转发信息进行转发。当ACK包向上游行进时,它们可以由每个交换机的输入队列管理器处理,该输入队列管理器可以基于由ACK包携载的信息来更新对应流的状态信息。ACK包可以具有类型字段以提供关于下游数据路径的先进信息,诸如拥塞。交换机的输入队列管理器可以使用该信息来做出关于当前被缓存在其输入队列中的未决数据包的决定,诸如限制传输速率或改变转发路径。另外,输入队列管理器可以基于缓冲流的状态信息来更新ACK包中携载的信息,使得上游交换机可以做出恰当的决定。例如,如果用于给定流的输入队列正经历拥塞(例如,队列中的数据量高于预定阈值),则输入队列管理器可以将被转发到下一个上游交换机的ACK包更新为包括该拥塞信息。
如果ACK对应于流的最后一个包,则交换机可以确定该流不再存在未确认的数据。相应地,交换机可以通过去除流表中的对应条目来释放流通道。
如上文提到的,每个交换机处的输入队列管理器可以维持关于给定流的已传输但未确认的数据的信息。图2B示出了沿着数据路径的交换机如何可以维持流状态信息的示例。在此示例中,流所采取的数据路径可以包括交换机222、224和226。已传输但未确认的流数据量可以由变量“flow_extent”来指示,该变量可以以定长数据单元的数量来衡量,诸如256字节。此外,flow_extent和其他流状态信息可以由交换机的输入队列管理器来维持,该输入队列管理器可以持续监视所有特定于流的队列。
在图2B中的示例中,交换机的输入队列管理器处的flow_extent值为1,因为存在一个已从输入队列发送出并通过纵横交换机转发的数据单元。注意,由于对要经由输出链路传输的所有数据包的调度所致,由输入队列发送的数据包可能临时被缓存在输出传输缓冲区中。当这种包被缓存在输出端口的传输缓冲区中时,出于更新flow_extent值的目的,输入队列仍然可以将包视为已传输的。
相应地,由于交换机226处用于给定流的输入队列具有六个排队的数据单元,并且两个附加的数据单元在交换机224和226之间是在传输中的,因此交换机224处的flow_extent值为9。类似地,交换机222处的flow_extent值为13,因为在交换机224处存在三个存储于输入队列中的数据单元并且一个数据单元在交换机222和224之间是在传输中的。
一般而言,流通道可以保持分配给单个流,直到对于在该流通道上发送的所有包的所有ACK都已返回为止。这意味着,流通道表条目可以在结构入口边缘端口附近比在出口边缘端口附近保持起作用历时更长时间。如果单个包注入到网络中,则可以为入口边缘端口分配一个流通道,且然后可以为该包所横过的下一条结构链路分配另一个流通道,等等,直到当该包到达最后一条结构链路时分配最后一个流通道为止。每次分配均可以生成流ID(表示为变量“flow_id”),以识别结构链路的流表的条目。(在下文结合图4A的描述中提供了关于流通道表的更多细节。)该第一包可在包所横过跨越交换机结构的每条结构链路上引起对不同flow_id的分配。
在每个交换机的输入队列处,流通道表条目可以指示每个流的从该点下游到流的出口目的地边缘端口的状态信息(包括flow_extent值)。在本地输入端口上接收到的包可以使该flow_extent值增加传入数据的量,且ACK可以使flow_extent减小已确认的递送数据的量。
当包到达最终目的地出口端口时,可以为该包生成并返回ACK包。在沿着数据路径的每个交换机处,可以使用存储在流通道表的对应条目中的数据路径信息来路由该ACK。可选地,ACK包本身不需要携载路径信息,且因此可以是小而重量轻的。如果流上没有发送其他数据包,则ACK可以以相反的顺序释放每个流通道。一旦释放,每个交换机处的流通道就可以分配给不同的流。
如果另一个包跟随同一个流上的第一包,则将需要在可以在给定交换机处释放流通道之前接收到对应于第二包的ACK。在一个实施例中,只有当同一个流的所有已传输的包的ACK都已返回时,才可以释放流通道。
通常,各种协议可能需要按顺序的包递送。流通道可以用于保证该递送顺序,即使当结构使用自适应路由来跨越多条数据路径进行负载平衡时也如此。如果入口边缘端口和出口边缘端口之间的包(可能在结构远侧上的不同交换机中)以非常低的速率注入,则每个注入的包可能到达其目的地并在注入下一个包之前将ACK返回到源。在这种情况下,每个包可以是引导包并且使用最佳可用的动态自适应路由选择来自由地采取跨越结构的任何路径。这是可能的,因为第一包可以定义流的穿过结构的路径。
现在假定包注入速率稍微增加到在当前包的ACK已返回到源之前注入同一个流的下一个包的点。第二包可以在沿着流的数据路径的某个地方传递第一包的ACK。超过(beyond)该传递点,ACK将释放分配给第一包的流通道,因为当流通道的逻辑处理ACK时,与第一包相关联的flow_extent值恢复为零。同时,第二包现在可以定义新的流,因为它再次引起在后续结构链路中的每一者上分配流通道。该第二包虽然引起超过传递点分配流通道,但它可以基于动态自适应路由被转发到不同的路径。另一方面,在传递点之前,第二包可以将由第一包创建的未完成流扩展为包括第二包。这意味着,第一包的ACK可不将flow_extent值减小到零,并且流通道可在传递点之前保持起作用。也就意味着,第二包可跟随第一包所采取的确切路径一直到传递点。注意,当它跟随前一个包时,第二包无法在第一包到达出口边缘端口之前到达出口边缘端口,且因此可以维持正确的包顺序。
如果该流的注入速率进一步增加,则第二包将在更靠近目的地边缘端口的位置处传递第一包的ACK。也有可能的是,在第一包的ACK返回到源边缘端口之前,第三包、第四包、第五包或附加包可进入结构中,具体取决于该流的数据包注入速率和数据包-ACK往返时延。最大包速率可以取决于包的大小和链路的带宽。数据包和ACK的往返延迟可以是结构实施方式的重要参数,且可以与最大包速率一起用于计算每个链路所需的最大流通道数量。理想情况下,无论流量模式如何,设计都可以提供合理数量的未分配的流通道。当到达入口边缘端口的大量包具有不同的目的地并且这些包具有小的大小和高注入速率时,对流通道数量的需求会是高的。在最极端的情况下,每个包可能分配有不同的流通道。当包的ACK返回时,这些流通道被释放。相应地,所需的流通道数量可以被计算为((包速率)*(平均的包-ACK往返延迟))。
注意,单个流通道上的包速率不要与链路上的包速率混淆。如果流量模式使得许多小的包被发送到不同的目的地,则发送到链路上的连续包可以具有不同的目的地。这意味着,每个包可能属于不同的流并且可能是使用对应的流通道的唯一包。在此示例中,链路会经历高包速率,但各个流的包速率会是低的。可选地,若干个ACK(例如,48个ACK)可以一起聚合到单个ACK帧中以通过链路进行传输并受帧检查序列(例如,32位FCS)的保护。例如,每个ACK可以占用25位,并且帧可以有9字节的开销。也就是说,全尺寸帧上每个ACK的开销约为9/(25/8*48)*100%=6%。逻辑可以优化每个帧的ACK数量,因此当这些ACK缓慢到达时,ACK不需要等待太长时间才能聚合。例如,ACK聚合逻辑块可以使用三个计时器以基于送出链路的活动来管理ACK传输。当新的ACK到达ACK聚合逻辑块时,可以开始这些计时器。如果送出链路空闲,则可以使用第一计时器(其例如可以设定为30ns)来保持ACK,同时等待附加的ACK到达。当此计时器到期时,在对应的时间窗口内接收到的所有ACK可以聚合到一个帧中并传输到送出链路上。如果送出链路繁忙,则可以使用第二计时器(其例如可以设定为60ns)来等待附加的ACK。使用此第二计时器可以允许更多的ACK聚合到单个帧中,并且只有在收集到预定数量的ACK时才可以传输这个帧。注意,由于以太网组帧约束所致,单个帧中的某些数量的ACK可以每个ACK使用的线带宽(wire bandwidth)小于其他数量的ACK。如果没有收集到有效数量的ACK并且送出链路仍然忙于发送正常的数据包,则可以使用第三计时器(其例如可以设定为90ns)。一旦此第三计时器到期,已收集到的所有ACK就可以聚合在一个帧中并传输到链路上。通过使用这三个计时器,系统可以显著减少在送出链路上发送ACK的开销。
在一些示例中,交换机的入口边缘端口可以用结构报头来封装接收到的数据包,这允许使用流通道转发包。图3A示出了用于数据包的示例结构报头。结构报头可以包括:flow_id字段,其可以识别流通道;以及“data_flow”字段,其可以指示整个流的进度。
当数据包被递送到它的目的地时,可以生成至少一个ACK。图3B示出了示例性ACK包格式。ACK包可以包括“flow_id”字段、“ack_flow”字段、“ACK类型”字段和循环冗余检查(CRC)字段。flow_id字段可以指示此ACK包所属的流。ack_flow字段可以指示此ACK包向其做出确认的数据包。回想一下,每个交换机可以维持flow_extent值,该flow_extent值指示已传输但未确认的数据量。flow_extent值可以被导出为flow_extent=data_flow-ack_flow,其中,data_flow值取自最后传输的数据包。
ACK类型字段可以指示不同类型的ACK。如上文提到的,在正常操作期间,当数据包被递送到目的地边缘端口时,可以生成常规的ACK包并将其发送回到源。相应地,ACK包中的ACK类型字段可以指示正常的ACK。当结构中发生拥塞时,ACK类型字段可以用于指示拥塞的各种类型和严重程度,诸如新拥塞、持续拥塞或在出口边缘端口处的严重拥塞(严重拥塞要求对流的重新路由)。另外,在特殊情况下(诸如,存在严重拥塞的结构链路、丢包或链路错误),也可以由非为最终目的地的中间交换机生成ACK,并且ACK类型字段可以用于通知上游交换机不同类型的网络状况。其他附加字段也可以包括在ACK包中。
图3C示出了用于导出和维持流的状态信息的不同变量之间的关系。在此示例中,交换机可以使用变量“total_extent”来跟踪未确认的已传输数据和当前在交换机处排队的数据的总量。total_extent值可以等于flow_extent(其为已传输而未确认的数据量)和queue_extent(其为存储在用于对应流的输入队列中的数据量)之和。变量“ack_flow”可以指示对应于针对该流的最新ACK的数据位置。变量“data_flow”可以指示要传输的下一个数据包的位置,该下一个数据包也对应于存储在输入队列的前头的数据包。变量“next_data_flow”可以指示交换机可以期望从上游交换机接收到的下一个数据包的位置。注意,queue_extent=next_data_flow-data_flow,并且flow_extent=data_flow-ack_flow。
在一些示例中,流通道表可以用于促进遍及结构的流通道。流通道表是将给定流的转发和状态信息存储在交换机的端口处的数据结构。图4A示出了如何可以使用流通道表来存储与多个流相关联的状态信息的示例。此状态信息可以特定于每个流并高效地存储在表中。假定源主机402正经由结构将数据包发送到目的地主机404。数据包所横过的数据路径可以包括入口边缘交换机406、中间交换机408和430、以及出口边缘交换机432。
当包到达交换机406的入口边缘链路403时,可以由地址转换逻辑块410分析包的报头。地址转换逻辑块410可以基于包的以太网、IP或HPC报头信息来确定出口交换机(在这种情况下为交换机432)的目的地结构地址。注意,地址转换逻辑块410也可以使用与其他协议或不同协议的组合相关联的报头信息。然后,由地址转换逻辑块410确定的结构目的地地址可以用于在边缘流通道表(EFCT)412中执行查找。EFCT 412可以使用包的结构目的地地址以及可选地从包的报头中提取的附加值来执行对包的查找操作,这可以被称为匹配模式。EFCT 412可以将包的匹配模式与所有现有已分配流的存储的匹配模式进行比较。如果找到匹配,则此包是现有流的一部分,并且可以为此包返回先前分配的流ID。如果没有找到匹配,则可以为此包分配新的流ID,并且可以将匹配模式添加到EFCT 412。换句话说,EFCT412可以用于确定对于传入包是否已经存在流通道,或者是否需要分配新的流通道。除了目的地结构地址之外,其他包报头信息(诸如,流量类别、TCP或UDP端口号以及进程或线程ID)也可以用于映射或分配流ID。
然后,由EFCT 412获得的流ID可以用作索引以映射到输入流通道表(IFCT)414中的条目。IFCT 414中的每个条目可以按流ID进行索引并存储对应流的状态信息。IFCT414中的条目可以存储与流相关联的next_data_flow、data_flow和ack_flow(见图3C)的值。另外,IFCT条目可以存储用于流的拥塞控制和动态路由的其他参数。
流ID还可以用于识别或分配特定于流的输入队列,在该输入队列中可以临时存储传入包。特定队列的状态信息以及用于监视和控制队列的参数(诸如,用于检测拥塞的阈值)可以存储在IFCT 414中的对应条目中。输入队列管理逻辑块可以基于存储在IFCT414的条目中的流控制参数来确定包何时可以从输入队列中出列并发送到数据纵横交换机413。
当包从输入队列中出列并通过纵横交换机413发送到输出端口时,利用它已在其上到达交换机406的输入端口号发送该包。当包到达输出端口的传输缓冲区时,可以基于包的流ID和输入端口号来更新包的报头,其中新的流ID将由用于同一个流的下一跳交换机(即,交换机408)使用。这是因为,每个链路沿每个方向都可以具有它自己的一组流通道,该组流通道通过它们各自的流ID进行识别。可以通过查找输出流通道表(OFCT)416来完成从传入流ID到下一个链路上使用的传出流ID的映射。OFCT 416可以使用匹配模式来执行查找,该匹配模式是对应于链路403的本地输入端口号和由EFCT 412产生的包的流ID的组合。如果找到匹配,则已经定义了流,并且包的流ID用对应于匹配模式的值进行更新(这个新的传出流ID将由下游的下一跳交换机408使用)。如果未找到匹配,则可以向新的流通道分配新的传出流ID,该传出流ID可以被映射到输入端口号和先前的传入流ID。包括传出流ID、输入端口号和传入流ID的条目可以存储在OFCT416中。
在包是流中的第一包的情况下,在OFCT 416中进行的查找将不会产生任何映射。反过来,OFCT 416可以为包分配要由输入端口和交换机408上的IFCT 418使用的带有流ID的流通道。该新的流通道(通过其流ID进行识别)可以被添加到包报头以用于传输到链路417上,并且可以由链路伙伴的(它是交换机408)IFCT 418用来访问流通道的拥塞信息。如前所述,如果没有找到匹配,则OFCT 424可以进一步使用其立即上游的输入端口号以及与链路417相关联的流ID的匹配模式来生成新的流通道。然后,OFCT 424可以分配通过新的流ID进行识别的新的流通道。注意,OFCT 416还可以用作沿上游方向该流的ACK的转发表。在从交换机408向上游被转发到交换机406之后,ACK包可以用与边缘链路403相关联的流ID进行更新并被转发到交换机406上的适当输入端口,如由OFCT 416中的对应条目所指示的。ACK包可以沿上游方向由ACK纵横交换机415转发到输入端口。
随后,当包到达交换机408时,其流ID可以用于识别要使用的输入队列并确定IFCT418中的条目。如果交换机408先前还没有分配包的流ID,则可以提供新的输入队列并且可以创建IFCT 418中的新的条目。从此以后,可以执行类似的过程以跨越交换机408和430转发包,直到包到达出口交换机432为止。
当包到达交换机432时,在包由数据纵横交换机423转发之后,ACK生成器逻辑块420可以基于包的流ID和输入端口号生成ACK包。然后,此ACK包可以沿上游方向由ACK纵横交换机422转发。同时,基于ACK包,IFCT 421可以更新对应表条目中的流的状态信息。当ACK包到达交换机430时,可以查找OFCT 419以确定ACK包要被转发到的上游流ID和上游输入端口。然后,ACK包可以更新其流ID并沿上游方向被转发到适当的输入端口。由于ACK包以类似的方式向上游横过数据路径,因此每个交换机处的IFCT可以基于ACK来更新其针对流的表条目。
注意,flow_extent变量可以是重要参数,因为它表示流的下游包数据总量。当条目的flow_extent为零时,认为流通道被自由地重新分配给另一个流。一般而言,在接收到新包时,输入逻辑可以请求将数据发送到输出端口。选定的输出端口可以是随存储在IFCT中的flow_extent而定的。如果flow_extent为零,则在流中下游没有包到目的地出口边缘端口。结果,交换机可以使用基于负载的自适应路线选择来选择通向目的地的任何有效路径。在多路径网络中,可以在不对包进行重新排序的情况下完成动态自适应路由。如果flow_extent不为零,并且如果需要按顺序递送,则包可以使用先前的包所采取的相同路线。IFCT可以具有存储先前的输出端口号的字段,该先前的输出端口号在对输出端口做出包请求时被加载并且可以用于确保与先前使用的输出端口的连接。
如前文所提到的,流通道可以使用匹配功能来辨识属于现有流的包。当在入口边缘端口上接收到帧或包时,可以实时解析接收到的以太网帧或其他类型的包,并且包报头的一些字段可以用于在CAM或三态内容可寻址存储器(TCAM)中进行查找。如果存在匹配,则匹配地址可以成为用于选择流通道的流ID。当没有发生匹配时,交换机硬件可以将匹配失败的模式直接加载到CAM的自由行上,这可以在没有附加延迟的情况下完成。结果,在没有大量的缓冲的情况下,任何后面的包都可以与此新的条目匹配。选择的自由条目成为新的流通道条目的新的流ID。注意,加载新的条目不需要外部软件干预。该过程可以由交换机硬件自主完成。
当为流返回最后一个ACK时,也可以由硬件自动执行流ID和对应的CAM匹配行的解除分配。在没有外部软件干预的情况下,可以在硬件中关于潜在匹配的新包发生解除分配。
在一些示例中,入口边缘交换机406可以包括细粒度流控制逻辑块434,该细粒度流控制逻辑块可以与主机402上的网络接口控制器(NIC)401通信以在每个流的基础上应用流控制。下文结合关于拥塞管理的描述来提供关于细粒度流控制的更多细节。
图4B示出了EFCT的示例。在此示例中,EFCT可以包括data_flow字段454、ACK_flow字段456、以及可选地附加字段。EFCT可以与输入端口相关联,并且EFCT中的条目可以按flow_ID值(诸如,flow_ID 452)进行索引。在一个实施例中,匹配模式字段可以驻留在匹配功能逻辑块中,该匹配功能逻辑块可以包括CAM或TCAM。匹配功能逻辑块可以使用匹配模式来生成flow_ID值,该flow_ID值进而可以用作对应的EFCT条目的索引。从该EFCT的角度来看,flow_extent(即,data_flow-ack_flow)可以包括该表下游的所有未确认的数据,其可以包括本地flow_queue加上对应的IFCT的flow_extent值。
图4C示出了IFCT的示例。在此示例中,IFCT可以与输入端口相关联,并且可以包括follow_port字段466、next_data_flow字段468、data_flow字段470、ACK_flow字段472、ep_congestion字段474、上游计量(UM)标志字段477、下游计量(DM)标志字段478、以及可选地附加字段。传入包的flow_ID值(诸如,flow_ID 464)可以用作查找输出端口号(其由follow_port字段466指示)以及与对应流相关联的状态信息的索引。与端点拥塞(诸如,ep_congestion字段474)相关联的拥塞控制信息和逐跳基于信用的流控制(诸如,UM标志字段477和DM标志字段478)(后者稍后在本文件中进行更详细的描述)也可以存储在IFCT中。IFCT可以进一步存储与跟不同流关联的动态路由有关的信息。
图4D示出了OFCT的示例。在此示例中,OFCT可以与输出端口相关联,并且可以包括input_port字段482、input_port_flow_ID字段484(其对应于包在其到达输入端口时的现有flow_ID)、data_flow字段486、ACK_flow字段488、以及可选地附加字段。data_flow字段486和ACK_flow字段488可以用于从该OFCT向前确定flow_extent的值。input_port字段482和input_port_flow_ID字段484(其也可以称为“传入流ID”)的组合可以用于确定或分配准备好传输到对应于该OFCT的送出链路上的包的传出流ID。在一个实施例中,传出流ID值(诸如,flow_ID 486)可以用作查找OFCT中的条目的索引。
多路径网络中的流通道
如先前所描述的,流通道可以为每个通信定义跨越网络的路径。流中的第一包可以定义路径,并且如果流保持有效,则后续包可以被迫遵循与第一包采取的路径相同的路径(由流通道定义)。高性能结构可以从特定源到另一个目的地具有很多条路线。多路径网络允许更大的总对分网络带宽。在大多数情况下,HPC系统包括多路径网络。用于衡量多路径网络的性能的常用指标是全局带宽(在全对全通信模式时递送的总带宽)。在大多数网络中,系统中的每个节点通过一组链路发送包,该组链路用于将数据从一个源传输到目的地。一些方法使用生成自包报头中找到的值的散列值。虽然这改善了性能,但它也会遭受系统性不良行为的问题,从而导致不可预测的性能。使用本地负载信息来做出动态自适应路由决定可以是对上述基于散列的技术的改善。然而,使用负载信息可以允许对单个流的包进行重新排序。例如,当包作为路由决定的结果而沿新方向发送并反超沿旧方向发送的包时,可能发生重新排序。
这种类型的无序递送(或重新排序)对于一些网络协议来说会是严重的问题。值得注意的是,大多数以太网网络应按顺序递送包。对于HPC环境,排序要求可以取决于编程模型而变化。在又一示例中,MPI需要对消息进行点对点排序,但不需要按顺序递送批量数据。PGAS远程存储器访问模型还需要对同一地址的访问进行点对点排序,但可以允许对作用于不同地址的操作进行重新排序。不同的传送层应能够指定它们的最低排序要求,并且交换机结构应能够满足这些要求。
在每个路由阶段允许针对每个包作出真正的动态自适应路由决定可能导致对从源到目的地的同一个流内的包重新排序。因此,使用包级动态路由方法会引起流的包分散遍及多路径结构。结果,可能失去对作为包流的流的任何控制。不过,包级动态路由对于一些网络流量模式可以是很好的模型,诸如以每秒十亿次更新(GUPS)基准测试为例的统一资源定位器(URL)流量。例如,GUPS通常生成许多小的包,其中每个包被发送到随机目的地。因此,在使用GUPS的大型网络中,从特定源到特定目的地的各个流很少有机会形成有这种流量,并且可能永远不会出现持续性流的不利影响。在GUPS的情况下,小的包到随机目的地的动态自适应路由可跨越结构产生非常平衡的负载。然而,如本文中所公开的,基于流通道的自适应路由会导致在联网环境的每个上述示例中的最佳路由。
流通道的利用实现了基于网络的本地负载针对新的流的第一包做出的真正的动态自适应路由决定。返回参考其中生成小消息的MPI和PGAS环境,这些消息对于实施流通道的结构呈现为新的流。这些流通道可以允许完全自适应路由,从而导致可以跨越结构生成的非常类似地平衡的负载(UR流量是一种极端情况)。
关于需要点对点排序(或其中期望点对点排序)的网络环境,使用流通道可以确保流中的后续包被迫跟随第一包,从而防止包重新排序。此外,流通道给予了处理由链路错误引起的丢包的机会。发送到链路上的每个包可以在流通道状态下进行重新排序。输入逻辑可以通过观察流中的“空洞”来检测流的缺包。可以将缺包(或空洞的位置)发回信号给流的源。
另外,对于不需要点对点排序的网络环境,仍然可以使用流通道来提供显著的优点。例如,如果已定义了无序流量类别,则可以允许流中的每个包自适应地路由。因此,代替跨越多路径结构定义单个路径的是,将形成全部都汇聚到同一个目的地的路径树。在每个下游结构链路上的每个流都将使一个包通过它,并且如果再次使用同一个输出端口,则将使更多的包通过它。所有下游流通道都将指回同一个上游流通道。单独的ack将折回由在出口边缘端口处创建该ack的包采取的路径。当这些包到达目的地时,它们可能是乱序的。然而,通过使用流通道,可以实现以下优点:
·入口流表仍然可以准确地测量出流的注入的包数据总量。这意味着,用于限制网络中的包数据总量的节点注入极限仍然可以起作用。该极限保留了结构输入缓冲区空间,即使在锥形结构上也是如此,并且这样做防止了拥塞发展。
·ack仍然可以将目的地正发生拥塞(要么是因为节点已饱和,和/或要么是正形成incast)发回信号给源边缘端口。然后,这些ack可以以两种方式控制拥塞;首先限制该流可以注入到结构中的总量和最大带宽,且其次强迫流变得有序。一旦为有序的,可能已开始的流通道树就将合并回(collapse back)成单个源-目的地流。
无序流量可以为合意的流量模式(尤其是为HPC)提供出色的性能。然而,无序流量也会加重拥塞流量模式。无序流量也会消耗可用的结构带宽,达到可共享同一结构并具有其他流量模式(具有长得多的流)的其他应用程序可能被阻止取得任何重大进展的程度。相比之下,具有注入极限的流通道管理每个应用程序的结构利用率,使得每个应用程序保持其访问是公平的。如本文中所公开的,使用流通道的自适应路由允许包的动态自适应路由和按顺序递送两者(例如,防止重新排序)。
在多路径网络中使用流通道的自适应路由
如先前所描述的,流通道可以为每个通信定义跨越网络的路径。流中的第一包可以定义路径,并且如果流保持有效,则后续包会被迫遵循与第一包采取的路径相同的路径(由流通道定义)。高性能结构可以从特定源到另一个目的地具有很多条路线。多路径网络允许更大的总对分网络带宽。在大多数情况下,HPC系统包括多路径网络。用于衡量多路径网络的性能的常用指标是全局带宽(在全对全通信模式时递送的总带宽)。在大多数网络中,系统中的每个节点通过一组链路发送包,该组链路用于将数据从一个源传输到目的地。一些方法使用生成自包报头中找到的值的散列值。虽然这改善了性能,但它也会遭受系统性不良行为的问题,从而导致不可预测的性能。使用本地负载信息来做出动态自适应路由决定可以是对上述基于散列的技术的改善。然而,使用负载信息可以允许对单个流的包进行重新排序。例如,当包作为路由决定的结果而沿新方向发送并反超沿旧方向发送的包时,可能发生重新排序。
这种类型的无序递送(或重新排序)对于一些网络协议来说会是严重的问题。值得注意的是,大多数以太网网络应按顺序递送包。对于HPC环境,排序要求可以取决于编程模型而变化。在又一示例中,MPI需要对消息进行点对点排序,但不需要按顺序递送批量数据。PGAS远程存储器访问模型还需要对同一地址的访问进行点对点排序,但可以允许对作用于不同地址的操作进行重新排序。不同的传送层应能够指定它们的最低排序要求,并且交换机结构应能够满足这些要求。
在每个路由阶段允许针对每个包作出真正的动态自适应路由决定可能导致对从源到目的地的同一个流内的包重新排序。因此,使用包级动态路由方法会引起流的包分散遍及多路径结构。结果,可能失去对作为包流的流的任何控制。不过,包级动态路由对于一些网络流量模式可以是很好的模型,诸如以每秒十亿次更新(GUPS)基准测试为例的统一资源定位器(URL)流量。例如,GUPS通常生成许多小的包,其中每个包被发送到随机目的地。因此,在使用GUPS的大型网络中,从特定源到特定目的地的各个流很少有机会形成有这种流量,并且可能永远不会出现持续性流的不利影响。在GUPS的情况下,小的包到随机目的地的动态自适应路由可跨越结构产生非常平衡的负载。然而,如本文中所公开的,基于流通道的自适应路由会导致在联网环境的每个上述示例中的最佳路由。
流通道的利用实现了基于网络的本地负载针对新的流的第一包做出的真正的动态自适应路由决定。返回参考其中生成小消息的MPI和PGAS环境,这些消息对于实施流通道的结构呈现为新的流。这些流通道可以允许完全自适应路由,从而导致可以跨越结构生成的非常类似地平衡的负载(UR流量是一种极端情况)。
关于需要点对点排序(或其中期望点对点排序)的网络环境,使用流通道可以确保流中的后续包被迫跟随第一包,从而防止包重新排序。此外,流通道给予了处理由链路错误引起的丢包的机会。发送到链路上的每个包可以在流通道状态下进行重新排序。输入逻辑可以通过观察流中的“空洞”来检测流的缺包。可以将缺包(或空洞的位置)发回信号给流的源。
另外,对于不需要点对点排序的网络环境,仍然可以使用流通道来提供显著的优点。例如,如果已定义了无序流量类别,则可以允许流中的每个包自适应地路由。因此,代替跨越多路径结构定义单个路径的是,将形成全部都汇聚到同一个目的地的路径树。在每个下游结构链路上,每个流都将使一个包通过它,并且如果再次使用同一个输出端口,则将使更多的包通过它。所有下游流通道都将指回同一个上游流通道。单独的ack将折回由在出口边缘端口处创建该ack的包采取的路径。当这些包到达目的地时,它们可能是乱序的。然而,通过使用流通道,可以实现以下优点:
·入口流表仍然可以准确地测量出流的注入的包数据总量。这意味着,用于限制网络中的包数据总量的节点注入极限仍然可以起作用。该极限保留了结构输入缓冲区空间,即使在锥形结构上也是如此,并且这样做防止了拥塞发展。
·ack仍然可以将目的地正发生拥塞(要么是因为节点已饱和,和/或要么是正形成incast)发回信号给源边缘端口。然后,这些ack可以以两种方式控制拥塞;首先限制该流可以注入到结构中的总量以及还有最大带宽,且其次强迫流变得有序。一旦为有序的,可能已开始的流通道树就将合并回(collapse back)成单个源-目的地流。
无序流量可以为合意的流量模式(尤其是为HPC)提供出色的性能。然而,无序流量也会加重拥塞流量模式。无序流量也会消耗可用的结构带宽,达到可共享同一结构并具有其他流量模式(具有长得多的流)的其他应用程序可能被阻止取得任何重大进展的程度。相比之下,具有注入极限的流通道管理每个应用程序的结构利用率,使得每个应用程序保持其访问是公平的。如本文中所公开的,使用流通道的自适应路由允许包的动态自适应路由和按顺序递送两者(例如,防止重新排序)。
在拥塞网络中使用流通道的自适应路由图5图示了在多路径网络500中的拥塞流510、520的示例,该多路径网络包括多个交换机501-506和多个路径531-537。通过根据所公开的实施例实施动态自适应路由,可以识别这些拥塞流(例如,拥塞源或拥塞受害者),且然后相应地对其进行路由。另外,跨越多路径网络500的负载可以经由所公开的动态自适应路由技术来分布。在图5的所图示的示例中,示出了两个流510和520。流510可以具有与流520的目的地不同的目的地(目的地未示出)。然而,流510、520两者都共享拥塞链路535。流510、520可为持续流。如本文中所提及的,持续流可以被描述为持续很长时间而不中断的流。作为持续流510、520可以具有使链路531-537在全带宽下饱和的潜力。这些流中的一个(例如,流510)中的引导包可以建立跨越网络500的路径。随后,该流(诸如,流510)中的后续包可以在由第一包建立的这条路径上继续下去,这可以维持该流中包的顺序。新的流可调适成绕过(around)该已建立的流,但如果所有新的流也是持续和拥塞流,则流量模式可能变为静态并且相当地不太理想(如果并未自适应地路由)。因此,所公开的自适应路由技术可以在存在持续流(诸如,流510、520)的情况下利用流通道来解决拥塞的负面影响。作为一般描述,拥塞可以由系统内的瓶颈引起。瓶颈可以包括但不限于:
·最终链路—如果许多源正试图将一个发送到单个目的地,如在incast的情况下。
·NIC—如果NIC不急切地消耗包。
·带宽的变化—如果带宽从高带宽链路改变到较低带宽链路。
·单个链路—网络本体中的单个链路已有太多的流引导通过它。
在图5中,示例图示了可以是瓶颈的单个链路535。如图所示,链路535正经历拥塞。例如,交换机505可以具有使链路535发生拥塞的结构出口端口(具有深出口端口报头FIFO)。可以解决瓶颈的方式可取决于检测到瓶颈的方式和位置。如果流要被重新路由,则自适应路由技术考虑因重新路由产生的变化是否将减少拥塞的合理置信度。例如,自适应路由技术可确定流510是拥塞源。与仅仅是受害者相比,作为拥塞源可以指示存在高的置信度,因为它与重新路由该流有关。因此,如果流510被识别为拥塞源,则自适应路由技术可以决定限制对流510的路由,或在其他方面以防止该流在网络500中进一步扩散拥塞的方式约束针对流510做出的路由决定。相反地,自适应路由技术可确定流520是拥塞受害者(与源相反)。作为受害流,在重新路由该特定流方面可存在小的置信度。重申一下,重新路由受害流(诸如,流520)将不显著防止在网络500上出现更多拥塞。因此,在受害流将基本上不影响网络上的拥塞这一假定下,自适应路由技术允许流520继续做出它自己的自适应路由决定。
在实践中,自适应地路由作为拥塞原因的持续流(诸如,流510)可以通过引导流510绕过(around)现有瓶颈来重新路由该流。该重新路由决定可以基于以下概念:有效地重定向流确保了新路径在到达最终边缘端口之前不返回到同一个瓶颈。从自适应路由中选择的针对流的新路线可以在每个链路上沿着其整个路径具有备用容量,以提供通过初始路线进行的传输方面的改善。流通道可以给予整个流从源到目的地的可见性。沿着流的路径,可存在最小带宽点。超过(beyond)该低带宽点,可以非常快速地从输入队列接受包。因此,输入队列通常可以是空的(或几乎是空的)。相比之下,在低带宽点之前,在持续流的情况下,包将最可能积聚在输出端口的FIFO中。在入口边缘交换机上,在具有拥塞队列的交换机之前,流控制机制将限制递送速率以对结构内节点和流数据的总量设限(cap)。返回参考图5,网络500中的低带宽点被认为是在拥塞链路535处。如所见,在链路535下游的交换机506处,其输入队列被示为不拥塞的或空的(例如,由很少的垂直线指示)。在交换机505处,在链路535上的低带宽点之前,其输出(或出口)端口被图示为由于包的积聚(由多个箭头指示)所致而发生拥塞。在链路535处的低带宽点的更远上游,具体地在入口边缘交换机501和502处,流控制可以实施注入极限以通过将包保持在它们各自的输入队列(由许多条垂直线指示)处来防止太多的数据进入结构。
在拥塞网络中使用流通道的自适应重新路由
进一步地,本文中所公开的自适应路由技术可以实施流重新路由以便将流重定向远离发生拥塞的结构链路。结构的性能可以取决于这些链路上跨越整个结构被平衡的负载。通过自适应路由操纵后续包远离重负载链路,可以实现平衡。自适应路由还可以依赖于作为每个边缘入口端口IFTC的一部分的注入极限,以便防止太多的数据进入结构,如图5中所图示的。
注入极限可以在锥形结构上尤为重要,其中已减少了昂贵的光学全局链路的数量以有利于成本考虑因素。这些逐渐变细的全局链路可以提供中间结构带宽瓶颈,并且是拥塞逐渐形成的自然场所。注入极限对总结构数据设限(cap)。如果不存在到全局链路上的过载的单个出口结构端口,并且每个全局链路均具有显著负载,则结构可被认为是平衡良好的。平衡良好的另一个特性可以包括不促成数据递送的少数的昂贵链路。相反地,不平衡结构可能以过载的全局结构出口端口的输出FIFO的深度变得太深为特征。根据暗示,并且假定存在起作用的注入极限,其他全局结构出口端口将未得到充分利用。这意味着,尝试移动(或重定向)当前正使用过载链路的一些流将很可能导致它们被引导朝向未得到充分利用的全局链路并且应提供对结构的显著的重新平衡。
出口端口输出FIFO的深度可以很好地衡量端口负载。如果可以将深度本身和深度变化率(深度的一阶导数)组合以提供对端口上的拥塞的度量(或值)。然后,可以使用拥塞值的大小来决定是否应尝试重定向流。例如,过载的端口可能有太多的流使用它。一般而言,为了得到适当的平衡,应从该端口重定向少数流。移动太多的流可能导致端口负载不足,这也与某些缺点相关联。
根据实施例,可以通过返回“重定向ack”来重定向(或移动)流。将由流的任何包在它通过时生成的正常ack断开链接,重定向ack属于该流并且可以由流的任何包在它通过时生成。和所有其他ack一样,它遵循流的向上游朝向边缘入口端口的路径。
在实施例中,当帧被加载到全局结构出口端口的报头输出FIFO中时,可以通过观察该FIFO中的拥塞程度来生成重定向ack。此时,可以测量拥塞的大小,并且可以将其与本地创建的随机数进行比较。如果拥塞值大于随机数,则为该流返回重定向ack。使用随机数给予了生成重定向ack的概率,这个概率与拥塞的大小成比例。换句话说,在更加名义(morenominal)的拥塞状况期间只有一些流才将被重定向,但如果拥塞变得严重,则更多的流将被重定向。这确保了没有不必要地移动太多的流,不必要地移动太多的流会导致问题(例如,端口负载不足)。
当启用的IFCT接收到重定向后的ack时,该流在此IFCT中的状态从RUNNING改变为BLOCK_FOR_REDIRECT。这种状态防止了任何新包从该流的流队列中出列,直到flow_extent变为零为止。当下游流的所有包的所有ack都已返回时,flow_extent将变为零。此时,状态可以变回到RUNNING,因为从排序的角度来看,采用新路径将是安全的,因为采用新路径的下一个包无法反超前一个包。在状态变回到RUNNING之后要释放的第一包可以使用最佳自适应负载信息来选择通过结构的拥塞最小的路径。
使用流通道的即时路由
如上文所暗示的,流通道使用Ack来发信号通知沿着流的包的进展。附加地,流通道提供了朝向流的源传递回其他信息的机会。特别地,流通道可以利用Ack来实现一种类型的“即时”路由,这可以防止朝向断开或故障链路重复地发送包。
多路径网络通过提供去往特定目的地的许多不同路径来实现大得多的对分带宽。在较早的路由决定时可以使用的自适应路由技术可以选择负载更轻的路径供包采用。然而,较晚的更接近目的地的路由选择往往受限制,并且常常被迫选择单个链路。“向上”使用自适应路由到达根交换机;然后“向下”采用直接最小路径到达目的地。在一些网络中,存在多个最小路径,但其他路径可能只有一个。如果该链路断开或生成高错误率,则通常不存在包可以采用来避开坏链路的替代性路径。更糟糕的是,结束使用这些断开路径的流将往往进入更高级别的恢复程序,以校正由坏链路生成的错误。这减小了这些流的带宽,并且这进而使跨越网络的这些路径对自适应路由机制更具吸引力。甚至更多的流可被引导朝向坏链路。
根据实施例,流通道可以将使用这种坏链路的Ack转换为ErrorAck。这种Ack类型可以用于调节较早的交换机的自适应路由表。这种“即时”路由技术可以用于限制使用给定链路的一组结构目的地。通过在尝试使用断开链路的新的流在较早的交换机中执行自适应路线选择时使用“即时路由”,去除了可能将流路径引导朝向断开链路的链路。中断的流本身也可能被重新路由到替代性路径上。将通常不会使用断开链路的其他结构目的地实际上不受影响,并且可能继续使用包括将包带到断开链路的链路在内的所有自适应选择。返回参考图5,在示例中,流可以遇到链路534(在交换机504和505之间),并且确定该链路是断开的。通常,链路故障是双向的。重申一下,如果链路不支持沿两个方向的流量流,则它是有故障的。如本文中所提及的,交换机结构内的链路可以包括:
·边缘链路—连接到节点或其他网络的那些链路
·本地链路—使一组内的交换机互连的那些链路
·全局链路—使各组互连的那些链路
结果,可以向上游传输ErrorAck。因此,进入结构(例如,在边缘入口交换机502处)的原本被引导朝向故障链路534的新的流可以以避开该故障链路的方式使其路径得到“即时”更新。
现在参考图6,描绘了用于在存在错误的情况下“即时”路由的过程600的示例。过程600可以由网络交换机(如图1中所示)来实施。因此,该过程被图示为存储在机器可读存储介质604中并由计算部件601中的硬件处理器602执行的一系列可执行操作。硬件处理器602执行过程600,由此实施本文中所公开的技术。
一般来说,网络在存在极端错误(诸如,交换机之间的链路故障)的情况下表现不佳。过程600中的所公开的“即时”路由技术利用对沿着传输路径的这些类型的错误的认识,以便动态地管理对上游的流的路由。而且,过程600采用经由确认来传达错误。如通篇中所描述的,所公开的“即时”路由技术采用流通道来管理流。流通道可以提供对从源到目的地的帧流的极细粒度的控制。此外,IFCT可以启用来自流的早期帧的反馈,该反馈通过ack来递送。
该过程可以在操作606处通过建立对应于多个数据传输的多个流通道而进行。例如,在具有交换机结构(在图1中示出)或多个交换机的网络中,可横过网络本体内的结构端口将数据从源端口传输到目的地端口。操作606涉及建立对应于这些数据传输的多个流通道。通篇中例如参考图2A和图2B来详细描述流通道。根据实施例,交换机可以实施建立流通道和维持流通道。作为示例,可在操作606处建立用于在所述多个数据传输(从源端口到目的地端口)内传达的流的流通道。流通道可使用一组动态地连接的流表和流通道队列(在入口端口处)来维持属于该流(以及所述多个数据传输中的每个流)的路径和数据量。由于每个流及其路径对应于流通道,因此所建立的每个流通道均与源端口和目的地端口对挂钩。
该过程可以进行到操作608,其中经由交换机结构将所述多个传输路由通过网络。根据实施例,结构中的交换机被配置成在逐个流的基础上执行对流量的自适应路由。因此,操作608可以涉及使用自适应路由来路由所述多个数据传输。如上文所描述的,操作608中的自适应路由可以维持流中包的顺序(通过在逐个流的基础上进行路由),这在需要点对点排序的联网环境中是特别期望的。参考图5来详细描述多路径网络中的自适应路由和按顺序的包递送的细节。此外,操作608中的自适应路由可以包括:使用拥塞信息(或关于网络负载的实时信息)来以避开拥塞热点的方式重新路由流。先前描述了关于自适应路由的重新路由方面的细节。在操作608中,可以根据所公开的自适应路由技术在每个流的路径上的每个端口处动态地做出针对该流的路由决定。
随后,在操作610处,执行检查以确定在沿着传输路径的起作用的链路上是否遇到严重的错误。遇到的错误可涉及硬件故障,该硬件故障引起链路发生故障或链路正经历如此大数量的错误和/或拥塞以至于该链路实际上已发生故障(例如,包的双向传输未得到恰当地支持、高的丢包率)。作为示例,当流横过交换机结构时,传输路径上的交换机可认识到它已失去与结构中的另一个对等交换机的连接性。在一些情况下,交换机具有提供出现在故障链路上的错误率和错误类型的度量。
响应于遇到故障链路,该过程可进行到操作612。在操作612处,可以为积极参与故障链路上的传输的任何流生成错误确认(ErrorAck)。因此,错误确认用作流在沿着其在传输路径上的路线的点处遇到错误或故障链路的指示。在一些情况下,生成错误确认涉及以错误确认代替根据流通道操作来发送确认。可以经由流通道操作沿着与在故障链路的路径上具有起作用的传输的流相同的路线来向上游传输这些错误确认。
随后,在操作614处,可以从故障链路向上游传输这些错误确认。例如,可以将错误确认从经历了连接性丢失的交换机传输到在结构内上游的所有入口端口(例如,与其他交换机相关联),直到到达入口边缘交换机为止。作为接收到此错误确认的结果,上游的入口端口(和交换机)意识到已在下游的故障链路处遇到错误。作为响应,作为“即时”路由的功能,每个入口端口可以动态地更新当前包括该故障链路的任何流的路径以在下游避开此点。在一些情况下,更新流的路径涉及更新端口处的路由表。例如,可以更新路由表以实现避开。也就是说,当前包括故障链路的任何路线都可以以防止横过故障链路的方式被重新路由。替代地,可以更新路由表,使得任何替代性路线(不包括故障链路)都是优选的。在另一个示例中,更新路由表可以包括路由限制,诸如消除包括作为路由选项的故障链路的任何路线,或者将故障链路去除为最低限度地有资格用于路由(例如,自适应路由)。因此,“即时”路由有效地对潜在地受到特定路径上遇到的错误的直接影响的流进行重新路由,从而绕过网络中的故障链路来工作。这种“即时”路由以在具有故障链路的路径上的途中的流为目标,而不受该故障链路直接影响的其他流量则继续流动。
在另一个实施例中,动态地更新流的路径以避开故障链路可以涉及利用自适应路由的拥塞避开方面。作为示例,故障链路可被指示为检测到的拥塞链路,其然后引起自适应路由将包括故障链路(例如,被看作包括拥塞)在内的任何路线视为不太优选的路线。因此,不包括故障链路的其他路线将被自适应路由技术优选,以努力避开拥塞或使拥塞减到最少。
所公开的交换机的能力(除了流通道之外)是拥塞检测。拥塞检测可以包括测量指示拥塞的ack包的拥塞程度和利用率。例如,可以通过缓冲区利用率来观察交换机内的本地拥塞。缓冲区利用率可以是该本地端口的链路利用率的指示。可以观察全局拥塞,其检测流量在其去往目的地的路径上遇到的“热点”。通常,这种拥塞可以被描述为端点拥塞(例如,多对一通信),抑或被描述为多个流量流被引导通过网络的特定部分并使网络的该特定区域内的资源过载的结果。关于流通道,当包到达严重拥塞的边缘出口端口时,可以生成确认ack(NewCongestionAck)。该ack可以向所有上游IFCT发信号通知流正经历拥塞特性,在这种情况下,作为目的地拥塞(可能由incast通信引起)的结果。在一些实施例中,可以利用流通道以基于接收到指示拥塞的ack来调节流量。作为示例,当NewCongestionAck通过IFCT时,最大flow_extent、最大结构链路流队列深度(称为queue_extent)和最大流带宽将全部都减小。
返回参考操作614,除了在传输期间在途的流之外,动态地更新流的路径以避开故障链路还进一步改变了任何新的流的路线。例如,在上游入口端口处,在该端口处的任何新的流都可以更新其路由表,使得其路线被引导远离(或绕过)下游的已知故障链路。在一些情况下,更新新的流的路由表旨在通过选择性地去除包括故障链路的现有路线替代方案来进行重新路由,而不是添加新的路线(这些新的路线可潜在地违反路由要求)。
返回参考先前的操作610,在传输路径上可能并未遇到错误。结果,过程600继续到操作616。在操作616处,由于没有流处于沿着其当前传输路径遇到故障链路的危险之中,因此根据所公开的自适应路由技术,允许这些流名义上继续路由通过结构。
通过在自适应路由中利用流通道,网络交换机中的每个流都可以具有它自己的专用的包队列。这分离了对每个流的流控制,从而进一步允许对每个流进行单独的流控制。这种完全单独的流控制使得网络能够为无损的。例如,使用链路的一个流会在其去往它的最终目的地的路径上受到阻塞,而不阻塞使用与第一受阻塞流相同的链路的任何其他流。与传统的包交换网络不同,网络的一个部分中的拥塞将只会影响将包发送到拥塞瓶颈中的流。典型的无损网络会引起拥塞瓶颈之前的缓冲区被拥塞包迅速填满。这进而迫使交换机断言暂停或使用某种其他流控制方法来防止先前的交换机将包发送到具有填充缓冲区的链路上。拥塞包被停止,并且所有其他可能不前往拥塞瓶颈的包也被停止,从而迫使拥塞横向扩散并增加饱和树的大小。
通过实施流通道,由拥塞流呈现在拥塞瓶颈之前的链路上的负载减少,从而允许共享较早链路的其他流使用更多链路带宽并且更快地完成它们的通信。只有属于被识别为拥塞瓶颈源的流的包才被减慢。其他不受拥塞影响的流并未被减慢。这些流将利用先前由拥塞流采取的已释放的负载。最终,拥塞将被清除,并且前往拥塞热点的流将完成它们的通信而不丢失任何包。图7图示了可用于创建交换机结构(例如,图1的交换机结构100)的示例交换机702(其可为交换机102、104、106、108和110中的任何一个或多个的实施例)。在此示例中,交换机702可以包括若干个通信端口,诸如端口720。每个端口可以包括发射器和接收器。交换机702还可以包括处理器704、存储装置706和流通道交换逻辑块708。流通道交换逻辑块708可以联接到所有通信端口,并且可以进一步包括纵横交换机710、EFCT逻辑块812、IFCT逻辑块714和OFCT逻辑块716。
纵横交换机710可以包括一个或多个纵横交换机芯片,所述纵横交换机芯片可以被配置成在通信端口当中转发数据包和控制包(诸如,ACK包)。EFCT逻辑块812可以处理从边缘链路接收到的包并且基于包中的一个或多个报头字段将接收到的包映射到相应的流。另外,EFCT逻辑块712可以组装FGFC以太网帧,这些帧可以被传达到终端主机以控制由各个进程或线程注入的数据量。IFCT逻辑块714可以包括IFCT,并且响应于控制包(诸如,端点拥塞通知ACK和结构链路基于信用的流控制ACK)来执行各种流控制方法。OFCT逻辑块716可以包括存储器单元,该存储器单元存储OFCT并与另一个交换机的IFCT逻辑块通信以在包被转发到下一跳交换机时更新包的流ID。
在一个实施例中,交换机702是可以提供64个网络端口的专用集成电路(ASIC),这些网络端口可以以100Gbps抑或200Gbps操作以实现12.8Tbps的总聚合吞吐量。每个网络边缘端口可能够支持IEEE 802.3以太网和基于优化IP的协议以及门户(一种提供对更高速率的小消息的支持的增强型帧格式)。以太网帧可以基于其L2地址进行桥接,或者它们可以基于其L3(1PV4//1PV6)地址进行路由。优化IP帧可仅具有L3(1PV4/1PV6)报头,并且被路由。专门化NIC支持可以用于门户增强型帧格式,并且可以直接映射到网络100的结构格式,例如,当交换机/交换机芯片(诸如,交换机102、104、106、108和110)彼此连接和通信时提供某些控制和状态字段以支持多芯片结构的结构格式。如上文所暗示的,基于流通道的拥塞控制机制可以由这种交换机来使用,并且也可以实现小的包的高传输速率(例如,每个端口每秒超过12亿个包),以适应HPC应用的需求。
交换机702可以提供系统范围服务质量(QoS)类别连同控制如何将网络带宽分配给不同类别的流量和不同类别的应用程序的能力,其中单个特权应用程序可访问不止一种类别的流量。在存在网络带宽争用的情况下,仲裁器基于包的流量类别和该类别可用的信用来选择要转发的包。网络可以支持每个流量类别的最小带宽和最大带宽。如果一个类别没有使用它的最小带宽,则其他类别可使用未使用的带宽,但没有一个类别可以获得超过其最大分配带宽。管理带宽的能力提供了将网络资源以及CPU和存储器带宽专用于特定应用程序的机会。
除了支持QoS类别之外,交换机702还实现基于流通道的拥塞控制,并且可以限制被识别为已拥塞的路由流并将网络跃点(例如,在具有蜻蜓拓扑的网络中)的数量从五个网络跃点减少到三个。下文更详细描述的交换机702的设计可以降低网络成本和功耗,并且可进一步促进对改善应用程序性能的创新性自适应路由算法的使用。由多个交换机(诸如,多个交换机702)创建的结构也可用于构造胖树网络,例如当构建用于与第三方网络和软件集成的存储子系统时。更进一步地,交换机702的使用在维持有序包递送的同时实现了细粒度自适应路由。在一些实施例中,交换机702可被配置成在完整的数据有效负载到达之前将包的报头从输入端口发送到输出端口,由此允许输出端口负载指标反映未来负载,由此改善由交换机202做出的自适应路由决定。纵横交换机710可包括在输入端口和输出端口之间路由数据/数据元素的单独的、分布式纵横件(crossbar)。交换机802可具有多个传输/接收端口,例如端口720。交换机702的与输出功能相关联的部分通常对交换机结构格式内的帧进行操作,并且具有结构报头,例如,甚至对于到达和离开单个交换机702内的以太网端口的帧。
图8描绘了示例计算机系统800的框图,在该计算机系统中可实施本文中所描述的各种实施例。计算机系统800包括用于传达信息的总线802或其他通信机构、与总线802联接以用于处理信息的一个或多个硬件处理器804。(多个)硬件处理器804可为例如一个或多个通用微处理器。
计算机系统800还包括主存储器806(诸如,随机存取存储器(RAM)、高速缓存和/或其他动态存储装置),该主存储器联接到总线802以用于存储要由处理器804执行的信息和指令。主存储器806还可用于在执行要由处理器804执行的指令期间存储临时变量或其他中间信息。这种指令在存储于处理器804可访问的存储介质中时使计算机系统800呈现为经定制以执行指令中所指定的操作的专用机器。
计算机系统800进一步包括联接到总线802以用于为处理器804存储静态信息和指令的只读存储器(ROM)808或其他静态存储装置。存储装置810(诸如,磁盘、光盘或USB拇指驱动器(闪存驱动器)等)被提供并联接到总线802以用于存储信息和指令。
计算机系统800可经由总线802联接到显示器812(诸如,液晶显示器(LCD)(或触摸屏))以用于向计算机用户显示信息。包括字母数字和其他键的输入装置814联接到总线802以用于将信息和命令选择传达到处理器804。另一种类型的用户输入装置是光标控件816(诸如,鼠标、轨迹球或光标方向键)以用于将方向信息和命令选择传达到处理器804以及用于控制显示器812上的光标移动。在一些实施例中,可经由在没有光标的情况下接收触摸屏上的触摸来实施与光标控件相同的方向信息和命令选择。
计算系统800可包括用于实施GUI的用户接口模块,GUI可作为由(多个)计算装置执行的可执行软件代码而存储在大容量存储装置中。通过示例的方式,这种和其他模块可包括部件(诸如,软件部件、面向对象的软件部件、类部件和任务部件)、过程、函数、属性、程序、子例程、程序代码段、驱动程序、固件、微代码、电路、数据、数据库、数据结构、表、数组和变量。
一般来说,如本文中所使用的词语“部件”、“引擎”、“系统”、“数据库”、“数据存储区”等可以指代体现在硬件或固件中的逻辑,或者指代软件指令的集合,这些软件指令可能地具有入口点和出口点、用编程语言(诸如例如,Java、C或C++)编写。软件部件可被编译并链接到可执行程序中,安装在动态链接库中,或者可用解释性编程语言(诸如例如,BASIC、Perl或Python)编写。将了解,软件部件可从其他部件或从它们自身是可调用的,和/或可响应于检测到的事件或中断而被调用。被配置成用于在计算装置上执行的软件部件可提供在计算机可读介质(诸如,光盘、数字视频盘、闪存驱动器、磁盘或任何其他有形介质)上,或被提供作为数字下载件(并且可最初以压缩或可安装的格式存储,其在执行之前需要安装、解压缩或解密)。这种软件代码可部分地或全部地存储在执行计算装置的存储器装置上,以供由计算装置执行。软件指令可嵌入在固件(诸如,EPROM)中。将进一步了解,硬件部件可包括连接的逻辑单元(诸如,门和触发器),和/或可包括可编程单元(诸如,可编程门阵列或处理器)。
计算机系统800可使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实施本文中所描述的技术,以上各者与计算机系统结合而引起计算机系统800成为专用机器或将计算机系统800编程为专用机器。根据一个实施例,本文中的技术由计算机系统800响应于(多个)处理器804执行包含在主存储器806中的一个或多个指令的一个或多个序列而执行。这种指令可从另一个存储介质(诸如,存储装置810)读入主存储器806中。包含在主存储器806中的指令序列的执行引起(多个)处理器804执行本文中所描述的过程步骤。在替代性实施例中,硬连线电路可代替软件指令使用或与软件指令结合使用。
如本文中所使用的术语“非暂时性介质”和类似术语指代存储引起机器以特定方式操作的数据和/或指令的任何介质。这种非暂时性介质可包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储装置810。易失性介质包括动态存储器,诸如主存储器806。非暂时性介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、任何带有孔图案的物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他存储器芯片或盒式存储器、以及它们的网络版本。
非暂时性介质与传输介质不同,但可与传输介质结合使用。传输介质参与在非暂时性介质之间的传送信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包括总线802的导线。传输介质还可以采取声波或光波的形式,诸如在无线电波和红外数据通信期间生成的声波或光波。
计算机系统800还包括联接到总线802的通信接口818。网络接口818提供到一个或多个网络链路(所述网络链路连接到一个或多个本地网络)的双向数据通信联接。例如,通信接口818可为综合业务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器或用于提供到对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,网络接口818可为用于提供到兼容LAN(或用于与WAN通信的WAN部件)的数据通信连接的局域网(LAN)卡。还可实施无线链路。在任何这种实施方式中,网络接口818发送和接收电、电磁或光学信号,这些信号携载表示各种类型的信息的数字数据流。
网络链路通常通过一个或多个网络向其他数据装置提供数据通信。例如,网络链路可通过本地网络提供到主计算机或由互联网服务提供商(ISP)操作的数据设备的连接。ISP进而通过全球包数据通信网络(现在通常被称为“互联网”)来提供数据通信服务。本地网络和互联网两者都使用携载数字数据流的电、电磁或光学信号。穿过各种网络的信号以及在网络链路上和穿过通信接口818的信号(这些信号携载进出计算机系统800的数字数据)是传输介质的示例形式。
计算机系统800可以通过(多个)网络、网络链路和通信接口818发送消息和接收数据,包括程序代码。在互联网示例中,服务器可能通过互联网、ISP、本地网络和通信接口818传输针对应用程序所请求的代码。
接收到的代码可在其被接收时由处理器804执行,和/或存储在存储装置810或其他非易失性存储装置中以供稍后执行。前述部分中所描述的过程、方法和算法中的每一者可体现在由包括计算机硬件的一个或多个计算机系统或计算机处理器执行的代码部件中,并且由这些代码部件完全或部分自动化。所述一个或多个计算机系统或计算机处理器还可操作来支持“云计算”环境中的相关操作的性能或操作为“软件即服务”(SaaS)。过程和算法可部分地或全部地在专用电路中实施。上文所描述的各种特征和过程可彼此独立地使用,或者可以各种方式组合。不同的组合和子组合旨在落入本公开的范围内,并且在一些实施方式中可省略某些方法或过程块。本文中所描述的方法和过程也不限于任何特定的顺序,并且与其相关的块或状态可以以其他适当的顺序执行,或者可并行执行,或者以某种其他方式执行。可将块或状态添加到所公开的示例实施例或从所公开的示例实施例中去除。某些操作或过程的性能可分布在计算机系统或计算机处理器当中,不仅驻留在单个机器内,而且还部署跨越若干个机器。
如本文中所使用的,可能利用任何形式的硬件、软件或其组合来实施电路。例如,可能实施一个或多个处理器、控制器、ASIC、PLA、PAL、CPLD、FPGA、逻辑部件、软件例程或其他机制来组成电路。在实施方式中,本文中所描述的各种电路可能被实施为分立电路,或者所描述的功能和特征可以在一个或多个电路当中部分地或整个地共享。尽管各种特征或功能元件可作为单独的电路而单独描述或要求保护,但这些特征和功能可以在一个或多个公共电路当中共享,并且这种描述不应要求或暗示需要单独的电路来实施这种特征或功能。在电路全部或部分地使用软件来实施的情况下,这种软件可以被实施为与能够实施关于其所描述的功能的计算或处理系统(诸如,计算机系统800)一起操作。
如本文中所使用的,可在包括性抑或排他性意义上解释术语“或”。此外,单数形式的资源、操作或结构的描述不应被解读为排除复数形式。除非另有明确陈述,或者在如所使用的上下文内以其他方式理解,否则条件语言(诸如,尤其是“可以”、“可能”、“也许”或“可”)通常旨在传达某些实施例包括而其他实施例不包括某些特征、元素和/或步骤。
除非另有明确陈述,否则本文件中所使用的术语和短语及其变体应被解释为开放式的,这与限制性完全不同。诸如“常规的”、“传统的”、“正常的”、“标准的”、“已知的”和类似含义的术语之类的形容词不应被解释为将所描述的条目限制到给定的时间段或截至给定时间可用的条目,而是应被解读为涵盖可在现在或将来的任何时间可用或已知的常规的、传统的、正常的或标准的技术。在一些情况下,诸如“一个或多个”、“至少”、“但不限于”或其他类似短语之类的宽泛词语和短语的出现不应被解读为意味着在可能缺乏这种宽泛短语的情况下意图或需要更窄的情况。
Claims (17)
1.一种在具有多个交换机的网络中路由多个数据传输的方法,所述方法包括:
建立多个流通道,所述多个流通道对应于包括所述多个数据传输的多个流中的每一个;
将所述多个流自适应地路由通过具有多个交换机的网络;
响应于在沿着传输路径的网络链路上遇到严重的错误,针对在所述链路上起作用的所述多个流中的至少一个生成错误确认;
经由所述多个流通道将所述错误确认传输到在所述网络链路上游的入口端口,其中,所述错误确认将遇到所述严重的错误的所述网络链路作为故障链路指示给在所述故障链路上游的入口端口;
在所述故障链路上游的每个入口端口处,动态地更新在所述故障链路上游的所述多个流的路径,使得在所述故障链路上游的所述多个流以避开所述故障链路的方式被路由。
2.根据权利要求1所述的方法,其中,动态地更新所述路径包括动态地更新所述路由表。
3.根据权利要求1所述的方法,其中,动态地更新所述路由表包括将所述故障链路去除为最低限度地有资格用于路由。
4.根据权利要求2所述的方法,其包括:
在沿着所述传输路径的入口端口处,更新路由表,使得在所述入口端口处接收到的新的流以避开所述网络链路的方式被路由。
5.根据权利要求1所述的方法,其进一步包括:
响应于在沿着所述传输路径的所述网络链路上进一步遇到严重的错误,提供所述链路上的错误率和错误类型的度量。
6.根据权利要求1所述的方法,其中,更新所述路径包括:
将所述故障链路指示为拥塞的,使得自适应路由采用基于拥塞的重新路由来避开所述链路。
7.根据权利要求5所述的方法,其中,所述基于拥塞的重新路由偏好对于包括所述故障链路的所述传输路径而言的替代性传输路径。
8.根据权利要求1所述的方法,其中,所述多个流通道中的每一个对应于相应流的一对源端口和目的地端口。
9.根据权利要求1所述的方法,其中,自适应路由包括在所述入口端口中的每一个处执行路由决定。
10.根据权利要求5所述的方法,其中,自适应路由包括:
利用所述多个流通道以针对所述多个流中的每一个为流中的第一包选择路径。
11.根据权利要求10所述的方法,其中,自适应路由进一步包括:
利用所述多个流通道以迫使流中的后续包遵循所述第一包所采取的相同路径,使得得以遍及所述数据传输来维持所述包的排序。
12.根据权利要求11所述的方法,其中,自适应路由进一步包括沿远离所述网络中的拥塞点的方向来动态地重新路由流。
13.根据权利要求5所述的方法,其中,将所述故障链路指示为拥塞的是基于拥塞确认。
14.根据权利要求10所述的方法,其中所述拥塞确认向上游发出所述流正经历拥塞的信号。
15.一种交换机,其包括:
专用集成电路(ASIC),其用于:
建立多个流通道,所述多个流通道对应于包括所述多个数据传输的多个流中的每一个;
将所述多个流自适应地路由通过具有多个交换机的网络;
响应于在沿着传输路径的网络链路上遇到严重的错误,针对在所述链路上起作用的所述多个流中的至少一个生成错误确认;
经由所述多个流通道将所述错误确认传输到在所述网络链路上游的入口端口,其中,所述错误确认将遇到所述严重的错误的所述网络链路作为故障链路指示给在所述故障链路上游的入口端口。
16.根据权利要求15所述的交换机,其中,所述错误确认在所述故障链路上游的每个入口端口处实现动态地更新在所述故障链路上游的所述多个流的路径,使得在所述故障链路上游的所述多个流以避开所述故障链路的方式被路由。
17.一种在具有多个交换机的网络中路由多个数据传输的方法,所述方法包括:
响应于在沿着传输路径的网络链路上遇到严重的错误,在所述网络链路上游的每个入口端口处,经由多个流通道接收错误确认,其中,所述错误确认将遇到所述严重的错误的所述网络链路作为故障链路指示给在所述故障链路上游的所述入口端口;以及
在所述故障链路上游的每个入口端口处,动态地更新在所述故障链路上游的所述多个流的路径,使得在所述故障链路上游的所述多个流以避开所述故障链路的方式被路由。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962852273P | 2019-05-23 | 2019-05-23 | |
US201962852203P | 2019-05-23 | 2019-05-23 | |
US201962852289P | 2019-05-23 | 2019-05-23 | |
US62/852,203 | 2019-05-23 | ||
US62/852,273 | 2019-05-23 | ||
US62/852,289 | 2019-05-23 | ||
PCT/US2020/024342 WO2020236302A1 (en) | 2019-05-23 | 2020-03-23 | Systems and methods for on the fly routing in the presence of errors |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113785541A true CN113785541A (zh) | 2021-12-10 |
Family
ID=73458112
Family Applications (29)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080029704.5A Pending CN113728599A (zh) | 2019-05-23 | 2020-03-23 | 促进将包高效地注入网络接口控制器(nic)中的输出缓冲区中的系统和方法 |
CN202080029835.3A Pending CN113711547A (zh) | 2019-05-23 | 2020-03-23 | 促进网络接口控制器(nic)中的高效包转发的系统和方法 |
CN202080028945.8A Pending CN113692725A (zh) | 2019-05-23 | 2020-03-23 | 促进网络接口控制器(nic)中的高效负载均衡的系统和方法 |
CN202080031241.6A Pending CN113748648A (zh) | 2019-05-23 | 2020-03-23 | 权重路由 |
CN202080029985.4A Pending CN113874848A (zh) | 2019-05-23 | 2020-03-23 | 用于促进网络接口控制器(nic)中对加速器的操作管理的系统和方法 |
CN202080030067.3A Pending CN113728315A (zh) | 2019-05-23 | 2020-03-23 | 促进网络接口控制器(nic)中的有效消息匹配的系统和方法 |
CN202080029737.XA Pending CN113711549A (zh) | 2019-05-23 | 2020-03-23 | 用于动态分配归约引擎的系统和方法 |
CN202080031262.8A Pending CN113767601A (zh) | 2019-05-23 | 2020-03-23 | 用于分发软件确定的全局负载信息的方法 |
CN202080030246.7A Pending CN113711548A (zh) | 2019-05-23 | 2020-03-23 | 用于促进网络中的全局公平性的系统和方法 |
CN202080030421.2A Pending CN113785536A (zh) | 2019-05-23 | 2020-03-23 | 用于在数据驱动的智能网络中促进跟踪器分组的系统和方法 |
CN202080031357.XA Pending CN113728594A (zh) | 2019-05-23 | 2020-03-23 | 用于促进对各个应用和流量流进行流控制的数据驱动智能网络的系统和方法 |
CN202080029588.7A Pending CN113728595A (zh) | 2019-05-23 | 2020-03-23 | 促进通过网络接口控制器(nic)进行高效主机存储器访问的系统和方法 |
CN202080029801.4A Pending CN113711550A (zh) | 2019-05-23 | 2020-03-23 | 促进网络接口控制器(nic)中细粒度流控制的系统和方法 |
CN202080029766.6A Pending CN113728597A (zh) | 2019-05-23 | 2020-03-23 | 用于在网络中执行即时归约的系统和方法 |
CN202080029591.9A Pending CN113711551A (zh) | 2019-05-23 | 2020-03-23 | 促进网络接口控制器(nic)中的动态命令管理的系统和方法 |
CN202080029462.XA Pending CN113711173A (zh) | 2019-05-23 | 2020-03-23 | 促进网络接口控制器(nic)中的数据请求管理的系统和方法 |
CN202080030714.0A Pending CN113767600A (zh) | 2019-05-23 | 2020-03-23 | 用于在存在持续流的情况下的自适应路由的系统和方法 |
CN202080028898.7A Pending CN113692581A (zh) | 2019-05-23 | 2020-03-23 | 促进网络接口控制器(nic)中非幂等性操作的高效管理的系统和方法 |
CN202080032169.9A Pending CN113785543A (zh) | 2019-05-23 | 2020-03-23 | 用于在应用之间提供网络入口公平性的方法和系统 |
CN202080030734.8A Pending CN113767598A (zh) | 2019-05-23 | 2020-03-23 | 用于逐流量分类路由的系统和方法 |
CN202080030711.7A Pending CN113728593A (zh) | 2019-05-23 | 2020-03-23 | 用于在应用之间提供网络出口公平性的方法和系统 |
CN202080031578.7A Pending CN113748647A (zh) | 2019-05-23 | 2020-03-23 | 胖树自适应路由 |
CN202080031098.0A Pending CN113728592A (zh) | 2019-05-23 | 2020-03-23 | 促进采用端点拥塞检测和控制的数据驱动智能网络的系统和方法 |
CN202080030809.2A Pending CN113767599A (zh) | 2019-05-23 | 2020-03-23 | 用于减少跳数的优化的自适应路由 |
CN202080029870.5A Pending CN113728596A (zh) | 2019-05-23 | 2020-03-23 | 在网络接口控制器(nic)中促进对幂等操作进行高效管理的系统和方法 |
CN202080031356.5A Pending CN113785541A (zh) | 2019-05-23 | 2020-03-23 | 用于在存在错误的情况下的即时路由的系统和方法 |
CN202080031355.0A Pending CN114073054A (zh) | 2019-05-23 | 2020-03-23 | 促进采用基于逐流信用的流控制的数据驱动智能网络的系统和方法 |
CN202080030125.2A Pending CN113728598A (zh) | 2019-05-23 | 2020-03-23 | 用于促进自管理的归约引擎的系统和方法 |
CN202080031291.4A Pending CN113748652A (zh) | 2019-05-23 | 2020-03-23 | 在自适应路由中使用来自相邻节点的负载信息的算法 |
Family Applications Before (25)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080029704.5A Pending CN113728599A (zh) | 2019-05-23 | 2020-03-23 | 促进将包高效地注入网络接口控制器(nic)中的输出缓冲区中的系统和方法 |
CN202080029835.3A Pending CN113711547A (zh) | 2019-05-23 | 2020-03-23 | 促进网络接口控制器(nic)中的高效包转发的系统和方法 |
CN202080028945.8A Pending CN113692725A (zh) | 2019-05-23 | 2020-03-23 | 促进网络接口控制器(nic)中的高效负载均衡的系统和方法 |
CN202080031241.6A Pending CN113748648A (zh) | 2019-05-23 | 2020-03-23 | 权重路由 |
CN202080029985.4A Pending CN113874848A (zh) | 2019-05-23 | 2020-03-23 | 用于促进网络接口控制器(nic)中对加速器的操作管理的系统和方法 |
CN202080030067.3A Pending CN113728315A (zh) | 2019-05-23 | 2020-03-23 | 促进网络接口控制器(nic)中的有效消息匹配的系统和方法 |
CN202080029737.XA Pending CN113711549A (zh) | 2019-05-23 | 2020-03-23 | 用于动态分配归约引擎的系统和方法 |
CN202080031262.8A Pending CN113767601A (zh) | 2019-05-23 | 2020-03-23 | 用于分发软件确定的全局负载信息的方法 |
CN202080030246.7A Pending CN113711548A (zh) | 2019-05-23 | 2020-03-23 | 用于促进网络中的全局公平性的系统和方法 |
CN202080030421.2A Pending CN113785536A (zh) | 2019-05-23 | 2020-03-23 | 用于在数据驱动的智能网络中促进跟踪器分组的系统和方法 |
CN202080031357.XA Pending CN113728594A (zh) | 2019-05-23 | 2020-03-23 | 用于促进对各个应用和流量流进行流控制的数据驱动智能网络的系统和方法 |
CN202080029588.7A Pending CN113728595A (zh) | 2019-05-23 | 2020-03-23 | 促进通过网络接口控制器(nic)进行高效主机存储器访问的系统和方法 |
CN202080029801.4A Pending CN113711550A (zh) | 2019-05-23 | 2020-03-23 | 促进网络接口控制器(nic)中细粒度流控制的系统和方法 |
CN202080029766.6A Pending CN113728597A (zh) | 2019-05-23 | 2020-03-23 | 用于在网络中执行即时归约的系统和方法 |
CN202080029591.9A Pending CN113711551A (zh) | 2019-05-23 | 2020-03-23 | 促进网络接口控制器(nic)中的动态命令管理的系统和方法 |
CN202080029462.XA Pending CN113711173A (zh) | 2019-05-23 | 2020-03-23 | 促进网络接口控制器(nic)中的数据请求管理的系统和方法 |
CN202080030714.0A Pending CN113767600A (zh) | 2019-05-23 | 2020-03-23 | 用于在存在持续流的情况下的自适应路由的系统和方法 |
CN202080028898.7A Pending CN113692581A (zh) | 2019-05-23 | 2020-03-23 | 促进网络接口控制器(nic)中非幂等性操作的高效管理的系统和方法 |
CN202080032169.9A Pending CN113785543A (zh) | 2019-05-23 | 2020-03-23 | 用于在应用之间提供网络入口公平性的方法和系统 |
CN202080030734.8A Pending CN113767598A (zh) | 2019-05-23 | 2020-03-23 | 用于逐流量分类路由的系统和方法 |
CN202080030711.7A Pending CN113728593A (zh) | 2019-05-23 | 2020-03-23 | 用于在应用之间提供网络出口公平性的方法和系统 |
CN202080031578.7A Pending CN113748647A (zh) | 2019-05-23 | 2020-03-23 | 胖树自适应路由 |
CN202080031098.0A Pending CN113728592A (zh) | 2019-05-23 | 2020-03-23 | 促进采用端点拥塞检测和控制的数据驱动智能网络的系统和方法 |
CN202080030809.2A Pending CN113767599A (zh) | 2019-05-23 | 2020-03-23 | 用于减少跳数的优化的自适应路由 |
CN202080029870.5A Pending CN113728596A (zh) | 2019-05-23 | 2020-03-23 | 在网络接口控制器(nic)中促进对幂等操作进行高效管理的系统和方法 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080031355.0A Pending CN114073054A (zh) | 2019-05-23 | 2020-03-23 | 促进采用基于逐流信用的流控制的数据驱动智能网络的系统和方法 |
CN202080030125.2A Pending CN113728598A (zh) | 2019-05-23 | 2020-03-23 | 用于促进自管理的归约引擎的系统和方法 |
CN202080031291.4A Pending CN113748652A (zh) | 2019-05-23 | 2020-03-23 | 在自适应路由中使用来自相邻节点的负载信息的算法 |
Country Status (5)
Country | Link |
---|---|
US (50) | US11818037B2 (zh) |
EP (11) | EP3949290A4 (zh) |
CN (29) | CN113728599A (zh) |
DE (18) | DE112020002481T5 (zh) |
WO (43) | WO2020236287A1 (zh) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11108704B2 (en) | 2018-12-04 | 2021-08-31 | Nvidia Corp. | Use of stashing buffers to improve the efficiency of crossbar switches |
CN113728599A (zh) | 2019-05-23 | 2021-11-30 | 慧与发展有限责任合伙企业 | 促进将包高效地注入网络接口控制器(nic)中的输出缓冲区中的系统和方法 |
US20220353001A1 (en) * | 2019-07-25 | 2022-11-03 | Maxlinear, Inc. | Multiple ports with different baud rate over a single serdes |
CN112511323B (zh) * | 2019-09-16 | 2022-06-14 | 华为技术有限公司 | 处理网络拥塞的方法和相关装置 |
US11240151B2 (en) | 2019-12-10 | 2022-02-01 | Juniper Networks, Inc. | Combined input and output queue for packet forwarding in network devices |
EP4142226A4 (en) * | 2020-04-21 | 2023-12-06 | Nippon Telegraph And Telephone Corporation | NETWORK SETTING APPARATUS, METHOD AND PROGRAM |
US11693800B2 (en) * | 2020-07-13 | 2023-07-04 | EMC IP Holding Company LLC | Managing IO path bandwidth |
US11737021B2 (en) * | 2020-08-28 | 2023-08-22 | Qualcomm Incorporated | Low-latency enhancements for a wireless network |
US11444860B2 (en) * | 2020-09-24 | 2022-09-13 | Cisco Technology, Inc. | Automating and extending path tracing through wireless links |
DE102021121105A1 (de) * | 2020-09-28 | 2022-03-31 | Samsung Electronics Co., Ltd. | Intelligente ablagespeichervorrichtung |
US20210281618A1 (en) * | 2020-11-12 | 2021-09-09 | Intel Corporation | System, apparatus, and method for streaming input/output data |
US20220166718A1 (en) * | 2020-11-23 | 2022-05-26 | Pensando Systems Inc. | Systems and methods to prevent packet reordering when establishing a flow entry |
GB2601732A (en) * | 2020-11-25 | 2022-06-15 | Metaswitch Networks Ltd | Packet processing |
US20210149821A1 (en) * | 2020-12-23 | 2021-05-20 | Intel Corporation | Address translation technologies |
WO2022146507A1 (en) * | 2020-12-30 | 2022-07-07 | Arris Enterprises Llc | System to dynamically detect and enhance classifiers for low latency traffic |
CN116889024A (zh) * | 2021-02-22 | 2023-10-13 | 华为技术有限公司 | 一种数据流传输方法、装置及网络设备 |
US20220358002A1 (en) * | 2021-05-04 | 2022-11-10 | Xilinx, Inc. | Network attached mpi processing architecture in smartnics |
US20220385587A1 (en) * | 2021-05-25 | 2022-12-01 | Google Llc | Acknowledgement Coalescing Module Utilized In Content Addressable Memory (CAM) Based Hardware Architecture For Data Center Networking |
US11870682B2 (en) | 2021-06-22 | 2024-01-09 | Mellanox Technologies, Ltd. | Deadlock-free local rerouting for handling multiple local link failures in hierarchical network topologies |
US11637778B2 (en) | 2021-06-25 | 2023-04-25 | Cornelis Newtorks, Inc. | Filter with engineered damping for load-balanced fine-grained adaptive routing in high-performance system interconnect |
US11677672B2 (en) * | 2021-06-25 | 2023-06-13 | Cornelis Newtorks, Inc. | Telemetry-based load-balanced fine-grained adaptive routing in high-performance system interconnect |
US11714765B2 (en) * | 2021-07-23 | 2023-08-01 | Hewlett Packard Enterprise Development Lp | System and method for implementing a network-interface-based allreduce operation |
US11665113B2 (en) * | 2021-07-28 | 2023-05-30 | Hewlett Packard Enterprise Development Lp | System and method for facilitating dynamic triggered operation management in a network interface controller (NIC) |
US11729099B2 (en) * | 2021-07-30 | 2023-08-15 | Avago Technologies International Sales Pte. Limited | Scalable E2E network architecture and components to support low latency and high throughput |
WO2023027693A1 (en) * | 2021-08-24 | 2023-03-02 | Zeku, Inc. | Serializer / deserializer forward flow control |
US11824791B2 (en) * | 2021-09-08 | 2023-11-21 | Nvidia Corporation | Virtual channel starvation-free arbitration for switches |
US11722437B2 (en) * | 2021-09-14 | 2023-08-08 | Netscout Systems, Inc. | Configuration of a scalable IP network implementation of a switch stack |
CN113630331B (zh) * | 2021-10-11 | 2021-12-28 | 北京金睛云华科技有限公司 | 全流量存储回溯分析系统中父子连接的处理方法 |
US11968115B2 (en) | 2021-10-31 | 2024-04-23 | Avago Technologies International Sales Pte. Limited | Method for verifying data center network performance |
US20230153249A1 (en) * | 2021-11-18 | 2023-05-18 | Ati Technologies Ulc | Hardware translation request retry mechanism |
EP4187868A1 (en) * | 2021-11-24 | 2023-05-31 | INTEL Corporation | Load balancing and networking policy performance by a packet processing pipeline |
US11765103B2 (en) * | 2021-12-01 | 2023-09-19 | Mellanox Technologies, Ltd. | Large-scale network with high port utilization |
US20230188468A1 (en) * | 2021-12-10 | 2023-06-15 | Nokia Solutions And Networks Oy | Flowlet switching using memory instructions |
US11770215B2 (en) * | 2022-02-17 | 2023-09-26 | Nvidia Corp. | Transceiver system with end-to-end reliability and ordering protocols |
CN114401226B (zh) * | 2022-02-21 | 2024-02-27 | 李超 | 一种流媒体数据的路由流量控制方法及系统 |
WO2023177704A1 (en) * | 2022-03-16 | 2023-09-21 | F5, Inc. | Multi-destination dma for packet broadcast |
US20230318969A1 (en) * | 2022-03-31 | 2023-10-05 | Lenovo (United States) Inc. | Optimizing network load in multicast communications |
CN117014376A (zh) * | 2022-04-28 | 2023-11-07 | 华为技术有限公司 | 拥塞流识别方法、装置、设备及计算机可读存储介质 |
US20230385138A1 (en) * | 2022-05-25 | 2023-11-30 | Meta Platforms, Inc. | Chip-to-chip interconnect with a layered communication architecture |
US11799929B1 (en) * | 2022-05-27 | 2023-10-24 | Hewlett Packard Enterprise Development Lp | Efficient multicast control traffic management for service discovery |
US20240094910A1 (en) * | 2022-09-19 | 2024-03-21 | Microsoft Technology Licensing, Llc | Round Robin Arbitration Using Random Access Memory |
CN116662016B (zh) * | 2023-07-25 | 2023-10-20 | 太平金融科技服务(上海)有限公司 | 端口切换方法、装置、计算机设备、存储介质和程序产品 |
CN117061423B (zh) * | 2023-10-09 | 2024-01-23 | 苏州元脑智能科技有限公司 | 一种胖树网络的多机路由方法、装置、系统及存储介质 |
Family Cites Families (562)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4807118A (en) | 1987-01-14 | 1989-02-21 | Hewlett-Packard Company | Method for handling slot requests over a network |
US5138615A (en) | 1989-06-22 | 1992-08-11 | Digital Equipment Corporation | Reconfiguration system and method for high-speed mesh connected local area network |
US5457687A (en) | 1993-09-02 | 1995-10-10 | Network Equipment Technologies, Inc. | Method and apparatus for backward explicit congestion notification (BECN) in an ATM network |
US5754120A (en) * | 1995-12-21 | 1998-05-19 | Lucent Technologies | Network congestion measurement method and apparatus |
US5983332A (en) | 1996-07-01 | 1999-11-09 | Sun Microsystems, Inc. | Asynchronous transfer mode (ATM) segmentation and reassembly unit virtual address translation unit architecture |
US5937436A (en) | 1996-07-01 | 1999-08-10 | Sun Microsystems, Inc | Network interface circuit including an address translation unit and flush control circuit and method for checking for invalid address translations |
US6493347B2 (en) | 1996-12-16 | 2002-12-10 | Juniper Networks, Inc. | Memory organization in a switching device |
US6112265A (en) | 1997-04-07 | 2000-08-29 | Intel Corportion | System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command |
US5960178A (en) | 1997-08-08 | 1999-09-28 | Bell Communications Research, Inc. | Queue system and method for point-to-point message passing having a separate table for storing message state and identifier of processor assigned to process the message |
US7237036B2 (en) * | 1997-10-14 | 2007-06-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding a TCP connection |
US7133940B2 (en) | 1997-10-14 | 2006-11-07 | Alacritech, Inc. | Network interface device employing a DMA command queue |
US6226680B1 (en) | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
US6434620B1 (en) * | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US5970232A (en) | 1997-11-17 | 1999-10-19 | Cray Research, Inc. | Router table lookup mechanism |
US6230252B1 (en) | 1997-11-17 | 2001-05-08 | Silicon Graphics, Inc. | Hybrid hypercube/torus architecture |
US6545981B1 (en) | 1998-01-07 | 2003-04-08 | Compaq Computer Corporation | System and method for implementing error detection and recovery in a system area network |
US6563835B1 (en) * | 1998-02-20 | 2003-05-13 | Lucent Technologies Inc. | Call processing arrangement for ATM switches |
US6714553B1 (en) | 1998-04-15 | 2004-03-30 | Top Layer Networks, Inc. | System and process for flexible queuing of data packets in network switching |
US6490276B1 (en) * | 1998-06-29 | 2002-12-03 | Nortel Networks Limited | Stackable switch port collapse mechanism |
US6321276B1 (en) | 1998-08-04 | 2001-11-20 | Microsoft Corporation | Recoverable methods and systems for processing input/output requests including virtual memory addresses |
US7010604B1 (en) | 1998-10-30 | 2006-03-07 | Science Applications International Corporation | Agile network protocol for secure communications with assured system availability |
US6246682B1 (en) | 1999-03-05 | 2001-06-12 | Transwitch Corp. | Method and apparatus for managing multiple ATM cell queues |
US6615282B1 (en) | 1999-05-21 | 2003-09-02 | Intel Corporation | Adaptive messaging |
US6424591B1 (en) * | 1999-05-28 | 2002-07-23 | Advanced Micro Devices, Inc. | Network interface supporting fifo-type and SRAM-type accesses to internal buffer memory |
US6674720B1 (en) | 1999-09-29 | 2004-01-06 | Silicon Graphics, Inc. | Age-based network arbitration system and method |
US6542941B1 (en) | 1999-09-30 | 2003-04-01 | Intel Corporation | Efficient command delivery and data transfer |
US7076630B2 (en) * | 2000-02-08 | 2006-07-11 | Mips Tech Inc | Method and apparatus for allocating and de-allocating consecutive blocks of memory in background memo management |
US6977930B1 (en) | 2000-02-14 | 2005-12-20 | Cisco Technology, Inc. | Pipelined packet switching and queuing architecture |
US7545755B2 (en) | 2000-03-03 | 2009-06-09 | Adtran Inc. | Routing switch detecting change in session identifier before reconfiguring routing table |
US6735173B1 (en) | 2000-03-07 | 2004-05-11 | Cisco Technology, Inc. | Method and apparatus for accumulating and distributing data items within a packet switching system |
US6633580B1 (en) | 2000-03-07 | 2003-10-14 | Sun Microsystems | N×N crossbar packet switch |
US6728211B1 (en) | 2000-03-07 | 2004-04-27 | Cisco Technology, Inc. | Method and apparatus for delaying packets being sent from a component of a packet switching system |
WO2001069851A2 (en) | 2000-03-13 | 2001-09-20 | The Trustees Of Columbia University In The City Of New York | Method and apparatus for allocation of resources |
US7215637B1 (en) | 2000-04-17 | 2007-05-08 | Juniper Networks, Inc. | Systems and methods for processing packets |
US6894974B1 (en) | 2000-05-08 | 2005-05-17 | Nortel Networks Limited | Method, apparatus, media, and signals for controlling packet transmission rate from a packet source |
US20020146022A1 (en) * | 2000-05-31 | 2002-10-10 | Van Doren Stephen R. | Credit-based flow control technique in a modular multiprocessor system |
US8619793B2 (en) | 2000-08-21 | 2013-12-31 | Rockstar Consortium Us Lp | Dynamic assignment of traffic classes to a priority queue in a packet forwarding device |
US6985956B2 (en) | 2000-11-02 | 2006-01-10 | Sun Microsystems, Inc. | Switching system |
US6910148B1 (en) | 2000-12-07 | 2005-06-21 | Nokia, Inc. | Router and routing protocol redundancy |
US7127056B2 (en) | 2000-12-26 | 2006-10-24 | Nortel Networks Limited | Dynamic adaptation to congestion in connection-oriented networks |
US6732212B2 (en) | 2001-02-14 | 2004-05-04 | Fujitsu Limited | Launch raw packet on remote interrupt |
CN1311376C (zh) | 2001-02-24 | 2007-04-18 | 国际商业机器公司 | 一种计算结构和计算系统 |
CA2438195C (en) | 2001-02-24 | 2009-02-03 | International Business Machines Corporation | Optimized scalabale network switch |
EP1249972A1 (en) * | 2001-04-09 | 2002-10-16 | Telefonaktiebolaget L M Ericsson (Publ) | Method of controlling a queue buffer |
US20020152328A1 (en) * | 2001-04-11 | 2002-10-17 | Mellanox Technologies, Ltd. | Network adapter with shared database for message context information |
US6687781B2 (en) | 2001-05-01 | 2004-02-03 | Zettacom, Inc. | Fair weighted queuing bandwidth allocation system for network switch port |
US7260104B2 (en) | 2001-12-19 | 2007-08-21 | Computer Network Technology Corporation | Deferred queuing in a buffered switch |
US7042842B2 (en) * | 2001-06-13 | 2006-05-09 | Computer Network Technology Corporation | Fiber channel switch |
US7218637B1 (en) | 2001-07-20 | 2007-05-15 | Yotta Networks, Llc | System for switching data using dynamic scheduling |
US7382787B1 (en) * | 2001-07-30 | 2008-06-03 | Cisco Technology, Inc. | Packet routing and switching device |
DE60212404T2 (de) | 2001-08-21 | 2007-01-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Mehrfachsendung in paketvermittelten punkt-zu-punkt-netzwerken |
US7415531B2 (en) | 2001-08-22 | 2008-08-19 | Mips Technologies, Inc. | Method and apparatus for predicting characteristics of incoming data packets to enable speculative processing to reduce processor latency |
KR100750036B1 (ko) | 2001-08-24 | 2007-08-16 | 인텔 코오퍼레이션 | 플로우 제어를 구현하는 범용 입출력 아키텍쳐, 프로토콜및 관련 방법 |
US7464180B1 (en) | 2001-10-16 | 2008-12-09 | Cisco Technology, Inc. | Prioritization and preemption of data frames over a switching fabric |
US7110360B1 (en) * | 2001-11-05 | 2006-09-19 | Juniper Networks, Inc. | Credit-based flow control over unreliable links |
US7092401B2 (en) * | 2001-11-15 | 2006-08-15 | International Business Machines Corporation | Apparatus and method for managing work and completion queues using head and tail pointers with end-to-end context error cache for reliable datagram |
US7457297B2 (en) | 2001-11-16 | 2008-11-25 | Enterasys Networks, Inc. | Methods and apparatus for differentiated services over a packet-based network |
US6698003B2 (en) | 2001-12-06 | 2004-02-24 | International Business Machines Corporation | Framework for multiple-engine based verification tools for integrated circuits |
US7023856B1 (en) | 2001-12-11 | 2006-04-04 | Riverstone Networks, Inc. | Method and system for providing differentiated service on a per virtual circuit basis within a packet-based switch/router |
US20030126280A1 (en) * | 2001-12-31 | 2003-07-03 | Maxxan Systems, Inc. | XON/XOFF flow control for computer network |
JP3875107B2 (ja) | 2002-01-10 | 2007-01-31 | 株式会社エヌ・ティ・ティ・ドコモ | パケット交換システム、パケット交換方法、ルーティング装置、パケットデータ及びその生成方法 |
JP2003244196A (ja) * | 2002-02-20 | 2003-08-29 | Fujitsu Ltd | 負荷分散制御をするルータ及びネットワーク制御装置 |
US8626957B2 (en) | 2003-08-22 | 2014-01-07 | International Business Machines Corporation | Collective network for computer structures |
US7782776B2 (en) | 2002-03-15 | 2010-08-24 | Broadcom Corporation | Shared weighted fair queuing (WFQ) shaper |
US7245620B2 (en) | 2002-03-15 | 2007-07-17 | Broadcom Corporation | Method and apparatus for filtering packet data in a network device |
US7181531B2 (en) | 2002-04-30 | 2007-02-20 | Microsoft Corporation | Method to synchronize and upload an offloaded network stack connection with a network stack |
US7283558B2 (en) | 2002-06-04 | 2007-10-16 | Lucent Technologies Inc. | Distributed weighted fair arbitration and forwarding |
US7627693B2 (en) * | 2002-06-11 | 2009-12-01 | Pandya Ashish A | IP storage processor and engine therefor using RDMA |
US7191249B1 (en) | 2002-06-14 | 2007-03-13 | Juniper Networks, Inc. | Packet prioritization systems and methods using address aliases |
DE60233760D1 (de) | 2002-06-19 | 2009-10-29 | Ericsson Telefon Ab L M | Netzwerkeinrichtungs-treiberarchitektur |
US7649882B2 (en) | 2002-07-15 | 2010-01-19 | Alcatel-Lucent Usa Inc. | Multicast scheduling and replication in switches |
US8700724B2 (en) | 2002-08-19 | 2014-04-15 | Broadcom Corporation | System and method for transferring data over a remote direct memory access (RDMA) network |
US20040049580A1 (en) | 2002-09-05 | 2004-03-11 | International Business Machines Corporation | Receive queue device with efficient queue flow control, segment placement and virtualization mechanisms |
US7206858B2 (en) | 2002-09-19 | 2007-04-17 | Intel Corporation | DSL transmit traffic shaper structure and procedure |
US8478811B2 (en) | 2002-10-08 | 2013-07-02 | Netlogic Microsystems, Inc. | Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip |
US7327678B2 (en) | 2002-10-18 | 2008-02-05 | Alcatel Lucent | Metro ethernet network system with selective upstream pause messaging |
US8270423B2 (en) | 2003-07-29 | 2012-09-18 | Citrix Systems, Inc. | Systems and methods of using packet boundaries for reduction in timeout prevention |
US7269180B2 (en) | 2002-11-04 | 2007-09-11 | World Wide Packets, Inc. | System and method for prioritizing and queuing traffic |
CN1260915C (zh) | 2002-11-19 | 2006-06-21 | 华为技术有限公司 | 一种城域网传输设备的流量控制方法 |
US8103788B1 (en) | 2002-11-19 | 2012-01-24 | Advanced Micro Devices, Inc. | Method and apparatus for dynamically reallocating buffers for use in a packet transmission |
US7317718B1 (en) | 2002-12-06 | 2008-01-08 | Juniper Networks, Inc. | Flexible counter update and retrieval |
US7397797B2 (en) | 2002-12-13 | 2008-07-08 | Nvidia Corporation | Method and apparatus for performing network processing functions |
US7441267B1 (en) | 2003-03-19 | 2008-10-21 | Bbn Technologies Corp. | Method and apparatus for controlling the flow of data across a network interface |
US7660908B2 (en) | 2003-05-01 | 2010-02-09 | International Business Machines Corporation | Implementing virtual packet storage via packet work area |
US7573827B2 (en) | 2003-05-06 | 2009-08-11 | Hewlett-Packard Development Company, L.P. | Method and apparatus for detecting network congestion |
JP4175185B2 (ja) | 2003-06-06 | 2008-11-05 | 日本電気株式会社 | ネットワーク情報記録装置 |
US20050108518A1 (en) | 2003-06-10 | 2005-05-19 | Pandya Ashish A. | Runtime adaptable security processor |
US7483374B2 (en) | 2003-08-05 | 2009-01-27 | Scalent Systems, Inc. | Method and apparatus for achieving dynamic capacity and high availability in multi-stage data networks using adaptive flow-based routing |
US8050180B2 (en) | 2003-10-31 | 2011-11-01 | Brocade Communications Systems, Inc. | Network path tracing method |
EP1528478A1 (en) * | 2003-11-03 | 2005-05-04 | Sun Microsystems, Inc. | Generalized addressing scheme for remote direct memory access enabled devices |
US7613184B2 (en) | 2003-11-07 | 2009-11-03 | Alcatel Lucent | Method and apparatus for performing scalable selective backpressure in packet-switched networks using internal tags |
US20050108444A1 (en) | 2003-11-19 | 2005-05-19 | Flauaus Gary R. | Method of detecting and monitoring fabric congestion |
US20050129039A1 (en) * | 2003-12-11 | 2005-06-16 | International Business Machines Corporation | RDMA network interface controller with cut-through implementation for aligned DDP segments |
US7912979B2 (en) * | 2003-12-11 | 2011-03-22 | International Business Machines Corporation | In-order delivery of plurality of RDMA messages |
US7441006B2 (en) | 2003-12-11 | 2008-10-21 | International Business Machines Corporation | Reducing number of write operations relative to delivery of out-of-order RDMA send messages by managing reference counter |
US7385985B2 (en) * | 2003-12-31 | 2008-06-10 | Alcatel Lucent | Parallel data link layer controllers in a network switching device |
JP4551331B2 (ja) * | 2004-01-15 | 2010-09-29 | パナソニック株式会社 | 動的ネットワーク管理装置及び動的ネットワーク管理方法 |
US7774461B2 (en) | 2004-02-18 | 2010-08-10 | Fortinet, Inc. | Mechanism for determining a congestion metric for a path in a network |
JP4521206B2 (ja) * | 2004-03-01 | 2010-08-11 | 株式会社日立製作所 | ネットワークストレージシステム、コマンドコントローラ、及びネットワークストレージシステムにおけるコマンド制御方法 |
GB0404696D0 (en) * | 2004-03-02 | 2004-04-07 | Level 5 Networks Ltd | Dual driver interface |
US8174978B2 (en) | 2004-03-05 | 2012-05-08 | Xyratex Technology Limited | Method for congestion management of a network, a signalling protocol, a switch, an end station and a network |
US7286853B2 (en) | 2004-03-24 | 2007-10-23 | Cisco Technology, Inc. | System and method for aggregating multiple radio interfaces into a single logical bridge interface |
US8081566B1 (en) | 2004-04-19 | 2011-12-20 | Rockstar BIDCO, LLP | Method and apparatus for indicating congestion in a source routed network |
US7826457B2 (en) * | 2004-05-11 | 2010-11-02 | Broadcom Corp. | Method and system for handling out-of-order segments in a wireless system via direct data placement |
US7672243B2 (en) | 2004-06-04 | 2010-03-02 | David Mayhew | System and method to identify and communicate congested flows in a network fabric |
US7639616B1 (en) | 2004-06-08 | 2009-12-29 | Sun Microsystems, Inc. | Adaptive cut-through algorithm |
US7483442B1 (en) | 2004-06-08 | 2009-01-27 | Sun Microsystems, Inc. | VCRC checking and generation |
US20050281282A1 (en) * | 2004-06-21 | 2005-12-22 | Gonzalez Henry J | Internal messaging within a switch |
US7453810B2 (en) | 2004-07-27 | 2008-11-18 | Alcatel Lucent | Method and apparatus for closed loop, out-of-band backpressure mechanism |
US20060067347A1 (en) | 2004-09-29 | 2006-03-30 | Uday Naik | Cell-based queue management in software |
US8353003B2 (en) | 2004-10-01 | 2013-01-08 | Exelis Inc. | System and method for controlling a flow of data a network interface controller to a host processor |
US7633869B1 (en) | 2004-10-18 | 2009-12-15 | Ubicom, Inc. | Automatic network traffic characterization |
US7593329B2 (en) | 2004-10-29 | 2009-09-22 | Broadcom Corporation | Service aware flow control |
US7620071B2 (en) | 2004-11-16 | 2009-11-17 | Intel Corporation | Packet coalescing |
US7826481B2 (en) * | 2004-11-30 | 2010-11-02 | Broadcom Corporation | Network for supporting advance features on legacy components |
DE602004023770D1 (de) | 2004-12-03 | 2009-12-03 | Ericsson Telefon Ab L M | Zwerkknoten |
US8656141B1 (en) * | 2004-12-13 | 2014-02-18 | Massachusetts Institute Of Technology | Architecture and programming in a parallel processing environment with switch-interconnected processors |
US7562366B2 (en) * | 2005-02-03 | 2009-07-14 | Solarflare Communications, Inc. | Transmit completion event batching |
US7831749B2 (en) | 2005-02-03 | 2010-11-09 | Solarflare Communications, Inc. | Including descriptor queue empty events in completion events |
US7464174B1 (en) | 2005-03-07 | 2008-12-09 | Pericom Semiconductor Corp. | Shared network-interface controller (NIC) using advanced switching (AS) turn-pool routing field to select from among multiple contexts for multiple processors |
US7643420B2 (en) | 2005-03-11 | 2010-01-05 | Broadcom Corporation | Method and system for transmission control protocol (TCP) traffic smoothing |
CN101151867B (zh) | 2005-03-31 | 2012-11-07 | 艾利森电话股份有限公司 | 对乱序递送数据的保护 |
EP1875681A1 (en) * | 2005-04-13 | 2008-01-09 | Koninklijke Philips Electronics N.V. | Electronic device and method for flow control |
US7856026B1 (en) | 2005-06-28 | 2010-12-21 | Altera Corporation | Configurable central memory buffered packet switch module for use in a PLD |
US8045454B2 (en) | 2005-09-12 | 2011-10-25 | Cisco Technology, Inc. | Multimedia data flow dropping |
US7733891B2 (en) | 2005-09-12 | 2010-06-08 | Zeugma Systems Inc. | Methods and apparatus to support dynamic allocation of traffic management resources in a network element |
WO2007034184A2 (en) | 2005-09-21 | 2007-03-29 | Level 5 Networks Incorporated | Address encryption/rate pacing |
US7430559B2 (en) | 2005-09-21 | 2008-09-30 | Microsoft Corporation | Generalized idempotent requests |
US8660137B2 (en) | 2005-09-29 | 2014-02-25 | Broadcom Israel Research, Ltd. | Method and system for quality of service and congestion management for converged network interface devices |
US7953002B2 (en) | 2005-11-10 | 2011-05-31 | Broadcom Corporation | Buffer management and flow control mechanism including packet-based dynamic thresholding |
US7873048B1 (en) * | 2005-12-02 | 2011-01-18 | Marvell International Ltd. | Flexible port rate limiting |
US7889762B2 (en) * | 2006-01-19 | 2011-02-15 | Intel-Ne, Inc. | Apparatus and method for in-line insertion and removal of markers |
US7376807B2 (en) | 2006-02-23 | 2008-05-20 | Freescale Semiconductor, Inc. | Data processing system having address translation bypass and method therefor |
US7664904B2 (en) | 2006-03-10 | 2010-02-16 | Ricoh Company, Limited | High speed serial switch fabric performing mapping of traffic classes onto virtual channels |
US20070237082A1 (en) * | 2006-03-31 | 2007-10-11 | Woojong Han | Techniques for sharing connection queues and performing congestion management |
WO2007113474A1 (en) | 2006-04-05 | 2007-10-11 | Xyratex Technology Limited | A method for congestion management of a network, a switch, and a network |
US20070242611A1 (en) | 2006-04-13 | 2007-10-18 | Archer Charles J | Computer Hardware Fault Diagnosis |
US7620791B1 (en) | 2006-04-14 | 2009-11-17 | Tilera Corporation | Mapping memory in a parallel processing environment |
US7577820B1 (en) | 2006-04-14 | 2009-08-18 | Tilera Corporation | Managing data in a parallel processing environment |
US7733781B2 (en) | 2006-04-24 | 2010-06-08 | Broadcom Corporation | Distributed congestion avoidance in a network switching system |
US7596628B2 (en) | 2006-05-01 | 2009-09-29 | Broadcom Corporation | Method and system for transparent TCP offload (TTO) with a user space library |
US20070268825A1 (en) | 2006-05-19 | 2007-11-22 | Michael Corwin | Fine-grain fairness in a hierarchical switched system |
US8082289B2 (en) * | 2006-06-13 | 2011-12-20 | Advanced Cluster Systems, Inc. | Cluster computing support for application programs |
US7693072B2 (en) * | 2006-07-13 | 2010-04-06 | At&T Intellectual Property I, L.P. | Method and apparatus for configuring a network topology with alternative communication paths |
US7836274B2 (en) | 2006-09-05 | 2010-11-16 | Broadcom Corporation | Method and system for combining page buffer list entries to optimize caching of translated addresses |
US7624105B2 (en) | 2006-09-19 | 2009-11-24 | Netlogic Microsystems, Inc. | Search engine having multiple co-processors for performing inexact pattern search operations |
US7839786B2 (en) | 2006-10-06 | 2010-11-23 | International Business Machines Corporation | Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by semi-randomly varying routing policies for different packets |
US7587575B2 (en) | 2006-10-17 | 2009-09-08 | International Business Machines Corporation | Communicating with a memory registration enabled adapter using cached address translations |
US8045456B1 (en) * | 2006-11-27 | 2011-10-25 | Marvell International Ltd. | Hierarchical port-based rate limiting |
US8019940B2 (en) * | 2006-12-06 | 2011-09-13 | Fusion-Io, Inc. | Apparatus, system, and method for a front-end, distributed raid |
US20080147881A1 (en) * | 2006-12-19 | 2008-06-19 | Krishnamurthy Rajaram B | System and method for placing computation inside a network |
US20080155154A1 (en) * | 2006-12-21 | 2008-06-26 | Yuval Kenan | Method and System for Coalescing Task Completions |
US7975120B2 (en) | 2006-12-27 | 2011-07-05 | Freescale Semiconductor, Inc. | Dynamic allocation of message buffers |
US9049095B2 (en) | 2006-12-29 | 2015-06-02 | Alcatel Lucent | Methods and devices for providing ingress routing in selective randomized load balancing |
JP4259581B2 (ja) * | 2007-02-07 | 2009-04-30 | 日立電線株式会社 | スイッチングハブおよびlanシステム |
US7933282B1 (en) | 2007-02-08 | 2011-04-26 | Netlogic Microsystems, Inc. | Packet classification device for storing groups of rules |
US7916718B2 (en) * | 2007-04-19 | 2011-03-29 | Fulcrum Microsystems, Inc. | Flow and congestion control in switch architectures for multi-hop, memory efficient fabrics |
US7864792B2 (en) | 2007-04-20 | 2011-01-04 | Cray, Inc. | Load balancing for communications within a multiprocessor computer system |
US7925795B2 (en) * | 2007-04-30 | 2011-04-12 | Broadcom Corporation | Method and system for configuring a plurality of network interfaces that share a physical interface |
US20080298248A1 (en) * | 2007-05-28 | 2008-12-04 | Guenter Roeck | Method and Apparatus For Computer Network Bandwidth Control and Congestion Management |
US10389736B2 (en) * | 2007-06-12 | 2019-08-20 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US8331387B2 (en) | 2007-06-22 | 2012-12-11 | Broadcom Corporation | Data switching flow control with virtual output queuing |
US8199648B2 (en) * | 2007-07-03 | 2012-06-12 | Cisco Technology, Inc. | Flow control in a variable latency system |
US8478834B2 (en) | 2007-07-12 | 2013-07-02 | International Business Machines Corporation | Low latency, high bandwidth data communications between compute nodes in a parallel computer |
US7936772B2 (en) | 2007-07-13 | 2011-05-03 | International Business Machines Corporation | Enhancement of end-to-end network QoS |
WO2009018232A1 (en) | 2007-07-27 | 2009-02-05 | Redshift Internetworking, Inc | A system and method for unified communications threat management (uctm) for converged voice, video and multi-media over ip flows |
US20140173731A1 (en) * | 2007-07-27 | 2014-06-19 | Redshift Internetworking, Inc. | System and Method for Unified Communications Threat Management (UCTM) for Converged Voice, Video and Multi-Media Over IP Flows |
US8121038B2 (en) | 2007-08-21 | 2012-02-21 | Cisco Technology, Inc. | Backward congestion notification |
US8014387B2 (en) * | 2007-08-27 | 2011-09-06 | International Business Machines Corporation | Providing a fully non-blocking switch in a supernode of a multi-tiered full-graph interconnect architecture |
US8543534B2 (en) | 2007-09-11 | 2013-09-24 | Oracle International Corporation | Concurrency in event processing networks for event server |
CN101399746B (zh) | 2007-09-26 | 2011-03-16 | 华为技术有限公司 | 报文路由方法、系统、设备和选择备份资源的方法、系统 |
CN101431466B (zh) | 2007-11-09 | 2011-04-06 | 华为技术有限公司 | 快速重路由方法及标签交换路由器 |
US7782869B1 (en) | 2007-11-29 | 2010-08-24 | Huawei Technologies Co., Ltd. | Network traffic control for virtual device interfaces |
US9519540B2 (en) * | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US8014278B1 (en) | 2007-12-17 | 2011-09-06 | Force 10 Networks, Inc | Adaptive load balancing between ECMP or LAG port group members |
US8160085B2 (en) | 2007-12-21 | 2012-04-17 | Juniper Networks, Inc. | System and method for dynamically allocating buffers based on priority levels |
US7779148B2 (en) | 2008-02-01 | 2010-08-17 | International Business Machines Corporation | Dynamic routing based on information of not responded active source requests quantity received in broadcast heartbeat signal and stored in local data structure for other processor chips |
US8219778B2 (en) * | 2008-02-27 | 2012-07-10 | Microchip Technology Incorporated | Virtual memory interface |
US8249072B2 (en) | 2009-03-12 | 2012-08-21 | Oracle America, Inc. | Scalable interface for connecting multiple computer systems which performs parallel MPI header matching |
WO2009130218A1 (en) | 2008-04-24 | 2009-10-29 | Xelerated Ab | A traffic manager and a method for a traffic manager |
US8040799B2 (en) | 2008-05-15 | 2011-10-18 | International Business Machines Corporation | Network on chip with minimum guaranteed bandwidth for virtual communications channels |
GB2460070B (en) * | 2008-05-15 | 2010-10-13 | Gnodal Ltd | A method of data delivery across a network |
US8630192B2 (en) * | 2009-01-28 | 2014-01-14 | Headwater Partners I Llc | Verifiable and accurate service usage monitoring for intermediate networking devices |
GB2461132B (en) | 2008-06-27 | 2013-02-13 | Gnodal Ltd | Method of data delivery across a network |
GB2462492B (en) * | 2008-08-14 | 2012-08-15 | Gnodal Ltd | A multi-path network |
US20100049942A1 (en) | 2008-08-20 | 2010-02-25 | John Kim | Dragonfly processor interconnect network |
US8755396B2 (en) | 2008-09-11 | 2014-06-17 | Juniper Networks, Inc. | Methods and apparatus related to flow control within a data center switch fabric |
US7996484B2 (en) | 2008-12-11 | 2011-08-09 | Microsoft Corporation | Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory |
US8103809B1 (en) | 2009-01-16 | 2012-01-24 | F5 Networks, Inc. | Network devices with multiple direct memory access channels and methods thereof |
US20100183024A1 (en) | 2009-01-21 | 2010-07-22 | Brocade Communications Systems, Inc | Simplified rdma over ethernet and fibre channel |
US8510496B1 (en) | 2009-04-27 | 2013-08-13 | Netapp, Inc. | Scheduling access requests for a multi-bank low-latency random read memory device |
US8255475B2 (en) | 2009-04-28 | 2012-08-28 | Mellanox Technologies Ltd. | Network interface device with memory management capabilities |
US8170062B2 (en) * | 2009-04-29 | 2012-05-01 | Intel Corporation | Packetized interface for coupling agents |
WO2010142432A2 (en) | 2009-06-09 | 2010-12-16 | Martin Vorbach | System and method for a cache in a multi-core processor |
JP4688946B2 (ja) | 2009-06-15 | 2011-05-25 | 富士通株式会社 | スイッチ及びアドレス学習方法 |
CA2741083C (en) | 2009-06-26 | 2017-02-21 | Telekom Malaysia Berhad | Method and system for service-based regulation of traffic flow to customer premises devices |
US8605584B2 (en) | 2009-07-02 | 2013-12-10 | Qualcomm Incorporated | Transmission of control information across multiple packets |
US8175107B1 (en) | 2009-08-18 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | Network routing based on MAC address subnetting |
CN101651625B (zh) | 2009-09-03 | 2011-09-21 | 中兴通讯股份有限公司 | 多业务恢复的选路装置及选路方法 |
WO2011030490A1 (ja) * | 2009-09-10 | 2011-03-17 | 日本電気株式会社 | 中継制御装置、中継制御システム、中継制御方法及び中継制御プログラム |
US20110103391A1 (en) * | 2009-10-30 | 2011-05-05 | Smooth-Stone, Inc. C/O Barry Evans | System and method for high-performance, low-power data center interconnect fabric |
KR101638061B1 (ko) | 2009-10-27 | 2016-07-08 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법 |
US8953603B2 (en) | 2009-10-28 | 2015-02-10 | Juniper Networks, Inc. | Methods and apparatus related to a distributed switch fabric |
US8443151B2 (en) | 2009-11-09 | 2013-05-14 | Intel Corporation | Prefetch optimization in shared resource multi-core systems |
TWI416336B (zh) | 2009-11-10 | 2013-11-21 | Realtek Semiconductor Corp | 可共享緩衝器的網路介面卡與緩衝器共享方法 |
US8780926B2 (en) | 2009-12-01 | 2014-07-15 | Polytechnic Institute Of New York University | Updating prefix-compressed tries for IP route lookup |
CN101729609B (zh) | 2009-12-03 | 2012-02-22 | 北京交通大学 | 一种向量交换实现方法 |
US9054996B2 (en) | 2009-12-24 | 2015-06-09 | Juniper Networks, Inc. | Dynamic prioritized fair share scheduling scheme in over-subscribed port scenario |
US8719543B2 (en) | 2009-12-29 | 2014-05-06 | Advanced Micro Devices, Inc. | Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices |
US8285915B2 (en) | 2010-01-13 | 2012-10-09 | International Business Machines Corporation | Relocating page tables and data amongst memory modules in a virtualized environment |
US8280671B2 (en) * | 2010-01-29 | 2012-10-02 | Microsoft Corporation | Compressive data gathering for large-scale wireless sensor networks |
US8295284B1 (en) * | 2010-02-02 | 2012-10-23 | Cisco Technology, Inc. | Dynamic, conditon-based packet redirection |
US8544026B2 (en) | 2010-02-09 | 2013-09-24 | International Business Machines Corporation | Processing data communications messages with input/output control blocks |
US8862682B2 (en) | 2010-02-17 | 2014-10-14 | Emulex Corporation | Accelerated sockets |
US8325723B1 (en) * | 2010-02-25 | 2012-12-04 | Integrated Device Technology, Inc. | Method and apparatus for dynamic traffic management with packet classification |
US9001663B2 (en) | 2010-02-26 | 2015-04-07 | Microsoft Corporation | Communication transport optimized for data center environment |
US20110225297A1 (en) | 2010-03-11 | 2011-09-15 | International Business Machines Corporation | Controlling Access To A Resource In A Distributed Computing System With A Distributed Access Request Queue |
US8971345B1 (en) | 2010-03-22 | 2015-03-03 | Riverbed Technology, Inc. | Method and apparatus for scheduling a heterogeneous communication flow |
US8606979B2 (en) * | 2010-03-29 | 2013-12-10 | International Business Machines Corporation | Distributed administration of a lock for an operational group of compute nodes in a hierarchical tree structured network |
US8379642B2 (en) * | 2010-04-26 | 2013-02-19 | International Business Machines Corporation | Multicasting using a multitiered distributed virtual bridge hierarchy |
US9007895B2 (en) | 2010-04-30 | 2015-04-14 | Hewlett-Packard Development Company, L.P. | Method for routing data packets in a fat tree network |
EP2569916B1 (en) | 2010-05-09 | 2016-01-20 | Citrix Systems Inc. | Systems and methods for allocation of classes of service to network connections corresponding to virtual channels |
US8335157B2 (en) | 2010-05-17 | 2012-12-18 | Cisco Technology, Inc. | Adaptive queue-management |
US8489859B2 (en) * | 2010-05-28 | 2013-07-16 | International Business Machines Corporation | Performing a deterministic reduction operation in a compute node organized into a branched tree topology |
US8949577B2 (en) * | 2010-05-28 | 2015-02-03 | International Business Machines Corporation | Performing a deterministic reduction operation in a parallel computer |
US9065773B2 (en) | 2010-06-22 | 2015-06-23 | Juniper Networks, Inc. | Methods and apparatus for virtual channel flow control associated with a switch fabric |
US8898324B2 (en) | 2010-06-24 | 2014-11-25 | International Business Machines Corporation | Data access management in a hybrid memory server |
US8719455B2 (en) | 2010-06-28 | 2014-05-06 | International Business Machines Corporation | DMA-based acceleration of command push buffer between host and target devices |
JP5498889B2 (ja) * | 2010-08-06 | 2014-05-21 | アラクサラネットワークス株式会社 | パケット中継装置および輻輳制御方法 |
US9241323B2 (en) | 2010-08-19 | 2016-01-19 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for transport format selection in wireless communication system |
US20120102506A1 (en) | 2010-10-20 | 2012-04-26 | Microsoft Corporation | Web service patterns for globally distributed service fabric |
JP5860670B2 (ja) | 2010-11-05 | 2016-02-16 | インテル コーポレイション | Dragonflyプロセッサ相互接続ネットワークにおけるテーブル駆動型ルーティング |
JP5913912B2 (ja) | 2010-11-05 | 2016-04-27 | インテル コーポレイション | Dragonflyプロセッサ相互接続ネットワークにおける革新的な適応型ルーティング |
US8473783B2 (en) | 2010-11-09 | 2013-06-25 | International Business Machines Corporation | Fault tolerance in distributed systems |
US8533285B2 (en) * | 2010-12-01 | 2013-09-10 | Cisco Technology, Inc. | Directing data flows in data centers with clustering services |
WO2012078157A1 (en) | 2010-12-09 | 2012-06-14 | Intel Corporation | Method and apparatus for managing application state in a network interface controller in a high performance computing system |
US8996644B2 (en) | 2010-12-09 | 2015-03-31 | Solarflare Communications, Inc. | Encapsulated accelerator |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
US9047178B2 (en) * | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US9218278B2 (en) | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
WO2012082792A2 (en) * | 2010-12-13 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for auto-commit memory |
US9008113B2 (en) * | 2010-12-20 | 2015-04-14 | Solarflare Communications, Inc. | Mapped FIFO buffering |
US8462632B1 (en) | 2010-12-28 | 2013-06-11 | Amazon Technologies, Inc. | Network traffic control |
US8780896B2 (en) * | 2010-12-29 | 2014-07-15 | Juniper Networks, Inc. | Methods and apparatus for validation of equal cost multi path (ECMP) paths in a switch fabric system |
US20120170462A1 (en) | 2011-01-05 | 2012-07-05 | Alcatel Lucent Usa Inc. | Traffic flow control based on vlan and priority |
KR20120082739A (ko) | 2011-01-14 | 2012-07-24 | 한국과학기술원 | 멀티 라디오 모바일 애드혹 네트워크에서의 링크 품질 기반 라우팅 방법 |
DE102011009518B4 (de) | 2011-01-26 | 2013-09-12 | Ruprecht-Karls-Universität Heidelberg | Schaltungsanordnung für Verbindungsschnittstelle |
US8467294B2 (en) * | 2011-02-11 | 2013-06-18 | Cisco Technology, Inc. | Dynamic load balancing for port groups |
US20120213118A1 (en) | 2011-02-18 | 2012-08-23 | Lindsay Steven B | Method and system for network interface controller (nic) address resolution protocol (arp) batching |
US8982688B2 (en) * | 2011-03-09 | 2015-03-17 | Cray Inc | Congestion abatement in a network interconnect |
US8953442B2 (en) * | 2011-03-09 | 2015-02-10 | Cray Inc. | Congestion detection in a network interconnect |
US9716659B2 (en) | 2011-03-23 | 2017-07-25 | Hughes Network Systems, Llc | System and method for providing improved quality of service over broadband networks |
US8644157B2 (en) | 2011-03-28 | 2014-02-04 | Citrix Systems, Inc. | Systems and methods for handling NIC congestion via NIC aware application |
JP5200197B2 (ja) | 2011-03-28 | 2013-05-15 | パナソニック株式会社 | 中継器、中継器の制御方法、およびプログラム |
EP2692096A1 (en) | 2011-03-29 | 2014-02-05 | NEC Europe Ltd. | User traffic accountability under congestion in flow-based multi-layer switches |
US8677031B2 (en) | 2011-03-31 | 2014-03-18 | Intel Corporation | Facilitating, at least in part, by circuitry, accessing of at least one controller command interface |
US9154400B2 (en) | 2011-05-10 | 2015-10-06 | Cray Inc. | Dynamically updating routing information while avoiding deadlocks and preserving packet order after a configuration change |
US9225628B2 (en) | 2011-05-24 | 2015-12-29 | Mellanox Technologies Ltd. | Topology-based consolidation of link state information |
US8804752B2 (en) | 2011-05-31 | 2014-08-12 | Oracle International Corporation | Method and system for temporary data unit storage on infiniband host channel adaptor |
US8553683B2 (en) | 2011-07-05 | 2013-10-08 | Plx Technology, Inc. | Three dimensional fat tree networks |
US11636031B2 (en) | 2011-08-11 | 2023-04-25 | Pure Storage, Inc. | Optimized inline deduplication |
US8711867B2 (en) * | 2011-08-26 | 2014-04-29 | Sonics, Inc. | Credit flow control scheme in a router with flexible link widths utilizing minimal storage |
US8694994B1 (en) | 2011-09-07 | 2014-04-08 | Amazon Technologies, Inc. | Optimization of packet processing by delaying a processor from entering an idle state |
US8713240B2 (en) * | 2011-09-29 | 2014-04-29 | Intel Corporation | Providing multiple decode options for a system-on-chip (SoC) fabric |
US20130083660A1 (en) | 2011-10-03 | 2013-04-04 | Cisco Technology, Inc. | Per-Group ECMP for Multidestination Traffic in DCE/TRILL Networks |
US8811183B1 (en) | 2011-10-04 | 2014-08-19 | Juniper Networks, Inc. | Methods and apparatus for multi-path flow control within a multi-stage switch fabric |
US9065745B2 (en) * | 2011-10-06 | 2015-06-23 | International Business Machines Corporation | Network traffic distribution |
US9143467B2 (en) | 2011-10-25 | 2015-09-22 | Mellanox Technologies Ltd. | Network interface controller with circular receive buffer |
US9444749B2 (en) | 2011-10-28 | 2016-09-13 | Telecom Italia S.P.A. | Apparatus and method for selectively delaying network data flows |
ES2491669T3 (es) | 2011-11-11 | 2014-09-08 | Itron, Inc. | Encaminamiento de comunicaciones en función de la calidad de enlaces |
US8966457B2 (en) * | 2011-11-15 | 2015-02-24 | Global Supercomputing Corporation | Method and system for converting a single-threaded software program into an application-specific supercomputer |
US8948175B2 (en) | 2011-11-18 | 2015-02-03 | Ciena Corporation | Selecting a link of a link group based on contents of a concealed header |
US9065749B2 (en) * | 2011-11-21 | 2015-06-23 | Qualcomm Incorporated | Hybrid networking path selection and load balancing |
CN104115129B (zh) | 2011-12-21 | 2017-09-08 | 英特尔公司 | 用于从处理器到存储器子系统智能刷新数据的系统和方法 |
US9055114B1 (en) | 2011-12-22 | 2015-06-09 | Juniper Networks, Inc. | Packet parsing and control packet classification |
US8996840B2 (en) | 2011-12-23 | 2015-03-31 | International Business Machines Corporation | I/O controller and method for operating an I/O controller |
US9467512B2 (en) | 2012-01-17 | 2016-10-11 | Intel Corporation | Techniques for remote client access to a storage medium coupled with a server |
US8908682B2 (en) * | 2012-02-02 | 2014-12-09 | International Business Machines Corporation | Switch discovery protocol for a distributed fabric system |
US8868735B2 (en) * | 2012-02-02 | 2014-10-21 | Cisco Technology, Inc. | Wide area network optimization |
US8767772B2 (en) | 2012-02-03 | 2014-07-01 | Apple Inc. | System and method for scheduling packet transmission on a client device |
US9007901B2 (en) | 2012-02-09 | 2015-04-14 | Alcatel Lucent | Method and apparatus providing flow control using on-off signals in high delay networks |
US9960872B2 (en) | 2012-03-08 | 2018-05-01 | Marvell International Ltd. | Systems and methods for performing a soft-block of a queue based on a size of a remaining period of a guard band |
US9088496B2 (en) | 2012-03-16 | 2015-07-21 | Brocade Communications Systems, Inc. | Packet tracing through control and data plane operations |
US9231888B2 (en) | 2012-05-11 | 2016-01-05 | Oracle International Corporation | System and method for routing traffic between distinct InfiniBand subnets based on source routing |
WO2013171588A1 (en) | 2012-05-15 | 2013-11-21 | Marvell World Trade Ltd. | Extended priority for ethernet packets |
US10936591B2 (en) | 2012-05-15 | 2021-03-02 | Microsoft Technology Licensing, Llc | Idempotent command execution |
US9122810B2 (en) | 2012-05-18 | 2015-09-01 | Dell Products, Lp | System and method for providing input/output functionality to a processing node |
US9898317B2 (en) | 2012-06-06 | 2018-02-20 | Juniper Networks, Inc. | Physical path determination for virtual network packet flows |
US8817807B2 (en) | 2012-06-11 | 2014-08-26 | Cisco Technology, Inc. | System and method for distributed resource control of switches in a network environment |
US8989049B2 (en) | 2012-06-15 | 2015-03-24 | Cisco Technology, Inc. | System and method for virtual portchannel load balancing in a trill network |
JP2014007681A (ja) * | 2012-06-27 | 2014-01-16 | Hitachi Ltd | ネットワークシステム、および、その管理装置、そのスイッチ |
ES2395955B2 (es) * | 2012-07-05 | 2014-01-22 | Universidad De Cantabria | Método de encaminamiento adaptativo en redes jerárquicas |
CN104509047A (zh) | 2012-07-31 | 2015-04-08 | 华为技术有限公司 | 报文传输系统中分配报文缓冲区的方法 |
US9049137B1 (en) | 2012-08-06 | 2015-06-02 | Google Inc. | Hash based ECMP load balancing with non-power-of-2 port group sizes |
US9635121B2 (en) | 2012-08-06 | 2017-04-25 | Paypal, Inc. | Systems and methods for caching HTTP post requests and responses |
US9705804B2 (en) | 2012-08-30 | 2017-07-11 | Sonus Networks, Inc. | Opportunistic wireless resource utilization using dynamic traffic shaping |
US9350665B2 (en) | 2012-08-31 | 2016-05-24 | Cisco Technology, Inc. | Congestion mitigation and avoidance |
CN103259727B (zh) * | 2012-08-31 | 2016-12-28 | 杭州华三通信技术有限公司 | 一种报文转发方法及设备 |
US9424214B2 (en) | 2012-09-28 | 2016-08-23 | Mellanox Technologies Ltd. | Network interface controller with direct connection to host memory |
US9049233B2 (en) | 2012-10-05 | 2015-06-02 | Cisco Technology, Inc. | MPLS segment-routing |
US9215093B2 (en) | 2012-10-30 | 2015-12-15 | Futurewei Technologies, Inc. | Encoding packets for transport over SDN networks |
CN102932203B (zh) | 2012-10-31 | 2015-06-10 | 东软集团股份有限公司 | 异构平台间的深度报文检测方法及装置 |
US9424228B2 (en) | 2012-11-01 | 2016-08-23 | Ezchip Technologies Ltd. | High performance, scalable multi chip interconnect |
US9286620B2 (en) | 2012-11-05 | 2016-03-15 | Broadcom Corporation | Annotated tracing for data networks |
JP5958293B2 (ja) | 2012-11-14 | 2016-07-27 | 富士通株式会社 | 通信方法、通信プログラム、および、ノード装置 |
US8989017B2 (en) | 2012-12-14 | 2015-03-24 | Intel Corporation | Network congestion management by packet circulation |
US9094321B2 (en) | 2013-01-03 | 2015-07-28 | International Business Machines Corporation | Energy management for communication network elements |
US9154438B2 (en) | 2013-01-24 | 2015-10-06 | Cisco Technology, Inc. | Port-based fairness protocol for a network element |
US9460178B2 (en) | 2013-01-25 | 2016-10-04 | Dell Products L.P. | Synchronized storage system operation |
US9634940B2 (en) * | 2013-01-31 | 2017-04-25 | Mellanox Technologies, Ltd. | Adaptive routing using inter-switch notifications |
US9544220B2 (en) * | 2013-02-05 | 2017-01-10 | Cisco Technology, Inc. | Binary search-based approach in routing-metric agnostic topologies for node selection to enable effective learning machine mechanisms |
US9705957B2 (en) | 2013-03-04 | 2017-07-11 | Open Garden Inc. | Virtual channel joining |
US10275375B2 (en) | 2013-03-10 | 2019-04-30 | Mellanox Technologies, Ltd. | Network interface controller with compression capabilities |
US11966355B2 (en) | 2013-03-10 | 2024-04-23 | Mellanox Technologies, Ltd. | Network adapter with a common queue for both networking and data manipulation work requests |
US9053012B1 (en) | 2013-03-15 | 2015-06-09 | Pmc-Sierra, Inc. | Systems and methods for storing data for solid-state memory |
US9444748B2 (en) | 2013-03-15 | 2016-09-13 | International Business Machines Corporation | Scalable flow and congestion control with OpenFlow |
US9769074B2 (en) | 2013-03-15 | 2017-09-19 | International Business Machines Corporation | Network per-flow rate limiting |
US9253096B2 (en) | 2013-03-15 | 2016-02-02 | International Business Machines Corporation | Bypassing congestion points in a converged enhanced ethernet fabric |
US9692706B2 (en) | 2013-04-15 | 2017-06-27 | International Business Machines Corporation | Virtual enhanced transmission selection (VETS) for lossless ethernet |
US9571402B2 (en) | 2013-05-03 | 2017-02-14 | Netspeed Systems | Congestion control and QoS in NoC by regulating the injection traffic |
US9075557B2 (en) * | 2013-05-15 | 2015-07-07 | SanDisk Technologies, Inc. | Virtual channel for data transfers between devices |
US9788210B2 (en) | 2013-06-11 | 2017-10-10 | Sonus Networks, Inc. | Methods and systems for adaptive buffer allocations in systems with adaptive resource allocation |
US9405724B2 (en) | 2013-06-28 | 2016-08-02 | Intel Corporation | Reconfigurable apparatus for hierarchical collective networks with bypass mode |
CN105247821B (zh) | 2013-06-28 | 2018-11-06 | 英特尔公司 | 用于利用自适应路由来控制资源利用的机制 |
US9674098B2 (en) | 2013-07-02 | 2017-06-06 | Intel Corporation | Credit flow control for ethernet |
US9197529B2 (en) * | 2013-07-12 | 2015-11-24 | Nicira, Inc. | Tracing network packets through logical and physical networks |
US9282041B2 (en) * | 2013-07-16 | 2016-03-08 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Congestion profiling of computer network devices |
US9467522B2 (en) | 2013-07-19 | 2016-10-11 | Broadcom Corporation | Ingress based headroom buffering for switch architectures |
US9781041B2 (en) | 2013-07-24 | 2017-10-03 | Dell Products Lp | Systems and methods for native network interface controller (NIC) teaming load balancing |
KR101571978B1 (ko) | 2013-08-28 | 2015-11-25 | 주식회사 케이티 | 멀티 플로우 그룹핑에 기반한 대역폭 제공 방법 |
US9509550B2 (en) | 2013-08-30 | 2016-11-29 | Microsoft Technology Licensing, Llc | Generating an idempotent workflow |
US10261813B2 (en) | 2013-09-25 | 2019-04-16 | Arm Limited | Data processing system for dispatching tasks from a plurality of applications to a shared resource provided by an accelerator |
US9239804B2 (en) | 2013-10-03 | 2016-01-19 | Advanced Micro Devices, Inc. | Back-off mechanism for a peripheral page request log |
US20150103667A1 (en) | 2013-10-13 | 2015-04-16 | Mellanox Technologies Ltd. | Detection of root and victim network congestion |
US10089220B1 (en) | 2013-11-01 | 2018-10-02 | Amazon Technologies, Inc. | Saving state information resulting from non-idempotent operations in non-volatile system memory |
US9740606B1 (en) | 2013-11-01 | 2017-08-22 | Amazon Technologies, Inc. | Reliable distributed messaging using non-volatile system memory |
EP3605971B1 (en) | 2013-11-05 | 2021-10-13 | Cisco Technology, Inc. | Network fabric overlay |
CN104639470B (zh) * | 2013-11-14 | 2019-05-31 | 中兴通讯股份有限公司 | 流标识封装方法及系统 |
US9674042B2 (en) | 2013-11-25 | 2017-06-06 | Amazon Technologies, Inc. | Centralized resource usage visualization service for large-scale network topologies |
US9762497B2 (en) | 2013-11-26 | 2017-09-12 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System, method and apparatus for network congestion management and network resource isolation |
US9419908B2 (en) | 2013-11-27 | 2016-08-16 | Cisco Technology, Inc. | Network congestion management using flow rebalancing |
US9311044B2 (en) | 2013-12-04 | 2016-04-12 | Oracle International Corporation | System and method for supporting efficient buffer usage with a single external memory interface |
US9548924B2 (en) | 2013-12-09 | 2017-01-17 | Nicira, Inc. | Detecting an elephant flow based on the size of a packet |
US9455915B2 (en) | 2013-12-12 | 2016-09-27 | Broadcom Corporation | Hierarchical congestion control with congested flow identification hardware |
US9648148B2 (en) | 2013-12-24 | 2017-05-09 | Intel Corporation | Method, apparatus, and system for QoS within high performance fabrics |
US9495204B2 (en) | 2014-01-06 | 2016-11-15 | International Business Machines Corporation | Constructing a logical tree topology in a parallel computer |
KR102171348B1 (ko) * | 2014-01-08 | 2020-10-29 | 삼성전자주식회사 | 어플리케이션 검출 방법 및 장치 |
US9513926B2 (en) | 2014-01-08 | 2016-12-06 | Cavium, Inc. | Floating mask generation for network packet flow |
US9391844B2 (en) | 2014-01-15 | 2016-07-12 | Dell Products, L.P. | System and method for network topology management |
CN104811396A (zh) * | 2014-01-23 | 2015-07-29 | 中兴通讯股份有限公司 | 一种负荷均衡的方法及系统 |
JP2015146115A (ja) * | 2014-02-03 | 2015-08-13 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
US9753883B2 (en) | 2014-02-04 | 2017-09-05 | Netronome Systems, Inc. | Network interface device that maps host bus writes of configuration information for virtual NIDs into a small transactional memory |
US9628382B2 (en) * | 2014-02-05 | 2017-04-18 | Intel Corporation | Reliable transport of ethernet packet data with wire-speed and packet data rate match |
KR102093296B1 (ko) * | 2014-02-11 | 2020-03-25 | 한국전자통신연구원 | 시간 확정적으로 대용량 경로를 전환하는 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법 |
US9584637B2 (en) | 2014-02-19 | 2017-02-28 | Netronome Systems, Inc. | Guaranteed in-order packet delivery |
US20150244804A1 (en) | 2014-02-21 | 2015-08-27 | Coho Data, Inc. | Methods, systems and devices for parallel network interface data structures with differential data storage service capabilities |
US9294385B2 (en) * | 2014-03-03 | 2016-03-22 | International Business Machines Corporation | Deadlock-free routing in fat tree networks |
KR101587379B1 (ko) | 2014-03-04 | 2016-01-20 | 주식회사 케이티 | 큐 사이즈의 동적 제어 방법 및 이를 수행하는 장치 |
US9762488B2 (en) | 2014-03-06 | 2017-09-12 | Cisco Technology, Inc. | Segment routing extension headers |
US9838500B1 (en) | 2014-03-11 | 2017-12-05 | Marvell Israel (M.I.S.L) Ltd. | Network device and method for packet processing |
US9325641B2 (en) | 2014-03-13 | 2016-04-26 | Mellanox Technologies Ltd. | Buffering schemes for communication over long haul links |
US9727503B2 (en) | 2014-03-17 | 2017-08-08 | Mellanox Technologies, Ltd. | Storage system and server |
JP6321194B2 (ja) | 2014-03-20 | 2018-05-09 | インテル コーポレイション | リンクインタフェースの使用されていないハードウェアの電力消費を制御するための方法、装置及びシステム |
US20160154756A1 (en) | 2014-03-31 | 2016-06-02 | Avago Technologies General Ip (Singapore) Pte. Ltd | Unordered multi-path routing in a pcie express fabric environment |
US9846658B2 (en) * | 2014-04-21 | 2017-12-19 | Cisco Technology, Inc. | Dynamic temporary use of packet memory as resource memory |
CN103973482A (zh) * | 2014-04-22 | 2014-08-06 | 南京航空航天大学 | 具有全局通信事务管理能力的容错片上网络系统及方法 |
WO2015167479A1 (en) | 2014-04-29 | 2015-11-05 | Hewlett-Packard Development Company, L.P. | Efficient routing in software defined networks |
US10031857B2 (en) | 2014-05-27 | 2018-07-24 | Mellanox Technologies, Ltd. | Address translation services for direct accessing of local memory over a network fabric |
US10261814B2 (en) | 2014-06-23 | 2019-04-16 | Intel Corporation | Local service chaining with virtual machines and virtualized containers in software defined networking |
US9930097B2 (en) * | 2014-07-03 | 2018-03-27 | Qualcomm Incorporated | Transport accelerator systems and methods |
US9519605B2 (en) | 2014-07-08 | 2016-12-13 | International Business Machines Corporation | Interconnection network topology for large scale high performance computing (HPC) systems |
US9369397B1 (en) * | 2014-07-16 | 2016-06-14 | Juniper Networks, Inc. | Apparatus to achieve quality of service (QoS) without requiring fabric speedup |
US9699067B2 (en) | 2014-07-22 | 2017-07-04 | Mellanox Technologies, Ltd. | Dragonfly plus: communication over bipartite node groups connected by a mesh network |
US10257083B2 (en) | 2014-08-29 | 2019-04-09 | Cisco Technology, Inc. | Flow cache based mechanism of packet redirection in multiple border routers for application awareness |
US9742855B2 (en) | 2014-09-04 | 2017-08-22 | Mellanox Technologies, Ltd. | Hybrid tag matching |
US20170251394A1 (en) | 2014-09-10 | 2017-08-31 | Telefonaktiebolaget Lm Ericsson (Publ) | Explicit Congestion Notification Marking of User Traffic |
US9548872B2 (en) | 2014-09-26 | 2017-01-17 | Dell Products, Lp | Reducing internal fabric congestion in leaf-spine switch fabric |
JP6403140B2 (ja) | 2014-10-22 | 2018-10-10 | 華為技術有限公司Huawei Technologies Co.,Ltd. | オブジェクト・ベース記憶システムにおけるサービス・フロー制御のための方法、コントローラ、およびシステム |
US10033641B2 (en) | 2014-11-06 | 2018-07-24 | Juniper Networks, Inc. | Deterministic and optimized bit index explicit replication (BIER) forwarding |
US10153967B2 (en) | 2014-11-06 | 2018-12-11 | Juniper Networks, Inc. | Deterministic and optimized bit index explicit replication (BIER) forwarding |
GB2532052A (en) | 2014-11-07 | 2016-05-11 | Ibm | NC-SI port controller |
GB2532053A (en) | 2014-11-07 | 2016-05-11 | Ibm | NC-SI port controller |
US10148738B2 (en) | 2014-11-12 | 2018-12-04 | Zuora, Inc. | System and method for equitable processing of asynchronous messages in a multi-tenant platform |
US10050896B2 (en) | 2014-11-14 | 2018-08-14 | Cavium, Inc. | Management of an over-subscribed shared buffer |
US10003544B2 (en) | 2014-12-11 | 2018-06-19 | Futurewei Technologies, Inc. | Method and apparatus for priority flow and congestion control in ethernet network |
US9369200B1 (en) | 2014-12-18 | 2016-06-14 | Juniper Networks, Inc. | Network controller having predictable analytics and failure avoidance in packet-optical networks |
US10148575B2 (en) | 2014-12-22 | 2018-12-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Adaptive load balancing in packet processing |
US9800508B2 (en) | 2015-01-09 | 2017-10-24 | Dell Products L.P. | System and method of flow shaping to reduce impact of incast communications |
US9894000B2 (en) * | 2015-01-30 | 2018-02-13 | Huawei Technologies Co., Ltd | Method for forwarding data packets in a network and programmable ingress and egress nodes therefore |
US10409681B2 (en) | 2015-01-30 | 2019-09-10 | Hewlett Packard Enterprise Development Lp | Non-idempotent primitives in fault-tolerant memory |
US9894013B2 (en) * | 2015-02-03 | 2018-02-13 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Early queueing network device |
US9594521B2 (en) | 2015-02-23 | 2017-03-14 | Advanced Micro Devices, Inc. | Scheduling of data migration |
US10341221B2 (en) | 2015-02-26 | 2019-07-02 | Cisco Technology, Inc. | Traffic engineering for bit indexed explicit replication |
US10009270B1 (en) | 2015-03-01 | 2018-06-26 | Netronome Systems, Inc. | Modular and partitioned SDN switch |
JP6672340B2 (ja) | 2015-03-03 | 2020-03-25 | オパンガ ネットワークス,インコーポレイテッド | データフローを調整するシステム及び方法 |
US10033574B2 (en) | 2015-03-20 | 2018-07-24 | Oracle International Corporation | System and method for efficient network reconfiguration in fat-trees |
WO2016153506A1 (en) | 2015-03-25 | 2016-09-29 | Hewlett Packard Enterprise Development Lp | Fast failover recovery in software defined networks |
EP3211534B1 (en) | 2015-03-27 | 2020-03-11 | Huawei Technologies Co., Ltd. | Data processing method, memory management unit and memory control device |
US10469368B2 (en) | 2015-03-28 | 2019-11-05 | Intel Corporation | Distributed routing table system with improved support for multiple network topologies |
US10305772B2 (en) | 2015-03-30 | 2019-05-28 | Mellanox Technologies, Ltd. | Using a single work item to send multiple messages |
US9444769B1 (en) * | 2015-03-31 | 2016-09-13 | Chelsio Communications, Inc. | Method for out of order placement in PDU-oriented protocols |
US9876698B2 (en) | 2015-04-09 | 2018-01-23 | International Business Machines Corporation | Interconnect congestion control in a storage grid |
US10180792B1 (en) * | 2015-04-30 | 2019-01-15 | Seagate Technology Llc | Cache management in data storage systems |
US9842083B2 (en) | 2015-05-18 | 2017-12-12 | Red Hat Israel, Ltd. | Using completion queues for RDMA event detection |
US10158712B2 (en) * | 2015-06-04 | 2018-12-18 | Advanced Micro Devices, Inc. | Source-side resource request network admission control |
US9847936B2 (en) * | 2015-06-25 | 2017-12-19 | Intel Corporation | Apparatus and method for hardware-accelerated packet processing |
US9674090B2 (en) | 2015-06-26 | 2017-06-06 | Microsoft Technology Licensing, Llc | In-line network accelerator |
US9888095B2 (en) | 2015-06-26 | 2018-02-06 | Microsoft Technology Licensing, Llc | Lightweight transport protocol |
US9942171B2 (en) | 2015-07-02 | 2018-04-10 | Arista Networks, Inc. | Network data processor having per-input port virtual output queues |
KR102430187B1 (ko) * | 2015-07-08 | 2022-08-05 | 삼성전자주식회사 | RDMA NVMe 디바이스의 구현 방법 |
EP3323227B1 (en) * | 2015-07-16 | 2020-06-03 | Telefonaktiebolaget LM Ericsson (PUBL) | Restoring an mpls ring network |
US9626232B2 (en) | 2015-07-23 | 2017-04-18 | Arm Limited | Event queue management |
US9830273B2 (en) | 2015-07-30 | 2017-11-28 | Netapp, Inc. | Deduplicated host cache flush to remote storage |
US10009277B2 (en) | 2015-08-04 | 2018-06-26 | Mellanox Technologies Tlv Ltd. | Backward congestion notification in layer-3 networks |
US20170048144A1 (en) | 2015-08-13 | 2017-02-16 | Futurewei Technologies, Inc. | Congestion Avoidance Traffic Steering (CATS) in Datacenter Networks |
US9749266B2 (en) | 2015-08-28 | 2017-08-29 | International Business Machines Corporation | Coalescing messages using a network interface controller |
US10284383B2 (en) * | 2015-08-31 | 2019-05-07 | Mellanox Technologies, Ltd. | Aggregation protocol |
EP3345353B1 (en) * | 2015-09-02 | 2021-11-03 | Telefonaktiebolaget LM Ericsson (publ) | Handling of acknowledgement in wireless radio ad-hoc networks |
US10193824B2 (en) | 2015-09-06 | 2019-01-29 | RISC Networks, LLC | Systems and methods for intelligent application grouping |
CN106559336B (zh) | 2015-09-24 | 2020-04-03 | 新华三技术有限公司 | 应用于sdn中的路径倒换方法、转发表项下发方法和装置 |
US20170093770A1 (en) | 2015-09-25 | 2017-03-30 | Intel Corporation | Technologies for receive side message inspection and filtering |
US10120809B2 (en) | 2015-09-26 | 2018-11-06 | Intel Corporation | Method, apparatus, and system for allocating cache using traffic class |
US10216533B2 (en) | 2015-10-01 | 2019-02-26 | Altera Corporation | Efficient virtual I/O address translation |
US10652112B2 (en) * | 2015-10-02 | 2020-05-12 | Keysight Technologies Singapore (Sales) Pte. Ltd. | Network traffic pre-classification within VM platforms in virtual processing environments |
US10423625B2 (en) | 2015-10-08 | 2019-09-24 | Samsung Sds America, Inc. | Exactly-once semantics for streaming analytics in non-idempotent output operations |
US10063481B1 (en) | 2015-11-10 | 2018-08-28 | U.S. Department Of Energy | Network endpoint congestion management |
US20170153852A1 (en) * | 2015-11-30 | 2017-06-01 | Mediatek Inc. | Multi-port memory controller capable of serving multiple access requests by accessing different memory banks of multi-bank packet buffer and associated packet storage design |
US10423568B2 (en) | 2015-12-21 | 2019-09-24 | Microsemi Solutions (U.S.), Inc. | Apparatus and method for transferring data and commands in a memory management environment |
US10135711B2 (en) * | 2015-12-22 | 2018-11-20 | Intel Corporation | Technologies for sideband performance tracing of network traffic |
US20170187587A1 (en) * | 2015-12-26 | 2017-06-29 | David Keppel | Technologies for inline network traffic performance tracing |
US10498654B2 (en) * | 2015-12-28 | 2019-12-03 | Amazon Technologies, Inc. | Multi-path transport design |
US9985904B2 (en) | 2015-12-29 | 2018-05-29 | Amazon Technolgies, Inc. | Reliable, out-of-order transmission of packets |
US9959214B1 (en) * | 2015-12-29 | 2018-05-01 | Amazon Technologies, Inc. | Emulated translation unit using a management processor |
US9985903B2 (en) | 2015-12-29 | 2018-05-29 | Amazon Technologies, Inc. | Reliable, out-of-order receipt of packets |
CN106936713B (zh) * | 2015-12-30 | 2020-02-21 | 华为技术有限公司 | 一种标签管理方法,数据流处理方法及设备 |
US10331569B2 (en) * | 2016-01-05 | 2019-06-25 | Friday Harbor Llc | Packet router buffer management |
US10616118B2 (en) * | 2016-01-28 | 2020-04-07 | Oracle International Corporation | System and method for supporting aggressive credit waiting in a high performance computing environment |
US10708819B2 (en) * | 2016-02-25 | 2020-07-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Back-pressure control in a telecommunications network |
US10175891B1 (en) * | 2016-03-15 | 2019-01-08 | Pavilion Data Systems, Inc. | Minimizing read latency for solid state drives |
US10079782B2 (en) | 2016-03-31 | 2018-09-18 | Mellanox Technologies Tlv Ltd. | Facilitating communication of data packets using credit-based flow control |
US10120814B2 (en) | 2016-04-01 | 2018-11-06 | Intel Corporation | Apparatus and method for lazy translation lookaside buffer (TLB) coherence |
US9985891B2 (en) | 2016-04-07 | 2018-05-29 | Oracle International Corporation | Congestion management in distributed systems using autonomous self-regulation |
US10461864B2 (en) | 2016-04-14 | 2019-10-29 | Calix, Inc. | Channel bonding techniques in a network |
JP6750985B2 (ja) | 2016-04-15 | 2020-09-02 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 通信装置および通信方法 |
US10454830B2 (en) | 2016-05-05 | 2019-10-22 | City University Of Hong Kong | System and method for load balancing in a data network |
US20180284758A1 (en) | 2016-05-09 | 2018-10-04 | StrongForce IoT Portfolio 2016, LLC | Methods and systems for industrial internet of things data collection for equipment analysis in an upstream oil and gas environment |
CN107493238A (zh) * | 2016-06-13 | 2017-12-19 | 华为技术有限公司 | 一种网络拥塞控制方法、设备及系统 |
US10430374B2 (en) | 2016-06-29 | 2019-10-01 | Mellanox Technologies, Ltd. | Selective acknowledgement of RDMA packets |
US10331590B2 (en) | 2016-06-30 | 2019-06-25 | Intel Corporation | Graphics processing unit (GPU) as a programmable packet transfer mechanism |
US10305805B2 (en) | 2016-07-01 | 2019-05-28 | Intel Corporation | Technologies for adaptive routing using aggregated congestion information |
US10432532B2 (en) | 2016-07-12 | 2019-10-01 | Cisco Technology, Inc. | Dynamically pinning micro-service to uplink port |
US20180026878A1 (en) | 2016-07-24 | 2018-01-25 | Mellanox Technologies Tlv Ltd. | Scalable deadlock-free deterministic minimal-path routing for dragonfly networks |
US10419808B2 (en) | 2016-09-08 | 2019-09-17 | Gvbb Holdings S.A.R.L. | System and method for scalable physical layer flow of packetized media streams |
US10715446B2 (en) | 2016-09-12 | 2020-07-14 | Huawei Technologies Co., Ltd. | Methods and systems for data center load balancing |
US10061613B1 (en) | 2016-09-23 | 2018-08-28 | Amazon Technologies, Inc. | Idempotent task execution in on-demand network code execution systems |
US10623526B2 (en) | 2016-10-03 | 2020-04-14 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Dynamically configuring multi-mode hardware components based on workload requirements |
US10936533B2 (en) * | 2016-10-18 | 2021-03-02 | Advanced Micro Devices, Inc. | GPU remote communication with triggered operations |
US20180115469A1 (en) | 2016-10-21 | 2018-04-26 | Forward Networks, Inc. | Systems and methods for an interactive network analysis platform |
US10397058B2 (en) * | 2016-10-31 | 2019-08-27 | Cisco Technology, Inc. | Full path diversity for virtual acess point (VAP) enabled networks |
US10425327B2 (en) | 2016-11-10 | 2019-09-24 | Argela Yazilim Ve Bilisim Teknolojileri San Ve Tic. A.S. | System and method for routing in software defined networks using a flow header |
US10656972B2 (en) | 2016-11-10 | 2020-05-19 | International Business Machines Corporation | Managing idempotent operations while interacting with a system of record |
US10084687B1 (en) * | 2016-11-17 | 2018-09-25 | Barefoot Networks, Inc. | Weighted-cost multi-pathing using range lookups |
US20180150256A1 (en) | 2016-11-29 | 2018-05-31 | Intel Corporation | Technologies for data deduplication in disaggregated architectures |
US10423511B2 (en) | 2016-11-29 | 2019-09-24 | International Business Machines Corporation | Packet flow tracing in a parallel processor complex |
US10171369B2 (en) | 2016-12-22 | 2019-01-01 | Huawei Technologies Co., Ltd. | Systems and methods for buffer management |
US11474736B2 (en) | 2016-12-29 | 2022-10-18 | Intel Corporation | Network interface controller with non-volatile random access memory write packet log |
US10326696B2 (en) | 2017-01-02 | 2019-06-18 | Microsoft Technology Licensing, Llc | Transmission of messages by acceleration components configured to accelerate a service |
US10320677B2 (en) | 2017-01-02 | 2019-06-11 | Microsoft Technology Licensing, Llc | Flow control and congestion management for acceleration components configured to accelerate a service |
US10454835B2 (en) | 2017-01-20 | 2019-10-22 | Google Llc | Device and method for scalable traffic shaping with a time-indexed data structure |
US10284472B2 (en) | 2017-01-24 | 2019-05-07 | Cisco Technology, Inc. | Dynamic and compressed trie for use in route lookup |
US10498672B2 (en) | 2017-01-30 | 2019-12-03 | Mellanox Technologies, Ltd. | Mechanism for distributing MPI tag matching |
US10992568B2 (en) | 2017-01-31 | 2021-04-27 | Vmware, Inc. | High performance software-defined core network |
US10402355B2 (en) | 2017-02-08 | 2019-09-03 | Texas Instruments Incorporated | Apparatus and mechanism to bypass PCIe address translation by using alternative routing |
US10389646B2 (en) | 2017-02-15 | 2019-08-20 | Mellanox Technologies Tlv Ltd. | Evading congestion spreading for victim flows |
US10404619B1 (en) | 2017-03-05 | 2019-09-03 | Barefoot Networks, Inc. | Link aggregation group failover for multicast |
US10237206B1 (en) | 2017-03-05 | 2019-03-19 | Barefoot Networks, Inc. | Equal cost multiple path group failover for multicast |
US10360149B2 (en) | 2017-03-10 | 2019-07-23 | Oracle International Corporation | Data structure store in persistent memory |
US10419329B2 (en) | 2017-03-30 | 2019-09-17 | Mellanox Technologies Tlv Ltd. | Switch-based reliable multicast service |
WO2018176393A1 (en) | 2017-03-31 | 2018-10-04 | Intel Corporation | Techniques for virtual machine transfer and resource management |
WO2018184701A1 (en) * | 2017-04-07 | 2018-10-11 | NEC Laboratories Europe GmbH | Method for operating virtual machines on a virtualization platform and corresponding virtualization platform |
US10476629B2 (en) | 2017-05-02 | 2019-11-12 | Juniper Networks, Inc. | Performing upper layer inspection of a flow based on a sampling rate |
KR20240010085A (ko) * | 2017-05-05 | 2024-01-23 | 삼성전자주식회사 | 패킷 데이터 수렴 프로토콜 복제 기능을 지원하는 시스템, 데이터 송신 방법 및 네트워크 장비, 및 부가적 상향링크 반송파 구성 정보를 전송하는 방법 및 장치 그리고 연결 이동성 조정을 수행하는 방법 및 장치 |
CN108809847B (zh) * | 2017-05-05 | 2021-11-19 | 华为技术有限公司 | 实现负载均衡的方法、装置和网络系统 |
US10423357B2 (en) | 2017-05-18 | 2019-09-24 | Avago Technologies International Sales Pte. Limited | Devices and methods for managing memory buffers |
US20180341494A1 (en) | 2017-05-26 | 2018-11-29 | Intel Corporation | Accelerating network security monitoring |
US10862617B2 (en) * | 2017-05-30 | 2020-12-08 | Marvell Asia Pte, Ltd. | Flowlet scheduler for multicore network processors |
US10594456B2 (en) * | 2017-06-16 | 2020-03-17 | Ofinno, Llc | Distributed unit status information |
US10499376B2 (en) * | 2017-06-16 | 2019-12-03 | Kt Corporation | Methods for managing resource based on open interface and apparatuses thereof |
US11197332B2 (en) * | 2017-06-19 | 2021-12-07 | Apple Inc. | Separation of control plane and user plane in new radio (NR) systems |
CN109218215B (zh) * | 2017-06-29 | 2021-11-19 | 华为技术有限公司 | 一种报文传输的方法和网络设备 |
US11362968B2 (en) | 2017-06-30 | 2022-06-14 | Intel Corporation | Technologies for dynamic batch size management |
US10353833B2 (en) | 2017-07-11 | 2019-07-16 | International Business Machines Corporation | Configurable ordering controller for coupling transactions |
US10467159B2 (en) | 2017-07-14 | 2019-11-05 | Arm Limited | Memory node controller |
US10541866B2 (en) | 2017-07-25 | 2020-01-21 | Cisco Technology, Inc. | Detecting and resolving multicast traffic performance issues |
US9853900B1 (en) | 2017-08-07 | 2017-12-26 | Mellanox Technologies Tlv Ltd. | Using consistent hashing for ECMP routing |
KR102380619B1 (ko) * | 2017-08-11 | 2022-03-30 | 삼성전자 주식회사 | 이동 통신 시스템 망에서 혼잡 제어를 효율적으로 수행하는 방법 및 장치 |
US10498631B2 (en) | 2017-08-15 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Routing packets using distance classes |
US10374943B2 (en) * | 2017-08-16 | 2019-08-06 | Hewlett Packard Enterprise Development Lp | Routing packets in dimensional order in multidimensional networks |
US20190058663A1 (en) | 2017-08-18 | 2019-02-21 | Futurewei Technologies, Inc. | Flowlet-Based Load Balancing |
US10693787B2 (en) | 2017-08-25 | 2020-06-23 | Intel Corporation | Throttling for bandwidth imbalanced data transfers |
US20190044809A1 (en) | 2017-08-30 | 2019-02-07 | Intel Corporation | Technologies for managing a flexible host interface of a network interface controller |
EP3677000B1 (en) * | 2017-08-30 | 2022-11-16 | Telefonaktiebolaget LM Ericsson (PUBL) | Method and system for tracing packets in software defined networks |
JP6897434B2 (ja) * | 2017-08-31 | 2021-06-30 | 富士通株式会社 | 情報処理システム、情報処理装置及び情報処理プログラム |
US11194753B2 (en) | 2017-09-01 | 2021-12-07 | Intel Corporation | Platform interface layer and protocol for accelerators |
JP6833644B2 (ja) | 2017-09-13 | 2021-02-24 | 株式会社東芝 | 転送装置、転送方法及びプログラム |
US10880204B1 (en) * | 2017-09-26 | 2020-12-29 | Amazon Technologies, Inc. | Low latency access for storage using multiple paths |
US10789011B2 (en) | 2017-09-27 | 2020-09-29 | Alibaba Group Holding Limited | Performance enhancement of a storage device using an integrated controller-buffer |
US11178262B2 (en) | 2017-09-29 | 2021-11-16 | Fungible, Inc. | Fabric control protocol for data center networks with packet spraying over multiple alternate data paths |
WO2019068017A1 (en) * | 2017-09-29 | 2019-04-04 | Fungible, Inc. | RESILIENT NETWORK COMMUNICATION USING SELECTIVE PULVER FLOW SPRAY BY MULTIPATH PATH |
US10200279B1 (en) | 2017-10-03 | 2019-02-05 | Amer Omar Aljaedi | Tracer of traffic trajectories in data center networks |
US20190108332A1 (en) | 2017-10-06 | 2019-04-11 | Elwha Llc | Taint injection and tracking |
CN109660463A (zh) | 2017-10-11 | 2019-04-19 | 华为技术有限公司 | 一种拥塞流识别方法及网络设备 |
US11502948B2 (en) | 2017-10-16 | 2022-11-15 | Mellanox Technologies, Ltd. | Computational accelerator for storage operations |
CN112202685A (zh) | 2017-11-06 | 2021-01-08 | 华为技术有限公司 | 报文转发方法、转发设备和网络设备 |
US10841243B2 (en) | 2017-11-08 | 2020-11-17 | Mellanox Technologies, Ltd. | NIC with programmable pipeline |
CN115941616A (zh) | 2017-12-15 | 2023-04-07 | 微软技术许可有限责任公司 | 多路径rdma传输 |
KR101850749B1 (ko) | 2017-12-18 | 2018-04-20 | 주식회사 에프아이시스 | 멀티 코어 기반 nic에서 동적 패킷 버퍼 할당 방법 |
US10552344B2 (en) | 2017-12-26 | 2020-02-04 | Intel Corporation | Unblock instruction to reverse page block during paging |
US11157336B2 (en) | 2017-12-30 | 2021-10-26 | Intel Corporation | Technologies for extending triggered operations |
US11277350B2 (en) | 2018-01-09 | 2022-03-15 | Intel Corporation | Communication of a large message using multiple network interface controllers |
AU2019222503B2 (en) * | 2018-02-15 | 2023-08-17 | Vitec, Inc. | Distribution and playback of media content |
US10986021B2 (en) | 2018-03-06 | 2021-04-20 | International Business Machines Corporation | Flow management in networks |
US11082347B2 (en) * | 2018-03-26 | 2021-08-03 | Nvidia Corporation | Techniques for reducing congestion in a computer network |
US10789194B2 (en) | 2018-03-26 | 2020-09-29 | Nvidia Corporation | Techniques for efficiently synchronizing data transmissions on a network |
CN110324249B (zh) | 2018-03-28 | 2023-05-26 | 清华大学 | 一种蜻蜓网络架构及其组播路由方法 |
US20190044827A1 (en) | 2018-03-30 | 2019-02-07 | Intel Corporatoin | Communication of a message using a network interface controller on a subnet |
US20190044872A1 (en) | 2018-03-30 | 2019-02-07 | Intel Corporation | Technologies for targeted flow control recovery |
US10567307B2 (en) | 2018-04-27 | 2020-02-18 | Avago Technologies International Sales Pte. Limited | Traffic management for high-bandwidth switching |
US10789200B2 (en) * | 2018-06-01 | 2020-09-29 | Dell Products L.P. | Server message block remote direct memory access persistent memory dialect |
US11469995B2 (en) * | 2018-06-14 | 2022-10-11 | Nokia Solutions And Networks Oy | Flow-specific fast rerouting of source routed packets |
US10958587B2 (en) | 2018-07-24 | 2021-03-23 | Intel Corporation | Transmission latency reduction |
US11474916B2 (en) | 2018-08-22 | 2022-10-18 | Intel Corporation | Failover of virtual devices in a scalable input/output (I/O) virtualization (S-IOV) architecture |
US11102129B2 (en) | 2018-09-09 | 2021-08-24 | Mellanox Technologies, Ltd. | Adjusting rate of outgoing data requests for avoiding incast congestion |
US11444886B1 (en) | 2018-09-21 | 2022-09-13 | Marvell Asia Pte Ltd | Out of order packet buffer selection |
US10802828B1 (en) | 2018-09-27 | 2020-10-13 | Amazon Technologies, Inc. | Instruction memory |
US10820057B2 (en) | 2018-11-07 | 2020-10-27 | Nvidia Corp. | Scalable light-weight protocols for wire-speed packet ordering |
US11922220B2 (en) | 2018-11-08 | 2024-03-05 | Intel Corporation | Function as a service (FaaS) system enhancements |
US11108704B2 (en) | 2018-12-04 | 2021-08-31 | Nvidia Corp. | Use of stashing buffers to improve the efficiency of crossbar switches |
US11416749B2 (en) | 2018-12-11 | 2022-08-16 | Amazon Technologies, Inc. | Execution synchronization and tracking |
US10754816B2 (en) | 2018-12-21 | 2020-08-25 | Intel Corporation | Time sensitive networking device |
US11068412B2 (en) | 2019-02-22 | 2021-07-20 | Microsoft Technology Licensing, Llc | RDMA transport with hardware integration |
US11025564B2 (en) | 2019-02-22 | 2021-06-01 | Microsoft Technology Licensing, Llc | RDMA transport with hardware integration and out of order placement |
US11805065B2 (en) | 2019-02-27 | 2023-10-31 | Intel Corporation | Scalable traffic management using one or more processor cores for multiple levels of quality of service |
US11743240B2 (en) | 2019-03-08 | 2023-08-29 | Intel Corporation | Secure stream protocol for serial interconnect |
US10970238B2 (en) | 2019-04-19 | 2021-04-06 | Intel Corporation | Non-posted write transactions for a computer bus |
US11099891B2 (en) * | 2019-04-22 | 2021-08-24 | International Business Machines Corporation | Scheduling requests based on resource information |
US11088967B2 (en) | 2019-04-26 | 2021-08-10 | Intel Corporation | Shared resources for multiple communication traffics |
US10922250B2 (en) | 2019-04-30 | 2021-02-16 | Microsoft Technology Licensing, Llc | Monitoring and steering service requests to acceleration components |
US10931588B1 (en) * | 2019-05-10 | 2021-02-23 | Innovium, Inc. | Network switch with integrated compute subsystem for distributed artificial intelligence and other applications |
US10740243B1 (en) * | 2019-05-13 | 2020-08-11 | Western Digital Technologies, Inc. | Storage system and method for preventing head-of-line blocking in a completion path |
US20200364088A1 (en) * | 2019-05-16 | 2020-11-19 | Nvidia Corporation | Resource sharing by two or more heterogeneous processing cores |
CN113728599A (zh) | 2019-05-23 | 2021-11-30 | 慧与发展有限责任合伙企业 | 促进将包高效地注入网络接口控制器(nic)中的输出缓冲区中的系统和方法 |
US11381515B2 (en) | 2019-06-28 | 2022-07-05 | Intel Corporation | On-demand packet queuing in a network device |
US11128561B1 (en) | 2019-07-29 | 2021-09-21 | Innovium, Inc. | Auto load balancing |
US11057318B1 (en) * | 2019-08-27 | 2021-07-06 | Innovium, Inc. | Distributed artificial intelligence extension modules for network switches |
CN110601888B (zh) | 2019-09-10 | 2020-11-06 | 清华大学 | 一种时间敏感网络中确定性故障检测与定位方法及系统 |
WO2021050883A1 (en) | 2019-09-12 | 2021-03-18 | Oracle International Corporation | Accelerated building and probing of hash tables using symmetric vector processing |
US11178042B2 (en) * | 2019-10-14 | 2021-11-16 | Red Hat, Inc. | Protocol and state analysis in a dynamic routing network |
US11444881B2 (en) | 2019-11-19 | 2022-09-13 | Oracle International Corporation | System and method for supporting use of forward and backward congestion notifications in a private fabric in a high performance computing environment |
US11451493B2 (en) | 2021-01-06 | 2022-09-20 | Mellanox Technologies, Ltd. | Connection management in a network adapter |
US20220311711A1 (en) * | 2021-09-23 | 2022-09-29 | Intel Corporation | Congestion control based on network telemetry |
-
2020
- 2020-03-23 CN CN202080029704.5A patent/CN113728599A/zh active Pending
- 2020-03-23 CN CN202080029835.3A patent/CN113711547A/zh active Pending
- 2020-03-23 DE DE112020002481.4T patent/DE112020002481T5/de active Pending
- 2020-03-23 WO PCT/US2020/024268 patent/WO2020236287A1/en active Application Filing
- 2020-03-23 US US17/594,696 patent/US11818037B2/en active Active
- 2020-03-23 US US17/594,815 patent/US11876702B2/en active Active
- 2020-03-23 US US17/594,711 patent/US20220166705A1/en active Pending
- 2020-03-23 US US17/594,735 patent/US11962490B2/en active Active
- 2020-03-23 CN CN202080028945.8A patent/CN113692725A/zh active Pending
- 2020-03-23 WO PCT/US2020/024304 patent/WO2020236294A1/en unknown
- 2020-03-23 CN CN202080031241.6A patent/CN113748648A/zh active Pending
- 2020-03-23 WO PCT/US2020/024327 patent/WO2020236298A1/en active Application Filing
- 2020-03-23 CN CN202080029985.4A patent/CN113874848A/zh active Pending
- 2020-03-23 US US17/594,521 patent/US20220217090A1/en active Pending
- 2020-03-23 WO PCT/US2020/024251 patent/WO2020236276A1/en unknown
- 2020-03-23 WO PCT/US2020/024266 patent/WO2020236285A1/en unknown
- 2020-03-23 US US17/594,717 patent/US11848859B2/en active Active
- 2020-03-23 US US17/594,782 patent/US11916782B2/en active Active
- 2020-03-23 WO PCT/US2020/024342 patent/WO2020236302A1/en unknown
- 2020-03-23 DE DE112020002509.8T patent/DE112020002509T5/de active Pending
- 2020-03-23 EP EP20810384.6A patent/EP3949290A4/en active Pending
- 2020-03-23 DE DE112020002490.3T patent/DE112020002490T5/de active Pending
- 2020-03-23 DE DE112020002510.1T patent/DE112020002510T5/de active Pending
- 2020-03-23 WO PCT/US2020/024246 patent/WO2020236273A1/en active Application Filing
- 2020-03-23 EP EP20808719.7A patent/EP3942747A4/en active Pending
- 2020-03-23 US US17/594,610 patent/US11899596B2/en active Active
- 2020-03-23 EP EP20808856.7A patent/EP3942422A4/en active Pending
- 2020-03-23 US US17/594,820 patent/US20220231962A1/en active Pending
- 2020-03-23 US US17/594,712 patent/US20220210054A1/en active Pending
- 2020-03-23 EP EP20809558.8A patent/EP3942763A4/en active Pending
- 2020-03-23 WO PCT/US2020/024260 patent/WO2020236283A1/en active Application Filing
- 2020-03-23 WO PCT/US2020/024170 patent/WO2020236262A2/en unknown
- 2020-03-23 US US17/594,548 patent/US11792114B2/en active Active
- 2020-03-23 US US17/594,780 patent/US20220200923A1/en active Pending
- 2020-03-23 DE DE112020002512.8T patent/DE112020002512T5/de active Pending
- 2020-03-23 US US17/594,818 patent/US11863431B2/en active Active
- 2020-03-23 CN CN202080030067.3A patent/CN113728315A/zh active Pending
- 2020-03-23 WO PCT/US2020/024270 patent/WO2020236289A1/en unknown
- 2020-03-23 CN CN202080029737.XA patent/CN113711549A/zh active Pending
- 2020-03-23 US US17/594,624 patent/US11916781B2/en active Active
- 2020-03-23 WO PCT/US2020/024271 patent/WO2020236290A1/en active Application Filing
- 2020-03-23 DE DE112020002493.8T patent/DE112020002493T5/de active Pending
- 2020-03-23 WO PCT/US2020/024242 patent/WO2020236269A1/en active Application Filing
- 2020-03-23 WO PCT/US2020/024311 patent/WO2020236295A1/en active Application Filing
- 2020-03-23 DE DE112020002501.2T patent/DE112020002501T5/de active Pending
- 2020-03-23 WO PCT/US2020/024129 patent/WO2020236259A1/en active Application Filing
- 2020-03-23 CN CN202080031262.8A patent/CN113767601A/zh active Pending
- 2020-03-23 WO PCT/US2020/024244 patent/WO2020236271A1/en active Application Filing
- 2020-03-23 WO PCT/US2020/024272 patent/WO2020236291A1/en active Application Filing
- 2020-03-23 CN CN202080030246.7A patent/CN113711548A/zh active Pending
- 2020-03-23 WO PCT/US2020/024324 patent/WO2020236297A1/en active Application Filing
- 2020-03-23 WO PCT/US2020/024125 patent/WO2020236258A1/en unknown
- 2020-03-23 WO PCT/US2020/024250 patent/WO2020236275A1/en active Application Filing
- 2020-03-23 CN CN202080030421.2A patent/CN113785536A/zh active Pending
- 2020-03-23 WO PCT/US2020/024253 patent/WO2020236277A1/en active Application Filing
- 2020-03-23 US US17/594,682 patent/US20220217073A1/en active Pending
- 2020-03-23 US US17/594,745 patent/US20220217078A1/en active Pending
- 2020-03-23 EP EP20810538.7A patent/EP3942757A4/en active Pending
- 2020-03-23 EP EP20808656.1A patent/EP3942755A4/en active Pending
- 2020-03-23 CN CN202080031357.XA patent/CN113728594A/zh active Pending
- 2020-03-23 CN CN202080029588.7A patent/CN113728595A/zh active Pending
- 2020-03-23 US US17/594,798 patent/US11929919B2/en active Active
- 2020-03-23 DE DE112020002484.9T patent/DE112020002484T5/de active Pending
- 2020-03-23 CN CN202080029801.4A patent/CN113711550A/zh active Pending
- 2020-03-23 CN CN202080029766.6A patent/CN113728597A/zh active Pending
- 2020-03-23 US US17/594,762 patent/US20220210081A1/en active Pending
- 2020-03-23 US US17/594,736 patent/US11784920B2/en active Active
- 2020-03-23 CN CN202080029591.9A patent/CN113711551A/zh active Pending
- 2020-03-23 DE DE112020002498.9T patent/DE112020002498T5/de active Pending
- 2020-03-23 CN CN202080029462.XA patent/CN113711173A/zh active Pending
- 2020-03-23 EP EP20808851.8A patent/EP3942749A4/en active Pending
- 2020-03-23 US US17/594,543 patent/US20220214919A1/en active Pending
- 2020-03-23 CN CN202080030714.0A patent/CN113767600A/zh active Pending
- 2020-03-23 EP EP20809930.9A patent/EP3942398A4/en active Pending
- 2020-03-23 US US17/594,627 patent/US11876701B2/en active Active
- 2020-03-23 US US17/594,784 patent/US11750504B2/en active Active
- 2020-03-23 CN CN202080028898.7A patent/CN113692581A/zh active Pending
- 2020-03-23 US US17/594,806 patent/US11968116B2/en active Active
- 2020-03-23 DE DE112020002528.4T patent/DE112020002528T5/de active Pending
- 2020-03-23 US US17/594,641 patent/US11799764B2/en active Active
- 2020-03-23 US US17/594,535 patent/US11765074B2/en active Active
- 2020-03-23 WO PCT/US2020/024239 patent/WO2020236267A1/en active Application Filing
- 2020-03-23 EP EP20810783.9A patent/EP3942754A4/en active Pending
- 2020-03-23 US US17/594,789 patent/US20220191128A1/en active Pending
- 2020-03-23 WO PCT/US2020/024257 patent/WO2020236280A1/en active Application Filing
- 2020-03-23 EP EP20810784.7A patent/EP3942759A4/en active Pending
- 2020-03-23 US US17/594,533 patent/US11855881B2/en active Active
- 2020-03-23 WO PCT/US2020/024262 patent/WO2020236284A1/en active Application Filing
- 2020-03-23 US US17/594,686 patent/US20220224639A1/en active Pending
- 2020-03-23 CN CN202080032169.9A patent/CN113785543A/zh active Pending
- 2020-03-23 US US17/594,615 patent/US20220197838A1/en active Pending
- 2020-03-23 US US17/594,638 patent/US20220311544A1/en active Pending
- 2020-03-23 WO PCT/US2020/024321 patent/WO2020236296A1/en active Application Filing
- 2020-03-23 WO PCT/US2020/024256 patent/WO2020236279A1/en unknown
- 2020-03-23 DE DE112020002497.0T patent/DE112020002497T5/de active Pending
- 2020-03-23 WO PCT/US2020/024248 patent/WO2020236274A1/en active Application Filing
- 2020-03-23 CN CN202080030734.8A patent/CN113767598A/zh active Pending
- 2020-03-23 CN CN202080030711.7A patent/CN113728593A/zh active Pending
- 2020-03-23 CN CN202080031578.7A patent/CN113748647A/zh active Pending
- 2020-03-23 CN CN202080031098.0A patent/CN113728592A/zh active Pending
- 2020-03-23 US US17/594,811 patent/US20220217076A1/en active Pending
- 2020-03-23 WO PCT/US2020/024332 patent/WO2020236299A1/en active Application Filing
- 2020-03-23 US US17/594,647 patent/US11757763B2/en active Active
- 2020-03-23 WO PCT/US2020/024259 patent/WO2020236282A1/en active Application Filing
- 2020-03-23 US US17/594,758 patent/US20220217079A1/en active Pending
- 2020-03-23 DE DE112020002491.1T patent/DE112020002491T5/de active Pending
- 2020-03-23 US US17/594,531 patent/US11882025B2/en active Active
- 2020-03-23 US US17/594,649 patent/US11757764B2/en active Active
- 2020-03-23 DE DE112020002499.7T patent/DE112020002499T5/de active Pending
- 2020-03-23 WO PCT/US2020/024221 patent/WO2020236265A1/en unknown
- 2020-03-23 DE DE112020002496.2T patent/DE112020002496T5/de active Pending
- 2020-03-23 WO PCT/US2020/024158 patent/WO2020236261A1/en active Application Filing
- 2020-03-23 US US17/594,778 patent/US20220353199A1/en active Pending
- 2020-03-23 WO PCT/US2020/024245 patent/WO2020236272A1/en active Application Filing
- 2020-03-23 CN CN202080030809.2A patent/CN113767599A/zh active Pending
- 2020-03-23 CN CN202080029870.5A patent/CN113728596A/zh active Pending
- 2020-03-23 US US17/594,520 patent/US11777843B2/en active Active
- 2020-03-23 WO PCT/US2020/024243 patent/WO2020236270A1/en active Application Filing
- 2020-03-23 WO PCT/US2020/024340 patent/WO2020236301A1/en active Application Filing
- 2020-03-23 DE DE112020002494.6T patent/DE112020002494T5/de active Pending
- 2020-03-23 DE DE112020002500.4T patent/DE112020002500T5/de active Pending
- 2020-03-23 US US17/594,721 patent/US11902150B2/en active Active
- 2020-03-23 WO PCT/US2020/024267 patent/WO2020236286A1/en active Application Filing
- 2020-03-23 WO PCT/US2020/024339 patent/WO2020236300A1/en active Application Filing
- 2020-03-23 WO PCT/US2020/024241 patent/WO2020236268A1/en active Application Filing
- 2020-03-23 WO PCT/US2020/024258 patent/WO2020236281A1/en active Application Filing
- 2020-03-23 WO PCT/US2020/024237 patent/WO2020236266A1/en active Application Filing
- 2020-03-23 DE DE112020002495.4T patent/DE112020002495T5/de active Pending
- 2020-03-23 WO PCT/US2020/024303 patent/WO2020236293A1/en unknown
- 2020-03-23 WO PCT/US2020/024269 patent/WO2020236288A1/en active Application Filing
- 2020-03-23 EP EP20810785.4A patent/EP3942758A4/en active Pending
- 2020-03-23 WO PCT/US2020/024192 patent/WO2020236264A1/en active Application Filing
- 2020-03-23 CN CN202080031356.5A patent/CN113785541A/zh active Pending
- 2020-03-23 DE DE112020002754.6T patent/DE112020002754T5/de active Pending
- 2020-03-23 CN CN202080031355.0A patent/CN114073054A/zh active Pending
- 2020-03-23 US US17/594,747 patent/US20220191127A1/en active Pending
- 2020-03-23 CN CN202080030125.2A patent/CN113728598A/zh active Pending
- 2020-03-23 CN CN202080031291.4A patent/CN113748652A/zh active Pending
- 2020-03-23 WO PCT/US2020/024276 patent/WO2020236292A1/en active Application Filing
- 2020-03-23 WO PCT/US2020/024254 patent/WO2020236278A1/en unknown
- 2020-03-23 US US17/594,795 patent/US20220210055A1/en active Pending
- 2020-03-23 US US17/594,609 patent/US20220329521A1/en active Pending
-
2023
- 2023-07-28 US US18/361,320 patent/US20230370364A1/en active Pending
- 2023-08-24 US US18/454,860 patent/US20230396533A1/en active Pending
- 2023-10-02 US US18/479,755 patent/US20240039836A1/en active Pending
- 2023-12-05 US US18/529,305 patent/US20240106736A1/en active Pending
- 2023-12-14 US US18/539,907 patent/US20240113961A1/en active Pending
- 2023-12-15 US US18/542,412 patent/US20240121179A1/en active Pending
- 2023-12-19 US US18/545,808 patent/US20240121182A1/en active Pending
- 2023-12-19 US US18/544,914 patent/US20240121181A1/en active Pending
- 2023-12-19 US US18/544,791 patent/US20240121180A1/en active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11902150B2 (en) | Systems and methods for adaptive routing in the presence of persistent flows | |
US20240056385A1 (en) | Switch device for facilitating switching in data-driven intelligent network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |