KR100603570B1 - 네트워크 혼잡 제어 장치 및 방법 - Google Patents

네트워크 혼잡 제어 장치 및 방법 Download PDF

Info

Publication number
KR100603570B1
KR100603570B1 KR1020040076111A KR20040076111A KR100603570B1 KR 100603570 B1 KR100603570 B1 KR 100603570B1 KR 1020040076111 A KR1020040076111 A KR 1020040076111A KR 20040076111 A KR20040076111 A KR 20040076111A KR 100603570 B1 KR100603570 B1 KR 100603570B1
Authority
KR
South Korea
Prior art keywords
packet
queue
fragment
reference value
discarded
Prior art date
Application number
KR1020040076111A
Other languages
English (en)
Other versions
KR20060027245A (ko
Inventor
홍현석
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040076111A priority Critical patent/KR100603570B1/ko
Publication of KR20060027245A publication Critical patent/KR20060027245A/ko
Application granted granted Critical
Publication of KR100603570B1 publication Critical patent/KR100603570B1/ko

Links

Images

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
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/23Bit dropping
    • 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/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]

Landscapes

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

Abstract

본 발명에 따른 네트워크 혼잡 제어 장치 및 방법은, IP 패킷 서비스를 제공하는 스위칭 라우팅 서비스 네트워크 장비가 처리할 수 있는 능력 이상으로 입력되는 트래픽으로 인해 혼잡 현상이 발생하는 경우 이를 해결하기 위해 혼잡이 발생하기 이전에 미리 혼잡 발생을 방지하기 위한 것으로, 큐로 입력되는 프래그먼트 형태의 트래픽 흐름에 따라 달라지는 상기 큐에 채워지는 패킷 량의 정도(큐 카운트)를 파악하고, 기 설정된 최대 기준치 및 최소 기준치와 비교한 큐 카운트의 상태에 따라 이미 큐에 도착한 패킷과 큐에 도착하는 패킷에 대한 폐기 여부를 각각 다르게 결정하는 것을 특징으로 한다.

Description

