KR20120102026A - 단일 계층 스위치드 네트워크 내의 라우팅 방법 및 장치 - Google Patents

단일 계층 스위치드 네트워크 내의 라우팅 방법 및 장치 Download PDF

Info

Publication number
KR20120102026A
KR20120102026A KR1020120023566A KR20120023566A KR20120102026A KR 20120102026 A KR20120102026 A KR 20120102026A KR 1020120023566 A KR1020120023566 A KR 1020120023566A KR 20120023566 A KR20120023566 A KR 20120023566A KR 20120102026 A KR20120102026 A KR 20120102026A
Authority
KR
South Korea
Prior art keywords
switch
packet
source
sink
network
Prior art date
Application number
KR1020120023566A
Other languages
English (en)
Other versions
KR101409919B1 (ko
Inventor
오퍼 아이니
골란 슈즈킨
이얄 다간
Original Assignee
브로드콤 코포레이션
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 브로드콤 코포레이션 filed Critical 브로드콤 코포레이션
Publication of KR20120102026A publication Critical patent/KR20120102026A/ko
Application granted granted Critical
Publication of KR101409919B1 publication Critical patent/KR101409919B1/ko

Links

Images

Classifications

    • 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]
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed 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/74Address processing for routing
    • 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
    • H04L47/527Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

네트워크 내에서 보다 효율적으로 패킷들을 라우팅하기 위한 방법 및 장치가 제공된다. 장치는 네트워크 내의 국부적인 결정들을 생성함에 의한 혼잡 및 블로킹을 회피하는 패킷들 또는 패킷들의 부분들의 동적 라우팅을 포함할 수 있다. 장치는 스위치 출력들을 이용가능한 네트워크 출력 포트들에 매핑하는 라우팅 테이블들의 생성 및 갱신을 더 포함할 수 있다. 추가적으로, 네트워크에 진입하는 패킷들의 헤더는 처리된 패킷을 생성하기 위하여 네트워크 진입 전에 또는 네트워크 진입의 일부로서 처리된다. 처리된 패킷들 또는 패킷의 부분들은 보다 바람직하게 패킷 헤더의 추가적인 처리 없이 네트워크를 통한 고속 라우팅을 가능하게 하는 완전한 경로 정보 또는 최종 목적지 주소를 포함한다. 본 발명의 하나 이상의 측면들은 네트워크 효율을 더 향상하기 위하여 본 발명의 다른 측면들과 결합되어 구현될 수도 있다.

Description

단일 계층 스위치드 네트워크 내의 라우팅 방법 및 장치{METHOD AND APPARATUS FOR ROUTING IN A SINGLE TIER SWITCHED NETWORK}
본 개시의 측면들은 네트워크 내에서 패킷들을 라우팅하는 방법 및 장치를 제공하는 것에 관한 것이다.
컴퓨터 네트워크들 또는 비디오 전송 네트워크들과 같은 다수의 데이터 네트워크들은 데이터를 전송하기 위하여 패킷 스위칭 메커니즘들을 사용한다. 패킷들은 일반적으로 노드들로 지칭되는 엔티티들 사이에서 라우트된다. 노드들 사이에서의 패킷들의 전송에 사용되는 일 메커니즘은 복수의 입력 포트들 및 복수의 출력 포트들을 구비하는 스위치이다. 스위치들의 일부 유형들은 입력 포트 및 출력 포트 사이에서 데이터 패킷을 전송할 수 있다. 스위치는 입력 및 출력 포트들 사이에서 경로(route)들의 동시적 조합이 가능하게 실현될 수 있도록 구성될 수도 있다. 이러한 스위치를 소위 넌-블로킹(non-blocking)이라 한다. 넌-블로킹 스위치의 일 유형은 크로스-바 스위치(cross-bar switch)이다.
요망되는 스위치가 단일 디바이스 내에 포함될 수 있는 것보다 커지는 경우, 더 큰 스위치를 형성하기 위하여 복수의 디바이스들이 결합될 수 있다. 복수의 스위치들- 예를 들어, 크로스-바 스위치들-이 결합되는 경우, 이러한 결합은 본 명세서에서 패브릭(fabric) 또는 네트워크로 지칭된다. 스위치와 유사하게, 네트워크도 블로킹 또는 넌-블로킹일 수 있다.
네트워크에 대한 예시적인 구조는 소스 스위치들로서의 복수의 디바이스들, 싱크 스위치들(sink switches)로서의 다른 복수의 디바이스들 및 중계 스위치들(intermediate switches)로서의 제 3 복수의 디바이스들을 사용한다. 소스 스위치들은 네트워크의 출력 포트들에 연결되며, 네트워크의 출력 포트들에 대한 데이터 소스이다. 싱크 스위치들은 네트워크의 출력 포트들에 연결되며, 네트워크의 입력 포트들로부터의 데이터에 대한 싱크로서 동작한다. 네트워크 내의 많은 링크들은, 네트워크 내의 중요 링크(critical link)를 독점함으로써 단일 소스가 스위치들을 블록하게 허용할 수 있는 상이한 경로들에 의해 공유될 수도 있다. 보다 상세하게, 네트워크에 연결된 싱크 또는 싱크 스위치는 데이터가 과부하될 수도 있다. 전형적으로 싱크 또는 싱크 스위치는 데이터 버스트를 수용하기 위한 데이터 버퍼를 구비할 것이다. 그러나, 버퍼는 수신 데이터에 대한 제어 없이는 과부하될 수도 있다.
네트워크 내에서 데이터 흐름(flow)을 제어하기 위한 일 방법은 각각의 소스 스위치가 싱크 스위치로부터 대역폭을 요청하도록 하는 것이다. 싱크 스위치는 순차적으로 데이터 대역폭에 대한 "크레딧들(credits)"을 생성하고, 이러한 크레딧들을 요청한 소스로 전송한다. 크레딧들을 사용하는 시스템은 당업계에서 공지되어 있으며, 예시적으로, 참조로써 그 전부가 본 명세서에 통합되는 미국 특허 US 7,619,970호에 설명되어 있다.
현재 네트워크들/패브릭들의 일 단점은 하나의 경로가 다른 경로를 블로킹할 가능성이다. 링크들이 공유될 수 있다 하더라도, 때때로 특정 경로들이 블록될 수 있다. 블록된 경로를 우회하는 라우팅이 실현될 수도 있지만, 블록된 경로를 수용하기 위하여 존재하는 경로들의 일부 또는 전부를 다시 라우팅(rerouting)하는 것이 요구될 수도 있다. 네트워크를 통한 흐름들을 다시 라우팅하는 것은 출력 포트들로의 데이터 전달에 있어 수용할 수 없는 지연을 초래하는 다양한 스위치들 내에서 데이터 흐름들의 중단을 요구할 수 있다.
현재 네트워크들의 다른 단점은 패킷 헤더들이 네트워크 내의 각 단계/스위치에서 처리되는 요구사양이다. 전형적인 패킷들은 데이터 부분 및 헤더 부분으로 구성된다. 헤더는 전형적으로 TCP/IP와 같은 공지된 프로토콜을 가능하게 할 수 있도록 구성된다. 네트워크 내의 각 단계/스위치에서 헤더는 전형적으로 라우팅 정보를 추출하기 위하여 처리된다. 이러한 처리 요구사양은 비용, 메모리 크기 및 스위치들에 대한 처리 요구사양들을 크게 증가시킨다.
현재 네트워크들의 또 다른 단점은 네트워크의 전체적인 토폴로지(topology)에 관한 정보의 결여이다. 네트워크 내의 각 스위치들은 단지 네트워크의 원본 토폴로지 또는 국부적인 연결만을 인식할 수 있다. 네트워크 내의 하나의 링크가 작동하지 않게 되는 경우, 데이터가 유실되거나 지연된다.
따라서, 네트워크 내에서 블록된 경로들을 방지하고, 각각의 스위치에서의 패킷 헤더 처리 오버헤드를 감소하거나 또는 제거하며, 네트워크 내에서 손상되거나 또는 작동하지 않는 링크들을 우회(around)하여 라우팅하는 장치 및 방법을 제공하는 것이 요청된다.
스위치들로 구성되는 네트워크가 적어도 하나의 도면들과 연관되어 도시되거나 및/또는 설명되며, 청구항들 내에서 보다 완전하게 제시된다. 네트워크는 블록된 경로들을 방지하는 메커니즘들을 포함할 수 있다. 이에 더하여, 네트워크는 네트워크 내에서 스위치들에 의한 헤더 처리를 감소 및/또는 제거할 수 있으며, 작동하지 않는 링크들을 우회하여 데이터 패킷들을 라우팅할 수 있다.
일 측면에 따르면, 단일 계층 네트워크는, 적어도 하나의 입력 포트; 적어도 하나의 출력 포트; 적어도 하나의 입력, 적어도 두 개의 출력들 및 적어도 하나의 가상 출력 큐(queue)를 포함하며, 상기 적어도 하나의 가상 출력 큐는 적어도 하나의 싱크와 연관된, 적어도 하나의 소스 스위치; 적어도 하나의 입력, 적어도 두 개의 출력들 및 적어도 하나의 스케쥴링 메커니즘을 포함하는 적어도 하나의 싱크 스위치; 및 상기 적어도 하나의 소스 스위치와 적어도 하나의 싱크 스위치를 연결하는 패브릭을 포함하되, 상기 적어도 하나의 가상 출력 큐는 적어도 하나의 스케쥴링 메커니즘 큐 상태 정보를 제공하고, 상기 적어도 하나의 스케쥴링 메커니즘은 상기 큐 상태 정보의 수신에 응답하여 크레딧을 생성하며, 상기 소스 스위치는 상기 크레딧의 수신에 응답하여 적어도 하나의 부하 분산 알고리즘을 이용하여 복수의 출력들을 통해 단일 데이터 흐름의 패킷들 또는 그 부분들을 전송하고, 패킷들 또는 패킷들의 부분들은 상기 소스 스위치에 의해 정렬되며, 상기 패킷들 또는 패킷들의 부분들은 상기 싱크 스위치에 의해 재정렬된다.
보다 바람직하게, 상기 네트워크는 상기 적어도 하나의 싱크 스위치에 연결된 적어도 하나의 중계 스위치를 더 포함한다.
보다 바람직하게, 상기 네트워크는 상기 적어도 하나의 소스 스위치에 연결된 적어도 하나의 중계 스위치를 더 포함한다.
보다 바람직하게, 상기 적어도 하나의 소스 스위치는 상기 적어도 하나의 싱크 스위치와 동일하다.
보다 바람직하게, 상기 적어도 하나의 중계 스위치는 적어도 하나의 부하 분산 알고리즘을 이용하여 복수의 출력들을 통해 패킷들 또는 패킷들의 부분들을 전송한다.
보다 바람직하게, 상기 적어도 하나의 소스 스위치는 적어도 하나의 소스 테이블을 저장하며, 상기 적어도 하나의 소스 테이블을 상기 적어도 하나의 소스 스위치의 적어도 하나의 출력을 상기 적어도 하나의 스위치에 매핑하기 위한 것이고, 및 상기 데이터 흐름의 구성물은 상기 소스 테이블을 이용해 상기 소스 스위치의 복수의 출력들을 통해 라우팅되며, 상기 데이터 흐름은 복수의 패킷들 또는 패킷들의 부분들로 구성된다.
보다 바람직하게, 상기 네트워크는 적어도 하나의 중계 스위치를 더 포함하며, 상기 적어도 하나의 중계 스위치는 상기 적어도 하나의 소스 스위치에 연결되고, 상기 적어도 하나의 중계 스위치는 적어도 하나의 중계 테이블을 저장한다.
보다 바람직하게, 상기 네트워크는 적어도 하나의 중계 스위치를 더 포함하고, 상기 중계 스위치는 적어도 두 개의 출력들 및 적어도 하나의 데이터 흐름을 포함하며, 상기 데이터 흐름은 상기 중계 테이블을 이용하여 상기 중계 스위치의 복수의 출력들을 통해 라우팅된다.
보다 바람직하게, 상기 적어도 하나의 소스 스위치는 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 생성하기 위하여 적어도 하나의 패킷 헤더를 처리하며, 상기 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분은 상기 적어도 하나의 패킷 헤더의 추가적인(further) 처리와 독립되어 상기 싱크 스위치로 라우팅될 수 있다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 상기 네트워크의 상기 적어도 하나의 출력으로 라우팅될 수 있다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 최종 목적지를 포함한다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 적어도 하나의 상기 네트워크 내의 명시적인(explicit) 경로를 포함한다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 상기 최종 목적지에 따라 상기 네트워크의 상기 적어도 하나의 출력 포트로 라우팅된다.
일 측면에 따르면, 단일 계층 네트워크는, 적어도 하나의 입력 포트; 적어도 하나의 출력 포트; 적어도 하나의 입력 및 적어도 하나의 출력을 포함하는 적어도 하나의 소스 스위치; 적어도 하나의 입력 및 적어도 하나의 출력을 포함하는 적어도 하나의 싱크 스위치; 및 상기 적어도 하나의 소스 스위치와 상기 적어도 하나의 싱크 스위치를 연결하는 패브릭을 포함하되, 상기 적어도 하나의 소스 스위치는 적어도 하나의 소스 테이블을 저장하며, 상기 적어도 하나의 소스 테이블을 상기 적어도 하나의 소스 스위치의 상기 적어도 하나의 출력을 상기 적어도 하나의 싱크 스위치에 매핑하기 위한 것이며, 상기 소스 테이블은 상기 적어도 하나의 싱크 스위치 또는 적어도 하나의 중계 스위치로부터 갱신된 토폴로지 정보를 수신하고, 및 상기 네트워크에 진입하는 각각의 패킷 헤더는 번역 모듈 또는 상기 적어도 하나의 소스 스위치에 의해 처리된다.
보다 바람직하게, 상기 네트워크는 적어도 하나의 중계 스위치를 더 포함하며, 상기 적어도 하나의 중계 스위치는 상기 적어도 하나의 소스 스위치에 연결되고, 상기 적어도 하나의 중계 스위치는 적어도 하나의 싱크 스위치로부터 수신된 갱신된 토폴로지 정보를 적어도 하나의 중계 테이블로 저장한다.
보다 바람직하게, 상기 적어도 하나의 소스 테이블은 상기 적어도 하나의 중계 테이블에 기초하며, 상기 적어도 하나의 소스 스위치는 상기 적어도 하나의 중계 스위치로부터 수신된 상기 중계 테이블을 출력한다.
보다 바람직하게, 상기 적어도 하나의 싱크 스위치는 적어도 하나의 소스 테이블을 갱신한다.
보다 바람직하게, 적어도 하나의 작동하지 않는 연결은 적어도 하나의 소스 테이블의 적어도 하나의 갱신을 유발한다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 상기 네트워크의 상기 적어도 하나의 출력 포트로 라우팅될 수 있다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 최종 목적지를 포함한다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 상기 네트워크 내의 적어도 하나의 명시적인 경로를 포함한다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 상기 최종 목적지에 따라 상기 네트워크의 상기 적어도 하나의 출력 포트로 라우팅된다.
보다 바람직하게, 상기 적어도 하나의 소스 스위치는 적어도 하나의 처리된 패킷을 생성하기 위하여 적어도 하나의 패킷 헤더를 처리하고, 상기 적어도 하나의 처리된 패킷은 상기 적어도 하나의 패킷 헤더의 추가적인처리와 독립적으로 상기 소스 테이블을 사용하여 상기 패브릭의 상기 적어도 하나의 출력 포트로 라우팅될 수 있다.
보다 바람직하게, 상기 적어도 하나의 소스 스위치는 적어도 하나의 처리된 패킷을 생성하기 위하여 적어도 하나의 패킷 헤더를 처리하고, 상기 적어도 하나의 처리된 패킷은 상기 적어도 하나의 패킷 헤더의 추가적인처리와 독립적으로 상기 적어도 하나의 중계 테이블을 사용하여 상기 네트워크의 상기 적어도 하나의 출력 포트로 라우팅된다.
일 측면에 따르면, 단일 계층 네트워크는, 적어도 하나의 입력 포트; 적어도 하나의 출력 포트; 적어도 하나의 입력 및 적어도 하나의 출력을 포함하는 적어도 하나의 소스 스위치; 적어도 하나의 입력 및 적어도 하나의 출력을 포함하는 적어도 하나의 싱크 스위치; 및 상기 적어도 하나의 소스 스위치와 적어도 하나의 싱크 스위치를 연결하는 패브릭을 포함하되, 상기 적어도 하나의 소스 스위치는 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 생성하기 위하여 적어도 하나의 패킷 헤더를 처리하고, 상기 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분은 상기 적어도 하나의 패킷 헤더의 추가적인처리와 독립적으로 상기 싱크 스위치로 라우팅될 수 있다.
보다 바람직하게, 상기 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분은 상기 네트워크의 상기 적어도 하나의 출력 포트로 라우팅될 수 있다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 최종 목적지를 포함한다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 상기 네트워크 내의 적어도 하나의 명시적인 경로를 포함한다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 상기 최종 목적지에 따라 상기 네트워크의 상기 적어도 하나의 출력 포트로 라우팅된다.
일 측면에 따르면, 단일 계층 네트워크 내에서 패킷들 또는 패킷들의 부분을 라우팅하는 방법이 제공되며, 상기 네트워크는 입력 포트들, 출력 포트들 및 적어도 하나의 소스 스위치 및 적어도 하나의 싱크 스위치의 패브릭을 포함하고, 상기 적어도 하나의 소스 스위치는 적어도 하나의 가상 출력 큐를 포함하며, 상기 적어도 하나의 싱크 스위치는 적어도 하나의 스케쥴링 메커니즘을 포함하고, 상기 방법은, 적어도 하나의 가상 출력 큐로부터 큐 상태 정보를 적어도 하나의 스케쥴링 메커니즘으로 전송하는 단계; 상기 큐 상태 정보의 수신에 응답하여 상기 적어도 하나의 스케쥴링 메커니즘으로부터 적어도 하나의 크레딧을 상기 적어도 하나의 가상 출력 큐로 전송하는 단계; 소스 스위치에서 적어도 두 개의 패킷들 또는 패킷들의 적어도 두 부분들을 정렬하는 단계; 상기 크레딧의 수신에 응답하여 적어도 하나의 부하 분산 알고리즘을 사용하여 상기 적어도 하나의 소스 스위치로부터 복수의 출력들을 통해 정렬된 패킷들 또는 패킷들의 부분들의 적어도 하나의 데이터 흐름을 상기 적어도 하나의 싱크 스위치로 전송하는 단계로서, 상기 데이터 흐름은 복수의 패킷들로 구성된 것인, 단계; 및 상기 싱크 스위치에서 수신된 상기 패킷들 또는 패킷들의 부분들을 재정렬하는 단계를 포함한다.
보다 바람직하게, 상기 네트워크는 적어도 하나의 중계 스위치를 더 포함하며, 상기 큐 상태 정보는 상기 적어도 하나의 소스 스위치로부터 상기 적어도 하나의 중계 스위치를 통하여 상기 적어도 하나의 싱크 스위치로 전송되고, 상기 적어도 하나의 크레딧은 상기 적어도 하나의 싱크 스위치로부터 상기 적어도 하나의 중계 스위치를 통하여 상기 적어도 하나의 소스 스위치로 전송되며, 정렬된 패킷들의 상기 적어도 하나의 데이터 흐름은 상기 적어도 하나의 소스 스위치로부터 적어도 하나의 중계 스위치를 통하여 상기 적어도 하나의 싱크 스위치로 전송되고, 상기 방법은 적어도 하나의 부하 분산 알고리즘을 이용하여 상기 데이터 흐름의 적어도 두 개의 정렬된 패킷들 또는 패킷들의 부분들을 상기 중계 스위치의 복수의 출력들을 통하여 상기 적어도 하나의 싱크 스위치로 전송하는 단계를 더 포함한다.
보다 바람직하게, 상기 방법은, 적어도 하나의 소스 테이블을 적어도 하나의 싱크 스위치에 저장하는 단계로서, 상기 적어도 하나의 소스 테이블은 상기 적어도 하나의 싱크 스위치의 상기 적어도 하나의 출력을 상기 네트워크의 상기 적어도 하나의 출력 포트에 매핑하기 위한 것인, 단계; 및 상기 적어도 하나의 소스 테이블을 이용하여 상기 적어도 하나의 싱크 스위치의 복수의 출력들을 통해 상기 데이터 흐름을 라우팅하는 단계를 더 포함한다.
보다 바람직하게, 상기 방법은, 상기 적어도 하나의 소스 스위치로부터 상기 적어도 하나의 중계 스위치 출력을 통하여 상기 적어도 하나의 소스 테이블을 상기 적어도 하나의 중계 스위치로 전송하는 단계; 수신된 상기 소스 테이블인 상기 적어도 하나의 중계 스위치 출력에 기초하는 적어도 하나의 중계 테이블을 상기 적어도 하나의 중계 스위치에 저장하는 단계; 및 상기 적어도 하나의 중계 테이블을 사용하여 상기 데이터 흐름을 상기 적어도 하나의 중계 스위치의 복수의 출력들을 통해 라우팅하는 단계를 더 포함한다.
보다 바람직하게, 상기 방법은, 적어도 하나의 중계 테이블을 적어도 하나의 소스 스위치 출력을 통해 상기 적어도 하나의 소스 스위치로 전송하는 단계; 상기 적어도 하나의 중계 테이블 및 수신된 상기 중계 테이블인 상기 적어도 하나의 소스 스위치 출력에 기초한 적어도 하나의 소스 테이블을 상기 적어도 하나의 소스 스위치에 저장하는 단계; 및 상기 소스 테이블을 사용하여 상기 소스 스위치의 복수의 출력들을 통해 상기 데이터 흐름을 라우팅하는 단계를 더 포함한다.
보다 바람직하게, 상기 방법은, 적어도 하나의 작동되지 않는 연결에 응답하여 적어도 하나의 소스 테이블을 갱신하는 단계를 더 포함한다.
보다 바람직하게, 상기 방법은, 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 생성하기 위하여 적어도 하나의 패킷 헤더를 처리하는 단계; 및 상기 적어도 하나의 패킷 헤더의 추가적인처리와 독립적으로 상기 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 상기 싱크 스위치로 라우팅하는 단계를 더 포함한다.
보다 바람직하게, 상기 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분은 상기 네트워크의 상기 적어도 하나의 출력 포트로 라우팅될 수 있다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 최종 목적지를 포함한다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 상기 네트워크 내의 적어도 하나의 명시적인 경로를 포함한다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 상기 최종 목적지에 따라 상기 네트워크의 상기 적어도 하나의 출력 포트로 라우팅된다.
일 측면에 따르면, 단일 계층 네트워크 내에서 패킷들 또는 패킷들의 부분을 라우팅하는 방법이 제공되며, 상기 네트워크는 입력 포트들, 출력 포트들 및 적어도 하나의 소스 스위치 및 적어도 하나의 싱크 스위치의 패브릭을 포함하고, 상기 방법은, 번역 모듈 또는 상기 적어도 하나의 소스 스위치에 의해 모든 패킷 또는 패킷의 처리된 부분을 처리하는 단계로서, 상기 처리는 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 생성하는 것인, 단계; 적어도 하나의 소스 테이블을 상기 적어도 하나의 소스 스위치에 저장하는 단계로서, 상기 적어도 하나의 소스 테이블은 상기 적어도 하나의 싱크 스위치의 상기 적어도 하나의 출력을 상기 네트워크의 상기 적어도 하나의 출력에 매핑하기 위한 것인, 단계; 및 상기 적어도 하나의 소스 스위치로부터 적어도 하나의 데이터 흐름을 상기 네트워크의 상기 적어도 하나의 출력으로 전송하는 단계로서, 상기 데이터 흐름은 상기 소스 테이블을 사용하여 라우팅되며, 상기 데이터 흐름은 복수의 패킷들 또는 패킷들의 복수의 부분들로 구성되고, 적어도 하나의 패킷 또는 패킷의 부분은 적어도 하나의 헤더로 구성되는, 단계를 포함한다.
보다 바람직하게, 상기 네트워크는 적어도 하나의 중계 스위치를 더 포함하고, 상기 방법은, 상기 적어도 하나의 소스 테이블을 적어도 하나의 중계 스위치 출력을 통하여 상기 적어도 하나의 중계 스위치로 전송하는 단계; 및 상기 적어도 하나의 소스 테이블 및 수신된 상기 소스 테이블인 상기 적어도 하나의 중계 스위치 출력에 기초한 적어도 하나의 중계 테이블을 저장하는 단계를 더 포함한다.
보다 바람직하게, 상기 방법은, 적어도 하나의 중계 테이블을 적어도 하나의 소스 스위치 출력을 통해 상기 적어도 하나의 소스 스위치로 전송하는 단계; 및 상기 적어도 하나의 중계 테이블 및 수신된 상기 중계 테이블인 상기 적어도 하나의 소스 스위치 출력에 기초한 적어도 하나의 소스 테이블을 저장하는 단계를 더 포함한다.
보다 바람직하게, 상기 방법은 상기 적어도 하나의 소스 테이블을 갱신하는 단계를 더 포함한다.
보다 바람직하게, 상기 방법은 적어도 하나의 소스 테이블을 갱신하는 단계로서, 상기 갱신은 적어도 하나의 작동되지 않는 연결에 의해 유발된 것인, 단계를 더 포함한다.
보다 바람직하게, 상기 방법은, 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 상기 네트워크의 상기 적어도 하나의 출력 포트로 라우팅하는 단계를 더 포함한다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 최종 목적지를 포함한다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 상기 네트워크 내의 적어도 하나의 명시적인 경로를 포함한다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 상기 최종 목적지에 따라 상기 네트워크의 상기 적어도 하나의 출력 포트로 라우팅된다.
보다 바람직하게, 상기 방법은, 상기 적어도 하나의 소스 스위치에서, 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 생성하기 위하여 적어도 하나의 패킷 헤더 또는 패킷의 부분을 처리하는 단계; 및 상기 적어도 하나의 패킷 헤더의 추가적인처리와 독립적으로, 상기 싱크 테이블을 사용하여 상기 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 상기 네트워크의 상기 적어도 하나의 출력 포트로 라우팅하는 단계를 더 포함한다.
보다 바람직하게, 상기 방법은, 상기 적어도 하나의 소스 스위치에서, 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 생성하기 위하여 적어도 하나의 패킷 헤더를 처리하는 단계; 및 상기 적어도 하나의 패킷 헤더의 추가적인처리와 독립적으로, 상기 중계 테이블을 사용하여 상기 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 상기 네트워크의 상기 적어도 하나의 출력 포트로 라우팅하는 단계를 더 포함한다.
보다 바람직하게, 상기 방법은, 상기 적어도 하나의 소스 스위치에서, 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 생성하기 위하여 적어도 하나의 패킷 헤더를 처리하는 단계; 및 상기 적어도 하나의 패킷 헤더의 추가적인처리와 독립적으로, 상기 싱크 테이블을 사용하여 상기 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 상기 네트워크의 상기 적어도 하나의 출력 포트로 라우팅하는 단계를 더 포함한다.
일 측면에 따르면, 단일 계층 네트워크 내에서 패킷들 또는 패킷들의 부분을 라우팅하는 방법이 제공되며, 상기 네트워크는 입력 포트들, 출력 포트들 및 적어도 하나의 소스 스위치 및 적어도 하나의 싱크 스위치의 패브릭을 포함하고, 상기 방법은, 번역 모듈 또는 상기 적어도 하나의 소스 스위치에 의해 모든 패킷 또는 패킷의 부분을 처리하는 단계로서, 상기 처리는 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 생성하는 것인, 단계; 상기 적어도 하나의 패킷 헤더의 추가적인처리와 독립적으로, 상기 적어도 하나의 소스 스위치로부터 적어도 하나의 처리된 패킷을 상기 적어도 하나의 싱크 스위치로 라우팅하는 단계를 포함한다.
보다 바람직하게, 상기 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분은 상기 네트워크의 상기 적어도 하나의 출력 포트로 라우팅될 수 있다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 최종 목적지를 포함한다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 상기 네트워크 내의 적어도 하나의 명시적인 경로를 포함한다.
보다 바람직하게, 상기 처리된 패킷 또는 패킷의 처리된 부분은 상기 최종 목적지에 따라 상기 네트워크의 상기 적어도 하나의 출력 포트로 라우팅된다.
본 발명의 목적들 및 장점들은 첨부된 도면들과 함께 후술되는 상세한 설명에 대한 숙고로부터 명백해 질 것이며, 도면들 전체에서 유사한 참조부호들은 유사한 구성요소를 나타낸다.
도 1은 스위치들로 구성된 일반적인 네트워크를 도시한다.
도 2는 소스 디바이스의 개략적인 구성도를 도시한다.
도 3은 싱크 디바이스의 개략적인 구성도를 도시한다.
도 4a는 블록된 경로를 갖는 네트워크를 도시한다.
도 4b는 블록되지 않은 경로를 갖는 네트워크를 도시한다.
도 4c는 동적 라우팅을 구비한 네트워크를 도시한다.
도 5a는 라우팅 테이블들을 구비한 네트워크를 도시한다.
도 5b는 작동하지 않는 링크를 수용하는 라우팅 테이블들을 구비한 네트워크를 도시한다.
도 6a는 데이터 패킷을 도시한다.
도 6b는 최종 목적지를 갖는 데이터 패킷을 도시한다.
도 6c는 명시적인 라우팅 정보를 갖는 데이터 패킷을 도시한다.
도 6d는 명시적인 라우팅 정보를 갖는 데이터 패킷을 도시한다.
도 6e는 명시적인 라우팅 정보를 갖는 데이터 패킷을 도시한다.
도 6f는 명시적인 라우팅 정보를 갖는 데이터 패킷을 도시한다.
도 6g는 명시적인 라우팅 정보를 갖는 데이터 패킷을 도시한다.
도 7은 서버들 및 네트워크의 예시적인 구성을 도시한다.
도 8은 서버 및 네트워크의 예시적인 구성을 도시한다.
데이터 전송 네트워크의 효율성을 향상시키기 위한 장치 및 방법들이 제공된다. 네트워크를 포함하는 디바이스들에 대한 처리 시간 및 메모리 요구사양들의 감소가 제공된다. 추가적으로, 고장 상황 하에서의 데이터 손실의 감소 및 그에 따른 전송 효율의 개선 또한 제공된다.
본 명세서의 일부를 구성하는 첨부된 도면들을 참조하여 본 발명의 원리들에 따른 방법들 및 장치들의 예시적인 실시예들이 설명될 것이다. 다른 실시예들이 이용될 수 있고, 본 발명의 사상 및 범위를 벗어나지 않고 구조적, 기능적 및 절차적 변형들이 있을 수 있음이 이해되어야 한다.
본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 이해될 수 있는 바와 같이, 본 명세서에서 설명되는 발명은 그 전체 또는 일부가 방법, 데이터 처리 시스템, 또는 컴퓨터 프로그램 제품으로서 구현될 수도 있다. 따라서, 본 발명은 완전한 하드웨어 실시예, 완전한 소프트웨어/펌웨어 실시예 또는 소프트웨어, 펌웨어, 하드웨어를 조합한 실시예 및 다른 적절한 접근 방법 또는 장치의 형태로 구현될 수 있다.
또한, 이러한 측면들은 컴퓨터-판독가능 프로그램 코드를 구비한 하나 이상의 컴퓨터-판독가능 저장 매체에 의해 저장된 컴퓨터 프로그램 제품의 형태로 구현될 수도 있다. 하드 디스크들, EEPROM, 플래시 메모리, SRAM, DRAM, CD-ROM, 광학 저장 디바이스들, 자기 저장 디바이스들, 및 또는 그들의 조합을 포함하는 적절한 컴퓨터 판독가능 저장 매체가 사용될 수 있다. 이에 더하여, 본 명세서에서 설명되는 바와 같은 데이터 또는 이벤트들을 나타내는 다양한 신호들이 금선 선들, 광섬유들, 및/또는 무선 전송 매체(예를 들어, 공기 및/또는 공간)와 같은 신호-전달 매체를 통해 이동하는 전자기파 형태로 소스와 목적지 사이에서 전송될 수 있다.
도 1은 네트워크(100)의 일 실시예를 도시하는 도면이다. 네트워크(100)는 보다 바람직하게 소스 스위치들(110, 111, 112)의 층(layer), 중계 스위치들(120, 121, 122)의 층 및 싱크 스위치들(130, 131, 132)의 층으로 구성된다. 네트워크(100)는 9개의 입력 포트들(1~9) 및 9개의 출력 포트들(11~19)을 구비한다. 네트워크(100)는 데이터를, 보통 패킷들, 또는 패킷의 부분들의 형태로 입력 포트로부터 출력 포트로 전송한다. 네트워크(100)의 일반적인 이용은 입력 포트에 연결된 디스크 드라이브로부터 출력 포트에 연결된 다른 디스크 드라이브로의 데이터 전송이다.
네트워크(100)는 입력 포트들 및 출력 포트들을 구비하고, 따라서 단지 한 방향으로의 데이터 흐름을 지원하는 것으로 도시되어 있다. 그러나, 바람직한 토폴로지는 명목상의 "출력 포트들"로부터 명목상의 "입력 포트들"로의 동일한 이동을 허용할 수 있다. 따라서, 바람직한 토폴로지는 네트워크 내의 모든 링크들이 어느 방향으로도 동일하게 데이터를 전송하도록 허용할 수 있다. 이러한 바람직한 토폴로지 내에서, 싱크로부터 원래의 소스로 되돌아가기 위한 별도의 링크들이 필요하지 않다. 따라서, 데이터 전송에 사용되는 동일한 경로가 또한 제어 정보의 전송에 사용될 수도 있다.
예를 들어, 싱크(130)가 제어 정보를 소스(111)로 회신하고자 하는 경우, 싱크는 소스(111)를 빠져나오는 링크들을 사용할 수 있다. 만일 대응하는 소스 및 싱크가 그들 간에 분리된 통신 채널을 구비하는 경우, 이러한 것이 가능하다. 대응하는 소스 및 싱크가 동일한 네트워크 구성요소의 부분일 수 있으므로, 이러한 통신 채널은 일반적으로 단순하며 국부적이다. 예를 들어, 싱크(130) 및 소스(111)는 동일 네트워크 서버의 일부분일 수 있다.
따라서, 후술되는 설명에서 나타날 바와 같이, 제어 정보 및 라우팅 테이블들의 전송을 지원하기 위하여 시스템 내에서 데이터를 "역방향(backward)"으로 이동하도록 허용하는 것이 편리하다. 데이터를 일 방향으로 이동하도록 하거나, 또는 단순히 일 방향으로의 고속 데이터 이동을 허용하는 다른 구성들이 본 발명의 범위 내에서 고려되며 포함된다. 동일하게, "대역을 벗어남(out of band)"을 위한 대비 또는 제어 정보를 위한 분리 제어 흐름 경로들이 본 발명의 범위 내에서 고려되며 포함된다. 네트워크(100)의 일 실시예에 대한 설명을 간략화하기 위하여, 양 방향으로 동일한 링크들을 따라 흐르는 제어 정보를 이용한 입력 포트들로부터 출력 포트들로의 데이터 전송에 대해서만 설명하도록 한다.
전술한 설명에서, 각각의 스위치는 링크들에 의해 다른 스위치들 및/또는 네트워크의 입력/출력 포트들에 연결된 몇몇의 입력들 및 출력들을 구비한다. 간결하게 하기 위하여, 링크들은 그들의 말단포인트(endpoint)들에 의해 설명되며, 예를 들어, 소스 스위치(111)의 출력(116z)과 중계 스위치(122)의 입력(127B)으로의 사이의 링크는 링크(116z, 127B)로서 설명될 것이다. 링크는 또한 링크(127B, 116z)와 같이 하나의 설명 또는 다른 설명과 차이 없이 설명될 수 있다. 네트워크 포트 및 스위치 사이의 링크는 유사한 방식으로 설명되며, 즉, 싱크 스위치 출력(138y)과 네트워크 출력 포트(18)로의 사이의 링크는 (138y, 18)와 같이 설명될 것이다. 각각의 링크는 이더넷 상의 TCP/IP와 같은 공지된 표준 또는 특허(proprietary) 방법 또는 메커니즘을 통해 구현될 수 있다.
소스 스위치(110)는 입력들(113A, 113B, 113C) 각각을 통하여 입력 포트들(1, 2, 3)에 연결된다. 네트워크(100)의 입력 포트들(1~3)과 소스 스위치(113A~113C)의 입력들 사이의 링크는 이더넷 상의 TCP/IP 또는 특허된 표준을 통한 것일 수 있다. 네트워크의 입력 포트(또는 출력 포트)의 일 실시예는 데이터를 공지된 표준으로부터 특허된 링크 프로토콜로(또는 특허된 링크 프로토콜로부터 공지된 표준으로) 변환하는 번역 모듈을 사용할 수 있다. 번역 모듈은 하나 이상의 회선 카드들(line card)로서 구현될 수 있다. 대안적으로, 하나 이상의 번역 모듈들은 "피자 상자(pizza box)" 또는 다른 적절한 구현 구조 내에 구성될 수도 있다. 이러한 구조는 동일한 소스 스위치들이 각각 별개의 번역 모듈을 요구하는 다양한 네트워크 프로토콜들에 연결하는 것을 허용한다.
본 발명의 몇몇 실시예들에 있어서, 네트워크는 네트워크의 기점 및 종점에서의 서버를 포함할 수 있다. 그와 같이, 서버는 바람직하게 네트워크의 입력에서의 소스 스위치, 네트워크의 출력에서의 싱크 스위치 중 어느 하나, 또는 네트워크의 입력에서의 소스 스위치 및 네트워크의 출력에서의 싱크 스위치 모두를 대체할 수도 있다. 몇몇 실시예에 있어, 단일 서버는 소스 스위치 및 싱크 스위치 모두로서 동작할 수 있다.
다른 실시예에 있어, 싱크 스위치는 입력들(113A~113C)의 부분으로서 하나 이상의 표준 프로토콜들을 포함할 수 있다. 이러한 구성에 있어, 네트워크(100)의 입력 포트는 적어도 하나의 소스 스위치(110~112)의 입력이 된다. 또 다른 실시예에 있어, 네트워크의 몇몇 입력 포트들은 공유된 매체를 통하여 소스 스위치의 단일 입력에 연결될 수 있다. 이러한 모든 실시예들 및 이러한 실시예들의 조합들은 본 발명의 범위 내에서 고려되고 포함된다.
후술되는 설명들은 상정하는(presuming) 번역 모듈 구성에 의해 표준화된다. 이러한 구성에 있어, 하나의 카드가 네트워크의 입력 또는 출력 각각에 부착된다. 소스 스위치들(111, 112)은 입력 포트들(4~6) 및 입력 포트들(7~9)에 각각 유사하게 연결된다.
소스 스위치(110)는 링크(114x, 123A)를 통해 중계 스위치(120)에 연결된다. 소스 스위치(110)는 링크(114y, 125A) 및 링크(114z, 127A) 각각을 통하여 유사한 방식으로 중계 스위치들(121, 122)에 연결된다. 네트워크(100) 내의 모든 소스 스위치가 적어도 하나의 링크에 의해 네트워크(100) 내의 모든 중계 스위치에 연결될 수 있도록, 소스 스위치들(111, 112) 또한 유사하게 중계 스위치들(120~122)에 연결된다.
비록 설명된 실시예가 각각의 소스 스위치(110~112) 및 중계 스위치(120~122) 사이의 단 하나의 링크를 나타내고 있으나, 다른 구성들도 가능하다. 이러한 구성들은 소스 스위치들(110~112) 및 중계 스위치들(120~122)의 몇몇의 쌍들 사이의 복수의 연결들 및/또는 소스 스위치들(110~112) 및 중계 스위치들(120~122)의 몇몇의 쌍들 사이의 무연결(no connection)을 포함한다. 디바이스들의 하나의 가능한 구성을 반영하는 네트워크(100)의 실시예와 함께, 이러한 모든 가능한 변형들은 본 발명의 범위 내에서 고려되고 포함된다.
중계 스위치(120)는 링크(124x, 133A)를 통해 싱크 스위치(130)에 연결된다. 중계 스위치(120)는 링크(124y, 135A) 및 링크(124z, 137A) 각각을 통해 유사한 방식으로 싱크 스위치들(131, 132)에 연결된다. 모든 중계 스위치가 적어도 하나의 링크에 의해 모든 싱크 스위치에 연결될 수 있도록, 중계 스위치들(121, 122) 또한 유사하게 싱크 스위치들(130~132)에 연결된다.
비록 설명된 실시예가 각각의 중계 스위치(120~122) 및 싱크 스위치(130~132) 사이의 단 하나의 링크를 나타내고 있으나, 다른 구성들도 가능하다. 이러한 구성들은 중계 스위치들(120~122) 및 싱크 스위치들(130~132)의 몇몇의 쌍들 사이의 복수의 연결들 및/또는 중계 스위치들(120~122) 및 싱크 스위치들(130~132)의 몇몇의 쌍들 사이의 무연결(no connection)을 포함한다. 디바이스들의 하나의 가능한 구성을 반영하는 네트워크(100)의 실시예와 함께, 이러한 모든 가능한 변형들은 본 발명의 범위 내에서 고려되고 포함된다.
싱크 스위치(130)는 출력들(134x, 134y, 134z) 각각을 통해 출력 포트들(11, 12, 13)에 연결된다. 네트워크(100)의 출력 포트들(11~13) 및 싱크 스위치의 출력들(134x~134z) 사이의 링크는 이더넷 상의 TCP/IP 또는 특허 표준을 통한 것일 수 있다. 네트워크의 입력 포트의 일 실시예는 특허 링크 프로토콜을 공지된 표준으로 변역하는 번역 모듈을 사용할 수 있다. 이러한 구성은 동일한 싱크 스위치들이 각각 별개의 번역 모듈을 요구할 수 있는 다양한 네트워크 프로토콜들에 연결하는 것을 허용한다. 다른 실시예에 있어, 싱크 스위치는 출력들(134x~134z)의 부분으로서 하나 이상의 표준 프로토콜들을 포함하고, 번역 모듈들의 필요성을 제거할 수 있다. 이러한 구성에 있어, 네트워크의 출력 포트는 적어도 하나의 싱크 스위치(130~132)의 출력이 된다. 또 다른 실시예에 있어, 네트워크의 몇몇 출력 포트들은 공유된 매체를 통하여 싱크 스위치의 단일 출력에 연결될 수 있다. 이러한 모든 실시예들 및 이러한 실시예들의 조합들은 본 발명의 범위 내에서 고려되고 포함된다. 싱크 스위치들(131, 132)은 각각 유사하게 출력 포트들(14~16) 및 출력 포트들(17~19)에 연결된다.
네트워크(100)는 바람직하게 당업계에서 공지된 클로스 네트워크(Clos network)로서 구성된다. 그러나 완전히 연결된 크로스바 스위치를 포함하는 다른 블로킹 및 넌-블로킹 구성들이 본 발명의 범위 내에서 고려되고 포함된다.
비록 네트워크(100)의 구성이 중계 스위치들(120, 121, 122)의 단일 층만을 구비하지만, 중계 스위치들의 복수의 층들이 사용되고 본 발명의 범위 내에 포함될 수 있다. 마찬가지로 소스 스위치들(110~112) 및 싱크 스위치들(130~132)은 서로 상이하거나 또는 동일할 수 있다. 네트워크 내의 모든 링크들이 동일한 경우, 소스 및 싱크 스위치들이 동일한 것이 바람직하다. 마찬가지로, 모든 스위치들, 소스 스위치들(110~112), 중계 스위치들(120~122) 및 싱크 스위치들(130~132)이 동일할 수 있다. 이러한 변형들 각각은 본 발명의 범위 내에서 고려되고 포함된다. 네트워크(100)의 스위치들의 각각의 층에서, 세 개의 소스 스위치들(110~112), 세 개의 중계 스위치들(120~122) 및 세 개의 싱크 스위치들(130~132)이 도시된다. 가능한 하나의 구성을 나타내는 네트워크(100)의 실시예와 함께, 단일 스위치로부터 3 개 이상의 스위치들까지 어떠한 수의 스위치들도 층들 내에 포함될 수 있다. 각각의 층은 어떤 가능한 조합 내의 다른 층들과 상이한 수의 스위치들을 포함할 수 있다. 스위치들의 이러한 모든 구성들은 몬 발명의 범위 내에서 고려되고 포함된다.
비록 소스 스위치들(110~112), 중계 스위치들(120~122) 및 싱크 스위치들(130~132)이 개별적인 디바이스들로 도시되었으나, 어떤 조합 내에서, 소스 스위치들(110~112) 및 중계 스위치들(120~122)의 기능, 소스 스위치들(110~112) 및 싱크 스위치들(130~132)의 기능을 결합하는 다른 디바이스 구성들이 가능하다. 모든 가능한 구성들이 네트워크(100)를 구현하기 위하여 단일 디바이스의 사용을 포함하는 본 발명의 범위 내에 포함된다.
도 2는 소스 스위치(110)의 일 실시예를 도시하는 도면이다. 소스 스위치(110)는 세 개의 입력들(113A, 113B, 113C)을 구비한다. 입력들(113A~113C)은 메모리(140)에 연결될 수 있다. 소스 스위치(110)는 세 개의 출력들(114x, 114y, 114z)을 구비한다. 출력들(114x~114z)은 메모리(140)에 연결될 수 있다. 메모리(140)는 N개의 가상 출력 큐들(141A, 141B, 141C....141N)을 구현하기 위하여 사용될 수 있다. 각각의 가상 출력 큐(141A~141N)는 특정 목적지에 대하여 데이터를 버퍼한다. 가상 출력 큐(141A~141N)로부터 목적지 데이터를 전송하는 것은 데이터를 네트워크(100)의 특정 출력 포트로 라우팅하는 것을 필요로 한다.
비록 설명이 모든 가상 출력 큐들(141A~141N)을 구현하기 위한 단일 메모리(140)의 사용을 나타내고 있으나, 예를 들어, 가상 출력 큐(141A~141N) 각각에 대한 개별적인 메모리와 같은 다른 구현들도 가능하며, 이러한 다른 구현들은 본 발명의 범위 내에 포함된다. 단일 메모리가 넌-블로킹 크로스바 스위치를 구현하기 위하여 사용될 수 있으나, 블로킹 구성들을 포함하는 다른 구성들도 본 발명의 범위 내에서 고려되고 포함된다.
소스 스위치(110)의 실시예가 세 개의 입력들 및 세 개의 출력들을 도시하고 있으나, 어떤 조합 내에서 더 많은 또는 더 적은 입력들 및/또는 더 많은 또는 더 적은 출력들을 포함하는 다른 구성들도 고려된다. 마찬가지로, 예를 들어, 2 개의 입력들 및 5 개의 출력들과 같은 일치되지 않는 입력 및 출력들을 갖는 소스 스위치들 역시 고려된다. 어떠한 조합 내에서의 전술한 각각의 가능성들은 본 발명의 범위 내에서 고려되고 포함된다.
도 3은 싱크 스위치(130)의 일 실시예를 도시하는 도면이다. 싱크 스위치(130)는 세 개의 입력들(133A, 133B, 133C)을 구비한다. 입력들(133A~133C)은 제어 모듈(150)에 연결될 수 있다. 싱크 스위치(130)는 세 개의 출력들(134x, 134y, 134z)을 구비한다. 출력들(134x~134z)은 제어 모듈(150)에 연결될 수 있다. 제어 모듈(150)은 M 개의 스케쥴링 메커니즘(151A, 151B.....151M)을 구현하기 위하여 사용될 수 있다.
바람직하게 각각의 스케쥴링 메커니즘(151A~151M)은 싱크 스위치(130)의 출력들(134x~134z) 중 하나를 제어할 수 있다. 대안적으로, 스케쥴링 메커니즘(151A~151M) 각각은 싱크 스위치(130)의 출력들(134x~134z)의 일부 또는 전부를 제어할 수 있다. 다른 대안에 있어, 복수의 스케쥴링 메커니즘들(151A~151M)이 싱크 스위치(130)의 출력들(134x~134z) 각각에 할당될 수 있다. 소스 스위치 내의 가상 출력 큐들의 수 N은 싱크 스위치 내의 스케쥴링 메커니즘들의 수 M과 동일하거나 또는 동일하지 않을 수 있다. 이러한 각각의 구성들뿐만 아니라 다른 적절한 구성 역시 본 발명의 범위 내에서 고려되고 포함된다.
각각의 스케쥴링 메커니즘(151A~151M)은 하나 이상의 스위치들 내에 포함되는 하나 이상의 가상 출력 큐들로부터 큐 상태 정보를 수신할 수 있다. 가상 출력 큐가 할당되거나 또는 초기화되는 경우, 큐 상태 정보가 전송될 수 있다. 또한, 가상 출력 큐의 상태가 변경된 경우, 큐 상태 정보가 전송될 수 있다. 큐 상태 정보는 예를 들어, 큐가 가득 참(queue full), 큐가 거의 가득 참(queue nearly full), 큐가 중간 점에 있음(queue at midpoint) 등의 상태를 포함할 수 있다. 큐 상태 정보는 전송 속도 상승(speed up transmission), 전송 속도 매우 상승(speed up transmission a lot), 속도 하강(slow down) 등과 같은 명령들을 포함할 수 있다.
스케쥴링 메커니즘들(151A~151M)은 큐 상태 정보에 응답하여 크레딧들을 생성하기 위하여 사용될 수 있다. 크레딧들은 데이터가 네트워크(100)를 통하여 소스 스위치로부터 싱크 스위치로 라우팅되는 것을 허용한다. 할당(allocation)은 링크들을 예약하거나 또는 링크들의 대역폭의 부분을 예약하는 형태로 수행될 수 있다. 전술한 설명은 최소한 큐 상태 정보와 같은 제어 정보를 가상 출력 큐들로부터 스케쥴링 메커니즘들로 전달하는 링크들을 요구한다. 마찬가지로, 크레딧들을 스케쥴링 메커니즘들로부터 가상 출력 큐들로 전달하는 링크들이 존재하여야 한다. 바람직하게 네트워크(100) 내의 데이터 링크들은 데이터 및 제어 정보 모두를 양 방향으로 전달할 수 있다.
비록 설명이 스케쥴링 메커니즘들(151A~151M) 모두를 구현하기 위한 단일 제어 모듈(150)의 사용을 나타내고 있으나, 예를 들어 스케쥴링 메커니즘들(151A~151M) 각각에 대한 개별적인 모듈과 같은 다른 구성들이 가능하며, 이러한 다른 구성들은 본 발명의 범위 내에 포함된다. 단일 제어 모듈(150)은 넌-블로킹 크로스바 스위치 및/또는 싱크 스위치(130)에 대한 출력 큐들을 구현하기 위하여 사용될 수 있다. 블로킹 구성들 및 다른 적절한 구성을 포함하는 이러한 모든 구성들은 몬 발명의 범위 내에서 고려되고 포함된다.
비록 싱크 스위치(130)의 실시예가 세 개의 입력들 및 세 개의 출력들을 나타내고 있으나, 어떠한 조합에 있어서 더 많은 또는 더 적은 입력들 및/또는 더 많은 또는 더 적은 출력들을 포함하는 다른 구성들이 고려된다. 마찬가지로, 예를 들어 2 개의 입력들 및 5 개의 출력들과 같이 일치되지 않는 입력 및 출력들을 구비하는 싱크 스위치들 또한 고려된다. 어떤 조합에 있어서의 각각의 전술한 가능성들이 본 발명의 범위 내에서 고려되고 포함된다.
네트워크(100)는 최소한 부분적으로 할당 대역폭에 기초하여 데이터를 전송한다. 데이터는, 예를 들어 소스 스위치(110)의 입력(113A)과 같은 소스 스위치의 입력에서, 일반적으로 데이터 패킷(또는 데이터 패킷의 부분)으로 표현된다. 데이터 패킷(또는 패킷의 부분)은 목적지 주소를 포함하는 헤더를 구비할 수 있다. 목적지 주소는 예를 들어 네트워크(100)의 출력 포트(11)와 같은 네트워크의 출력 포트에 매핑될 수 있다.
데이터의 전송은 소스 스위치에 의한 헤더의 처리에 의해 개시될 수 있다. 소스 스위치는 바람직하게 특정 출력 포트 전용의 가상 출력 큐(예를 들어, 소스 스위치(110)의 가상 출력 큐(141A))를 할당한다. 데이터 패킷(또는 패킷의 부분)은 그 가상 출력 큐에 저장될 수 있다. 예를 들어 동일한 목적지에 대한 상이한 흐름들 및/또는 동일한 목적지에 대한 상이한 트래픽 클래스들과 같은 동일 목적지를 수반하는 거의 제한 없는 수의 가상 출력 큐들이 존재할 수 있다. 바람직하게, 각각의 가상 출력 큐(또는 적어도 각각의 유니캐스트 가상 출력 큐)가 출력 포트(또는 네트워크(100)의 출력 포트의 서브-포트가 될 수 있는 논리적 출력 포트)와 함께 할당된다. 대안에 있어서, 데이터 패킷(또는 패킷의 부분)은 이전에 할당된 현존하는 큐 내에 저장될 수도 있다.
본 발명의 일부 실시예들에 있어, 패킷(또는 패킷의 부분)이 일단 저장되면, 가상 출력 큐는 큐 상태 정보를 싱크 스위치 내의 스케쥴링 메커니즘(예를 들어, 싱크 스위치(130)의 스케쥴링 메커니즘(151A))으로 전송한다. 큐 상태 정보는 큐의 상태 변화에 기초할 수 있다. 스케쥴링 메커니즘은 대역폭에 대한 적절한 크레딧을 이용해 반응할 것이다. 크레딧들은 싱크 스위치에서의 혼잡 또는 네트워크의 출력 포트에서의 혼잡과 같은 경로 혼잡, 또는 다른 적절한 기준에 기초하여 할당된다. 크레딧들은 바람직하게 목적지로 전송해야할 것을 가지고 있는 모든 소스 스위치들 내의 모든 경합하는 가상 출력 큐들, 즉, 비워져 있지 않거나 또는 오프 상태에 있지 않은 가상 출력 큐들 사이의 계획(scheme)에 따라 할당된다. 스케쥴링은 단순하거나(모든 큐들이 동등하게 공유) 또는 하나 또는 복수의 계층들(터널들, 소비자들, 응용들, 등)을 이용하는 우선권들(엄격한 우선권 및/또는 가중치들)에 기초할 수 있다.
크레딧의 수신에 따라 가상 출력 큐는 데이터 패킷(또는 패킷의 부분)을 중계 스위치 또는 스위치들을 통하여 싱크 스위치로 전송할 수 있다. 가상 출력 큐에 의해 전송되는 데이터의 양은 수신된 크레딧에 의해 제어될 수 있다.
네트워크를 통한 데이터 패킷(또는 패킷의 부분)의 전송은 네트워크 내에서 데이터 흐름들을 라우팅하도록 구성되는 스위치들을 요구한다. 도 4a는 네트워크(400) 내의 몇몇 데이터 흐름들에 대한 예시적인 경로들을 도시한다. 도면은 데이터 흐름들이 동시에 라우팅되는 것을 허용하기 위하여 대역폭 크레딧이 할당되었다고 상정한다. 그러나 라우팅 선택들은 네트워크(400) 내의 병목들 또는 블로킹을 생성할 수 있다. 특히 데이터 흐름들이 동시에 라우팅되는 경우, 단일 링크를 따라 두 개의 흐름들을 라우팅하기 위한 필요조건이 발생할 수 있다. 이러한 충돌은 현존하는 경로들의 일부 또는 전부에 대한 재라우팅(rerouting)을 필요로 할 수 있다.
라우팅에 대한 설명을 간략화하기 위하여, 네트워크를 통한 데이터 흐름(또는 간단히 흐름)은 일련의 조각들(segments)에 의해 지정되며(즉, 흐름(450)은 조각들(450A~450D)의 모음이다), 도 4a에서 일련의 조각들로서 도시된다. 각각의 조각은 그 흐름으로부터 데이터의 이동을 허용하기 위하여 반드시 라우팅되어야 한다.
도 4a는 흐름들의 특정 시퀀스가 라우팅된 후 어떻게 블로킹이 발생하는지를 도시한다. 도 4a는 정적 라우팅의 많은 형태들을 일반적으로 대표하는 정적 라우팅의 하나의 형태를 설명하고 있음을 주목하여야 한다. 도 4a에 도시된 정적 라우팅은 소스 포트에 따라 목적지 포트 또는 소스 포트 및 목적지 포트의 조합을 선택한다. 패킷 및/또는 패킷의 부분을 네트워크의 특정 출력 포트로 향하게 하지 않고 싱크(530)를 목표로서 사용하는 것 또한 가능하다. 따라서, 중계 스위치(520)는 특정 포트들(11, 12, 또는 13)을 인식할 수 있으나, 필수적인 것은 아니다. 오히려, 싱크 스위치에 도달하는 방법을 인식함으로써 충분하다. 일단 흐름이 싱크 스위치에 도착하면, 싱크 스위치는 싱크 스위치의 특정 출력 포트를 선택하기 위하여 특정 출력 정보를 사용할 수 있다. 이러한 방법은 바람직하게 네트워크 내의 다른 디바이스들의 라우팅 테이블 내의 정보의 양 감소시킨다.
먼저, 흐름(450)은 입력 포트(1)를 출력 포트(11)에 연결시킬 수 있다. 흐름(450)은 조각들(450A, 450B, 450C)로 구성된다. 조각(450A)은 링크(1, 414A)를 따라 소스 스위치(410)로 라우팅될 수 있다. 데이터는 소스 스위치(410) 내의 가상 출력 큐에 버퍼될 수 있다. 조각(450B)은 링크(414x,423A)를 통해 중계 스위치(420)로 라우팅될 수 있다. 조각(450C)은 링크(424x, 433A)를 통해 싱크 스위치(430)로 라우팅될 수 있다. 마지막으로, 조각(450D)은 링크(434x, 11)를 통해 네트워크(400)의 출력 포트(11)로 라우팅될 수 있다.
다음으로, 흐름(453)이 입력 포트(9)를 출력 포트(19)에 연결하기 위하여 부가될 수 있다. 흐름(453)은 조각들(453A~453D)로 구성된다. 조각(453A)은 링크(9, 417c)를 따라 소스 스위치(412)로 라우팅될 수 있다. 데이터는 소스 스위치(412) 내의 가상 출력 큐에 버퍼될 수 있다. 조각(453B)은 링크(418z, 427C)를 통해 중계 스위치(422)로 라우팅될 수 있다. 조각(453C)은 링크(428z, 437C)를 통해 싱크 스위치(432)로 라우팅될 수 있다. 마지막으로, 조각(453D)은 링크(438z, 19)를 통해 네트워크(400)의 출력 포트(19)로 라우팅될 수 있다.
다음으로, 흐름(452)이 입력 포트(8)를 출력 포트(12)에 연결하기 위하여 부가될 수 있다. 흐름(452)은 조각들(452A~452D)로 구성된다. 조각(452A)은 링크(8, 417B)를 따라 소스 스위치(412)로 라우팅될 수 있다. 데이터는 소스 스위치(412) 내의 가상 출력 큐에 버퍼될 수 있다. 조각(452B)은 링크(418y, 425C)를 통해 중계 스위치(421)로 라우팅될 수 있다. 조각(452C)은 링크(426x, 433B)를 통해 싱크 스위치(430)로 라우팅될 수 있다. 마지막으로, 조각(452D)은 링크(434y, 12)를 통해 네트워크(400)의 출력 포트(12)로 라우팅될 수 있다.
마지막으로, 흐름(451)이 입력 포트(7)를 출력 포트(13)에 연결하기 위하여 부가될 수 있다. 그러나, 흐름(451)은 단지 조각들(451A, 451B)로만 구성된다. 조각(451A)은 링크(7, 417A)를 따라 소스 스위치(412)로 라우팅될 수 있다. 데이터는 소스 스위치(412) 내의 가상 출력 큐에 버퍼될 수 있다. 조각(452B)은 링크(418x, 423C)를 통해 중계 스위치(420)로 라우팅될 수 있다. 그러나, 흐름(451)에 대한 요청된 목적지가 네트워크(400)의 출력 포트(13)이므로, 더 이상 라우팅될 수 있는 조각이 없다. 이러한 경로는 흐름(450)에 의해 이미 점유된 링크(424x, 433A)의 사용을 요구한다. 흐름(451)의 라우팅을 허용하기 위하여 블록되지 않은 흐름들의 일부에 대한 재라우팅이 요구된다.
도 4b는 서로 간의 블로킹 없이 총 네 개의 흐름들(450~453)이 그 목적지들에 도달하도록 허용하는 네트워크(400)에 대한 대안적인 라우팅 방식을 도시한다. 흐름(451)을 네트워크(400)의 출력(13)으로 라우팅하기 위하여 단지 흐름(453)의 경로만이 변경되었음을 주목하여야 한다. 도 4a에 도시된 바와 같이, 흐름(450)은 링크들((1, 413A), (414x~423A), (424x, 433A) 및(434x, 11))을 통해 입력(1) 및 출력(10) 사이에서 여전히 라우팅된 상태이다. 유사하게, 흐름(452)은 링크들((8, 417B), (418y, 425C), (426x, 433B) 및(434y, 12))을 따라 여전히 라우팅된 상태이다.
그러나, 도 4b에서 흐름(453)은 도 4a에서와 다르게 라우팅된다. 조각(453)은 링크(9, 417C)를 따라 소스 스위치(412)로 라우팅된다. 전술한 바와 같이, 데이터는 소스 스위치(412) 내의 가상 출력 큐에 버퍼될 수 있다. 조각(453B)은 링크(418x, 423C)를 통해 중계 스위치(420)로 라우팅된다. 조각(453C)은 링크(424z, 437A)를 통해 싱크 스위치(432)로 라우팅된다. 마지막으로, 조각(453D)은 링크(438z, 19)를 통해 네트워크(400)의 출력 포트(19)로 라우팅된다.
흐름(453)에 대한 경로 변화는 흐름(451)이 네트워크(400)의 출력(13)에 대한 방해받지 않는 경로를 갖도록 한다. 흐름(451)은 조각들(451A~451D)로 구성된다. 조각(451A)은 링크(7, 417A)를 따라 소스 스위치(412)로 라우팅된다. 데이터는 소스 스위치(412) 내의 가상 출력 큐에 버퍼될 수 있다. 조각(451B)은 링크(418z, 427C)를 통해 중계 스위치(422)로 라우팅된다. 조각(451C)은 링크(428x, 433C)를 통해 싱크 스위치(430)로 라우팅된다. 마지막으로, 조각(451D)은 요청된 바와 같이 링크(434z, 12)를 통해 네트워크(400)의 출력 포트(13)로 라우팅된다.
도 4a 및 도 4b의 경로들은 일단 설정되면(established) 본질적으로 정적이라는 것을 주목하여야 한다. 비록 재라우팅이 모든 흐름들을 동시에 동작하도록 하더라도, 재라우팅 처리는 복잡하고 전체 네트워크(400)의 협력을 요구할 수 있다. 상황들은 단일의 새로운 흐름을 수용하기 위하여 네트워크(400) 내의 모든 흐름의 모든 경로를 변경하도록 하는 요구를 발생시킬 수 있다. 재라우팅은 현존하는 흐름들 내에서의 중단들을 초래할 수 있으며, 상당한 자원들을 요구할 수도 있다. 협동적인 방식으로 동작하는 경로들의 생성이 요망된다. 이에 더하여, 전체 네트워크(400)에 걸친 결정을 요구하는 대신, 국부적인 근거에 따라 라우팅을 결정하도록 하는 것이 요망된다.
도 4c는 전술한 바와 같은 정적 라우팅 방법을 뛰어넘는 장점들을 가진 동적 라우팅의 일 실시예를 도시한다. 전술한 바와 같이, 흐름(450)은 입력(1) 및 출력(7) 사이에서 라우팅될 것이며, 흐름(451)은 입력(7) 및 출력(13) 사이에서 라우팅될 것이고, 흐름(452)은 입력(8) 및 출력(12) 사이에서 라우팅될 것이며, 흐름(435)은 입력(9) 및 출력(19) 사이에서 라우팅될 것이다.
이전의 도면들 내에서 묘사된 바와 같이, 흐름들(예를 들어, 흐름(450))은 조각들(450A, 450B, 450C, 450D)로 구성될 수 있다. 도 4c는 각각의 조각이 하위-조각들(sub-segments)(예를 들어, 조각(450B)은 하위-조각들(450B1, 450B2, 450B3)로 구성될 수 있음)로 구성될 수 있음을 도시한다. 다른 조각들(예를 들어, 조각(450A))은 하위-조각들로 구성되지 않을 수 있다.
흐름(450)은 입력 포트(1)를 출력 포트(11)에 연결할 수 있다. 흐름(450)은 조각들(450A, 450B, 450C, 450D)로 구성될 수 있다. 조각(450A)은 링크(1, 413A)를 따라 소스 스위치(410)로 라우팅된다. 데이터는 소스 스위치(410) 내의 가상 출력 큐에 버퍼될 수 있다. 조각(450B)은 하위-조각들(450B1, 450B2, 450B3)로 구성될 수 있다. 각각의 하위-조각은 흐름(450)에 의해 이동되는 데이터의 부분을 전송하기 위하여 사용될 수 있다.
데이터는 하나 이상의 패킷들(또는 하나 이상의 패킷의 부분들) 내의 하위-조각들 중에서 분산될 수 있다. 단일 패킷은 몇몇의 하위-조각들 중에서 분산될 수 있다. 또한, 이용가능한 하위-조각들의 단 하나의 하위-조각만이 사용되는 것도 역시 가능하다. 조각(450B)의 하위-조각들 상의 데이터 패킷들(또는 패킷의 부분들)의 분산은 소스 스위치(410)에 의해 국부적으로 결정될 수 있다. 분산 결정은 적어도 하나의 분산 알고리즘에 기초할 수 있다. 어떠한 수의 하위-조각들이라도 하나의 조각을 형성하기 위하여 사용될 수 있다.
하위-조각(450B1)은 링크(414x, 423A)를 통해 중계 스위치(420)로 라우팅될 수 있다. 하위-조각(450B2)은 링크(414z, 427A)를 통해 중계 스위치(422)로 라우팅될 수 있다. 결과적으로 분산은 흐름(450)이 네트워크(400) 내의 모든 중계 스위치를 사용할 수 있도록 한다.
조각(450C)은 하위-조각들(450C1, 450C2, 450C3)로 구성될 수 있다. 하위-조각(450C1)은 링크(424x, 433A)를 통해 싱크 스위치(430)로 라우팅될 수 있다. 하위-조각(450C2)은 링크(426x, 433B)를 통해 싱크 스위치(430)로 라우팅될 수 있다. 하위-조각(450C3)은 링크(428x, 433C)를 통해 싱크 스위치(430)로 라우팅될 수 있다. 조각(450D)은 링크(434x, 11)를 통해 네트워크(400)의 출력 포트(11)로 라우팅될 수 있다.
다음으로, 흐름(453)이 입력 포트(9)를 출력 포트(19)에 연결하기 위하여 부가될 수 있다. 흐름(453)은 조각들(453A~453D)로 구성될 수 있다. 조각(453A)은 링크(9, 417C)를 따라 소스 스위치(412)로 라우팅된다. 데이터는 소스 스위치(412) 내의 가상 출력 큐에 버퍼될 수 있다. 조각(453B)은 하위-조각들(453B1, 453B2, 453B3)로 구성될 수 있다. 각각의 하위-조각은 흐름(453)에 의해 이동되는 데이터의 부분을 전송하기 위하여 사용될 수 있다. 흐름(450)과 함께 설명한 바와 같이, 데이터는 하나 이상의 패킷들(또는 하나 이상의 패킷의 부분들) 내의 하위-조각들 중에서 분산될 수 있다. 조각(453B)의 하위-조각들 상의 데이터 패킷들의 분산은 소스 스위치(412)에 의해 국부적으로 결정될 수 있다.
하위-조각(453B1)은 링크(418x, 423C)를 통해 중계 스위치(420)로 라우팅될 수 있다. 하위-조각(453B2)은 링크(418y, 425C)를 통해 중계 스위치(421)로 라우팅될 수 있다. 하위-조각(453B3)은 링크(418z, 427C)를 통해 중계 스위치(422)로 라우팅될 수 있다.
조각(453C)은 하위-조각들(453C1, 453C2, 453C3)로 구성될 수 있다. 하위-조각(453C1)은 링크(424z, 437A)를 통해 싱크 스위치(432)로 라우팅될 수 있다. 하위-조각(453C2)은 링크(426Z, 437B)를 통해 싱크 스위치(432)로 라우팅될 수 있다. 하위-조각(453C3)은 링크(428z, 437C)를 통해 싱크 스위치(432)로 라우팅될 수 있다. 조각(453D)은 링크(438z, 19)를 통해 네트워크(400)의 출력 포트(19)로 라우팅될 수 있다.
다음으로, 흐름(452)이 입력 포트(8)를 출력 포트(12)에 연결하기 위하여 부가될 수 있다. 흐름(452)은 조각들(452A~452D)로 구성될 수 있다. 조각(452A)은 링크(8, 417B)를 따라 소스 스위치(412)로 라우팅된다. 조각(452B)은 하위-조각들(452B1, 452B2, 452B3)로 구성될 수 있다. 조각(452B)의 하위-조각들 상의 데이터 패킷들의 분산은 소스 스위치(412)에 의해 국부적으로 결정될 수 있다.
하위-조각(452B1)은 링크(418x, 423C)를 통해 중계 스위치(420)로 라우팅될 수 있다. 하위-조각(452B2)은 링크(418y, 425C)를 통해 중계 스위치(421)로 라우팅될 수 있다. 하위-조각(452B3)은 링크(418z, 427C)를 통해 중계 스위치(422)로 라우팅될 수 있다. 조각(452B)의 하위-조각들 각각은 조각(453B)의 하위-조각들과 함께 링크들을 공유할 수 있다, 즉, 하위-조각(453B3) 및 하위-조각(452B3) 둘 다 링크(418z, 427C)를 사용한다. 따라서, 네트워크(400) 내의 링크들은 동시에 하나 이상의 흐름을 라우팅할 수 있다. 복수의 흐름들을 지원하는 것은 각 흐름의 데이터 패킷들(또는 데이터 패킷들의 부분들)의 시간 다중화(time multiplexing)를 통해 또는 어떤 적절한 방법에 의해 달성될 수 있다. 흐름들의 하나 이상의 하위-조각들에 의한 링크의 사용은 소스 스위치(412)에 의해 구현된 분산 알고리즘에 의해 제어될 수 있다.
조각(452C)은 하위-조각들(452C1, 452C2, 452C3)로 구성될 수 있다. 하위-조각(452C1)은 링크(424x, 433A)를 통해 싱크 스위치(430)로 라우팅될 수 있다. 하위-조각(452C2)은 링크(426x, 433B)를 통해 싱크 스위치(430)로 라우팅될 수 있다. 하위-조각(452C3)은 링크(428x, 433C)를 통해 싱크 스위치(430)로 라우팅될 수 있다. 조각(452D)은 링크(434y, 13)를 통해 네트워크(400)의 출력 포트(12)로 라우팅될 수 있다. 조각(452C)의 하위-조각들이 조각(450C)의 하위-조각들과 함께 링크들을 공유한다는 것을 주목하여야 한다. 전술한 바와 같이, 링크의 공유는 중계 스위치들(420, 421, 422)의 분산 알고리즘에 의해 제어될 수 있다.
마지막으로, 흐름(451)이 입력 포트(7)를 출력 포트(13)에 연결하기 위하여 부가될 수 있다. 흐름(451)은 조각들(451A~451D)로 구성될 수 있다. 조각(451A)은 링크(7, 417A)를 따라 소스 스위치(412)로 라우팅된다. 조각(451B)은 하위-조각들(451B1, 451B2, 451B3)로 구성될 수 있다. 하위-조각(451B1)은 링크(418x, 423C)를 통해 중계 스위치(420)로 라우팅될 수 있다. 하위-조각(451B2)은 링크(418y. 425C)를 통해 중계 스위치(421)로 라우팅될 수 있다. 하위-조각(451B3)은 링크(418z, 427C)를 통해 중계 스위치(422)로 라우팅될 수 있다. 조각(451C)은 하위-조각들(451C1, 451C2, 451C3)로 구성될 수 있다. 하위-조각(451C1)은 링크(424x, 433A)를 통해 싱크 스위치(430)로 라우팅될 수 있다. 하위-조각(451C2)은 링크(426x, 433B)를 통해 싱크 스위치(430)로 라우팅될 수 있다. 하위-조각(451C3)은 링크(428x, 433C)를 통해 싱크 스위치(430)로 라우팅될 수 있다. 조각(451D)은 링크(434z, 13)를 통해 네트워크(400)의 출력 포트(13)로 라우팅될 수 있다.
데이터를 다수의 링크들 상에서 분산하고 이러한 링크들 상의 데이터를 다중화하기 위한 분산 알고리즘의 사용은 몇가지 장점들을 갖는다. 첫째, 라우팅이 블로킹되지 않는다. 가능한 모든 경로가 현존하는 경로들의 재라우팅을 요구하지 않고 부가될 수 있다. 둘째, 라우팅이 국부적 결정이 되며, 네트워크(400)의 제어가 크게 단순화된다. 마지막으로, 혼잡한 또는 손상된 작동하지 않는 링크들을 우회하여 라우팅하는 것이 보다 용이하게 된다.
비록 도 4c는 각각의 조각이 각 스위치의 가능한 모든 출력 상에 분배된 하위-조각들로 구성되는 것으로 도시하고 있으나, 다른 구성들이 가능하며, 본 발명의 범위 내에 포함된다. 예를 들어, 일부 스위치들은 조각에 의해 사용될 수 있는 출력들의 최대 수보다 작은 수를 허용한다. 일부 흐름들은 다른 흐름들에 비하여 높은 우선권을 가질 수 있으며, 다른 흐름들 보다 더 큰 스위치 출력들을 할당을 가질 수 있다.
마찬가지로 일부 조각들(예를 들어, 흐름(450)의 조각(450A))은 분산되지 않지만, 분산될 수도 있다. 예시적인 조각(450A)의 분산은 조각을 하위-조각(450A1) 및 하위-조각(450A2)으로 분할할 것이다. 하위-조각(450A1)은 소스 스위치(410)에 도달하기 위하여 링크(1, 413A)를 사용할 것이다. 하위-조각(450A2)은 소스 스위치(412)에 도달하기 위하여 링크(8, 417B)를 사용할 것이다. 이러한 분산은 네트워크(400)에 대한 외부의 부가적인 메커니즘들을 상정한다.
도 4c에 도시된 바와 같은 동적 라우팅은 도 4c의 정적 라우팅에 비하여 단점을 갖는다. 정적 라우팅은 모든 패킷들에 대하여 단일 경로만을 제공한다. 따라서, 출력 포트에 도착한 패킷의 순서가 보장된다. 패킷들이 복수의 하위-조각 상에 분산되는 경우, 일부 링크들이 다른 링크들보다 빠를 수 있으므로, 패킷들이 특정 순서로 도착한 것을 보장할 수 있는 방법이 없다. 따라서 동적 라우팅은 패킷들(또는 패킷들의 부분들)의 넘버링(numbering) 또는 정렬(ordering) 및 싱크 스위치에 의한 패킷들(또는 패킷들의 부분들)에 대한 재정렬(reordering)을 필요로 한다.
도 5a는 목적지 라우팅 데이터들(이하, 테이블들)의 분산을 포함하는 네트워크(500)의 다른 실시예를 도시한다. 네트워크(500)는 토폴로지적으로 도 1에 도시된 네트워크(100)와 동일하다. 이러한 실시예는 시스템 내의 스위치들에 라우팅 테이블들을 분산함으로써 라우팅 효율성을 향상시킨다. 라우팅 테이블들의 일 실시예는 네트워크(500)의 접근가능한 싱크 디바이스들(싱크 디바이스 식별부호에 의해 식별되는 바와 같은)에 대한 스위치들의 출력들의 매핑을 포함한다.
바람직하게 매핑들은 완전하다, 즉, 각 테이블은 모든 접근가능한 싱크 디바이스들을 매핑한다. 그러나, 접근가능한 싱크 디바이스들의 일부만을 포함하는 작은 테이블들도 본 발명의 범위 내에서 고려되고 포함된다.
중계 스위치(520)는 중계 테이블(520A)(이하, 테이블(520A))을 생성한다. 테이블(520A)은 출력(524x)을 싱크 스위치(530)에 매핑한다. 출력(524y)은 싱크 스위치(531)에 매핑되며, 출력(524z)은 싱크 스위치(532)에 매핑된다. 중계 스위치들(521, 522)은 유사한 방식으로 테이블들(521A, 522A)을 생성한다. 테이블들(520A, 521A, 522A)은 소스 스위치들(510, 511, 512)과 공유된다.
소스 스위치(510)는 소스 테이블(510A)(이하, 테이블(510A))을 생성한다. 테이블(510A)은 출력(514x)을 싱크 스위치들(530, 531, 532)(즉, 네트워크의 모든 싱크 스위치)에 매핑한다. 출력(514y)은 싱크 스위치들(530, 531, 532)에 매핑되며, 출력(514z)은 또한 싱크 스위치들(530, 531, 532)에 매핑된다. 소스 스위치들(511, 512)은 유사한 방식으로 테이블들(511A, 512A)을 생성한다.
일단 테이블들이 스위치들 내에 저장되면, 다양한 흐름들 내의 패킷들(또는 패킷들의 부분들)의 라우팅이 보다 용이하게 일어날 수 있다. 만일 하나의 테이블이 도 4b에 도시된 정적 흐름들을 네트워크(500)에 매핑하는 경우, 흐름들(450, 452)의 라우팅은 간단하다. 흐름(450)과 충돌할 수 있는 흐름(451)의 라우팅은 블로킹을 방지하기 위하여 흐름들(453, 452)의 라우팅과 함께 용이하게 재라우팅될 수 있다. 정적 라우팅 문제를 해결하기 위한 종합적인 해결책은 네트워크(400) 내의 모든 테이블에 대한 지식을 필요로 할 수 있다는 것이 주목되어야 한다. 더 나아가, 도 4c에 도시된 동적 라우팅이 테이블들(510A~512A, 520A~522A)을 보다 효율적으로 사용할 수도 있다는 것이 주목되어야 한다.
비록 테이블들을 스위치들 내에 단 한 번만 저장할 수 있다 하더라도, 테이블들을 연속적으로 또는 주기적으로(바람직하게는 미리 설정된 간격으로) 갱신하는 것이 바람직하다. 이러한 갱신 빈도(update rate)는 1000분의 1초당 1회일 수 있으나, 다른 빈도들도 본 발명의 범위 내에서 고려되며, 본 발명의 범위 내에 있다. 목적지에 도달할 수 없는 경로들을 배제하기 위하여, 즉, 특정 링크가 작동불능이 된 경우, 요청된 목적지에 도달할 수 있는 경로들만을 사용하기 위하여, 갱신들이 자주 일어날 수 있다. 본 발명에 따른 이러한 시스템 및 방법들에 의해 또한 처리될 수 있는 다른 고장들(failures)은 복수 링크 고장들, 디바이스 고장들, 복수 디바이스 고장들, 모듈 고장들, 새시(chassis) 고장들, 스위치 고장들 등을 포함할 수 있다.
본 발명의 다른 실시예에 있어, 패킷 처리가 보다 효율적으로 수행될 수 있으며, 패킷 처리는 테이블들(510A~512A, 520A~522A)을 사용할 수 있다. 도 6a는 데이터 섹션(601) 및 헤더(602)를 갖는 데이터 패킷(600)의 공통 구조를 도시한다. 헤더는 일반적으로 패킷(또는 패킷의 부분)의 목적지 주소를 포함한다. 패킷(600)(또는 패킷의 부분)의 라우팅을 가능하게 하기 위한 목적지 주소를 획득하기 위하여 헤더의 설계(layout)에 따라 각 유형의 패킷(예를 들어, TCP/IP 패킷)이 처리된다. 패킷들의 라우팅은 미리 계획된 정적 경로에 따라 또는 동적 라우팅을 통하여 일어날 수 있으며, 양쪽의 경우 있어서 목적지가 인지되어야만 한다. 전형적으로 헤더는 경로의 각 단계에서 처리된다. 예를 들어, 도 4a에 있어, 흐름(450)을 통해 라우팅된 패킷은 소스 스위치(410), 중계 스위치(420) 및 싱크 스위치(430)를 통해 이동한다. 각각의 스위치에서, 헤더는 목적지 주소를 추출하기 위하여 처리될 것이다. 스위치에 의해 목적지 주소가 획득된 후에, 경로의 다음 단계가 뒤따를 수 있다. 헤더의 처리는 스위치 내의 처리 전력 및 메모리를 요구할 수 있다. 본 발명의 이러한 실시예에 있어, 패킷 헤더는 네트워크(400)에 진입하기 전에 또는 패킷(600)에 의해 통과되는 첫 번째 스위치(예를 들어, 소스 스위치(410)) 내에서 번역 모듈에 의해 처리된다. 초기의 헤더 처리 후에, 바람직하게는 헤더는 다시 처리되지 않으며, 따라서 단일 계층(tier) 네트워크(즉, 처리 네트워크가 헤더를 한 번만 처리하며, 따라서, 처리 네트워크는 추가적인 처리에 독립적이다)가 생성된다. 헤더의 처리는 헤더(602)로부터 목적지 주소를 획득한다. 다음으로, 목적지 주소는 네트워크(400)에 대하여 목적지에 매핑된다. 흐름(450)과 같은 예시적인 경로는 네트워크(400)의 출력 포트(11)를 목적지로 가질 것이다.
최종 목적지는 도 6b에 도시된 최종 목적지(630)와 같이 헤더(601)에 첨부될 수 있다. 수정된 패킷(610)(또는 패킷들의 부분들)은 각 스위치에 저장된 그 다음의 라우팅 테이블들에 의한 헤더의 처리 없이 라우팅될 수 있다. 본 발명의 특정 실시예에 있어, 출력에 관한 결정이 싱크 디바이스에서 국부적으로 수행될 수 있다. 도 5a에 도시된 바와 같은 라우팅 테이블들이 싱크 스위치로 라우팅한다.
예시적으로, 도 4b는 그들의 패킷들(또는 패킷들의 부분들)을 아래와 같이 라우팅할 수 있는 흐름(450)을 도시한다. 먼저 데이터 패킷(600)(또는 데이터 패킷의 부분들)은 조각(450A)을 통하여 헤더(602)가 처리되고 패킷(610)(패킷의 부분들 각각)으로 변화되는 소스 스위치(410)로 전송될 수 있다. 흐름(450)의 최종 목적지(603)은 네트워크(400)의 출력 포트(11)이다. 다음으로, 패킷(610)(또는 패킷의 부분들)은 조각(450B)를 통해 중계 스위치(420)로 전송될 수 있다. 중계 스위치(420)는 싱크 스위치(430)로 패킷(610)을 라우팅하기 위한 최종 목적지(603)를 사용할 수 있다.
마지막으로, 싱크 스위치(430)는 패킷(610)을 패킷(600)으로 변환하고, 패킷(600)(또는 패킷의 부분들)을 네트워크(400)의 최종 목적지(11)로 라우팅한다. 따라서, 헤더는 네트워크(400)를 통과하는 전체 경로에 대하여 단 한 번만 처리된다. 내부적인 라우팅 결정은 오로지 최종 목적지(603)에만 의존한다. 저장된 라우팅 테이블들(예를 들어, 도 5a의 테이블(520A))는 헤더의 추가적인 처리 없이 고속 라우팅을 가능하게 함으로써 헤더를 한 번만 처리하는 것의 장점들을 향상시킨다. 테이블들은 각각의 스위치에서 최종 목적지에 도달할 수 있는 출력들의 리스트를 제공함으로써 라우팅을 돕는다.
대안적인 실시예는 네트워크(500)에 오버레이된 도 4c에서 도시된 동적 라우팅을 구현할 수 있다. 예를 들어 흐름(450)을 사용하여, 네트워크(400)의 출력 포트(11)로의 흐름이 설정될 수 있다. 먼저, 데이터 패킷(600)(또는 데이터 패킷의 부분들)은 조각(450A)을 통하여 헤더(602)가 처리될 수 있고 패킷(610)(패킷의 부분들 각각)으로 변화될 수 있는 소스 스위치(410)로 전송될 수 있다.
다음으로, 소스 스위치(410)는 전송에 사용되어야 하는 하부-조작을 선택하기 위하여 분산 알고리즘을 이용할 수 있다. 이러한 경우에 있어, 라우팅 테이블은 불필요할 수 있으며, 나아가 소스 스위치(410)를 단순화한다. 이러한 네트워크(400)의 구성에 있어 모든 중계 스위치는 네트워크의 모든 출력 포트에 대한 접근 권한을 가질 수 있으므로, 이러한 예에 있어 테이블은 필요하지 않다.
하나의 하위-조각이 선택된 이후, 패킷(610)(또는 패킷들의 부분들)은 중계 스위치로 라우팅될 수 있다. 이러한 예에 있어, 하위-조각(450B1)이 선택되고 패킷(610)은 중계 스위치(420)로 라우팅된다. 다음으로, 최종 목적지(630)은 패킷(610)을 하위-조각(450C1)을 통해 싱크 스위치(430)로 라우팅하기 위하여 중계 스위치(420)에 의해 사용될 수 있다. 마지막으로, 싱크 스위치(430)는 패킷(610)을 패킷(600)으로 변환하고, 패킷(600)을 네트워크(400)의 최종 목적지(11)로 라우팅한다.
도 6c는 패킷 헤더 처리를 최적화하기 위하여 사용될 수 있는 다른 실시예를 도시한다. 패킷(620)(또는 패킷들의 부분들)은 데이터 섹션(601), 헤더(602) 및 세 개의 라우팅 섹션들(604a, 604b, 604c)을 갖는다. 라우팅 섹션들은 패킷(620)(또는 패킷들의 부분들)에 대한 명백한 라우팅 명령들을 포함한다. 네트워크(500)의 실시예는 라우팅 섹션들의 수를 제한하는 3 개의 스위치 층들을 포함한다. 어떤 개수의 층들을 포함하는 네트워크(500)의 다른 구성이 고려된다. 이러한 이유로, 어떠한 개수의 라우팅 섹션들도 본 발명의 범위 내에서 고려되고 포함된다.
예시로서, 패킷(600)(또는 패킷의 부분들)은 다음과 같이 도 4b에 도시된 흐름(450)을 따라 전송될 수 있다. 패킷(600)은 패킷(620)을 생성하기 위하여 조각(450A)을 통해 헤더(602)가 처리되는 소스 스위치(410)로 전송된다. 그 다음, 소스 스위치(410)는 도 6d에 도시된 바와 같은 패킷(630)을 생성하기 위하여 패킷(620)으로부터 라우팅 섹션(604c)의 값을 검색하고 제거한다. 그 다음, 소스 스위치(410)는 패킷(630)을 조각(450B)을 통해 중계 스위치(420)로 전송하기 위하여, 라우팅 섹션(604c)으로부터 검색된 값인 출력(414x)을 사용한다. 그 다음, 중계 스위치(420)는 도 6e에 도시된 바와 같은 패킷(640)을 생성하기 위하여 패킷(630)으로부터 라우팅 섹션(604b)의 값을 검색하고 제거한다. 그 다음, 중계 스위치(420)는 패킷(640)을 조각(450C)을 통해 싱크 스위치(430)로 전송하기 위하여 출력(424x)을 사용한다. 그 다음, 싱크 스위치(430)는 패킷(600)을 생성하기 위하여 패킷(640)으로부터 라우팅 섹션(604a)의 값을 검색하고 제거한다. 그 다음, 싱크 스위치(430)는 패킷(600)을 조각(450D)을 통해 네트워크(400)의 출력 포트(11)로 전송한다.
처리된 패킷(620)(또는 패킷의 부분들)의 대안적인 이용은 네트워크(500)에 오버레이된 도 4c와 같은 동적 라우팅을 사용한다. 동적 라우팅 방법 내에서의 패킷(620)(또는 패킷의 부분들)의 이용에 대한 일례는 다음과 같이 진행된다. 전술한 바와 같이, 흐름(450)의 패킷(600)(또는 패킷들의 부분들)은 싱크 스위치(410)로 전송된다. 싱크 스위치(410)는 도 6f에 도시된 바와 같은 패킷(620A)을 생성하기 위하여 헤더(602)를 처리한다. 모든 동적 라우팅 결정들은 소스 스위치(410)에 의해 그 위치(즉, 소스 스위치)에서 수행될 수 있다.
그 다음, 소스 스위치(410)는 도 6g에 도시된 바와 같은 패킷(630A)을 생성하기 위하여 패킷(620A)으로부터 라우팅 섹션(604e)의 값을 검색하고 제거한다. 그 다음, 소스 스위치(410)는 패킷(630A)을 조각(450B2)을 통해 중계 스위치(421)로 전송하기 위하여, 출력(414y)을 사용한다. 그 다음, 중계 스위치(420)는 도 6e에 도시된 바와 같은 패킷(640)을 생성하기 위하여 패킷(630A)으로부터 라우팅 섹션(604d)의 값을 검색하고 제거한다. 그 다음, 중계 스위치(421)는 패킷(640)을 조각(450C1)을 통해 싱크 스위치(430)로 전송하기 위하여 출력(414x)을 사용한다. 그 다음, 싱크 스위치(430)는 패킷(600)을 생성하기 위하여 패킷(640)으로부터 라우팅 섹션(604a)의 값을 검색하고 제거한다. 그 다음, 싱크 스위치(430)는 패킷(600)을 조각(450D)을 통해 네트워크(400)의 출력 포트(11)로 전송한다. 이러한 경로가 생성되기 위하여 바람직하게 단지 소스 스위치(410)에서만 동적 라우팅 결정이 수행될 수 있다는 것을 주목해야 한다. 중계 스위치(421)는 동적 라우팅 옵션을 가지고 있지 않지만, 몇몇 흐름들 사이에서 링크(426x, 433B)의 공유를 조정하기 위하여 부하 분산 알고리즘을 사용할 수 있다. 도 4c 내에서 도시된 네트워크(400)의 동적 라우팅 구성은 소스 스위치에서 모든 동적 라우팅 결정을 수행하도록 하지만, 다른 구성도 본 발명의 범위 내에서 고려되고 포함된다. 일례로서, 중계 스위치들의 두 개의 층들은 동적 라우팅 결정들이 중계 스위치들의 첫 번째 층에서 수행되는 것을 허용할 수 있다. 하나의 대안은 전술한 바와 같은 단순화되 예를 통해 보여진 바와 같이, 전체 네트워크에 대하여 소스 스위치가 모든 동적 할당을 수행하도록 허용하는 것이다. 대안적인 실시예는 국부적인 라우팅 요구들을 조정하기 위하여, 패킷이 각각의 스위치에 의해 재처리되는 것을 허용할 수 있다.
라우팅 테이블들에 기초한 목적지가 단일 헤더 처리와 함께 사용되었지만, 각각의 기술이 그 권리 내에서 유용하며, 본 발명의 범위 내에서 고려된다. 중계 스위치들 및 싱크 스위치들이 결코 헤더를 처리하지 않기 때문에, 단 한 번의 헤더 처리 및 라우팅의 다른 방법들은 유용하다. 마찬가지로, 각 스위치 내의 테이블들의 생성은, 패킷들의 헤더들이 네트워크 내의 각 스위치에서 처리된다 하더라도, 작동하지 않는 링크들을 우회하는 재라우팅을 허용한다. 도 5b는 도 5a에 도시된 동일한 네트워크(500)의 다른 예를 도시한다. 그러나, 이러한 예에 있어, 링크(524x, 533A)는 고장난 상태이다. 도 5b에 도시된 테이블들은 갱신될 수 있으며, 그 결과 라우팅이 다음과 같이 설정된다. 먼저, 각각의 싱크 스위치는 싱스 스위치들에 대한 스위치 출력들의 매핑을 획득한다.
중계 스위치(520)는 테이블(520B)을 생성한다. 테이블(520B)은 출력(524x)을 어느 곳에도 매핑하지 않는다. 출력(524y)은 싱크 스위치(531)에 매핑되며, 출력(524z)은 싱크 스위치(532)에 매핑된다. 도 5a에 도시된 실시예에 관하여 전술한 바와 같이, 중계 스위치들(521, 522)은 테이블들(521A, 522A)을 생성한다.
테이블들(520B, 521A, 522A)은 소스 스위치들(510, 511, 512)과 함께 공유된다. 소스 스위치(510)는 테이블(510B)을 생성한다. 테이블(510B)은 출력(514x)을 싱크 스위치들(531, 532)에 매핑한다. 출력(514y)은 싱크 스위치들(530, 531, 532)에 매핑되며, 출력(514z)은 싱크 스위치들(530, 531, 532)에 매핑된다. 도 5a에 도시된 실시예에 관하여 전술한 바와 같이, 소스 스위치들(511, 512)은 테이블들(511A, 512A)을 생성한다.
일단 테이블들이 스위치들 내에 저장되면, 다양한 흐름들 내의 패킷들의 라우팅은 고장난 링크를 고려할 수 있다. 도 4b와 관련되어 설명된 정적 라우팅 시나리오 실시예에 있어, 흐름(450)의 라우팅은 블록된다. 입력들(433B, 433C)이 흐름들(452, 451) 각각에 의해 점유되어 있으므로, 이는 절대적인 장애이다. 프로토콜 내의 더 높은 네트워킹 층들에 의해 해결되어야 하는 문제를 남기고, 갱신된 테이블들은 네트워크(500)의 고장을 드러낸다.
도 4b와 관련되어 설명된 동적 라우팅 실시예는 아래와 같이 고장난 링크를 우회하여 라우팅하기 위해 갱신된 라우팅 테이블들을 사용할 수 있다. 예시적으로 흐름(450)을 사용하여, 네트워크(400)의 출력 포트(11)로의 경로가 설정될 수 있다. 먼저, 데이터 패킷(600)(또는 데이터 패킷의 부분들)이 조각(450A)을 통하여 헤더(602)가 처리되고 패킷(610)으로 변환되는 소스 스위치(410)로 전송된다.
다음으로, 소스 스위치(410)는 전송에 사용되어야 하는 하위-조각을 선택하기 위하여 분산 알고리즘을 사용한다. 링크(524x, 533A)가 고장난 이러한 예에 있어, 단지 두 개의 하위-조각들만이 선택될 수 있다. 이러한 예에 있어, 하위-조각(450B3)이 선택되고, 패킷(610)은 중계 스위치(422)로 라우팅된다. 다음으로, 패킷(610)(또는 데이터 패킷의 부분들)을 하위-조각(450C3)을 통하여 싱크 스위치(430)로 라우팅하기 위하여, 최종 목적지(603)가 중계 스위치(422)에 의해 사용된다. 마지막으로, 싱크 스위치(430)는 패킷(610)(또는 패킷의 부분들)을 네트워크(400)의 출력 포트(11)로 라우팅한다. 이러한 경로는 고장난 링크(524x, 533A)를 회피한다.
앞서 언급된 실시예가 단일 헤더 처리, 최종 목적지 패킷(또는 패킷들의 부분들) 및 테이블들과 함께 동적 라우팅을 사용하더라도, 다른 모든 가능한 조합들인 본 발명의 범위 내에서 고려되고 포함된다.
전술한 설명은 서버/네트워크 조합에 대한 가능한 몇몇의 구성들을 제안한다. 도 7은 연결들(connections)의 그룹(710)을 통해 네트워크(702)의 포트들(1~9)에 연결된 소스 서버(701)를 포함하는 서버/네트워크 구조를 도시한다. 싱크 서버(703)는 연결들의 그룹(711)을 통해 네트워크(702)의 포트들(11~19)에 연결된다. 연결들(710, 711)은 단방향성 또는 양방향성일 수 있다.
비록 포트들(1~9)이 "입력'으로 지정될 수 있으나, 그럼에도 불구하고 신호들(예를 들어, 크레딧들) 및/또는 데이터는 네트워크(702)로부터 소스 서버(701)로 이동할 수 있다. 마찬가지로, 포트들(11~19)이 "출력'으로 지정될 수 있으나, 그럼에도 불구하고 신호들(예를 들어, 큐 상태 정보) 및/또는 데이터는 싱크 서버(703)로부터 네트워크(702)로 이동할 수 있다.
네트워크(702)는 소스 스위치들의 층, 중계 스위치들의 층, 및 싱크 스위치들의 층을 갖는 네트워크(100)와 유사할 수 있다. 그러나, 소스 스위치 기능은 소스 서버에 의해 포함될 수 있다. 마찬가지로, 싱크 스위치 기능은 싱크 서버에 의해 포함될 수 있다. 싱크 스위치 기능 및 소스 스위치 기능 모두가 서버들(701, 703)에 의해 흡수되는 경우, 네트워크(702)는 단지 중계 스위치 기능만을 포함할 수 있다. 중계 스위치 기능 또한 제 3의 "서버"에 포함될 수도 잇다.
도 8은 서버/네트워크 구조(800)의 다른 실시예를 도시한다. 서버 소스/싱크(801)는 네트워크(802)의 소스 및 싱크 둘 다로서 동작한다. 서버 소스/싱크(801)는 연결들의 그룹(810)을 통해 네트워크(802)의 포트들(1~9)에 연결된다. 연결들(810)은 단방향성 또는 양방향성일 수 있다.
네트워크(802)는 소스 스위치들의 층, 중계 스위치들의 층, 및 싱크 스위치들의 층을 갖는 네트워크(100)와 유사할 수 있다. 그러나, 소스 스위치 및/또는 싱크 스위치 기능은 서버 소스/싱크(801)에 의해 포함될 수 있다. 싱크 스위치 기능 및 소스 스위치 기능 모두가 서버 소스/싱크(801)에 의해 흡수되는 경우, 네트워크(802)는 단지 중계 스위치 기능만을 포함할 수 있다. 중계 스위치 기능 또한 제 3의 "서버"에 포함될 수도 잇다. 중계 스위치 "서버들"의 복수의 층들에 관련된 다른 구조들이 적절한 구성 내에서 사용될 수 있다.
따라서, 데이터 전송 네트워크의 효율성을 향상하기 위한 방법들 및 장치들이 제공된다. 추가적으로, 고장 상황 하에서의, 감소된 데이터 손실 및 그에 따른 개선된 전송 효율 또한 제공된다. 당업자라면, 본 발명이 제한적이기보다 예시적인 목적으로 제시된 설명된 실시예들 외에 다른 것들에 의해 실현될 수 있으며, 본 발명은 단지 후술되는 청구항들에 의해서만 제한되는 것임을 이해할 수 있을 것이다.

Claims (15)

  1. 적어도 하나의 입력 포트;
    적어도 하나의 출력 포트;
    적어도 하나의 입력, 적어도 두 개의 출력들 및 적어도 하나의 가상 출력 큐(queue)를 포함하며, 상기 적어도 하나의 가상 출력 큐는 적어도 하나의 싱크와 연관된, 적어도 하나의 소스 스위치;
    적어도 하나의 입력, 적어도 두 개의 출력들 및 적어도 하나의 스케쥴링 메커니즘을 포함하는 적어도 하나의 싱크 스위치; 및
    상기 적어도 하나의 소스 스위치와 적어도 하나의 싱크 스위치를 연결하는 패브릭(fabric)을 포함하되,
    상기 적어도 하나의 가상 출력 큐는 적어도 하나의 스케쥴링 메커니즘 큐 상태 정보를 제공하고, 상기 적어도 하나의 스케쥴링 메커니즘은 상기 큐 상태 정보의 수신에 응답하여 크레딧(credit)을 생성하며, 상기 소스 스위치는 상기 크레딧의 수신에 응답하여 적어도 하나의 부하 분산 알고리즘을 이용하여 복수의 출력들을 통해 단일 데이터 흐름(single data flow)의 패킷들 또는 그 부분들을 전송하고,
    패킷들 또는 패킷들의 부분들은 상기 소스 스위치에 의해 정렬되며, 상기 패킷들 또는 패킷들의 부분들은 상기 싱크 스위치에 의해 재정렬되는, 단일 계층 네트워크.
  2. 청구항 1에 있어서,
    상기 네트워크는 상기 적어도 하나의 싱크 스위치에 연결된 적어도 하나의 중계 스위치를 더 포함하는, 단일 계층 네트워크.
  3. 청구항 1에 있어서,
    상기 네트워크는 상기 적어도 하나의 소스 스위치에 연결된 적어도 하나의 중계 스위치를 더 포함하는, 단일 계층 네트워크.
  4. 청구항 1에 있어서,
    상기 적어도 하나의 소스 스위치는 상기 적어도 하나의 싱크 스위치와 동일한, 단일 계층 네트워크.
  5. 청구항 2에 있어서,
    상기 적어도 하나의 중계 스위치는 적어도 하나의 부하 분산 알고리즘을 이용하여 복수의 출력들을 통해 패킷들 또는 패킷들의 부분들을 전송하는, 단일 계층 네트워크.
  6. 청구항 1에 있어서,
    상기 적어도 하나의 소스 스위치는 적어도 하나의 소스 테이블을 저장하며, 상기 적어도 하나의 소스 테이블을 상기 적어도 하나의 소스 스위치의 적어도 하나의 출력을 상기 적어도 하나의 스위치에 매핑하기 위한 것이고, 및 상기 데이터 이동의 구성물은 상기 소스 테이블을 이용해 상기 소스 스위치의 복수의 출력들을 통해 라우팅되며, 상기 데이터 이동은 복수의 패킷들 또는 패킷들의 부분들로 구성되는, 단일 계층 네트워크.
  7. 청구항 6에 있어서,
    상기 네트워크는 적어도 하나의 중계 스위치를 더 포함하며,
    상기 적어도 하나의 중계 스위치는 상기 적어도 하나의 소스 스위치에 연결되고, 상기 적어도 하나의 중계 스위치는 적어도 하나의 중계 테이블을 저장하는, 단일 계층 네트워크.
  8. 청구항 7에 있어서,
    상기 네트워크는 적어도 하나의 중계 스위치를 더 포함하고,
    상기 중계 스위치는 적어도 두 개의 출력들 및 적어도 하나의 데이터 이동을 포함하며, 상기 데이터 이동은 상기 중계 테이블을 이용하여 상기 중계 스위치의 복수의 출력들을 통해 라우팅되는, 단일 계층 네트워크.
  9. 청구항 1에 있어서,
    상기 적어도 하나의 소스 스위치는 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 생성하기 위하여 적어도 하나의 패킷 헤더를 처리하며, 상기 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분은 상기 적어도 하나의 패킷 헤더의 추가적인처리와 독립되어 상기 싱크 스위치로 라우팅될 수 있는, 단일 계층 네트워크.
  10. 적어도 하나의 입력 포트;
    적어도 하나의 출력 포트;
    적어도 하나의 입력 및 적어도 하나의 출력을 포함하는 적어도 하나의 소스 스위치;
    적어도 하나의 입력 및 적어도 하나의 출력을 포함하는 적어도 하나의 싱크 스위치; 및
    상기 적어도 하나의 소스 스위치와 상기 적어도 하나의 싱크 스위치를 연결하는 패브릭을 포함하되,
    상기 적어도 하나의 소스 스위치는 적어도 하나의 소스 테이블을 저장하며, 상기 적어도 하나의 소스 테이블을 상기 적어도 하나의 소스 스위치의 상기 적어도 하나의 출력을 상기 적어도 하나의 싱크 스위치에 매핑하기 위한 것이며, 상기 소스 테이블은 상기 적어도 하나의 싱크 스위치 또는 적어도 하나의 중계 스위치로부터 갱신된 토폴로지(topology) 정보를 수신하고, 및 상기 네트워크에 진입하는 각각의 패킷 헤더는 번역 모듈 또는 상기 적어도 하나의 소스 스위치에 의해 처리되는, 단일 계층 네트워크.
  11. 청구항 10에 있어서,
    상기 네트워크는 적어도 하나의 중계 스위치를 더 포함하고,
    상기 적어도 하나의 중계 스위치는 상기 적어도 하나의 소스 스위치에 연결되며, 상기 적어도 하나의 중계 스위치는 적어도 하나의 싱크 스위치로부터 수신된 갱신된 토폴로지 정보인 적어도 하나의 중계 테이블을 저장하는, 단일 계층 네트워크.
  12. 적어도 하나의 입력 포트;
    적어도 하나의 출력 포트;
    적어도 하나의 입력 및 적어도 하나의 출력을 포함하는 적어도 하나의 소스 스위치;
    적어도 하나의 입력 및 적어도 하나의 출력을 포함하는 적어도 하나의 싱크 스위치; 및
    상기 적어도 하나의 소스 스위치와 적어도 하나의 싱크 스위치를 연결하는 패브릭을 포함하되,
    상기 적어도 하나의 소스 스위치는 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 생성하기 위하여 적어도 하나의 패킷 헤더를 처리하고, 상기 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분은 상기 적어도 하나의 패킷 헤더의 추가적인처리와 독립적으로 상기 싱크 스위치로 라우팅될 수 있는, 단일 계층 네트워크.
  13. 단일 계층 네트워크 내에서 패킷들 또는 패킷들의 부분을 라우팅하는 방법에 있어서,
    상기 네트워크는 입력 포트들, 출력 포트들 및 적어도 하나의 소스 스위치 및 적어도 하나의 싱크 스위치의 패브릭을 포함하고, 상기 적어도 하나의 소스 스위치는 적어도 하나의 가상 출력 큐를 포함하며, 상기 적어도 하나의 싱크 스위치는 적어도 하나의 스케쥴링 메커니즘을 포함하고,
    상기 방법은,
    적어도 하나의 가상 출력 큐로부터 큐 상태 정보를 적어도 하나의 스케쥴링 메커니즘으로 전송하는 단계;
    상기 큐 상태 정보의 수신에 응답하여 상기 적어도 하나의 스케쥴링 메커니즘으로부터 적어도 하나의 크레딧을 상기 적어도 하나의 가상 출력 큐로 전송하는 단계;
    소스 스위치에서 적어도 두 개의 패킷들 또는 패킷들의 적어도 두 부분들을 정렬하는 단계;
    상기 크레딧의 수신에 응답하여 적어도 하나의 부하 분산 알고리즘을 사용하여 상기 적어도 하나의 소스 스위치로부터 복수의 출력들을 통해 정렬된 패킷들 또는 패킷들의 부분들의 적어도 하나의 데이터 이동을 상기 적어도 하나의 싱크 스위치로 전송하는 단계로서, 상기 데이터 이동은 복수의 패킷들로 구성된 것인, 단계; 및
    상기 싱크 스위치에서 수신된 상기 패킷들 또는 패킷들의 부분들을 재정렬하는 단계를 포함하는, 방법.
  14. 단일 계층 네트워크 내에서 패킷들 또는 패킷들의 부분을 라우팅하는 방법에 있어서,
    상기 네트워크는 입력 포트들, 출력 포트들 및 적어도 하나의 소스 스위치 및 적어도 하나의 싱크 스위치의 패브릭을 포함하고,
    상기 방법은,
    번역 모듈 또는 상기 적어도 하나의 소스 스위치에 의해 모든 패킷 또는 패킷의 처리된 부분을 처리하는 단계로서, 상기 처리는 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 생성하는 것인, 단계;
    적어도 하나의 소스 테이블을 상기 적어도 하나의 소스 스위치에 저장하는 단계로서, 상기 적어도 하나의 소스 테이블은 상기 적어도 하나의 싱크 스위치의 상기 적어도 하나의 출력을 상기 네트워크의 상기 적어도 하나의 출력에 매핑하기 위한 것인, 단계; 및
    상기 적어도 하나의 소스 스위치로부터 적어도 하나의 데이터 이동을 상기 네트워크의 상기 적어도 하나의 출력으로 전송하는 단계로서, 상기 데이터 이동은 상기 소스 테이블을 사용하여 라우팅되는, 단계를 포함하되,
    상기 데이터 이동은 복수의 패킷들 또는 패킷들의 복수의 부분들로 구성되고, 적어도 하나의 패킷 또는 패킷의 부분은 적어도 하나의 헤더로 구성되는, 방법.
  15. 단일 계층 네트워크 내에서 패킷들 또는 패킷들의 부분을 라우팅하는 방법에 있어서,
    상기 네트워크는 입력 포트들, 출력 포트들 및 적어도 하나의 소스 스위치 및 적어도 하나의 싱크 스위치의 패브릭을 포함하고,
    상기 방법은,
    번역 모듈 또는 상기 적어도 하나의 소스 스위치에 의해 모든 패킷 또는 패킷의 부분을 처리하는 단계로서, 상기 처리는 적어도 하나의 처리된 패킷 또는 패킷의 처리된 부분을 생성하는 것인, 단계;
    상기 적어도 하나의 패킷 헤더의 추가적인처리와 독립적으로, 상기 적어도 하나의 소스 스위치로부터 적어도 하나의 처리된 패킷을 상기 적어도 하나의 싱크 스위치로 라우팅하는 단계를 포함하는, 방법.
KR1020120023566A 2011-03-07 2012-03-07 단일 계층 스위치드 네트워크 내의 라우팅 방법 및 장치 KR101409919B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/041,507 2011-03-07
US13/041,507 US8705544B2 (en) 2011-03-07 2011-03-07 Method and apparatus for routing in a single tier switched network

Publications (2)

Publication Number Publication Date
KR20120102026A true KR20120102026A (ko) 2012-09-17
KR101409919B1 KR101409919B1 (ko) 2014-06-19

Family

ID=45655094

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120023566A KR101409919B1 (ko) 2011-03-07 2012-03-07 단일 계층 스위치드 네트워크 내의 라우팅 방법 및 장치

Country Status (6)

Country Link
US (2) US8705544B2 (ko)
EP (1) EP2498456B1 (ko)
KR (1) KR101409919B1 (ko)
CN (1) CN102684990B (ko)
HK (1) HK1169237A1 (ko)
TW (1) TWI617179B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013105932A1 (en) * 2012-01-10 2013-07-18 Intel Corporation Flow control mechanism for a storage server
US8867559B2 (en) * 2012-09-27 2014-10-21 Intel Corporation Managing starvation and congestion in a two-dimensional network having flow control
FR3036239B1 (fr) 2015-05-13 2018-07-06 Bull Sas Reseau d'equipements interconnectes par des commutateurs integrant des tables de routage
CN106302251B (zh) * 2015-06-26 2019-09-06 深圳市中兴微电子技术有限公司 一种交换网络同步方法及交换装置、接入装置
CA3041005A1 (en) * 2016-10-21 2018-04-26 Dinor Adam Vestergaard LEVI Flat data routing chain
CN111901257B (zh) * 2020-08-10 2022-02-25 曙光信息产业(北京)有限公司 一种交换机、报文转发方法及电子设备

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5519707A (en) * 1992-10-13 1996-05-21 Synoptics Communications, Inc. Multiplexing of communications services on a virtual service path in an ATM network or the like
DE4331618A1 (de) * 1993-09-17 1995-03-23 Philips Patentverwaltung Kommunikationselement für ein hierarchisches Verwaltungsnetz
US5528591A (en) * 1995-01-31 1996-06-18 Mitsubishi Electric Research Laboratories, Inc. End-to-end credit-based flow control system in a digital communication network
JP2001500323A (ja) 1995-07-19 2001-01-09 フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド 通信網の情報損失を減少させる方法及び装置
US6085238A (en) * 1996-04-23 2000-07-04 Matsushita Electric Works, Ltd. Virtual LAN system
FI103312B (fi) * 1996-11-06 1999-05-31 Nokia Telecommunications Oy Kytkentämatriisi
US6052375A (en) * 1997-11-26 2000-04-18 International Business Machines Corporation High speed internetworking traffic scaler and shaper
US5999531A (en) 1998-04-17 1999-12-07 Cabletron Systems, Inc. Method and system for identifying ports and forwarding packets in a multiport switch
US6640261B1 (en) * 1999-10-27 2003-10-28 Intel Corporation Method and apparatus for scheduler coupled to memory array wherein scheduler addresses array with at least a portion of an identification number
US7133399B1 (en) * 2000-10-31 2006-11-07 Chiaro Networks Ltd System and method for router central arbitration
US7046661B2 (en) 2000-11-20 2006-05-16 Polytechnic University Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined hierarchical arbitration scheme
US7095744B2 (en) 2000-11-22 2006-08-22 Dune Networks Method and system for switching variable sized packets
US6876657B1 (en) * 2000-12-14 2005-04-05 Chiaro Networks, Ltd. System and method for router packet control and ordering
US7027443B2 (en) * 2001-08-23 2006-04-11 Pmc-Sierra Ltd. Reassembly engines for multilink applications
US7596627B2 (en) * 2001-12-18 2009-09-29 Cisco Technology, Inc. Methods and apparatus for network congestion control
US7397794B1 (en) * 2002-11-21 2008-07-08 Juniper Networks, Inc. Systems and methods for implementing virtual switch planes in a physical switch fabric
US7026042B2 (en) 2003-03-26 2006-04-11 The United States Of America As Represented By The Secretary Of The Navy Highly conducting and transparent thin polymer films formed from double and multiple layers of poly(3,4-ethylenedioxythiopene) and its derivatives
US7792118B2 (en) * 2003-06-19 2010-09-07 Polytechnic University Switch module memory structure and per-destination queue flow control for use in a switch
US8594087B2 (en) * 2003-10-17 2013-11-26 Netlogic Microsystems, Inc. Encoding-based multicast packet duplication control suitable for VLAN systems
US7738473B2 (en) * 2006-04-20 2010-06-15 Forestay Research, Llc Multicast switching in a credit based unicast and multicast switching architecture
US7619970B2 (en) 2006-04-27 2009-11-17 Dune Semiconductor Ltd. Method, device and system of scheduling data transport over a fabric
US7768995B2 (en) * 2006-08-01 2010-08-03 Cisco Technology, Inc. Techniques for one-way synchronization of routing information among intermediate nodes
CN101681282A (zh) * 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
TWI332347B (en) * 2007-01-10 2010-10-21 Switchable transmission device of a vdsl co/cpe circuit
US7843908B2 (en) * 2007-06-08 2010-11-30 Roberto Rojas-Cessa Scalable two-stage Clos-networking switch and module-first matching
US8200798B2 (en) * 2007-12-29 2012-06-12 Cisco Technology, Inc. Address security in a routed access network
EP2134037B1 (en) 2008-06-12 2011-05-11 Alcatel Lucent Method and apparatus for scheduling data packet flows
US8565247B2 (en) * 2009-08-19 2013-10-22 Brocade Communications Systems, Inc. Techniques for efficiently updating routing information upon shortest path tree computation

Also Published As

Publication number Publication date
TWI617179B (zh) 2018-03-01
CN102684990A (zh) 2012-09-19
KR101409919B1 (ko) 2014-06-19
US20120230342A1 (en) 2012-09-13
US9154425B2 (en) 2015-10-06
US20140140214A1 (en) 2014-05-22
EP2498456B1 (en) 2015-08-05
US8705544B2 (en) 2014-04-22
HK1169237A1 (zh) 2013-01-18
EP2498456A1 (en) 2012-09-12
TW201246845A (en) 2012-11-16
CN102684990B (zh) 2015-12-16

Similar Documents

Publication Publication Date Title
US7145867B2 (en) System and method for slot deflection routing
US6816492B1 (en) Resequencing packets at output ports without errors using packet timestamps and timestamp floors
US7239608B2 (en) Router using measurement-based adaptable load traffic balancing system and method of operation
US6832261B1 (en) Method and apparatus for distributed resequencing and reassembly of subdivided packets
JP5867211B2 (ja) 中継装置、中継装置の制御方法及び中継システム
US9667570B2 (en) Fabric extra traffic
US8472312B1 (en) Stacked network switch using resilient packet ring communication protocol
JP3606941B2 (ja) フロー制御装置及びフロー制御方法
KR101409919B1 (ko) 단일 계층 스위치드 네트워크 내의 라우팅 방법 및 장치
EP1388235B1 (en) Apparatus and methods for efficient multicassting of data packets
EP1122971A2 (en) Data channel reservation in optical burst-switched networks
Duan et al. Responsive multipath TCP in SDN-based datacenters
US7474661B2 (en) Apparatus and method for distributing forwarding table lookup operations among a plurality of microengines in a high-speed routing node
US6747972B1 (en) Method and apparatus for reducing the required size of sequence numbers used in resequencing packets
US6934760B1 (en) Method and apparatus for resequencing of packets into an original ordering using multiple resequencing components
JP4966206B2 (ja) ネットワーク・ルーティングを改良するためのイーサネット系のシステムおよび方法
US9319310B2 (en) Distributed switchless interconnect
KR20040086325A (ko) 패킷 흐름을 네트워크 처리 수단에 순서적이고 동적으로분배하는 방법 및 시스템
EP2675118B1 (en) Method and device for adjusting ip network load
JP2016501475A (ja) 受動相互接続及び分散型スイッチレススイッチングを行うルータ
CN116235469A (zh) 网络芯片和网络设备
US7016302B1 (en) Apparatus and method for controlling queuing of data at a node on a network
US9277300B2 (en) Passive connectivity optical module
US7092393B1 (en) Method and apparatus for distributed reassembly of subdivided packets using multiple reassembly components
US8942232B1 (en) Multi-stage switching topology

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
LAPS Lapse due to unpaid annual fee