KR101421240B1 - 라우터 및 그 라우터에서 큐 처리방법 - Google Patents
라우터 및 그 라우터에서 큐 처리방법 Download PDFInfo
- Publication number
- KR101421240B1 KR101421240B1 KR1020070021078A KR20070021078A KR101421240B1 KR 101421240 B1 KR101421240 B1 KR 101421240B1 KR 1020070021078 A KR1020070021078 A KR 1020070021078A KR 20070021078 A KR20070021078 A KR 20070021078A KR 101421240 B1 KR101421240 B1 KR 101421240B1
- Authority
- KR
- South Korea
- Prior art keywords
- queue size
- threshold
- cache
- received
- packet
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000000630 rising effect Effects 0.000 claims abstract description 107
- 238000003672 processing method Methods 0.000 claims description 6
- 239000000872 buffer Substances 0.000 description 24
- 238000007726 management method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001105 regulatory effect Effects 0.000 description 2
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
- H04L47/326—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames with random discard, e.g. random early discard [RED]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9078—Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 라우터 및 그 라우터의 큐 처리방법은, 수신된 큐의 크기가 상승 임계값을 넘어서거나, 큐의 크기가 상승 임계값을 넘어선 후에 하강 임계값 이하로 떨어지는 것을 기준으로 하여 캐시 업데이트 및 큐 처리를 수행함으로써, 두 개의 캐시를 이용하여 플로우 정보의 업데이트를 위한 오버헤드를 해결하고, 두 개의 캐시를 이용한 RED(Random Early Drop) 큐 관리를 통해서 패킷 플로우간 불공평성을 해결하기 위한 것이다.
Description
도 1은 인터넷에서 트래픽의 불공평성 현상을 나타낸 도면.
도 2는 본 발명에 다른 라우터의 구성을 나타낸 도면.
도 3은 본 발명에 따른 라우터의 캐시 업데이트 방법에 대한 플로차트를 나타낸 도면.
도 4는 본 발명에 따른 라우터의 큐 처리방법에 대한 플로차트를 나타낸 도면.
도 5a 및 도 5b는 패킷 폐기 확률(packet drop probability)을 나타낸 도면.
도 6은 본 발명에 따른 라우터의 캐시 업데이트 및 큐 처리방법에 대한 Pseudo Code를 예시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
20 : 큐 21 : 패킷 처리부
22 : 캐시 23 : 제1캐시
23 : 제2캐시
본 발명은 라우터 및 그 라우터에서 큐 처리방법에 관한 것이다.
일반적으로 인터넷(Internet)에는 다양한 크기, 전송속도 및 전송방법 등이 다른 트래픽(traffic)들이 흐르고 있다. 이러한 인터넷 속에서 흐르는 트래픽들 간의 불공평성을 최소화하기 이해서 큐 관리(queue management) 및 스케줄링(scheduling) 기법이 사용되고 있다.
예를 들어 FIFO(First Input First Output)나 RED(Random Early Drop) 큐 관리를 사용하는 경우에 많은 데이터를 생성하는 트래픽에 보다 많은 대역폭(bandwidth)이 할당된다.
도 1은 인터넷에서 트래픽의 불공평성 현상을 나타낸 도면이다.
도 1에 도시된 바와 같이, 과중 사용자(Heavy User) 단말(10)에서 생성된 UDP 패킷으로 인해서 라우터(12)의 큐(13)가 차지된 상태를 나타낸다.
이러한 상태에서 과중 사용자(Heavy User) 단말(10)에서 생성된 패킷 및 정당 사용자(Light User) 단말(11)에서 생성된 패킷은 모두 폐기(drop)된다.
지속적으로 이러한 현상이 발생되면 과중 사용자(Heavy User) 단말(10)에서 대부분의 대역폭(bandwidth)을 차지하게 되는 불공평성을 야기하게 된다.
이러한 문제점을 보완하기 위한 큐 관리 및 스케줄링 기법들이 제안되고 있다.
그 중의 한 예가 드롭 테일 큐 관리(Drop Tail queue management) 기반의 선입선출 스케줄링(FIFO scheduling)이 있다. 이러한 선입선출 스케줄링은 간단한 패킷 포워딩(packet forwarding) 처리의 오버헤드(overhead)를 최소화하면서 또한 구현이 용이하다는 장점을 가지고 있다.
그러나, 이와 같은 드롭 테일 방식의 선입선출 스케줄링은 최대 노력 서비스(best effort service)만 지원할 뿐이다.
즉, 이 방식의 경우 글로벌 동기화(global synchronization)와 같은 현상이 나타날 수 있으며, 많은 트래픽을 생성하는 몇몇 플로우(flow)들에 의해서 라우터의 버퍼들이 잠식되는 구조적 취약점을 가지고 있다.
이를 개선하기 위한 큐 알고리즘으로 RED(Random Early Drop)가 있다. RED는 구현이 용이하고 드롭 테일 큐 관리 방식이 가지고 있는 문제점인 글로벌 동기화(global synchronization)를 해소할 수 있어서 널리 사용되고 있다.
RED는 큐에 패킷이 쌓임에 따라 모든 트래픽에 높은 폐기 확률(drop probability)를 적용한다. 이러한 상황에서는 보다 많은 트래픽을 생성하는 플로우(flow)에게 보다 많은 대역폭(bandwidth)이 할당되어서 결국에 불공평성이 야기된다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위한 것으로, 두 개의 캐시를 이용하여 플로우 정보의 업데이트를 위한 오버헤드를 해결하고, 두 개의 캐시를 이용한 RED 큐 관리를 통해서 패킷 플로우간 불공평성을 해결한 라우터 및 그 라우터의 큐 처리방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 라우터는, 수신되는 패킷들의 플로우 정보들을 저장한 제1캐시; 수신된 패킷의 큐 크기가 상승 임계값을 넘어서거나, 상기 큐 크기가 상승 임계값을 초과하는 경우 수신된 패킷들의 플로우 정보들을 저장한 제2캐시; 및 수신된 패킷의 큐 크기가 상승 임계값을 넘어서거나, 상기 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값 이하로 떨어지지 않은 상태에서 수신된 패킷의 플로우 정보가 제2캐시에 저장되어 있으면 수신된 패킷을 폐기하는 패킷 처리부를 포함할 수 있다.
상기 플로우는, 수신된 패킷에 포함된 IP 주소, 포트 넘버와 상기 IP 주소 및 포트번호를 가진 패킷이 상기 라우터에 수신된 횟수를 나타낸 히트 카운트를 포함한다.
상기 패킷 처리부는, 상기 큐 크기가 상승 임계값을 초과하는 경우나, 큐 크기가 상승 임계값보다 작고 하강 임계값보다 큰 상태에서 제2캐시의 용량이 풀(full)이 아니면, 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값보다 작고 하강 임계값(falling threshold)보다 큰 상태에서 수신되는 패킷의 플로우 정보를 제2캐시에 저장한다.
상기 패킷 처리부는, 상기 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값보다 작고 하강 임계값보다 큰 상태에서 제2캐시의 용량이 풀(full)이면, 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값으로 떨어지지 않은 상태에서 수신되는 패킷의 히트 수보다 낮은 플로우 정보를 제2캐시에서 삭제한다.
상기 패킷 처리부는, 수신된 패킷의 큐 크기가 상승 임계값을 넘어서거나, 상기 큐 크기가 상승 임계값보다 작고 하강 임계값보다 큰 상태에서 수신된 패킷의 플로우 정보가 제2캐시에 저장되어 있지 않으면, 수신되는 패킷을 폐기한다.
상기 패킷 처리부는, 수신된 패킷의 큐 크기가 상승 임계값을 초과하지 않거나, 큐 크기가 상승 임계값보다 작고 하강 임계값 보다 작은 경우, 제2캐시를 클리어(clear)한 후에 드롭 테일 큐 관리(Drop-tail queue management)를 통해서 패킷의 플로우를 제한한다.
한편, 본 발명에 따른 다른 측면에 따르면, 수신된 패킷들에 대한 플로우 정보를 저장한 제1캐시 및 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값보다 작고 하강 임계값을 초과한 상태에서 수신된 패킷의 플로우 정보들을 저장한 제2캐시를 포함한 라우터의 큐 처리방법에 있어서, 수신된 패킷의 큐 크기가 상승 임계값을 넘어서거나, 상기 큐 크기가 상승 임계값보다 작고 하강 임계값보다 큰 상태인가를 검사하는 단계; 상기 수신된 패킷의 큐 크기가 상승 임계값을 넘어서거나, 상기 큐 크기가 상승 임계값보다 작고 하강 임계값보다 큰 상태이면, 수신된 패킷의 플로우 정보가 제2캐시에 저장 여부에 따라 선택적으로 수신된 패킷을 폐기하는 단계를 포함할 수 있다.
상기 플로우는, 수신된 패킷에 포함된 IP 주소, 포트 넘버와 상기 IP 주소 및 포트번호를 가진 패킷이 상기 라우터에 수신된 횟수를 나타낸 히트 카운트를 포함한다.
수신된 패킷의 큐 크기가 상승 임계값을 초과하지 않거나, 큐 크기가 하강 임계값으로 떨어진 경우, 드롭 테일 큐 관리(Drop-tail queue management)를 통해서 패킷의 플로우를 제한한다.
그리고, 본 발명의 또 다른 측면에 따르면, 수신된 패킷들에 대한 플로우 정보를 저장한 제1캐시 및 큐 크기가 상승 임계값을 초과한 상태에서 수신된 패킷들의 플로우 정보들을 저장한 제2캐시를 포함하는 라우터의 캐시 업데이트 방법에 있어서, 수신된 패킷의 큐 크기가 상승 임계값을 초과한 상태에서 제2캐시의 용량이 풀(full)인가를 검사하는 단계;와 상기 큐 크기가 상승 임계값을 초과한 상태에서 제2캐시의 용량이 풀(full)이면, 수신되는 패킷의 히트 수보다 낮은 플로우 정보를 삭제하는 단계를 포함한다.
상기 큐 크기가 상승 임계값을 초과한 상태에서 제2캐시의 용량이 풀(full)이 아니면, 수신되는 패킷의 플로우 정보를 제2캐시에 저장하는 단계를 더 포함한다.
상기 플로우는, 수신된 패킷에 포함된 IP 주소, 포트 넘버와 상기 IP 주소 및 포트번호를 가진 패킷이 상기 라우터에 수신된 횟수를 나타낸 히트 카운트를 포함한다.
상기 패킷 처리부는, 상기 큐 크기가 상승 임계값을 초과하는 경우나, 큐 크기가 상승 임계값보다 작고 하강 임계값보다 큰 상태에서 제2캐시의 용량이 풀(full)이 아니면, 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값보다 작고 하강 임계값(falling threshold)보다 큰 상태에서 수신되는 패킷의 플로우 정보를 제2캐시에 저장한다.
상기 패킷 처리부는, 상기 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값보다 작고 하강 임계값보다 큰 상태에서 제2캐시의 용량이 풀(full)이면, 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값으로 떨어지지 않은 상태에서 수신되는 패킷의 히트 수보다 낮은 플로우 정보를 제2캐시에서 삭제한다.
상기 패킷 처리부는, 수신된 패킷의 큐 크기가 상승 임계값을 넘어서거나, 상기 큐 크기가 상승 임계값보다 작고 하강 임계값보다 큰 상태에서 수신된 패킷의 플로우 정보가 제2캐시에 저장되어 있지 않으면, 수신되는 패킷을 폐기한다.
상기 패킷 처리부는, 수신된 패킷의 큐 크기가 상승 임계값을 초과하지 않거나, 큐 크기가 상승 임계값보다 작고 하강 임계값 보다 작은 경우, 제2캐시를 클리어(clear)한 후에 드롭 테일 큐 관리(Drop-tail queue management)를 통해서 패킷의 플로우를 제한한다.
한편, 본 발명에 따른 다른 측면에 따르면, 수신된 패킷들에 대한 플로우 정보를 저장한 제1캐시 및 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값보다 작고 하강 임계값을 초과한 상태에서 수신된 패킷의 플로우 정보들을 저장한 제2캐시를 포함한 라우터의 큐 처리방법에 있어서, 수신된 패킷의 큐 크기가 상승 임계값을 넘어서거나, 상기 큐 크기가 상승 임계값보다 작고 하강 임계값보다 큰 상태인가를 검사하는 단계; 상기 수신된 패킷의 큐 크기가 상승 임계값을 넘어서거나, 상기 큐 크기가 상승 임계값보다 작고 하강 임계값보다 큰 상태이면, 수신된 패킷의 플로우 정보가 제2캐시에 저장 여부에 따라 선택적으로 수신된 패킷을 폐기하는 단계를 포함할 수 있다.
상기 플로우는, 수신된 패킷에 포함된 IP 주소, 포트 넘버와 상기 IP 주소 및 포트번호를 가진 패킷이 상기 라우터에 수신된 횟수를 나타낸 히트 카운트를 포함한다.
수신된 패킷의 큐 크기가 상승 임계값을 초과하지 않거나, 큐 크기가 하강 임계값으로 떨어진 경우, 드롭 테일 큐 관리(Drop-tail queue management)를 통해서 패킷의 플로우를 제한한다.
그리고, 본 발명의 또 다른 측면에 따르면, 수신된 패킷들에 대한 플로우 정보를 저장한 제1캐시 및 큐 크기가 상승 임계값을 초과한 상태에서 수신된 패킷들의 플로우 정보들을 저장한 제2캐시를 포함하는 라우터의 캐시 업데이트 방법에 있어서, 수신된 패킷의 큐 크기가 상승 임계값을 초과한 상태에서 제2캐시의 용량이 풀(full)인가를 검사하는 단계;와 상기 큐 크기가 상승 임계값을 초과한 상태에서 제2캐시의 용량이 풀(full)이면, 수신되는 패킷의 히트 수보다 낮은 플로우 정보를 삭제하는 단계를 포함한다.
상기 큐 크기가 상승 임계값을 초과한 상태에서 제2캐시의 용량이 풀(full)이 아니면, 수신되는 패킷의 플로우 정보를 제2캐시에 저장하는 단계를 더 포함한다.
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
이하 본 발명에 따른 라우터 및 그 라우터에서 큐 처리방법을 첨부한 도면을 참조하여 상세히 설명한다.
또한, 이해의 편의를 위하여 비록 다른 도면에 속하더라도 동일한 구성요소에는 동일한 부호를 부여하였음을 주의하여야 한다.
도 2는 본 발명에 따른 라우터의 블록 구성을 나타낸 도면이다.
도 2에 도시된 바와 같이, 라우터는 큐 버퍼(20), 패킷 처리부(21) 및 캐시(22)를 포함한다.
패킷 처리부(21)는 큐 버퍼(20)에 패킷이 수신되면, 캐시(22)의 제1캐시(23)에 수신된 패킷의 플로우(flow) 정보가 있는지를 검사하고, 제1캐시(23)에 수신된 패킷의 플로우 정보가 없으면 제1캐시(23)의 최상위에 위치하는 플로우 정보를 삭 제한 후에 최하위 위치에 수신된 패킷의 플로우 정보를 저장한다.
제1캐시(23)는 다수개의 패킷의 플로우 정보를 저장하고 있다. 플로우 정보는 IP 주소, 포트 넘버 및 히트 카운트를 포함한다. 히트 카운트는 패킷이 큐 버퍼(20)에 수신된 횟수를 나타낸다.
즉, 패킷의 플로우 정보가 큐 버퍼(20)에 저장되어 있으면, 패킷이 수신될 때마다 히트 카운트는 설정된 수, 예를 들어 '1'만큼 증가될 수 있다.
한편, 패킷 처리부(21)는 큐 버퍼(20)의 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않으면, 캐시(22)의 제2캐시(24)를 업데이트 한다.
즉, 패킷 처리부(21)는 제2캐시(24)의 용량이 풀(full)이 아니면, 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않은 상태에서 수신되는 패킷의 플로우 정보를 제2캐시(24)에 저장한다.
이때 제2캐시(24)에 저장되는 플로우 정보는 제2캐시(24)의 최하위에 저장되는 것이 바람직하다.
여기서, 제2캐시(24)는 패킷의 플로우 정보를 저장하고 있다. 제2캐시(24)는 제1캐시(23)의 용량보다 작은 것이 바람직하다.
플로우 정보는 IP 주소, 포트 넘버 및 히트 카운트를 포함한다. 히트 카운트는 패킷이 큐 버퍼(20)에 수신된 횟수를 나타낸다.
한편, 패킷 처리부(21)는 제2캐시(24)의 용량이 풀(full)이면, 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않은 상태에서 수신되는 패킷의 히트 수보다 낮은 플로우 정보를 제2캐시(24)의 최상위에서부터 삭제한 후 제2캐시(24)의 최하위에 저장한다.
반면, 패킷 처리부(21)는 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않은 상태에서 수신되는 패킷의 히트 수보다 낮은 플로우 정보가 없으면 제2캐시(24)에 업데이트를 수행하지 않는다.
한편, 전술한 바와 같이 패킷이 큐 버퍼(20)에 수신될 때마다 이루어지는 캐시의 업데이트 동작과 함께 동시에 패킷 플로우간 불공평성을 해결하기 위한 큐 처리과정도 동시에 수행된다.
이에 대해서 구체적으로 살펴보기로 한다.
패킷 처리부(21)는 큐 버퍼(20)에 패킷이 수신되면, 큐 버퍼(20)의 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않으면, DCRED(double cache RED)을 통해서 패킷의 플로우를 규제한다.
즉, 패킷 처리부(21)는 큐 버퍼(20)의 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않은 상태에서 수신되는 패킷의 플로우 정보가 제2캐시(24)에 저장되어 있는가를 검사한다.
패킷 처리부(21)는 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않은 상태에서 수신되는 패킷의 플로우 정보가 제2캐시(24)에 저장되어 있으면, 높은 폐기 확률(drop probability)을 이용하여 수신되는 패킷을 폐기한다. 이때 높은 폐기 확률을 나타낸 도면이 도 5a에 도시되어 있다.
반면, 패킷 처리부(21)는 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않은 상태에서 수신되는 패킷의 플로우 정보가 제2캐시(24)에 저장되어 있지 않으면, 낮은 폐기 확률(drop probability)을 이용하여 수신되는 패킷을 폐기한다. 이때 낮은 폐기 확률을 나타낸 도면이 도 5b에 도시되어 있다.
도 5a에 도시된 높은 폐기확률은 도 5b에 도시된 낮은 폐기확률에 비해서 폐기확률이 더 높음을 알 수 있다.
한편, 패킷 처리부(21)는 큐 버퍼(20)에 패킷이 수신된 상태에서 큐 버퍼(20)의 큐 크기가 상승 임계값(rising threshold)을 넘어서지 않거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어진 경우, 제2캐시(24)를 클리어(clear)한 후에 드롭 테일 큐 관리(Drop-tail queue management)를 통해서 패킷의 플로우를 규제한다.
도 3은 본 발명에 따른 라우터의 캐시 업데이트 방법에 대한 플로차트를 나타낸 도면이다.
도 3에 도시된 바와 같이, 라우터는 큐 버퍼에 패킷이 수신되면(S10), 제1캐시에 수신된 패킷의 플로우(flow) 정보가 있는지를 검사하고, 제1캐시에 수신된 패킷의 플로우 정보가 없으면 제1캐시의 최상위에 위치하는 플로우 정보를 삭제한 후에 최하위 위치에 수신된 패킷의 플로우 정보를 저장한다(S11).
이때, 제1캐시는 패킷의 플로우 정보를 저장하고 있다. 플로우 정보는 IP 주소, 포트 넘버 및 히트 카운트를 포함한다. 히트 카운트는 패킷이 큐 버퍼에 수신된 횟수를 나타낸다.
즉, 패킷의 플로우 정보가 큐 버퍼에 저장되어 있으면, 패킷이 수신될 때마다 히트 카운트는 설정된 수, 예를 들어 '1'만큼 증가될 수 있다.
라우터는 큐 버퍼의 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않았는가를 검사한다(S12).
라우터는 큐 버퍼의 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않으면, 캐시(22)의 제2캐시(24)를 업데이트 한다.
라우터는 제2캐시의 용량이 풀(full)인가를 검사하고(S13), 제2캐시의 용량이 풀이 아니면 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않은 상태에서 수신되는 패킷의 플로우 정보를 제2캐시에 저장한다(S16).
이때 제2캐시에 저장되는 플로우 정보는 제2캐시의 최하위에 저장되는 것이 바람직하다.
여기서, 제2캐시는 제1캐시의 용량보다 작은 것이 바람직하다.
한편, 라우터는 제2캐시의 용량이 풀(full)이면, 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않은 상태에서 수신되는 패킷의 히트 수보다 낮은 플로우 정보가 저장되어 있는가를 검사한다(S14).
라우터는 제2캐시의 용량이 풀(full)이고, 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않은 상태에서 수신되는 패킷의 히트 수보다 낮은 플로우 정보가 저장되어 있으면, 제2캐시의 최상위에서부터 낮은 히트 수의 플로우 정보들을 삭제한 후 제2캐시의 용량이 풀(full)이고, 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않은 상태에서 수신되는 패킷의 플로우 정보를 제2캐시의 최하위에 저장한다(S15).
반면, 라우터는 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않은 상태에서 수신되는 패킷의 히트 수보다 낮은 플로우 정보가 없으면 제2캐시의 업데이트를 수행하지 않는다.
도 4는 본 발명에 따른 라우터의 큐 처리방법에 대한 플로차트를 나타낸 도면이다.
도 4에 도시된 바와 같이, 라우터는 큐 버퍼에 패킷이 수신되면(S20), 큐 버퍼의 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않는가를 검사한다(S21).
라우터는 큐 버퍼의 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않으면, DCRED(double cache RED)을 통해서 패킷의 플로우를 규제한다.
즉, 라우터는 큐 버퍼의 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않은 상태에서 수신되는 패킷의 플로우 정보가 제2캐시에 저장되어 있는가를 검사한다(S22).
라우터는 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않은 상태에서 수신되는 패킷의 플로우 정보가 제2캐시에 저장되어 있으면, 높은 폐기 확률(drop probability)을 이용하여 수신되는 패킷을 폐기한다(S23). 이때 높은 폐기 확률을 나타낸 도면이 도 5a에 도시되어 있다.
반면, 라우터는 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않은 상태에서 수신되는 패킷의 플로우 정보가 제2캐시에 저장되어 있지 않으면, 낮은 폐기 확률(drop probability)을 이용하여 수신되는 패킷을 폐기한다(S24). 이때 낮은 폐기 확률을 나타낸 도면이 도 5b에 도시되어 있다.
도 5a에 도시된 높은 폐기확률은 도 5b에 도시된 낮은 폐기확률에 비해서 폐기확률이 더 높음을 알 수 있다.
한편, 라우터는 큐 버퍼에 패킷이 수신된 상태에서 큐 버퍼의 큐 크기가 상승 임계값(rising threshold)을 넘어서지 않거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어진 경우, 제2캐시를 클리어(clear)한 후에 드롭 테일 큐 관리(Drop-tail queue management)를 통해서 패킷의 플로우를 규제한다(S25).
도 6은 본 발명에 따른 라우터의 캐시 업데이트 및 큐 처리방법에 대한 Pseudo Code를 예시한 도면이다.
도 6에 도시된 바와 같이, 라우터의 캐시 업데이트 및 큐 처리방법에 관한 Pseudo Code는 수신된 큐의 크기가 상승 임계값을 넘어서거나, 큐의 크기가 상승 임계값을 넘어선 후에 하강 임계값 이하로 떨어지는 것을 기준으로 하여 캐시 업데이트 및 큐 처리를 수행하는 것을 나타낸다.
즉, 수신된 큐의 크기가 상승 임계값을 넘어서거나, 큐의 크기가 상승 임계값을 넘어선 후에 하강 임계값 이하로 떨어지지 않으면, DRED에 의해서 플로우(flow)에 대한 규제가 이루어진다.
반면, 수신된 큐의 크기가 상승 임계값을 넘지 않거나, 큐의 크기가 상승 임계값을 넘어선 후에 하강 임계값 이하로 떨어지면, 드롭 테일 큐 관리(Drop-tail queue management)에 의해서 플로우(flow)에 대한 규제가 이루어진다.
한편, 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값을 넘어 선 후에 하강 임계값으로 떨어지지 않은 상태에서 제2캐시의 용량이 풀(full)이면, 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값으로 떨어지지 않은 상태에서 수신되는 패킷의 히트 수보다 낮은 플로우 정보를 제2캐시에서 삭제한다.
반면, 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값으로 떨어지지 않은 상태에서 제2캐시의 용량이 풀(full)이 아니면, 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값(falling threshold)으로 떨어지지 않은 상태에서 수신되는 패킷의 플로우 정보를 제2캐시에 저장한다.
상술한 바와 같이 본 발명에 따른 라우터 및 그 라우터의 큐 처리방법에 따르면, 수신된 큐의 크기가 상승 임계값을 넘어서거나, 큐의 크기가 상승 임계값을 넘어선 후에 하강 임계값 이하로 떨어지는 것을 기준으로 하여 캐시 업데이트 및 큐 처리를 수행함으로써, 두 개의 캐시를 이용하여 플로우 정보의 업데이트를 위한 오버헤드를 해결하고, 두 개의 캐시를 이용한 RED 큐 관리를 통해서 패킷 플로우간 불공평성을 해결한다.
Claims (11)
- 라우터에 있어서,수신되는 패킷들의 플로우 정보들을 저장한 제1캐시;수신된 패킷의 큐 크기가 상승 임계값을 넘어서거나, 상기 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값 이하로 떨어지지 않은 상태에서 수신된 패킷들의 플로우 정보들을 저장한 제2캐시; 및수신된 패킷의 큐 크기가 상승 임계값을 넘어서거나, 상기 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값 이하로 떨어지지 않은 상태에서 수신된 패킷의 플로우 정보가 제2캐시에 저장되어 있으면 높은 확률을 적용하여 수신된 패킷을 폐기하는 패킷 처리부를 포함하고,상기 패킷 처리부는,수신된 패킷의 큐 크기가 상승 임계값을 넘어서거나, 상기 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값 이하로 떨어지지 않은 상태에서 수신된 패킷의 플로우 정보가 제2캐시에 저장되어 있지 않으면, 낮은 확률을 적용하여 수신되는 패킷을 폐기하는 라우터.
- 제1항에 있어서,상기 플로우는,수신된 패킷에 포함된 IP 주소, 포트 넘버; 와상기 IP 주소 및 포트번호를 가진 패킷이 상기 라우터에 수신된 횟수를 나타낸 히트 카운트를 포함한 라우터.
- 제1항에 있어서,상기 패킷 처리부는,상기 큐 크기가 상승 임계값을 초과하는 경우나, 큐 크기가 상승 임계값보다 작고 하강 임계값보다 큰 상태에서 제2캐시의 용량이 풀(full)이 아니면, 큐 크기가 상승 임계값(rising threshold)을 넘어서거나, 큐 크기가 상승 임계값보다 작고 하강 임계값(falling threshold)보다 큰 상태에서 수신되는 패킷의 플로우 정보를 제2캐시에 저장하는 라우터.
- 제3항에 있어서,상기 패킷 처리부는,상기 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값보다 작고 하강 임계값보다 큰 상태에서 제2캐시의 용량이 풀(full)이면, 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값으로 떨어지지 않은 상태에서 수신되는 패킷의 히트 수보다 낮은 플로우 정보를 제2캐시에서 삭제하는 라우터.
- 삭제
- 제1항에 있어서,상기 패킷 처리부는,수신된 패킷의 큐 크기가 상승 임계값을 초과하지 않거나, 큐 크기가 상승 임계값보다 작고 하강 임계값 보다 작은 경우, 제2캐시를 클리어(clear)한 후에 드롭 테일 큐 관리(Drop-tail queue management)를 통해서 패킷의 플로우를 제한하는 라우터.
- 수신된 패킷들에 대한 플로우 정보를 저장한 제1캐시 및 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값 이하로 떨어지지 않은 상태에서 수신된 패킷의 플로우 정보들을 저장한 제2캐시를 포함한 라우터의 큐 처리방법에 있어서,수신된 패킷의 큐 크기가 상승 임계값을 넘어서거나, 상기 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값 이하로 떨어지지 않은 상태인가를 검사하는 단계;상기 수신된 패킷의 큐 크기가 상승 임계값을 넘어서거나, 상기 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값 이하로 떨어지지 않은 상태이면, 수신된 패킷의 플로우 정보가 제2캐시에 저장 여부에 따라 각각 높은 폐기확률 및 낮은 폐기확률을 선택적으로 적용하여 수신된 패킷을 폐기하는 단계를 포함하고,수신된 패킷의 큐 크기가 상승 임계값을 넘어서지 않거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값으로 떨어진 경우, 드롭 테일 큐 관리(Drop-tail queue management)를 통해서 패킷의 플로우를 규제하는 더 단계를 포함하는 라우터의 큐 처리방법.
- 제7항에 있어서,상기 플로우는,수신된 패킷에 포함된 IP 주소, 포트 넘버; 와상기 IP 주소 및 포트번호를 가진 패킷이 상기 라우터에 수신된 횟수를 나타낸 히트 카운트를 포함한 라우터의 큐 처리방법.
- 삭제
- 수신된 패킷들에 대한 플로우 정보를 저장한 제1캐시 및 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값 이하로 떨어지지 않은 상태에서 수신된 패킷들의 플로우 정보들을 저장한 제2캐시를 포함하는 라우터의 캐시 업데이트 방법에 있어서,수신된 패킷의 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값으로 떨어지지 않은 상태에서 제2캐시의 용량이 풀(full)인가를 검사하는 단계; 와상기 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값으로 떨어지지 않은 상태에서 제2캐시의 용량이 풀(full)이면, 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값으로 떨어지지 않은 상태에서 수신되는 패킷의 히트 수보다 낮은 플로우 정보를 삭제하는 단계를 포함하고,상기 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값으로 떨어지지 않은 상태에서 제2캐시의 용량이 풀(full)이 아니면, 큐 크기가 상승 임계값을 넘어서거나, 큐 크기가 상승 임계값을 넘어선 후에 하강 임계값으로 떨어지지 않은 상태에서 수신되는 패킷의 플로우 정보를 제2캐시에 저장하는 단계를 더 포함하는 라우터의 캐시 업데이트 방법.
- 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070021078A KR101421240B1 (ko) | 2007-03-02 | 2007-03-02 | 라우터 및 그 라우터에서 큐 처리방법 |
US12/074,067 US8339950B2 (en) | 2007-03-02 | 2008-02-29 | Router and queue processing method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070021078A KR101421240B1 (ko) | 2007-03-02 | 2007-03-02 | 라우터 및 그 라우터에서 큐 처리방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080080836A KR20080080836A (ko) | 2008-09-05 |
KR101421240B1 true KR101421240B1 (ko) | 2014-07-18 |
Family
ID=39733018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070021078A KR101421240B1 (ko) | 2007-03-02 | 2007-03-02 | 라우터 및 그 라우터에서 큐 처리방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8339950B2 (ko) |
KR (1) | KR101421240B1 (ko) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003303597A1 (en) | 2002-12-31 | 2004-07-29 | Therasense, Inc. | Continuous glucose monitoring system and methods of use |
US8066639B2 (en) | 2003-06-10 | 2011-11-29 | Abbott Diabetes Care Inc. | Glucose measuring device for use in personal area network |
CA2556331A1 (en) | 2004-02-17 | 2005-09-29 | Therasense, Inc. | Method and system for providing data communication in continuous glucose monitoring and management system |
US20080199894A1 (en) | 2007-02-15 | 2008-08-21 | Abbott Diabetes Care, Inc. | Device and method for automatic data acquisition and/or detection |
US8123686B2 (en) | 2007-03-01 | 2012-02-28 | Abbott Diabetes Care Inc. | Method and apparatus for providing rolling data in communication systems |
WO2008130895A2 (en) | 2007-04-14 | 2008-10-30 | Abbott Diabetes Care, Inc. | Method and apparatus for providing dynamic multi-stage signal amplification in a medical device |
US8456301B2 (en) | 2007-05-08 | 2013-06-04 | Abbott Diabetes Care Inc. | Analyte monitoring system and methods |
US8461985B2 (en) | 2007-05-08 | 2013-06-11 | Abbott Diabetes Care Inc. | Analyte monitoring system and methods |
US8665091B2 (en) | 2007-05-08 | 2014-03-04 | Abbott Diabetes Care Inc. | Method and device for determining elapsed sensor life |
US7928850B2 (en) | 2007-05-08 | 2011-04-19 | Abbott Diabetes Care Inc. | Analyte monitoring system and methods |
US9226701B2 (en) * | 2009-04-28 | 2016-01-05 | Abbott Diabetes Care Inc. | Error detection in critical repeating data in a wireless sensor system |
WO2010138856A1 (en) | 2009-05-29 | 2010-12-02 | Abbott Diabetes Care Inc. | Medical device antenna systems having external antenna configurations |
EP2473099A4 (en) | 2009-08-31 | 2015-01-14 | Abbott Diabetes Care Inc | ANALYTICAL SUBSTANCE MONITORING SYSTEM AND METHODS OF MANAGING ENERGY AND NOISE |
WO2011026147A1 (en) | 2009-08-31 | 2011-03-03 | Abbott Diabetes Care Inc. | Analyte signal processing device and methods |
US20110085444A1 (en) * | 2009-10-13 | 2011-04-14 | Brocade Communications Systems, Inc. | Flow autodetermination |
CN101945045B (zh) * | 2010-09-14 | 2013-01-02 | 北京星网锐捷网络技术有限公司 | 一种更新数据流状态信息的方法、***及设备 |
CN102025631B (zh) * | 2010-12-15 | 2017-03-29 | 中兴通讯股份有限公司 | 一种动态调整出端口缓存的方法及交换机 |
US9968306B2 (en) | 2012-09-17 | 2018-05-15 | Abbott Diabetes Care Inc. | Methods and apparatuses for providing adverse condition notification with enhanced wireless communication range in analyte monitoring systems |
US10169241B2 (en) * | 2016-06-30 | 2019-01-01 | International Business Machines Corporation | Managing memory allocation between input/output adapter caches |
CN111555974B (zh) * | 2020-03-19 | 2023-05-02 | 视联动力信息技术股份有限公司 | 一种数据包的处理方法、装置、终端设备和存储介质 |
US20230291781A1 (en) * | 2022-03-11 | 2023-09-14 | Qualcomm Incorporated | Techniques for multimedia uplink packet handling |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6868065B1 (en) * | 1998-12-18 | 2005-03-15 | Cisco Technology, Inc. | Method and apparatus for implementing a quality of service policy in a data communications network |
US6904015B1 (en) * | 2000-09-01 | 2005-06-07 | Force10 Networks, Inc. | Congestion avoidance profiles in a packet switching system |
KR20060054895A (ko) * | 2004-11-16 | 2006-05-23 | 삼성전자주식회사 | 라우터 및 이를 이용한 패킷의 큐 관리 방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991311A (en) | 1997-10-25 | 1999-11-23 | Centillium Technology | Time-multiplexed transmission on digital-subscriber lines synchronized to existing TCM-ISDN for reduced cross-talk |
US7324442B1 (en) * | 2000-02-28 | 2008-01-29 | The Board Of Trustees Of The Leland Stanford Junior University | Active queue management toward fair bandwidth allocation |
US7369500B1 (en) * | 2003-06-30 | 2008-05-06 | Juniper Networks, Inc. | Dynamic queue threshold extensions to random early detection |
US7512122B1 (en) * | 2003-12-29 | 2009-03-31 | Alcatel Lucent | Identifying QoS flows using indices |
KR100656509B1 (ko) * | 2004-03-03 | 2006-12-11 | 삼성전자주식회사 | 비디오 서비스 대역폭 보장을 위한 패킷 체증제어 방법 |
US20070070907A1 (en) * | 2005-09-29 | 2007-03-29 | Alok Kumar | Method and apparatus to implement a very efficient random early detection algorithm in the forwarding path |
KR100738558B1 (ko) | 2006-02-10 | 2007-07-11 | 삼성전자주식회사 | Tcm isdn 기술이 적용된 차세대 네트워크 시스템 및그 제어방법 |
US7697519B2 (en) * | 2006-10-31 | 2010-04-13 | Hewlett-Packard Development Company, L.P. | Packet processing |
-
2007
- 2007-03-02 KR KR1020070021078A patent/KR101421240B1/ko active IP Right Grant
-
2008
- 2008-02-29 US US12/074,067 patent/US8339950B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6868065B1 (en) * | 1998-12-18 | 2005-03-15 | Cisco Technology, Inc. | Method and apparatus for implementing a quality of service policy in a data communications network |
US6904015B1 (en) * | 2000-09-01 | 2005-06-07 | Force10 Networks, Inc. | Congestion avoidance profiles in a packet switching system |
KR20060054895A (ko) * | 2004-11-16 | 2006-05-23 | 삼성전자주식회사 | 라우터 및 이를 이용한 패킷의 큐 관리 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20080212600A1 (en) | 2008-09-04 |
KR20080080836A (ko) | 2008-09-05 |
US8339950B2 (en) | 2012-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101421240B1 (ko) | 라우터 및 그 라우터에서 큐 처리방법 | |
US11968116B2 (en) | Method and system for facilitating lossy dropping and ECN marking | |
US8824294B2 (en) | Source-based congestion detection and control | |
US6643256B1 (en) | Packet switch and packet switching method using priority control based on congestion status within packet switch | |
US6765905B2 (en) | Method for reducing packet data delay variation in an internet protocol network | |
US8493867B1 (en) | Retransmission and flow control in a logical network tunnel | |
US9571403B2 (en) | Packet marking for flow management, including deadline aware flow management | |
CN106851727B (zh) | 基于多路径路由协议实现自组网拥塞控制的方法 | |
JP5710418B2 (ja) | パケット中継装置、及び方法 | |
CN1816016A (zh) | 用于减少ip分组丢失的路由方法和设备 | |
US8208380B1 (en) | Lossless system support using circular buffer allocation | |
CN112585914B (zh) | 报文转发方法、装置以及电子设备 | |
EP2187580B1 (en) | Method for scheduling packets of a plurality of flows and system for carrying out the method | |
US7813348B1 (en) | Methods, systems, and computer program products for killing prioritized packets using time-to-live values to prevent head-of-line blocking | |
CN110138678B (zh) | 数据传输控制方法和装置、以及网络传输设备和存储介质 | |
US8174985B2 (en) | Data flow control | |
US20120106567A1 (en) | Mlppp occupancy based round robin | |
CN115134308B (zh) | 数据中心无损网络中通过数据包弹跳避免队头阻塞的方法 | |
CN111224888A (zh) | 发送报文的方法及报文转发设备 | |
CN110011924B (zh) | 一种清除缓存拥塞的方法与装置 | |
JPWO2009016692A1 (ja) | パケット処理装置 | |
EP4195615A1 (en) | Network processor with external memory protection | |
US11456962B2 (en) | Delay-aware resource sharing | |
JP2008193310A (ja) | ルータのバッファ管理方法並びにその管理方法を用いたルータ | |
CN112152939A (zh) | 一种抑制非响应流和服务区分的双队列缓存管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
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: 20170629 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180628 Year of fee payment: 5 |