네트워크 혼잡 제어 장치 및 방법{Apparatus and Method for Network Congestion Control}
도 1a는 랜덤조기감지 방법에서 큐의 카운트가 TH_min 보다 작은 경우 큐의 상태도.
도 1b는 랜덤조기감지 방법에서 큐의 카운트가 TH_min와 TH_min 사이인 경우 큐의 상태도.
도 1c는 랜덤조기감지 방법에서 큐의 카운트가 TH_max 보다 큰 경우 큐의 상태도.
도 2는 기존의 랜덤조기감지(RED) 패킷 폐기 확률 함수의 예.
도 3a는 본 발명에 따른 큐의 카운트가 TH_max와 TH_min 사이인 경우의 큐의 상태도.
도 3b는 본 발명에 따른 큐의 카운트가 TH_max보다 크거나 같은 경우의 큐의 상태도.
도 4는 본 발명에 따른 컨트롤러의 동작 흐름도.
*도면의 주요 부분에 대한 부호의 설명*
10 : 큐(Queue) 11 : 최대 기준치(TH_max)
12 : 최소 기준치(TH_min)
본 발명은 네트워크에서 발생하는 트래픽의 혼잡 제어에 관한 것으로, 보다 구체적으로는 IP 패킷 서비스를 제공하는 스위칭 라우팅 서비스 네트워크 장비가 처리할 수 있는 능력 이상으로 입력되는 트래픽으로 인해 혼잡 현상이 발생하는 경우, 이를 해결하기 위해 혼잡이 발생하기 이전에 미리 혼잡 발생을 방지하도록 하는 네트워크 혼잡 제어 장치 및 방법에 관한 것이다.
혼잡 제어(Congestion Control)는 네트워크 장비가 처리할 수 있는 능력 이상으로 입력되는 트래픽 혹은 특정 포트에 집중된 트래픽으로 인해 발생하는 혼잡 현상, 즉 장비가 계속해서 과부하 상태에 있는 것을 해결하는 기술을 말한다.
TCP(Transmission Control Protocol)의 혼잡 제어(Congestion Control) 메카니즘은 1988년의 TCP Tahoe 이래 1990년 TCP Reno, 1995년 TCP Vegas에 이르기까지 다양한 버전으로 구현되었다. TCP의 혼잡 제어 메카니즘의 기본적인 알고리즘은 저속 개시(Slow Start), 혼잡 기피(Congestion Avoidance), 고속 재전송(Fast Retransmit), 그리고 고속 회복(Fast Recovery)으로 구성되어 같이 작동하도록 되 어 있다.
TCP의 혼잡 제어 메카니즘의 주목적은 송신 단말의 전송률을 직접 제어하여 혼잡으로 인해 손실된 데이터를 재전송하기 위함이다. TCP는 OSI(Open Systems Interconnection) 참조 모델의 4계층에 속하는 프로토콜로 송신 단말과 수신 단말 사이의 노드의 수에 상관없이 종단간 동작한다.
TCP 혼잡 제어의 주목적은 송신 단말의 전송률을 직접 제어하여 혼잡(congestion)으로 인해 손실된 데이터를 재전송하기 위함이다. TCP는 OSI 참조 모델의 4계층에 속하는 프로토콜로 송신 단말과 수신 단말 사이의 노드의 수에 상관없이 종단간 동작한다. TCP는 송신 단말과 수신 단말을 양끝으로 하는 하나의 루프(loop)를 형성하여 이 루프에 수신측이 전송하는 인지(Acknowledge) 정보와 윈도우 그리고 타임아웃(timeout) 기능을 이용하여 혼잡 제어 메카니즘을 구현하고 있다.
혼잡 제어 기법 중 랜덤조기감지(Random Early Detection or Random Early Discard)라고도 불리는 RED는 TCP 동작 특성을 이용한 대표적인 혼잡 제어 기법이다. 이름이 암시하는 것처럼 혼잡이 발생하기 이전에 미리 게이트웨이(gateway)에서 큐가 다 채워지지 않았다 하더라도 랜덤한 방식으로 패킷을 버림으로써 특정한 TCP 흐름으로 하여금 전송 속도를 줄이게 하는 방법이다.
기본적인 동작은 큐에 두 개의 기준치(Threshold)인 최소 기준치(TH_min)과 최대 기준치(TH_max)를 두고 세 구간에 서로 다른 폐기 확률을 적용하는 것이다. 이러한 과정은 아래의 도 1에 잘 나타나 있다.
도 1은 랜덤조기감지(RED) 방법의 동작 원리를 나타내고 있다.
도 1a는 큐 사이즈가 TH_min보다 작은 경우의 큐의 상태를, 도 1b는 큐 사이즈가 TH_min과 TH_max 사이인 경우, 도 1c는 큐 사이즈가 TH_max보다 큰 경우를 보여주고 있다.
평균 큐 사이즈(AQS : Average Queue Size)가 TH_min보다 작은 경우에는 어떤 패킷도 버리지 않고 모두 받아들인다. 큐 사이즈가 TH_min보다는 크지만 TH_max보다는 작은 경우에는 큐 사이즈에 따라 특정한 확률 값을 가지고 패킷을 버린다. 큐 사이즈가 TH_max보다 큰 경우는 입력되는 모든 패킷을 버린다. 즉, 혼잡의 정도가 더 심해질수록 많은 패킷을 버림으로써 입력되는 트래픽의 양을 줄이려는 방법이다.
TH_min과 TH_max에 의해 구분되는 각 구간에서 패킷을 버리는 확률은 폐기 확률 함수 혹은 확률 테이블로 작성되며, 가능한 큐 사이즈에 대해 폐기 확률 값들을 정리해 놓고 있다.
도 1b와 도 1c의 경우 버려지는 패킷에 대한 ACK가 소스에 도착하지 않게 되므로, 소스는 전송 속도를 줄이게 되며, 흐름/혼잡 제어의 목적을 달성하게 된다. 하지만, 프래그먼트 된 패킷을 폐기시킨 경우, 목적지 호스트(Host)에서 원래 패킷으로 재조립을 할 수가 없으므로 대역폭을 낭비하는 결과를 초래한다.
도 2는 RED 패킷 폐기 확률 함수의 일례를 보여주고 있다.
K는 최대 큐 사이즈이며, Pmax는 TH_min과 TH_max 사이의 기울기를 결정하 는 값이 된다. 일반적으로, TH_max 값이 너무 작으면 패킷 폐기가 빈번히 발생하여 전체 성능에 심각한 영향을 줄 수도 있으며, TH_max 이상에서 모든 입력되는 패킷을 버리는 동작이 버퍼 오버플로우(Overflow)에 의한 결과와 동일하기 때문에 TH_max를 큐의 최대 크기인 K와 같거나 가까운 값으로 설정하게 된다. 또한 Pmax의 값이 너무 작으면 패킷이 폐기되는 빈도가 낮아져 혼잡 제어 효과가 제대로 나타나지 않을 수도 있다. 따라서, RED를 사용할 때는 TH_min, TH_max, 그리고 Pmax 값을 적절하게 설정해 주는 것이 중요하다.
RED의 조금 다른 형태의 하나로, WRED(Weighted RED : 가중치 랜덤조기감지)가 있는데 WRED는 하나 혹은 여러 개의 서로 다른 클래스 트래픽에 서로 다른 특성(profile or weight)을 갖는 RED 함수를 적용함으로써 혼잡 제어를 수행하는 것을 말한다. 서로 다른 특성을 갖는 RED 함수라는 것인 TH_min, TH_max, 그리고 Pmax 값이 서로 다른 RED 패킷 폐기 확률 함수를 말한다.
도 2의 확률 함수를 WRED에 적용해 보면, 우선 순위가 높은 패킷에 대해서는 보통의 패킷에 비해 패킷 폐기 비율이 적어야 하므로 TH_min값과 TH_max 값이 모두 그래프의 오른쪽으로 이동하게 될 것이다. 전체적으로는 그래프로 K 지점까지는 오른쪽으로 이동하는 양상을 띠게 된다. 반면, 우선 순위가 낮은 패킷에 대해서는 패킷 폐기 비율이 증가하므로 TH_min 값과 TH_max 값이 모두 왼쪽으로 이동할 것임을 예측할 수 있다.
동일한 클래스 트래픽에 WRED를 적용하는 경우는, 같은 클래스에 속한 서로 다른 우선 순위의 패킷들에 서로 다른 RED 함수를 적용하게 된다. 예를 들어, DiffServ(차등화 서비스)의 경우를 생각해 보자.
DiffServ는, 음성 등과 같이 데이터의 흐름이 끊어지면 안 되는 비교적 특별한 형식의 트래픽들에 대해 다른 종류의 일반 트래픽에 비해 우선권을 갖도록 네트웍 트래픽을 등급별로 지정하고, 제어하기 위한 프로토콜이다. DiffServ는 서비스의 등급, 즉 CoS(Class of Service)라고 불리는 형태로 트래픽을 관리하는 가장 진보된 방식이다.
DiffServ는 802.1p에서의 태그 이용 그리고 TOS(Type Of Service) 등과 같은 초창기 방식과는 달리, 주어진 네트웍 패킷을 어떻게 전달할 것인지를 결정하기 위해 단순히 우선순위를 위한 태그를 붙이는 대신, 좀더 복잡한 정책이나 규칙문을 사용한다. 주어진 패킷 이동 규칙에서, 패킷은 홉 당 움직임, 즉 PHB(Per Hop Behaviors)라고 불리는 64개의 가능한 전달 움직임 중 하나가 적용된다. IP 헤더 내 DSCP(DiffServ Code Point)라는 여섯 비트 길이의 필드가 주어진 패킷의 흐름에 대해 홉 당 움직임을 지정한다.
DiffServ의 어떤 클래스 트래픽에 대해 녹색, 노랑, 그리고 빨강으로 파크된 패킷들에 대해 서로 다른 RED 함수를 적용할 수 있는데 낮은 우선순위의 패킷 혹은 클래스에 대해서는 더욱 공격적인 패킷 폐기 확률 함수를 적용하게 되며, 우선순위가 높은 패킷 혹은 클래스에 대해서는 보수적인 패킷 폐기 확률 함수를 적용하게 된다.
차등화 서비스에서는 PHB를 크게 디폴트(default) PHB, EF(Explicit Forwarding) PHB, 그리고 AF(Assured Forwarding) PHB로 나눌 수 있다.
디폴트 PHB는 현재 인터넷에서 통용되고 있는 최선형(Best Effort)과 같은 수준의 서비스를 말하며, 특정 QoS 서비스를 요구하지 않는 모든 패킷에 대해 적용된다. EF PHB는 DiffServ에서 최고 수준의 서비스로서, VoIP나 비디오 컨퍼런스 등과 같은 낮은 손실, 낮은 지연, 낮은 지터 그리고 확고히 보장된 대역폭을 요구하는 서비스 수준에 적합한 PHB이다. AF PHB는 TCP(Transmission Control Protocol)를 기반으로 하는 트래픽을 위한 PHB로서 크게 4개의 클래스로 나누어지며, 각 클래스는 물리적으로 나누어진 각기 자신의 큐에 서비스됨으로써 각기 독립적인 대역폭 관리가 가능하다. 또한 각 클래스 안에서 세 가지의 폐기 우선순위를 적용시켜 세부적으로 12 가지의 클래스로 재 구분된다.
즉, DiffServ의 AFx 클래스의 경우, 동일한 클래스에 3 개의 서로 다른 폐기 우선순위(Drop Precedence)가 존재하는데 각각의 폐기 우선순위에 대해 서로 다른 RED 함수를 적용할 수 있다.
상기한 바와 같은 RED나 WRED 방법을 이용한 혼잡 제어 기술의 경우, 전송 매체에 과부하 발생으로 인하며 IP 프래그멘테이션(Fragmentation)된 패킷들 중 일부만 폐기될 수 있다. IP 프래그멘테이션이란, IP 데이터그램이 네트워크를 통해 전송될 때, 전송되는 IP 데이터그램의 크기가 해당 전송 매체에서 전송될 수 있는 최대 크기(MTU : Maximum Transmission Unit)보다 클 경우 IP 패킷을 몇 개의 작은 패킷으로 나누어서 전송하고 목적지 시스템에서 재조합 하는 과정이다.
도 1 및 도 2를 살펴보면, 일부 패킷이 유실되는 경우 수신측 장비는 원래의 데이터그램으로 조립할 수가 없어서 다시 송신측 장비로 재전송을 요청할 수밖에 없는 구조를 띠고 있다.
즉, 네트워크를 통해서 전송되는 IP 데이터그램의 크기가 해당 전송 매체에서 전송될 수 있는 최대 크기(MTU : Maximum Transmission Unit)보다 클 경우 IP 패킷을 몇 개의 작은 패킷으로 나누어서 전송하고 목적지 시스템으로 재조합 한다. 이 과정에서 프래그먼트 된 패킷의 일부가 전송 도중 유실이 된다면 목적지 재조합을 할 수가 없어서 목적지 시스템은 송신측 시스템에 재전송을 요청하게 된다.
결국, 이러한 과정은 불완전한 IP 프래그멘테이션 된 패킷들로 인한 불필요한 네트워크 대역폭을 낭비하는 결과를 낳게 된다.
본 발명은 상기의 문제점을 해결하기 위해, 불필요한 프래그먼트 패킷이 전송되는 것을 막을 수 있도록 불필요한 트래픽을 사전에 폐기시킴으로써 네트워크 대역폭의 효율적인 이용을 가능케 하는 네트워크 혼잡 제어 장치 및 방법을 제공함을 그 목적으로 한다.
본 발명의 일 측면에 따른 네트워크 혼잡 제어 방법은, 큐로 입력되는 프래그먼트 형태의 트래픽 흐름에 따라 달라지는 상기 큐에 채워지는 패킷 량의 정도(큐 카운트)를 파악하는 단계와 기 설정된 최대 기준치 및 최소 기준치와 비교한 큐 카운트의 상태에 따라 이미 큐에 도착한 패킷과 큐에 도착하는 패킷에 대한 폐기 여부를 각각 다르게 결정하는 단계를 포함한다.
상기 큐 카운트의 상태는 최소 기준치보다 작은 경우, 최소 기준치보다 크거나 같고 최대 기준치보다 작은 경우 및 최대 기준치보다 크거나 같은 경우의 세 가지로 나눌 수 있다.
상기 큐 카운트가 최소 기준치보다 작은 경우에는, 상기 큐에 막 도착하는 패킷이 이전에 폐기된 패킷과 동일한 프래그먼트 ID를 가지는지 검토하여 동일한 프래그먼트 ID를 가지는 경우에는 해당 프래그먼트 패킷을 폐기하고, 그렇지 않은 경우에는 해당 패킷을 상기 큐에 저장한다.
상기 큐 카운트가 최소 기준치보다 크거나 같고 최대 기준치보다 작은 경우에는, 큐에 막 도착하는 패킷이 이전에 폐기된 패킷과 동일한 프래그먼트 ID를 가지는지 검토하여, a) 동일한 프래그먼트 ID를 가지는 경우, 상기 큐에 도착하는 패킷을 폐기하고, b) 동일한 프래그먼트 ID를 가지지 않는 경우에는, 확률 함수에 의해 선택적으로 상기 도착 패킷을 폐기하고, 상기 폐기시킨 패킷의 MF(More Fragment) 비트와 프래그맨트 오프셋 값을 체크하여 상기 폐기시킨 패킷과 동일 프래그먼트 ID의 패킷이 큐에 저장되어 있는지 여부를 파악하고, 상기 큐에 저장된 동일 프래그먼트 ID의 패킷도 모두 폐기한다.
상기 큐 카운트가 최대 기준치보다 크거나 같은 경우에는, 상기 큐에 도착하는 패킷의 MF(More Fragment) 비트를 체크하여 a) 상기 MF 비트가 "0"인 경우에는 상기 도착 패킷만을 폐기하고, b) 상기 MF 비트가 "1"인 경우에는 상기 도착 패킷의 프래그먼트 오프셋 값을 추가로 체크하여, 상기 프래그먼트 오프셋 값이 0인 경 우에는 상기 도착 패킷 및 상기 큐에 저장된 패킷 중 상기 도착 패킷과 동일한 프래그먼트 ID를 가지는 패킷을 모두 폐기하되, 오프셋 값이 0이 아닌 경우에는 상기 도착 패킷만을 폐기한다.
한편, 상기 최소기준치 또는 상기 최대기준치는, 상기 큐에 도착하는 패킷의 중요도에 따라 그 값을 변경하여 설정 가능하다.
본 발명의 다른 측면에 따른 네트워크 혼잡 제어 장치는, 네트워크로부터 입력되는 프래그먼트 형태의 트래픽을 저장하는 큐와 상기 큐로 입력되는 프래그먼트 형태의 트래픽 흐름에 따라 달라지는 상기 큐에 채워지는 패킷 량의 정도(큐 카운트)를 파악하여, 기 설정된 최대 기준치 및 최소 기준치와 비교한 큐 카운트의 상태에 따라 이미 큐에 도착한 패킷과 큐에 도착하는 패킷에 대한 폐기 여부를 달리 결정하는 컨트롤러를 포함한다.
이하, 본 발명에 따른 바람직한 실시예를 도면을 살펴보면서 구체적으로 설명하기로 한다.
본 발명은 크게 출력 큐의 상태를 관리하고 감시하는 컨트롤러와, 다수의 출력 큐로 구성된다. 큐의 개수는 장비에 따라 달라질 수 있으며, RED나 WRED에 따라 임계치(Threshold)의 개수나 범위도 각각 달라질 수 있다. 하기하는 실시예에서는 두 개의 출력 큐를 사용하지만 본 발명에서 제시하는 새로운 형태의 RED_n, WRED_n 알고리즘은 큐의 개수에 영향을 받지 않는다.
본 발명에서 제시하는 새로운 알고리즘 RED_n, WRED_n은 기본적으로 불필요한 프래그먼트 패킷이 전송되는 것을 막기 위해 기존의 RED와 WRED 방법을 개선한 것이다.
상기한 바와 같이 RED나 WRED 방법을 이용한 혼잡 제어 기술의 경우, IP 프래그멘테이션(Fragmentation) 과정을 거치게 되는데, 본 발명의 경우에는 IP 프래그멘테이션 과정은 그대로 이용한다.
IP 프래그멘테이션 과정에서, 각 패킷은 하나의 동일한 프래그먼트 식별번호를 이용하여 재조합 되는데, 이 식별번호는 IP 헤더의 16비트 필드로서, "IP Identification Number" 또는 "프래그먼트 ID(Fragment ID"로 불린다.
또한 각 패킷은 원래 프래그먼트 되기 이전 패킷에서의 위치 즉, 프래그먼트 오프셋(Fragment Offset) 및 해당 프래그먼트의 데이터 길이에 관한 정보를 가진다. 여기서 IP 헤더 20 바이트(byte)는 데이터 길이에서 제외된다. 즉, 이더넷(Ethernet)의 MTU인 1500 바이트가 전송될 때 데이터 길이는 1480(1500-20) 바이트로 표시된다.
각 프래그먼트는 현재 프래그먼트에 추가적인 프래그먼트가 부가되는 경우 MF(More Fragment) 플래그(Flag)를 "1"로 설정한다.
다음으로 본 발명의 동작 원리에 대해 살펴보기로 한다.
도 3a, 3b는 큐의 상태에 따른 컨트롤러의 동작 흐름을 나타내고 있다.
이때 컨트롤러는 큐의 패킷 카운트를 관리하고, 큐의 상태에 따라 유입되는 패킷을 선별적으로 폐기하며, TCP 혼잡제어 특징을 이용하여 전송속도를 줄이는 역할을 담당한다. 이를 위해 컨트롤러는 현재 큐의 패킷 카운트, TH_max, TH_min, 및 Pmax(폐기 확률) 값을 관리하며, 프래그먼트 된 패킷들의 프래그먼트 ID, 프래그먼트 오프셋, MF(More Fragment) 정보를 관리하게 된다.
도 3a는 큐의 카운트가 TH_max와 TH_min 사이인 경우의 큐의 상태를 나타내고 있다.
도 3a에서 보는 바와 같이, 큐의 카운트가 TH_min보다 크거나 같고 TH_max보다는 작은 경우, 큐에 도착하는 패킷이 폐기 확률 함수에 따라 선택적으로 폐기(Drop)되면, 이후에 유입되는 동일한 프래그먼트 ID의 패킷은 무조건 폐기된다. 이 때, 폐기 확률 함수는 시스템 관리자에 의해 설정 및 변경이 가능하다.
큐에 도착하는 패킷을 처리한 후에는, 혹 이미 큐에 도착한 패킷 중에 폐기할 패킷이 있는지도 검토해야 한다. 이는 다음과 같은 과정을 거쳐 처리된다.
첫 번째, 만일 폐기된 패킷의 MF 비트가 "1"로 세팅되어 있고 프래그먼트 오프셋 값이 "0"일 경우, 즉 동일한 프래그먼트 ID를 가지는 패킷 중 맨 처음인 경우, 에는 동일한 프래그먼트 ID를 가지는 패킷은 모두 폐기시켜야 하므로 이후 도착하는 모든 패킷을 폐기시킨다.
일정 시간이 경과한 후 큐의 카운트가 TH_min보다 작아지더라도 이후 도착하는 패킷의 프래그먼트 ID가 폐기된 패킷의 프래그먼트 ID와 동일하다면 그에 해당하는 패킷은 모두 폐기한다.
만일 폐기된 패킷의 MF 비트가 "1"로 세팅되어 있고 프래그먼트 오프셋 값이 "0"이 아닌 경우를 생각해 보자.
이것은 해당 프래그먼트 ID에 대해서 이미 큐에 도착한 프래그먼트 패킷이 존재하는 것을 의미하므로, 동일 프래그먼트 ID를 가지는 패킷 중 이미 큐에 도착한 패킷을 폐기시키고, 이후 큐에 도착하는 동일 프래그먼트 ID의 모든 패킷 또한 폐기시킨다.
일정 시간이 경과한 후 큐의 카운트가 TH_min보다 작아지더라도 이후 도착하는 패킷의 프래그먼트 ID가 폐기된 패킷의 ID와 동일하다면 모두 폐기한다.
두 번째로, 만일 폐기된 패킷의 MF 비트가 "0"으로 세팅되어 있고(프래그먼트되지 않은 경우), 프래그먼트 오프셋 값이 "0"이 아닌 경우에는 해당 프래그먼트 ID를 가지는 패킷 중 가장 마지막으로 도착하는 패킷을 의미하므로 이미 큐에 도착한 동일 프래그먼트 ID의 패킷만을 폐기하면 된다.
상기 세 가지의 실시예에서와 달리, 폐기된 패킷이 프래그먼트 되지 않은 일반 패킷(MF 비트가 "0", 프래그먼트 오프셋 값이 "0"인 경우)이라면 일정 시간이 경과한 후에 큐의 카운트가 TH_min보다 작아지면 이후 도착하는 패킷들을 큐에 받아들이게 된다.
도 3b는 큐의 카운트가 TH_max보다 크거가 같은 경우의 큐의 상태를 나타내고 있다.
큐의 카운트가 TH_max보다 크거나 같은 경우, 동일한 데이터그램(Datagram) 에서 분할된 패킷들은 모두 폐기한다.
그림 3b를 살펴보면, 큐에 도착하는 패킷이 TH_max를 넘어서고 있으므로, 이후 도착하는 패킷들은 모두 폐기한다.
만일 폐기된 패킷의 MF 비트가 "1"로 세팅되어 있고 프래그먼트 오프셋 값이 "0"일 경우, 해당 프래그먼트 ID에 대해서 처음으로 도착한 패킷이기 때문에 이후 큐에 도착하는 동일한 프래그먼트 ID의 모든 패킷을 폐기한다. 일정 시간이 경과한 후에 큐의 카운트가 TH_max 보다 작아지더라도 이후 도착하는 패킷의 프래그먼트 ID가 폐기된 패킷의 ID와 동일하다면 모두 폐기한다.
폐기된 패킷의 MF 비트가 "1"로 세팅되어 있고 프래그먼트 오프셋 값이 "0"이 아닌 경우, 해당 프래그먼트 ID에 대해서 이미 큐에 도착한 프래그먼트 패킷이 존재하기 때문에 이미 큐에 도착한 동일 프래그먼트 ID의 패킷을 폐기하고 이후 큐에 도착하는 동일 프래그먼트 ID의 모든 패킷을 폐기시킨다. 일정 시간이 경과한 후에 큐의 카운트가 TH_max보다 작아지더라도 이후 도착하는 패킷의 프래그먼트 ID가 폐기된 패킷의 ID와 동일하다면 모두 폐기될 것이다.
폐기된 패킷의 MF 비트가 "0"로 세팅되어 있고 프래그먼트 오프셋 값이 "0"이 아닌 경우, 해당 프래그먼트 ID에 대해서 마지막으로 도착한 프래그먼트 패킷을 뜻하므로, 이미 큐에 도착한 동일 프래그먼트 ID의 패킷만을 폐기한다.
만일, 폐기된 패킷이 프래그먼트 되지 않은 일반 패킷(MF 비트가 "0", 프래그먼트 오프셋 값이 "0"인 경우)이라면 일정시간이 경과한 후에 큐의 카운트가 TH_max 보다 작아지면 이후 도착하는 패킷들을 선택적으로 폐기한다.
도 4는 본 발명에 따른 컨트롤러의 동작 흐름을 순서대로 나타내고 있다.
상술한 바와 같이, 본 발명에 따른 컨트롤러는 큐의 상태를 파악하고, 큐에 도착하는 패킷의 폐기 여부를 결정하는 역할을 한다.
구체적인 동작 흐름은 아래와 같이 이루어진다.
프래그먼트 된 패킷이 큐에 도착하면(S41), 컨트롤러는 큐의 카운트가 TH_min보다 작은지 체크한다. 큐의 카운트가 TH_min보다 작은 경우에는 이전에 폐기된 프래그먼트 패킷 동일한 프래그먼트 ID를 가지는 패킷이 있는지 검토한다(S421). 검토 결과 이전에 폐기된 프래그먼트 패킷과 동일한 프래그먼트 ID를 가지는 패킷이 존재하는 경우 해당 프래그먼트 패킷을 폐기한다(S422). 만일, 그러한 패킷이 존재하지 않는 경우에는 해당 패킷을 큐에 저장한다(S423).
상기의 큐 카운트 체크 단계(S420)에서 큐의 카운트가 TH_min보다 크지 않은 경우에는, 큐의 카운트가 TH_min보다 크거나 같고 TH_max 보다 작은지 다시 체크한다(S420). 체크한 결과 큐 카운트가 TH_min 값과 TH_max 값 사이에 위치하는 경우에는, 큐에 도착하는 패킷에 대해 확률적인 폐기 방법을 택하게 된다.
즉, 이전에 폐기된 프래그먼트 패킷과 동일한 프래그먼트 ID를 가지는 패킷이 존재하는 경우에는, 도착하는 패킷을 무조건 폐기하고(S432), 그렇지 않은 경우에는 확률 함수에 의해 선택적으로 해당 패킷을 폐기한다(S433). 이때의 확률 함수는 시스템 및 시스템 관리자의 설정에 따라 달라지며, 변경이 가능하다.
큐에 도착하는 패킷이 폐기 확률 함수에 의해 폐기되지 않는 것으로 선택되 면 해당 패킷을 큐에 저장하고 다음 도착 패킷을 기다렸다 상기의 과정을 반복하며 된다. 반면, 해당 패킷이 폐기될 것으로 선택되고, 실제로 폐기되는 경우(S434)에는, 이미 도착한 패킷에 대해 이래와 같은 체크 단계도 필요하게 된다.
우선, 확률 함수에 의해 폐기된 패킷의 MF 비트가 "1"로 세팅되어 있는지 체크한다(S435). MF 비트가 "1"이 아닌 경우는 동일 프래그먼트 ID를 가지는 패킷이 더 이상 큐로 입력되지 않음을 의미하므로, 433 단계에서 해당 패킷만 폐기하는 것으로 만족하면 된다.
반면, MF 비트가 "1"로 세팅된 경우에는 해당 프래그먼트 오프셋 값이 "0"인지 검토한다(S436). 오프셋 값이 "0"인 경우, 즉 동일한 프래그먼트 ID를 가지는 패킷 중 맨 처음인 경우, 에는 동일한 프래그먼트 ID를 가지는 패킷은 모두 폐기시켜야 하므로 이후에 큐에 도착하는 동일 프래그먼트 ID의 모든 패킷을 상기한 바와 같은 단계의 처음부터 체크하여 폐기시키면 된다. 한편, 오프셋 값이 "0"이 아닌 경우에는, 이미 큐에 도착해 있는 동일 프래그먼트 ID의 모든 패킷도 폐기한다(S437).
큐 카운트 체크의 마지막 단계로, 큐 카운트가 TH_max 보다 더 큰 경우를 들 수 있다. 큐 카운트가 TH_max 보다 큰 경우(S440)에는, 패킷의 MF 비트가 "1"인지 체크한다(S441). 체크 결과 "1"이 아닌 경우에는 해당 패킷만 폐기한다(S443). 만일, 패킷의 MF 비트가 "1"인 경우에는 다시 프래그먼트 오프셋 값이 "0"인지 체크한다(S442), MF 비트가 "0"인 경우에는, 해당 패킷과 이후에 큐에 도착하는 동일 프래그먼트 ID의 모든 패킷을 폐기한다(S444). 반면, 패킷의 프래그먼트 오프셋 값 이 "0"이 아닌 경우에는 큐에 도착하는 해당 패킷 뿐 아니라, 현재 이미 큐에 도착한 동일 프래그먼트 ID의 모든 패킷 또한 폐기시킨다(S445).
본 발명은, 비교적 패킷 사이즈가 작은 데이터그램 전송에는 효율적이지만 불완전한 프래그먼트 패킷들을 전송하는 경우 불필요한 대역폭의 낭비를 초래할 수 있는 기존의 랜덤조기감지 및 가중치 랜점조기감지 방법의 단점을 극복하고 불완전한 프래그먼트 패킷들을 전송 전에 미리 차단함으로써 네트워크 대역폭을 효율적으로 사용할 수 있는 이점을 가진다.

Claims (13)

  1. 네트워크에서 발생하는 트래픽의 혼잡 제어 방법에 있어서,
    큐로 입력되는 프래그먼트 형태의 트래픽 흐름에 따라 달라지는 상기 큐에 채워지는 패킷 량의 정도(큐 카운트)를 파악하는 단계;
    기 설정된 최대 기준치 및 최소 기준치와 비교한 큐 카운트의 상태에 따라 이미 큐에 도착한 패킷과 큐에 도착하는 패킷에 대한 폐기 여부를 각각 다르게 결정하는 단계; 및
    상기 폐기된 패킷과 세트를 이루는 다수의 프래그먼트 패킷을 폐기하는 단계를 포함하는 네트워크 혼잡 제어 방법.
  2. 제 1항에 있어서,
    상기 큐 카운트의 상태는,
    최소 기준치보다 작은 경우, 최소 기준치보다 크거나 같고 최대 기준치보다 작은 경우 및 최대 기준치보다 크거나 같은 경우의 세 가지 중 하나인 것을 특징으로 하는 네트워크 혼잡 제어 방법.
  3. 제 2항에 있어서,
    상기 큐 카운트가 최소 기준치보다 작은 경우에는,
    상기 큐에 막 도착하는 패킷이 이전에 폐기된 패킷과 동일한 프래그먼트 ID 를 가지는지 검토하여 동일한 프래그먼트 ID를 가지는 경우에는 해당 프래그먼트 패킷을 폐기하고, 그렇지 않은 경우에는 해당 패킷을 상기 큐에 저장하는 것을 특징으로 하는 네트워크 혼잡 제어 방법.
  4. 제 2항에 있어서,
    상기 큐 카운트가 최소 기준치보다 크거나 같고 최대 기준치보다 작은 경우에는, 큐에 막 도착하는 패킷이 이전에 폐기된 패킷과 동일한 프래그먼트 ID를 가지는지 검토하여,
    a) 동일한 프래그먼트 ID를 가지는 경우, 상기 큐에 도착하는 패킷을 폐기하고,
    b) 동일한 프래그먼트 ID를 가지지 않는 경우에는, 확률 함수에 의해 선택적으로 상기 도착 패킷을 폐기하는 것을 특징으로 하는 네트워크 혼잡 제어 방법.
  5. 제 4항에 있어서,
    상기 동일한 프래그먼트 ID를 가지지 않는 경우에는,
    상기 폐기시킨 패킷의 MF(More Fragment) 비트와 프래그맨트 오프셋 값을 체크하여 상기 폐기시킨 패킷과 동일 프래그먼트 ID의 패킷이 큐에 저장되어 있는지 여부를 파악하고, 상기 큐에 저장된 동일 프래그먼트 ID의 패킷도 모두 폐기하는 것을 특징으로 하는 네트워크 혼잡 제어 방법.
  6. 제 2항에 있어서,
    상기 큐 카운트가 최대 기준치보다 크거나 같은 경우에는,
    상기 큐에 도착하는 패킷의 MF(More Fragment) 비트를 체크하여
    a) 상기 MF 비트가 "0"인 경우에는 상기 도착 패킷만을 폐기하고,
    b) 상기 MF 비트가 "1"인 경우에는,
    상기 도착 패킷의 프래그먼트 오프셋 값을 추가로 체크하여, 상기 프래그먼트 오프셋 값이 0인 경우에는 상기 도착 패킷 및 상기 큐에 저장된 패킷 중 상기 도착 패킷과 동일한 프래그먼트 ID를 가지는 패킷을 모두 폐기하되, 오프셋 값이 0이 아닌 경우에는 상기 도착 패킷만을 폐기하는 것을 특징으로 하는 네트워크 혼잡 제어 방법.
  7. 제 1항 내지 제 6항 중 어느 한 항에 있어서,
    상기 최소기준치 또는 상기 최대기준치는,
    상기 큐에 도착하는 패킷의 중요도에 따라 그 값을 변경하여 설정 가능한 것을 특징으로 하는 네트워크 혼잡 제어 방법.
  8. 네트워크에서 발생하는 트래픽의 혼잡 제어 장치에 있어서,
    네트워크로부터 입력되는 프래그먼트 형태의 트래픽을 저장하는 큐; 와
    상기 큐로 입력되는 프래그먼트 형태의 트래픽 흐름에 따라 달라지는 상기 큐에 채워지는 패킷 량의 정도(큐 카운트)를 파악하여, 기 설정된 최대 기준치 및 최소 기준치와 비교한 큐 카운트의 상태에 따라 이미 큐에 도착한 패킷과 큐에 도착하는 패킷에 대한 폐기 여부를 달리 결정하고, 상기 폐기된 패킷과 세트를 이루는 다수의 프래그먼트 패킷을 폐기하는 컨트롤러를 포함하는 네트워크 혼잡 제어 장치.
  9. 제 8항에 있어서,
    상기 컨트롤러는, 상기 큐 카운트가 최소 기준치보다 작은 경우,
    상기 큐에 막 도착하는 패킷이 이전에 폐기된 패킷과 동일한 프래그먼트 ID를 가지는지 검토하여 동일한 프래그먼트 ID를 가지는 경우에는 해당 프래그먼트 패킷을 폐기하고, 그렇지 않은 경우에는 해당 패킷을 상기 큐에 저장하는 것을 특징으로 하는 네트워크 혼잡 제어 장치.
  10. 제 8항에 있어서,
    상기 컨트롤러는, 상기 큐 카운트가 최소 기준치보다 크거나 같고 최대 기준 치보다 작은 경우에는, 큐에 막 도착하는 패킷이 이전에 폐기된 패킷과 동일한 프래그먼트 ID를 가지는지 검토하여,
    a) 동일한 프래그먼트 ID를 가지는 경우, 상기 큐에 도착하는 패킷을 폐기하고,
    b) 동일한 프래그먼트 ID를 가지지 않는 경우에는, 확률 함수에 의해 선택적으로 상기 도착 패킷을 폐기하는 것을 특징으로 하는 네트워크 혼잡 제어 장치.
  11. 제 10항에 있어서,
    상기 컨트롤러는, 상기 동일한 프래그먼트 ID를 가지지 않는 경우,
    상기 폐기시킨 패킷의 MF(More Fragment) 비트와 프래그맨트 오프셋 값을 체크하여 상기 폐기시킨 패킷과 동일 프래그먼트 ID의 패킷이 큐에 저장되어 있는지 여부를 파악하고, 상기 큐에 저장된 동일 프래그먼트 ID의 패킷도 모두 폐기하는 것을 특징으로 하는 네트워크 혼잡 제어 장치.
  12. 제 8항에 있어서,
    상기 컨트롤러는, 상기 큐 카운트가 최대 기준치보다 크거나 같은 경우에는, 상기 큐에 도착하는 패킷의 MF(More Fragment) 비트를 체크하여
    a) 상기 MF 비트가 "0"인 경우에는 상기 도착 패킷만을 폐기하고,
    b) 상기 MF 비트가 "1"인 경우에는,
    상기 도착 패킷의 프래그먼트 오프셋 값을 추가로 체크하여, 상기 프래그먼트 오프셋 값이 0인 경우에는 상기 도착 패킷 및 상기 큐에 저장된 패킷 중 상기 도착 패킷과 동일한 프래그먼트 ID를 가지는 패킷을 모두 폐기하되, 오프셋 값이 0이 아닌 경우에는 상기 도착 패킷만을 폐기하는 것을 특징으로 하는 네트워크 혼잡 제어 장치.
  13. 제 8항 내지 제 12항 중 어느 한 항에 있어서,
    상기 최소기준치 또는 상기 최대기준치는,
    상기 큐에 도착하는 패킷의 중요도에 따라 그 값을 변경하여 설정 가능한 것을 특징으로 하는 네트워크 혼잡 제어 장치.
KR1020040076111A 2004-09-22 2004-09-22 네트워크 혼잡 제어 장치 및 방법 KR100603570B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040076111A KR100603570B1 (ko) 2004-09-22 2004-09-22 네트워크 혼잡 제어 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040076111A KR100603570B1 (ko) 2004-09-22 2004-09-22 네트워크 혼잡 제어 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20060027245A KR20060027245A (ko) 2006-03-27
KR100603570B1 true KR100603570B1 (ko) 2006-07-24

Family

ID=37138370

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040076111A KR100603570B1 (ko) 2004-09-22 2004-09-22 네트워크 혼잡 제어 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100603570B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100932001B1 (ko) * 2008-01-28 2009-12-15 충북대학교 산학협력단 액티브 wred를 이용한 서비스의 품질 관리 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990005377A (ko) * 1997-06-30 1999-01-25 윤종용 프레임 릴레이 네트워크에서의 혼잡제어기 및 혼잡 제어방법
JP2000307648A (ja) 1999-04-19 2000-11-02 Canon Inc 通信端末装置
KR20010070203A (ko) * 1999-11-12 2001-07-25 크리스티안 그레그와르 Aal2 접속의 통신폭주 제어 방법 및 장치
KR20020058765A (ko) * 2000-12-30 2002-07-12 이계철 전송 제어 프로토콜/인터넷 프로토콜 네트웍에서 라우터의폭주 제어방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990005377A (ko) * 1997-06-30 1999-01-25 윤종용 프레임 릴레이 네트워크에서의 혼잡제어기 및 혼잡 제어방법
JP2000307648A (ja) 1999-04-19 2000-11-02 Canon Inc 通信端末装置
KR20010070203A (ko) * 1999-11-12 2001-07-25 크리스티안 그레그와르 Aal2 접속의 통신폭주 제어 방법 및 장치
KR20020058765A (ko) * 2000-12-30 2002-07-12 이계철 전송 제어 프로토콜/인터넷 프로토콜 네트웍에서 라우터의폭주 제어방법

Also Published As

Publication number Publication date
KR20060027245A (ko) 2006-03-27

Similar Documents

Publication Publication Date Title
US11356380B1 (en) Systems and methods for queue protection
US7782774B2 (en) TCP optimized single rate policer
Ahammed et al. Anakyzing the performance of active queue management algorithms
EP2887595B1 (en) Method and node for retransmitting data packets in a tcp connection
JP4080911B2 (ja) 帯域監視装置
US7369498B1 (en) Congestion control method for a packet-switched network
US7158480B1 (en) Feedback output queuing system, apparatus, and method
US7656800B2 (en) Transmission control protocol (TCP)
CN109714267B (zh) 管理反向队列的传输控制方法及系统
KR101075724B1 (ko) 통신 시스템에서 패킷 전송 속도 제한 장치 및 방법
US20040246895A1 (en) Bandwidth-limited supervisory packet transmission to control congestion and call establishment in packet-based networks
CN107852371B (zh) 数据分组网络
KR20050088874A (ko) 비디오 서비스 대역폭 보장을 위한 패킷 체증제어 방법
CN102291389A (zh) 一种卫星网络中跨层拥塞控制方法
EP2040423A1 (en) Improved utilization of data links
JP2002111742A (ja) データ伝送フローのパケットをマークするための方法およびこの方法を実行するマーカデバイス
US10469393B1 (en) Data packet network
US20030103458A1 (en) Congestion avoidance apparatus and method for communication network
KR100603570B1 (ko) 네트워크 혼잡 제어 장치 및 방법
KR100674329B1 (ko) 전송 제어 프로토콜/인터넷 프로토콜 네트웍에서 라우터의폭주 제어방법
JP4838739B2 (ja) ルータのバッファ管理方法並びにその管理方法を用いたルータ
US20230308397A1 (en) System and method for calibration of traffic flow acceleration
Shakya et al. An Efficient Queue Management for Adaptive and Non-adaptive Traffics
Chung et al. Performance and Fairness Analyses of a STA/LTA based Internet Congestion Algorithm
Drop Congestion Avoidance Overview

Legal Events

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

Payment date: 20130627

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee