CN113748647A - 胖树自适应路由 - Google Patents

胖树自适应路由 Download PDF

Info

Publication number
CN113748647A
CN113748647A CN202080031578.7A CN202080031578A CN113748647A CN 113748647 A CN113748647 A CN 113748647A CN 202080031578 A CN202080031578 A CN 202080031578A CN 113748647 A CN113748647 A CN 113748647A
Authority
CN
China
Prior art keywords
switch
port
packet
routing
global
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
Application number
CN202080031578.7A
Other languages
English (en)
Inventor
A·M·巴塔耶纳
T·考特
E·L·弗洛伊斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN113748647A publication Critical patent/CN113748647A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0083Formatting with frames or packets; Protocol or part of protocol for error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/021Ensuring consistency of routing table updates, e.g. by using epoch numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/028Dynamic adaptation of the update intervals, e.g. event-triggered updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/46Cluster building
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • H04L45/566Routing instructions carried by the data packet, e.g. active networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/18End to end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2466Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • H04L47/323Discarding or blocking control packets, e.g. ACK packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/39Credit based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6235Variable service order
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/626Queue scheduling characterised by scheduling criteria for service slots or service orders channel conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/629Ensuring fair share of resources, e.g. weighted fair queuing [WFQ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission 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/762Admission 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/781Centralised allocation of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9021Plurality of buffers per packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9036Common buffer combined with individual queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3808Network interface controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Advance Control (AREA)

Abstract

提供了用于通过具有被配置成胖树拓扑的多个交换机的网络高效地路由数据的系统和方法,包括:在所述网络的边缘端口处接收包括多个包的数据传输,以及使用基于路由表的路由决策通过所述网络来路由所述数据传输,其中,所述路由表包括用于按照基于目的地的散列函数来实现路由决策的条目。

Description

胖树自适应路由
政府权利声明
本文所述的发明是按照下述一项或多项合同在美国政府的支持下完成的。美国政府对本发明享有一定的权利。
Figure BDA0003321528280000011
相关申请的交叉引用
本申请要求于2019年5月23日提交的名称为“Network Switch[网络交换机]”的美国临时专利申请号62/852273、2019年5月23日提交的名称为“Network InterfaceController[网络接口控制器]”的美国临时专利申请号62/852203、2019年5月23日提交的名称为“Network Computer System[网络计算机系统]”的美国临时专利申请号62/852289的权益,所述美国临时专利申请的公开内容出于所有目的而通过引用以其全文并入本文。
背景技术
网络交换机通常在计算环境中实施为用于网络通信的工具。例如,网络交换机可以经由网络接口(NIC)与其他部件互连。需要更好的通信方法和系统来实施这些网络交换机,以在不断变化的网络环境中改进通信。
附图说明
参照以下附图根据一个或多个不同的实施例详细地描述本公开。附图仅被提供用于说明性目的,并且仅描绘典型实施例或示例实施例。
图1图示了可以在其中实施各种实施例的示例网络。
图2图示了根据各种实施例的促进流通道的示例交换系统。
图3A图示了根据各种实施例的在示例交叉开关交换机(crossbar switch)内实施的交叉开关。
图3B图示了根据各种实施例的与图2的示例边缘交换系统的端口相对应的示例瓦片(tile)矩阵。
图3C图示了根据各种实施例的构成图3B的瓦片矩阵的示例瓦片。
图3D图示了根据各种实施例的示例年龄队列实施方式。
图4A和图4B是在图2的示例边缘交换系统的每个端口处实施的示例FRF部件的框图。
图5图示了根据各种实施例的路由选择的示例。
图6图示了根据各种实施例的局部和全局负载值更新和使用的示例。
图7图示了根据一些实施例的通过网络高效地路由数据的示例方法。
图8图示了根据所公开技术的一个实施例的可用于实现胖树路由的示例计算部件。
图9图示了根据一些实施例的三层胖树拓扑的示例。
图10图示了根据一些实施例的在第一层交换机与第二层交换机之间有链路故障的胖树的示例。
图11示出了根据一些实施例的拓扑中更高层处的链路故障的示例。
图12示出了根据一些实施例的故障交换机的示例。
图13是可用于实施本公开中描述的实施例的各种特征的示例计算部件。
附图并非是穷举的,并且不将本公开限制于所公开的精确形式。
具体实施方式
当多个交换机被配置成胖树拓扑时,发现最小路由技术效率较低。在应对跨网络的均匀流量时尤其如此。为了改善这一点,用基于散列的路由方法代替了最小路由技术。更具体地,路由表结合了基于目的地的散列函数来做出路由决策。
图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有效载荷)。专门为网络100格式化的IPv4或IPv6包、帧等也可以被接收、通过交换机结构100传输到另一个交换机(例如,交换机110)。因此,网络100能够同时处置多种类型的流量。通常,交换机可以具有边缘端口和结构端口。边缘端口可以耦接到在结构外部的设备。结构端口可以经由结构链路耦接到结构内的另一个交换机。
通常,流量可以经由边缘交换机的入口端口注入交换机结构100,并且经由另一个(或相同)边缘交换机的出口端口离开交换机结构100。入口边缘交换机可以将已注入数据包分组为流,这些流可以通过流ID进行标识。流的概念不限于特定的协议或层(如开放系统接口(OSI)参考模型中的层2或层3)。例如,流可以映射到具有特定源以太网地址的流量、源IP地址与目的地IP地址之间的流量、对应于TCP或UDP端口/IP 5元组(源和目的地IP地址、源和目的地TCP或UDP端口号、以及IP协议号)的流量、或由在终端主机上运行的进程或线程产生的流量。换句话说,流可以被配置为映射到任何物理或逻辑实体之间的数据。该映射的配置可以远程完成或在入口边缘交换机上本地完成。
在接收到已注入数据包之后,入口边缘交换机可以为该流指派流ID。该流ID可以被包括在特殊的报头中,入口边缘交换机可以使用该报头来封装已注入包。此外,入口边缘交换机还可以检查已注入包的原始报头字段以确定适当的出口边缘交换机地址,并将该地址作为目的地地址包括在封装报头中。应注意,流ID可以是特定于链路的本地有效值,并且该值可以仅对于交换机上的特定输入端口是唯一的。当包转发到下一跳交换机时,包进入另一条链路,并且流ID可以相应地更新。由于流的包要经过多条链路和交换机,因此与该流相对应的流ID可以形成唯一的链。即,在每个交换机上,在包离开交换机之前,包的流ID可以更新为传出链路所使用的流ID。流ID之间的这种从上游到下游的一对一映射可以在入口边缘交换机处开始并在出口边缘交换机处结束。因为流ID只需要在传入链路内是唯一的,所以交换机可以容纳大量的流。例如,如果流ID为11位长,则一个输入端口最多可以支持2048个流。此外,用于映射到流的匹配模式(包的一个或多个报头字段)可以包括更多个位。例如,32位长的匹配模式(其可以包括包报头中的多个字段)可以映射最多2^32个不同的报头字段模式。如果结构有N个入口边缘端口,总共可以支持N*2^32个可识别流。
交换机可以为每个流指派单独的专用输入队列。该配置允许交换机监测和管理各个流的拥塞程度,并防止在将共享缓冲区用于多个流时可能发生的队头阻塞。当包被传送到目的地出口交换机时,出口交换机可以生成确认(ACK),并在上行方向沿着相同的数据路径将该确认发送回入口边缘交换机。由于该ACK包经过相同的数据路径,因此该路径上的交换机可以通过监测未完成的、未确认的数据量来获得与对应流的传送相关联的状态信息。然后可以使用该状态信息来执行特定于流的流量管理,以确保整个网络的健康和对流的公平处理。如下文更详细解释的,这种逐流排队与特定于流的传送确认相结合可以使交换机结构实施有效、快速和准确的拥塞控制。进而,交换机结构可以以显著提高的网络利用率来传送流量,而不会出现拥塞。
可以基于需求动态或“即时”地建立和释放流。具体地,当数据包到达交换机并且先前没有向该包指派流ID时,可以由入口边缘交换机建立流(例如,确立流ID到包报头的映射)。当该包穿过网络时,可以沿着包所经过的每个交换机指派流ID,并且可以确立从入口到出口的流ID链。属于同一流的后续包可以沿数据路径使用相同的流ID。当包被传送到目的地出口交换机并且数据路径上的交换机接收到ACK包时,每个交换机可以更新其关于该流的未完成的、未确认的数据量的状态信息。对于该流,当交换机的输入队列为空并且没有更多未确认的数据时,交换机可以释放流ID(即,释放该流通道)并将流ID重新用于其他流。这种数据驱动的动态流建立和拆除机制可以消除集中流管理的需要,并允许网络快速响应流量模式变化。
应注意,本文描述的网络架构与通常使用OpenFlow协议的软件定义网络(SDN)不同。在SDN中,由中央网络控制器来配置交换机,并且基于层2(数据链路层,如以太网)、第3层(网络层,如IP)或层4(传输层,如TCP或UDP)报头中的一个或多个字段来转发包。在SDN中,这种报头字段查找在网络中的每个交换机处执行,并且不存在如在本文所述的网络中所做的基于流ID的快速转发。此外,由于OpenFlow报头字段查找是使用三元内容可寻址存储器(TCAM)完成的,因此这种查找的成本可能很高。而且,由于报头字段映射配置是由中央控制器完成的,每个映射关系的建立和拆除相对较慢,可能需要大量的控制流量。因此,SDN网络对各种网络情况(如拥塞)的响应可能很慢。相比之下,在本文描述的网络中,可以基于流量需求动态地建立和拆除流;并且包可以通过固定长度的流ID转发。换句话说,流通道可以是数据驱动的,并以分布式方式进行管理(即,建立、监测和拆除),而无需中央控制器的干预。此外,基于流ID的转发可以减少所使用的TCAM空间量,并且因此可以容纳更多个流。
参考图1所示的示例,假设存储阵列112要使用TCP/IP向主机116发送数据。在操作期间,存储阵列112可以发送第一个包,所述第一个包具有主机116的IP地址作为目的地地址以及在TCP报头中指定的预定TCP端口。当该包到达交换机110时,交换机110的输入端口处的包处理器可以识别该包的TCP/IP 5元组。交换机110的包处理器还可以确定该5元组当前未映射到任何流ID,并且可以向该5元组分配新的流ID。此外,交换机110可以基于目的地(即,主机116的)IP地址来确定该包的出口交换机,即,交换机104(假设交换机110知道主机116耦接到交换机104)。随后,交换机110可以用指示新指派的流ID和交换机104的结构地址的结构报头来封装所接收的包。交换机110然后可以基于结构转发表来调度要向交换机104转发的封装包,所述结构转发表可以由结构100中的所有交换机使用诸如链路状态或距离向量等路由算法来计算。
应注意,当接收到第一个包时,上述操作可以基本上以线路速度执行,几乎没有缓冲和延迟。在第一个包被处理并被调度进行传输之后,来自相同流的后续包可以被交换机110更快地处理,因为使用了相同的流ID。另外,流通道的设计可以使得流通道的分配、匹配和解除分配可以具有基本相同的成本。例如,可以在几乎每个时钟周期中同时执行流通道的基于查找匹配的条件分配和另一个流通道的单独、独立的解除分配。这意味着生成和控制流通道几乎不会为包的常规转发增加附加开销。另一方面,拥塞控制机制可以将一些应用的性能提高三个数量级以上。
在数据路径上的每个交换机(包括交换机110、106和104)处,可以为该流提供专用输入缓冲区,并且可以跟踪已传输但未确认的数据量。当第一个包到达交换机104时,交换机104可以确定所述包的结构报头中的目的地结构地址与其自己的地址相匹配。作为响应,交换机104可以根据结构报头对包进行解封装,并将解封装的包转发到主机116。此外,交换机104可以生成ACK包并将该ACK包发送回交换机110。当该ACK包经过相同的数据路径时,交换机106和110可以各自针对该流的未确认的数据更新其自己的状态信息。
通常,网络内的拥塞会导致网络缓冲区被填充。当网络缓冲区已满时,理想情况下,试图通过缓冲区的流量应当减慢或停止。否则,缓冲区可能会溢出,并且包可能会被丢弃。在常规网络中,通常在边缘处端对端地进行拥塞控制。网络的核被认为仅用作“笨水管”,其主要目的是转发流量。这样的网络设计通常对拥塞的响应缓慢,因为通常无法快速将拥塞信息发送到边缘设备,并且所产生的边缘设备所采取的动作并不总是能够有效地消除拥塞。这种缓慢的响应进而限制了网络的利用率,因为为了保持网络畅通无阻,网络运营商通常需要限制注入网络中的流量总量。此外,端对端拥塞控制通常只有在网络尚未拥塞的情况下才有效。一旦网络严重拥塞,端对端拥塞控制将不起作用,因为拥塞通知消息本身可能拥塞(除非使用与数据面网络不同的单独控制面网络来发送拥塞控制消息)。
相比之下,流通道可以防止这种拥塞在交换机结构内增长。当流正在经历一定程度的拥塞时,流通道机制可以识别这种情况,并且作为响应,可以减慢或停止同一流的新包进入结构。进而,这些新包可以缓冲在边缘端口上的流通道队列中,并且仅当同一流的包在目的地边缘端口处离开结构时才被允许进入结构。该过程可以将结构内该流的总缓冲要求限制为不会导致结构缓冲区变得太满的量。
通过流通道,交换机能够获得关于结构内未完成的在途中的数据量的相当准确的状态信息。可以针对入口边缘端口上的所有流汇总该状态信息。这意味着可以知道通过入口边缘端口注入的数据总量。因此,流通道机制可以对结构中的数据总量设置限制。当所有边缘端口都应用该限制动作时,可以很好地控制整个结构中的包数据总量,这进而可以防止整个结构饱和。流通道还可以减慢结构内的单个拥塞流的进度,而不会减慢其他流。该特征可以使包远离拥塞热点,同时防止缓冲区变满并确保为无关流量提供空闲缓冲区空间。
图2图示了可以用于创建交换机结构(例如,图1的交换机结构100)的示例交换机202(其可以是交换机102、104、106、108以及110中的任何一个或多个交换机的实施例)。在该示例中,交换机202可以包括多个通信端口,如端口220。每个端口可以包括发射器和接收器。交换机202还可以包括处理器204、存储设备206和流通道交换逻辑块208。流通道交换逻辑块208可以耦接到所有通信端口并且可以进一步包括交叉开关交换机210、EFCT逻辑块212、IFCT逻辑块214和OFCT逻辑块216。
交叉开关交换机210包括交叉开关,所述交叉开关可以被配置为在通信端口之间转发数据包和控制包(如ACK包)。EFCT逻辑块212可以处理从边缘链路接收的包并且基于包中的一个或多个报头字段来将所接收的包映射到相应的流。另外,EFCT逻辑块212可以组装FGFC以太网帧,所述FGFC以太网帧可以传送到终端主机以控制由各个进程或线程注入的数据量。IFCT逻辑块214可以包括IFCT,并且响应于控制包(如端点拥塞通知ACK和基于结构链路信用的流控制ACK)来执行各种流控制方法。OFCT逻辑块216可以包括存储OFCT的存储器单元,并且与另一个交换机的IFCT逻辑块通信以在包被转发到下一跳交换机时更新包的流ID。
在一个实施例中,交换机202是可以提供64个网络端口的专用集成电路(ASIC),所述网络端口可以以100Gbps或200Gbps运行,从而实现12.8Tbps的聚合吞吐量。每个网络边缘端口可能能够支持IEEE 802.3以太网和基于优化IP的协议以及门户(Portal)(一种支持更高速率的小型消息的增强的帧格式)。以太网帧可以基于其L2地址进行桥接,也可以基于其L3(IPv4/IPv6)地址进行路由。优化的IP帧可以仅具有L3(IPv4/IPv6)报头,并进行路由。专用NIC支持可以用于门户增强帧格式,并可以直接映射到网络100的结构格式上,所述结构格式例如为当交换机/交换机芯片(如交换机102、104、106、108以及110)被连接并相互通信时,提供某些控制和状态字段以支持多芯片结构的结构格式。如上所述,基于流通道的拥塞控制机制可以由这种交换机使用,并且还可以实现较小包的高传输速率(例如,每个端口每秒超过12亿个包),以适应HPC应用的需求。
交换机202可以提供系统范围的服务质量(QoS)分类、以及控制如何将网络带宽分配给不同分类的流量和不同分类的应用的能力,其中,单个特权应用可以访问多于一个分类的流量。在存在网络带宽竞争的情况下,仲裁器会基于包的流量分类和该分类可用的信用来选择要转发的包。网络100可以支持每个流量分类的最小带宽和最大带宽。如果分类没有使用其最小带宽,其他分类可能会使用未使用的带宽,但没有分类可以得到超过其最大分配带宽的带宽。管理带宽的能力提供了将网络资源以及CPU和存储器带宽专用于特定应用的机会。
除了支持QoS分类之外,交换机202实现基于流通道的拥塞控制,并且可以将例如具有蜻蜓拓扑的网络中的网络跃点数从五个网络跃点减少到三个。下面更详细描述的交换机202的设计可以降低网络成本和功耗,并且可以进一步促进改进应用性能的创新的自适应路由算法的使用。由多个交换机(如多个交换机202)创建的结构也可以用于例如在构建用于与第三方网络和软件集成的存储子系统时构建胖树网络。更进一步,交换机202的使用在保持有序包传送的同时实现了细粒度自适应路由。在一些实施例中,交换机202可以被配置为在完整的数据有效载荷到达之前将包的报头从输入端口发送到输出端口,从而允许输出端口负载指标反映未来负载,从而改进由交换机202做出的自适应路由决策。
交叉开关交换机210可以包括在输入端口与输出端口之间路由数据/数据元素的单独的、分布式的交叉开关。在一些实施例中,如图3A中所图示的,在输入端口220b与输出端口220c之间有五个分布式交叉开关,包括请求交叉开关210a、授权交叉开关210b、信用交叉开关210c、Ack交叉开关210e、以及数据交叉开关210d。
请求交叉开关210a用于将请求从输入发送到目标输出年龄队列。授权交叉开关210b用于将授权返回给满足请求的输入。特别地,授权交叉开关210b返回指示包在输入缓冲区内的位置的指针。应当注意,当输出中存在用于对应包的空间时,将返回授权。授权交叉开关210b还可以可选地在输出中返回所请求的空间的信用。应当注意,当在输出(例如,输出端口220c)处有包的着陆点时返回授权,因此包不能被阻塞(尽管这些包可能面临资源的瞬时竞争)。
应当理解,根据各种实施例,可以使用信用协议来保证在输出处存在针对请求的着陆空间。因此,可以使用信用交叉开关210c在输出中返回所请求的空间的信用。
数据交叉开关210d用于将授权的包从输入缓冲区移动到目标输出缓冲区。Ack交叉开关210e用于将Ack包从输出端口220c传播到输入端口220b。根据保持在输出流通道表中的状态来操纵Ack。
应当理解,数据交叉开关210d移动具有报头和数据两者的多时钟包,而其他四个交叉开关(请求交叉开关210a、授权交叉开关210b、信用交叉开关210c、以及Ack交叉开关210e)仅移动单时钟包报头。所有五个交叉开关都使用相同的架构,其中,行总线和列总线位于具有32个双端口瓦片(tile)的8x4矩阵内(如下所述)。
返回参考图2,交换机202可以具有多个发射/接收端口,例如,端口220。所述多个端口可以被构造成瓦片矩阵。图3B图示了这种瓦片矩阵300的示例。在一个实施例中,瓦片矩阵300包括32个瓦片,每个瓦片包括两个端口,所述两个端口用于实施端口之间的交叉开关交换,以及用于提供以下项:交换机202的核心与外部高速串行信号之间的用于驱动信号离开交换机202的串行器/解串器(SERDES)接口;到物理编码子层(PCS)的媒体访问控制(MAC)子层接口;SERDES与以太网MAC功能之间的PCS接口;链路级重试(LLR)功能,所述LLR功能以逐包的方式进行操作,并使用有序集来传送初始化序列、Ack、以及Nack;以及用于在不同帧结构格式之间进行转换的入口变换块。每个瓦片包含交叉开关交换机,诸如用于交叉开关(210a至210e)中的每一个的交叉开关交换机210。
每个交叉开关交换机210具有十六个输入端口220b(其行中的每个端口一个输入端口)以及八个输出端口220c(其列中的每个端口一个输出端口)。行总线可以从行中的每个源驱动到该行中的所有八个交叉开关(一对所有)。仲裁可以在从该行的十六个行总线到给定列中的八个列总线的交叉开关处执行。可以在每个行总线的每个16x8交叉开关处提供缓冲,以便在竞争列总线期间吸收包。在一些实施例中,除非目标交叉开关的输入缓冲区中存在用于整个包的余地,否则将非巨型包保持在行总线之外。由于面积限制,即使没有足够的空间(交叉开关的输入缓冲区的大小被设置成仅用于接收非巨型包),也允许巨型包通过,其中,行总线被阻塞,直到所述包赢得仲裁并在其移动到列总线上时释放空间为止。
列总线从给定的交叉开关驱动到列内的每个目的地端口(所有对所有)。每个目的地可以在来自四行的列总线之间具有另一个级别的仲裁。十六个行总线驱动八个交叉开关,每个交叉开关馈送八个列总线,行与列之间有4倍的加速。每行具有相同的连接,即,行总线中所示的单行的一对所有行总线连接。每个瓦片取决于交叉开关将具有每瓦片一个(请求、授权、信用)或两个(数据、ack)时钟延迟。这在最左边的列与最右边的列之间提供了最大七或十四个时钟延迟。通过信用交叉开关210c路由的信用返回可以具有每瓦片一个时钟延迟,并且因此,可以占用最大七个时钟来完成传输。
应当注意,每列可以具有相同的连接,即,单列的所有对所有列总线连接,并且可以有每瓦片两个时钟延迟,导致得到从顶行到底行的六个时钟延迟。还应该理解,行总线和列总线两者都使用上述基于信用的协议来确定这些行总线和列总线何时能够进行发送。在行总线的情况下,源端口维护该行内交叉开关的输入缓冲区的信用计数。对于数据交叉开关,需要注意确定何时允许包进入行总线。如果针对特定交叉开关的输入缓冲区的授权全部通过单个队列,则在开始包传送之前需要用于在队列头部的包的空间。如果授权分布在多个队列中,为了防止小包把大包锁在外面,除非缓冲区中存在用于整个最大大小的包的空间,否则不会开始包传送。以这种方式,一旦行总线上的包传送开始,其就不会停止,直到整个包传送完毕为止。因此,交叉开关的输入缓冲区被配置为足够大以处置最大包大小,并具有附加空间以覆盖最坏情况的往返(包发送到信用返回)。对于巨型包将不是这种情况。为了节省缓冲区域,交叉开关的输入缓冲区的深度仅足以处理非巨型大小的MTU(1500个字节),其中,在等待获得对目标列总线的访问权限时允许巨型包阻塞行总线。
对于列总线,每个交叉开关维护该列中每个目的地端口处的输入缓冲区的信用计数。与行总线不同,在列总线上开始传送该包之前,不要求信用可用于最大大小的包。当信用变得可用时,将移动包的各个字。因此,每个列总线的目的地处的输入缓冲区只需大到足以覆盖最坏情况的往返时延(包到信用)。
图3C更详细地图示了由瓦片0处置的两个端口(例如,端口0和1)、以及每瓦片的交叉开关包括一组行总线和列通道的交叉开关交换机210的示例实施方式。以这种方式,每个端口都有其自己的行总线,跨其行通信,并且每个瓦片都有前述16x8交叉开关(用于进行拐角转弯)以及一组八个列通道(最多可提供给包含在该列中的八个端口)。换句话说,每个交叉开关交换机210具有十六个行总线输入缓冲区和八个可能的目的地。例如,对于从例如输入端口17行进到输出端口52的数据,数据从输入端口17沿着行总线被路由,经过进行16到8仲裁的本地交叉开关,并且然后向上经过列通道到输出端口52。在通过所有分布式交叉开关集的总路由方面,内部带宽是外部带宽的四倍,从而导致在通过交换机202路由几乎任何任意流量排列时能够跟上入口。
可以在每个目的地的十六个源之间使用公平的轮询(round-robin)仲裁。对于数据交叉开关210d,一旦源赢得仲裁,所述源就保持对目的地列总线的控制,直到整个包已被发送为止。每个输出都授权有限数量的包有效载荷,因此预期当涉及更大的包时对给定列总线的竞争应该是相当有限的。因此,即使请求者之间的包大小可能存在较大差异,预期轮询仲裁也是足够的。
与输出功能相关联的交换机202的部分通常对交换机结构格式内的帧进行操作,并且具有结构报头(例如,甚至对于到达并靠在单个交换机202内的以太网端口上的帧)。
年龄队列输出控制负责经由请求交叉开关210a接受来自所有输入端口(例如,输入端口220b)的请求、缓冲请求,使用流量整形器按流量分类在这些请求之间进行仲裁,并将请求传递给将经由授权交叉开关210b授权的OFCT 216。管理年龄队列缓冲以允许每个输入具有足够的空间来流动,同时还允许具有针对给定输出的多个流的输入占用更多空间。特别地,年龄队列空间由输出控制管理。年龄队列/输出控制还可以负责管理对链路的访问,要么对连接的输入缓冲区使用基于信用的流控制,要么对非结构链路使用基于暂停的流控制。当包被年龄队列释放时,它被提交以放到链路上。另外,年龄队列具有允许针对给定端口上的资源对在给定端口(例如,输入端口220b之一)上发起的包(诸如维护或归约包)进行仲裁的路径。
请求从矩阵30的每一行经由列总线进入输出控制块。每个列总线馈送独立的FIFO(例如,先进先出移位寄存器或缓冲区),其中,FIFO中的空间通过信用进行管理。FIFO的大小(深度为24)可以设置为覆盖往返加额外的空间,以允许将请求移出交叉开关210a至210e并防止队头阻塞。在写入FIFO之前,可以检查请求的有效纠错码(ECC)。如果ECC检查的目的地字段中具有多比特错误(MBE)或单比特错误(SBE)(即,所述请求已路由到错误的端口),则认为所述请求是无效请求,并被丢弃,其中,标记了错误。
可以在列总线FIFO之间执行最近最少使用(LRU)仲裁,以选择将哪个FIFO转发到年龄队列管理。当请求从每个FIFO中移除时,信用将返回到对应的交叉开关。传入列总线对应的行可以取决于瓦片在矩阵中的位置以及块位于瓦片的哪一半。
输出缓冲区(OBUF)向输出控制块发出请求,以在链路上发送归约和维护包。这些请求可以被赋予最高优先级。具有8个位置的FIFO可以用于在这些归约/维护包请求等待资源时对其进行缓冲。归约包不需要使用流通道,并且维护包可以使用环回来创建流,使得不需要检查流通道可用性或流经OFCT来创建授权。归约和维护包也不需要使用输出缓冲区中的任何空间,使得不需要检查空间。相反,可以执行对链路伙伴输入缓冲区的检查。如果允许,则可以授权整形队列(SQ)或虚拟通道(VC),从而阻止在该周期期间授予来自年龄队列路径的任何授权。
对照max_frame_size检查要从输出缓冲区处理的下一个请求的大小。如果该请求超过此设置,则不处理请求并设置错误标志。这将导致输出缓冲区请求路径被阻塞,直到执行热复位位置。错误标志将保持设置直到复位完成。也可以通过将max_frame_size设置增加到卡住输出缓冲区请求的大小以上的值来解除条件。比较中使用的大小可以是输出缓冲区请求中指示的大小(其可以包括线路上使用的4字节帧校验和(FCS))。
每个输入可以被赋予年龄队列空间的相同的固定分配。此年龄队列空间足够大,从而为每个SQ/VC保留位置,并有足够的额外空间来覆盖请求/信用往返。管理它在其SQ/VC上被赋予的空间取决于输入。该分配(fixed_al/oc)可经由每个输入队列(INQ)中的控制和状态寄存器(CSR)进行编程,并且可以在例如64至96个位置的范围内。剩余的年龄队列空间(8K-64*fixed_al/oc)可以是所有输入可用的共享空间。共享空间可以由输出管理,如果共享空间中有余地,它会在传入请求到达时将其从静态空间移动到共享空间,但受每个输入的限制。当将请求移动到共享空间时,(例如,立即)经由信用交叉开关210c返回信用,并在年龄队列中将所述请求标记为处于共享空间中。
当请求被授权时,如果所述请求被标记为使用共享空间,则共享空间被记入信用。如果所述请求没有被标记为使用共享空间,则认为所述请求已经使用了静态空间,并且将信用与授权一起返回给输入。
由于信用交叉开关210c中的冲突,可能无法在每个时钟周期都发送信用。因此,FIFO为这些瞬态中断提供了缓冲。在从请求交叉开关获取请求之前,需要此FIFO中的空间。可以使用深度为32个位置的FIFO来限制它备份到请求交叉开关210a中的机会。共享空间对于任何输入(来自输入端口220b)可以占用多少空间可能具有限制。这些限制可以设置为可用空间的百分比。例如,如果限制被设置为50%,如果一个输入端口是活动的,则所述输入端口可以访问50%的缓冲区空间;如果是两个活动的输入端口,每个输入端口得到37.5%((space_used_by_l+pace_left*.5)/2=(50%+50%*.5)/2);如果是三个活动输入端口,每个输入端口得到29.2%((space_used_by_2+space_left*.5)/3=(75%+25%*.5)/3),等等。另外,活动的输入端口使用的总空间可以限制为给定的总数(50%、75%、87.5%)。因此,分配给每个输入端口220b的空间可以根据当前活动的输入端口的数量而动态变化。添加活动的输入端口会导致其他活动的输入端口放弃它们的空间,然后新的输入会占用这些空间。
考虑到划分在硬件中不容易完成,上述年龄队列信用管理功能可以实施为具有64个条目312的查找表310。年龄队列320中当前活动的输入的数量对查找表310进行索引315。查找表310中的值314反映了任何输入可以占用的共享空间位置数量以及它们整体可以消耗的总空间的限制。因此,由软件根据共有多少共享空间以及每个输入端口允许占用的百分比来对查找表310中的值314进行编程。随着更多的输入端口220b变为活动的,每个输入端口220b被允许的空间越来越少,并且可用的总空间会增加。不允许来自输入端口220b的在此限制以上或总量超过总空间限制的传入请求占用更多共享空间。为了跟踪年龄队列中活动的输入端口220b的数量,使用了一组64个计数器316(每个输入端口一个计数器)。当请求被放入年龄队列320中时,这些计数器会向上计数,并在其被取出(即,被授权)时向下计数。非零计数的数量的计数319用作查找表310的索引。另外,为了管理共享空间,可以使用附加的一组64个计数器318来跟踪每个输入对共享空间的当前使用情况。也可以存在可以用于跟踪整体的共享空间使用情况的单个计数器334。将这些计数器与当前配额进行比较,以确定是否允许请求使用共享空间。计数器316、318可以是例如13位宽,以提供对可能略小于8K的对象的最大值的足够覆盖。
年龄队列320可以使用其中具有8K个位置的单个存储RAM 321。这些位置可以动态地分配给32个单独的队列(每个SQ/VC一个队列),其中,每个位置由存储RAM 321内的位置链表组成。这使每个SQ/VC能够根据需要占用更多空间。
可以使用指向队列前面的前端指针322和指向队列中下一项的每个位置的下一指针324来创建年龄队列320。队列中的最后一个位置可以由后向指针326指示。项从队列的前面取出并插入到队列的后面。除了上述数据结构之外,每个队列在其头部都有条目的FIFO328。这些FIFO 328可以确保队列可以在来自请求RAM 321的多时钟读取访问时间的情况下在每个时钟维持请求。当新请求到达时,如果该队列的头部FIFO 328未满,则所述请求可以旁路请求RAM 321直接写入头部FIFO 328。一旦针对给定年龄队列的请求被写入请求RAM321,后续请求也被写入请求RAM 321以保持顺序。一旦请求RAM 321中不再有针对该年龄队列的请求并且头部FIFO 328中有余地,就可以再次使用旁路路径。当从头部FIFO 328读取请求,并且存在在请求RAM 321中排队的对应请求时,就发起出队。一次可以读取一个头部FIFO 328,使得可以在每个时钟周期发起单个出队操作。可以包括逻辑来处置正在进行或即将进行的入队操作与头部FIFO 328被读取之间的各种竞争条件。
上述用于年龄队列RAM 321的ECC保护可以扩展到FIFO 328以保护数据路径触发器。得到的结构可以包括8K个触发器(32个队列x深度5x SQ位宽)。在生成ECC时,可以将年龄队列编号包括在计算中(但不存储),作为空闲列表管理的额外检查。当检查ECC时,如果队列号比特中有MBE或SBE,则可以认为请求出错。
空闲列表RAM可以是简单的FIFO,每当执行复位时,所述空闲列表RAM都会使用指向所有8K个条目的指针进行初始化。可以维护计数以跟踪在空闲列表内有多少条目是有效的。当取出条目时,条目会从FIFO的前面弹出并使用。当返回条目时,条目被推送到FIFO的后面。空闲列表头部的某个数量的条目(例如,三个条目)可以保持在触发器中,以便这些条目可以被快速访问。与采用用于年龄队列的头部FIFO一样,ECC通过触发器携带以提供保护。得到的结构可以具有最少的触发器(57=深度3x19位宽)。
为了支持小包的全部性能,年龄队列支持每个时钟周期的入队和出队。针对入队操作的数据结构上的操作在下面讨论,并且可以取决于正在写入的队列是否为空而有所不同。
在某些情况下,由于使用和更新不同的字段,可以轻松处置针对特定队列的同时入队和出队。可能会出现某些特殊场景,例如,当出队操作清空年龄队列时。为了处置这种场景,逻辑上首先发生出队,然后是入队操作。因此,空标志被视为当队列被出队操作清空时被设置,并且然后由于入队操作而被清除。
可以在受制于输入缓冲区管理、输出缓冲区管理和流通道配额而允许被授权的请求之间执行上述仲裁。如果OFCT输入FIFO没有信用,也可以暂停仲裁。在一些实施例中,仲裁可以分两级执行。首先,流量整形仲裁可以用于在SQ之间进行仲裁。赤字轮询仲裁可以用于在给定SQ内的VC之间进行仲裁。流量整形仲裁可以使用如下的一系列令牌桶来控制每个SQ的带宽:八个叶桶,每个SQ一个叶桶;四个分支桶;以及单个头桶。
仲裁可以划分为三个分组,第一分组具有最高优先级,其次是第二分组,然后是第三分组。对于第一分组和第二分组,可以在有资格的SQ之间以相同的方式处置仲裁。对于八个优先级中的每一个,可以在SQ之间执行x8轮询仲裁(八个并行轮询仲裁)。可以在优先级之间执行固定仲裁。例如,分组3仲裁没有优先级,并且因此只是单个x8轮询仲裁。
对于第一分组中的仲裁,每个仲裁的优先级来自叶桶中的设置。对于第二分组中的仲裁,优先级来自叶桶分支中的设置。在所有情况下,如果该请求赢得仲裁,则被检查为符合该分组的资格的桶也是从中获得包大小令牌的桶。
关于年龄队列320选择,可以对包进行分类,以选择其请求将被转发到的SQ。这允许与应用相关联的流量与源自不同应用或不同流量分类的流量不同地整形。这在连接到NIC的边缘端口上可以是有用的,因为应用将被配置为使用节点上的资源共享,并且类似地将被授权一定比例的网络带宽。根据一个实施例,该分类是通过在包进入到结构时将包分类为流量分类标识符(FTAG)(例如,作为结构帧报头的一部分的4位代码)和VLAN ID(VNI)来执行。然后可以在包离开结构时使用FTAG和VNI来选择整形队列。
可以使用配置寄存器来将FTAG映射到SQ。此配置与入队列(in queue)中的对应的配置相匹配。当输出缓冲区请求或返回链路伙伴信用时,它会将给定的FTAG转换为SQ。对于包注入,FTAG位于R_TF_OBUF_CFG_PFG_TX_CTRL中。对于测试生成,FTAG位于测试控制寄存器中。当归约引擎(RED)请求信用返回时,FTAG位于ret_cdtJtag中。当从输出流中移除归约帧并且需要返回链路伙伴信用时,FTAG位于帧报头中。
关于本文讨论的SQ,每个年龄队列320可以有由{SQ,VC}寻址的32个SQ 330。3位SQ330可以被认为是整形函数,并且VC选择该整形函数内的四个队列之一。对于以太网出口(边缘)端口,不需要VC来避免死锁。因此,所有32个SQ 330都可用。在这种场景下,可以通过将来自R_TF_OBUF_CFG_FTAG_SQ_MAP的SQ基添加到VNI的较低位来选择SQ 330。5位总和定义了要发送到年龄队列的{SQ,VC}。应当注意,当在出口端口注入帧时,VNI不可用,并且因此可以直接使用SQ基。对于结构链路,SQ 330取自SQ基的较高三位。VC可以在返回归约帧的信用时从帧报头中获取、或者在注入帧时从适当的控制CSR(R_TF_OBUF_CFG_TEST_CTRL或R_TF_OBUF_CFG_PFG_TX_CTRL)中获取。
链路伙伴输入缓冲区管理可以取决于链路所附接的设备的类型。诸如交换机202等设备可以使用基于信用的流控制,其中,每个信用表示输入缓冲区中的存储单元。其他设备可以使用基于标准的以太网暂停或基于优先级暂停的流控制。标记为在本地终止(lacterm组)的请求不需要考虑链路伙伴输入缓冲区流控制,并且不需要更新任何相关联的计数器。当链路处于排空状态时,不需要考虑链路伙伴空间。
对于基于信用的流控制,链路伙伴输入缓冲区可以分为八个缓冲区分类。每个SQ330都可以被指派给这8个缓冲区分类之一。为每个缓冲区分类维护信用,其中,每个信用表示链路伙伴输入缓冲区中的32个字节的存储。为了允许基于信用的流控制与各种设备(交换机、增强型NIC)一起工作,每个设备可以具有不同的单元大小,单元大小是以32个字节为单位的可编程值。
可以有两个VC集,其中,每个SQ 330被指派给其中一个集。可以为每个VC保留最大帧大小的有用空间,并且每个VC集可以具有不同的最大帧大小。链路伙伴输入缓冲区的其余部分是任何SQ/VC均可使用的共享的动态空间,但受每个VC和缓冲区分类限制。
伴随请求的大小表示线路上的包的大小,其中包括4字节的FCS。在将包写入链路伙伴输入缓冲区之前,这会在链路伙伴处转换为内部2字节的FCS,因此信用需要考虑此差异,这可能是单元大小边界处所涉及的一个因素。例如,对于96字节的单元,97或98的大小将占用单个单元。为了知道何时发生这种情况,请求包括校正项,所述校正项计算如下:req.len_correct=(byte_len%16)==1或2。
需要进一步验证此项以将其转换为任何可能的单元大小边界。当长度刚好超过单元大小时该项才有效。在这种情况下,经验证的fen_correct项可以通过以下来确定:len_correct=(((16字节大小)%(2*32字节单元大小))==1)&req.len_correct
下表说明了这些值如何适用于少数单元和包大小的示例:
长度校正计算
Figure BDA0003321528280000191
伴随请求的大小使用8字节为单位,并且链路伙伴输入缓冲区单元大小是32字节的倍数(32*y,其中,y=来自CSR的单元大小)。首先,将8字节大小转换为16字节大小(ROUNDUP((8字节大小)/2))。而且,将单元大小转换为以16字节为单位(2*y)。数学上,请求将使用的单元的数量可以通过以下来计算:ROUNDDN(((16字节大小)+2*y-1-len_correct)/(2*y))=#个单元
虽然在硬件中可以进行划分运算,但由于时序原因,无法在仲裁的关键路径中完成划分运算。代替地,使用替代的信用管理。即,信用以32字节为单位进行维护。当请求赢得仲裁时,使用以下计算来根据最大误差项(2*y-1)调整占用的信用数:ROUNDDN(((16字节大小)+2*y-1)/2)=需要最大32字节的信用。因为此计算高估了包所需的信用,因此在接下来的时钟上,可以执行模运算(X=(16字节大小)MOD 2*y,y=来自CSR的32字节单元大小)来确定实际余数。此值与len_correct项一起用于调整信用计数器。用于为X创建调整值(adf_val)的公式是:如果(X==0),则adj_val=y-1,否则如果(X==1和fen_correct),则adj_val=y,否则,adj_val=ROUNDDN((X-1)/2)
下表说明了96字节单元的请求信用示例,所述示例示出了交换机输入缓冲区的96字节单元(y=3)在若干包长度中使用的值。
96字节单元的请求信用示例
Figure BDA0003321528280000201
如果请求在转发到链路伙伴输入缓冲区之前被过滤,则输出缓冲区逻辑返回SQ和VC,以便SQ和VC可以用于将信用返回到适当的信用计数器。不需要大小,因为包大小始终相同,即归约帧的长度(69字节或16字节大小=5)。
链路的本地(主)侧维护从两个集上的每个VC发送的包数量(共8个)的计数、发送到每个VC的包数量(4个)的计数(以32字节为单位),以及为每个缓冲区分类发送的包数量(8个)的计数(以32字节为单位)。链路的链路伙伴(从)侧维护相同的一组计数,并定期在链路上发送这些计数。主从计数之间的差异是来自两个集上的每个VC的链路伙伴输入缓冲区中的包数量的计数以及每个VC和每个缓冲区分类当前占用的空间量的计数(以32字节为单位)。还维护所有包使用的空间总量的计数。计数器的总结如下:master_vcx_cnt[4]/slave_vcx_cnt[4]——发送到集X中的每个VC的包数量的主从计数;master_vcy_cnt[4]/slave_vcy_cnt[4]——发送到集Y中的每个VC的包数量的主从计数;master_bc_cnt[8]/slave_bc_cnt[8]——每个缓冲区分类占用的空间量的主从计数,以32字节为单位;master_vc_cnt[4]/slave_vc_cnt[4]——每个VC占用的空间量的主从计数,以32字节为单位;master-tot-cnt/slave-tot-cnt——占用的空间总量的主从计数,以32字节为单位。
热复位时所有计数器都设置为零。当链路处于排空状态或设置DBG_RESET CSR位以清除计数器的状态时,计数器也被强制为零。输出缓冲区过滤器将归约包引导至到链路伙伴输入缓冲区的路径以外的位置。在这种情况下,信号可以与包的SQ和VC一起返回。同样,由于这些包的大小是固定的,因此不需要长度。此信息用于调整适当的主信用计数。
如果请求的VC计数为0(表明其一个静态指派的时隙可用)或动态空间中存在最大大小帧的空间(受目标缓冲区分类和VC限制),则允许所述请求参与仲裁。最大帧大小可以有单个可编程值,用于所有VC和SQ。输入缓冲区空间的请求校验可以使用基于信用的流控制来解决。
基于信用的流控制可以用于通过两种方式划分动态空间,每种方式彼此独立:首先,基于对四个VC中的每一个可以占用多少动态空间的限制;以及其次,基于对八个缓冲区分类中的每一个可以占用多少动态空间的限制。在这两种情况下,限制都设置为可用空间的百分比。对于给定的包,应在其目标VC和缓冲区分类两者中提供可用空间。例如,如果每个空间的限制设置为50%,如果一个空间是活动的,它可以访问50%的缓冲区空间,如果有两个活动的,每个空间获得37.5%((50+50*.5)/2),如果有三个活动的,每个空间得到29.2%((75+25*.5)/3),等等。而且,这些活动的空间使用的总空间可以限制为给定的总数(50%、75%、87.5%)。因此,分配给每一者的空间根据当前活动的数量而动态变化。当另外一个空间变为活动的时,其导致其他活动的空间放弃它们的空间中的某些空间,然后由新的一个空间占用这些空间。
如上面讨论的划分功能一样,此功能被实施为查找表。对于此示例中的VC空间,存在16个条目,其中,每个条目指定每个VC可用的空间以及所有VC可用的总空间。对于缓冲区分类,可以存在256个条目,其中,每个条目指定每个缓冲区分类可用的空间以及所有缓冲区分类可用的总空间。用于每一者的空间都以2048字节为单位表示。每个表的深度足以覆盖活动成员(VC或缓冲区分类)的所有组合,其中,每个组合都能够对这些组合的百分比进行独立设置。在这种情况下,由软件按照共有多少动态空间以及允许每个空间在所有可能组合中所占的百分比来对表中的值进行编程。随着更多成员变为活动的,每个成员被允许的空间越来越少,并且可用的总空间会增加。对在此限制以上或总量在总限制以上的空间的请求不允许占用更多动态空间。
如果VC或缓冲区分类在年龄队列中有请求或者如果VC或缓冲区分类有链路伙伴输入缓冲区空间的未完成信用,则认为所述VC或缓冲区分类是活动的。作为示例,考虑仅有4个空间(16个条目的表),百分比设置为SPACE0(50%)、SPACE1(40%)、SPACE2(30%)、SPACE3(10%),并且总动态空间为16KB。这将产生以下缓冲区空间示例表中给出的16字节为单位的值。
缓冲区空间示例
索引 SPACE3 SPACE2 SPACE1 SPACE0 总计
0 N/A N/A N/A N/A N/A
1 N/A N/A N/A 512 512
2 N/A N/A 410 N/A 410
3 N/A N/A 319 398 717
4 N/A 307 N/A N/A 307
5 N/A 250 N/A 416 666
6 N/A 255 339 N/A 594
7 N/A 202 270 337 809
8 102 N/A N/A N/A 102
9 94 N/A N/A 469 563
10 94 N/A 377 N/A 471
11 75 N/A 299 374 748
12 95 284 N/A N/A 379
13 78 234 N/A 389 701
14 80 239 319 N/A 638
15 79 236 315 394 1024
作为示例,索引7的行中的值计算如下:总计%=0.5+(1-0.5)*0.4+(1-0.5-(1-0.5)*0.4)*0.3=0.79;SPACE0=(0.5/(0.5+0.4+0.3))*0.79*1024=337;SPACE1=(0.4/(0.5+0.4+0.3))*0.79*1024=270;SPACE2=(0.3/(0.5+0.4+0.3))*0.79*1024=202;总计=337+270+202=809
如上所述,并返回参考图2,诸如交换机202等交换机可以用于创建交换机结构,其中,交换机端口220可以被配置为作为边缘端口或结构端口操作。还如上所述,交换机202可以支持各种网络拓扑,包括但不限于例如蜻蜓和胖树拓扑。网络可以被认为包括一个或多个切片,每个切片都具有相同的整体拓扑,尽管切片在每个切片的填充方式方面可以不同。节点连接到每个切片上的一个或多个端口。当网络具有多个切片、并且节点连接到多于一个切片时,假设该节点连接在每个切片中的相同位置。
交换机结构中的路由可以由在交换机202中实施的结构路由功能(FRF)来控制。示例FRF部件400在图4A和图4B中图示。应当理解,FRF部件400的单独实例可以在交换机202的每个端口的输入逻辑内实施。FRF部件400做出的路由决策可以应用于那些还不是已确立流的一部分的帧。应当注意,FRF部件400不一定知道特定帧是否与流相关联,而是为在输入端口处呈现的每个帧做出独立的转发决策。FRF部件400可以包括过滤器、表格、电路和/或逻辑(诸如选择电路/逻辑),以实现如本文所述的贯穿交换机结构的数据的路由。如所图示的,FRF部件400至少包括:最小端口选择部件402(其包括最小表部件402A)、各种端口过滤器(允许端口过滤器、操作端口过滤器、忙端口过滤器);优选端口鉴别部件402B;伪随机向下选择部件/逻辑402C;例外表404(包括例外清单表404A);包括全局故障表406A的操作端口部件406;以及路由算法表408。如图4B中所图示的,FRF部件400可以进一步包括:非最小端口选择部件410,其包括局部非最小选择部件410A和全局非最小选择部件410B;以及输出逻辑部件412,其包括自适应选择部件或逻辑412A。FRF部件400包括其他部件,并且在本文中被描述。
特别地,FRF部件400确定优选端口以基于以下来转发在输入端口处呈现的每个帧:所接收的帧的目的地结构地址(DFA);帧的当前路由状态(帧在其路径上的位置、以及到达其当前路由状态所取的(多个)路径);交换机结构路由算法和配置;以及与使用忙端口过滤器的可能的输出端口相关联的负载指标。
FRF部件400可以包括路由算法表408,该路由算法表可以体现为基于帧的当前路由状态确定有效选择的软件可配置表。有效的选择是诸如是否允许为帧的下一跳选择局部最小、全局最小、局部非最小、或全局非最小路径等决策。路由状态包括信息,诸如在其上接收到帧的VC、以及帧是在源、目的地还是中间分组中。路由算法表408连同自适应选择功能或逻辑412A(如下所述)还确定要用于帧的下一跳的VC。
以使用单播DFA的帧路由为示例来描述。但是,应当注意,路由请求的DFA可以是单播或多播格式。单播格式可以包括9位全局ID字段(global_id)、5位交换机ID字段(switch_id)、以及6位端点ID字段(endpoint_id)。全局ID可以唯一标识网络内的分组。具体地,全局ID标识帧必须传送到的最终分组。交换机ID唯一标识全局ID标识的分组内的交换机。端点ID字段与全局ID以及交换机ID一起标识连接到网络结构的边缘以及帧将被传送到的端点。该字段映射到由全局ID和交换机ID标识的交换机上的一个端口或一组端口。
多播格式包括13位的多播ID字段(multicast_id)。该字段由FRF部件400映射到帧要转发到的当前交换机上的一组端口。
根据该信息,FRF部件400确定帧的更新的路由状态,然后在帧内携带该状态。例如,为了在蜻蜓拓扑中实现路由,可以从帧的VC中收集帧的当前状态(上面讨论的)。基于为交换机结构指定的算法交换机结构路由规则(这些规则的选择在下面描述),FRF部件400确定要用于帧的下一跳的特定VC以避免任何死锁。可以取决于帧在其路径上的位置(例如,帧是在其源分组中、在中间分组中、还是在其目的地分组中)来提供额外的路由状态信息。应当注意,FRF部件400使用允许端口过滤器、操作端口过滤器、忙端口过滤器等来执行端口过滤(下文更详细地描述)以确定帧将被转发到的优选端口当前是否有故障、忙、缺席等。
交换机202在交换机之间分发负载信息。FRF部件400从其相关联的输出端口接收其负载测量值。FRF部件400从其相关联的输入端口接收相邻交换机的汇总负载信息。每个FRF部件400与相同交换机内的所有其他FRF实例交换负载信息。FRF部件400向其关联的输出端口提供汇总负载信息以用于传送到相邻交换机。通过负载分发机制,每个FRF部件400学习到在其交换机的每个输出端口处测量的负载。此外,每个FRF部件学习所有相邻交换机的汇总负载信息。
应当注意,FRF部件400可以支持帧多播。当接收到多播DFA时,FRF部件400确定与多播DFA相关联的帧应该被转发到的一组端口。可以通过访问将软件配置的多播结构地址映射到输出端口的查找表来确定该组端口。这可能有助于避免与重复多播帧副本相关联的问题。
如上所述,多播流量是基于多播转发表的配置静态路由的。更具体地,多播表标识多播包的副本应该被转发到的当前交换机的端口。这也隐含地确定了在该点生成的副本数量,因为对于在端口处接收的每个多播包,只有一个副本被转发到多播表标识为需要副本的每个其他端口。为了防止多播包的重复传送,多播转发过滤器取决于多播包起源的源分组而有条件地剪除多播包的副本。
图5图示了涉及候选端口的向下选择和基于负载的自适应路由选择的示例路由选择过程。FRF部件400考虑帧可以转发到的三类候选端口:优选最小路径候选端口502;非优选最小路径候选端口504;以及非最小路径候选端口506。取决于帧在其路径上的位置,非最小路径候选端口是全局非最小路径候选端口或局部非最小路径候选端口。
过滤可以应用于这三类候选端口,例如操作端口过滤、可用端口过滤以及忙端口过滤。本文应用的端口过滤可以用于通过识别缺席和/或故障端口并将其排除在考虑之外而减少被视为路径候选端口的一组有效端口。
操作端口过滤(或非操作端口过滤)可以指从被视为路由候选的多组端口(例如,优选最小路径候选端口502、非优选最小路径候选端口504以及非最小路径候选端口506)中移除非操作端口。即,交换机202可以将一些端口识别为非操作的。这些非操作端口可以在非操作端口掩码中报告。应当注意,在一些实施例中,软件可以使用非操作端口CSR强制将交换机202的附加端口视为非操作的,例如,当(多个)端口由于计划的维护而断开时。
可用(或不可用)端口过滤可以涉及过滤出以下候选端口以供考虑:候选端口通常是可接受的,但由于网络100内的故障,例如,对于到达一个或多个目的地交换机、目的地(交换机)分组等而言,候选端口已变得不可接受/不可用,但对于到达一个或多个其他目的地交换机而言,仍然可接受或可用。在一些实施例中,全局故障表406A可以用于取决于帧被路由的目的地分组来阻塞全局最小路径端口候选和全局非最小路径端口候选。例如,在将帧路由到特定目的地(交换机)分组时,可以排除考虑通向中间(交换机)分组而没有连接到该目的地分组的候选端口,但是对于其他目的地分组,不一定会阻塞相同的候选端口。全局故障表406A可以由帧的DFA的global_id字段确定或索引。
在一些实施例中,由例外清单表404A维护的例外清单可以用于取决于帧被路由到的目的地分组或交换机而有条件地排除端口候选。应当注意,例外清单表440A可以用于识别优选全局最小路径端口。因此,当不是使用例外清单表来识别优选全局最小路径端口时,使用例外清单表404A来排除候选端口。
应当注意,关于相邻交换机中哪些端口忙的知识可以用于基于相邻交换机随后是否需要将帧转发到已经较忙的端口来确定连接到相邻交换机的端口是否是用于接收所转发帧的较差候选。例如,当考虑用于全局最小路由的候选端口时,如果连接到帧的目的地分组的相邻交换机的全局端口都忙,则连接到相邻交换机的端口是较差的候选,全局端口指代连接到属于不同交换机分组的其他交换机的端口。类似地,当在目的地分组中考虑用于局部非最小路由的候选端口时,如果连接到帧的目的地交换机的相邻交换机的局部端口都忙,则连接到相邻交换机的端口是较差的候选。
因此,忙端口过滤可以由FRF部件400通过使用忙端口掩码以移除严重负载的端口而不被视为候选端口来执行。应当注意,在一些实施例中,当存在未严重负载的其他候选端口时,严重负载的端口被排除在考虑之外。否则,当不存在未严重负载的端口时,忙端口过滤不会将严重负载的端口排除在考虑之外。FRF部件400维护四个忙端口(即负载超过软件定义的阈值的端口)掩码:局部交换机忙端口掩码;全局非最小忙全局端口掩码;全局非最小忙局部端口掩码;远程交换机忙端口掩码。在交换机之间传送来自这些掩码的信息以填充远程交换机。
局部交换机忙端口掩码可以应用于最小路径候选端口以及局部非最小路径候选端口。FRF通过将每个端口的local_load与软件定义的阈值进行比较来生成64位ls_busy_port_mask。负载高于该阈值的端口在该掩码中被标记为忙。
全局非最小忙端口全局掩码可以应用于全局非最小路径候选端口的全局端口。FRF通过将每个端口的gnmgp_load与软件定义的阈值进行比较来生成64位gnmbgp_mask。
负载高于该阈值的端口在该掩码中被标记为忙。
全局非最小忙局部端口掩码可以应用于全局非最小路径候选端口的局部端口。FRF通过将每个端口的gnmlp_load与软件定义的阈值进行比较来生成64位gnmblp_mask。
负载高于该阈值的端口在该掩码中被标记为忙。
从远程交换机忙全局端口表中获得的目的地分组相关忙端口掩码可以应用于全局最小路径候选端口。相应地,当在帧的目的地分组中路由该帧时,从远程交换机忙局部端口表中获得的目的地交换机相关忙端口掩码可以应用于局部非最小路径候选端口。
在应用上述过滤或向下选择阶段时,可以产生一组幸存的路径候选端口508。即,在移除非操作和不可用、严重负载的端口候选之后,可以确定减少数量的候选端口,剩下一组路径候选端口。在一些实施例中,伪随机选择过程用于将幸存的路径候选端口508的数量进一步减少到与每个候选端口类别(优选最小路径候选端口、非优选最小路径候选端口以及非最小路径候选端口)相关联的所确定的端口阈值数量。在一些实施例中,该候选端口的阈值数量可以是每个类别四个候选端口。如果未满足候选端口的最小阈值数量,则该类别中的任何候选端口都不会被排除在考虑之外。
在一些实施例中,可以对候选端口的这种伪随机选择(或向下选择)进行加权。即,可以逐CSR配置地为每个端口指派权重,例如0到15之间的权重。该加权可以用于影响选择各个候选端口的概率,使得更高权重的端口有很大的机会被选择。例如,权重为15会导致端口在伪随机选择过程中被选择的可能性为原来的15倍。在一些实施例中,可以基于候选端口被指派的权重来将这些候选端口过滤到四个分组(GW1、GW2、GW4、GW8)中,其中,候选端口可以取决于被指派的权重而属于多个分组,例如,具有权重1的候选端口仅属于一个权重分组,而具有权重5的候选端口属于两个分组(GW1和GW4,即,1+4=5),具有权重15的候选端口属于所有四个分组(Gw1、GW2、GW4、GW8,即,1+2+4+8=15)。可以确定每个分组中的候选端口的数量(nW1、nW2、nW4、nW8),并对每个分组应用伪随机选择以从每个分组中选择一个候选端口(cW1、cW2、cW4、cW8)。可以计算每个分组的权重以及它们的总权重:wW1=nW1;wW2=2*nW2;wW4=4*nW4;wW8=8*nws;wtotal=wW1+wW2+wW4+wW8。可以执行第五次伪随机选择来选择范围0…Wtotal-1中的数字j。基于j的值,如下选择候选cW1、cW2、cW4、cW8之一作为向下选择的候选端口:如果j<wW1,则选择cW1;否则如果j<wW1+wW2,则选择cW2;否则如果j<wW1+wW2+wW4,则选择cW4;否则,选择cW8。
由于操作状态和负载的改变,每个分组中的端口数量可以因请求而异,并且还可以取决于全局故障表406A的配置。例如,端口数量也可以取决于正在执行路由请求的端口的类型而变化,即,边缘端口与局部端口。假设操作状态和负载没有变化太快,并且全局故障表406A的配置对于不同的global_id值不应该有很大变化,每个伪随机生成器之前生成的值简单地用作用于使其下一个值偏置的偏移量。如果偏移值超出范围(>n-1),则通过截断高位将该偏移值置于范围内。mgnm=4个候选端口由伪随机向下选择过程产生。如上所述,每个候选可以通过加权的伪随机向下选择逻辑410C的单独副本产生。
应当注意,相同的候选端口可以通过加权的伪随机向下选择逻辑410C的实例/迭代中的多于一个实例/迭代来选择,实际上减少了被选择的候选端口的数量。相同候选端口被mgnm=4个全局非最小加权的伪随机选择器中的多于一个选择器选择的概率随着可供选择的候选端口数量的增加而降低。在例如蜻蜓拓扑,并且具有完整全局带宽的网络的上下文中,在源分组中的边缘端口处可能存在大约48个可能的全局非最小候选端口:16个全局端口和32个局部端口。如果局部跳已经被占用,则下一跳是全局跳,由此将候选端口的数量减少到大约16个。然而,如果网络是锥形的,使得该网络仅支持完整全局带宽的四分之一,则在局部跳已被占用之后,可能仅有4个全局候选供选择。选择四个唯一全局非最小候选端口的概率表明了对于供选择的不同数量的可能候选而言选择四个唯一候选端口的概率。选择n个唯一全局非最小候选端口的概率表明了当仅有16、8或4个候选端口供选择时、不同数量的四个所选候选是唯一的概率。
FRF部件400可以使用所接收的远程交换机忙端口掩码来生成上述忙端口掩码的远程交换机忙全局端口表,这些忙端口掩码标识连接到相邻交换机的端口基于帧被路由到的目的地分组应当避免作为全局最小路径候选。类似地,也可以使用所接收的远程交换机忙端口掩码来生成上述忙端口掩码的远程交换机忙局部端口表,这些忙端口掩码标识连接到相邻交换机的端口基于帧被路由到的目的地交换机在目的地分组中路由时应当避免作为局部非最小路径候选。
rs_busy_port_mask用于评估相邻交换机(相邻交换机的端口是忙还是安静)经由全局最小路径到达特定目的地分组以及经由局部非最小路径或经由局部最小路径到达特定目的地交换机的适用性。对应于局部端口或全局端口的每个FRF实例可以被配置为生成64位rs_busy_port_mask。将所生成的掩码传送到连接到该端口的伙伴交换机。类似地,伙伴交换机也可以生成并返回rs_busy_port_mask。
每个FRF实例将其从其伙伴交换机接收的rs_busy_port_mask使用端口状态环(该端口状态环连接交换机的瓦片并在交换机上的端口之间传送状态和负载信息)传送到交换机的所有其他FRF实例。每个FRF实例捕获所有rs_busy_port_mask,使得所有FRF实例学习所有相邻交换机提供的远程忙端口状态。每个FRF实例使用其接收到的rs_busy_port_mask来生成远程交换机忙全局端口(RSBGP)表和远程交换机忙局部端口(RSBLP)表中描述的忙端口表。
rs_busy_port_mask的生成过程分为两步。第一步是将每个端口的local_load与软件可配置的进行比较,生成所有各自忙的端口的中间掩码。该中间掩码是在从端口状态环接口接收到每个端口的状态时形成的。被分类为非操作的端口在中间掩码中也被记录为忙。第二步考虑链路捆绑,使得仅在端口和作为相同捆绑的一部分的所有其他端口在中间掩码中被标记为忙的情况下才在rs_busy_port_mask中将该端口标记为忙。作为相同捆绑的成员的所有端口在rs_busy_port_mask中都标记为忙、或者都不标记。作为相同捆绑的一部分的全局端口都连接到相同的远程分组。作为相同捆绑的一部分的局部端口都连接到当前分组内的相同的远程交换机。
在使用rs_busy_port_mask来确定生成掩码的交换机是否是将帧路由到另一个分组或当前分组中的另一个交换机的良好候选,使用捆绑在其连接到目的地分组或当前分组中的目的地交换机的链路上的忙状态不一致时提供生成交换机的适用性的一致视图。这里描述的捆绑处理的基本原理在于,生成rs_busy_port_mask的交换机仍然是到达目的地分组或当前分组中的目的地交换机的候选,只要该交换机至少有一个不忙的链路到目的地分组或交换机即可;生成rs_busy_port_mask的交换机上的自适应路由应当将帧引导到非忙链路。
端口必须包括在捆绑端口掩码CSR或非捆绑端口掩码CSR(这两个CSR都是接线的静态描述的一部分)中,以便在rs_busy_port_mask中将这些端口标记为忙。当从端口状态环接收每个帧时执行第二步。扫描捆绑端口掩码以识别它们包含的捆绑和端口。另外,查询非捆绑端口掩码以识别任何其他端口,这些端口不是捆绑的成员,但其忙状态也应当包括在所生成的rs_busy_port_mask中。
不同的软件定义的阈值用于计算rs_busy_port_mask,因为在传送和处理rs_busy_port_mask以及将受该掩码约束的帧传送到生成掩码的远程交换机时涉及更大的时延。由于更大的时延,可能有用的是在端口被认为非常忙以至于该端口不是从远程交换机接收附加帧的良好候选之前需要端口负载更多。忙的远程端口应当负载足够使得该端口在接收已经受掩码约束的帧所占用的整个时间内保持是负载的。
上述RSBGP表存储由目的地分组(global_id)索引的忙端口掩码。同样,RSBGP表用于评估全局最小路径,这些全局最小路径由到具有连接到目的地分组的全局端口的相邻交换机的跳组成,以过滤掉当前交换机的以下端口,在到达目的地分组时使用这些端口是较差的选择,因为当前交换机的过滤掉的端口到达的相邻交换机的对应的一个或多个全局端口负载严重。
RSBLP表存储由目的地交换机(switch_id)索引的忙端口掩码,并且同样可以用于评估局部非最小路径,这些局部非最小路径由到相邻交换机的局部跳、以及紧接着的到目的地交换机的另一个局部跳组成。对于如胖树等拓扑,其中局部最小路径可以由到相邻交换机的局部跳和紧接着的到目的地交换机的另一个局部跳组成,RSBLP表也可以用于评估局部最小路径。RSBLP表用于过滤掉当前交换机上的端口,在间接到达目的地交换机时使用这些当前交换机上的端口是较差的选择,因为连接到目的地交换机的相邻交换机的一个或多个端口负载严重。
应当注意,对于相同的路由请求,RSBGP表和RSBLP表永远不会被同时访问。当不在目的地分组中路由帧时访问RSBGP表,而仅当在目的地分组中路由帧时访问RSBLP表。因此,两者都在相同的存储器(称为远程交换机忙端口)内实施。
倘若存在至少一个有效的候选端口,则可能不允许各种忙端口过滤器(忙端口过滤器、局部非最小(LN)忙端口过滤器、全局非最小(GN)忙端口过滤器)共同阻塞所有候选端口。如果存在可行的候选端口选择,如果没有更好的选择,即使这些可行的候选端口选择是“较差的”选择,也允许它们。否则,当路由实际可用时,将为路由请求生成空路由响应。
为了防止生成不正确的空路由响应,如果以下条件全部为真,则将优选和非优选最小路径忙端口过滤器的第一阶段(图4A)和局部非最小路径忙端口过滤器的第一阶段(图4B)全部禁用:没有候选在优选最小路径忙端口过滤器(忙端口过滤器)的第一阶段幸存下来;没有候选在非优选最小路径忙端口过滤器(忙端口过滤器)的第一阶段幸存下来;没有候选在局部非最小忙端口过滤器(局部非最小(LN)忙端口过滤器)的第一阶段幸存下来;并且没有候选在全局非最小忙端口过滤器(全局非最小(GN)忙端口过滤器)处幸存下来。
应当注意,如果禁用最小路由,则将不存在最小路径候选端口(允许端口过滤器)。只有启用了局部非最小路由,才会存在局部非最小路径候选端口(候选局部非最小路径端口)。只有启用了全局非最小路由,才会存在全局非最小路径候选(候选全局非最小路径端口)。通常不会同时启用局部和全局非最小路由。当优选和非优选最小路径忙端口过滤器以及局部非最小忙端口过滤器的第一阶段由于上述条件被禁用时,将在自适应选择阶段(如下所述)看到的唯一候选端口将是较差的候选,因为这些候选端口都将是通向其他交换机的端口,这些其他交换机的端口(这些端口连接到目的地分组或目的地交换机)负载严重。这是因为这些端口是被禁用的过滤器阻塞的唯一的候选端口,并且在没有禁用这些过滤器的情况下,不存在其他候选。
自适应选择阶段将在这些剩余/幸存的候选端口之间基于它们偏置的局部负载(局部负载和负载值选择)进行选择,但是它们的局部负载不一定反映它们较差的原因。它们较差的特性可能是由于这些候选端口到达的其他交换机的某些端口上的高下游负载。这是因为自适应选择阶段可能无法看到这些候选有多差,所以可以使用本文描述的不同忙端口过滤器之间的协调。如果每个忙端口过滤器独立决定是否禁用其基于RSBGP表和基于RSBLP表的过滤器,则可能出现如以下等情况。非优选最小路径忙端口过滤器可能会产生一个或多个不差的候选,而不禁用其任何过滤器阶段。优选最小路径忙端口过滤器可能只能通过禁用其两个过滤器阶段来产生一个或多个候选端口。因此,优选最小路径忙端口过滤器能够产生的所有候选端口都较差。在自适应选择阶段,将向下选择的、不差的、非优选最小路径候选端口与向下选择的、较差的、优选最小路径候选端口进行比较。然而,自适应选择阶段缺乏对优选最小路径候选有多差的可见性,因此它可能会选择较差的优选最小路径候选而不是不差的非优选最小路径候选。
本文描述的忙端口过滤器协调机制的替代机制是所有忙端口过滤器独立动作,但最小路径和局部非最小路径忙端口过滤器各自将信号转发到自适应选择阶段来指示它们各自的候选端口是否由于下游交换机的端口忙而是较差的选择。如果是,自适应选择功能可能会降低其候选端口的优先级,以支持其他端口。结果将与通过本文描述的各种忙端口过滤器之间的协调所实现的结果相同。
如图5中所图示的,可以对FRF部件400执行伪随机选择过程之后剩余的幸存的路径候选端口510执行基于负载的自适应选择。自适应选择阶段将产生单个、负载最少的候选端口512,帧可以路由到该候选端口,其中,将在伪随机向下选择中幸存下来的候选端口(幸存的路径候选端口508)上存在的当前负载进行比较以确定在这组剩余的候选端口中负载最小的候选端口。
在一些实施例中,优选最小路径候选端口优先于非优选最小路径候选端口而被选择,并且最小路径候选端口优先于非最小路径候选端口而被选择。为了完成该优先选择,在执行自适应选择比较之前,可以将偏置值添加到每个候选端口的负载。所使用的偏置值可以使用CSR来配置,并且可以取决于应用该偏置值的路径的类型(即,非优选最小、优选最小、以及非最小)、被路由的帧的流量分类以及帧在其路径上的位置而变化。例如,与其他流量分类中的帧相比,属于低时延流量分类的帧可以更倾向于偏向最小路径,以更有可能实现/符合低时延要求或需求。帧也可能越偏向于最小路径路由,帧越接近其目的地。
应当理解,每个偏置的负载值(9位宽)是通过将无符号(8位宽)偏置值与无符号(8位宽)端口负载值相加获得的。为了确定适用于每个候选的偏置值和负载值的类型,前面的最小端口选择和非最小端口选择阶段将候选端口分成三个不同的类别。偏置值是从软件可配置表(即,偏置表414A(下面更详细地描述)中获得的。确定用于每个端口的负载值的类型,并产生最小优选候选端口(其包括边缘端口候选(如果存在))、非最小候选端口(取决于路由算法表408的配置而是全局或局部非最小候选,其中,一组全局非最小候选端口可以包括全局和局部端口两者,而一组局部非最小候选端口仅包括局部端口)。取决于执行路由请求的点,沿着源边缘端口与目的地边缘端口之间的路径,类别可能不包含任何候选。例如,当在目的地交换机上,使用典型的配置时,只有最小非优选类别将包含单播流量的任何候选。
为了使偏置能够随帧朝着其目的地前进而改变以及允许偏置取决于帧的FTag,偏置表414A的条目由沿该帧的路径的帧的点(例如,在源分组上、在中间分组上、在目的地分组上)和该帧的FTag偏置分类两者来索引。FTag偏置分类是从帧的FTag值得到的值。偏置表中的每个条目提供三个偏置值:一个用于最小优选候选端口,一个用于非优选最小候选端口,并且一个用于非最小候选端口。
在一些实施例中,还实施了偏置的负载覆盖(override),其中,如果从偏置表414A获得的候选类别的偏置值是最大可能偏置值,则该类别的处理方式与其他偏置值的处置方式不同。特别地,无论端口的负载如何,都不会选择应用了最大偏置值的端口,除非没有其他选择可用。然而,如果将最大可能偏置值应用于所有可用端口,则选择具有最低偏置负载的可用端口;在这种情况下,与最大可能偏置值相关联的不同处置被覆盖。
特别地,负载值表示交换机202的端口的忙碌情况并且用于评估基于负载的端口掩码以及在自适应路由选择过程期间比较候选端口。在忙端口过滤器中使用基于负载的端口掩码,以基于当前的负载从被考虑的一组候选中移除作为较差候选的端口。交换机内使用了多个不同类型的负载值,并且将一些负载值传送到相邻的交换机设备。这些负载值在以下部分中描述,请注意,图6图示了如何测量、传送、以及使用负载值。
当存在帧可以被路由到的多于一个端口时,计算并使用若干负载指标来确定用哪个端口来路由帧。负载指标还用于生成忙端口掩码,如上所述,这些忙端口掩码用于将严重负载的端口排除在考虑之外。
本文描述了五个负载指标:局部负载;分组负载;全局非最小全局端口负载;平均全局负载;以及全局非最小局部端口负载。
关于局部负载,交换机的每个输出端口(例如,交换机202的输出端口220c)的负载不断被评估并作为8位值local_load提供给对应的FRF实例。越大的值表示越高的负载。每个输出端口处存在的当前负载由输出控制年龄队列块测量。输出端口负载由每个年龄队列实例提供给与相同端口的输入侧相关联的(FRF部件400的)FRF实例。提供给FRF的负载值是8位值,称为local_load。年龄队列基于排队、等待离开该端口的流量量和在链路伙伴交换机设备的输入缓冲区中的链路的另一侧处排队的流量量的组合来确定局部负载。local_load的计算和配置在稍后进行。每个FRF实例将该FRF实例从其关联的年龄队列实例接收的local_load值分发给所有其他FRF实例。以这种方式,每个FRF实例都会学习到每个输出端口的当前local_load。
当比较候选端口的端口负载以确定将帧路由到的最佳端口时,是将端口的local_load值用于进行最小路径路由所考虑的端口以及用于进行局部非最小路径路由所考虑的端口。
分组负载是衡量蜻蜓分组用作全局非最小路径中的中间分组的适当程度的度量。8位分组负载值不是由诸如交换机202等交换机计算的,而是软件可配置的。软件可以使用在分组的边缘端口的输入侧上存在的网络注入负载的度量来得出group_load值,或者可以基于不鼓励(也许基于在分组中运行的作业或服务来不鼓励)将某些分组用作非最小中间分组的策略来确定group_load值。即,group_load值旨在表示分组内的局部流量量。
网络管理堆栈通过周期性地写入CSR来设置group_load值。软件配置的分组负载值通过全局链路进行传送。与全局链路相关联的FRF实例将这些FRF实例从链路另一侧处的分组中的其链路伙伴接收的group_load值转发到交换机中的所有其他FRF实例。以这种方式,每个FRF实例学习到在交换机终止的每个全局链路的相反端处的分组的分组负载值。
在全局非最小全局端口负载(gnmgp_load)方面,该负载是用于评估全局端口用于将帧引导到连接到全局端口的全局链路所到达的中间分组的适用性的度量。gnmgp_load名义上等于全局端口的local_load和从全局链路到达的分组接收的group_load值中的最大值。然而,通过CSRR_TF_FRF_CFG-_LOAD_CTRL中的字段G-NMGP_EN_GRP LD,可以排除group_load分量。
当比较候选端口的端口负载以确定将帧路由到的最佳选择端口时,是将端口的gnmgp_load值用于进行全局非最小路径路由所考虑的全局端口。
平均全局负载(mean_global_load)旨在用于评估交换机用于到达直接连接到该交换机的任何中间分组的适用性。mean_global_load值是8位值,等于所有交换机全局端口的gnmgp_load值的算术平均值。被硬件或软件分类为非操作的端口被排除在计算之外。要包括在mean_global_load计算中的端口从CSR R TF FRF CFG GNM全局端口中确定。
对于其负载包括在mean_global_load计算中的任何端口,如果未从端口状态环接收到该端口的group_load值(要么是因为未收到该端口的链路伙伴数据、要么是因为正接收的链路伙伴数据不是全局链路数据),则该端口对mean_global_load的贡献仅基于该端口的局部负载。应当理解,上述端口状态环在交换机上的端口(例如,分别为交换机202的输入和输出端口220b和220c)之间传送状态和负载信息。所计算的mean_global_load值通过局部链路进行传送。与局部链路相关联的FRF实例将这些FRF实例从链路的另一侧处的局部交换机中的其链路伙伴接收到的mean_global_load值转发到交换机中的所有其他FRF实例。以这种方式,每个FRF实例学习到由交换机终止的每个局部链路的相反端处的局部交换机的mean_global_load值,并可以将这些值用于全局非最小路径选择。
全局非最小局部端口负载指标由每个FRF实例计算,使用端口状态环在交换机中的端口之间分发,以及在交换机之间分发。全局非最小局部端口负载是用于评估局部端口用于将帧引导到全局非最小路径的中间分组的适用性的指标。全局非最小局部端口负载考虑局部端口上的负载以及端口所连接的局部分组交换机用于到达中间分组的适用性。端口的gnmlp_load值等于端口的local_load和端口的伙伴交换机报告的mean_global_load中的最大值。通过软件配置,可以移除mean_global_load分量,使得端口的gnmlp_load变得简单地等于该端口的local_load。
gnmlp_load值是8位值。所计算的gnmlp_load值基于经由端口状态环分发的local_load和mean_global_load值。每个FRF实例计算该FRF实例的所有交换机端口的gnmlp_load值,在这些端口处接收局部链路的链路伙伴数据。如果未从端口的伙伴交换机接收负载状态信息,则该端口的gnmlp_load值设置为等于端口的local_load。
对于接收全局链路的链路伙伴数据的端口,将端口的gnmlp_load值设置为针对gnmgp_load计算的值。这是实现优化的附带效果,其中,gnmgp_load和gnmlp_load使用相同的存储,因为对于任何给定的端口,两者中的最多一个是有效的。全局非最小局部端口负载指标不在接收全局链路伙伴数据的端口上使用。
图6图示了示例负载测量值以及如何可以在分组中的交换机之间交换负载测量值。图6图示了一组交换机,例如包括交换机602、604、以及606的分组1,其中每个交换机都可以是交换机202(图2)的实施例。如上所述,分组负载值可以通过全局链路交换,并且如图所示,从交换机结构中的其他分组/交换机的交换机602、604、以及606中的每一个发射/由其接收group_load值。在分组1内,交换机602、604、以及606交换mean_global_load值和rs_busy_port_mask。如上所述,每个FRF实例捕获所有rs_busy_port_mask,使得所有FRF实例学习所有相邻交换机提供的远程忙端口状态。交换机602也被示为接收gnmlp_load值,其中,这些值在局部端口的输出处基于该端口处的local_load和链路伙伴报告的mean_global_load测量。更进一步,在所有端口的输出处测量的local_load值由交换机602接收。应当注意,这样的负载和掩码值是通过连接的交换机之间的链路从每个交换机对称地发送到另一个交换机的。
对所接收的每个帧执行前面小节中描述的结构路由过程。交换机根据流量的排序要求确定是执行逐包自适应路由(使用该值)还是基于流的自适应路由(其中,将该值用于每个流中的第一个包)。
如本文已经描述的,诸如交换机202等交换机支持网络中的最小和非最小路径路由。在一些实施例中,如上所述,网络可以具有蜻蜓拓扑。蜻蜓路由是分层的,区分局部目的地(与源在相同分组中的局部目的地)和全局目的地。因此,在蜻蜓网络中,交换机使用两个表来路由到目的地分组并且然后路由到该分组内的交换机,而不是使用一个大表来路由到各个目的地。
应当理解,最小路径是基于目的地的。如果目的地NIC是局部的,则选择连接到目的地交换机的输出端口。如果目的地在另一个分组中,则将包路由到连接到目的地分组的局部分组内的交换机。在大型系统中,可能仅有一个这样的路径,但在小型系统中可能有许多这样的路径,一些路径连接到输入交换机,而其他路径连接到其分组内的其他位置的交换机。输入交换机在它们之间进行选择。
考虑用于最小路径路由的候选端口进一步划分为优选和非优选端口组,其中,所述优选组中的端口可以导致路径包含较少的跳数。非最小路径经由中间交换机(称为根交换机)来路由包。取决于流量的排序要求,以逐包或逐流的方式选择根交换机。
将非最小流量“向上”路由到根交换机,然后最小地“向下”路由到目的地。在一些实施例中,随机选择中间根交换机以便均匀分发负载。网络(例如,网络100)提供对中间分组选择的控制,使流量能够被朝已知负载较轻的中间分组路由或远离具有特定功能或已知负载严重的分组路由。根交换机可以分布在所有分组中,其中,非最小路径可以检测到源分组、目的地分组、或任何中间分组中的根交换机。全局非最小路由通过中间分组中的根交换机来采用间接路径。这些路径需要两个全局跳,一个从源分组到中间分组,一个从中间分组到目的地分组。全局非最小路径需要最多三个局部跳,每个分组一个局部跳。无论系统大小如何,最大路径长度都是五个交换机到交换机的跳。
由于路径更短,因此优选最小路由,由此网络负载更低。但是,单独的最小路由会导致某些流量模式的性能较差,例如当一个分组中的所有节点与另一个分组中的节点通信时。在广泛的流量模式中实现良好的性能需要最小路由和非最小路由的混合。
在沿帧的路径的每一跳处,可以用于使帧沿其下一跳前进的路由模式由FRF路由算法表408的配置来控制。当在交换机输入端口处接收到帧时,确定可以与帧一起转发的路径类型:局部最小、全局最小、局部非最小、以及全局非最小。帧可以被转发到的一组输出端口由该点处允许的路径类型确定。
允许采用的路径类型取决于帧在其网络入口端口与出口端口之间的行程中所处的位置。路径类型如下。局部最小路径选择直接连接到帧的目的地交换机的链路,并且可以在帧在其目的地分组中时使用。当帧不在其目的地分组中时,可以使用全局最小路径,并选择直接连接到帧的目的地分组的全局链路或连接到具有直接连接到帧的目的地分组的工作全局链路的交换机的局部链路。当帧在其目的地分组中时或者当帧在中间分组中时,可以使用局部非最小路径。局部非最小路径选择连接到分组中其他交换机的局部链路,而不考虑帧的目的地。当在目的地分组中时,在进行局部非最小跳之后,必须能够在另一跳内到达帧的目的地交换机。当在中间分组中时,在进行局部非最小跳之后,必须能够在另一跳内到达具有连接到帧的目的地分组的工作全局链路的交换机。不能选择连接到不可能做到这样的交换机的局部链路。
当帧在其源分组中而不在其目的地分组中时,可以使用全局非最小路径。全局非最小路径选择连接到其他分组的全局链路或连接到源分组中的其他交换机的局部链路,而不考虑帧的目的地。仅当全局链路连接到具有将其连接到帧的目的地分组的工作链路的分组时,才必须选择全局链路。类似地,仅当局部链路连接到具有全局链路(这些全局链路本身就是有效的全局非最小路径选择)的交换机时,才必须选择局部链路。
自适应路由根据最小与非最小路径(如上所述)当前的负载在它们之间进行选择。
在最小路由方面,当在目的地分组中而不是在目的地交换机处时,通过在局部交换机最小表中查找目的地结构地址的switch_id字段来生成局部最小路由(图4A)。该查找返回一组有效链路。局部交换机最小表包含128个条目,每个条目64位,其中,每个位表示一个可能的输出端口。在目的地交换机处时,通过在局部端口最小表中查找目的地结构地址的endpoint_id字段来生成出口端口或端口选择。该查找返回一组有效链路。局部端口最小表包含64个条目,每个条目64位,其中,每个位表示一个可能的输出端口。
通过在全局最小表中查找目的地结构地址的global_id字段来生成全局最小路由(图4A)。该查找返回一组有效链路。全局最小表包含512个条目,每个条目64位,其中,每个位表示一个可能的输出端口。
局部最小路径从源交换机到目的地交换机最多占用一个交换机到交换机的跳,源交换机和目的地交换机在相同分组内。可以存在若干个这样的路径。局部非最小路径占用两个交换机到交换机的跳,两者为从源交换机到中间交换机(称为根交换机)、以及从中间交换机到目的地交换机。存在许多这样的路径。
全局最小路径从源分组到目的地分组需占用一个全局跳。在源分组和目的地分组两者中最多有一个局部跳。无论系统大小如何,全局最小路径最多需要三个交换机到交换机的跳。
在其中存在将源分组连接到目的地分组的多个全局链路的一些系统配置中,可能出现偏置,使得在源分组处注入的流量分发到每个全局链路的比例不相等。作为示例,考虑交换机A、B、以及C(都在分组X中)的情况,其中,交换机B具有三个全局链路将其连接到分组V,并且交换机C具有两个全局链路将其连接到分组V。如果在交换机A处注入的去往分组V的流量在交换机B与C之间均等地分发,则交换机C的两个全局链路中的每个全局链路都将比交换机B的三个全局链路中的每个全局链路负载更重。
为了能够抵消偏置,可以将全局最小表划分为若干个块,每个块都能够为任何目的地分组生成一组有效的全局路由选择。以逐帧的方式,由FRF伪随机地选择用于服务请求的块。在每个全局最小表块实例内,仅填充可以用于到达目的地分组的可能的候选端口的子集。以抵消偏置的方式来选择该子集。所填充的子集可以在不同的块实例之间变化,使得能够使用所有可能的候选端口。
一个分组中的边缘端口与另一个分组中的边缘端口之间的全局最小路径可能需要跨结构链路的一跳、两跳、或三跳。如果源分组中包含入口边缘端口的交换机具有直接将其连接到目的地分组中包含出口边缘端口的交换机的全局链路,则为一跳。如果帧经过直接连接到源分组中的入口交换机或目的地分组中的出口交换机的两个分组之间的全局链路,则为两跳。在这种情况下,还需要跨源分组或目的地分组中的局部链路的一跳。最后,如果帧经过的全局链路既没有直接连接到源分组中的入口交换机、也没有直接连接到目的地分组中的出口交换机,则需要三跳。在这种情况下,源分组和目的地分组两者中也需要跨局部链路的跳。源分组中的局部链路跳将帧从入口交换机带到连接到全局链路的源分组交换机。目的地分组中的局部链路跳将帧从连接到全局链路的目的地分组交换机带到出口交换机。
在标识最小路径候选端口时,FRF能够将候选分类为一组优选端口和一组非优选端口。优选端口是那些允许需要两个或更少结构链路跳的全局最小路径的端口。非优选端口是所有未被分类为优选的最小路径候选。在可用且负载不太重时使用优选路径会降低系统局部结构链路的平均负载,因为它会减少每个帧经过的局部结构链路的平均数量。使用优选路径还可以减少帧经历的端到端结构时延。
在执行局部非最小路由时,任何局部链路都可以是候选。然而,如果一些局部链路引导到因为系统内存在链路或交换机故障而可能无法到达目的地的交换机,则可能需要将这些局部链路排除在考虑之外。CSR控制哪些端口是局部非最小路径路由的候选。
在执行全局非最小路由时,通常任何全局链路都可以是候选。另外,通常到达具有操作的全局链路的交换机的任何局部链路也可以是候选。然而,如果一些链路引导到因为系统内存在链路或交换机故障而可能无法到达目的地分组的交换机或分组,则可能需要不考虑这些链路。CSR控制哪些端口是全局非最小路径路由的候选。
在选择用于全局非最小路由的候选端口时,如果所有候选端口(全局和局部)有均等的可能被选择,对于许多系统配置,全局非最小流量将不会均匀地在离开分组的全局链路中分发。例如,考虑分组内三个交换机A、B、以及C的情况,其中,每个交换机通过四个局部链路相互连接,并且交换机A和交换机B都终止14个全局链路,并且交换机C终止16个全局链路。到达交换机A的边缘端口的入口流量可以全局非最小地路由到由交换机A终止的任何全局或局部链路。如果该入口流量被均等可能地路由到这些链路中的任何一个链路,则由交换机B终止的每个全局链路将仅接收路由到交换机A终止的每个全局链路的流量的4/14(4个局部链路到达14个全局链路)。同样,由交换机C终止的每个全局链路将收到4/16(4个局部链路到达16个全局链路)。
为了抵消在分组的全局链路之间进行全局非最小流量分发中的这种潜在的偏置,当全局非最小候选端口组被伪随机地向下选择到将参与自适应路由阶段的少量端口时,可以对每个候选端口应用加权,使得一些候选端口将比其他候选端口更有可能在向下选择过程中幸存下来。
自适应路由基于其负载在这些最小与非最小路径之间进行选择。自适应路由的流量从最小路径开始,如果最小路径上的负载较高,则转向非最小路径(这称为渐进式自适应路由)。可以说这样的路径已经岔开。
可以在源分组中的注入点或出口路由器处选择非最小路径。如果选择源分组、中间分组或目的地分组作为中间分组,则可以在其内采用局部非最小路由。蜻蜓路由算法允许中间分组和目的地分组两者中的非最小路径(考虑特定路由器的全局端口上传入的所有流量都去往分组中另一路由器上的NIC的情况)。然而,一般来说,非最小流量分布得足够好以避免这种情况发生,但在局部链路上存在错误的情况下,目的地分组中的附加跳可以仍然是有益的。到达中间分组之后,包可以采用到目的地分组的最小路由或到具有到目的地分组的路径的交换机的局部非最小路由。
同样,该决策是基于负载做出的。在中间分组内进行某跳之后,包必须检测根并采用到目的地的最小路径。自适应决策是基于负载和朝优选的、最小的、或非最小路径的偏置做出的。如上所述,路由算法越朝最小路径增加偏置,包越接近其目的地。倘若负载较低,该算法倾向于跨中间分组的直接路径。
限制路由用于注入和根检测点以外的点,以防止包沿其来的方向回流。在交换机中,检测包从注入点和根检测点进行一跳的情况,并确保采用全局端口。对于局部最小路由,从根进行某跳之后,包将到达连接到目的地NIC的交换机。对于全局最小路由,从注入点进行某跳之后,包将到达具有必须采用的全局链路的交换机。在中间分组中,允许包在注入点处进行局部跳并检测到根。在进行该跳之后,包将到达连接到目的地分组的交换机,必须采用该路径。
在交换机之间传递信息时,必须对路径上的下一跳做出即时决策。使用从局部状态得到的信息和从相邻交换机传送的信息来做出决策。使用来自许多不同源的信息允许做出更准确/有效的决策。该信息包括来自邻居的信息。
先前的系统在交换机之间携带关于平均负载的信息。也就是说,来自相关或相邻交换机的更多详细信息更有帮助。在当前的交换机ASIC中,一组值可以包括指示相关/相邻交换机的输出端口的状态的信息。通过传递该组值,可以做出更好的路由决策。在一个示例中,标志从相邻交换机传回,其中,所述标志具有用于每个输出端口的一个位。例如,对于具有64个输出的交换机,将发射64位标志。这比简单地传递相邻端口的全局平均值要准确得多。
网络交换机支持具有两级或三级的胖树网络。在典型的系统中,机柜级子树结构(cabinet-level sub-tree structure)包含由一级或两级交换机连接的32到256个端点。在全带宽网络中,每级交换机具有相等数量的向下朝向端点以及向上到更高级交换机的链路。
子树由核心交换机连接,其中,每个核心交换机连接到所有子树。在每子树有N个端点的全带宽网络中,从子树到核心交换机有N个上行链路。
顶级(核心交换机)有64个下行链路。在全带宽胖树中,较低级有32个上行链路和32个下行链路。在锥形胖树中,较低级可以有48个或更多个下行链路以及16个或更少个上行链路。下表列出了支持的胖树拓扑的范围。请注意,与蜻蜓的常数16相比,每交换机的节点数随级数和锥度而变化。
提交时未提供
表:胖树配置的最大端点数。
Figure BDA0003321528280000431
图7图示了根据一些实施例的通过网络高效地路由数据的示例方法。在该示例中,网络具有被配置成胖树拓扑的多个交换机。路由表被提供用于路由并且包括用于按照基于目的地的散列函数来实现路由决策的条目。在操作706处,网络在网络的边缘端口处接收包括多个包的数据传输。在操作708处,交换机访问路由表以确定用于数据传输的路由。在操作710处,基于路由表来选择路由。路由表包括用于按照基于目的地的散列函数来实现路由决策的条目。在操作712处,系统使用基于路由表的路由决策通过网络来路由数据传输。
图8图示了根据所公开技术的一个实施例的可用于实现胖树路由的示例计算部件800。计算部件800可以是例如服务器计算机、控制器、或能够处理数据的任何其他类似的计算部件。在图8的示例实施方式中,计算部件800包括硬件处理器802和机器可读存储介质804。硬件处理器802可以是一个或多个中央处理单元(CPU)、基于半导体的微处理器、和/或适用于取得并执行存储在机器可读存储介质804中的指令的其他硬件设备。硬件处理器802可以取出、解码和执行指令(如指令806至812),以控制用于合并本地参数以使用同态加密在区块链上下文中实现群学习的过程或操作。作为取得并执行指令的替代或补充,硬件处理器802可以包括包含用于执行一个或多个指令的功能的电子部件的一个或多个电子电路,诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)或其他电子电路。
在各种实施例中,将所选的功能添加到网络结构的边缘处(即,入口端口或边缘端口处)。在边缘端口处执行转换功能,以将包分类为LAG包或ECMP包。对接收的包的报头进行解析,并将报头中的字段(如目的地地址)与存储在转换表中的值数组进行比较。这些值中的一些值可以与LAG相关联,或者可以是用于实施ECMP的转换设置。如果与这些转换规则之一发生匹配,则在相关的转换查找表中执行查找,这指示需要LAG/ECMP功能并且还返回LAG/ECMP功能将使用的基指针和宽度值。所解析的报头字段的可配置组合被馈送到分布函数以生成散列值。该散列分布值可以使用循环冗余校验(CRC)函数将包报头的MAC地址、IP地址和/或端口地址组合起来,以将这些字段压缩为具有均匀分布的16位数字。将该16位散列值乘以宽度值。该乘结果的高位(位16及以上)将在0到(宽度-1)的范围内。因为不需要该乘结果的低16位,所以合成的并行乘法器可以优化掉大部分硬件乘法器阵列。将结果的高位添加到基指针以形成到存储目的地端口地址的另一个表的索引。这些目的地端口地址是LAG的成员端口或ECMP协议的有效目的地端口。系统软件将每个LAG/ECMP目的地端口地址直接加载到该表中,其中,每个LAG/ECMP配置使用该最终查找表中的条目,这些条目从其对应的基指针到其基指针+宽度-1。
机器可读存储介质(诸如机器可读存储介质804)可以是包含或存储可执行指令的任何电子、磁性、光学或其他物理存储设备。因此,机器可读存储介质804可以是例如随机访问存储器(RAM)、非易失性RAM(NVRAM)、电可擦除可编程只读存储器(EEPROM)、存储设备、光盘等。在一些实施例中,机器可读存储介质804可以是非暂态存储介质,其中,术语“非暂态(non-transitory)”并不涵盖暂态传播信号。如下文详细描述的,机器可读存储介质804可以用可执行指令(例如,指令806至812)进行编码。
硬件处理器802可以执行指令806以在网络的边缘端口处接收包括多个包的数据传输。硬件处理器802可以执行指令808以访问路由表以确定用于数据传输的路由。硬件处理器802可以执行指令810以基于路由表来选择路由。路由表包括用于按照基于目的地的散列函数来实现路由决策的条目。硬件处理器802可以执行指令812以使用基于路由表的路由决策通过网络来路由数据传输。
该交换机支持具有两级或三级的胖树网络。顶级(主干交换机)有64个下行链路。在全带宽胖树中,较低级有32个上行链路和32个下行链路。在锥形胖树中,较低级可以有48个或更多个下行链路以及16个或更少个上行链路。请注意,与蜻蜓的常数16相比,每交换机的节点数随级数和锥度而变化。
表3交换机胖树网络
Figure BDA0003321528280000451
Figure BDA0003321528280000461
几何尺寸是每个级中每交换机的下行链路数:E、或S x E、或S x M x E,其中,S、M、E是每个主干、中间、边缘交换机的下行链路数。每个级中的交换机数是E或S:E或S:M:E,其中,S、M、E是主干、中间、边缘级中的交换机数量。锥度是每交换机的上行链路与每交换机的下行链路的比率,“无”意味着所有级的上行链路的数量与下行链路的数量相同。EU:ED或MU:MD:ED,其中,MU、MD、EU、ED表示中间上行链路、中间下行链路、边缘上行链路以及边缘下行链路。由于每个边缘交换机912上行链路连接到中间交换机下行链路,因此EU=MD。
可以使用最小表来执行胖树路由。帧在树上从叶子交换机到主干交换机自适应地向上路由,然后确定性地向下路由到目的地。
图9图示了根据一些实施例的三层胖树拓扑的示例。底层交换机表示连接到边缘链路913的边缘交换机912。中间交换机916经由局部链路915连接到边缘交换机912。主干交换机918经由全局链路917连接到中间交换机916。
每分组的主干交换机的数量等于在包含中间交换机和边缘交换机的分组内每分组的中间交换机的数量。因此,它取决于在边缘交换机处实施的锥度。这里,在没有锥度的情况下,为32。每分组的中间交换机的最大数量取决于在边缘交换机处实施的锥度。这里,在没有锥度的情况下,为32,并且在每边缘交换机上行链路3个边缘链路的情况下,为16。每分组的边缘交换机的最大数量取决于在中间交换机处实施的锥度。这里,在没有锥度的情况下,为32,并且在每中间交换机上行链路3个下行链路的情况下,为48。
由互连的边缘交换机912和中间交换机916的集合形成分组。在这些分组内使用局部路由。全局路由将帧引导到正确的分组。对于小型系统,由每个叶子交换机的端点形成分组。图10和图11中图的左手侧的表图示了交换机的全局路由。向下条目指示必须采用特定的下行链路才能到达分组、局部交换机、或端点。向上条目指示任何上行链路都可用于到达给定的局部交换机或分组。向上条目通常包含所有上行链路,但可能会省略一个或多个上行链路以避免路由到网络内的故障部件。在指定多个链路的情况下,可以进行自适应选择。
该方案支持交换机胖树网络中示出的所有三级网络(参见表3)。可以使用单个分组内的在线局部路由来形成两级网络。
交换机设备的结构路由配置取决于胖树网络中的级数以及该设备所在网络内的级。以下小节描述了如何使用交换机支持三级、二级以及一级胖树。蜻蜓路由的交换机提供的路由功能也可以应用于包括胖树的其他网络拓扑。
如上所述,在胖树网络中,底部分组由互连的边缘层交换机912和中间层交换机916的集合形成。主干层的交换机也被组织成分组(主干分组),其中,每主干分组的交换机数量等于每底部分组的中间交换机916的数量,并且主干分组的数量等于每中间交换机的上行链路的数量。该组织具有以下特性。
每个边缘交换机912连接到其分组内的每个中间交换机916,反之亦然。
每个中间交换机916连接到每个主干分组中的一个交换机。
每个主干交换机918连接到所有底部分组。因此,每个底部分组也连接到所有主干交换机。
底部分组的最大数量等于每主干交换机的下行链路数量:64.主干分组的最大数量等于每中间交换机的上行链路数量:如果中间交换机没有锥度,则为32;如果有锥度,则更少。因此,所有类型的分组的最大数量为96。
每底部分组的边缘交换机912的最大数量等于每中间交换机的下行链路数量:如果中间交换机没有锥度,则为32,但在最大可能的锥度的情况下,则高达63。每分组的中间交换机916的最大数量等于每边缘交换机的上行链路数量:如果边缘交换机没有锥度,则为32;如果有锥度,则更少。因此,每底部分组的交换机的最大数量为95。
每主干分组的交换机的最大数量等于每底部分组的中间交换机916的数量:如果边缘交换机没有锥度,则为32;如果有锥度,则更少。
预计胖树网络内的几乎所有流量都是从一个边缘端口到另一个边缘端口的流量。
三级胖树网络的所有变型都可以采用为global_id和switch_id两者配置的七个有效位来实施。
在0到63之间(包括0和63)的global_id值用于标识底部分组。
在64到127之间(包括64和127)的global_id值用于标识主干分组。
在0到63之间(包括0和63)的switch_id值用于标识底部分组内的边缘交换机912。
在64到127之间(包括64和127)的switch_id值用于标识底部分组内的中间交换机916。
在64到127之间(包括64和127)的switch_id值用于标识主干分组内的交换机。
为了支持分布在整个网络中(可能在网络中的每个交换机上)的局部管理处理器(LMP)之间的带内管理流量,可以将交换机配置为还允许流量从网络中任何交换机的任何端口路由到网络中的任何交换机的任何端口。
为了支持将管理流量路由到特定的主干交换机,每个主干交换机的交换机id值必须与其连接的所有中间交换机916的交换机-id值相同。出现该限制是因为主干交换机之间没有直接连接。边缘交换机912的下行链路自然地被配置为边缘链路。互连底部分组内的交换机的链路是边缘交换机912的上行链路和中间交换机的下行链路。这些链路被配置为局部链路。中间交换机上行链路和所有主干交换机链路都被配置为全局链路。
对于边缘交换机之间的路由,当帧已经在其目的地分组中时,使用局部路由将帧引导到分组内的该帧的目的地交换机和目的地交换机的该帧的出口端口。当帧不在其目的地分组中时,使用全局路由将帧朝其目的地分组引导。
对于朝边缘交换机的局部路由,当在目的地分组中的边缘交换机912处而不是在目的地边缘交换机处时,路由算法表启用使用局部交换机表的最小路由。与目的地交换机相对应的局部交换机表条目用于选择候选上行链路。在网络内不存在故障的情况下,当目的地交换机是另一个边缘交换机时,所有的上行链路都是候选。
当在目的地分组中的中间交换机916处时,路由算法表启用使用局部交换机表的最小路由。与目的地交换机相对应的局部交换机表条目用于选择候选下行链路。在不存在引起中间交换机916与目的地边缘交换机918之间没有连接的故障的情况下,候选集仅由直接连接到目的地边缘交换机的一个或多个链路组成。
当在目的地交换机处时,路由算法表启用使用局部端口表的最小路由。与帧的目的地结构地址(DFA)中的endpoint_id相对应的局部端口表条目用于选择帧的出口端口或候选出口端口集。
对于朝边缘交换机912的全局路由,当在不是目的地分组的分组中的边缘交换机912处时,帧必须被引导到边缘交换机912的上行链路。在网络内不存在故障的情况下,可以将帧路由到任何上行链路。可以使用全局最小路由或全局非最小路由来选择候选上行链路集。如果使用全局非最小路由,边缘交换机的上行链路之间的自适应选择将基于链路的全局非最小局部端口(GNMLP)负载。这具有允许将中间交换机的上行链路(全局链路)的平均负载考虑到选择边缘交换机912的哪个上行链路的选择中的益处。通过这样做,上行链路负载较轻的中间交换机将受到青睐。
为了在边缘端口处启用全局非最小路由,必须在端口的路由算法表中启用全局非最小路由。控制哪些局部端口是用于全局非最小路由的候选者的掩码必须被配置为选择允许的上行链路。在网络中不存在故障的情况下,允许所有上行链路。对于胖树网络,对于非最小端口选择,自适应路由偏置应被配置为与最小端口选择相同。
当在中间交换机的下行链路(局部端口)处时,路由算法表启用使用全局表的最小路由。与目的地分组相对应的全局表条目用于选择候选上行链路。在网络中不存在故障的情况下,所有上行链路(所有全局链路)在路由到底部分组时都是候选。
当在主干交换机处时,路由算法表启用使用全局表的最小路由。与目的地分组相对应的全局表条目被配置为选择候选下行链路。当目的地分组是底部分组时,候选下行链路集仅由直接连接到目的地分组的一个或多个下行链路组成。
在到达目的地分组的中间交换机916的上行链路时,使用本地路由将帧引导到其目的地交换机和出口端口。
为了路由到非边缘交换机或从非边缘交换机路由,可以使用相同的机制在每个交换机的管理处理器之间路由帧。
对于远程交换机忙端口功能的应用,交换机的远程交换机忙端口(RSBP)功能提供了一种用于允许相邻交换机端口处的负载影响在当前交换机处做出的路由决策的机制。这可以用于在当前交换机处选择通过哪个相邻交换机来路由以到达特定目的地分组或特定目的地交换机的情况。如果特定相邻交换机到目的地分组或交换机的链路负载严重,则可以避开这些相邻交换机。
在三级胖树网络内,有两个地方可以有益地应用RSBP功能:
当在底部分组之间路由时的RSBP应用。当在中间交换机916处并且全局地路由到不同的底部分组时,如果特定主干交换机到目的地分组的链路负载严重,则可以避开这些主干交换机。
当在边缘交换机之间路由时的RSBP应用。当在边缘交换机912处并且局部地路由到相同分组内的不同边缘交换机912时,如果特定中间交换机916到目的地边缘交换机912的链路负载严重,则可以避开这些中间交换机。
两级胖树网络可以实施为图9中所示的底部分组中的单个分组。图9中的中间交换机916是两级网络中的主干交换机。该组织具有以下特性。
每个边缘交换机912连接到每个主干(中间)交换机(916),反之亦然。
边缘交换机912的最大数量等于每主干(中间)交换机的下行链路数量:64.主干(中间)交换机没有上行链路。
主干(中间)交换机的最大数量等于每边缘交换机的上行链路数量:如果边缘交换机没有锥度,则为32;如果有锥度,则更少。网络中的交换机的最大数量为96。
在两级胖树网络中,边缘交换机912的下行链路自然地被配置为边缘链路。边缘交换机912上行链路和主干交换机下行链路被配置为局部链路。
两级网络的路由是通过使用局部交换机表在交换机之间进行路由和局部端口表在到达目的地交换机之后识别出口端口的最小路由来实施的。路由配置是三级网络所需配置的子集。
一级胖树网络由单个交换机设备组成。它的所有64个端口都可以用作边缘端口912。端口之间的路由是使用最小局部端口表来实施的。
现在描述如何路由具有单播和sw_port DFA的帧的各个方面。路由算法表是基于帧的当前路由状态确定有效选择的软件可配置表。有效的选择是诸如是否允许为帧的下一跳选择局部最小、全局最小、局部非最小、或全局非最小路径等决策。路由状态包括信息,诸如在其上接收到帧的VC、以及帧是在源、目的地还是中间分组中。
如果与帧的当前路由状态相对应的路由算法表条目被禁用,则将该帧视为是意外的,并报告错误EMPTY ROUTE_UF。如果路由算法表条目既不允许最小路由也不允许非最小路由,则认为它们被禁用。
路由算法表连同自适应选择功能还确定要用于帧的下一跳的VC。该表被实施为64字乘以每字13位(加上ECC)的受ECC保护的存储器。
存在三个最小表:min_global、min_local_switch以及min_local_port,统称为最小表。它们用于确定可以用于经由最小路径路由帧的端口。由于一次只能访问这些表之一,因此所有表都以特定地址范围实施在相同存储器内,这些特定地址范围在存储器内被指派给每个表。min_global表由DFA global_id字段索引。min_local_switch表由DFA switch_id字段索引。min_local_port表由DFA endpoint_id字段索引。
路由算法表的配置决定了何时使用每个表;然而,min_global旨在当帧尚未到达其目的地分组时使用,以识别直接连接到目的地分组的全局端口和连接到当前分组中具有连接到目的地分组的一个或多个全局端口的交换机的局部端口。类似地,min_local_switch旨在当帧到达目的地分组而不是到达目的地交换机时使用,以识别可用于到达目标交换机的局部端口。最后,min_local_port旨在当帧到达目的地交换机时使用,以识别连接到端点设备的边缘端口。
FRF设计支持多个边缘端口与相同DFA相对应、离开相同交换机设备的可能性。如果在min_local_port表中启用了多个边缘端口,则下游端口选择逻辑将基于负载和伪随机选择自适应地选择一个边缘端口,就像在min_local_switch或min_global表中启用多个端口时一样。
当使用min_global表路由帧时,取决于CSR R_TF FRF CFG_GMIN_TABLE_BLKS中的字段RAND_BITS的配置(SDG中的第9.7.5.33节),min_global表的高地址位中的多达四个可以伪随机地设置而不是由被路由的帧的DFA中的global_id来确定。该功能可以实现加权的实施,使得一些端口比其他端口更有可能被选择。
这些表的输出的格式是位字段(64位宽),其中,每个位对应于当前交换机的不同输出端口。设置的位标识帧可以被转发到的有效候选端口。
最小表被实施为704(512min_global+128min_local_switch+64min_local_port)字乘以每字64位(加上ECC)的受ECC保护的存储器。
当在胖树网络中发生故障时,网络的逻辑拓扑不会被修改,而是会修改路由配置,从而以避开丢失部件的方式来限制流量可以采用的路径。从网络中流量的角度来看,没有必要以原子方式执行路由更新;当路由配置被修改时,流量可以继续流动。
图10图示了根据一些实施例的在第一层交换机与第二层交换机之间有链路故障的胖树的示例。如果顶层交换机也有四个端口(如中间层一样),则图10中所示的网络仅示为其宽度的一半。表1032示出了如何基于将端点的地址划分为局部部件和分组部件的方案为最左列的交换机(分组0)配置路由,其中,局部部件用于在已经在目的地分组中时朝特定端点路由,并且分组部件用于在不在目的地分组中时朝目的地分组路由。该寻址方案也与蜻蜓拓扑兼容。
通常向上路由时,可以选择任何朝上的链路。向上链路选择中的这种自由选择在表中简单地示为“上行”。当返回树时,如表中所示,向下链路的选择取决于目的地受到限制。
当发生故障时,必须限制向上选择,以防止向下包到达需要使用故障部件的点。假设在图10中,交换机1,2与交换机2,3之间的链路发生故障。假设这对交换机之间没有更多的起作用的链路,则必须防止前往交换机2,3的向下的流量到达交换机1,2。这是通过在拓扑的相同层的其他交换机上选择性地限制用于去往交换机2,3(分组3)的流量的朝上的链路选择来完成的。在图中,这由虚线示出;交换机2,0、2,1以及2,2必须使用虚线链路以外的链路来传输前往分组3的流量。前往其他分组的流量可以使用任何朝上的链路。
在被设计成支持蜻蜓路由的路由结构中自然会出现基于目的地分组来限制链路选择的能力;这不是仅支持胖树网络中的故障处置所需的特殊功能。
图11用于描述根据一些实施例的拓扑中更高层处的链路故障的示例。假设交换机0,2与1,2之间的链路发生故障。如果这对交换机之间没有更多的起作用的链路,则必须防止前往交换机1,2的向下的流量到达交换机0,2。与前面的示例类似,这是通过在与1,2相同拓扑层的(可以从高于交换机1,2以上的交换机到达的)其他交换机处选择性地限制用于去往交换机1,2(位于分组2和3以上)的流量的向上的链路选择来完成的。在图中所示的网络中,这只是交换机1,0;交换机1,0必须将去往分组2和3的流量限制在虚线链路之外的链路上。
交换机故障的处置本质上等同于连接到交换机的所有向下的链路的故障所需的处置。故障交换机之下层中的交换机受到影响。图12示出了根据一些实施例的故障交换机的示例。
下面是驱动蜻蜓路由表。
Figure BDA0003321528280000541
Figure BDA0003321528280000542
以下路由算法表输入和输出描述了路由算法表的输入和输出。
Figure BDA0003321528280000551
Figure BDA0003321528280000561
图13描绘了可以在其中实施本文描述的各种实施例的示例计算机系统1300的框图。计算机系统1300包括总线1302或用于传送信息的其他通信机制、与总线1302耦接以处理信息的一个或多个硬件处理器1304。(多个)硬件处理器1304可以是例如一个或多个通用微处理器。
计算机系统1300还包括耦接到总线1302以用于存储要由处理器1304执行的信息和指令的主存储器1306,诸如随机访问存储器(RAM)、缓存和/或其他动态存储设备。主存储器1306还可以用于存储在执行要由处理器1304执行的指令期间的临时变量或其他中间信息。这种指令当存储在处理器1304可访问的存储介质中时使计算机系统1300成为被自定义为执行指令中指定的操作的专用机器。
计算机系统1300进一步包括只读存储器(ROM)1308或耦接到总线1302以用于存储处理器1304的静态信息和指令的其他静态存储设备。诸如磁盘、光盘或USB拇指驱动器(闪存驱动器)等存储设备1310被提供并耦接到总线1302,用于存储信息和指令。
计算机系统1300可以经由总线1302耦接到诸如液晶显示器(LCD)(或触摸屏)等显示器1312上,以用于向计算机用户显示信息。包括字母数字键和其他键的输入设备1314耦接到总线1302,以用于将信息和命令选择传送到处理器1304。另一种类型的用户输入设备是诸如鼠标、轨迹球或光标方向键等光标控制装置1316,以用于将方向信息和命令选择传送到处理器1304并用于控制在显示器1312上的光标移动。在一些实施例中,与光标控制装置相同的方向信息和命令选择可以通过在没有光标的情况下接收触摸屏上的触摸来实施。
计算系统1300可以包括用于实施GUI的用户界面模块,所述GUI可以作为由(多个)计算设备执行的可执行软件代码被存储在大容量存储设备中。通过举例的方式,此模块和其他模块可以包括部件(诸如软件部件、面向对象的软件部件、类部件和任务部件)、进程、函数、属性、过程、子例程、程序代码段、驱动程序、固件、微代码、电路、数据、数据库、数据结构、表格、数组和变量。
通常,如本文所使用的词语“部件”、“引擎”、“系统”、“数据库”、“数据存储”等可以是指在硬件或固件中实施的逻辑,或者是指以诸如例如Java、C或C++等编程语言编写的、可能具有入口点和出口点的软件指令集。软件部件可以被编译并链接到可执行程序,被安装在动态链接库中,或者可以用诸如例如BASIC、Perl、或Python等解释性编程语言编写。应当理解的是,软件部件可从其他部件或从其本身调用,和/或可以响应于检测到的事件或中断而被调用。被配置用于在计算设备上执行的软件部件可以被提供在计算机可读介质中,诸如致密盘、数字视频盘、闪存驱动器、磁盘、或任何其他有形介质,或者可以被提供作为数字下载(并且可以原始地以要求在执行之前安装、解压缩或解密的压缩格式或可安装格式来存储)。这种软件代码可以部分或全部地存储在执行计算设备的存储器设备上,以用于由计算设备执行。软件指令可以嵌入在诸如EPROM等固件中。将进一步理解的是,硬件部件可以包括诸如门和触发器等连接逻辑单元,和/或可以包括诸如可编程门阵列或处理器等可编程单元。
计算机系统1300可以使用定制的硬接线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实施本文所描述的技术,所述定制的硬接线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑与计算机系统相结合使计算机系统1300成为专用机器或者将其编程为专用机器。根据一个实施例,本文的技术由计算机系统1300响应于(多个)处理器1304执行主存储器1306中包含的一个或多个指令的一个或多个序列而执行。这种指令可以从另一个存储介质(诸如存储设备1310)读取到主存储器1306中。主存储器1306中包含的指令序列的执行使(多个)处理器1304执行本文所描述的过程步骤。在替代实施例中,可以使用硬接线电路来代替软件指令或者与软件指令相结合。
如本文所使用的术语“非暂态介质(non-transitory media)”及类似术语是指存储使机器以特定方式操作的数据和/或指令的任何介质。这种非暂态介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备1310。易失性介质包括动态存储器,诸如主存储器1306。非暂态介质的常见形式例如包括软盘、软磁盘、硬盘、固态驱动器、磁带或者任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM和EPROM、闪速EPROM、NVRAM、任何其他存储器芯片或者盒、以及所述介质的联网版本。
非暂态介质不同于传输介质但可以与传输介质结合使用。传输介质参与非暂态介质之间的信息传送。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线1302的导线。传输介质还可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的声波或光波。
计算机系统1300还包括耦接到总线1302的通信接口1318。网络接口1318提供耦接到一个或多个网络链路的双向数据通信,所述一个或多个网络链路连接到一个或多个本地网络。例如,通信接口1318可以是综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或调制解调器,以向对应类型的电话线提供数据通信连接。作为另一个示例,网络接口1318可以是用于提供与兼容LAN(或用于与WAN进行通信的WAN部件)的数据通信连接的局域网(LAN)卡。还可以实施无线链路。在任何这种实施方式中,网络接口1318发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光学信号。
网络链路通常通过一个或多个网络向其他数据设备提供数据通信。例如,网络链路可以提供通过本地网络到主计算机或到由因特网服务提供商(ISP)操作的数据设备的连接。ISP进而通过现在通常称为“因特网”的全球包数据通信网络来提供数据通信服务。本地网络和因特网两者都使用携带数字数据流的电信号、电磁信号或光学信号。通过各种网络的信号以及网络链路上和通过通信接口1318的信号(其将数字数据携带到计算机系统1300和从所述计算机系统携带数字数据)是传输介质的示例形式。
计算机系统1300可以通过(多个)网络、网络链路和通信接口1318发送消息和接收数据,包括程序代码。在因特网示例中,服务器可以通过因特网、ISP、本地网络和通信接口1318来传输应用程序的请求代码。
所接收的代码可以在被接收到时由处理器1304执行,和/或存储在存储设备1310、或其他非易失性存储器中以供稍后执行。
在前面章节中所描述的每个过程、方法、和算法均可以在由包括计算机硬件的一个或多个计算机系统或计算机处理器所执行的代码部件中实施并由所述代码部件全部或部分地进行自动化。所述一个或多个计算机系统或计算机处理器还可以操作以支持“云计算”环境中相关操作的进行、或者操作作为“软件即服务”(SaaS)。所述过程和算法可以在专用电路中部分地或全部地实施。上文所描述的各种特征和过程可以彼此独立地使用,或者可以以各种方式进行组合。不同的组合和子组合旨在落入本公开的范围内,并且在一些实施方式中可以省略某些方法框或过程框。本文描述的方法和过程也不限于任何特定的顺序,并且与所述方法和过程相关的框或状态可以以适当的其他顺序进行、或者可以并行进行、或者以某种其他方式进行。可以向所公开的示例实施例中添加框或状态或从中移除框或状态。可以将某些操作或过程的进行分发到多个计算机系统或计算机处理器之中,使其不是仅驻留在单个机器内,而是跨多个机器部署。
如本文所使用的,电路可以利用任何形式的硬件、软件或其组合来实施。例如,可以实施一个或多个处理器、控制器、ASIC、PLA、PAL、CPLD、FPGA、逻辑部件、软件例程或其他机制以构成电路。在实施中,本文描述的各种电路可以被实施为分立电路,或者所描述的功能和特征可以在一个或多个电路之中部分地或全部地共享。即使可以分别地描述或主张各种特征或功能元件作为单独的电路,这些特征和功能也可以在一个或多个公共电路之间共享,并且这种描述不应要求或暗示需要单独的电路来实施这种特征或功能。在使用软件来全部或部分地实施电路的情况下,这样的软件可以被实施以与能够执行关于所述软件所描述的功能的计算系统或处理系统(诸如计算机系统1300)一起操作。
如本文所使用的,术语“或”可以以包括性或排他性的意义来解释。而且,不应将对单数形式的资源、操作或结构的描述理解为排除复数。除非另外具体规定,或在如所使用的环境内以其他方式被理解,否则条件语言(除其他外,诸如“可(can)”、“可以(could)”、“可能(might)”、或“会(may)”)一般地旨在传达某些实施例包括(而其他实施例不包括)某些特征、元素和/或步骤。
除非另外明确说明,否则本文档中使用的术语和短语及其变体应被解释为开放式的而不是限制性的。形容词(诸如“常规(conventional)”、“传统(traditional)”、“正常(normal)”、“标准(standard)”、“已知(known)”和类似含义的术语)不应被解释为将所描述的项限制为给定时间段或在给定时间可用的项,而是应该被理解为包含可能现在或将来的任何时候都可用或已知的常规、传统、正常或标准技术。在某些实例中,宽泛词语和短语(诸如“一个或多个”、“至少”、“但不限于”或其他类似的短语)的存在不应被理解为是指在这样的宽泛短语可能不存在的情况下意图或要求更窄的情况。

Claims (12)

1.一种通过具有被配置成胖树拓扑的多个交换机的网络高效地路由数据的方法,包括:
在所述网络的边缘端口处接收包括多个包的数据传输,以及
使用基于路由表的路由决策通过所述网络来路由所述数据传输,其中,所述路由表包括用于按照基于目的地的散列函数来实现路由决策的条目。
2.如权利要求1所述的方法,其中,所述散列函数包括所述多个包中的包的报头的散列。
3.如权利要求1所述的方法,其中,所述散列函数包括所述多个包中的包的源地址和目的地地址中的至少一者的散列。
4.如权利要求1所述的方法,其中,通过将所解析的报头字段的组合馈送到分布函数以生成散列值来创建路由表。
5.如权利要求1所述的方法,其中,所述散列值组合了所述包报头的MAC地址、IP地址和端口地址中的至少两个。
6.如权利要求5所述的方法,其中,所述组合包括使用循环冗余校验(CRC)函数将所述包报头的所述MAC地址、IP地址和端口地址中的至少一者压缩为16位散列值。
7.如权利要求6所述的方法,进一步包括将所述16位散列值乘以宽度值。
8.如权利要求6所述的方法,进一步包括将所乘的结果的高位与基指针相加以形成到路由表的索引。
9.一种交换机,包括:
交换机的输入端口,所述输入端口用于接收包括包的数据传输;
多个输出端口,要从所述多个输出端口中选择输出端口来发送所述数据传输;
所述交换机内的路由表,所述路由表用于标识要将所述数据传输转发到的交换机的一个或多个输出端口;以及
耦接在所述输入端口与所述多个输出端口之间的交叉开关交换机,所述交叉开关交换机用于将所述包路由到所标识的一个或多个输出端口;
其中,基于所述路由表中的条目将所述数据传输路由到所选的一个或多个输出端口,其中,所述条目按照基于目的地的散列函数来实现路由决策。
10.如权利要求9所述的交换机,其中,所述散列函数包括所述包的报头的散列。
11.如权利要求9所述的交换机,其中,所述散列函数包括所述包的源地址和目的地地址中的至少一者的散列。
12.如权利要求9所述的交换机,其中,通过将所解析的报头字段的组合馈送到分布函数以生成散列值来创建路由表。
CN202080031578.7A 2019-05-23 2020-03-23 胖树自适应路由 Pending CN113748647A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201962852203P 2019-05-23 2019-05-23
US201962852273P 2019-05-23 2019-05-23
US201962852289P 2019-05-23 2019-05-23
US62/852,273 2019-05-23
US62/852,203 2019-05-23
US62/852,289 2019-05-23
PCT/US2020/024192 WO2020236264A1 (en) 2019-05-23 2020-03-23 Fat tree adaptive routing

Publications (1)

Publication Number Publication Date
CN113748647A true CN113748647A (zh) 2021-12-03

Family

ID=73458112

Family Applications (29)

Application Number Title Priority Date Filing Date
CN202080030125.2A Pending CN113728598A (zh) 2019-05-23 2020-03-23 用于促进自管理的归约引擎的系统和方法
CN202080029462.XA Pending CN113711173A (zh) 2019-05-23 2020-03-23 促进网络接口控制器(nic)中的数据请求管理的系统和方法
CN202080031356.5A Pending CN113785541A (zh) 2019-05-23 2020-03-23 用于在存在错误的情况下的即时路由的系统和方法
CN202080030246.7A Pending CN113711548A (zh) 2019-05-23 2020-03-23 用于促进网络中的全局公平性的系统和方法
CN202080030067.3A Pending CN113728315A (zh) 2019-05-23 2020-03-23 促进网络接口控制器(nic)中的有效消息匹配的系统和方法
CN202080031241.6A Pending CN113748648A (zh) 2019-05-23 2020-03-23 权重路由
CN202080031291.4A Pending CN113748652A (zh) 2019-05-23 2020-03-23 在自适应路由中使用来自相邻节点的负载信息的算法
CN202080028945.8A Pending CN113692725A (zh) 2019-05-23 2020-03-23 促进网络接口控制器(nic)中的高效负载均衡的系统和方法
CN202080029801.4A Pending CN113711550A (zh) 2019-05-23 2020-03-23 促进网络接口控制器(nic)中细粒度流控制的系统和方法
CN202080029835.3A Pending CN113711547A (zh) 2019-05-23 2020-03-23 促进网络接口控制器(nic)中的高效包转发的系统和方法
CN202080029737.XA Pending CN113711549A (zh) 2019-05-23 2020-03-23 用于动态分配归约引擎的系统和方法
CN202080029588.7A Pending CN113728595A (zh) 2019-05-23 2020-03-23 促进通过网络接口控制器(nic)进行高效主机存储器访问的系统和方法
CN202080029704.5A Pending CN113728599A (zh) 2019-05-23 2020-03-23 促进将包高效地注入网络接口控制器(nic)中的输出缓冲区中的系统和方法
CN202080030809.2A Pending CN113767599A (zh) 2019-05-23 2020-03-23 用于减少跳数的优化的自适应路由
CN202080029591.9A Pending CN113711551A (zh) 2019-05-23 2020-03-23 促进网络接口控制器(nic)中的动态命令管理的系统和方法
CN202080029985.4A Pending CN113874848A (zh) 2019-05-23 2020-03-23 用于促进网络接口控制器(nic)中对加速器的操作管理的系统和方法
CN202080030711.7A Pending CN113728593A (zh) 2019-05-23 2020-03-23 用于在应用之间提供网络出口公平性的方法和系统
CN202080031355.0A Pending CN114073054A (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 用于在应用之间提供网络入口公平性的方法和系统
CN202080031098.0A Pending CN113728592A (zh) 2019-05-23 2020-03-23 促进采用端点拥塞检测和控制的数据驱动智能网络的系统和方法
CN202080029870.5A Pending CN113728596A (zh) 2019-05-23 2020-03-23 在网络接口控制器(nic)中促进对幂等操作进行高效管理的系统和方法
CN202080030714.0A Pending CN113767600A (zh) 2019-05-23 2020-03-23 用于在存在持续流的情况下的自适应路由的系统和方法
CN202080031578.7A Pending CN113748647A (zh) 2019-05-23 2020-03-23 胖树自适应路由
CN202080030421.2A Pending CN113785536A (zh) 2019-05-23 2020-03-23 用于在数据驱动的智能网络中促进跟踪器分组的系统和方法
CN202080030734.8A Pending CN113767598A (zh) 2019-05-23 2020-03-23 用于逐流量分类路由的系统和方法
CN202080029766.6A Pending CN113728597A (zh) 2019-05-23 2020-03-23 用于在网络中执行即时归约的系统和方法
CN202080031262.8A Pending CN113767601A (zh) 2019-05-23 2020-03-23 用于分发软件确定的全局负载信息的方法
CN202080031357.XA Pending CN113728594A (zh) 2019-05-23 2020-03-23 用于促进对各个应用和流量流进行流控制的数据驱动智能网络的系统和方法

Family Applications Before (23)

Application Number Title Priority Date Filing Date
CN202080030125.2A Pending CN113728598A (zh) 2019-05-23 2020-03-23 用于促进自管理的归约引擎的系统和方法
CN202080029462.XA Pending CN113711173A (zh) 2019-05-23 2020-03-23 促进网络接口控制器(nic)中的数据请求管理的系统和方法
CN202080031356.5A Pending CN113785541A (zh) 2019-05-23 2020-03-23 用于在存在错误的情况下的即时路由的系统和方法
CN202080030246.7A Pending CN113711548A (zh) 2019-05-23 2020-03-23 用于促进网络中的全局公平性的系统和方法
CN202080030067.3A Pending CN113728315A (zh) 2019-05-23 2020-03-23 促进网络接口控制器(nic)中的有效消息匹配的系统和方法
CN202080031241.6A Pending CN113748648A (zh) 2019-05-23 2020-03-23 权重路由
CN202080031291.4A Pending CN113748652A (zh) 2019-05-23 2020-03-23 在自适应路由中使用来自相邻节点的负载信息的算法
CN202080028945.8A Pending CN113692725A (zh) 2019-05-23 2020-03-23 促进网络接口控制器(nic)中的高效负载均衡的系统和方法
CN202080029801.4A Pending CN113711550A (zh) 2019-05-23 2020-03-23 促进网络接口控制器(nic)中细粒度流控制的系统和方法
CN202080029835.3A Pending CN113711547A (zh) 2019-05-23 2020-03-23 促进网络接口控制器(nic)中的高效包转发的系统和方法
CN202080029737.XA Pending CN113711549A (zh) 2019-05-23 2020-03-23 用于动态分配归约引擎的系统和方法
CN202080029588.7A Pending CN113728595A (zh) 2019-05-23 2020-03-23 促进通过网络接口控制器(nic)进行高效主机存储器访问的系统和方法
CN202080029704.5A Pending CN113728599A (zh) 2019-05-23 2020-03-23 促进将包高效地注入网络接口控制器(nic)中的输出缓冲区中的系统和方法
CN202080030809.2A Pending CN113767599A (zh) 2019-05-23 2020-03-23 用于减少跳数的优化的自适应路由
CN202080029591.9A Pending CN113711551A (zh) 2019-05-23 2020-03-23 促进网络接口控制器(nic)中的动态命令管理的系统和方法
CN202080029985.4A Pending CN113874848A (zh) 2019-05-23 2020-03-23 用于促进网络接口控制器(nic)中对加速器的操作管理的系统和方法
CN202080030711.7A Pending CN113728593A (zh) 2019-05-23 2020-03-23 用于在应用之间提供网络出口公平性的方法和系统
CN202080031355.0A Pending CN114073054A (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 用于在应用之间提供网络入口公平性的方法和系统
CN202080031098.0A Pending CN113728592A (zh) 2019-05-23 2020-03-23 促进采用端点拥塞检测和控制的数据驱动智能网络的系统和方法
CN202080029870.5A Pending CN113728596A (zh) 2019-05-23 2020-03-23 在网络接口控制器(nic)中促进对幂等操作进行高效管理的系统和方法
CN202080030714.0A Pending CN113767600A (zh) 2019-05-23 2020-03-23 用于在存在持续流的情况下的自适应路由的系统和方法

Family Applications After (5)

Application Number Title Priority Date Filing Date
CN202080030421.2A Pending CN113785536A (zh) 2019-05-23 2020-03-23 用于在数据驱动的智能网络中促进跟踪器分组的系统和方法
CN202080030734.8A Pending CN113767598A (zh) 2019-05-23 2020-03-23 用于逐流量分类路由的系统和方法
CN202080029766.6A Pending CN113728597A (zh) 2019-05-23 2020-03-23 用于在网络中执行即时归约的系统和方法
CN202080031262.8A Pending CN113767601A (zh) 2019-05-23 2020-03-23 用于分发软件确定的全局负载信息的方法
CN202080031357.XA Pending CN113728594A (zh) 2019-05-23 2020-03-23 用于促进对各个应用和流量流进行流控制的数据驱动智能网络的系统和方法

Country Status (5)

Country Link
US (53) US11968116B2 (zh)
EP (11) EP3942749A4 (zh)
CN (29) CN113728598A (zh)
DE (18) DE112020002509T5 (zh)
WO (43) WO2020236298A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117061423A (zh) * 2023-10-09 2023-11-14 苏州元脑智能科技有限公司 一种胖树网络的多机路由方法、装置、系统及存储介质

Families Citing this family (46)

* Cited by examiner, † Cited by third party
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
EP3942749A4 (en) 2019-05-23 2023-06-07 Hewlett Packard Enterprise Development LP OPTIMIZED ADAPTIVE ROUTING TO REDUCE THE NUMBER OF JUMPS
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
WO2021214847A1 (ja) * 2020-04-21 2021-10-28 日本電信電話株式会社 ネットワーク設定装置、方法及びプログラム
US11616734B2 (en) * 2020-07-08 2023-03-28 Hughes Network Systems, Llc Home network resource management
US11693800B2 (en) * 2020-07-13 2023-07-04 EMC IP Holding Company LLC Managing IO path bandwidth
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
US20220400073A1 (en) * 2021-06-15 2022-12-15 Applied Materials, Inc. Router architecture for multi-dimensional topologies in on-chip and on-package networks
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
CN115695560A (zh) * 2021-07-23 2023-02-03 伊姆西Ip控股有限责任公司 内容分发方法、电子设备和计算机程序产品
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
US11985067B2 (en) * 2021-12-10 2024-05-14 Nokia Solutions And Networks Oy Flowlet switching using memory instructions
US20230229599A1 (en) * 2022-01-18 2023-07-20 Nvidia Corporation Multicast and reflective memory behavior for memory model consistency
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
CN115622933A (zh) * 2022-09-07 2023-01-17 天翼数字生活科技有限公司 一种路由分发方法、装置和设备
US20240094910A1 (en) * 2022-09-19 2024-03-21 Microsoft Technology Licensing, Llc Round Robin Arbitration Using Random Access Memory
US20240214325A1 (en) * 2022-12-22 2024-06-27 Juniper Networks, Inc. Dynamic resource reservation protocol resource handling and deadlock avoidance
CN116662016B (zh) * 2023-07-25 2023-10-20 太平金融科技服务(上海)有限公司 端口切换方法、装置、计算机设备、存储介质和程序产品

Family Cites Families (573)

* Cited by examiner, † Cited by third party
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
US6026075A (en) * 1997-02-25 2000-02-15 International Business Machines Corporation Flow control mechanism
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
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6226680B1 (en) 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6230252B1 (en) 1997-11-17 2001-05-08 Silicon Graphics, Inc. Hybrid hypercube/torus architecture
US5970232A (en) 1997-11-17 1999-10-19 Cray Research, Inc. Router table lookup mechanism
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
ATE441275T1 (de) 1998-10-30 2009-09-15 Virnetx Inc Netzwerkprotokol zur sicheren kommunikation mit gesicherter systemverfügbarkeit
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
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
US6633580B1 (en) 2000-03-07 2003-10-14 Sun Microsystems N×N crossbar packet switch
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
DE60237433D1 (de) 2001-02-24 2010-10-07 Ibm Neuartiger massivparalleler supercomputer
CN1269053C (zh) 2001-02-24 2006-08-09 国际商业机器公司 分组路由方法、系统及用于分组路由的可扩展网络交换机
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
EP1419614B1 (en) 2001-08-21 2006-06-14 Telefonaktiebolaget LM Ericsson (publ) Multicast in point-to-point packet-switched oriented networks
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
KR100624610B1 (ko) 2001-08-24 2006-09-19 인텔 코오퍼레이션 데이터 무결성을 관리하는 범용 입출력 아키텍쳐 프로토콜및 관련 방법
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
US7376755B2 (en) * 2002-06-11 2008-05-20 Pandya Ashish A TCP/IP processor and engine using RDMA
US7191249B1 (en) 2002-06-14 2007-03-13 Juniper Networks, Inc. Packet prioritization systems and methods using address aliases
BR0215746B1 (pt) 2002-06-19 2015-02-10 Ericsson Telefon Ab L M Arquitetura de acionador de dispositivo de rede, sistema e método para habilitar acesso de espaço de núcleo de sistema operacional como também acesso de espaço de usuário para um controlador de interface de rede (nic), e, método para habilitar acesso entre o espaço de núcleo de sistema operacional e um controlador de interface de rede (nic) como também entre o espaço de usuário e o dito nic
US7649882B2 (en) 2002-07-15 2010-01-19 Alcatel-Lucent Usa Inc. Multicast scheduling and replication in switches
US20040019895A1 (en) * 2002-07-29 2004-01-29 Intel Corporation Dynamic communication tuning apparatus, systems, and methods
EP1552409B1 (en) 2002-08-19 2013-07-24 Broadcom Corporation One-shot rdma
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
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
US20050129039A1 (en) * 2003-12-11 2005-06-16 International Business Machines Corporation RDMA network interface controller with cut-through implementation for aligned DDP segments
US7385985B2 (en) * 2003-12-31 2008-06-10 Alcatel Lucent Parallel data link layer controllers in a network switching device
RU2006129488A (ru) * 2004-01-15 2008-02-20 Мацусита Электрик Индастриал Ко., Лтд. (Jp) Устройство динамического управления сетью и способ динамического управления сетью
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
JP2007526706A (ja) 2004-03-05 2007-09-13 ザイラテックス・テクノロジー・リミテッド ネットワークにおける輻輳管理方法、シグナリングプロトコル、スイッチ、エンドステーション、及びネットワーク
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
US7483442B1 (en) 2004-06-08 2009-01-27 Sun Microsystems, Inc. VCRC checking and generation
US7639616B1 (en) 2004-06-08 2009-12-29 Sun Microsystems, Inc. Adaptive cut-through algorithm
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
US7796579B2 (en) 2004-12-03 2010-09-14 Telefonaktiebolaget Lm Ericsson (Publ) Technique for interconnecting intermediate network nodes
US7804504B1 (en) * 2004-12-13 2010-09-28 Massachusetts Institute Of Technology Managing yield for a parallel processing integrated circuit
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
BRPI0608941B1 (pt) 2005-03-31 2019-08-20 Telefonaktiebolaget Lm Ericsson (Publ) Método e sistema para prover segurança de dados para um protocolo de transporte confiável que suporta fornecimento ordenado de dados bem como fornecimento não ordenado de dados, receptor, transmissor, e, alocador de protocolo de segurança
US10270700B2 (en) 2015-03-03 2019-04-23 Opanga Networks, Inc. Systems and methods for pacing data flows
WO2006109207A1 (en) * 2005-04-13 2006-10-19 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
US7430559B2 (en) 2005-09-21 2008-09-30 Microsoft Corporation Generalized idempotent requests
EP1934733B1 (en) 2005-09-21 2011-07-27 Solarflare Communications, Inc. Rate pacing
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
GB2448851B (en) 2006-04-05 2011-01-05 Xyratex Tech Ltd 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
US7577820B1 (en) 2006-04-14 2009-08-18 Tilera Corporation Managing data in a parallel processing environment
US7620791B1 (en) 2006-04-14 2009-11-17 Tilera Corporation Mapping memory 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
US20080313364A1 (en) * 2006-12-06 2008-12-18 David Flynn Apparatus, system, and method for remote direct memory access to a solid-state storage device
US20080147881A1 (en) 2006-12-19 2008-06-19 Krishnamurthy Rajaram B System and method for placing computation inside a network
CA2669932A1 (en) * 2006-12-19 2008-06-26 International Business Machines Corporation Apparatus and method for analysing a network flow
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システム
US7904642B1 (en) 2007-02-08 2011-03-08 Netlogic Microsystems, Inc. Method for combining and storing access control lists
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
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
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
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
US20090070765A1 (en) 2007-09-11 2009-03-12 Bea Systems, Inc. Xml-based configuration for event processing networks
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
US9137739B2 (en) * 2009-01-28 2015-09-15 Headwater Partners I Llc Network based service policy implementation with network neutrality and user privacy
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 富士通株式会社 スイッチ及びアドレス学習方法
WO2010151099A1 (en) 2009-06-26 2010-12-29 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 中兴通讯股份有限公司 多业务恢复的选路装置及选路方法
CN102577275B (zh) * 2009-09-10 2016-05-04 日本电气株式会社 中继控制设备、中继控制系统、中继控制方法
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
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
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
CN102859949B (zh) 2010-04-30 2015-12-02 惠普发展公司,有限责任合伙企业 用于在胖树网络中路由数据分组的方法
US9288137B2 (en) 2010-05-09 2016-03-15 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 アラクサラネットワークス株式会社 パケット中継装置および輻輳制御方法
EP2606575B1 (en) 2010-08-19 2018-05-30 Telefonaktiebolaget LM 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
JP5913912B2 (ja) 2010-11-05 2016-04-27 インテル コーポレイション Dragonflyプロセッサ相互接続ネットワークにおける革新的な適応型ルーティング
JP5860670B2 (ja) 2010-11-05 2016-02-16 インテル コーポレイション 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
US8996644B2 (en) 2010-12-09 2015-03-31 Solarflare Communications, Inc. Encapsulated accelerator
US9436651B2 (en) 2010-12-09 2016-09-06 Intel Corporation Method and apparatus for managing application state in a network interface controller in a high performance computing system
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
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
EP2652623B1 (en) * 2010-12-13 2018-08-01 SanDisk Technologies LLC Apparatus, system, and method for auto-commit memory
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. 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
US8776207B2 (en) * 2011-02-16 2014-07-08 Fortinet, Inc. Load balancing in a network with session information
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
US9032089B2 (en) * 2011-03-09 2015-05-12 Juniper Networks, Inc. Methods and apparatus for path selection within a network based on flow duration
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
WO2012132264A1 (ja) 2011-03-28 2012-10-04 パナソニック株式会社 中継器、中継器の制御方法、およびプログラム
US8644157B2 (en) 2011-03-28 2014-02-04 Citrix Systems, Inc. Systems and methods for handling NIC congestion via NIC aware application
WO2012130264A1 (en) 2011-03-29 2012-10-04 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
US9716592B1 (en) * 2011-06-10 2017-07-25 Google Inc. Traffic distribution over multiple paths in a network while maintaining flow affinity
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
US8831010B1 (en) * 2011-10-20 2014-09-09 Google Inc. Providing routing information for weighted multi-path routing
US9143467B2 (en) 2011-10-25 2015-09-22 Mellanox Technologies Ltd. Network interface controller with circular receive buffer
WO2013060378A1 (en) 2011-10-28 2013-05-02 Telecom Italia S.P.A. Apparatus and method for selectively delaying network data flows
EP2592871B1 (en) 2011-11-11 2014-05-28 Itron, Inc. Routing communications based on link quality
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
DE112013000601T5 (de) * 2012-01-17 2014-12-18 Intel Corporation Techniken für die Befehlsbestätigung für den Zugriff auf ein Speichergerät durch einen entfernten Client
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
US8812005B2 (en) 2012-02-03 2014-08-19 Apple Inc. System and method for scheduling packet transmission on a client device using traffic classes and opportunistic behavior
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
US9264382B2 (en) 2012-05-11 2016-02-16 Oracle International Corporation System and method for routing traffic between distinct infiniband subnets based on fat-tree routing
CN104303472B (zh) 2012-05-15 2018-03-16 马维尔国际贸易有限公司 以太网包的扩展优先级
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
US20140036680A1 (en) 2012-07-31 2014-02-06 Futurewei Technologies, Inc. Method to Allocate Packet Buffers in a Packet Transferring System
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
CN103227757B (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
US9769074B2 (en) * 2013-03-15 2017-09-19 International Business Machines Corporation Network per-flow rate limiting
US9444748B2 (en) * 2013-03-15 2016-09-13 International Business Machines Corporation Scalable flow and congestion control with OpenFlow
US9253096B2 (en) 2013-03-15 2016-02-02 International Business Machines Corporation Bypassing congestion points in a converged enhanced ethernet fabric
CN105191235A (zh) * 2013-03-20 2015-12-23 马维尔国际贸易有限公司 针对慢速和快速端口的直通处理
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
EP3014821A4 (en) 2013-06-28 2017-02-22 Intel Corporation Mechanism to control resource utilization with adaptive routing
US9674098B2 (en) * 2013-07-02 2017-06-06 Intel Corporation Credit flow control for ethernet
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
CN105556908B (zh) 2013-08-28 2019-05-28 Kt株式会社 基于多流式分组的带宽提供方法
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
US9276771B1 (en) * 2013-09-27 2016-03-01 Google Inc. Lossless multipath table compression
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
US10158538B2 (en) 2013-12-09 2018-12-18 Nicira, Inc. Reporting elephant flows to a network controller
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
US9513926B2 (en) 2014-01-08 2016-12-06 Cavium, Inc. Floating mask generation for network packet flow
KR102171348B1 (ko) * 2014-01-08 2020-10-29 삼성전자주식회사 어플리케이션 검출 방법 및 장치
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
WO2015142336A1 (en) 2014-03-20 2015-09-24 Intel Corporation A method, apparatus, and system for controlling power consumption of unused hardware of a link interface
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 南京航空航天大学 具有全局通信事务管理能力的容错片上网络系统及方法
US10142220B2 (en) 2014-04-29 2018-11-27 Hewlett Packard Enterprise Development Lp 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
EP3192299B1 (en) 2014-09-10 2020-01-15 Telefonaktiebolaget LM Ericsson (publ) Explicit congestion notification marking of user traffic
US9882814B2 (en) * 2014-09-25 2018-01-30 Intel Corporation Technologies for bridging between coarse-grained and fine-grained load balancing
US9548872B2 (en) 2014-09-26 2017-01-17 Dell Products, Lp Reducing internal fabric congestion in leaf-spine switch fabric
WO2016061766A1 (zh) 2014-10-22 2016-04-28 华为技术有限公司 对象存储系统中的业务流控制方法、控制器和系统
US9722932B1 (en) * 2014-10-28 2017-08-01 Amazon Technologies, Inc. Packet path selection using shuffle sharding
US10153967B2 (en) 2014-11-06 2018-12-11 Juniper Networks, Inc. Deterministic and optimized bit index explicit replication (BIER) forwarding
US10033641B2 (en) 2014-11-06 2018-07-24 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
WO2016122637A1 (en) 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Non-idempotent primitives in fault-tolerant memory
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
US9894013B2 (en) 2015-02-03 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Early queueing network device
US20160241474A1 (en) * 2015-02-12 2016-08-18 Ren Wang Technologies for modular forwarding table scalability
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
US10033574B2 (en) 2015-03-20 2018-07-24 Oracle International Corporation System and method for efficient network reconfiguration in fat-trees
US20170237654A1 (en) 2015-03-25 2017-08-17 Hewlett Packard Enterprise Development Lp Fast failover recovery in software defined networks
CN107209724B (zh) 2015-03-27 2020-02-14 华为技术有限公司 数据处理方法、内存管理单元及内存控制设备
WO2016159945A1 (en) 2015-03-28 2016-10-06 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
US10033638B1 (en) * 2015-05-29 2018-07-24 Netronome Systems, Inc. Executing a selected sequence of instructions depending on packet type in an exact-match flow switch
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
CN108353030B (zh) * 2015-09-02 2021-02-19 瑞典爱立信有限公司 用于处理无线无线电自组织网络中的应答的方法和设备
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
JP6244349B2 (ja) * 2015-12-17 2017-12-06 アンリツ株式会社 移動端末試験装置とそのフロー制御閾値の設定方法
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
US10498654B2 (en) * 2015-12-28 2019-12-03 Amazon Technologies, Inc. Multi-path transport design
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
US9985904B2 (en) 2015-12-29 2018-05-29 Amazon Technolgies, Inc. Reliable, out-of-order transmission 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
EP3420690B1 (en) * 2016-02-25 2019-11-13 Telefonaktiebolaget LM Ericsson (PUBL) Back-pressure control in a telecommunications network
US10355981B1 (en) * 2016-03-02 2019-07-16 Innovium, Inc. Sliding windows
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
US10732621B2 (en) 2016-05-09 2020-08-04 Strong Force Iot Portfolio 2016, Llc Methods and systems for process adaptation in an internet of things downstream 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
US10656972B2 (en) 2016-11-10 2020-05-19 International Business Machines Corporation Managing idempotent operations while interacting with a system of record
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
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
US10394784B2 (en) * 2016-12-22 2019-08-27 Intel Corporation Technologies for management of lookup tables
WO2018119843A1 (en) 2016-12-29 2018-07-05 Intel Corporation Network interface controller with non-volatile random access memory write packet log
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
US10326696B2 (en) 2017-01-02 2019-06-18 Microsoft Technology Licensing, Llc Transmission of messages by 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
US10579412B2 (en) * 2017-04-07 2020-03-03 Nec Corporation 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
US11212048B2 (en) * 2017-05-05 2021-12-28 Samsung Electronics Co., Ltd. System, data transmission method and network equipment supporting PDCP duplication function method and device for transferring supplementary uplink carrier configuration information and method and device for performing connection mobility adjustment
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
US10499376B2 (en) * 2017-06-16 2019-12-03 Kt Corporation Methods for managing resource based on open interface and apparatuses thereof
US10855420B2 (en) * 2017-06-16 2020-12-01 Ofinno, Llc Distributed unit configuration update
WO2018236867A2 (en) * 2017-06-19 2018-12-27 Intel Corporation CONTROL PANEL AND USER PLANE SEPARATION 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
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
US10965586B2 (en) 2017-09-29 2021-03-30 Fungible, Inc. Resilient network communication using selective multipath packet flow spraying
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
EP4236255A1 (en) 2017-11-06 2023-08-30 Huawei Technologies Co., Ltd. Packet forwarding method, forwarding device, and network device
US10841243B2 (en) 2017-11-08 2020-11-17 Mellanox Technologies, Ltd. NIC with programmable pipeline
CN109936510B (zh) 2017-12-15 2022-11-15 微软技术许可有限责任公司 多路径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
IL276064B2 (en) * 2018-02-15 2024-04-01 Vitec Inc Distribution and playback of media content
US10986021B2 (en) 2018-03-06 2021-04-20 International Business Machines Corporation Flow management in networks
US10789194B2 (en) 2018-03-26 2020-09-29 Nvidia Corporation Techniques for efficiently synchronizing data transmissions on a network
US11082347B2 (en) * 2018-03-26 2021-08-03 Nvidia Corporation Techniques for reducing congestion in a computer network
CN110324249B (zh) 2018-03-28 2023-05-26 清华大学 一种蜻蜓网络架构及其组播路由方法
US20190044872A1 (en) 2018-03-30 2019-02-07 Intel Corporation Technologies for targeted flow control recovery
US20190044827A1 (en) 2018-03-30 2019-02-07 Intel Corporatoin Communication of a message using a network interface controller on a subnet
US10567307B2 (en) 2018-04-27 2020-02-18 Avago Technologies International Sales Pte. Limited Traffic management for high-bandwidth switching
US10887231B2 (en) * 2018-05-18 2021-01-05 Juniper Networks, Inc. Packet fragment forwarding without reassembly
US10789200B2 (en) * 2018-06-01 2020-09-29 Dell Products L.P. Server message block remote direct memory access persistent memory dialect
EP3808041A1 (en) * 2018-06-14 2021-04-21 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
US20190114195A1 (en) 2018-08-22 2019-04-18 Intel Corporation Virtual device composition 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
DE112019005604T5 (de) 2018-11-08 2021-09-09 Intel Corporation Function-as-a-service-system-verbesserungen (faas-system-verbesserungen)
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
US11025564B2 (en) 2019-02-22 2021-06-01 Microsoft Technology Licensing, Llc RDMA transport with hardware integration and out of order placement
US11068412B2 (en) 2019-02-22 2021-07-20 Microsoft Technology Licensing, Llc RDMA transport with hardware integration
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
EP3942749A4 (en) 2019-05-23 2023-06-07 Hewlett Packard Enterprise Development LP OPTIMIZED ADAPTIVE ROUTING TO REDUCE THE NUMBER OF JUMPS
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 清华大学 一种时间敏感网络中确定性故障检测与定位方法及系统
US11797539B2 (en) 2019-09-12 2023-10-24 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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117061423A (zh) * 2023-10-09 2023-11-14 苏州元脑智能科技有限公司 一种胖树网络的多机路由方法、装置、系统及存储介质
CN117061423B (zh) * 2023-10-09 2024-01-23 苏州元脑智能科技有限公司 一种胖树网络的多机路由方法、装置、系统及存储介质

Also Published As

Publication number Publication date
WO2020236290A1 (en) 2020-11-26
US20220210054A1 (en) 2022-06-30
WO2020236297A1 (en) 2020-11-26
US11792114B2 (en) 2023-10-17
US20220200923A1 (en) 2022-06-23
US11876702B2 (en) 2024-01-16
US20220197845A1 (en) 2022-06-23
US20220214934A1 (en) 2022-07-07
WO2020236282A1 (en) 2020-11-26
CN113767601A (zh) 2021-12-07
US20240121181A1 (en) 2024-04-11
DE112020002497T5 (de) 2022-04-28
WO2020236270A1 (en) 2020-11-26
CN113748652A (zh) 2021-12-03
WO2020236271A1 (en) 2020-11-26
US20240160584A1 (en) 2024-05-16
US20220232111A1 (en) 2022-07-21
US11757763B2 (en) 2023-09-12
US20220200913A1 (en) 2022-06-23
CN113728592A (zh) 2021-11-30
WO2020236273A1 (en) 2020-11-26
WO2020236284A1 (en) 2020-11-26
EP3942754A1 (en) 2022-01-26
US20220210081A1 (en) 2022-06-30
CN113692725A (zh) 2021-11-23
US20220217078A1 (en) 2022-07-07
EP3942759A4 (en) 2023-04-05
DE112020002495T5 (de) 2022-04-28
DE112020002498T5 (de) 2022-04-28
US20220191128A1 (en) 2022-06-16
US11985060B2 (en) 2024-05-14
CN113711551A (zh) 2021-11-26
EP3942754A4 (en) 2023-05-31
US20220200897A1 (en) 2022-06-23
US11855881B2 (en) 2023-12-26
DE112020002494T5 (de) 2022-04-28
US11968116B2 (en) 2024-04-23
WO2020236294A1 (en) 2020-11-26
WO2020236265A1 (en) 2020-11-26
WO2020236281A1 (en) 2020-11-26
WO2020236285A1 (en) 2020-11-26
US20220217079A1 (en) 2022-07-07
US11916781B2 (en) 2024-02-27
EP3942755A4 (en) 2023-05-31
US20220214975A1 (en) 2022-07-07
US12021738B2 (en) 2024-06-25
DE112020002500T5 (de) 2022-04-14
CN113767599A (zh) 2021-12-07
EP3942422A4 (en) 2022-11-16
WO2020236299A1 (en) 2020-11-26
WO2020236258A1 (en) 2020-11-26
EP3942422A1 (en) 2022-01-26
US20240121180A1 (en) 2024-04-11
US20240039836A1 (en) 2024-02-01
US20240121179A1 (en) 2024-04-11
US11902150B2 (en) 2024-02-13
US20220200900A1 (en) 2022-06-23
WO2020236291A1 (en) 2020-11-26
EP3942398A4 (en) 2023-04-05
WO2020236295A1 (en) 2020-11-26
US11991072B2 (en) 2024-05-21
DE112020002484T5 (de) 2022-04-28
US20220224628A1 (en) 2022-07-14
CN113711173A (zh) 2021-11-26
DE112020002754T5 (de) 2022-03-31
DE112020002512T5 (de) 2022-02-17
US20240113961A1 (en) 2024-04-04
US20220311544A1 (en) 2022-09-29
US12003411B2 (en) 2024-06-04
EP3942749A4 (en) 2023-06-07
US20220217090A1 (en) 2022-07-07
EP3949290A1 (en) 2022-02-09
CN113711550A (zh) 2021-11-26
US20220197831A1 (en) 2022-06-23
WO2020236292A1 (en) 2020-11-26
US20220245072A1 (en) 2022-08-04
CN114073054A (zh) 2022-02-18
US11876701B2 (en) 2024-01-16
CN113692581A (zh) 2021-11-23
WO2020236264A1 (en) 2020-11-26
WO2020236278A1 (en) 2020-11-26
US11750504B2 (en) 2023-09-05
WO2020236266A1 (en) 2020-11-26
US20220210055A1 (en) 2022-06-30
WO2020236272A1 (en) 2020-11-26
WO2020236279A1 (en) 2020-11-26
US20240171506A1 (en) 2024-05-23
US20220231965A1 (en) 2022-07-21
CN113728595A (zh) 2021-11-30
WO2020236280A1 (en) 2020-11-26
CN113711548A (zh) 2021-11-26
US20220210094A1 (en) 2022-06-30
WO2020236267A1 (en) 2020-11-26
WO2020236269A1 (en) 2020-11-26
DE112020002481T5 (de) 2022-04-28
US20220166705A1 (en) 2022-05-26
EP3942757A4 (en) 2023-05-31
EP3942398A1 (en) 2022-01-26
US20220217096A1 (en) 2022-07-07
CN113728596A (zh) 2021-11-30
WO2020236262A3 (en) 2021-02-04
US20220182309A1 (en) 2022-06-09
WO2020236276A1 (en) 2020-11-26
CN113785536A (zh) 2021-12-10
US20240106736A1 (en) 2024-03-28
US20220353199A1 (en) 2022-11-03
US11848859B2 (en) 2023-12-19
EP3942759A1 (en) 2022-01-26
EP3942758A4 (en) 2023-05-31
EP3942758A1 (en) 2022-01-26
WO2020236274A1 (en) 2020-11-26
US20220214919A1 (en) 2022-07-07
US11973685B2 (en) 2024-04-30
US20240121182A1 (en) 2024-04-11
US20240171507A1 (en) 2024-05-23
US20220210058A1 (en) 2022-06-30
EP3942749A2 (en) 2022-01-26
US11929919B2 (en) 2024-03-12
EP3942757A1 (en) 2022-01-26
WO2020236283A1 (en) 2020-11-26
CN113711547A (zh) 2021-11-26
CN113728315A (zh) 2021-11-30
DE112020002501T5 (de) 2022-08-11
WO2020236289A1 (en) 2020-11-26
DE112020002491T5 (de) 2022-04-28
WO2020236300A1 (en) 2020-11-26
US11765074B2 (en) 2023-09-19
WO2020236287A1 (en) 2020-11-26
EP3949290A4 (en) 2023-05-31
DE112020002528T5 (de) 2022-03-24
US11757764B2 (en) 2023-09-12
US11777843B2 (en) 2023-10-03
CN113785541A (zh) 2021-12-10
EP3942763A4 (en) 2023-08-09
WO2020236268A1 (en) 2020-11-26
US20230396533A1 (en) 2023-12-07
CN113728599A (zh) 2021-11-30
WO2020236275A1 (en) 2020-11-26
US20220217076A1 (en) 2022-07-07
US11784920B2 (en) 2023-10-10
WO2020236288A1 (en) 2020-11-26
DE112020002510T5 (de) 2022-03-10
WO2020236286A1 (en) 2020-11-26
WO2020236259A1 (en) 2020-11-26
EP3942747A1 (en) 2022-01-26
WO2020236277A1 (en) 2020-11-26
US11863431B2 (en) 2024-01-02
CN113711549A (zh) 2021-11-26
EP3942755A1 (en) 2022-01-26
US11818037B2 (en) 2023-11-14
CN113728594A (zh) 2021-11-30
WO2020236302A1 (en) 2020-11-26
DE112020002490T5 (de) 2022-04-28
US20220217094A1 (en) 2022-07-07
US20220231962A1 (en) 2022-07-21
CN113728593A (zh) 2021-11-30
EP3942747A4 (en) 2023-05-24
DE112020002493T5 (de) 2022-04-28
US20220255884A1 (en) 2022-08-11
WO2020236301A1 (en) 2020-11-26
CN113728598A (zh) 2021-11-30
WO2020236264A9 (en) 2021-01-21
US11799764B2 (en) 2023-10-24
CN113748648A (zh) 2021-12-03
WO2020236298A1 (en) 2020-11-26
CN113874848A (zh) 2021-12-31
WO2020236262A2 (en) 2020-11-26
US20220239587A1 (en) 2022-07-28
US20220200912A1 (en) 2022-06-23
DE112020002496T5 (de) 2022-04-28
WO2020236296A1 (en) 2020-11-26
US20220224639A1 (en) 2022-07-14
US20230046350A1 (en) 2023-02-16
CN113728597A (zh) 2021-11-30
US20220210092A1 (en) 2022-06-30
US20220229800A1 (en) 2022-07-21
WO2020236261A1 (en) 2020-11-26
EP3942763A1 (en) 2022-01-26
US11962490B2 (en) 2024-04-16
US20220191127A1 (en) 2022-06-16
CN113767600A (zh) 2021-12-07
US11899596B2 (en) 2024-02-13
US11882025B2 (en) 2024-01-23
CN113767598A (zh) 2021-12-07
WO2020236293A1 (en) 2020-11-26
US20220217073A1 (en) 2022-07-07
DE112020002509T5 (de) 2022-03-03
US11916782B2 (en) 2024-02-27
US20220197838A1 (en) 2022-06-23
CN113785543A (zh) 2021-12-10
DE112020002499T5 (de) 2022-08-25
US20220329521A1 (en) 2022-10-13
US20220206956A1 (en) 2022-06-30
US20230370364A1 (en) 2023-11-16

Similar Documents

Publication Publication Date Title
US11973685B2 (en) Fat tree adaptive routing

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