KR20030026929A - 패킷형 데이터를 폐기하는 방법 - Google Patents

패킷형 데이터를 폐기하는 방법 Download PDF

Info

Publication number
KR20030026929A
KR20030026929A KR1020027014603A KR20027014603A KR20030026929A KR 20030026929 A KR20030026929 A KR 20030026929A KR 1020027014603 A KR1020027014603 A KR 1020027014603A KR 20027014603 A KR20027014603 A KR 20027014603A KR 20030026929 A KR20030026929 A KR 20030026929A
Authority
KR
South Korea
Prior art keywords
queue
data
packet
size
memory
Prior art date
Application number
KR1020027014603A
Other languages
English (en)
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 KR20030026929A publication Critical patent/KR20030026929A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/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
    • H04L49/9052Buffering arrangements including multiple buffers, e.g. buffer pools with buffers of different sizes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow

Abstract

패킷형 데이터를 전달하기 위한 장치는 패킷형 데이터를 수신하기 위한 입력부와, 상기 입력부에 결합되며 상기 패킷형 데이터를 연관된 사이즈를 각각 가지는 큐로 저장하도록 구성된 메모리와, 상기 메모리에 결합되며 상기 패킷형 데이터를 전송하기 위한 출력부 및 상기 메모리에 기능적으로 결합되며 상기 메모리에서 상기 출력부로의 상기 패킷형 데이터의 전송을 제어하도록 구성된 컨트롤러를 포함하고, 상기 컨트롤러는 큐의 사이즈의 다수개의 범위 중 어느 것이 최대의 큐 사이즈의 범위이고 적어도 하나의 연관된 큐를 갖는 지를 판정하여, 그 적어도 하나의 연관된 큐 가운데 선택된 큐의 패킷형 데이터를 폐기하도록 구성된다.

Description

패킷형 데이터를 폐기하는 방법{PACKETIZED DATA DISCARD}
패킷 스위치 네트워크에서, 디지털화된 데이터의 패킷들은 송신측과 수신측 사이에 있는 상이한 네트워크 링크들의 용량과 가용성에 따라 종종 상이한 경로로 전달된다. 데이터는 물리적으로 그리고 논리적으로 네트워크의 도처에 분산된 네트워크 노드, 즉 라우터를 연결하는 링크를 통해 경로 지정된다. 데이터는 노드에서뻗어나가는 다양한 링크들을 거쳐서 전달될 수 있다.
노드가 전달할 수 있는 데이터량과, 전달 시에 일시적으로 저장할 수 있는 데이터량에 대해 노드의 용량이 한정되어 있다. 노드에 입력되는 데이터가 (패킷수와 패킷 사이즈의 조합에 따라)매우 많아서 노드의 용량(대역 및/또는 버퍼 공간)이 초과될 경우, 패킷은 특정 노드의 용량 안에서, 노드로부터 전달되거나 노드가 저장하게 될 데이터량을 줄이기 위해 폐기될 수 있다. 최장(最長) 큐를 선택하는 방식을 비롯하여, 다양한 방법으로 폐기될 패킷을 판정할 수 있다.
패킷 네트워크에 대한 최장 큐 폐기(LQD : Longest Queue Discard) 방식의 구현에 있어서, 시스템에서 최장 큐의 식별은 시스템의 다양한 포인트에서 판정될수 있다. 이 기능을 구현하는 데 요구되는 시간은 시스템에서의 버퍼의 처리 속도를 결정하는 요소일 수 있다. 보통 세트에서의 최장 큐는 정렬 기능으로서 기능하는 우선순위 큐(또는 힙)에 의해 판정된다. 그러나, 우선순위 큐의 구현에서는 우선순위 큐에서 요소를 삽입, 삭제 또는 변경하는 기능을 수행하여 최장 큐를 판정하는 데 O(log2N)개의 연산[예컨대, 산술 연산(가산, 감산 등), 논리 연산(예, 비교) 또는 데이터 구조 조작(예, 메모리 액세스)]을 필요로 한다. 즉, 우선순위 큐 구현에서 요소수(N)에 따라 필요로 하는 시간이 선형적으로 증가한다. 대체로, 메모리 액세스는 성능에 가장 큰 영향을 미친다.
본 발명은 통신에 관한 것으로서, 특히 패킷 스위치 데이터 네트워크에서 패킷 폐기에 관한 것이다.
도 1은 노드와 노드 링크를 포함하는 네트워크의 블록도이다.
도 2는 도 1에 도시하고 있는 네트워크의 노드의 개략적인 블록도이다.
도 3은 큐 버킷 시스템의 블록도이다.
도 4는 큐 폐기 프로세스의 블록 흐름도이다.
본 발명의 실시예들은 다수개의 데이터의 큐 가운데 최장 큐의 데이터를 폐기하기 위한 기술을 제공한다. 큐들은 그 길이에 따라 카테고리 또는 그룹으로 정렬된다. 카테고리들은 그 사이즈가 서로 같거나 다르며, 예컨대 동일한 퍼센티지의 사이즈 범위와 같은 사이즈 범위를 가질 수 있다. 예를 들어, 각 카테고리의 사이즈는 특정 사이즈(예, 64 Kbytes)에서 그 특정 사이즈의 2배(예, 128 Kbytes)까지 될 수 있다. 각 카테고리 또는 그룹 내에서, 큐는 사이즈에 따라 정렬될 수 있거나 될 수 없다. 노드 용량이 초과되면, 큐는 폐기되어야 하므로, 최대의 큐 범위에 연관되고 비어 있지 않는 그룹을 선택하여 그 그룹에 있는 큐를 폐기한다. 폐기된 큐는 그 그룹 안에서 최대 큐이거나 그렇지 않을 수 있다. 선택된 카테고리로부터 다양한 방법으로 폐기 대상의 큐를 선택할 수 있는데, 예컨대 임의대로 선택하거나 또는 첫번째 리스트된 큐(예, 저장 스택의 탑)를 선택할 수 있다. 그룹의 사이즈범위는 그룹내에서 폐기된 큐와 실제 최장 큐간의 가능한 사이즈 차이를 줄이도록 변할 수 있다. 즉, 그룹의 범위란 임의의 그룹내의 가능한 최소 큐가 임의의 그룹내의 가능한 최대 큐의 소정의 사이즈 차이 안에 있다는 것을 의미하고, 소정의 사이즈 차이를 허용 가능한 레벨까지 줄일 수 있게 그 범위를 선택하거나/설계할 수 있다.
일반적으로, 특징상, 본 발명은 패킷형 데이터를 전달하기 위한 장치를 제공하며, 이 장치는 패킷형 데이터를 수신하기 위한 입력부와, 이 입력부에 결합되며 상기 패킷형 데이터를 연관된 사이즈를 각각 가지는 큐로 저장하도록 구성된 메모리와, 상기 메모리에 결합된 패킷형 데이터를 전달하기 위한 출력부와, 상기 메모리에 기능적으로 결합되고 상기 메모리로부터 상기 출력부로의 상기 패킷형 데이터의 전달을 제어하도록 구성된 컨트롤러를 포함하고, 상기 컨트롤러는 큐 사이즈의 다수개의 범위 중 어느 것이 최대의 큐 사이즈 범위이고 적어도 하나의 연관된 큐를 갖는 지를 판정하여, 적어도 하나의 연관된 큐 가운데 선택된 큐의 패킷형 데이터를 폐기하도록 구성된다.
본 발명의 구현은 다음의 특징에서 하나 이상을 포함할 수 있다. 컨트롤러는 패킷형 데이터를 저장하는 메모리의 일부를 할당 해제함으로써 패킷형 데이터를 폐기하도록 구성된다. 컨트롤러는 패킷형 데이터를 저장하는 메모리의 일부를 재할당함으로써 패킷형 데이터를 폐기하도록 구성된다. 컨트롤러는 또한, 노드 용량의 초과 여부를 판정하도록 구성되어, 노드 용량이 초과되다라는 판정에 응답하여 큐 사이즈의 복수개의 범위 중 어느 것이 최대의 큐 사이즈 범위이고 적어도 하나의 연관된 큐를 갖는 지를 판정하도록 구성된다. 컨트롤러는 큐를 선택하여, 선택된 큐와 동일한 사이즈의 범위 안에서의 사이즈를 갖는 다른 큐의 사이즈에 대해서 상기 선택된 큐의 사이즈에 관계없이 데이터를 폐기하도록 구성된다. 컨트롤러는 소프트웨어 명령을 실행시키도록 구성된 프로세서를 포함한다. 컨트롤러는 소프트웨어 명령과 실질적으로 관계없이 동작하도록 구성된 하드웨어를 포함한다.
일반적으로, 다른 특징에 있어서, 본 발명은 패킷형 데이터를 전달하기 위한 시스템을 제공하며, 상기 시스템은 패킷형 데이터를 수신하기 위한 입력부와, 상기 입력부에 결합되며 패킷형 데이터를 연관된 사이즈를 각각 갖는 큐로 저장하도록 구성된 메모리와, 상기 메모리에 결합되며 패킷형 데이터를 전송하기 위한 출력부와, 상기 메모리에 기능적으로 결합되며 적어도 하나의 연관된 큐를 갖는 다른 큐 사이즈의 범위보다 더 긴 특정의 큐 사이즈의 범위와 연관된 특정 큐로부터 적어도 하나의 데이터 패킷을 폐기하기 위한 제어 수단을 포함한다.
본 발명의 구현은 다음의 특징에서 하나 이상을 포함할 수 있다. 제어 수단은 특정의 큐 사이즈의 범위에 연관된 다른 큐 사이즈에 대해서 특정의 큐 사이즈와 관계없이 적어도 하나의 패킷 데이터를 폐기한다. 제어 수단은 폐기되는 적어도 하나의 패킷을 저장하는 메모리의 일부를 할당 해제한다. 제어 수단은 폐기되는 적어도 하나의 패킷을 저장하는 메모리의 일부를 재할당한다.
일반적으로, 또다른 특징에 있어서, 본 발명은 네트워크 노드에서의 전달을 위해 네트워크 노드에 패킷형 데이터의 큐와 그 큐 사이즈의 인디시어(indicia)를 저장하는 단계와, 큐 사이즈의 복수개의 범위 중 어느 것이 최대의 큐 사이즈 범위이고 적어도 하나의 연관된 큐를 갖는 지를 판정하는 단계와, 그 적어도 하나의 연관된 큐 가운데 선택된 큐의 패킷형 데이터를 폐기하는 단계를 포함한다.
본 발명의 구현은 다음의 특징에서 하나 이상을 포함할 수 있다. 폐기 단계는 패킷형 데이터를 저장하는 메모리를 할당 해제하는 단계를 포함한다. 폐기 단계는 패킷형 데이터를 저장하는 메모리를 재할당하는 단계를 포함한다. 이 방법은 노드 용량의 초과 여부를 판정하는 단계를 더 포함하며, 큐 사이즈의 복수개의 범위 중 어느 것이 최대의 큐 사이즈 범위이고 적어도 하나의 연관된 큐를 갖는 지를 판정하는 단계는 노드 용량의 초과 판정에 응답하여 판정된다.
일반적으로, 또다른 특징에 있어서, 본 발명은 데이터 패킷을 전달하는 네트워크 노드에 데이터 흐름 방법을 제공하며, 이 방법은 네트워크 노드로부터의 전달을 위해 네트워크 노드에 패킷형 데이터의 큐와 그 큐 사이즈의 인디시어를 저장하는 단계와, 패킷형 데이터의 큐를, 버킷에 연관될 수 있는 큐 사이즈의 연관된 범위를 가진 버킷과 연관시키는 단계와, 그 버킷 중 어느 것이 적어도 부분적으로 채워져 있으며, 적어도 부분적으로 채워진 다른 버킷에 대해 최대의 연관된 큐 사이즈의 범위를 갖는 지를 판정하는 단계와 그 판정된 버킷으로부터 큐를 선택하는 단계 및 그 선택된 큐로부터 패킷형 데이터를 폐기하는 단계를 포함한다.
본 발명의 구현은 다음의 특징에서 하나 이상을 포함할 수 있다. 폐기 단계는 패킷형 데이터를 저장하는 메모리를 할당 해제하는 단계를 포함한다. 상기 방법은 패킷형 데이터를 전달하기 위한 노드의 용량의 초과 여부를 판정하는 단계를 더 포함하고, 적어도 부분적으로 채워져 있는 버킷 중 어느 것이 적어도 부분적으로채워진 다른 버킷에 대해 최대의 연관된 큐 사이즈의 범위를 갖는 지를 판정하는 단계는 노드 용량의 초과 여부 판정에 응답하여 판정된다.
본 발명의 다양한 실시예들은 다음의 장점에서 하나 이상을 제공할 수 있다. 큐는 소수개의 예컨대, 한번의 연산으로 폐기할 큐들을 판정하여 폐기 큐를 판정할 수 있다. 최대 큐의 특정 범위 안에 적어도 속해 있는 큐들을 폐기하려고 선택할 수 있다. 폐기된 큐와 실제 최장 큐간의 가능한 사이즈 차이를 선택할 수 있거나 및/또는 조절할 수 있다. 비교적 길지만, 가장 길지 않을 수 있는 폐기 대상 큐를 선택하는 것이 확실한 최장의 폐기 큐를 선택하는 것보다 하드웨어 연산이 적게 소요된다. 큐의 개수와 사이즈의 변화에도 불구하고 비교적 일정한 시간으로 폐기 큐를 선택할 수 있다.
이러한 장점과 다른 장점 및 본 발명 그 자체는 다음의 도면, 설명 및 청구범위로부터 더욱 분명해질 것이다.
본 발명은 패킷 스위치 네트워크 노드에서 전달시에 정렬된 큐 가운데 폐기될 비교적 긴 데이터 큐를 선택하기 위한 기술을 제공한다.
도 1을 참조하게 되면, 통신 시스템(10)은 개인용 컴퓨터(121∼125)와, 네트워크 노드(161∼168)를 포함하는 네트워크(14)를 포함한다. 컴퓨터(12)는 모뎀이나 적절한 소프트웨어와 같은 적절한 장치를 통해, 도시하는 바와 같이 노드(161∼167)에 접속된다. 노드(16)를 연결하는 링크(18)는 쌍방향 통신에 적합하게 구성된다. 노드(16)는 인터넷으로서 알려진 글로벌 패킷 스위치 데이터 네트워크와 같은, 네트워크(14)를 통해 패킷을 전달하기 위한 라우터이다. 노드(16)는 패킷을 수신하여, 예컨대 라우팅 노드(16)가 결정하는 이웃 노드(16)로 또는 노드(16) 내부로 패킷을 라우팅하도록 구성된다. 노드(16)는 또한 패킷을 이웃 노드(16)에 전달하기 전에 적절하게 입력 패킷을 버퍼링하도록 구성된다. 노드(16)는 데이터가 버퍼되고 내부적으로 전달될 수 있도록 버퍼 장치와 전달 장치를 다수개 가지고 있으며, 내부 버퍼링과 전송은, 데이터 버퍼링과 외부 전달이 외부적으로도 이루어질 수 있는 것처럼 때, 집중화될 수 있다. 노드(16)는 또한 패킷의 송신측 및/또는 수신측이 될 수도 있다.
도 2를 참조하게 되면, 외부 노드(16), 여기에서는 노드(164)는 데이터 패킷큐(20)를 저장 및 전달할 수 있도록 구성된 노드 버퍼(18)를 포함한다. 버퍼(18)는 소프트웨어를 실행시키는 프로세서(22)의 제어하에서, 데이터를 저장하기 위한 메모리를 포함한다. 노드들(16) 간에 다른 접속도 허용되지만, 도 1에 도시하는 바와 같이, 노드(161, 163, 167)로부터 데이터의 패킷들을 수신하고, 노드에 데이터 패킷을 전달하기 위해 버퍼(18)가 연결된다. 패킷은 입력 포트(28)에서 입력 라인(26)을 통해 수신되고 출력 포트(32)의 출력 라인(30)을 통해 전송된다. 데이터 패킷은 버퍼(180)에서의 전달을 위해 큐(20)[여기에서는 201-207로 도시됨]에 저장된다.
데이터 패킷은 큐(20)로부터 각종 순서로 전달될 수 있다. 예를 들어, 패킷은 각 큐(20)에 할당된 대역폭의 [각 큐(90)마다 다를 수 있는]정도에 따라 동시에, Q1∼Q7의 수치적인 큐 순서로 전송될 수 있다. 패킷은 큐(201∼203)가 수치순으로 전달되고 큐(204∼207)가 수치순으로 전달된다면, 큐(201∼203) 그룹에서의 패킷들은 각각의 그룹에 할당된 대역폭에 따라 큐(204∼207) 그룹의 패킷들과 동시에 전달될 수 있는 것과 같이 상기 기술들의 결합으로 전달될 수 있다.
버퍼(18)와 프로세서(22)는 근사적인 최장 큐 폐기(LQD) 방식을 수행하도록 구성된다. 버퍼(18)와 프로세서(22)에 의해 작은값의 양의 정수들만 정렬되도록 버퍼 메모리에 사이즈를 한정하도록 버퍼 번호 공간이 고정되는 것이 좋다. 프로세서(22)는 다양한 기능들을 수행하여 근사적인 LQD를 구현하도록 소프트웨어 코드에 따라 버퍼(18) 제어를 조종하도록 구성된다. 요소가 변경될 때 변할 수 있는 요소의(큐의) 값(사이즈)은 제한적이다. 패킷이 한번에 한 개씩 큐로부터 추가되고 제거되므로, 요소의 값은 패킷의 최대 사이즈만큼 단지 증가되고 감소될 것이다. 그래도, 허용 가능한 "거의 정확한" 답일 것이다. 최장의 큐를 찾기 위한 조잡한 근사일지라도 매우 우수한 결과를 가질 수 있다고 나타나고 있다. 큐(20)는 제한된 범위의 사이즈로 범퍼(18)에 삽입되거나 버퍼로부터 제거된다. 큐(20)는 패킷을 가질 수 있도록 비어 있을 때, 시스템에 입력되고, 패킷이 없을 때 제거된다.그래서, 새로 삽입된 큐(20)는 그 크기가 0보다 클 것이고, 최대 패킷 사이즈와 같거나 작을 것이며, 제거되는 큐(20)는 사이즈가 0일 것이다.
버퍼(18)는 길이가 변하는 큐들에 대응하는 일련의 "버킷"에서 큐(20)를 연관하도록 구성된다. 큐(20)가 버킷에 저장될 것으로 생각될 수 있겠지만, 큐(20)는함께 물리적으로 함께 저장될 필요가 없다. 버킷은 물리적인 그룹핑 이상의 논리적 그룹핑이다. 예를 들어, 버킷은 포인터, 연결 리스트 또는, 큐(20)가 어떤 버킷에 속하는지에 대한 다른 인디시어로 구현될 수 있다.
도 3을 참조하게 되면, 버퍼(18)는 n개의 버킷(240∼24n-1)을 포함하지만, 도면에는 3개의 버킷(240∼242)만 도시되어 있다. 버킷(24)과 연관될 수 있는 최대 사이즈의 큐(20)는 함수 S로 주어지며, Si는 버킷(24i)에 있을 최대 사이즈의 큐를 나타낸다. 버킷(B0)은 길이가 0 바이트 내지 S0바이트인 큐(20)를 포함할 것이며, 버킷(241)은 길이가 S0+1 바이트 내지 S1바이트인 큐(20)를 포함할 것이다.
버킷(24), 여기서는 240, 241및 242는 대응하는 사이즈의 범위 R, 여기서는 R0, R1및 R2안에 있는 사이즈의 큐(20)를 저장한다. 사이즈의 범위(R)는 그 범위(R) 안에 있는 최대 큐 사이즈(S)가 범위(R) 안에 있는 최소 큐 사이즈보다 대략 2배가 되는 사이즈들을 포함하며, 최대 큐 사이즈가 0인 경우는 제외된다. 예를 들어, 범위(R0)는 큐의 사이즈가 0 내지 63 바이트인 큐를 포함하고, 범위(R1)은 64 바이트 내지 127 바이트를 포함하며, 범위(R2)는 128 바이트에 내지 255 바이트의큐를 포함한다. 다시 설명하면, R0= [0 바이트, 63 바이트]이고, Ri= [2n바이트, 2n+1- 1 바이트]이며, n = i+1이다. 큐를 카테고리화하려면, 1이 되는 최상위 비트를 판정하기 위해 사이즈의 2진 표시가 분석된다. 이 예에 주어진 식과는 다른 관계식이 범위(R) 사이에 허용될 수 있다(예, n 내지 i의 상이한 관계식). 버킷의 사이즈 범위(R)는 평균/최대 큐 사이즈 또는 사이즈 분포가 변함에 따라 동적으로 변화될 수 있다. 그러나, 사이즈를 고정시키면 구현이 더 간단해 질 수 있다.
임의의 버킷(24) 안에서 큐(20)는 그 사이즈에 따라 반드시 저장될 필요가 없다. 큐(20)는 그 상대적인 사이즈에 따라 저장되거나 또는 예컨대, 첫번째 도착이냐 마지막 도착이냐에 따라 그 각각의 사이즈와 무관하게 저장되거나 임의대로 저장될 수 있다.
버퍼(18)와 프로세서(22)[도 2]는 근사적인 LQD 메커니즘을 구현하여 적절한큐(20)를 폐기하도록 구성된다. 폐기 메커니즘에 따르면, 버퍼(18)와 프로세서(24)는 비어 있지 않는(즉, 적어도 부분적으로 채워진) 버킷(24)을 용이하게 판정하여, 비어 있지 않은 버킷(24) 내에서 적어도 하나의 큐(20)를 식별하고, 버킷(24)에 있는 임의의 큐로부터 하나 이상의 패킷을 용이하게 폐기할 수 있다. 그러므로, 폐기될(즉, 대상 큐에서 하나 이상의 패킷이 폐기될) 큐(20)가 최장의 큐(20)가 아닐 수 있지만, 최장 큐(20)에 대한 상대적 정확성은 상대적 공정성을 제공하기에 충분하다. 폐기되는 패킷 수는 변할 수 있지만, 폐기되지 않는 패킷에 의해 노드(164)의 용량이 초과되지 않을 정도로 충분한 패킷이 폐기되면 좋다. 폐기되는 패킷을 저장하는 메모리를 할당 해제하거나 및/또는 재할당함으로써 패킷을 폐기하여 다른 데이터를 할당 해제 및/또는 재할당된 메모리에 기록할 수 있다. 버퍼(18)와 프로세서(22)의 폐기 메커니즘은 또한 매우 드물게 사용되거나 또는 결코 사용되지 않는 큐를 식별할 수 있고, 이들 큐로부터 패킷을 폐기할 수 있다.
도 4를 참조하고, 도 1과 도 2를 추가 참조하면, 큐(20)에서 패킷을 폐기하는 프로세스(40)는 단계 42, 44 및 46을 포함하고, (제한적이 아니라)예시적으로, 네트워크 노드(164)는 데이터 패킷을 수신하고 그 패킷을 적절하게 버퍼링(저장)한다. 단계 42에서, 패킷이 입력 라인(26)과 입력 포트(28)를 통해 수신된다. 패킷형 데이터는 전진 방식으로 버퍼(18)에 있는 하나 이상의 큐(20)에 저장된다. 단계 44에서, 수신된 패킷은, 예컨대 이 수신된 패킷이 연관된 다른 패킷에 관해 가능한 한 패킷에 있는 인디시어에 따라, 큐에 지정됨으로써 큐(20)에 연관된다. 단계 46에서, 수신된 패킷은 이 수신된 패킷이 연관된 큐(20)의 사이즈에 따라 큐 버킷(24)과 추가 연관된다. 큐(20)가 연관되는 버킷(24)은 큐(20)의 사이즈가 변함에 따라 변한다.
단계 48에서, 프로세서(22)는 노드(164)에서 패킷을 저장할 수 있는 용량의 초과 여부를 판정한다. 이 판정은 노드(164)가 수신하는 패킷에 응답하여 이루어질 수 있다. 노드의 용량이 초과되지 않으면, 프로세스(40)는 단계 42로 리턴되고 또다른 패킷이 수신될 때까지 대기한다. 다른 방법으로서, 용량 판정은 예컨대 타이머의 제어하에서 주기적으로 이루어질 수 있다. 이 경우, 점선 루프(49)로 표시하는 바와 같이, 노드 용량이 초과되지 않으면, 프로세스(40)는 단계 48의 상태에 계속 머무른다. 노드 용량이 초과되면, 프로세스(40)는 단계 52로 진행된다.
단계 52에서, 프로세서(22)는 비어 있지 않고 최대의 큐 사이즈 범위(R)를 가지는 버킷을 판정한다. 예를 들어, 프로세스는 비어 있지 않은 버킷(24)을 찾을 때까지 큐 사이즈 범위(R)의 내림순으로 각각의 버킷(24)에 질의할 수 있다.
단계 54에서, 비어 있지 않은 최대의 큐 사이즈 범위(R)를 가지는 버킷(24)의 큐(20)를 폐기하려고 선택한다. 프로세서(22)는 선택된 큐(20)가 버킷(24)내의 다른 큐(20)에 비해 더 긴 사이즈를 가지는 여부에 관계없이 임의대로 또는 다른 방법으로 버킷(24)에서 큐(20)를 선택한다. 따라서, 선택된 큐(20)는 최장의 큐(20)가 아닐 수 있다.
단계 56에서는, 단계 54에서 선택된 큐(20)가 폐기된다. 폐기 단계는 노드(164)에서의 전달을 위해 패킷을 디큐(de-queueing)하는 단계를 포함하거나, 다른 방법으로서 패킷 또는 폐기될 패킷이 저장된 메모리를 할당 해제하는 단계를 포함한다.
도 4에 도시하는 프로세스(40)는 예시적인 것으로서, 제한적이지 않다. 도 4와 비교해서 단계들이 추가되거나, 삭제 또는 재구성될 수 있다. 예를 들어, 단계(44)는 수신된 패킷이 예컨대 패킷의 헤더에 있는 패킷 정보에 의해 지시되는 큐와 연관된다면, 무시할 수 있다. 또한, 데이터 패킷의 수신이 폐기 메커니즘을 가동하는데 필요없다면 단계 42, 44와 46를 삭제할 수 있다.
첨부되는 청구 범위의 사상과 범위 안에 다른 실시예들이 있다. 예를 들어,소프트웨어에 의해 기능들이 수행/제어되는 것으로 전술하였다. 소프트웨어의 특성으로 인해, 소프트웨어, 하드웨어, 펌웨어, 고정 배선 회로(hardwiring) 또는 이들의 임의 조합에 의해 기능들을 수행/제어할 수 있고, 기능의 물리적인 구현은 다양한 위치에 분배되는 것을 비롯하여, 전술한 위치와 다른 위치에서 물리적으로 상주할 수 있다. 예를 들어, 프로세서(22)는 전술한 기능을 수행하기 위해 하드웨어 로직으로서 (소프트웨어와 관계없이, 또는 그래서 실질적으로)구현될 수 있고, 따라서 소프트웨어 제어되는 프로세서보다 동작이 신속해진다. 소프트웨어 제어되는 프로세서는 네트워크(14)의 외부와의 접속을 위한 데이터 처리에 사용될 수 있지만, 하드웨어는 네트워크(14) 내부와의 접속을 위한 데이터 처리에 사용될 수 있다. 버퍼에 대한 선택이 목록화되어 있으면, 버퍼 번호 공간은 고정될 필요가 없고, 큐가 변경될 때 변할 수 있는 큐 사이즈의 양을 제한할 필요가 없고, 버퍼에 삽입/버퍼로부터 삭제될 수 있는 큐는 제한된 사이즈의 범위 안에 있을 필요가 없고, 큐는 패킷을 가질려고 비어 있을 때 외에도 때때로 시스템에 있을 수 있고 그들이 적어도 하나의 패킷을 가질 때 제거될 수 있다. 버킷 사이즈 범위(R)는 전술한 바와 다를 수 있다. 사이즈 범위(R)는 겹칠 수 있다. 한 범위에 대한 다른 범위의 증가 정도는 전술한 바와 다를 수 있다. 예를 들어, 더 큰 사이즈 범위에서는, 전술한 바와 유사하게 최대 사이즈의 2배와 같이, 큰 폭으로 상승하는 반면, 작은 사이즈 범위에서, 범위(R)는 (예컨대, 64 바이트와) 동일하거나 동일하지 않을 수 있는 소폭 증가분으로 증가할 수 있다. 큐(20)를 버킷(24)과 연관시키는 어떤 구성을 사용할 지라도, 큐(20)를 연관시켜 폐기 큐(20)를 선택하는 프로세스는 큐(20)를 정렬하여최장의 큐를 선택하는 것보다 (비용 및/또는 처리 소비 견지에서) 더 저렴하다.
큐의 사이즈는 하나 이상의 큐에 가중 사이즈(weighting)를 더함으로써 유효 사이즈로 조절될 수 있다. 유효 사이즈는 버킷(24)와 큐(20)를 연관시키는 데 이용될 수 있다. 큐(20)가 푸시아웃 대상이 되려면 큐(20)가 만족해야 하는 최소/임계 유효 사이즈를 이용할 수 있다. 0 바이트의 유효/가중된 사이즈를 갖는 것 같이, 최소/임계 바이트값 이하에서 유효 사이즈를 갖는 큐(20)에 대해 특수 버킷을 설정할 수 있다. 특수 버킷을 사용하여 상기 큐들이 대체로 폐기하기에 적격이지 않지만 폐기 대상이 될 수 있다. 폐기 대상 큐는 특수 버킷에서 임의대로 선택할 수 있거나, 최소/임계값을 만족하는 큐를 대상으로 하는 유사한 메커니즘을 (최소/임계값을 변경함으로써)적용할 수 있다.
청구범위는 다음과 같다.

Claims (18)

  1. 패킷형 데이터를 전달하기 위한 장치로서,
    패킷형 데이터를 수신하기 위한 입력부와;
    상기 입력부에 결합되며 상기 패킷형 데이터를 연관된 사이즈를 각각 가지는 큐로 저장하도록 구성되는 메모리와;
    상기 메모리에 결합되며 상기 패킷형 데이터를 전송하기 위한 출력부 및;
    상기 메모리에 기능적으로 결합되며 상기 메모리에서 상기 출력부로의 상기 패킷형 데이터의 전송을 제어하도록 구성되는 컨트롤러를 포함하고,
    상기 컨트롤러는 큐 사이즈의 복수개의 범위 중 어느 것이 최대의 큐 사이즈 범위이고 적어도 하나의 연관된 큐를 갖는 지를 판정하여, 상기 적어도 하나의 연관된 큐 가운데 선택된 큐의 패킷형 데이터를 폐기하도록 구성되는 것인 패킷형 데이터 전달 장치.
  2. 제1항에 있어서, 상기 컨트롤러는 상기 패킷형 데이터를 저장하는 메모리의 일부를 할당 해제함으로써 상기 패킷형 데이터를 폐기하도록 구성되는 것인 패킷형 데이터 전달 장치.
  3. 제1항에 있어서, 상기 컨트롤러는 상기 패킷형 데이터를 저장하는 메모리의 일부를 재할당함으로써 상기 패킷형 데이터를 폐기하도록 구성되는 것인 패킷형 데이터 전달 장치.
  4. 제3항에 있어서, 상기 컨트롤러는 노드의 용량의 초과 여부를 판정하도록 추가 구성되며, 상기 컨트롤러는 상기 노드의 용량의 초과 판정에 따라 큐 사이즈의 복수의 범위 중 어느 것이 최대의 큐 사이즈 범위이고 적어도 하나의 연관된 큐를 갖는 지를 판정하도록 구성되는 것인 패킷형 데이터 전달 장치.
  5. 제1항에 있어서, 상기 컨트롤러는 큐를 선택하여, 선택된 큐와 동일한 사이즈의 범위 안에서 사이즈를 갖는 다른 큐의 사이즈에 대해서 상기 선택된 큐의 사이즈에 관계없이 데이터를 폐기하도록 구성되는 패킷형 데이터 전달 장치.
  6. 제1항에 있어서, 상기 컨트롤러는 소프트웨어 명령을 실행시키도록 구성되는 프로세서를 포함하는 것인 패킷형 데이터 전달 장치.
  7. 제1항에 있어서, 상기 컨트롤러는 소프트웨어 명령과 실질적으로 관계없이 동작하도록 구성되는 하드웨어를 포함하는 것인 패킷형 데이터 전달 장치.
  8. 패킷형 데이터를 전달하기 위한 시스템으로서,
    패킷형 데이터를 수신하기 위한 입력부와;
    상기 입력부에 결합되며 상기 패킷형 데이터를 연관된 사이즈를 각각 갖는큐로 저장하도록 구성되는 메모리와;
    상기 메모리에 결합되며 상기 패킷형 데이터를 전송하기 위한 출력부 및;
    상기 메모리에 기능적으로 결합되며, 적어도 하나의 연관된 큐를 가지는 다른 큐 사이즈의 범위보다 더 긴 특정 큐 사이즈의 범위와 연관된 특정 큐로부터 적어도 하나의 데이터 패킷을 폐기하기 위한 제어 수단을 포함하는 패킷형 데이터 전달 시스템.
  9. 제8항에 있어서, 상기 제어 수단은 상기 특정 큐 사이즈의 범위에 연관된 다른 큐 사이즈에 대해서 상기 특정 큐의 사이즈와 관계없이 적어도 하나의 데이터 패킷을 폐기하는 것인 패킷형 데이터 전달 시스템.
  10. 제9항에 있어서, 상기 제어 수단은 폐기되는 적어도 하나의 패킷을 저장하는 메모리의 일부를 할당 해제하는 것인 패킷형 데이터 전달 시스템.
  11. 제10항에 있어서, 상기 제어 수단은 폐기되는 적어도 하나의 패킷을 저장하는 메모리의 일부를 재할당하는 것인 패킷형 데이터 전달 시스템.
  12. 네트워크 노드에서의 전달을 위해 상기 네트워크 노드에 패킷형 데이터의 큐와, 상기 큐의 사이즈의 인디시어를 저장하는 단계와;
    큐 사이즈의 복수개의 범위 중 어느 것이 최대의 큐 사이즈 범위이고 적어도하나의 연관된 큐를 갖는 지를 판정하는 단계 및;
    상기 적어도 하나의 연관된 큐 가운데 선택된 큐의 패킷형 데이터를 폐기하는 단계를 포함하는 방법.
  13. 제12항에 있어서, 상기 폐기 단계는 상기 패킷형 데이터를 저장하는 메모리를 할당 해제하는 단계를 포함하는 것인 방법.
  14. 제12항에 있어서, 상기 폐기 단계는 상기 패킷형 데이터를 저장하는 메모리를 재할당하는 단계를 포함하는 것인 방법.
  15. 제14항에 있어서, 노드 용량의 초과 여부를 판정하는 단계를 더 포함하고, 상기 큐 사이즈의 복수개의 범위 중 어느 것이 최대의 큐 사이즈 범위이고 적어도 하나의 연관된 큐를 갖는 지를 판정하는 단계는 상기 노드 용량의 초과 여부를 판정하는 단계에 응답하여 판정되는 것인 방법.
  16. 데이터의 패킷을 전달하는 네트워크 노드에서의 데이터 흐름 방법으로서,
    상기 네트워크 노드에서의 전달을 위해, 상기 네트워크 노드에 패킷형 데이터의 큐와 상기 큐 사이즈의 인디시어를 저장하는 단계와;
    상기 패킷형 데이터의 큐를, 버킷과 연관될 수 있는 연관된 큐 사이즈의 범위를 가지는 버킷과 연관시키는 단계와;
    상기 버킷 중에서 어느 것이 적어도 부분적으로 채워져 있고 적어도 부분적으로 채워진 다른 버킷에 대해서 최대의 연관된 큐 사이즈의 범위를 갖는 지를 판정하는 단계와;
    판정된 버킷에서 큐를 선택하는 단계 및;
    선택된 큐에서 패킷형 데이터를 폐기하는 단계를 포함하는 데이터 흐름 방법.
  17. 제16항에 있어서, 상기 폐기 단계는 상기 패킷형 데이터를 저장하는 메모리를 할당 해제하는 단계를 포함하는 것인 데이터 흐름 방법.
  18. 제17항에 있어서, 패킷형 데이터를 전달하기 위한 노드 용량의 초과 여부를 판정하는 단계를 더 포함하고, 상기 적어도 부분적으로 채워져 있는 버킷 중 어느 것이 적어도 부분적으로 채워진 다른 버킷에 대해서 최대의 연관된 큐 사이즈 범위를 갖는 지를 판정하는 단계는 상기 노드 용량의 초과 여부를 판정하는 단계에 응답하여 판정되는 것인 데이터 흐름 방법.
KR1020027014603A 2000-05-01 2001-05-01 패킷형 데이터를 폐기하는 방법 KR20030026929A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US20105900P 2000-05-01 2000-05-01
US60/201,059 2000-05-01
US09/845,541 2001-04-30
US09/845,541 US20020048277A1 (en) 2000-05-01 2001-04-30 Packetized data discard

Publications (1)

Publication Number Publication Date
KR20030026929A true KR20030026929A (ko) 2003-04-03

Family

ID=26896354

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027014603A KR20030026929A (ko) 2000-05-01 2001-05-01 패킷형 데이터를 폐기하는 방법

Country Status (7)

Country Link
US (1) US20020048277A1 (ko)
EP (1) EP1279260A2 (ko)
KR (1) KR20030026929A (ko)
CN (1) CN1636350A (ko)
AU (1) AU2001259319A1 (ko)
CA (1) CA2407999A1 (ko)
WO (1) WO2001084776A2 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139280B2 (en) * 2001-07-30 2006-11-21 Yishay Mansour Buffer management policy for shared memory switches
US7680043B2 (en) * 2002-03-20 2010-03-16 International Business Machines Corporation Network processor having fast flow queue disable process
JP4214919B2 (ja) * 2004-01-16 2009-01-28 株式会社日立製作所 帯域制御機能を有するストレージスイッチ
US7680139B1 (en) * 2004-03-25 2010-03-16 Verizon Patent And Licensing Inc. Systems and methods for queue management in packet-switched networks
US20080130675A1 (en) * 2006-12-01 2008-06-05 General Instrument Corporation Method and System for Data Traffic Integration Using Dynamic Data Packet Fragmentation
GB2456369A (en) * 2008-01-11 2009-07-15 Ibm String pattern analysis for word or genome analysis
US20110282980A1 (en) * 2010-05-11 2011-11-17 Udaya Kumar Dynamic protection of a resource during sudden surges in traffic
EP3446448B1 (en) 2017-05-17 2020-01-01 Telefonaktiebolaget LM Ericsson (Publ) Methods and apparatus for discarding packets in a wireless communication network
US11755490B2 (en) * 2020-12-15 2023-09-12 Micron Technology, Inc. Unmap operation techniques
US11690006B2 (en) * 2021-10-18 2023-06-27 Skylo Technologies, Inc. Connecting a wireless hub across multiple wireless networks

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4323405A1 (de) * 1993-07-13 1995-01-19 Sel Alcatel Ag Zugangskontrollverfahren für einen Pufferspeicher sowie Vorrichtung zum Zwischenspeichern von Datenpaketen und Vermittlungsstelle mit einer solchen Vorrichtung
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
JPH10126419A (ja) * 1996-10-23 1998-05-15 Nec Corp Atm交換機システム
US6092115A (en) * 1997-02-07 2000-07-18 Lucent Technologies Inc. Method for supporting per-connection queuing for feedback-controlled traffic
US6424624B1 (en) * 1997-10-16 2002-07-23 Cisco Technology, Inc. Method and system for implementing congestion detection and flow control in high speed digital network
US6556578B1 (en) * 1999-04-14 2003-04-29 Lucent Technologies Inc. Early fair drop buffer management method
US6618378B1 (en) * 1999-07-21 2003-09-09 Alcatel Canada Inc. Method and apparatus for supporting multiple class of service connections in a communications network
US6721796B1 (en) * 1999-07-22 2004-04-13 Cisco Technology, Inc. Hierarchical dynamic buffer management system and method

Also Published As

Publication number Publication date
EP1279260A2 (en) 2003-01-29
US20020048277A1 (en) 2002-04-25
CA2407999A1 (en) 2001-11-08
WO2001084776A3 (en) 2002-05-23
WO2001084776A9 (en) 2002-12-27
AU2001259319A1 (en) 2001-11-12
WO2001084776A2 (en) 2001-11-08
CN1636350A (zh) 2005-07-06

Similar Documents

Publication Publication Date Title
US7826467B2 (en) Method and a system for discarding data packets in a packetized network
EP0393898B1 (en) Programmable data packet buffer prioritization arrangement
US7609636B1 (en) System and method for infiniband receive flow control with combined buffering of virtual lanes and queue pairs
US7362761B2 (en) Packet processing apparatus
US5379297A (en) Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode
US7623455B2 (en) Method and apparatus for dynamic load balancing over a network link bundle
US8542585B2 (en) Method and system for transmit scheduling for multi-layer network interface controller (NIC) operation
US5588117A (en) Sender-selective send/receive order processing on a per message basis
EP1137228A2 (en) Link state routing techniques
US7953024B2 (en) Fast credit system
US8462804B2 (en) Self-cleaning mechanism for error recovery
US20070076736A1 (en) Method and Apparatus to Switch Data Flows Using Parallel Switch Fabrics
WO1993019551A1 (en) Methods and devices for prioritizing in handling buffers in packet networks
US7486689B1 (en) System and method for mapping InfiniBand communications to an external port, with combined buffering of virtual lanes and queue pairs
US6721335B1 (en) Segment-controlled process in a link switch connected between nodes in a multiple node network for maintaining burst characteristics of segments of messages
JP2002223240A (ja) 重み付きランダムアーリディテクションバッファアドミッタンスアルゴリズムの近似方法
CN101291194A (zh) 报文保序的方法和系统
KR20030026929A (ko) 패킷형 데이터를 폐기하는 방법
US6445706B1 (en) Method and device in telecommunications system
US7391785B2 (en) Method for active queue management with asymmetric congestion control
US6553035B1 (en) Apparatus and method for queuing data
EP0978966B1 (en) A method of address compression for cell-based and packet-based protocols and hardware implementations thereof
JP2000083055A (ja) ルータ
EP0604538B1 (en) Method and apparatus for asynchronous transfer mode (atm) network
JPH01236843A (ja) 通信バッファ装置

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid