KR20010046193A - 패킷 스위치 네트워크에서의 멀티캐스트 방법 - Google Patents

패킷 스위치 네트워크에서의 멀티캐스트 방법 Download PDF

Info

Publication number
KR20010046193A
KR20010046193A KR1019990049871A KR19990049871A KR20010046193A KR 20010046193 A KR20010046193 A KR 20010046193A KR 1019990049871 A KR1019990049871 A KR 1019990049871A KR 19990049871 A KR19990049871 A KR 19990049871A KR 20010046193 A KR20010046193 A KR 20010046193A
Authority
KR
South Korea
Prior art keywords
packet
multicast
port
ports
virtual
Prior art date
Application number
KR1019990049871A
Other languages
English (en)
Other versions
KR100346217B1 (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 윤종용
Priority to KR1019990049871A priority Critical patent/KR100346217B1/ko
Publication of KR20010046193A publication Critical patent/KR20010046193A/ko
Application granted granted Critical
Publication of KR100346217B1 publication Critical patent/KR100346217B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • 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
    • H04L47/806Broadcast or multicast 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/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory

Landscapes

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

Abstract

본 발명은, 복수개의 포트들과 패킷을 저장하는 공유메모리를 구비한 패킷 스위치에서 수행되는 멀티캐스트 방법에 있어서, 복수개의 포트들중 하나로 인가된 멀티캐스트 패킷을 상기 공유메모리의 빈 영역에 저장하고, 상기 저장된 영역을 가리키는 제1 위치정보를 가진 가상 패킷을 상기 공유 메모리의 다른 빈 영역에 할당하는 과정과, 상기 가상패킷이 할당된 영역을 가리키는 제2 위치정보를 상기 멀티캐스트 패킷 전송할 포트에 대응하는 송신 큐에 할당하는 과정과, 상기 송신큐에 할당된 제2 위치정보를 이용해 상기 가상 패킷내 제1위치정보를 읽고, 상기 제1 위치정보를 이용해서 상기 공유메모리로부터 상기 멀티캐스트 패킷을 독출하여 상기 포트를 통해 전송하는 과정으로 이루어진다.

Description

패킷 스위치 네트워크에서의 멀티캐스트 방법{METHOD FOR MULTICAST IN PACKET SWITCHED NETWORK}
본 발명은 데이터 네트워크 스위치에 관한 것으로, 특히 공유메모리와 복수의 포트 제어기들을 가지는 패킷 스위치 네트워크에서 수행되는 멀티캐스트 방법에 관한 것이다.
데이터 통신 네트워크에 있어서 스위치는 네트워크의 여러 장치들 사이의 정보를 교환해 주는 역할을 수행한다. 이더넷(ethernet), FDDI(Fiber Distributed Data Interface), 토큰 링(token ring)이나 ATM(Asynchronous Transfer Mode)등 모든 종류의 네트워크에 적용되며, 각각의 해당 네트워크의 인터페이스를 제외하고는 네트워크의 종류에 상관없이 거의 동일한 특성을 가진다. 이러한 스위치는 대개 여러 개의 포트들을 가지며 하나의 입력포트로부터 들어온 정보를 하나 이상의 출력포트들로 보내 주는 역할을 수행하는데, 이때 하나 이상의 포트들로 보내 주는 동작을 통상 멀티캐스트(multicast)라 한다. 멀티 캐스트의 특별한 경우로서 브로드 캐스트(broadcast)가 있는데, 브로드 캐스트는 하나의 입력포트로 들어온 정보를 스위치에 구비된 포트들중 상기 입력포트를 제외한 다른 모든 포트들로 보내주는 경우를 지칭한다.
이러한 멀티캐스트 또는 브로드 캐스트는 스위치의 성능 저하를 야기 시킨다. 이것은 멀티캐스트에 따른 여러 가지 복잡한 동작을 스위치가 처리해야 하기 때문이다. 스위치가 처리하는 과정은 스위치의 특성에 따라 매우 상이할 수 있다. 정확히 말하자면, 스위치 구조가 공유 메모리(shared-memory)형인지 또는 공유 매체인지(shared-medium)형인지에 따라서 그 처리 과정이 상이하며, 공유 매체형중에서도 시분할 다중화 버스(time division multiplexing bus)구조인지 또는 크로스 바(cross bar) 구조인지에 따라 그 처리과정이 상이하다. 상기 시분할 다중화 버스구조(공유 매체형)의 스위치는 대체로 멀티캐스트가 간단하다. 그 이유는 버스자체의 특성 때문인데, 이 구조에서는 어떠한 데이터이든지 상기 시분할 다중화 버스를 통해 브로드 캐스트 되므로 해당 출력 포트에서 받아들이기만 하면 되는 것이다. 상기 크로스 바 구조(공유 매체형)의 스위치도 상기한 시분할 다중화 버스 구조와 유사하므로 대체로 멀티캐스트가 간단한다.
반면, 공유 메모리형 스위치는 공유 매체형 스위치보다 버퍼를 효율적으로 사용한다는 이점이 있어서 널리 활용되고 있으나, 멀티 캐스트에 있어서는 성능상의 어려움이 많다. 공유 메모리형 스위치에서의 일반적인 멀티캐스트 방법은 하기와 같다. 멀티 캐스트 패킷이면 실제 데이터는 공유메모리에 저장해 놓은 채로 각 송신 큐에 실제 패킷이 저장된 어드레스를 포인터로 가지는 가상의 패킷을 인큐(enqueue)한다. 송신 큐에서 상기 가상의 패킷이 전송될 차례가 되면 포인터를 이용해서 메모리에 저장된 실제 패킷을 내보내게 된다.
이러한 공유 메모리형 스위치에 대한 일 예로는 발명자들 HARRIMAN GUY 등에 의해서 발명되어 1999년 4월 27일자로 발행된 미국특허번호 제5,898,687호(발명의 명칭: "Arbitration mechanism for a multicast logic engine of a switching fabric circuit")이 있다.
상기한 선행기술에서의 단점은 "아웃 오브 시퀀스(out of sequence)"가 발생한다는 것이다. "아웃 오브 시퀀스"라 함은 동일 입출력 쌍(input-output pair)을 가지며 같은 우선순위를 가지는 패킷들의 전송순서가 뒤바뀌는 것을 의미한다. 예컨대, 패킷이 0,1,2,3의 순서로 메모리에 저장된 후 전송될 때에는 패킷이 0,2,1,3의 순서로 전송되는 경우이다.
따라서 본 발명의 목적은 공유 메모리형 스위치에서의 효율적인 멀티 캐스트를 구현하는 방법을 제공하는데 있다.
본 발명의 다른 목적은 공유 메모리형 스위치중 각 포트별로 송신과 수신을 관장하는 제어기가 별도로 존재하는 스위치에서의 효율적인 멀티캐스트를 구현하는 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 아웃 오브 시퀀스가 발생하지 않는 멀티캐스트를 구현하는 방법을 제공하는데 있다.
상기한 목적에 따라, 본 발명은, 복수개의 포트들과 패킷을 저장하는 공유메모리를 구비한 패킷 스위치에서 수행되는 멀티캐스트 방법에 있어서, 복수개의 포트들중 하나로 인가된 멀티캐스트 패킷을 상기 공유메모리의 빈 영역에 저장하고, 상기 저장된 영역을 가리키는 제1 위치정보를 가진 가상 패킷을 상기 공유 메모리의 다른 빈 영역에 할당하는 과정과, 상기 가상패킷이 할당된 영역을 가리키는 제2 위치정보를 상기 멀티캐스트 패킷 전송할 포트에 대응하는 송신 큐에 할당하는 과정과, 상기 송신큐에 할당된 제2 위치정보를 이용해 상기 가상 패킷내 제1위치정보를 읽고, 상기 제1 위치정보를 이용해서 상기 공유메모리로부터 상기 멀티캐스트 패킷을 독출하여 상기 포트를 통해 전송하는 과정으로 이루어짐을 특징으로 한다.
또한 본 발명은, 복수개의 포트들과 패킷을 저장하는 공유메모리를 구비한 패킷 스위치에서 수행되는 멀티캐스트 방법에 있어서, 상기 복수개의 포트들중 하나로 인가된 멀티캐스트 패킷을 상기 공유메모리의 빈 영역에 저장하고, 상기 저장된 영역을 가리키는 제1 위치정보를 가진 적어도 두개 이상의 가상패킷들을 상기 공유 메모리의 다른 빈 영역들 각각에 할당하는 과정과, 상기 적어도 두 개 이상의 가상패킷들이 할당된 영역들 각각을 가리키는 적어도 두 개 이상의 제2 위치정보들을 상기 멀티캐스트 패킷 전송할 적어도 두 개 이상의 포트들에 대응하는 송신 큐들에 할당하는 과정과, 상기 송신큐들 각각에 할당된 제2 위치정보들 각각을 이용해 상기 가상 패킷내 제1위치정보를 읽고, 상기 제1 위치정보를 이용해서 상기 공유메모리로부터 상기 멀티캐스트 패킷을 독출하여 적어도 두 개 이상의 포트들을 통해 전송하는 과정으로 이루어짐을 특징으로 한다.
또한 본 발명은, 복수개의 포트들과, 패킷을 저장하는 공유메모리를 구비한 패킷 스위치에서 수행되는 멀티캐스트 방법에 있어서, 복수개의 포트들중 하나로 수신된 패킷이 유니캐스트인지 멀티캐스트인지를 판단하는 과정과, 상기 수신된 패킷이 멀티 캐스트 패킷이면 상기 멀티캐스트 패킷을 상기 공유 메모리의 빈 방에 저장시키고, 상기 멀티캐스트 패킷을 저장시킨 방의 어드레스를 포인터로 가지는 멀티캐스트할 만큼의 가상 패킷들을 상기 공유 메모리의 다른 빈방들 각각에 할당하는 과정과, 상기 가상 패킷들이 할당된 방들 각각의 어드레스를 멀티캐스트할 목적지 포트들에 대응된 송신 큐들 각각에 할당하는 과정으로 이루어짐을 특징으로 한다.
또한 본 발명은, 복수개의 포트들과, 패킷을 저장하는 공유메모리와, 상기 복수개의 포트들에 대응하며 송신할 패킷의 위치정보가 할당되어 있는 복수개의 송신큐들을 구비하는 패킷 스위치에서의 멀티캐스트 방법에 있어서, 상기 패킷의 헤더는 자신의 패킷이 실제패킷인지 가상패킷인지를 판별하는 판별필드와 가상패킷시의 실제패킷의 위치를 가리키는 위치정보필드를 포함하게 구성하는 과정과, 송신할 패킷이 있으면 상기 복수개의 송신큐들중 송신할 포트에 대응된 송신큐에 할당된 위치정보를 이용해서 상기 공유메모리에 저장된 패킷의 헤더를 읽는 과정과, 상기 패킷의 헤더의 판별필드 정보에 의거하여 상기 패킷이 실제 패킷인지 가상 패킷인지를 판단하는 과정과, 상기 패킷이 가상패킷이면 상기 가상패킷의 헤더의 위치정보필드 정보에 의거해서 공유메모리상의 실제패킷을 읽어 상기 포트를 통해 송신하는 과정과, 상기 가상 패킷의 위치를 재가용한 자원으로서 할당하는 과정으로 이루어짐을 특징으로 한다.
도 1은 아웃 오브 시퀀스의 일 예를 설명하기 위한 도면,
도 2는 본 발명의 실시 예에 따라 멀티 캐스트 패킷을 전송하기 위한 블록 구성도,
도 3은 도 2의 링크 메모리 및 패킷 메모리에 관련된 맵도,
도 4는 본 발명의 실시 예에 따른 수신동작 제어 흐름도,
도 5는 본 발명의 실시 예에 따른 송신동작 제어 흐름도,
도 6은 전송되어야할 목적지 포트들을 표시하는 목적지 포트정보들을 저장하는 필드의 포맷 구성도,
도 7 및 도 8은 본 발명의 실시 예에 따른 멀티 캐스트를 위한 제어를 설명하기 위한 도면으로서, 도 7은 패킷 메모리에서의 상태도이고 도 8은 링크메모리내 송신 큐에서의 상태도이다.
이하 본 발명의 바람직한 실시 예들을 첨부한 도면을 참조하여 상세히 설명한다. 도면들 중 동일한 구성요소들은 가능한 한 어느 곳에서든지 동일한 부호들로 나타내고 있음에 유의해야 한다. 또한 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
도 1은 아웃 오브 시퀀스가 발생하는 일 예를 설명하기 위한 도면이다. 도 1을 참조하면, 패킷이 "0","1","2","3"의 순서로 공유메모리(본 발명에서는 패킷메모리)에 저장된 후 전송될 때에는 유니캐스트 패킷들(U) "0","1","3"은 유니캐스트 큐(2)에 순서대로 저장되고, 멀티캐스트 패킷(M) "2"는 멀티 캐스트 큐(4)에 저장된다. 그후 라운드 로빈(round robin: RR)회로(6)에 의해서 라운드로빈 방식으로 선택되면 전송포트로 출력되는 패킷데이터의 시퀀스는 "0","2","1","3"이 될 것이다. 이것은 저장될 때의 패킷들과는 그 순서가 바뀌어진 것으로 아웃 오브 시퀀스가 발생한 것이다.
본 발명에서는 이러한 아웃오브 시퀀스를 사전에 방지할 뿐만 아니라 공유 메모리형 스위치에서의 멀티 캐스트 동작이 효율적으로 수행되도록 한다.
도 2는 본 발명의 실시 예에 따라 멀티 캐스트 패킷을 전송하기 위한 블록 구성도이다. 도 2를 참조하면, 포트 제어기들(port controllers)(10-0,..,10-N) 각각은 스위치에 구비된 포트들 각각에 대응되며, 대응 각 포트에 대한 패킷 송신 및 수신 제어를 수행한다. 큐 관리기(12)는 링크 메모리(14)내의 포트별 송신 큐들(20-0,..,20-N)과 앰프티 버퍼 큐(empty buffer queue)(22)를 관리하고, 각 큐의 인큐(enqueue)와 디큐(dequeue) 동작을 제어한다.
링크 메모리(14)는 도 2 및 도 3에 도시된 바와 같이, 넥스트 패킷 포인터(next packet pointer), 포트별 송신 큐들(20-0,..,20-N)과 앰프티 버퍼 큐(empty buffer queue)(22)를 구비하고 있으며, 상기 큐 관리기(12)에 의해서 관리된다. 상기 넥스트 패킷 포인터는 패킷메모리(16)내 방들 각각과 1대 1 맵핑이 되어 있으며, 예컨대, 전송될 패킷 스트림중 어떤 패킷이 저장되어 있는 방의 다음 방을 가리키는 포인터이다. 도 3에서는, 어드레스 000, 001의 넥스트 패킷 포인터가 각각 a,b이고, 상기 넥스트 패킷 포인터 a,b가 가리키는 패킷 메모리(16)의 방에는 패킷 xxx, yyy가 각각 저장되어 있음을 일 예로 보여주고 있다. 링크 메모리(14)의 포트별 송신큐들(20-0,..,20-N) 각각에는 각 포트별로 전송되어질 패킷들의 헤더(header) 및 테일(tail) 포인터 값 H, T를 가지고 있는 송신큐 포인터들이 전송 순서대로 인큐(즉 할당)되어 있다. 그리고 링크 메모리(14)의 앰프티 버퍼 큐(22)에는 패킷 메모리(26)내의 빈 방들에 대한 헤더 및 테일 포인터 값을 가지고 있는 앰프티 포인터들이 인큐(즉 할당)되어 있다.
패킷 메모리(16)는 공유 메모리로서, 패킷을 저장한다. 상기 패킷 메모리(16)는 복수개의 방들로 이루어져 있는데, 방들 각각은 고정된 사이즈(size)이며 하나의 패킷을 저장시킨다. 각 방들의 사이즈의 일 예로서, 작은 방일 경우에는 128바이트이고 큰 방일 경우에는 1536바이트이다. 상기 각 방에는 실제 패킷(즉 데이터)과 스위치가 상기 실제 패킷마다 부여한 패킷 헤더로 이루어진 패킷이 저장되어 있다. 본 발명의 실시 예에 따른 패킷 헤더는 하기와 같은 정보가 있다. 패킷 헤더에는, 패킷 메모리(16)내 방들 각각에 저장된 패킷이 실제 패킷인지를 아니면 플레이스 홀더(place holder)인지를 나타내는 플레이스 홀더 지시자(place holder indicator)필드가 있으며, 멀티캐스트시 전송되어야할 목적지 포트들을 표시하는 멀티캐스트 목적지 포트정보들의 필드가 있으며, 패킷이 플레이스 홀더일 시 플레이스 홀더에 대응된 실제 패킷의 어드레스 필드가 포함되어 있다. 여기서 플레이스 홀더라 함은 패킷이 저장되는 방이 멀티캐스트가 되어야할 실제 패킷 대신 해당 송신 큐에 링크되어 있지만 데이터는 없는 즉, 널 데이터(null data)인 가상의 패킷을 의미한다. 본 발명의 실시 예에서 플레이스 홀더를 사용하는 이유는 하기와 같다. 패킷 메모리(16)내 어떤 방에 저장된 패킷이 순서에 입각해서 대응 전송포트를 통해 전송된 후 그 방은 앰프티 버퍼 큐(22)로 인큐된다. 앰프티 버퍼 큐(22)에 인큐한다는 것은 패킷이 저장된 방을 재가용한 자원으로서 할당한다는 것을 의미함을 이해하여야할 것이다. 만약 플레이스 홀더가 없다면 멀티캐스트 되어야할 패킷은 하나의 전송포트를 통해서 전송되고 그후 그 패킷의 방이 앰프티 버퍼 큐(22)로 인큐되어 버리므로, 다른 전송포트들로 전송되어할 상기 멀티캐스트 패킷이 없어져 버린다. 하지만 상기와 같이 플레이스 홀더를 둠으로써 하나의 전송포트를 통해 멀티캐스트 패킷이 전송된 후 플레이스 홀더의 방만이 앰프티 버퍼 큐(22)에 인큐되고, 실제의 멀티캐스트 패킷은 패킷메모리(16)내의 방에 그대로 저장되어 있게 된다. 그 결과 멀티캐스트 패킷은 멀티캐스트할 다른 전송포트들로도 전송되어질 수 있다.
도 4는 본 발명의 실시 예에 따른 수신동작 제어 흐름도이고, 도 5는 본 발명의 실시 예에 따른 송신동작 제어 흐름도이다.
도 6은 멀티캐스트 패킷에 패킷헤더내에 구비된, 전송되어야할 목적지 포트들을 표시하는 목적지 포트정보들을 저장하는 필드의 포맷 구성도이다. 그리고, 도 7 및 도 8은 본 발명의 실시 예에 따른 멀티 캐스트를 위한 제어를 설명하기 위한 도면으로서, 도 7은 패킷 메모리(16)에서의 상태도이고 도 8은 링크메모리(14)내 송신 큐에서의 상태도이다.
이하 첨부된 도면들을 참조하여 본 발명의 실시 예에 따른 동작을 더욱 상세히 설명한다. 본 발명의 실시 예에 따른 스위치의 동작을 크게 수신동작과 송신동작으로 나누어 설명할 수 있다. 하기 설명에서는 본 발명의 실시 예에 따른 스위치 동작의 보다 쉬운 이해를 도모하기 위해 포트제어기(10-0)가 패킷을 수신한 것으로 가정하고 포트 제어기(10-N)가 패킷을 송신하는 것으로 가정하여 설명할 것이다.
먼저 본 발명의 실시 예에 따른 스위치에서의 수신동작을 도 4를 참조하여 설명하면 하기와 같다. 도 4는 본 발명의 실시 예에 따른 수신동작을 설명하기 위한 흐름도이다.
도 2의 패킷 제어기들(10-0,..,10-N)중 패킷을 수신한 포트 제어기(10-0)는 수신된 패킷이 유니캐스트인지 멀티캐스트인지를 수신된 패킷의 패킷헤더에 있는 목적지 어드레스를 이용해서 판단한다(도 4의 100단계). 예컨대, 수신된 패킷의 헤더내에 있는 목적지 어드레스가 특정한 형태로 되어 있으며 이 패킷은 멀티캐스트이다. 만약 수신된 패킷이 유니 캐스트 패킷이면 목적지 포트가 존재하는지를 알아본다(102단계). 즉 패킷 헤더의 목적지 어드레스에 대한 목적지 포트가 존재하는지를 상위 제어부(미도시됨)에 요청하여, 룩업테이블 형태로 가지고 있는 상위제어부가 확인을 해줌에 따라 목적지 포트가 존재하는지를 알 수 있다. 만약 목적지 포트가 존재하면(도 4의 104단계), 포트 제어기(10-0)는 유니캐스트 패킷을 패킷 메모리(16)의 빈 방에 저장시키고, 그와 함께 큐 관리기(12)로 송신 큐들(20-0, ..,20-N)중 목적지 포트에 대응하는 송신 큐에 인 큐할 것을 요구한다(도 4의 106단계). 상기에서 가정한 바에 따르면, 포트제어기(10-0)는 포트0을 통해 수신한 유니캐스트 패킷을 패킷 메모리(16)의 빈 방에 저장시키고, 그와 함께 상기 방의 어드레스를 목적지 포트에 대응된 송신 큐(20-N)에 인큐(enqeue)할 것을 큐 관리기(12)에 요구한다. 그에 따라 큐 관리기(12)는 송신 큐(20-N)에 포트제어기(10-0)가 제공한 상기 방의 어드레스를 송신 큐 포인터로서 인큐하게 된다(도 4의 108단계).
만약 도 4의 104단계의 판단에서 유니캐스트 패킷이라도 목적지 포트를 알 수 없으면 하기 설명될 멀티 캐스트 처리와 동일하게 처리한다. 이 경우에는 스위치에 구비된 복수개의 포트들 각각을 통해 전송되는 브로드 캐스트가 수행될 것이다.
도 4의 100단계의 판단에서 만약 수신된 패킷이 멀티 캐스트 패킷이면 도 2의 포트제어기(10-0)는 멀티캐스트 패킷을 패킷 메모리(16)의 빈 방에 저장시키고, 상기 패킷을 저장시킨 방의 어드레스를 포인터로 가지는 멀티캐스트할 만큼의 플레이스 홀더들을 상기 패킷 메모리(16)의 다른 빈방들 각각에 할당한다(도 4의 110단계). 상기 멀티캐스트할 만큼의 플레이스 홀드들을 상기 다른 빈방들 각각에 할당할 때에는 각 플레이스 홀더의 패킷 헤더내의 플레이스 홀드 지시자를 예컨대 "1"로 설정하고, 플레이스 홀더에 대응된 실제 멀티캐스트 패킷이 저장된 방의 어드레스를 플레이스 홀더의 패킷헤더내 어드레스 필드에 기록한다. 도 7에는 플레이스 홀더 PH들은 멀티캐스트할 만큼의 개수만큼 패킷 메모리(16)에 할당이 되어 있는 것을 보여주고 있다. 할당된 플레이스 홀더 PH들의 각각의 어드레스 예컨대, c,x,..y는 각각 다른 값을 가지고 있다.
그후 포트 제어기(10-0)는 상기 플레이스 홀더가 할당된 방의 어드레스를 멀티캐스트할 목적지 포트들에 대응된 송신 큐들(20-k: k는 멀티캐스트될 포트들의 각 번호) 각각에 인큐(enqeue)할 것을 큐 관리기(12)에 요구한다(도 4의 112단계). 그에 따라 큐 관리기(12)는 상기 대응된 송신 큐들 각각에 포트제어기(10-0)가 제공한 플레이스 홀더 방들의 어드레스들 각각을 송신 큐 포인터로서 인큐하게 된다(도 4의 114단계). 도 7을 일 예로 들어 설명하면, 큐 관리기(12)는 각각의 어드레스 예컨대, c,x,..,y를 멀티캐스트될 포트들에 대응된 송신큐들(20-k: k는 멀티캐스트될 포트들의 각 번호) 각각에 인큐한다.
한편 포트 제어기(10-0)는 패킷이 멀티캐스트 패킷인 경우에는 도 3의 110단계에서 수행하는 멀티캐스트 패킷을 패킷 메모리(16)의 빈방에 저장시킬 때, 상기 패킷의 헤더내 멀티캐스트 목적지 포트정보에 멀티캐스트로 송신할 포트들을 예컨대, 비트 벡터(bit-vector) 형식으로 기록해 놓는다. 도 6의 (a)를 참조하여 보다 구체적으로 설명한다. 예컨대, 멀티캐스트로 송신할 목적지 포트들이 포트0 내지 포트 4라면 도 6의 (a)의 멀티캐스트 목적지 포트정보 필드에 기록된 바와 같이, 포트0 내지 포트 4가 "1"로 설정된다.
다음으로, 본 발명의 실시 예에 따른 스위치에서의 송신동작을 도 5를 참조하여 설명하면 하기와 같다. 도 5는 본 발명의 실시 예에 따른 송신동작을 설명하기 위한 흐름도이다.
도 2의 큐관리기(12)는 링크메모리(14)의 송신큐들(20-0,..,20-N)을 검사하여 소정 송신큐 예컨대, 송신큐(20-N)에 송신할 패킷의 포인터(즉 송신큐 포인터)가 존재하면 송신할 패킷이 있음을 복수개의 포트제어기들(10-0,..,10-N)중 송신할 패킷이 존재하는 송신큐(20-N)에 대응된 포트제어기(10-N)에 전달한다(도 5의 200단계). 큐관리기(12)로부터 송신할 패킷이 있다는 연락을 받은 포트 제어기(10-N)는 그 패킷의 포인터(즉 송신큐 포인터)를 큐 관리기(12)에 요청하여 제공받는다(도 5의 202단계). 보다 구체적으로 설명하면, 상기 포트 제어기(10-N)로부터 포인터 요청을 받은 큐 관리기(12)는 상기 송신할 패킷이 존재하는 송신큐(20-N)에 인큐되어 있는 송신큐 포인터를 읽어 포트제어기(10-N)로 제공해 준다.
그후 포트제어기(10-N)는 송신큐 포인터를 이용해서 패킷이 저장되어 있는 방을 액세스하고 그 방에 있는 패킷 헤더내 플레이스 홀더 지시자를 읽어서 패킷이 실제 패킷인지 아니면 플레이스 홀더인지를 판단한다(도 5의 204단계). 플레이스 홀더인 경우에는 플레이스 홀더 지시자의 이진논리가 "1"상태이고, 플레이스 홀더가 아니면 경우에는 플레이스 홀더 지시자의 이진논리가 "0"상태이다. 플레이스 홀더가 아닌 경우에는 그 방에 있는 패킷이 유니캐스트 패킷임을 의미한다.
상기한 판단에서 만약 패킷이 플레이스 홀더가 아니면 즉, 포트제어기(10-N)는 상기 액세스한 패킷메모리(16)내의 방에서 유니캐스트 패킷을 읽어오고, 큐관리기(12)는 포트제어기(10-N)의 제어에 의해 지금 읽은 패킷의 방의 어드레스를 링크메모리(16)의 앰프티 버퍼큐(22)에 인큐한다(도 5의 206단계). 그후 포트 제어기(10-N)는 패킷 메모리(16)에서 읽어온 실제 패킷을 해당 포트를 통해 전송한다(도 5의 208단계).
한편 도 5의 204단계에서의 판단에서, 패킷이 플레이스 홀더이면 포트 제어기(10-0)는 플레이스 홀더에 있는 패킷헤더의 어드레스 필드를 액세스하여 실제패킷의 어드레스를 읽고, 상기 실제 패킷의 어드레스를 이용해 실제 패킷을 읽어온다. 그리고 큐관리기(12)는 포트제어기(10-N)의 제어에 의해 플레이스 홀더의 어드레스를 링크메모리(16)의 앰프티 버퍼큐(22)에 인큐한다(도 5의 210단계). 그후 해당 포트 제어기(10-N)는 패킷메모리(16)에 저장된 상기 실제패킷의 방을 액세스하여 실제 패킷의 패킷헤더내 멀티캐스트 목적지 포트정보를 읽고, 읽은 다음 바로 멀티캐스트 목적지 포트정보필드의 해당 비트(즉 포트제어기의 포트번호에 해당하는 비트)를 클리어시킨다(도 5의 212단계). 이렇게 읽기-쓰기를 연속되게 하는 것은 읽기와 쓰기 바로 하지 않는 사이에 다른 포트제어기가 멀티캐스트 목적지 포트정보필드의 해당 비트를 변경시키는 것을 방지하기 위함이다. 이를 도 6의 (a) 및 (b)를 참조하여 일 예로 설명하면, 포트제어기(10-N)(여기서, N=4)는 자신의 포트4를 통해 멀티캐스트 패킷을 송신완료 후 도 6의 (a)의 멀티캐스트 목적지 포트정보 필드의 포트4에 기록된 비트 "1"을 읽고 바로 "0"으로 기록한다.
212단계 후 포트 제어기(10-N)는 도 5의 210단계에서 읽어온 실제 패킷(멀티캐스트 패킷)을 해당 포트를 통해 전송한다(도 5의 213단계). 그후 포트 제어기(10-N)는 멀티캐스트 목적지 포트정보를 이용해서 자신의 포트가 멀티캐스트될 마지막 포트인가를 판단한다(도 5의 214단계). 예컨대, 전달받은 도 6의 (b)에 도시된 바와 같은 멀티캐스트 목적지 포트정보에서 자신의 포트만이 "1"상태로 있다면 자신의 포트가 멀티캐스트될 마지막 포트인 것이다. 마지막 포트라고 판단하면(도 6의 216단계), 포트제어기(10-N)의 제어를 받은 큐 관리기(12)는 실제 패킷(멀티캐스트 패킷)의 방의 어드레스를 링크메모리(14)의 앰프티 버퍼큐(22)에 인큐한다.
도 7 및 도 8은 본 발명의 실시 예에 따른 멀티 캐스트를 위한 제어를 설명하기 위한 일 예의 도면으로서, 도 7은 패킷 메모리(16)에서의 상태도이고 도 8은 링크메모리(14)내 송신 큐(20-k)(k=0∼N)에서의 상태도이다.
도 7 및 도 8에서, 0,1,2,3은 패킷이고, 그중 0,1,3은 유니캐스트 패킷이고, 2는 멀티캐스트 패킷이다. 특정 포트로 전송될 패킷이 0,1,2,3의 시퀀스 순서로 수신되면, 패킷 0,1,2,3은 도 7의 패킷메모리(16)의 각방에 저장된다. 이때 패킷이 저장된 각 방의 어드레스는 a,b,PH,d이다. 그리고 특정 포트에 대응된 송신 큐(20-k)에는 패킷이 유니캐스트 패킷일 경우에는 각 방의 어드레스 a,b,d가 인큐되어 있고, 패킷이 멀티캐스트 패킷일 경우에는 실제 패킷이 저장된 방의 어드레스를 포인터로 가진 플레이스 홀더 PH의 어드레스 c가 인큐되어 있다. 즉 패킷이 전송될 특정 포트에 대응된 송신큐(20-k)에는 어드레스 a,b,c,d가 차례로 저장되어 있다. 송신 큐(20-k)에는 어드레스 a,b,c,d가 인큐되어 있으며, 논리적인 송신큐로는 패킷 1,2,3,4가 인큐되어 있어 특정포트를 통해서는 실제 패킷이 1,2,3,4의 순서로 전송된다.
상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시할 수 있다. 따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위와 특허청구범위의 균등한 것에 의해 정해 져야 한다.
상술한 바와 같이 본 발명은 도 1과 관련해 설명한 아웃 오브 시퀀스도 발생하지 않으며, 공유 메모리형 스위치에서의 효율적인 멀티캐스트 또는 브로드 캐스트를 가능하게 한다.

Claims (16)

  1. 복수개의 포트들과 패킷을 저장하는 공유메모리를 구비한 패킷 스위치에서 수행되는 멀티캐스트 방법에 있어서,
    복수개의 포트들중 하나로 인가된 멀티캐스트 패킷을 상기 공유메모리의 빈 영역에 저장하고, 상기 저장된 영역을 가리키는 제1 위치정보를 가진 가상 패킷을 상기 공유 메모리의 다른 빈 영역에 할당하는 과정과,
    상기 가상패킷이 할당된 영역을 가리키는 제2 위치정보를 상기 멀티캐스트 패킷 전송할 포트에 대응하는 송신 큐에 할당하는 과정과,
    상기 송신큐에 할당된 제2 위치정보를 이용해 상기 가상 패킷내 제1위치정보를 읽고, 상기 제1 위치정보를 이용해서 상기 공유메모리로부터 상기 멀티캐스트 패킷을 독출하여 상기 포트를 통해 전송하는 과정으로 이루어짐을 특징으로 하는 멀티캐스트방법.
  2. 제1항에 있어서, 상기 가상 패킷은 널 데이터임을 특징으로 하는 멀티캐스트 방법.
  3. 제1항에 있어서, 상기 멀티캐스트 패킷을 상기 포트로 전송한 후 가상 패킷이 저장된 영역을 재가용한 자원으로서 할당하는 과정을 더 가짐을 특징으로 하는 멀티캐스트 방법.
  4. 복수개의 포트들과 패킷을 저장하는 공유메모리를 구비한 패킷 스위치에서 수행되는 멀티캐스트 방법에 있어서,
    상기 복수개의 포트들중 하나로 인가된 멀티캐스트 패킷을 상기 공유메모리의 빈 영역에 저장하고, 상기 저장된 영역을 가리키는 제1 위치정보를 가진 적어도 두개 이상의 가상패킷들을 상기 공유 메모리의 다른 빈 영역들 각각에 할당하는 과정과,
    상기 적어도 두 개 이상의 가상패킷들이 할당된 영역들 각각을 가리키는 적어도 두 개 이상의 제2 위치정보들을 상기 멀티캐스트 패킷 전송할 적어도 두 개 이상의 포트들에 대응하는 송신 큐들에 할당하는 과정과,
    상기 송신큐들 각각에 할당된 제2 위치정보들 각각을 이용해 상기 가상 패킷내 제1위치정보를 읽고, 상기 제1 위치정보를 이용해서 상기 공유메모리로부터 상기 멀티캐스트 패킷을 독출하여 적어도 두 개 이상의 포트들을 통해 전송하는 과정으로 이루어짐을 특징으로 하는 멀티캐스트방법.
  5. 제4항에 있어서, 상기 가상 패킷들 각각은 널 데이터임을 특징으로 하는 멀티캐스트 방법.
  6. 제4항에 있어서, 상기 멀티캐스트 패킷을 상기 포트들중 하나로 전송한 후 상기 포트들중 하나에 대응된 가상 패킷이 저장된 영역을 재가용한 자원으로서 할당하는 과정을 더 가짐을 특징으로 하는 멀티캐스트 방법.
  7. 제4항에 있어서, 상기 공유 메모리에 저장된 멀티캐스트 패킷의 헤더는 상기 포트들중 상기 멀티캐스트 패킷이 전송될 포트들과 상기 멀티캐스트 패킷이 전송된 포트들을 표시하기 위한 필드를 포함하고 있음을 특징으로 하는 멀티캐스트 방법.
  8. 복수개의 포트들과, 패킷을 저장하는 공유메모리를 구비한 패킷 스위치에서 수행되는 멀티캐스트 방법에 있어서,
    복수개의 포트들중 하나로 수신된 패킷이 유니캐스트인지 멀티캐스트인지를 판단하는 과정과,
    상기 수신된 패킷이 멀티 캐스트 패킷이면 상기 멀티캐스트 패킷을 상기 공유 메모리의 빈 방에 저장시키고, 상기 멀티캐스트 패킷을 저장시킨 방의 어드레스를 포인터로 가지는 멀티캐스트할 만큼의 가상 패킷들을 상기 공유 메모리의 다른 빈방들 각각에 할당하는 과정과,
    상기 가상 패킷들이 할당된 방들 각각의 어드레스를 멀티캐스트할 목적지 포트들에 대응된 송신 큐들 각각에 할당하는 과정으로 이루어짐을 특징으로 하는 멀티캐스트 방법.
  9. 제8항에 있어서, 상기 유니캐스트인지 멀티캐스트인지의 판단은 상기 수신된 패킷의 헤더에 있는 목적지 어드레스를 이용함을 특징으로 하는 멀티캐스트 방법.
  10. 제8항에 있어서, 상기 멀티캐스트 패킷은 헤더내에 목적지 포트정보를 기록할 필드를 가지고 있음을 특징으로 하는 멀티캐스트 방법.
  11. 제10항에 있어서, 상기 멀티캐스트 패킷을 공유 메모리의 빈방에 저장시킬 때, 상기 멀티캐스트 목적지 포트정보 필드에 멀티캐스트로 송신할 포트들에 대한 정보를 기록함을 특징으로 하는 멀티캐스트 방법.
  12. 복수개의 포트들과, 패킷을 저장하는 공유메모리와, 상기 복수개의 포트들에 대응하며 송신할 패킷의 위치정보가 할당되어 있는 복수개의 송신큐들을 구비하는 패킷 스위치에서의 멀티캐스트 방법에 있어서,
    상기 패킷의 헤더는 자신의 패킷이 실제패킷인지 가상패킷인지를 판별하는 판별필드와 가상패킷시의 실제패킷의 위치를 가리키는 위치정보필드를 포함하게 구성하는 과정과,
    송신할 패킷이 있으면 상기 복수개의 송신큐들중 송신할 포트에 대응된 송신큐에 할당된 위치정보를 이용해서 상기 공유메모리에 저장된 패킷의 헤더를 읽는 과정과,
    상기 패킷의 헤더의 판별필드 정보에 의거하여 상기 패킷이 실제 패킷인지 가상 패킷인지를 판단하는 과정과,
    상기 패킷이 가상패킷이면 상기 가상패킷의 헤더의 위치정보필드 정보에 의거해서 공유메모리상의 실제패킷을 읽어 상기 포트를 통해 송신하는 과정과,
    상기 가상 패킷의 위치를 재가용한 자원으로서 할당하는 과정으로 이루어짐을 특징으로 하는 멀티캐스트방법.
  13. 제12항에 있어서,
    상기 패킷이 실제패킷이면 상기 실제패킷을 읽어 상기 포트를 통해 송신하는 과정과,
    상기 실제 패킷의 위치를 재가용한 자원으로서 할당하는 과정을 더 가짐을 특징으로 하는 멀티캐스트방법.
  14. 제12항에 있어서, 상기 패킷의 헤더는 멀티캐스트할 목적지 포트들을 설정하기 위한 멀티캐스트 목적지 포트정보 필드를 더 가짐을 특징으로 하는 멀티캐스트 방법.
  15. 제14항에 있어서,
    상기 패킷이 가상패킷일 경우 상기 공유메모리상의 실제패킷을 전송을 위해 읽은 후 상기 실제패킷의 목적지 포트정보 필드에서 송신될 포트에 대응된 포트정보를 읽는 과정과,
    상기 포트정보를 해당 포트로 패킷전송됨을 알리는 상태로 기록함을 과정을 더 가짐을 특징으로 하는 멀티캐스트 방법.
  16. 제15항에 있어서, 상기 읽기 과정과 기록과정이 연속되게 수행됨을 특징으로 하는 멀티캐스트 방법.
KR1019990049871A 1999-11-11 1999-11-11 패킷 스위치 네트워크에서의 멀티캐스트 방법 KR100346217B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990049871A KR100346217B1 (ko) 1999-11-11 1999-11-11 패킷 스위치 네트워크에서의 멀티캐스트 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990049871A KR100346217B1 (ko) 1999-11-11 1999-11-11 패킷 스위치 네트워크에서의 멀티캐스트 방법

Publications (2)

Publication Number Publication Date
KR20010046193A true KR20010046193A (ko) 2001-06-05
KR100346217B1 KR100346217B1 (ko) 2002-08-01

Family

ID=19619521

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990049871A KR100346217B1 (ko) 1999-11-11 1999-11-11 패킷 스위치 네트워크에서의 멀티캐스트 방법

Country Status (1)

Country Link
KR (1) KR100346217B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114584411A (zh) * 2022-02-25 2022-06-03 山东云海国创云计算装备产业创新中心有限公司 PCIe多播验证方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114584411A (zh) * 2022-02-25 2022-06-03 山东云海国创云计算装备产业创新中心有限公司 PCIe多播验证方法、装置、电子设备及存储介质
CN114584411B (zh) * 2022-02-25 2024-04-02 山东云海国创云计算装备产业创新中心有限公司 PCIe多播验证方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
KR100346217B1 (ko) 2002-08-01

Similar Documents

Publication Publication Date Title
AU738983B2 (en) Networking systems
US5684797A (en) ATM cell multicasting method and apparatus
JP3109591B2 (ja) Atm交換機
TWI527409B (zh) 網路處理器單元及其相關方法
US5418781A (en) Architecture for maintaining the sequence of packet cells transmitted over a multicast, cell-switched network
US5434855A (en) Method and apparatus for selective interleaving in a cell-switched network
US7110405B2 (en) Multicast cell buffer for network switch
JPH1127291A (ja) オンチップfifoのローカルメモリへの拡張のための方法及び装置
KR20040038028A (ko) 다중 입력/출력 버퍼형 교환기
US6285674B1 (en) Hybrid distributed broadcast and unknown server for emulated local area networks
US7130301B2 (en) Self-route expandable multi-memory packet switch with distributed scheduling means
US6310879B2 (en) Method and apparatus for multicast of ATM cells where connections can be dynamically added or dropped
WO1999051000A1 (en) Ampic dram system in a telecommunication switch
US6185206B1 (en) ATM switch which counts multicast cell copies and uses a second memory for a decremented cell count value
US6819675B2 (en) Self-route multi-memory expandable packet switch with overflow processing means
KR100346217B1 (ko) 패킷 스위치 네트워크에서의 멀티캐스트 방법
US7142515B2 (en) Expandable self-route multi-memory packet switch with a configurable multicast mechanism
US6885591B2 (en) Packet buffer circuit and method
US7130302B2 (en) Self-route expandable multi-memory packet switch
JP3919341B2 (ja) 非同期転送モード交換装置
US20030123492A1 (en) Efficient multiplexing system and method
Kumar et al. On Design of a Shared-Buffer based ATM Switch for Broadband ISDN
GB2321820A (en) A method for dynamically allocating buffers to virtual channels in an asynchronous network
US20020167951A1 (en) High-speed data transfer system and method
JPH11510324A (ja) ペースカウンタを用いた帯域幅割付けの制御

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080604

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee