KR100407039B1 - 서비스 품질 보증을 지원하기 위한 버퍼 관리 방법과데이터 교환시의 데이터 흐름 제어 방법 - Google Patents

서비스 품질 보증을 지원하기 위한 버퍼 관리 방법과데이터 교환시의 데이터 흐름 제어 방법 Download PDF

Info

Publication number
KR100407039B1
KR100407039B1 KR10-2001-0059077A KR20010059077A KR100407039B1 KR 100407039 B1 KR100407039 B1 KR 100407039B1 KR 20010059077 A KR20010059077 A KR 20010059077A KR 100407039 B1 KR100407039 B1 KR 100407039B1
Authority
KR
South Korea
Prior art keywords
pdu
data
network node
pdus
processing
Prior art date
Application number
KR10-2001-0059077A
Other languages
English (en)
Other versions
KR20020025722A (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 KR20020025722A publication Critical patent/KR20020025722A/ko
Application granted granted Critical
Publication of KR100407039B1 publication Critical patent/KR100407039B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
    • 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/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/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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/266Stopping or restarting the source, e.g. X-on or X-off
    • 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/29Flow control; Congestion control using a combination of thresholds
    • 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
    • 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/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

데이터 교환 노드에서 PDU(Protocol Data Units)를 교환시 공유 메모리 자원을 이용하는 방법이 개시된다. 이 방법은 그 처리를 위해 큐잉에 앞서 PDU들을 기억하기 위한 임시 메모리 기억부와, QoS 보증을 지원하기 위한 CoS 메모리 기억부와, 비블록킹 입력 포트의 흐름 제어를 인에이블시키는 공유 메모리-풀 부 및 입력 포트 메모리 기억부를 예약하는 단계를 포함하고 있다. PDU 다음의 헤더들이 각각의 PDU의 수신에 이어 검사될 때까지는 PDU의 폐기 결정을 지연시키는 규정이 마련된다. 입력 포트를 통해 전달되는 체계적으로 동작하는 데이터 흐름이 데이터 교환 노드의 다른 입력 포트를 통해 전달되는 오동작 데이터 흐름으로 인해 블록킹되는 것을 방지하기 위한 규정이 마련된다. PDU의 폐기에 동일하게 적용될 수 있는 메모리 관리 기법과, 메모리 기억의 필요 조건을 감소시키면서 상기 메모리 관리 기법을 구현하는 데이터 네트워크 노드에서의 PDU를 폐기시키는 사례를 줄이기 위한 흐름 제어 환경으로부터 본 발명의 여러 이점들이 얻어진다

Description

서비스 품질 보증을 지원하기 위한 버퍼 관리 방법과 데이터 교환시의 데이터 흐름 제어 방법{BUFFER MANAGEMENT FOR SUPPORT OF QUALITY-OF-SERVICE GUARANTEES AND DATA FLOW CONTROL IN DATA SWITCHING}
본 발명은 데이터 전송 네트워크에서의 데이터 교환에 관한 것으로, 특히 데이터 교환 노드에서의 메모리 기억 자원을 관리하는 개선된 방법에 관한 것이다.
데이터 교환 분야에서, 데이터 전송 네트워크에 관여하는 데이터 교환 노드의 성능은 극히 중요한 문제이다.
데이터 전송 서비스의 제공시, 데이터는 사용되는 데이터 전송 프로토콜에 의해 특정되는 대로 데이터 네트워크 노드들 간에 전달된다. 데이터의 바디는 통상 소스 데이터 네트워크 노드에 의해 생성되고, 데이터 교환 장비에 의해 데이터 전송 네트워크를 통해 관련 상호 접속 데이터 전송 링크를 경유하여 목적지 데이터 네트워크 노드쪽으로 보내진다. 데이터는 상응하는 데이터 전송 프로토콜 사양대로 PDU(Protocol Data Unit) 혹은 PDU들(Payload Data Units)로 요약화된다.
적어도 하나의 데이터 전송 프로토콜에 따라, 전달되는 데이터는 루팅 정보와 함께 PDU들로 요약화된다. PDU들은 셀, 프레임, 패킷 등을 포함하고 있지만, 여기에 국한되는 것은 아니다. 각각의 PDU는 크기를 갖고 있으며, 셀들이 고정된 크기를 갖는데 비해, 프레임과 패킷들은 크기가 변경될 수 있다.
각각의 PDU는 운반될 데이터의 바디의 적어도 일부를 유지하고 있는 페이로드부와; 루팅 정보, PDU 처리 파라미터 등을 유지하고 있는 헤더부를 포함하고 있다. 헤더 정보의 적어도 일부는 목적지 데이터 네트워크 노드쪽으로 PDU들을 포워드하게 될 루트를 결정하기 위해 전송로를 따라 각각의 데이터 스위칭 노드에서 참고된다. PDU는 멀티케스트 데이터 트래픽의 경우처럼 목적지 데이터 네트워크 노드군쪽으로 포워드될 수 있다.
헤더 정보는 상세히 기술해 보면, PDU 타입, PDU의 크기, 페이로드의 크기, 헤더의 크기와 구조, 소스 데이터 네트워크 노드, 목적지 데이터 네트워크 노드, 및 우선 순위, CoS(서비스 등급) 등과 같은 상기 PDU를 처리하는데 있어서의 기타특수 명령어들인 규칙자(specifiers)를 포함하고 있다.
데이터 전송 네트워크의 관점에서 보면, 데이터는 데이터 네트워크 노드들 간에 데이터 전송 세션의 지속 기간 동안 데이터 전송 네트워크 홉 단위(hop-by-hop)로 운반된다. PDU들은 데이터 교환 노드들에 의해 이 노드에 접속되어 있는 데이터 전송 링크를 경유하여 수신되며, 의도된 목적지쪽으로 PDU들을 운반하게될 데이터 전송 링크를 결정하기 위한 처리가 수행된다.
데이터 교환 노드의 관점에서 보면, 데이터 교환 노드는 입력 포트와 출력 포트간에 PDU들을 보내게 되는 다중 포트화된(multi-ported) 데이터 네트워크 노드이다. PDU들의 포워딩은 데이터 교환 노드의 교환 기능을 나타내는 것이다. 데이터 교환 노드의 기본적인 동작은 적어도 하나의 PDU를 수신하고, 적절한 출력 포트가 결정되는 동안 메모리 기억 장치에 PDU를 기억시키고, 출력 포트를 결정하고, 전송을 위해 PDU의 스케쥴링을 행하고, 결정된 출력 포트를 통해 PDU를 전송하는 동작을 포함하고 있다. 데이터 전송 분야에서 이러한 동작은 데이터 교환 노드의 동작에 대한 "기억 및 포워드" 방법으로 알려져 있다. 데이터 교환 노드의 동작은 개념적으로 간단하기는 하지만, 이러한 장치를 구현하는 것은 쉬운 일이 아니다.
메모리 기억 장치 내에 PDU들을 기억하면 입력 포트, 출력 포트와 같은 속도 매칭 기능과, 상이한 데이터 처리 속도로 동작하는 교환 기능을 제공하게 된다. 이러한 이유로 메모리 기억 장치는 메모리 버퍼로도 알려져 있다.
메모리 기억 장치 내에 PDU들을 기억하면, 데이터 흐름의 통계(통계 생성 기능)를 수집할 수 있으므로 데이터 전송 자원의 사용을 단속하고자하는 경우에 데이터 흐름을 통제하는 것을 지원할 수도 있다.
메모리 기억 장치 자체는 한정된 사이즈를 갖는 관계로 PDU의 처리시 제한된 자원을 나타내게 된다. 만일 PDU가 데이터 교환 노드에 도달하고 메모리 기억 장치의 자원이 고갈되면, PDU는 폐기될 것이다. 효율적인 데이터 전송은 PDU가 폐기되는 경우를 최소화하는 것이다.
하나의 해결책은 교환 노드에 이용될 수 있는 메모리 기억 장치의 자원의 크기를 증가시키는 것이다. 메모리 기억 장치 자원의 크기를 증가시키면 데이터 교환 노드의 설계가 복잡해지고, 개발 비용, 부품 비용, 그리고 관리 비용 등이 증가하게 된다. 데이터 교환 분야에서 추진되고 있는 경향은 이제까지 데이터 처리량을 증가시키는 경우 요구되고 있는 것과 같은, 데이터 흐름에 부과될 QoS(Quality-of-Service)의 필요 조건들을 보다 엄격하게 요구하고 있다. 데이터 교환 노드에서 메모리 기억 장치의 자원을 증가시키는 것은 단기적인 해결 방안이다.
PDU가 폐기되는 상황이 발생하는 것을 줄이기 위한 시도로, 데이터 흐름의 통제를 달성하기 위해 데이터 교환 노드를 적절히 변경시키고 있었다. 그러한 것으로서는, 데이터 교환 노드의 통계 수집 기능이 관련 데이터 흐름에 따라 PDU를 분류하는데 이용되고 있다. 데이터 흐름은 특정의 집행 가능한 데이터 흐름 파라미터에 따라 전달된다. PDU의 포워드나, 폐기 혹은 데이터 교환 노드에서 데이터 흐름을 조절할 지를 결정하기 위해 휴리스틱 기법(Heuristics)이 이용된다.
PDU 포워딩 룰의 일례는 PDU는 체계적으로 움직이는(well-behaved) 데이터 흐름으로부터는 폐기되어서는 안될 것을 특정하고 있다. 메모리 기억 장치 자원을독점하는 데이터 흐름은 오동작하는 것으로 고려된다.
통상적인 데이터 교환 노드의 설계는 전달되는 모든 데이터 흐름에 대해 공유 메모리 버퍼를 사용하는 것을 포함하고 있다. 이러한 배치(arrangemment)를 당해 분야에서는 공유 메모리 교환 아키텍쳐라고 한다.
공유 메모리 버퍼를 사용하면, 상기한 방식의 설계는 당해 분야에서 블록킹으로 알려져 있는 현상을 일으킬 수 있다는 사실로 인해 체계적으로 움직이는 데이터 흐름과 관련하여 PDU를 폐기하지 않도록 하는 필요 조건의 수행을 곤란하게 만들 수 있다.
블록킹 상태는, 하나의 특정 데이터 흐름이 이용 가능한 모든 공유 메모리 자원을 이용하는 경우, 그리고 데이터 교환 노드가 유입 PDU들을 폐기하도록 강제되는 경우 나타나게 되며, 체계적으로 동작하는 데이터 흐름과 관련된 PDU들을 포함하고 있다.
흐름의 제어가 입력 포트에 대해 인에이블되고, PDU가 제한된 메모리 기억 장치 자원을 갖는 데이터 교환 노드에 도달하는 경우, 수신 입력 포트는 흐름 제어 중지 명령 메시지 업스트림을 발행하도록 지시 받게 되므로, 데이터 교환 노드의 데이터 네트워크 노드 업스트림은 데이터 전송을 일시 중지하게 된다.
예를 들어, 1998년의 IEEE 표준 802.3의 부속 서류 31A에 입각한 강제 규정인 흐름 제어의 현재 사양에 따르면, 흐름 제어를 초래하는 입력 포트를 경유하여 데이터를 전달하는 모든 데이터 흐름은 데이터 전송을 일시 중지시키도록 영향을 받고 또한 요구받으며, 체계적으로 동작하는 데이터 흐름을 포함하고 있다.
QoS 지원시, PDU들은 PDU 헤더들에 특정되어 있는 CoS(Class-of-Service)/포워딩 우선 순위에 관해서도 특성을 나타낸다. 데이터 교환 노드에서도 강제되는 QoS 보증은, 흐름 제어의 현재 사양에 대한 중지 명령을 사용하는 것이 모든 데이터 흐름으로 하여금 체계적으로 동작하는 데이터 흐름을 포함한 전송을 중지시키도록 할 수 있기 때문에 제어 흐름이 활성인 경우에는 보장될 수 없다. 따라서 흐름 제어는 QoS를 보장하는 것과는 본래 거리가 있다.
PDU 포워딩 룰의 또 다른 예로서, PDU들은 높은 포워딩 우선 순위를 갖는 데이터 흐름으로부터는 폐기되어서는 안된다. 공유 메모리 버퍼 자원을 취하는 낮은 포워딩 우선 순위의 PDU들 때문에, 정체된 데이터 교환 노드에 도달하는 높은 포워딩 우선 순위의 PDU들이 폐기될 수도 있다는 점에서, 높은 포워딩 우선 순위를 갖는 데이터 흐름의 경우, 체계적으로 동작하는 데이터 흐름에 대해 설명한 바와 같은, 유사한 문제가 존재할 수 있다.
1992년에 공개된 D. Bertsekas와 R. Gallager에 의해 공개된 "데이터 네트워크" 2판 496 - 498 페이지의 종래 기술은 공유 버퍼 공간의 배분을 통해 버퍼 관리를 구현하는 이론적 방법을 설명하고 있다. 여기서 소개되고 있는 접근법은 전체 공유 버퍼 공간을 다수의 예약 영역과 하나의 공유 풀(pool)로 분할하는 것이다. 예약 영역들은 각각의 데이터 흐름이나 CoS에 대한 소량의 버퍼 공간을 보장하게 되므로, 정체 상태 하에서도, 체계적으로 동작하는 흐름은 보증된 버퍼 공간을 갖게 된다.
소개된 방법이 버퍼 관리의 이론적 방법을 제공하고는 있지만, 실제로는 일단 공유 버퍼 공간이 채워지면, 모든 데이터 흐름이 정체될 수도 있다. 이론에서는 일단 공유 버퍼 공간이 채워지면, 다음 PDU를 전달하기 위한 데이터 흐름은 아마도 오동작하는 데이터 흐름이 될 것이고, 이에 따라 흐름 제어로 들어가는 것을 가정하고 있는 것이다. 실제로는 체계적으로 동작하는 데이터 흐름은 데이터 처리 레벨을 특정하는 서비스 레벨의 일치시 혹은 그 레벨 밑에서 데이터를 전달하게 되며, 많은 경우에 있어서, 오동작하는 데이터 흐름보다 더 큰 처리량을 가질 수도 있다. 체계적으로 동작하는 데이터 흐름을 포함한, 데이터 교환 노드를 통해 전달되는 모든 데이터 흐름은, 공유 버퍼 공간이 소모됨에 따라, 처리량에 변화를 겪게 되고, 비록 소량이라도 데이터 처리량에서의 변화는 체계적으로 동작하는 데이터 흐름을 흐름 제어에 대해 치명적으로 노출시킨다.
따라서, 블록킹이 발생하는 사례를 최저 발생 레벨로 감소시키기 위한 방법과 데이터 교환 아키텍처가 요구된다.
도 1은 본 발명의 바람직한 실시예에 따른 분할된 공유 메모리 버퍼를 나타내는 개략도.
도 2는 본 발명의 바람직한 실시예에 따른 데이터 교환 노드에 의해 수행되는 PDU 수신 서브프로세스의 처리 단계를 나타내는 흐름도.
도 3은 본 발명의 바람직한 실시예에 따른 데이터 교환 노드에 의해 수행되는 큐잉 서브프로세스의 처리 단계를 나타내는 흐름도.
도 4는 본 발명의 바람직한 실시예에 따른 데이터 교환 노드에 의해 수행되는 흐름 제어 서브프로세스의 처리 단계를 나타내는 흐름도.
도 5는 본 발명의 바람직한 실시예에 따른 데이터 교환 노드에 의해 수행되는 교환 서브프로세스의 처리 단계를 나타내는 흐름도.
도 6은 본 발명의 바람직한 실시예에 따른 데이터 교환 노드에 의해 수행되는 전송 서브프로세스의 처리 단계를 나타내는 흐름도.
도 7은 본 발명의 바람직한 실시예에 따른 데이터 교환 노드에 의해 수행되는 디큐잉(dequeuing) 서브프로세스의 처리 단계를 나타내는 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 공유 메모리 버퍼
102 : 예약 임시 메모리 기억부
104 : PDU 큐잉 메모리 기억부
106 : 예약 CoS PDU 큐잉 메모리 기억부
108 : 예약 CoS PDU 처리 큐
110 : 공유 메모리-풀 부
112 : 예약된 입력 포트 메모리 기억부
114 : 예약 입력 포트 PDU 처리 큐
116 : 관련 하위 워터마크 레벨 (LW)
118 : 상위 워터마크 점유 레벨 (HW)
본 발명의 양상에 따르면, 복수의 데이터 포트간에 데이터 네트워크 노드 교환 프로토콜 데이터 유닛들(PDU)이 제공된다. 각각의 PDU는 헤더 정보를 기억하는 헤더와, 적어도 전달될 데이터의 일부를 기억하는 페이로드를 갖고 있다. 데이터 네트워크 노드는 프로세서 교환 PDU들과 공유 메모리 버퍼를 포함한다. 공유 메모리 버퍼는 예약 임시 메모리 기억부와 PDU 큐잉 메모리 기억부로 분할된다. 임시 메모리 기억부는, 큐잉에 앞서 헤더 정보의 예비 검사가 미해결 동안, 복수의 데이터 포트의 입력 포트를 통해 수신되는 PDU들을 유지하고 있다. PDU 큐잉 메모리 기억부는 복수의 데이터 포트 중에서 PDU들이 스위치될 출력 포트 결정시 처리 중인 미해결의 PDU들을 유지하고 있다. 이러한 방식은 그 큐잉에 앞서 오동작하는 데이터 흐름과 관련된 PDU들 중에서 체계적으로 동작하는 데이터 흐름과 관련된 PDU들을 식별할 수 있도록 함으로써 데이터 네트워크 노드에서 PDU가 폐기되는 경우를 감소시킨다.
본 발명의 또 다른 양상에 따르면, PDU 큐잉 메모리 기억부는 CoS PDU 큐잉부를 더 포함하고 있다. CoS PDU 큐잉부는, 복수의 예약 CoS 처리 큐로 다시 나누어진다. 각각의 CoS 처리 큐는 처리가 미해결 동안, QoS 보장을 위한 지원 제공시 데이터 네트워크 노드에서 지원되는 복수의 CoS 중 하나와 관련된 PDU들을 유지하고 있으며, 데이터 네트워크 노드에서의 데이터 흐름에 대한 최소한의 메모리 기억 자원을 이용할 수 있도록 보장해준다.
본 발명의 또 다른 양상에 따르면, PDU 큐잉 메모리 기억부는 공유 메모리-풀 부를 더 포함하고 있다. 공유 메모리-풀 부는, 처리가 미해결 동안, QoS 보장 제공시의 예약 데이터 속도 이상의 데이터 속도로 PDU들을 전달하는 데이터 흐름과 관련된 PDU들을 유지하고 있다.
본 발명의 또 다른 양상에 따르면, PDU 큐잉 메모리 기억부는 입력 포트 PDU 큐잉 부를 더 포함하고 있다. 입력 포트 PDU 큐잉 부는 복수의 예약 입력 포트 처리 큐로 다시 나누어진다. 각각의 입력 포트 처리 큐는, 처리가 미결인 동안, 데이터 네트워크 노드의 다수의 입력 데이터 포트 중 하나와 관련된 PDU들을 유지하고 있다. 복수의 입력 포트 처리 큐 각각은 해당되는 입력 포트를 통해 PDU들을 전달하는 데이터 흐름과 관련된 PDU들에 대한 부가적인 기억 장소를 제공한다. 블록킹에 대한 보호책은 다른 정체된 입력 포트를 통해 전달되는 오동작 데이터 흐름으로부터 입력 포트들을 통해 전달되는 데이터 흐름을 위해 제공된다.
본 발명의 또 다른 양상에 따르면, 데이터 네트워크 노드에서 PDU들을 처리하는 방법이 제공된다. 이 방법은 처리를 위한 큐잉에 앞서 데이터 네트워크 노드의 공유 메모리 버퍼의 예약된 임시 메모리 기억부에 수신된 PDU들을 일시 기억하는 단계를 포함하고 있다. 처리를 위한 큐잉에 앞서 임시 메모리 기억부에 수신된 PDU를 기억하면 헤더 검사를 인에이블시켜 PDU들의 폐기에 관한 적격 판정을 행할 수 있다.
본 발명의 또 다른 양상에 따르면, PDU들을 처리하는 방법은 추출된 헤더 정보에 유지되고 있는 CoS 사양에 따라 상응하는 CoS 처리 큐에 수신된 PDU들을 큐잉하는 것이다. CoS 처리 큐의 사용은 데이터 네트워크 노드에서의 데이터 흐름에 대한 최소한의 데이터 처리량을 보장해준다.
본 발명의 또 다른 양상에 따르면, PDU들을 처리하는 방법은 PDU들이 각각 수신되고 있는 입력 포트에 대응하고 있는 상응하는 입력 포트 처리 큐들에 수신된 PDU들을 큐잉시킨다. 입력 포트 처리 큐의 사용은 CoS PDU 큐잉 메모리 기억 자원으로 이루어지는 것이며, 공유 메모리-풀 부는 고갈되어 오동작하는 데이터 흐름이데이터 네트워크 노드에서의 메모리 기억 자원을 독점하는 것을 제한하게 된다. 이러한 방식은 입력 포트를 거쳐 전달되는 체계적으로 동작하는 데이터 흐름이 다른 입력 데이터 포트를 거쳐 전달되는 오동작하는 데이터 흐름으로 인해 블록킹되는 것을 방지한다.
본 발명의 여러 이점은 PDU 폐기에 동일하게 적용될 수 있는 버퍼 관리 기법과, 메모리 기억 장치의 필요 조건을 감소시키면서 블록킹이 발생하는 경우를 최소화시키는 흐름 제어 환경, 이들 두 케이스로부터 얻어지는 것이다. PDU 이후의 헤더들이 검사되기까지 PDU 폐기 결정을 지연시키기 위한 규정이 제공된다. 체계적으로 동작하는 데이터 흐름을 감당하는 입력 포트들이 차단(blocking)되는 것을 보호하기 위해 가능한 오래 동안 PDU 폐기 결정을 지연시키는 규정이 더 제공된다. 본 발명은 그 구현시 최소한의 메모리 기억 자원을 이용하는 방법을 제공한다.
<실시예>
본 발명의 특징과 그 이점은 첨부 도면을 참조한 바람직한 실시예의 상세한 기재로부터 보다 명확해진다.
당해 분야에서의 다양한 시도는 블록킹의 사례를 초래하는 데이터 교환 노드에서의 정체 상태를 유발하는 것이 아마도 "베스트 에포트" 데이터 트래픽임을 보여주고 있다. 데이터 교환 노드에서의 블록킹의 사례를 감소시키는 해결책으로서 메모리 기억 장치의 크기를 증가시키는 것은 불필요한 추가 비용과 단기간 이득에 대해 복잡한 문제를 유발시키는 것으로 나타나고 있다.
본 발명에 따르면, 데이터 교환 노드에서 PDU 폐기 사례를 최소화하는 해결책이, 그러한 사례가 드물다고 하는 가정하에, 메모리 기억 자원의 지능적 관리가 장기간 해결책이 된다는 것을 조건으로 하여 제공된다. 블록킹으로부터 체계적으로 동작하는 데이터 흐름을 보호하기 위해, PDU를 폐기하는 사례는 아마도 베스트 에포트 데이터 트래픽과 관련될 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 데이터 교환 노드에 의해 사용되는 분할된 공유 메모리 버퍼를 나타내는 개략도이다.
동작시, PDU가 데이터 교환 노드(도시 생략)에서 수신됨에 따라, 그 헤더 정보는 CoS 및/또는 관련 포워딩 우선 순위 등과 같은 관련 PDU 처리를 결정하기 위해 아직 검사되지는 않는다. 본 발명에 따르면, PDU를 드롭(drop) 할지의 결정은 적어도 헤더 정보가 데이터 교환 노드의 정체 상태에 상관없이 검사될 때 까지는 연기된다.
공유 메모리 버퍼(100)는, 바람직한 메모리 관리 기법에 따라, 예약 임시 메모리 기억부(102)와 PDU 큐잉 메모리 기억부(104)로 나누어진다. 임시 메모리 기억부(102)는 그 검사에 앞서 수신된 PDU들을 기억하는데 사용된다.
임시 메모리 기억부(102)의 크기는 데이터 교환 노드의 의도된 PDU 처리 속도로 유입 PDU들에 대한 기억 장소를 제공하도록 설계될 수 있다. 이러한 메모리 기억부의 필요한 메모리 크기에 대한 상위 바운드는 계산될 수 있는 것이며, 이에 따라 이 메모리 기억 자원은 결코 낭비되지 않는다.
본 발명의 또 다른 양상에 따르면, 데이터 교환 노드의 N개의 입력 포트 중적어도 하나가 조정 가능한 속도로의 전송을 위해 적절히 조절되며, 임시 메모리 기억부(102)의 크기가 이에 부합하여 수정될 수 있으므로, 데이터 교환 노드에서의 메모리 기억 자원을 최적으로 이용할 수 있게 된다.
임시 메모리 기억부(102)의 크기는 데이터 교환 노드와 관련된 관리 콘솔, 이 데이터 교환 노드의 재구성에 따라 행해지는 테이블 룩업 액세스, 상위 레벨 프로토콜 등을 통해, 본 발명의 취지를 벗어나지 않으면서 수동으로 수정될 수도 있다.
임시 메모리 기억부(102)에 기억된 PDU들을 검사하는 경우, 헤더 정보가 그 기억부로부터 추출되며, 헤더 정보는 PDU가 수신되는 입력 포트 목적지, 국한되는 것은 아니지만, CoS 및/또는 PDU의 처리시 사용될 포워딩 우선 순위, 목적지 데이터 네트워크 노드 식별자, PDU의 크기, PDU에 의해 전달되는 페이로드의 크기 등과 같은 PDU 처리에 필요한 취급 사항(processing treatments)을 포함하고 있다.
본 발명은 앞서 기술한 추출된 헤더 정보의 처리에만 국한되는 것은 아니며; 당해 분야의 숙련된 자라면, 본 발명의 취지를 벗어나지 않으면서, 다양한 파라미터들을 헤더 정보로부터 추출하여 데이터 교환 노드에서 PDU의 처리시 필요에 따라 이용할 수 있다는 것을 인식할 것이다.
바람직한 PDU 교환 처리의 상세를 나타내는 서브 프로세스가 도 2를 참조하여 본 명세서에서 소개되고 있으며, 이러한 처리는 유입 PDU들에 적용된다.
상기한 바람직한 메모리 관리 방식에 따르면, PDU 큐잉 메모리 기억부(104)는 예약 CoS PDU 큐잉 메모리 기억부(106)를 포함하고 있다.
CoS PDU 큐잉부(106)는 예약 CoS PDU 처리 큐(108)를 정의하는 부분으로 더 나누어지며; 각각의 CoS 처리 큐(108)는 데이터 교환 노드에서 지원되는 M개의 CoS 중 대응하는 하나와 연관되어 있다.
본 발명의 구현에 따르면, CoS와 관련되지 않은 데이터 흐름은 베스트 에포트 트래픽으로서 디폴트로 분류되고, CoS 처리 큐(108) 예를 들어, MthCoS 처리 큐(108)를 통해 처리된다.
헤더 정보의 추출에 이어, 임시 메모리 기억부(102)에 기억된 PDU들은 메모리 기억 공간이 이용가능한 상태라면 대응하는 CoS 처리 큐(108)와 관련된다. 각각의 CoS 처리 큐(108)는 데이터 교환 노드에서 지원되는 대응하는 CoS와 관련된 데이터 처리량을 수용하도록 설정된 관련 메모리 크기를 갖는다.
각각의 데이터 흐름이 관련 CoS를 가짐에 따라, 그 흐름은 데이터 전송부와도 연관된다. 각각의 데이터 전송부는 시간의 주기로 정의된다. 데이터 교환 노드에서의 메모리 자원의 효율적인 사용은 주의 깊은 배분(allotment)을 요구하고 있다. CoS 처리 큐(108)의 메모리 크기가 조정될 수 있는 방식은 국한되는 것은 아니지만, 데이터 교환 노드와 관련된 관리 콘솔의 사용과, QoS 보장을 강제하는 상위 레벨 프로토콜 등을 포함하고 있다.
QoS 보장에 따라 전달되는 데이터 흐름은 미리 정의된 최소의, 유지 가능한 최대 전송 데이터 속도를 갖는다. 통상 데이터 전송부의 구성에 대해, 데이터 교환 노드는 메모리 자원을 포함한 자원들을 예약하며, 최소한의 보장된 전송 데이터속도 사양에 따라, 어떠한 환경하에서나 처리량을 보장할 수 있다. 최대 데이터 전송 속도는 단기간 데이터 버스트 크기 제한을 특정하고 있으며, 유지 가능한 데이터 전송 속도는 자원의 이용가능성을 추정하는 장기간 최대 전송 속도를 나타낸다. 데이터 흐름은 체계적으로 동작하는 것으로 생각되지만, CoS 처리 큐(108) 예약부 이외에 메모리 기억 자원의 이용을 필요로 할 수도 있는 유지가능한 전송 속도나 혹은 그 이하의 속도로 전송된다.
CoS 처리 큐(108)의 예약은 데이터 교환 노드에서의 정체 상태의 원인이 되는 낮은 포워딩 우선 순위나 베스트 에포트 PDU들로 하여금 이용가능한 전체 메모리 기억 자원을 독점할 수 없도록 한다. CoS 처리 큐(108)를 통한 베스트 에포트 데이터 트랙픽의 처리는 이 처리에 할당되는 처리량이 최저가 되도록 해준다.
본 발명의 바람직한 구현에 따르면, CoS 처리 큐(108)에 기억된 PDU들은 그 나름대로 분류되고 있다. PDU들을 분류하는 다양한 방법이 CoS 처리 큐(108)에 기억되는 PDU와 그 각각이 연관되는 CoS 처리 큐 기억 비트의 바람직한 이용과 표명(assertion)을 포함하여 본 발명의 취지를 벗어나지 않으면서 이용될 수도 있다.
상기한 바람직한 메모리 관리 기법에 따르면, PDU 큐잉 부(104)는 공유 메모리-풀 부(110)를 더 포함하고 있다.
공유 메모리-풀 부(110)는 CoS 처리 큐(108)의 개별적인 점유 레벨이 각각의 메모리 할당을 초과함에 따라 오버플로우로서 사용된다.
본 발명의 또 다른 구현에 따르면, 베스트 에포트 데이터 트래픽은 CoS 처리큐(108)에 대해 예약된 자원들을 사용하지 않고 공유 메모리-풀 부(110)를 통해 주로 처리된다.
상기한 바람직한 메모리 관리 기법에 따르면, PDU 큐잉 메모리 기억부(104)는 예약된 입력 포트 메모리 기억부(112)를 더 포함한다. 입력 포트 메모리 기억부(112)는 예약 입력 포트 PDU 처리 큐(114)로 분할되며, 입력 포트 처리 큐(114)는 데이터 교환 노드의 N개의 입력 포트 중 각각에 대한 것이다. CoS 처리 큐(108)와 마찬가지로, 입력 포트 처리 큐(114)는 입력 포트를 통해 전달되는 체계적으로 동작하는 데이터 트래픽 흐름이 또다른 입력 포트를 통해 전달되는 오동작 데이터 트래픽 흐름으로 인해 차단되는 것을 방지한다.
입력 포트 처리 큐(114)는 공유 메모리-풀 부(108)가 사용됨에 따라 오버플로우 메모리 기억 공간으로 사용된다.
각각의 입력 포트 처리 큐(114)는 관련된 메모리 크기를 갖는다. 각각의 입력 포트 처리 큐(114)의 메모리 크기는 데이터 교환 노드에서의 PDU 폐기 사례를 최소화하도록 수정될 수 있다. 메모리 크기의 수정은 데이터 교환 노드와 관련된 관리 콘솔, 이 데이터 교환 노드에서의 흐름 제어를 강제하는 상위 레벨 프로토콜, QoS 보장을 강제하는 상위 레벨 프로토콜 등을 통해 수동으로 실행될 수도 있다.
입력 포트 처리 큐(114)가 채워짐에 따라, 대응하는 입력 포트를 통해 전달되는 데이터 흐름과 관련하여 연속적으로 도달하는 PDU들만이 다른 입력 포트들이 블록킹 상태를 겪는 것을 방지하기 위해 폐기된다.
흐름 제어의 제공시, 각각의 입력 포트 처리 큐(114)는 관련 하위 워터마크레벨(LW)(116)과 상위 워터마크 점유 레벨(HW)(118)을 갖는다. 이하, 데이터 흐름 제어를 실행하는 방법을 도 4를 참조하여 설명한다.
본 발명의 바람직한 실시예에 따르면, 공유 메모리 버퍼(100)의 분할은 가상적인 것(virtual)이며, 메모리 크기 레지스터와, 얼마나 많은 메모리 기억 공간이 각각의 처리 큐와 임시 메모리 기억 부(102)에 언제라도 할당되는 지를 나타내는 메모리 할당 카운터를 통해 유지된다. 공유 메모리-풀 부(110)의 크기는 공유 메모리 버퍼(100)의 리마인더를 만회한다.
일단 공유 메모리 버퍼(100)에 기억되면, PDU들은 임시 메모리 기억부(102)와 연관되며, 이 임시 메모리 기억부(102)에 기억되는 PDU들로 갱신되는 상기한 메모리 할당 카운터를 통한 다양한 처리 큐가 공유 메모리-풀 부(110)와 PDU 큐잉 메모리 기억부(104)와 연관된다.
도 2는 본 발명의 바람직한 실시예에 따른, 입력 포트를 통한 PDU 수신시 데이터 교환 노드에 의해 수행되는 처리 단계를 나타내는 흐름도이다.
PDU는 단계 202에서 입력 포트를 통해 수신되고, 임시 메모리 기억부(102)내 공유 메모리 버퍼(100)의 일부가 PDU를 위해 예약되고 (단계 204), 그 PDU가 버퍼 내에 기억된다 (단계 206). 기억된 PDU는 헤더 정보의 추출을 위해 단계 208에서 검사된다. CoS 사양 및/또는 PDU와 관련된 포워딩 우선 순위 사양 등과 같은 PDU 취급이 단계 210에서 결정된다. PDU 처리는 PDU의 큐잉과 함께 계속된다.
도 3은 본 발명의 바람직한 실시예에 따른 수신 PDU의 큐잉시 데이터 교환 노드에 의해 수행되는 처리 단계를 나타내는 흐름도이다.
수신된 PDU의 큐잉시, 처리는 대응하는 CoS 처리 큐가 풀(full) 상태인지를 체크한다 (단계 302).
대응하는 CoS 처리 큐(108)가 풀이 아니면, 이어서 메모리 기억 공간이 예약되고 (단계 304), PDU가 CoS 처리 큐(108)에 기억된다 (단계 306). 단계 308에서, PDU가 대응하는 CoS 처리 큐(108)에 기억됨에 따라, PDU는 나름대로 PDU와 관련된 CoS 처리 큐 기억 비트를 표명함으로써 구별된다. 임시 메모리 기억부(102)에 사용되는 대응하는 기억 공간은 임시 메모리 기억부(102)로 복귀된다 (단계 316).
만일 단계 302에서, 대응하는 CoS 처리 큐가 풀이라면, 이어서 처리는 공유 메모리-풀 부(110)에 이용가능한 기억 공간이 있는지를 체크한다 (단계 310).
공유 메모리-풀 부(110)에 이용가능한 메모리 기억 공간이 있다면, 공유 메모리-풀 부(110)에 메모리 기억 공간을 예약하고 (단계 312), 공유 메모리-풀 부에 PDU를 기억하며 (단계 314), 유지되고 있는 임시 메모리 기억 공간을 임시 메모리 기억부(102)로 복귀시킴으로써 (단계 316) 처리가 계속된다. 이 처리는 PDU의 교환과 함께 지속된다.
도 4는 본 발명의 바람직한 실시예에 따른 흐름 제어시 데이터 교환 노드에 의해 수행되는 처리 단계를 나타내는 흐름도이다.
단계 310에서 공유 메모리-풀 부(110)가 풀 상태인 것으로 판명되면, 단계 400에서는 흐름 제어가 데이터 교환 노드에서 활성인지가 체크된다.
흐름 제어가 활성이면, 단계 402에서, 처리는 PDU가 수신되는 입력 포트와 연관된 입력 포트 처리 큐(114)의 점유가 대응하는 하위 워터마크 레벨(116) 이하인지를 체크한다.
입력 포트 처리 큐(114)의 점유가 하위 워터마크 레벨(116) 이하이면, 이어서 단계 404에서는 중지 명령이 효력이 있는지가 체크된다.
중지 명령이 효력이 있는 것으로 단계 404에서 판명되면, 단계 406에서는 중지 명령 상태를 취소하게 되고, 단계 408에서는 입력 포트 처리 큐(114)내 메모리 기억 공간을 예약하며, 입력 포트 처리 큐내에 PDU를 기억하고 (단계 410), PDU에 의해 유지되고 있는 메모리 기억 자원을 임시 메모리 기억부(102)로 되돌려 단계 316부터 재개한다.
단계 404에서 중지 명령이 효과적인 것으로 판명되지 않으면, 처리는 단계 408부터 재개된다.
단계 402에서 입력 포트 처리 큐(114)의 점유가 발견되고, 하위 워터마크(116) 이상인 것으로 판명되면, 단계 412에서는 입력 포트 처리 큐(114)의 점유가 상위 워터마크(118) 이상인지를 체크한다.
흐름 제어 처리 큐(114)의 점유 레벨이 상위 워터마크(118) 이상인 것으로 판명되지 않으면, 입력 포트 처리 큐(114)내 수신 PDU에 대한 기억 공간 예약시의 단계 408부터 처리가 재개된다.
단계 412에서 점유 레벨이 상위 워터마크(118) 이상인 것으로 판명되면, 중지 명령이 효력이 있는지를 체크하는 처리가 단계 414에서 이루어진다.
단계 414에서 중지 명령이 효과적인 것으로 발결되면, 입력 포트 처리 큐(114)가 풀인지를 체크하는 처리가 단계 420에서 이루어진다.
입력 포트 처리 큐(114)가 풀이 아니면, 처리는 단계 408부터 계속된다.
단계 420에서 흐름 제어 처리 큐(114)가 풀인 것으로 발견되면, 처리는 단계 422에서 PDU를 폐기함으로써 지속된다.
단계 414에서 중지 명령이 효과적인 것으로 판명되지 않으면, 단계 416에서는 중지 명령 상태를 활성화시키고, 수신된 PDU와 관련되는 관련 입력 포트를 통해 데이터 교환 노드의 중지 명령 업스트림을 전송하여 (단계 418), 그것을 통해 전달되는 데이터 흐름을 조정한다. 처리는 흐름 제어 처리 큐(114)에 수신된 PDU를 기억하려는 시도의 단계 420부터 재개된다.
흐름 제어가 데이터 교환 노드에서 강제되지 않는다면, 처리는 단계 420부터 재개된다.
상술한 흐름 제어를 트리거링하는 방법은 중지 명령 상태의 표명을 지연시키고, 일단 표명되면, 흐름 제어 처리 큐(114)의 대부분이 해제(히스테리시스)될 때까지는 그 리세팅을 지연시킨다.
하나의 점유 레벨 임계치의 사용을 포함한 흐름 제어를 트리거링하는 방법이 본 발명의 취지를 벗어나지 않고 사용될 수도 있다.
도 5는 본 발명의 바람직한 실시예에 따른 큐된 PDU의 교환시 데이터 교환 노드에 의해 수행되는 처리 단계를 나타내는 흐름도이다.
큐된 PDU들의 교환시, 단계 502에서는 교환할 PDU를 선택하는 처리가 수행된다. 포워딩 우선 순위 처리를 위한 지원을 포함한, 교환을 위해 PDU를 선택하는 여러 방법이 존재하고 있지만, 본 발명의 설명 범위 밖이다. 단계 504에서는 PDU를 교환할 출력 포트를 결정하며, 단계 506에서는 전송을 위해 교환된 PDU의 스케쥴을 잡는다. 처리는 PDU의 전송과 함께 지속된다.
도 6은 본 발명의 바람직한 실시예에 따른 큐된 PDU의 전송시 데이터 교환 노드에 의해 수행되는 처리 단계를 나타내는 흐름도이다.
단계 602에서 PDU가 선택되고, 단계 604에서 전송된다. 도시된 전송 서브 프로세스(600)가 간략히 예시되어 있다. 당해 분야의 숙련된 자라면, 본 발명의 취지를 벗어나지 않으면서, 전송 서브프로세스가, 멀티 캐스팅시 데이터 트래픽을 복제하기 위한 흐름 제어, 규정을 추가로 강제하는 단계와; 데이터 요약화 등과 같은 단계를 더 포함할 수도 있음을 이해할 것이다. PDU 전송이 완료되는 대로, PDU는 디큐잉을 위해 플래그된다.
도 7은 본 발명의 바람직한 실시예에 따른 전송 PDU의 디큐잉시 데이터 교환 노드에 의해 수행되는 처리 단계를 나타내는 흐름도이다.
전송 PDU의 디큐잉시(702), 예약 메모리 기억 공간이 단계 704에서 해제된다. 처리 큐(108, 104)는 상기한 메모리 크기 레지스터를 통해 특정되는 소정의 메모리 크기와 상기한 메모리 할당 카운터를 통해 특정되는 점유 레벨을 갖는다.
CoS 처리 큐 기억 비트가 설정되면 (단계 706), 이어서 해제된 메모리 기억 공간은 전송된 PDU에 대응하는 CoS 처리 큐(108)에 반환(return)된다 (단계 708).
CoS 처리 큐 기억 비트가 설정되지 않으면 (단계 706), 이어서, 단계 710에서는 전송 PDU가 수신되는 입력 포트에 대응하는 처리 큐(114)의 입력 포트의 점유가 검사된다.
점유 레벨이 0 이상이면, 이어서 해제된 기억 공간은 단계 712에서 입력 포트 처리 큐(114)에 반환된다.
대응하는 입력 포트 처리 큐(114)의 점유가 0이면, 이어서, 처리는 해제된 메모리 기억 공간을 공유 메모리-풀 부(110)로 복귀시킨다 (단계 714).
본 발명의 추가적인 상세는 다음의 부기(附記)를 참조하여 소개된다.
이상 소개된 본 발명의 실시예는 단지 예시적인 것일 뿐이므로, 당업자라면 본 발명의 취지를 벗어나지 않는 변형실시가 행해질 수 있음을 인식할 것이다. 본 발명의 범위는 첨부한 청구범위에 의해서만 제한되는 것이다.
<부기>
버퍼 공간으로의 입출입
패킷은 다음의 서열에 기초하여 버퍼에 할당된다.
1. 클래스당 예약된 버퍼 (Per-class reserved buffer)
2. 공유풀 버퍼 (Shared pool buffer)
3. 포트당 예약된 버퍼 (Per-port reserved buffer)
즉, 가능하다면, 패킷의 트래픽 클래스에 대응하는 메모리의 예약 영역에 패킷이 기억된다. 그 영역이 풀이면, 패킷은 공유 풀내에 위치하는 어느 버퍼에나 기억될 수도 있다. 최종 수단(last resort)으로서, 클래스당 예약 버퍼와 공유 풀 버퍼 모두가 완전히 점유되면, 이어서 패킷은 패킷의 소스 포트에 대응하는 메모리의 예약부에 기억될 수도 있다. 버퍼 스페이스의 특정 영역에 패킷을 기억하는 것은 적절한 버퍼 카운터를 증가시킴으로써 구현되어 새로운 점유를 나타낸다.
버퍼 관리 기법의 작업을 위해서는, 패킷은 클래스당 예약 버퍼에 프레임이 기억되었는지를 나타내는 비트를 운반해야한다.
전송 후, 각 버퍼부의 점유는 갱신되어야 한다. 벗어난 패킷(departing packet)이 클래스당 예약 버퍼에 기억되면, 적절한 클래스당 버퍼 카운터는 감소되어야 한다. 한편, 벗어난 패킷이 클래스당 예약 버퍼에 기억되지 않으면, 물론, 적절한 포트당 버퍼 카운터나 공유 풀 카운터 중 어느 하나가 감소될 필요가 있다. 버퍼는 다음의 서열에 기초하여 복귀되어야 한다.
1. 포트당 예약 버퍼 (Per-port reserved buffer)
2. 공유 풀 버퍼 (Shared pool buffer)
가능하다면, 패킷은 포트당 예약 버퍼 풀 대신에 공유 버퍼 풀에 기억되어야 함에 주목한다. 대조적으로, 가능하다면, 패킷은 공유 버퍼 풀 대신에 포트당 예약 버퍼 풀로 반환되어야 한다. 더욱이, 소스 포트의 예약 버퍼는 최종 수단으로는 드물게 사용되므로, 가능한한 빨리 복귀되어야 한다.
드롭핑과 흐름 제어 (Dropping and Flow Control)
버퍼 관리 룰에 따르면, 만일 공유 풀과 예약 풀이 모두 사용 중이기 때문에 패킷이 갈곳이 없다면, 그 패킷은 드롭된다.
동일한 방식이 흐름 제어에 이용될 수 있다. 흐름 제어는 포트의 소스당 예약 버퍼가 특정 임계치 이하로 떨어질 때 트리거될 수 있다. 소스당 예약 버퍼는 최종 수단으로서만 이용되기 때문에, 그 방식은 흐름 제어의 트리거링을 가능한 적게할 수 있다는 이점을 갖고 있다.
본 발명에 따르면, 예약 영역들은 각각의 데이터 흐름이나 CoS에 대한 소량의 버퍼 공간을 보장하게 되므로, 정체 상태 하에서도, 체계적으로 동작하는 흐름에 대한 보증된 버퍼 공간을 갖게 되며, 블록킹이 발생하는 상황을 최저 수준으로 줄일 수 있다.

Claims (37)

  1. 복수의 데이터 포트간에 PDU(프로토콜 데이터 유닛;Protocol Data Units) - 각각의 PDU는 헤더 정보가 기억되는 헤더와 전달될 데이터의 적어도 일부가 기억되는 페이로드를 가짐 - 를 교환하는 데이터 네트워크 노드에 있어서, 상기 데이터 네트워크 노드는
    a. PDU들을 교환하는 프로세서와;
    b. 공유 메모리 버퍼
    를 포함하되,
    상기 공유 메모리 버퍼는
    i. 큐잉에 앞서 헤더 정보의 예비 검사가 미결인 동안, 복수의 데이터 포트의 입력 포트를 통해 수신된 PDU들을 유지하기 위한 예약 임시 메모리 기억부와;
    ii. 상기 복수의 데이터 포트 중에서 PDU가 교환될 적어도 하나의 출력 포트 결정시 처리가 미결인 PDU들을 유지하기 위한 PDU 큐잉 메모리 기억부를 포함하고,
    이러한 방식은 그 큐잉에 앞서 오동작하는 데이터 흐름과 관련된 PDU들 중에서 체계적으로 동작하는 데이터 흐름과 관련된 PDU들을 식별할 수 있도록 함으로써 데이터 네트워크 노드에서 PDU가 폐기되는 경우를 감소시키는 것을 특징으로 하는 데이터 네트워크 노드.
  2. 제1항에 있어서, 상기 임시 메모리 기억부는 상기 데이터 네트워크 노드에서의 PDU의 처리량을 수용하도록 설계된 메모리 크기를 갖는 것을 특징으로 하는 데이터 네트워크 노드.
  3. 제2항에 있어서, 상기 임시 메모리 기억부의 메모리의 크기는 고정되며 설계된 데이터 처리량을 수용하는 것을 특징으로 하는 데이터 네트워크 노드.
  4. 제2항에 있어서, 상기 임시 메모리 기억부의 메모리 크기는 조절가능하며 상기 데이터 네트워크 노드에서 전달되는 데이터 처리량을 수용하고, 상기 데이터 네트워크 노드는 조절가능한 데이터 전달 속도를 갖는 적어도 하나의 데이터 포트를 더 포함하는 것을 특징으로 하는 데이터 네트워크 노드.
  5. 제4항에 있어서, 임시 메모리 기억부의 메모리 크기는 상기 데이터 네트워크 노드와 관련된 관리 콘솔을 통해 수정되는 것을 특징으로 하는 데이터 네트워크 노드.
  6. 제4항에 있어서, 상기 임시 메모리 기억부의 메모리 크기는 조절 가능한 데이터 전송 속도를 갖는 적어도 하나의 데이터 포트의 데이터 전송 속도의 수정에 이어 테이블 룩업을 통해 갱신되는 것을 특징으로 하는 데이터 네트워크 노드.
  7. 제4항에 있어서, 상위 레벨 프로토콜은 상기 데이터 네트워크 노드에서의 데이터 처리량을 모니터하고, 상기 데이터 네트워크 노드의 집합 데이터 처리 속도에 관하여 상기 임시 메모리 기억부의 메모리 크기를 조절하는 것을 특징으로 하는 데이터 네트워크 노드.
  8. 제1항에 있어서,
    상기 PDU 큐잉 메모리 기억부는 복수의 예약 CoS 처리 큐를 포함하는 CoS PDU 큐잉부를 더 포함하고, 각각의 CoS는, 처리가 미결인 동안, 상기 데이터 네트워크 노드에서의 데이터 흐름에 대한 최소한의 메모리 기억 자원을 이용할 수 있도록 하는 QoS 보장을 위한 지원 제공시 상기 데이터 네트워크 노드에서 지원되는 복수의 CoS 중 하나와 관련된 PDU들을 유지하고 있는 것을 특징으로 하는 데이터 네트워크 노드.
  9. 제8항에 있어서, CoS 처리 큐는 처리가 진행되는 동안, 특정 CoS가 없는 PDU들(베스트 에포트 데이터 트래픽 PDU들)을 기억하도록 지명되는 것을 특징으로 하는 데이터 네트워크 노드.
  10. 제8항에 있어서, 적어도 하나의 CoS 처리 큐는 조정 가능한 메모리 크기를 갖는 것을 특징으로 하는 데이터 네트워크 노드.
  11. 제10항에 있어서, 적어도 하나의 CoS 처리 큐의 메모리 크기는 관리 콘솔 및 QoS 보장을 강제하는 상위 레벨 프로토콜 중 하나를 통해 수정되는 것을 특징으로 하는 데이터 네트워크 노드.
  12. 제8항에 있어서, 상기 데이터 네트워크 노드는 복수의 CoS 처리 큐 기억 비트를 더 포함하고, 각각의 CoS 처리 큐 기억 비트는 CoS 처리 큐내에 기억되는 PDU와 관련되는 것을 특징으로 하는 데이터 네트워크 노드.
  13. 제1항에 있어서, 상기 PDU 큐잉 메모리 기억부는 처리가 미결인 동안, QoS 보장 제공시 예약된 데이터 속도 이상의 데이터 속도로 PDU들을 전달하는 데이터 흐름과 관련된 PDU들을 유지하는 공유 메모리-풀 부를 더 포함하는 것을 특징으로 하는 데이터 네트워크 노드.
  14. 제13항에 있어서, 상기 공유 메모리-풀 부는 처리가 미결인 동안 특정 CoS없이 PDU들(베스트 에포트 데이터 트래픽)을 추가로 유지하는 것을 특징으로 하는 데이터 네트워크 노드.
  15. 제1항에 있어서, 상기 PDU 큐잉 메모리 기억부는 처리가 미결인 동안, 입력 포트를 통해 PDU들을 전달하는 데이터 흐름과 관련된 PDU들을 위한 추가 기억 장소를 제공하는 데이터 네트워크 노드의 다수의 입력 데이터 포트 중 하나와 관련된 PDU들을 유지하는 복수의 예약 입력 포트 처리 큐를 포함하는 입력 포트 PDU 큐잉 부를 더 포함하고, 다른 정체된 입력 포트를 통해 전달되는 오동작 데이터 흐름 중에서 입력 포트를 통해 전달되는 데이터 흐름에 블록킹이 제공되는 것을 방지하는 것을 특징으로 하는 데이터 네트워크 노드.
  16. 제15항에 있어서, 적어도 하나의 입력 포트 처리 큐는 조절가능한 메모리 크기를 갖는 것을 특징으로 하는 데이터 네트워크 노드.
  17. 제16항에 있어서, 적어도 하나의 입력 포트 처리 큐의 메모리 크기는 관리 콘솔, QoS 보장을 강제하는 상위 레벨 프로토콜, 및 흐름 제어를 강제하는 상위 레벨 프로토콜 중 하나를 통해 수정되는 것을 특징으로 하는 데이터 네트워크 노드.
  18. 제15항에 있어서, 각각의 입력 포트 처리 큐는 입력 포트 흐름 제어 실행시 입력 포트 흐름 제어 처리 큐의 점유 레벨에 대한 비교를 위한 관련 상위 워터마크 레벨을 갖는 것을 특징으로 하는 데이터 네트워크 노드.
  19. 제18항에 있어서, 적어도 하나의 상위 워터마크 레벨이 조정가능한 것을 특징으로 하는 데이터 네트워크 노드.
  20. 제19항에 있어서, 상기 상위 워터마크 레벨의 값은 관리 콘솔, QoS 보장을 강제하는 상위 레벨 프로토콜, 및 흐름 제어를 강제하는 상위 레벨 프로토콜 중 하나를 통해 수정되는 것을 특징으로 하는 데이터 네트워크 노드.
  21. 제18항에 있어서, 각각의 입력 포트 처리 큐는 입력 포트 흐름 제어 실행시 입력 포트 처리 큐의 점유 레벨에 대한 비교를 위해 관련 하위 워터마크 레벨을 갖는 것을 특징으로 하는 데이터 네트워크 노드.
  22. 제21항에 있어서, 적어도 하나의 하위 워터마크 레벨이 조절 가능한 것을 특징으로 하는 데이터 네트워크 노드.
  23. 제22항에 있어서, 상기 하위 워터마크 레벨의 값은 관리 콘솔, QoS 보장을 강제하는 상위 레벨 프로토콜, 및 입력 포트 흐름 제어를 강제하는 상위 레벨 프로토콜 중 하나를 통해 수정되는 것을 특징으로 하는 데이터 네트워크 노드.
  24. 프로세서 교환 PDU들과 공유 메모리 버퍼를 갖는 데이터 네트워크 노드에서 PDU(Protocol Data Units)를 처리하는 방법에 있어서, 상기 방법은
    a. 데이터 네트워크 노드의 입력 포트를 통해 PDU를 수신하는 단계와;
    b. 공유 메모리 버퍼의 예약된 임시 메모리 기억부에 수신된 PDU를 임시로 기억하는 단계와;
    c. 상기 기억된 PDU로부터 헤더 정보를 추출하는 단계와;
    d. 처리를 위해 상기 PDU를 선택적으로 큐잉하는 단계와;
    e. 상기 PDU를 교환하는 단계와;
    f. 상기 데이터 네트워크 노드의 출력 데이터 포트를 통해 PDU를 전송하는 단계; 및
    g. 상기 전송된 PDU에 의해 사용되는 자원들을 할당해제하는 단계
    를 포함하고,
    헤더의 검사에 앞서 상기 임시 메모리 기억부의 수신된 PDU의 기억을 PDU들의 폐기시 행해질 적격 판정을 위해 제공하는 것을 특징으로 하는 PDU 처리 방법.
  25. 제24항에 있어서, 메모리 기억 자원이 처리를 위한 PDU의 큐잉에 이용가능하지 않다면 PDU를 폐기하는 단계를 더 포함하는 것을 특징으로 하는 PDU 처리 방법.
  26. 제24항에 있어서,
    상기 공유 메모리 기억부는 PDU 큐잉 메모리 기억부를 더 포함하고, 상기 PDU 큐잉 메모리 기억부는 CoS PDU 메모리 기억부를 더 포함하며, 상기 CoS PDU 메모리 기억부는 상기 데이터 네트워크 노드에서 지원되는 CoS의 그룹과 관련된 복수의 CoS 처리 큐를 더 포함하며, 처리를 위해 PDU를 선택적으로 큐잉하는 단계를 더포함하고, 상기 방법은
    CoS 처리 큐가 풀 상태가 아니라면 추출된 헤더 정보에 유지되고 있는 CoS 사양에 따라 대응하는 CoS 처리 큐에 PDU를 큐잉하는 단계를 포함하는 것을 특징으로 하는 PDU 처리 방법.
  27. 제26항에 있어서, 대응하는 CoS 처리 큐에 PDU를 큐잉하고, 상기 방법은 규잉된 각각의 PDU에 대응하는 관련 CoS 처리 큐 기억 비트를 설정하는 단계를 더 포함하는 것을 특징으로 하는 PDU 처리 방법.
  28. 제26항에 있어서, 상기 PDU 큐잉 메모리 기억부는 공유 메모리-풀 부를 더 포함하고, 처리를 위해 PDU를 선택적으로 큐잉하는 단계를 더 포함하며,
    상기 방법은 PDU에 대응하는 CoS 처리 큐가 풀 상태라면 공유 메모리-풀 부에 PDU를 큐잉하는 단계를 더 포함하는 것을 특징으로 하는 PDU 처리 방법.
  29. 제28항에 있어서, 상기 공유 메모리-풀 부에 특정 CoS(베스트 에포트 데이터트래픽) 없이 PDU들을 우선적으로 큐잉하는 단계를 더 포함하는 것0을 특징으로 하는 PDU 처리 방법.
  30. 제28항에 있어서, 상기 PDU 큐잉 메모리 기억부는 입력 포트 PDU 큐잉 기억부를 더 포함하고, 이 입력 포트 PDU 큐잉 기억부는 복수의 입력 포트 처리 큐를 더 포함하며, 각각의 입력 포트 처리 큐는 상기 데이터 네트워크 노드의 입력 포트와 관련되며, 처리를 위해 PDU를 선택적으로 큐잉하는 단계를 더 포함하고,
    상기 방법은 공유 메모리-풀 자원이 고갈되었다면 PDU가 수신되는 입력 포트에 대응하는 입력 포트 처리 큐에 PDU를 큐잉하는 단계를 더 포함하는 것을 특징으로 하는 PDU 처리 방법.
  31. 제30항에 있어서, 입력 포트 흐름 제어를 강제하는 단계를 더 포함하는 것을 특징으로 하는 PDU 처리 방법.
  32. 제31항에 있어서, 상기 입력 포트의 흐름 제어를 강제하는 단계에서, 각각의 입력 포트 큐는 입력 포트 처리 큐의 점유 레벨이 흐름 제어의 실행시 비교되는 것에 대한 관련 상위 워터마크 레벨을 갖는 것을 특징으로 하는 PDU 처리 방법.
  33. 제31항에 있어서, 상기 입력 포트의 흐름 제어를 강제하는 단계에서, 각각의 입력 포트 흐름 제어 큐는 입력 포트 처리 큐의 점유 레벨이 데이터 네트워크 노드의 정체 상태의 클리어시와 비교되는 것에 대한 관련 하위 워터마크 레벨을 갖는 것을 특징으로 하는 PDU 처리 방법.
  34. 제24항에 있어서, 전송된 PDU에 의해 사용되는 자원을 할당해제되며, 상기 방법은 PDU가 처리를 위해 큐잉되었다면 해제된 메모리 공간을 CoS 처리 큐에 반환하는 것을 특징으로 하는 PDU 처리 방법.
  35. 제34항에 있어서, 상기 해제된 메모리 공간을 CoS 처리 큐에 반환하며, 상기 방법은 상기 전송된 PDU와 관련된 CoS 처리 큐 기억 비트가 미리 설정되었는지를 결정하는 단계를 더 포함하는 것을 특징으로 하는 PDU 처리 방법.
  36. 제30항에 있어서, 상기 전송된 PDU에 의해 사용된 자원이 할당 해제되며, 상기 방법은 그 점유 레벨이 제로가 아니라면 해제된 메모리 공간을 대응하는 입력 포트 처리 큐에 반환하는 단계를 더 포함하는 것을 특징으로 하는 PDU 처리 방법.
  37. 제36항에 있어서, 전송된 PDU에 의해 사용되는 메모리 자원을 할당 해제하고, 상기 방법은 대응하는 흐름 제어 처리 큐 점유 레벨이 제로이면 해제된 메모리 공간을 공유 메모리-풀 부에 반환하는 단계를 더 포함하는 것을 특징으로 하는 PDU 처리 방법.
KR10-2001-0059077A 2000-09-29 2001-09-24 서비스 품질 보증을 지원하기 위한 버퍼 관리 방법과데이터 교환시의 데이터 흐름 제어 방법 KR100407039B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US23616800P 2000-09-29 2000-09-29
US60/236,168 2000-09-29
US09/935,533 2001-08-23
US09/935,533 US6999416B2 (en) 2000-09-29 2001-08-23 Buffer management for support of quality-of-service guarantees and data flow control in data switching

Publications (2)

Publication Number Publication Date
KR20020025722A KR20020025722A (ko) 2002-04-04
KR100407039B1 true KR100407039B1 (ko) 2003-11-28

Family

ID=22888403

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0059077A KR100407039B1 (ko) 2000-09-29 2001-09-24 서비스 품질 보증을 지원하기 위한 버퍼 관리 방법과데이터 교환시의 데이터 흐름 제어 방법

Country Status (5)

Country Link
US (1) US6999416B2 (ko)
KR (1) KR100407039B1 (ko)
CN (1) CN100401791C (ko)
CA (1) CA2355473A1 (ko)
TW (1) TW522675B (ko)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3566218B2 (ja) * 2001-02-19 2004-09-15 株式会社東芝 Bluetoothネットワーク通信方法およびシステム
US7899067B2 (en) * 2002-05-31 2011-03-01 Cisco Technology, Inc. Method and apparatus for generating and using enhanced tree bitmap data structures in determining a longest prefix match
US7224670B2 (en) * 2002-06-03 2007-05-29 International Business Machines Corporation Flow control in computer networks
JP4206707B2 (ja) * 2002-08-27 2009-01-14 株式会社日立製作所 通信品質設定装置、方法及びプログラム
US20040047367A1 (en) * 2002-09-05 2004-03-11 Litchfield Communications, Inc. Method and system for optimizing the size of a variable buffer
US7783759B2 (en) * 2002-12-10 2010-08-24 International Business Machines Corporation Methods and apparatus for dynamic allocation of servers to a plurality of customers to maximize the revenue of a server farm
KR100927313B1 (ko) 2003-01-24 2009-11-18 주식회사 케이티 이더넷 서비스의 대역폭 제어 장치 및 그 방법
AU2003202593A1 (en) * 2003-01-28 2004-08-23 Telefonaktiebolaget Lm Ericsson (Publ) Method and device for congestion notification in packet networks indicating several different congestion causes
WO2005048533A1 (en) * 2003-11-05 2005-05-26 Interdigital Technology Corporation Quality of service management for a wireless local area network
CN101116274B (zh) * 2004-12-27 2011-07-06 Lg电子株式会社 利用扩展子报头发送反馈信息的方法
US7565496B2 (en) * 2005-01-22 2009-07-21 Cisco Technology, Inc. Sharing memory among multiple information channels
US7802028B2 (en) * 2005-05-02 2010-09-21 Broadcom Corporation Total dynamic sharing of a transaction queue
US20080063004A1 (en) * 2006-09-13 2008-03-13 International Business Machines Corporation Buffer allocation method for multi-class traffic with dynamic spare buffering
US9769016B2 (en) 2010-06-07 2017-09-19 Brocade Communications Systems, Inc. Advanced link tracking for virtual cluster switching
US8867552B2 (en) 2010-05-03 2014-10-21 Brocade Communications Systems, Inc. Virtual cluster switching
US9270486B2 (en) 2010-06-07 2016-02-23 Brocade Communications Systems, Inc. Name services for virtual cluster switching
US9001824B2 (en) 2010-05-18 2015-04-07 Brocade Communication Systems, Inc. Fabric formation for virtual cluster switching
US8989186B2 (en) 2010-06-08 2015-03-24 Brocade Communication Systems, Inc. Virtual port grouping for virtual cluster switching
US9461840B2 (en) 2010-06-02 2016-10-04 Brocade Communications Systems, Inc. Port profile management for virtual cluster switching
US9716672B2 (en) 2010-05-28 2017-07-25 Brocade Communications Systems, Inc. Distributed configuration management for virtual cluster switching
US9628293B2 (en) 2010-06-08 2017-04-18 Brocade Communications Systems, Inc. Network layer multicasting in trill networks
US9806906B2 (en) 2010-06-08 2017-10-31 Brocade Communications Systems, Inc. Flooding packets on a per-virtual-network basis
US9608833B2 (en) 2010-06-08 2017-03-28 Brocade Communications Systems, Inc. Supporting multiple multicast trees in trill networks
US9246703B2 (en) 2010-06-08 2016-01-26 Brocade Communications Systems, Inc. Remote port mirroring
US9807031B2 (en) 2010-07-16 2017-10-31 Brocade Communications Systems, Inc. System and method for network configuration
WO2012068302A2 (en) * 2010-11-16 2012-05-24 Tibco Software Inc. Locking and signaling for implementing messaging transports with shared memory
US9270572B2 (en) 2011-05-02 2016-02-23 Brocade Communications Systems Inc. Layer-3 support in TRILL networks
US9336060B2 (en) * 2011-06-17 2016-05-10 Microsoft Technology Licensing, Llc Middleware services framework for on-premises and cloud deployment
US9736085B2 (en) * 2011-08-29 2017-08-15 Brocade Communications Systems, Inc. End-to end lossless Ethernet in Ethernet fabric
US9699117B2 (en) 2011-11-08 2017-07-04 Brocade Communications Systems, Inc. Integrated fibre channel support in an ethernet fabric switch
US9450870B2 (en) 2011-11-10 2016-09-20 Brocade Communications Systems, Inc. System and method for flow management in software-defined networks
US8995272B2 (en) 2012-01-26 2015-03-31 Brocade Communication Systems, Inc. Link aggregation in software-defined networks
US9742693B2 (en) 2012-02-27 2017-08-22 Brocade Communications Systems, Inc. Dynamic service insertion in a fabric switch
US9154416B2 (en) 2012-03-22 2015-10-06 Brocade Communications Systems, Inc. Overlay tunnel in a fabric switch
US9374301B2 (en) 2012-05-18 2016-06-21 Brocade Communications Systems, Inc. Network feedback in software-defined networks
US10277464B2 (en) 2012-05-22 2019-04-30 Arris Enterprises Llc Client auto-configuration in a multi-switch link aggregation
EP2853066B1 (en) 2012-05-23 2017-02-22 Brocade Communications Systems, Inc. Layer-3 overlay gateways
US9602430B2 (en) 2012-08-21 2017-03-21 Brocade Communications Systems, Inc. Global VLANs for fabric switches
US9401872B2 (en) 2012-11-16 2016-07-26 Brocade Communications Systems, Inc. Virtual link aggregations across multiple fabric switches
KR102011135B1 (ko) * 2012-12-11 2019-08-14 삼성전자주식회사 모바일 장치 및 그것의 스왑을 통한 데이터 관리 방법
US9548926B2 (en) 2013-01-11 2017-01-17 Brocade Communications Systems, Inc. Multicast traffic load balancing over virtual link aggregation
US9350680B2 (en) 2013-01-11 2016-05-24 Brocade Communications Systems, Inc. Protection switching over a virtual link aggregation
US9413691B2 (en) 2013-01-11 2016-08-09 Brocade Communications Systems, Inc. MAC address synchronization in a fabric switch
US9565113B2 (en) 2013-01-15 2017-02-07 Brocade Communications Systems, Inc. Adaptive link aggregation and virtual link aggregation
US9565099B2 (en) 2013-03-01 2017-02-07 Brocade Communications Systems, Inc. Spanning tree in fabric switches
US9401818B2 (en) 2013-03-15 2016-07-26 Brocade Communications Systems, Inc. Scalable gateways for a fabric switch
US9699001B2 (en) 2013-06-10 2017-07-04 Brocade Communications Systems, Inc. Scalable and segregated network virtualization
US9565028B2 (en) 2013-06-10 2017-02-07 Brocade Communications Systems, Inc. Ingress switch multicast distribution in a fabric switch
US9338105B2 (en) * 2013-09-03 2016-05-10 Broadcom Corporation Providing oversubscription of pipeline bandwidth
US9806949B2 (en) 2013-09-06 2017-10-31 Brocade Communications Systems, Inc. Transparent interconnection of Ethernet fabric switches
US9912612B2 (en) 2013-10-28 2018-03-06 Brocade Communications Systems LLC Extended ethernet fabric switches
US9548873B2 (en) 2014-02-10 2017-01-17 Brocade Communications Systems, Inc. Virtual extensible LAN tunnel keepalives
US10581758B2 (en) 2014-03-19 2020-03-03 Avago Technologies International Sales Pte. Limited Distributed hot standby links for vLAG
US10476698B2 (en) 2014-03-20 2019-11-12 Avago Technologies International Sales Pte. Limited Redundent virtual link aggregation group
US10063473B2 (en) 2014-04-30 2018-08-28 Brocade Communications Systems LLC Method and system for facilitating switch virtualization in a network of interconnected switches
US9800471B2 (en) 2014-05-13 2017-10-24 Brocade Communications Systems, Inc. Network extension groups of global VLANs in a fabric switch
US10616108B2 (en) 2014-07-29 2020-04-07 Avago Technologies International Sales Pte. Limited Scalable MAC address virtualization
US9544219B2 (en) 2014-07-31 2017-01-10 Brocade Communications Systems, Inc. Global VLAN services
US9807007B2 (en) 2014-08-11 2017-10-31 Brocade Communications Systems, Inc. Progressive MAC address learning
US9524173B2 (en) 2014-10-09 2016-12-20 Brocade Communications Systems, Inc. Fast reboot for a switch
US9699029B2 (en) 2014-10-10 2017-07-04 Brocade Communications Systems, Inc. Distributed configuration management in a switch group
CN105701019A (zh) 2014-11-25 2016-06-22 阿里巴巴集团控股有限公司 一种内存管理方法以及装置
US9626255B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Online restoration of a switch snapshot
US9628407B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Multiple software versions in a switch group
US9942097B2 (en) 2015-01-05 2018-04-10 Brocade Communications Systems LLC Power management in a network of interconnected switches
US10003552B2 (en) 2015-01-05 2018-06-19 Brocade Communications Systems, Llc. Distributed bidirectional forwarding detection protocol (D-BFD) for cluster of interconnected switches
KR102012261B1 (ko) * 2015-03-03 2019-10-21 한국전자통신연구원 메모리 할당의 부분 해제를 지원하는 메모리 관리 장치 및 방법
US10038592B2 (en) 2015-03-17 2018-07-31 Brocade Communications Systems LLC Identifier assignment to a new switch in a switch group
US9807005B2 (en) 2015-03-17 2017-10-31 Brocade Communications Systems, Inc. Multi-fabric manager
US10579406B2 (en) 2015-04-08 2020-03-03 Avago Technologies International Sales Pte. Limited Dynamic orchestration of overlay tunnels
US10439929B2 (en) 2015-07-31 2019-10-08 Avago Technologies International Sales Pte. Limited Graceful recovery of a multicast-enabled switch
US10171303B2 (en) 2015-09-16 2019-01-01 Avago Technologies International Sales Pte. Limited IP-based interconnection of switches with a logical chassis
US9912614B2 (en) 2015-12-07 2018-03-06 Brocade Communications Systems LLC Interconnection of switches based on hierarchical overlay tunneling
WO2017123849A1 (en) * 2016-01-14 2017-07-20 Ab Initio Technology Llc Recoverable stream processing
US10250530B2 (en) * 2016-03-08 2019-04-02 Mellanox Technologies Tlv Ltd. Flexible buffer allocation in a network switch
US10237090B2 (en) 2016-10-28 2019-03-19 Avago Technologies International Sales Pte. Limited Rule-based network identifier mapping
US10608943B2 (en) * 2017-10-27 2020-03-31 Advanced Micro Devices, Inc. Dynamic buffer management in multi-client token flow control routers
CN109086227A (zh) * 2018-08-01 2018-12-25 长沙市极云网络科技有限公司 一种独占输入方法、输入转换设备、输入装置及智能终端
TWI703840B (zh) * 2019-01-16 2020-09-01 瑞昱半導體股份有限公司 設置在交換器內的電路以及管理交換器中記憶體的方法
US20230138522A1 (en) * 2021-11-02 2023-05-04 Mellanox Technologies, Ltd. Queue Bandwidth Estimation for Management of Shared Buffers and Allowing Visibility of Shared Buffer Status

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1079774A (ja) * 1996-09-02 1998-03-24 Kokusai Denshin Denwa Co Ltd <Kdd> プロトコルデータの処理方式
JPH11122260A (ja) * 1997-10-17 1999-04-30 Fujitsu Ltd 通信制御装置及びその方法
JPH11298490A (ja) * 1998-04-14 1999-10-29 Nec Corp 選択的パケット廃棄制御装置
KR100279560B1 (ko) * 1998-12-31 2001-02-01 이계철 사용자 데이터 전송 및 수신을 위한 버퍼제어 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2655464B2 (ja) * 1992-12-25 1997-09-17 日本電気株式会社 パケット交換方式
US5931916A (en) * 1994-12-09 1999-08-03 British Telecommunications Public Limited Company Method for retransmitting data packet to a destination host by selecting a next network address of the destination host cyclically from an address list
US6219728B1 (en) * 1996-04-22 2001-04-17 Nortel Networks Limited Method and apparatus for allocating shared memory resources among a plurality of queues each having a threshold value therefor
US6463068B1 (en) * 1997-12-31 2002-10-08 Cisco Technologies, Inc. Router with class of service mapping
US6510160B1 (en) * 1999-02-04 2003-01-21 Cisco Technology, Inc. Accurate computation of percent utilization of a shared resource and fine resolution scaling of the threshold based on the utilization
US6298340B1 (en) * 1999-05-14 2001-10-02 International Business Machines Corporation System and method and computer program for filtering using tree structure
US6687247B1 (en) * 1999-10-27 2004-02-03 Cisco Technology, Inc. Architecture for high speed class of service enabled linecard

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1079774A (ja) * 1996-09-02 1998-03-24 Kokusai Denshin Denwa Co Ltd <Kdd> プロトコルデータの処理方式
JPH11122260A (ja) * 1997-10-17 1999-04-30 Fujitsu Ltd 通信制御装置及びその方法
JPH11298490A (ja) * 1998-04-14 1999-10-29 Nec Corp 選択的パケット廃棄制御装置
KR100279560B1 (ko) * 1998-12-31 2001-02-01 이계철 사용자 데이터 전송 및 수신을 위한 버퍼제어 방법

Also Published As

Publication number Publication date
CN100401791C (zh) 2008-07-09
US6999416B2 (en) 2006-02-14
CA2355473A1 (en) 2002-03-29
CN1356831A (zh) 2002-07-03
KR20020025722A (ko) 2002-04-04
US20020039350A1 (en) 2002-04-04
TW522675B (en) 2003-03-01

Similar Documents

Publication Publication Date Title
KR100407039B1 (ko) 서비스 품질 보증을 지원하기 위한 버퍼 관리 방법과데이터 교환시의 데이터 흐름 제어 방법
US9112786B2 (en) Systems and methods for selectively performing explicit congestion notification
US9100314B2 (en) Dequeuing and congestion control systems and methods for single stream multicast
US7983287B2 (en) Backpressure mechanism for switching fabric
CN113785543A (zh) 用于在应用之间提供网络入口公平性的方法和系统
US6934250B1 (en) Method and apparatus for an output packet organizer
US7558197B1 (en) Dequeuing and congestion control systems and methods
US8520522B1 (en) Transmit-buffer management for priority-based flow control
US7953002B2 (en) Buffer management and flow control mechanism including packet-based dynamic thresholding
CA1286758C (en) Packet switching system arranged for congestion control through bandwidth management
US6757249B1 (en) Method and apparatus for output rate regulation and control associated with a packet pipeline
US6882642B1 (en) Method and apparatus for input rate regulation associated with a packet processing pipeline
EP0872988A2 (en) A method for supporting per-connection queuing for feedback-controlled traffic
JP2001285364A (ja) スイッチング装置とその方法
US7209440B1 (en) Method and apparatus for preventing blocking in a quality of service switch
US20100172363A1 (en) Systems and methods for congestion control using random early drop at head of buffer
US20050195845A1 (en) Low cost implementation for a device utilizing look ahead congestion management
US20050068798A1 (en) Committed access rate (CAR) system architecture
US8086770B2 (en) Communication apparatus with data discard functions and control method therefor
Astuti Packet handling
Cisco Congestion Management Overview
EP1797682B1 (en) Quality of service (qos) class reordering
Loh et al. A simple packet scheduling and buffer management scheme for scalable support of QoS in the Internet

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee