KR100666980B1 - 트래픽 폭주 제어 방법 및 이를 구현하기 위한 장치 - Google Patents

트래픽 폭주 제어 방법 및 이를 구현하기 위한 장치 Download PDF

Info

Publication number
KR100666980B1
KR100666980B1 KR1020040003982A KR20040003982A KR100666980B1 KR 100666980 B1 KR100666980 B1 KR 100666980B1 KR 1020040003982 A KR1020040003982 A KR 1020040003982A KR 20040003982 A KR20040003982 A KR 20040003982A KR 100666980 B1 KR100666980 B1 KR 100666980B1
Authority
KR
South Korea
Prior art keywords
packet
token
traffic
queue
processor
Prior art date
Application number
KR1020040003982A
Other languages
English (en)
Other versions
KR20050076158A (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 KR1020040003982A priority Critical patent/KR100666980B1/ko
Priority to US11/009,713 priority patent/US7447152B2/en
Priority to CNA2005100055471A priority patent/CN1645837A/zh
Publication of KR20050076158A publication Critical patent/KR20050076158A/ko
Application granted granted Critical
Publication of KR100666980B1 publication Critical patent/KR100666980B1/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
    • 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/215Flow control; Congestion control using token-bucket

Abstract

본 발명은 패킷의 중요도에 따라 우선순위를 정하고, 수신 시스템의 가용 리소스(CPU 점유율)를 고려하여 송신 시스템으로부터 수신 시스템으로의 과도한 트래픽의 유입을 방지함으로써 항상 안정적이고 원활한 트래픽 처리량을 유지시키기 위한 폭주 제어 방법 및 이를 구현하기 위한 장치를 제공하기 위한 것으로서, 트래픽 처리속도가 서로 다른 네트워크 프로세서와 호스트 프로세서에 있어서, 상기 호스트 프로세서에서 처리해야 할 패킷과 네트워크 프로세서를 거쳐 포워딩(forwarding)할 패킷을 분류하는 패킷 분류부와, 패킷 분류부에서 호스트 프로세서로 보낼 패킷들을 인큐잉(enqueueing)하는 큐(queue)를 포함하는 네트워크 프로세서; 및 상기 네트워크 프로세서의 인터럽트(interrupt) 신호에 의해 상기 큐에 인큐잉되어 있는 패킷을 토큰 버킷 알고리즘에 따라 출력하여 해당 어플리케이션으로 전송하는 토큰 드라이버와, 토큰 드라이버에서 토큰의 양을 설정할 때 참조할 수 있도록 리소스(resource) 점유율 및 트래픽 특성을 분석하여 모니터링하는 모니터링부를 포함하는 호스트 프로세서로 이루어지는 것을 특징으로 한다.
트래픽, 폭주, 토큰 버킷, 리소스 모니터링, Rate Limiting

Description

트래픽 폭주 제어 방법 및 이를 구현하기 위한 장치 {Method for controlling traffic congestion and apparatus for implementing the same}
도 1은 본 발명에 따라 라우터 장비 내의 폭주 제어를 위한 내부 구성을 도시한 블록도,
도 2는 1에 도시된 구성의 또 다른 예에 관한 블록도,
도 3은 본 발명에 따라 네트워크 프로세서에서 호스트 프로세서로 전달한 패킷과 스위치로 단순 포워딩할 패킷을 분류하는 절차에 관한 흐름도,
도 4a 및 도 4b는 본 발명에 따라 호스트 프로세서에서 동작하는 패킷 처리부의 동작을 도시한 흐름도,
도 5a 및 도 5b는 본 발명에 따라 호스트 프로세서에서 대역폭과 PPS를 고려한 토큰 버킷 알고리즘에 필요한 토큰 생성부의 동작 절차를 도시한 흐름도,
도 6은 본 발명에 따라 호스트 프로세서의 리소스 및 트래픽 특성을 모니터링 하는 동작에 관한 흐름도.
<도면의 주요 부분에 대한 부호 설명>
100 : 네트워크 프로세서 110 : 패킷 분류부
150 : 가변길이 우선순위 큐 200 : 호스트 프로세서
210 : 토큰 드라이버 211 : 토큰 생성부
212 : 토큰 버킷 213 : 패킷 처리부
220 : 모니터링 프로세스 221 : 리소스 감시부
222 : 트래픽 제어부 223 : 트래픽 프로파일
224 : 트래픽 특성 분석부 220A : 호스트 프로세서 A
220B : 호스트 프로세서 B 230 : PCI 버스
300 : 스위치
본 발명은 데이터 통신 네트워크에 관한 것으로서, 더욱 상세하게는 통신 네트워크의 주요 구성요소인 라우터 장비 내의 네트워크 프로세서와 호스트 프로세서간의 트래픽 폭주 제어 방법 및 이를 구현하기 위한 장치에 관한 것이다.
일반적으로 라우터 장비는 기능적으로 데이터 플레인(Data Plane), 제어 플레인(Control Plane), 관리 플레인(Management Plane)으로 분류되며, 각 기능은 네트워크 프로세서와 호스트 프로세서에 탑재되어 동작된다.
네트워크 프로세서에서 동작하는 데이터 플레인(Data Plane)은 패킷 포워딩과 같은 많은 양의 패킷을 스위치 파트로 고속으로 포워딩하는 fast path와 컨트롤 패킷와 같이 단순 포워딩보다 더 복잡한 프로세싱을 요구하는 exception packet(기 본 헤더 이상의 옵션 헤더가 추가된 패킷, 기본 패킷 사이즈 이상으로 간주되어 분할된 패킷 등)을 호스트 프로세서로 전달하여 처리하도록 하는 slow path로 구성된다.
호스트 프로세서에서 동작하는 제어 플레인(Control Plane), 관리 플레인(Management Plane)은 라우팅 프로토콜 메시지 프로세싱을 통한 라우팅 테이블의 구성 및 운영자에 의한 관리 기능을 담당한다.
이때, 고속의 네트워크 프로세서와 호스트 프로세서간의 slow path로 처리 용량 이상의 과도한 트래픽이 유입시 상위 호스트 프로세서는 처리 불능 상태가 발생될 수 있으며, 이러한 상태에서의 효율적인 폭주 제어 및 흐름 제어를 위한 많은 연구가 활발히 진행되고 있다.
현재까지, CPU 처리 용량이 다른 두 프로세서간의 흐름 제어를 위해서는 두 프로세서간의 데이터 버퍼(shared queue)를 사용하며, 수신 시스템의 버퍼 오버플로우가 발생되지 않도록 송신 시스템에서의 데이터 전송률을 제어하는 방식이 일반적이다.
흐름제어를 위해 사용되는 방법은 다음과 같다.
1. Tail-Drop : Queue Full 이나 오버플로우 발생시 나중에 유입되는 패킷들이 버려지도록 하는 방식
2. 정지-대기 : 패킷 전송후 ACK 신호를 수신하여야 다음 패킷을 전송
3. 슬라이딩 윈도우 : n 개의 데이터 패킷 전송 후 모든 데이터 패킷 전송에대한 ACK 신호가 수신되어야 다음 데이터 패킷을 전송
4. 토큰 발생률 동적 제어 : 수신 데이터 버퍼에 임계치를 설정하여 데이터 버퍼에 저장되는 셀이 임계치를 넘는지 여부에 따라 토큰 발생기의 토큰 발생률을 제어하는 방식
상기 방식에서 정지-대기 방식을 상세히 살펴보기로 한다.
정지-대기 방식은 송신 시스템에서 하나의 데이터 패킷을 전송한 후, 데이터 패킷을 전송하기 전에 수신 시스템으로부터 응답을 기다린다. 수신 시스템은 수신한 데이터 패킷에 에러가 없으면 ACK 신호를 보내고 그렇지 않으면 NACK 신호를 보낸다. 이러한 정지-대기 방식은 간단하게 구현할 수 있는 방식이지만, 이전 패킷에 대한 응답이 수신된 후에야 다음 패킷을 전송할 수 있기 때문에 하나의 프레임이 링크를 점유하는 시간이 길어져서 데이터 처리 효율(throughput)이 좋지 않다.
반면, 슬라이딩 윈도우 방식은 송신 시스템이 ACK 신호를 기다리지 않고 n개의 데이터 패킷을 전송한다. 수신 시스템에서 최대 n 개의 데이터 패킷들을 순서대로 수신하여 데이터 버퍼에 저장하고 이미 수신된 모든 데이터 패킷들의 수신이 확인되면 다음 데이터 패킷의 전송을 요청하기 위한 ACK 신호를 송신한다.
만약, 어떤 데이터 패킷이 유실되었거나 에러를 가지고 있다면 해당하는 데이터 패킷의 재전송을 요청한다. 여기서 파라미터 n은 다른 표현으로 윈도우 크기라 하며 송신 시스템이 ACK 신호를 받기 전에 계속 전송할 수 있는 데이터 패킷의 개수를 나타낸다. 이러한 슬라이딩 윈도우 방식은 정지-대기 방식에 비해서 성능은 개선되었지만 송신 및 수신 시스템에서 복수개의 데이터 패킷들을 처리하여야 하기 때문에 구현이 복잡하다는 단점이 있다.
또한, 토큰 발생률 동적 제어 방식은 수신측의 가용 리소스(CPU 점유율 등)를 고려하지 않은 단순한 레이트 리미팅(rate limiting) 수준의 메카니즘을 제공할 뿐이다.
따라서 본 발명은 상기와 같은 문제점들을 해결하기 위한 것으로서, 본 발명의 목적은 패킷의 중요도에 따라 우선순위를 정하고, 수신 시스템의 가용 리소스(CPU 점유율)를 고려하여 송신 시스템으로부터 수신 시스템으로의 과도한 트래픽의 유입을 방지함으로써 항상 안정적이고 원활한 트래픽 처리량을 유지시키기 위한 폭주 제어 방법 및 이를 구현하기 위한 장치를 제공하는데 있다.
이러한 목적을 달성하기 위한 본 발명에 따른 트래픽 폭주 제어 장치는 네트워크 프로세서와 호스트 프로세서에 있어서,상기 호스트 프로세서에서 처리해야 할 패킷과 네트워크 프로세서를 거쳐 포워딩(forwarding)할 패킷을 분류하는 패킷 분류부와, 패킷 분류부에서 호스트 프로세서로 보낼 패킷들을 인큐잉(enqueueing)하는 큐(queue)를 포함하는 네트워크 프로세서; 및 토큰의 양과 큐의 깊이를 설정할 때 참조할 수 있도록 패킷 처리를 위한 시스템의 리소스(resource) 점유율과 패킷의 트래픽 특성을 분석하여 모니터링하는 모니터링부와, 상기 모니터링부로부터 얻은 정보에 따라 주기적으로 정해진 비율(rate)만큼의 토큰을 생성하며, 큐의 깊이를 관리하여 트래픽의 양을 조절하는 토큰 드라이버를 포함하는 호스트 프로세서를 포함하는 것을 특징으로 한다.
상기 버퍼는 큐(queue)를 사용하며, 상기 송신 프로세서 또는 수신 프로세서는 패킷을 버퍼로 송신하기 전에 수신 프로세서에서 패킷을 처리할 수 있는 자원이 있는지 여부를 표시하기 위한 플래그(flag)를 둔다.
상기의 목적을 달성하기 위한 본 발명에 따른 트래픽 폭주 제어 방법은, 송신 프로세서와 수신 프로세서간의 트래픽 폭주를 억제하기 위한 방법에 있어서, 송신 프로세서에서 수신 프로세서로 전달할 패킷인지를 구분하는 단계; 수신 프로세서로 전달할 패킷이면 수신 프로세서의 패킷 수신 가능 유무를 나타내는 플래그를 점검하여, 패킷 수신 가능상태일 때 해당 패킷을 수신 프로세서로 전달하는 단계; 및 수신 프로세서는 송신 프로세서로부터 수신된 패킷을 토큰의 유무에 따라 해당 어플리케이션으로 전송하거나 더 이상 패킷을 수신하지 않도록 처리하는 단계를 포함한다.
상기 수신 프로세서의 패킷 수신 가능 유무를 나타내는 플래그를 점검하여, 패킷 수신 가능상태일 때 해당 패킷을 수신 프로세서로 전달하는 단계는, 송신 프로세서에서 수신 프로세서로 전송할 패킷이 발생되면, 패킷 수신 가능 유무를 나타내는 플래그 값을 판별하는 단계; 플래그 값이 더 이상 패킷을 수신할 수 없음을 의미하는 값으로 설정되어 있으면, 해당 패킷을 버리는(discard) 단계; 플래그 값이 패킷 수신이 가능함을 의미하는 값으로 설정되어 있으면, 패킷의 우선순위를 비교하는 단계; 패킷의 우선순위에 따라 해당 우선순위 큐에 인큐잉하는 단계; 및 인 큐잉 후 수신 프로세서로 인터럽트 신호를 전송하는 단계를 포함하는 것을 특징으로 한다.
상기 우선순위 비교 단계는 망의 특성에 따라 운영자가 해당 항목을 설정할 수 있으며, 우선적으로 처리하도록 설정된 패킷에 해당하는 항목은 '하이' 우선순위 큐에 인큐잉되고, 우선적으로 처리하도록 설정된 패킷에 해당하는 항목이 아닌 경우 '로우' 우선순위 큐에 인큐잉되는 것을 특징으로 한다.
상기 수신 프로세서가 송신 프로세서로부터 수신된 패킷을 토큰의 유무에 따라 해당 어플리케이션으로 전송하거나 더 이상 패킷을 수신하지 않도록 처리하는 단계는, 패킷 수신 가능 유무를 나타내는 플래그값에 따라 패킷 수신 가능한 경우로 판단되면, 큐로부터 패킷을 디큐잉하는 단계; 패킷 처리부에 의해 소모된 토큰양과 토큰 생성부에 의해 생성된 토큰양을 비교하여 토큰 잔량을 계산하는 단계; 토큰 잔량이 없는 것으로 판단되면 플래그를 패킷 수신 가능하지 않은 값으로 설정하는 단계; 토큰 잔량이 있는 것으로 판단되면 소모된 토큰의 양을 갱신하는 단계; 현재 수신된 패킷을 해당 어플리케이션으로 전송하는 단계; 및 큐로부터 디큐잉할 패킷이 있는 지를 판단하여, 더 이상 디큐잉 할 패킷이 없으면 패킷 처리 핸들러를 종료하는 단계를 포함하는 것을 특징으로 한다.
또한, 큐로부터 디큐잉할 패킷이 있는 것으로 판단되면 해당 큐로부터 패킷을 디큐잉하는 단계를 더 포함한다.
그리고, 패킷 수신 가능 유무를 나타내는 플래그값이 더 이상 패킷을 수신할 수 없는 경우로 판단되면, 패킷 처리 핸들러를 종료하는 단계를 포함한다.
상기 토큰 잔량 계산 단계는 토큰 처리부에 의해 소모된 토큰 값 중 대역폭(bps)에 대한 값과 토큰 생성부에 의해 생성된 토큰 값 중 대역폭(bps)에 대한 값을 비교하여 잔량을 산출하고, 토큰 처리부에 의해 소모된 토큰 값 중 단위시간(1초)당 패킷수(pps)에 대한 값과 토큰 생성부에 의해 생성된 토큰 값 중 단위시간(1초)당 패킷수(pps)에 대한 값을 비교하여 잔량을 산출하는 것을 특징으로 한다.
상기의 목적을 달성하기 위해 본 발명에 따라 트래픽 폭주를 억제하기 위해 대역폭 및 패킷수를 고려하여 토큰을 생성하는 방법은, 대역폭 및 패킷수를 초기화하는 단계; 토큰 생성부의 타이머를 구동시키는 단계; 패킷 처리부에 의해 소모된 토큰양과 토큰 생성부에 의해 생성된 토큰양을 비교하여 토큰 잔량을 계산하는 단계; 초기화시의 토큰 생성값으로부터 토큰 잔량값을 감산하여 토큰 값(대역폭 및 패킷수)을 업데이트하는 단계; 및 플래그를 패킷 수신 가능 상태로 설정하는 단계를 포함하는 것을 특징으로 한다.
상기 토큰 잔량 계산 단계는 토큰 처리부에 의해 소모된 토큰 값 중 대역폭(bps)에 대한 값과 토큰 생성부에 의해 생성된 토큰 값 중 대역폭(bps)에 대한 값을 비교하여 잔량을 산출하고, 토큰 처리부에 의해 소모된 토큰 값 중 단위시간(1초)당 패킷수(pps)에 대한 값과 토큰 생성부에 의해 생성된 토큰 값 중 단위시간(1초)당 패킷수(pps)에 대한 값을 비교하여 잔량을 산출하는 것을 특징으로 한다.
상기의 목적을 달성하기 위해 본 발명에 따라 트래픽 폭주를 억제하기 위해 수신 프로세서의 리소스를 모니터링하는 방법은, 타이머를 이용하여 주기적으로 리소스 점유율 및 트래픽 특성을 분석하는 단계; 설정된 임계치 이상의 리소스 점유율을 나타낸 경우, 미리 설정된 프로파일중 해당 큐 깊이(depth) 및 토큰 값에 대한 항목을 찾는 단계; 찾아진 프로파일 정보에 의해 큐의 깊이가 새로운 값으로 설정되어야 하는 경우, 큐의 깊이에 대한 새로운 값을 패킷 처리부로 알려주어 큐의 깊이를 조절하도록 하는 단계; 및 찾아진 프로파일 정보에 의해 토큰 생성률이 새로이 설정되어야 하는 경우, 토큰 생성률에 대한 새로운 값을 토큰 생성부로 알려주어 토큰의 양을 조절하도록 하는 단계를 포함하는 것을 특징으로 한다.
상기 토큰 생성률은 대역폭(bps:byte per second) 및 패킷수(pps:packet per second)에 따라 다른 값이며, 상기 수신 프로세서의 리소스 모니터링을 수행하는 처리부와 패킷 처리부 및 토큰 생성부 간에 각각 ioctl( ) 함수를 이용하여 통신하는 것을 특징으로 한다.
이하, 본 발명이 속하는 분야에 통상의 지식을 지닌자가 본 발명을 용이하게 실시할 수 있도록 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명한다.
도 1은 본 발명에 따라 라우터 장비 내의 폭주 제어를 위한 내부 구성을 도시한 블록도이다.
도 1을 참조하면, 본 발명에 따른 라우터 장비는, 수신되는 패킷을 어디로 보내어 처리할 지를 결정하여 다음 라인으로 전송하는 네트워크 프로세서(100), 네트워크 프로세서(100)로부터 수신되는 패킷에 대해 라우팅 프로토콜 프로세싱을 통 해 라우팅할 목적지를 검색하고 전체 시스템의 관리 기능을 담당하는 호스트 프로세서(200), 네트워크 프로세서(100)를 통해 수신되는 패킷을 목적지로 스위칭하는 스위치(300)로 구성된다.
상기 네트워크 프로세서(100)는 수신되는 패킷 중 호스트 프로세서에서 처리해야할 exception 패킷을 분류하는 패킷 분류부(110)와, 패킷의 중요도에 따라 해당 큐에 저장하는 가변길이 우선순위 큐(150)를 포함한다.
상기에서 exception 패킷은 네트워크 프로세서(100)를 통해 직접 스위치(300)로 고속 전달되는 패킷이 아닌 호스트 프로세서(200)에서 임의의 복잡한 처리 과정을 거쳐야 하는 패킷으로서, 컨트롤 패킷이나 기본 헤더 이상의 옵션 헤더가 추가된 패킷 또는 기본 패킷 사이즈 이상으로 간주되어 분할된 패킷 등을 의미한다.
상기 가변길이 우선순위 큐(150)는 중요도에 따라 하이(151)와 로우(152)로 나뉘며, 큐의 깊이(depth)는 가변적으로 설정가능하다.
상기 호스트 프로세서(100)는 네트워크 프로세서(100)의 인터럽트(interrupt) 신호에 의해 우선순위 큐(150)에 인큐잉(enqueueing)되어 있는 패킷을 토큰(token) 발생률에 따라 제어하여 해당 어플리케이션으로 전송하는 토큰 드라이버(210)와, 토큰 드라이버(210)에서 적정수준의 토큰 생성 및 토큰 처리에 관한 파라미터(parameter)를 설정할 수 있도록 리소스(resource) 점유율 및 트래픽 특성을 분석하여 모니터링하는 모니터링 프로세스(220)로 구성된다.
한편, 본 발명의 또 다른 실시예에서는 도 2에 도시된 바와 같이, 부하 분담(load sharing)을 위해 토큰 드라이버(210)와 모니터링 프로세스(220)를 분리하여 구성하고, 토큰 드라이버(210)와 모니터링 프로세스(220)간의 데이터 교환은 PCI 버스(230)를 통해 이루어진다.
도 1 및 도 2의 토큰 드라이버(210)는 주기적으로 정해진 비율(rate)만큼의 토큰을 생성하는 토큰 생성부(211)와, 트래픽의 대역폭 및 패킷 속도를 고려하여 설정되는 토큰 버킷(bucket)(212)과, 큐의 깊이(depth)를 관리하고 큐에 수신된 패킷을 처리하는 패킷 처리부(213)를 포함한다.
상기 토큰 버킷(212)에 대한 이해를 돕기 위해 토큰 버킷 방식을 간략하게 설명하면 다음과 같다. 입력된 트래픽은 일단 데이터 버퍼에 저장되며 데이터 버퍼에 저장된 트래픽은 주기적으로 발생되는 토큰에 의해서 출력된다. 즉, 토큰을 얻을 때까지 기다렸다가 트래픽을 전송함으로써 트래픽의 출력 속도를 조절할 수 있다.
그리고 도 1 및 도 2의 모니터링 프로세스(220)는 시스템 CPU 가용 리소스(resource)를 실시간 모니터링하는 리소스(CPU) 감시부(221)와, 유입되는 트래픽의 특성을 분석하는 트래픽 특성 분석부(224)와, 측정된 리소스 가용상태와 트래픽의 특성에 따라 큐의 깊이(depth), 토큰 생성률을 미리 설정해 놓은 트래픽 프로파일(profile)(223)과, 상기 리소스 감시부(220) 및 트래픽 특성 분석부(224)로부터 얻은 정보를 통해 트래픽 량 조절을 위한 토큰 생성 및 패킷 처리 파라미터를 조절하는 트래픽 제어부(222)를 포함한다.
한편, 상기 네트워크 프로세서(100)와 호스트 프로세서(200)간의 데이터 송 수신 처리 방법은 인터럽트 드리븐(interrupt driven) 방식의 메카니즘을 사용한다.
본 발명은 수신 패킷들의 사이즈와 패킷의 수에 따라 시스템의 부하에 미치는 영향을 고려하여, 수신 시스템(호스트 프로세서)에서 처리 가능한 대역폭(bps:byte per second)과 패킷 카운터(pps:packet per second)를 토큰 버킷의 토큰 생성률 및 토큰 처리율에 반영하도록 구성한다. 이때 대역폭(bps)와 패킷 카운터(pps)는 운영자에 의해 다이나믹하게 설정할 수 있다.
설정된 대역폭과 패킷 카운터의 조합한 결과 패킷 트래픽이 폭주하더라고, 호스트 프로세서의 CPU 점유율을 maxCPU 임계치와 minCPU 임계치 사이를 항상 유지하도록 한다.
모니터링 프로세스(220) 내의 트래픽 특성 분석부(224)는 단위 시간당 수신된 패킷들의 사이즈별 카운트와 전송 속도, rate limiting에 의해 폐기된 패킷의 수, 소모된 토큰의 양을 분석하여 현재 트래픽 상황에 맞는 최적의 bps/pps를 결정한다. 그리고 결정된 bps/pps 정보를 트래픽 제어부(222)로 전달한다.
bps가 낮고 pps가 높은 경우는 사이즈가 작은 패킷이 많이 유입되는 상황에 해당하므로 pps를 높여주는 것이 바람직하다.
반대로, bps가 높고 pps가 낮은 경우는 사이즈가 큰 패킷이 천천히 유입되는 상황에 해당하므로 bps를 높여주는 것이 바람직하다.
따라서, 호스트 프로세서(200)의 CPU 점유율(가용 리소스)을 주기적으로 또는 실시간 모니터링하여 트래픽 특성을 분석한 결과, 설정된 임계치를 초과하는 경 우에는 생성되는 토큰의 양과 큐의 깊이를 조절함으로써, 호스트 프로세서로 유입되는 패킷의 양을 원천적으로 조절할 수 있게 된다.
즉 모니터링 프로세스(220)의 리소스 감시부(221)는 CPU 점유율이 미리 정해진 임계치를 초과하는 경우 실시간으로 트래픽 제어부(222)에 알려야 하고, 트래픽 제어부(222)는 리소스 감시부(221)로부터 얻은 CPU 점유율과 트래픽 특성 분석부(224)로부터 얻은 트래픽 특성에 따라 트래픽 양을 조절하기 위해 토큰 생성부(211)와 패킷 처리부(213)에 새로운 트래픽 파라미터를 재설정한다.
각 경우에 따른 상세한 동작은 다음과 같이 정리될 수 있다.
1. 호스트 프로세서(200)의 CPU 점유율이 높고, 유입된 패킷들의 bps/pps가 낮은 경우 : 호스트 프로세서(200)상의 다른 어플리케이션 및 OS(Operating System)에 의해 일시적으로 리소스가 많이 사용되는 상황으로 판단하여, 우선순위 큐의 깊이를 늘려 데이터를 버퍼링한다.
2. 호스트 프로세서(200)의 CPU 점유율이 높고, 유입된 패킷들의 bps/pps가 높은 경우 : 유입되는 패킷의 양을 조절하기 위해 단위 시간당 생성되는 토큰의 양을 줄인다.
3. 호스트 프로세서(200)의 CPU 점유율이 낮고, 유입된 패킷들의 bps/pps가 높은 경우 : 유입되는 패킷의 양을 늘여도 호스트 프로세서(200)의 동작에 부담이 되지 않으므로, 생성되는 토큰의 수를 늘인다.
4. 호스트 프로세서(200)의 CPU 점유율이 낮고, 유입된 패킷들의 bps/pps가 낮은 경우 : 가장 안정적인 수준의 큐 깊이와 토큰 생성률을 유지한다.
상기 각 경우에 대한 프로파일은 아래 표 1과 같이 설정될 수 있다.
모니터링 측정치 결과 반영치
CPU 점유율 BPS PPS 큐 깊이 cp_bps cp_pps
1 <=minCPU <=minBPS <=minPPS norQUEUE norBPS norPPS
2 <=minCPU <=minBPS >=maxPPS norQUEUE norBPS maxPPS
3 <=minCPU >=maxBPS <=minPPS norQUEUE maxBPS norPPS
4 <=minCPU >=maxBPS >=maxPPS norQUEUE maxBPS maxPPS
5 >=maxCPU <=minBPS <=minPPS maxQUEUE norBPS norPPS
6 >=maxCPU <=minBPS >=maxPPS maxQUEUE norBPS maxPPS
7 >=maxCPU >=maxBPS <=minPPS maxQUEUE maxBPS norPPS
8 >=maxCPU >=maxBPS >=maxPPS maxQUEUE maxBPS maxPPS
이하 상기와 같이 구성된 라우터 장비 내에서 실제로 트래픽 폭주를 제어하기 위한 과정에 관하여 상세히 설명하기로 한다.
도 3은 본 발명에 따라 네트워크 프로세서에서 호스트 프로세서로 전달할 패킷과 스위치로 단순 포워딩할 패킷을 분류하는 절차에 관한 흐름도이다.
도 3을 참조하면, 네트워크 프로세서(100)에서 호스트 프로세서(200)로 전달할 패킷을 분류하여 처리하기 전에, 임의의 시스템으로부터 패킷을 수신받는다(S1).
수신한 패킷에 대한 데이터 처리를 수행한 뒤(S2), 패킷 분류부(110)에서 exception 패킷인지, 스위치(300)로 단순 포워딩할 패킷인지를 구분한다.
이때 패킷을 구분하는 방법은 패킷의 헤더 타입을 통하여 판별할 수 있다.
현재 수신한 패킷이 exception 패킷이면, 이 패킷을 인큐잉 할지 버릴지(discard)를 결정하기 위해 호스트 프로세서(200)의 토큰 드라이버(210)에 의해 설정된 flow_control 플래그(flag)를 체크한다(S4).
즉 flow_control이 ENQUEUE 가능한 상태인지를 판별한다.
본 발명의 실시예에는 플래그 값이 1이면 패킷을 더 이상 수신할 수 없는 경우를 의미하고, 플래그 값이 0이면 패킷의 유입이 가능한 경우를 의미한다.
따라서, 플래그 값이 1이면 flow_control이 ENQUEUE 가능하지 않은 상태(STOP_ENQUEUE)이므로, 현재 수신한 패킷을 버리고(DISCARD), 패킷 드랍 카운트(Drop_count)를 1씩 증가시킨다(S5).
만약 S4에서 플래그 값이 0이면 flow_control이 ENQUEUE 가능한 상태이므로, 현재 수신한 패킷의 중요도를 판단하여(S6) 우선 순위 큐(150)의 하이(151) 큐와 로우(152) 중 해당 큐에 인큐잉한다(S7, S8).
패킷의 중요도를 판단하는 방법은 망의 특성에 따라 운영자가 설정할 수 있으며, 본 발명에서는 IPC를 통해 수신된 패킷이거나 프로토콜 타입에 따라 설정할 수 있는 것으로 한다.
이와 같은 방법으로 패킷이 해당 큐에 인큐잉되면, 네트워크 프로세서(100)는 호스트 프로세서(200)로 인터럽트 신호를 송신하여 패킷을 처리하도록 한다.
상기의 과정에 따라 호스트 프로세서(200)로 패킷이 유입되면, 호스트 프로세서(200)는 수신한 패킷을 일련의 알고리즘에 따라 처리하게 되는데, 그 과정은 다음과 같다.
도 4는 본 발명에 따라 호스트 프로세서에서 동작하는 패킷 처리부의 동작을 도시한 흐름도이다.
도 4a 및 도 4b를 참조하면, 먼저 호스트 프로세서(200)는 네트워크 프로세서(100)로부터 인터럽트 신호를 수신한다.
이전 패킷 처리시 이미 정해진 비율(rate)을 초과한 경우가 발생되었을 가능성이 있으므로, flow_control 플래그를 체크한다(S10).
즉 flow_control이 ENQUEUE 가능한 상태인지 STOP_ENQUEUE를 판별한다.
S10에서 flow_control이 STOP_ENQUEUE인 것으로 판단되면, 패킷 처리 핸들러를 종료한다.
S10에서 flow_control이 ENQUEUE인 것으로 판단되면, '하이'(151) 우선순위 큐를 우선적으로 체크하여 큐가 empty 인지를 판단한다(S11).
'하이'(151) 우선순위 큐가 empty가 아니면, '하이'(151) 우선순위 큐로부터 패킷을 디큐잉(dequeueing)한다(S12).
'하이'(151) 우선순위 큐가 empty이면, '하이'(151) 우선순위 큐로부터 디큐잉(dequeueing)할 패킷이 없으므로 '로우'(152) 우선순위 큐를 체크하여 '로우'(152) 우선순위 큐로부터 패킷을 디큐잉(dequeueing)한다(S13).
이때 '하이'우선순위 큐(151)를 우선적으로 처리함으로써 '로우' 우선순위 큐(152)보다 '하이'우선순위 큐(151)의 패킷은 상대적으로 버려지는 패킷이 줄어든다.
패킷 처리부(213)에 의해 소모된 토큰(dp_bps, dp_pps)과 토큰 생성부(211)에 의해 생성된 토큰(cp_bps, cp_pps)을 비교하여(S14, S17) 잔량을 계산한다(S15, S16, S18, S19).
토큰 잔량 계산 결과(S20), 토큰 잔량이 없는 것으로 판단되면, flow_control을 STOP_ENQUEUE 상태로 변경하여(S26), 이후 네트워크 프로세서(100) 가 더 이상 인큐잉 동작을 하지 않도록 막고, 토큰 생성부(211)에 의해 정해진 비율 만큼의 패킷만 처리하도록 한다.
토큰이 남아있는 것으로 판단되면, 소모된 토큰의 양을 갱신(update) 한 후(S21, S22), 커널(stack) 또는 어플리케이션으로 패킷을 전송한다(S23).
다음으로 '하이'(151) 우선순위 큐가 empty가 아니면 S12 과정부터 반복수행하고, '로우'(152) 우선순위 큐가 empty가 아니면 S13 과정부터 반복수행한다.
반면, '하이'(151) 우선순위 큐와 '로우'(152) 우선순위 큐 모두 empty인 것으로 판단되면, 패킷 처리 핸들러를 종료한다.
이하, 도 5를 참조하여 토큰 버킷 알고리즘에 따라 토큰 생성률 및 패킷 처리율을 설정하는 과정을 설명하기로 한다.
도 5a 및 도 5b는 본 발명에 따라 호스트 프로세서에서 대역폭과 PPS를 고려한 토큰 버킷 알고리즘에 필요한 토큰 생성부의 동작 절차를 도시한 흐름도이다.
본 발명은 트래픽 폭주를 제어하기 위해 bps 및 pps를 고려하여 토큰을 주기적으로 생성하며 주기적으로 체크한 뒤 토큰 생성률을 적합한 수치로 갱신한다.
먼저 PPS 및 BPS 그리고 데이터 구조를 초기화(S30, S31) 한 뒤, 토큰 생성부(211)의 타이머를 구동한다(S32).
타이머의 주기가 만료되면(S33), 타이머를 0으로 설정한 뒤 재시작한다(S34).
패킷 처리부(213)에 의해 소모된 토큰(dp_bps, dp_pps)과 토큰 생성부(211)에 의해 생성된 토큰(cp_bps, cp_pps)을 비교하여(S35, S39) 잔량을 계산한다(S36, S37, S40, S41).
토큰의 양이 미리 설정된 pps/bps 값이 되도록 cp_bps 와 cp_pps를 갱신한다(S38, S42).
이후, flow_control을 ENQUEUE 상태로 변경하여 패킷이 수신될 수 있도록 한다.
따라서, 상기의 과정을 통해 주기적으로 토큰이 생성되고 업데이트된다.
이하, 도 6을 참조하여 모니터링 프로세스(220)의 동작을 살펴보기로 한다.
도 6은 본 발명에 따라 호스트 프로세서의 리소스 및 트래픽 특성을 모니터링 하는 동작에 관한 흐름도이다.
폴링(polling)이나 타이머를 이용하여 주기적 또는 실시간으로 CPU 점유율 및 트래픽 특성을 점검한다(S50).
점검 결과, CPU 점유율이 설정된 max 임계치 이상으로 판단되면(S51), flow_control을 STOP_ENQUEUE로 설정한 뒤(S52) 상기 표 1과 같이 설정된 프로파일에서 적당한 큐 깊이, 토큰의 양(cp_bps, cp_pps)을 찾는다(S53).
이를 토대로 현재 큐 깊이에 대한 변경사유가 발생되면(S54), ioctl()(input/output control 함수)를 호출하여 패킷 처리부(213)에게 이를 알려주고, 패킷 처리부(213)에 의해 우선순위 큐(150)의 깊이가 조절될 수 있도록 한다(S55).
그리고, 현재 cp_bps 및 cp_pps에 대한 변경사유가 발생되면(S56, S58), ioctl()(input/output control 함수)를 호출하여 토큰 생성부(211)에게 이를 알려 주고, 토큰 생성부(211)에 의해 토큰의 양(cp_bps 및 cp_pps)이 조절될 수 있도록 한다(S57).
이상 본 발명의 바람직한 실시예에 대해 상세히 기술되었지만, 본 발명이 속하는 기술분야에 있어서 통상의 지식을 가진 사람이라면, 첨부된 청구 범위에 정의된 본 발명의 정신 및 범위를 벗어나지 않으면서 본 발명을 여러 가지로 변형 또는 변경하여 실시할 수 있음을 알 수 있을 것이다. 따라서 본 발명의 앞으로의 실시예들의 변경은 본 발명의 기술을 벗어날 수 없을 것이다.
이상 설명한 바와 같이, 본 발명에 의한 라우터 장비내의 성능이 서로 다른 두 프로세서(네트워크 프로세서, 호스트 프로세서)간의 패킷을 처리함에 있어서 우선순위화 되어 유입되는 트래픽의 특성과 수신 시스템의 가용 리소스 및 부하를 고려하여 실시간으로 큐의 깊이 및 토큰의 양이 다이나믹하게 조절되므로 두 프로세서간에 안정적인 트래픽양을 유지할 수 있도록 해주게 됨으로써 서비스의 질을 향상시키는 효과가 있다.
또한, 패킷 버퍼링 및 패킷 shaping이 가능하도록 고려되어 일시적인 버스트(burst) 패킷을 수용할 수도 있다.

Claims (30)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 네트워크 프로세서와 호스트 프로세서에 있어서,
    상기 호스트 프로세서에서 처리해야 할 패킷과 네트워크 프로세서를 거쳐 포워딩(forwarding)할 패킷을 분류하는 패킷 분류부와, 패킷 분류부에서 호스트 프로세서로 보낼 패킷들을 인큐잉(enqueueing)하는 큐(queue)를 포함하는 네트워크 프로세서; 및
    토큰의 양과 큐의 깊이를 설정할 때 참조할 수 있도록 패킷 처리를 위한 시스템의 리소스(resource) 점유율과 패킷의 트래픽 특성을 분석하여 모니터링하는 모니터링부와, 상기 모니터링부로부터 얻은 정보에 따라 주기적으로 정해진 비율(rate)만큼의 토큰을 생성하며, 큐의 깊이를 관리하여 트래픽의 양을 조절하는 토큰 드라이버를 포함하는 호스트 프로세서를 포함하는 것을 특징으로 하는 트래픽 폭주 제어 장치.
  5. 삭제
  6. 삭제
  7. 제 4항에 있어서, 상기 큐는
    가변길이 형식이며, 우선순위가 높은 패킷의 경우 '하이' 큐에 인큐잉되도록 하고 우선순위가 낮은 패킷의 경우 '로우' 큐에 인큐잉되도록 구성된 것을 특징으로 하는 트래픽 폭주 제어 장치.
  8. 제 4항에 있어서, 상기 호스트 프로세서의 토큰 드라이버는
    트래픽의 대역폭 및 패킷 속도를 고려하여 설정되는 토큰 버킷(bucket);
    상기 모니터링부로부터 얻은 정보에 따라 주기적으로 정해진 비율(rate)만큼의 토큰을 생성하는 토큰 생성부; 및
    큐의 깊이를 관리하고 큐에 수신된 패킷을 처리하는 패킷 처리부를 포함하는 것을 특징으로 하는 트래픽 폭주 제어 장치.
  9. 제 4항에 있어서, 상기 호스트 프로세서의 모니터링부는
    시스템의 가용 리소스(resource)를 실시간 모니터링하는 리소스 감시부;
    유입되는 트래픽의 대역폭 및 패킷 속도와 같은 특성을 분석하는 트래픽 특성 분석부;
    측정된 리소스 가용상태와 트래픽의 특성에 따라 큐의 깊이(depth), 토큰 생성률을 미리 설정해 놓은 트래픽 프로파일(profile); 및
    상기 리소스 감시부 및 트래픽 특성 분석부로부터 얻은 정보를 통해 트래픽 량 조절을 위한 토큰 생성 및 패킷 처리 파라미터를 조절하는 트래픽 제어부를 포함하는 것을 특징으로 하는 트래픽 폭주 제어 장치.
  10. 네트워크 프로세서와 호스트 프로세서에 있어서,
    상기 호스트 프로세서에서 처리해야 할 패킷과 네트워크 프로세서를 거쳐 포워딩할 패킷을 분류하는 패킷 분류부와, 패킷 분류부에서 호스트 프로세서로 보낼 패킷들을 인큐잉하는 큐를 포함하는 네트워크 프로세서;
    상기 네트워크 프로세서의 인터럽트 신호에 의해 상기 큐에 인큐잉되어 있는 패킷을 토큰 버킷 알고리즘에 따라 출력하여 해당 어플리케이션으로 전송하며, 트래픽의 대역폭 및 패킷 속도 정보에 따라 주기적으로 정해진 비율(rate)만큼의 토큰을 생성하며, 큐의 깊이를 관리하는 토큰 드라이버를 포함하는 제 1 호스트 프로세서;
    상기 토큰 드라이버에서 토큰의 양을 설정할 때 참조할 수 있도록 리소스 점유율 및 트래픽 특성을 분석하여 모니터링하는 모니터링부를 포함하는 제 2 호스트 프로세서로 이루어지되,
    상기 제 1 호스트 프로세서와 제 2 호스트 프로세서는 시스템 내부 버스를 통해 데이터 송수신을 하는 것을 특징으로 하는 트래픽 폭주 제어 장치.
  11. 삭제
  12. 삭제
  13. 제 10항에 있어서, 상기 큐는
    가변길이 형식이며, 우선순위가 높은 패킷의 경우 '하이' 큐에 인큐잉되도록 하고 우선순위가 낮은 패킷의 경우 '로우' 큐에 인큐잉되도록 구성된 것을 특징으로 하는 트래픽 폭주 제어 장치.
  14. 제 10항에 있어서, 상기 제 1 호스트 프로세서의 토큰 드라이버는
    트래픽의 대역폭 및 패킷 속도를 고려하여 설정되는 토큰 버킷(bucket);
    주기적으로 정해진 율(rate) 만큼의 토큰을 생성하는 토큰 생성부;
    큐의 깊이를 관리하고 큐에 수신된 패킷을 처리하는 패킷 처리부를 포함하는 것을 특징으로 하는 트래픽 폭주 제어 장치.
  15. 제 10항에 있어서, 상기 제 2 호스트 프로세서의 모니터링부는
    시스템의 가용 리소스(resource)를 실시간 모니터링하는 리소스 감시부;
    유입되는 트래픽의 특성을 분석하는 트래픽 특성 분석부;
    측정된 리소스 가용상태와 트래픽의 대역폭 및 패킷 속도와 같은 특성에 따라 큐의 깊이, 토큰 생성률을 미리 설정해 놓은 트래픽 프로파일; 및
    상기 리소스 감시부 및 트래픽 특성 분석부로부터 얻은 정보를 통해 트래픽 량 조절을 위한 토큰 생성 및 패킷 처리 파라미터를 조절하는 트래픽 제어부를 포함하는 것을 특징으로 하는 트래픽 폭주 제어 장치.
  16. 송신 프로세서와 수신 프로세서간의 트래픽 폭주를 억제하기 위한 방법에 있어서,
    송신 프로세서에서 수신 프로세서로 전달할 패킷인지를 구분하는 단계;
    수신 프로세서로 전달할 패킷이면 수신 프로세서의 패킷 수신 가능 유무를 나타내는 플래그를 점검하여, 패킷 수신 가능상태일 때 해당 패킷을 수신 프로세서로 전달하는 단계; 및
    수신 프로세서는 송신 프로세서로부터 수신된 패킷을 토큰의 유무에 따라 해당 어플리케이션으로 전송하거나 더 이상 패킷을 수신하지 않도록 처리하는 단계를 포함하는 트래픽 폭주 제어 방법.
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 송신 프로세서와 수신 프로세서간의 트래픽 폭주를 억제하기 위해 대역폭 및 패킷수를 고려하여 토큰을 생성하는 방법에 있어서,
    대역폭 및 패킷수를 초기화하는 단계;
    토큰 생성부의 타이머를 구동시키는 단계;
    토큰 처리부에 의해 소모된 토큰 값 중 대역폭(bps)에 대한 값과 토큰 생성부에 의해 생성된 토큰 값 중 대역폭(bps)에 대한 값을 비교하여 잔량을 산출하고 토큰 생성부에 의해 생성된 토큰양을 비교하여 토큰 잔량을 계산하는 단계;
    초기화시의 토큰 생성값으로부터 토큰 잔량값을 감산하여 토큰 값(대역폭 및 패킷수)을 업데이트하는 단계; 및
    플래그를 패킷 수신 가능 상태로 설정하는 단계를 포함하는 것을 특징으로 하는 트래픽 폭주 제어 방법.
  26. 삭제
  27. 삭제
  28. 송신 프로세서와 수신 프로세서간의 트래픽 폭주를 억제하기 위해 수신 프로세서의 리소스를 모니터링하는 방법에 있어서,
    타이머를 이용하여 주기적으로 리소스 점유율 및 트래픽 특성을 분석하는 단계;
    설정된 임계치 이상의 리소스 점유율을 나타낸 경우, 미리 설정된 프로파일중 해당 큐 깊이(depth) 및 토큰 값에 대한 항목을 찾는 단계;
    찾아진 프로파일 정보에 의해 큐의 깊이가 새로운 값으로 설정되어야 하는 경우, 큐의 깊이에 대한 새로운 값을 패킷 처리부로 알려주어 큐의 깊이를 조절하도록 하는 단계; 및
    찾아진 프로파일 정보에 의해 대역폭(bps:byte per second) 및 패킷수(pps:packet per second)에 따라 다른 토큰 생성률이 새로이 설정되어야 하는 경우, 토큰 생성률에 대한 새로운 값을 토큰 생성부로 알려주어 토큰의 양을 조절하도록 하는 단계를 포함하는 것을 특징으로 하는 트래픽 폭주 제어 방법.
  29. 삭제
  30. 삭제
KR1020040003982A 2004-01-19 2004-01-19 트래픽 폭주 제어 방법 및 이를 구현하기 위한 장치 KR100666980B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020040003982A KR100666980B1 (ko) 2004-01-19 2004-01-19 트래픽 폭주 제어 방법 및 이를 구현하기 위한 장치
US11/009,713 US7447152B2 (en) 2004-01-19 2004-12-13 Controlling traffic congestion
CNA2005100055471A CN1645837A (zh) 2004-01-19 2005-01-19 通信量拥塞控制

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040003982A KR100666980B1 (ko) 2004-01-19 2004-01-19 트래픽 폭주 제어 방법 및 이를 구현하기 위한 장치

Publications (2)

Publication Number Publication Date
KR20050076158A KR20050076158A (ko) 2005-07-26
KR100666980B1 true KR100666980B1 (ko) 2007-01-10

Family

ID=34747879

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040003982A KR100666980B1 (ko) 2004-01-19 2004-01-19 트래픽 폭주 제어 방법 및 이를 구현하기 위한 장치

Country Status (3)

Country Link
US (1) US7447152B2 (ko)
KR (1) KR100666980B1 (ko)
CN (1) CN1645837A (ko)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024481B2 (en) * 2000-04-17 2011-09-20 Circadence Corporation System and method for reducing traffic and congestion on distributed interactive simulation networks
US7599287B2 (en) * 2002-11-15 2009-10-06 Cisco Technology, Inc. Tokens in token buckets maintained among primary and secondary storages
KR100656348B1 (ko) * 2004-12-08 2006-12-11 한국전자통신연구원 토큰 버켓을 이용한 대역폭 제어 방법 및 대역폭 제어 장치
US7447768B2 (en) * 2005-01-19 2008-11-04 Facetime Communications, Inc. Categorizing, classifying, and identifying network flows using network and host components
US7636304B2 (en) * 2005-03-30 2009-12-22 Cisco Technology, Inc. System and method for performing distributed policing
US7500010B2 (en) * 2005-04-07 2009-03-03 Jeffrey Paul Harrang Adaptive file delivery system and method
US20060245359A1 (en) * 2005-04-29 2006-11-02 Telefonaktiebolaget Lm Ericsson (Publ) Processor overload control for network nodes
JP4667128B2 (ja) * 2005-06-13 2011-04-06 富士通株式会社 通信制御方法及び,これを適用する通信システム
US7764612B2 (en) * 2005-06-16 2010-07-27 Acme Packet, Inc. Controlling access to a host processor in a session border controller
JP2007013449A (ja) * 2005-06-29 2007-01-18 Nec Commun Syst Ltd シェーパー制御方法、データ通信システム、ネットワークインタフェース装置及びネットワーク中継装置
US20070097864A1 (en) * 2005-11-01 2007-05-03 Cisco Technology, Inc. Data communication flow control
US20070174644A1 (en) * 2006-01-04 2007-07-26 Tendril Networks, Inc. Apparatus and Method for Dynamic Tokenization of Wireless Network Datagrams
JP4577279B2 (ja) * 2006-06-21 2010-11-10 Kddi株式会社 トークンバケットによるトラヒック制御装置、方法及びプログラム
US7944838B2 (en) * 2006-01-16 2011-05-17 Kddi Corporation Apparatus, method and computer program for traffic control
GB2438017A (en) * 2006-05-02 2007-11-14 Skype Ltd Controlling communication quality by generating instructions providing a remedy to users to improve communication quality
JP4142068B2 (ja) * 2006-06-16 2008-08-27 株式会社ソニー・コンピュータエンタテインメント 情報処理装置およびアクセス制御方法
US8417826B2 (en) * 2006-10-12 2013-04-09 Alcatel Lucent Method and system of overload control in packetized communication networks
US20090193108A1 (en) * 2008-01-29 2009-07-30 George Shin Critical Resource Management
US20100031324A1 (en) * 2008-03-07 2010-02-04 Strich Ronald F Apparatus and method for dynamic licensing access to wireless network information
US8174980B2 (en) * 2008-03-28 2012-05-08 Extreme Networks, Inc. Methods, systems, and computer readable media for dynamically rate limiting slowpath processing of exception packets
US8977404B2 (en) * 2008-09-08 2015-03-10 Tendril Networks, Inc. Collaborative energy benchmarking systems and methods
US9722813B2 (en) 2008-09-08 2017-08-01 Tendril Networks, Inc. Consumer directed energy management systems and methods
KR101646768B1 (ko) 2009-02-27 2016-08-09 삼성전자주식회사 이퀄-모델 프로세서를 위한 인터럽트 처리장치 및 처리방법과 그 처리장치를 포함하는 프로세서
JP5201415B2 (ja) * 2009-03-05 2013-06-05 富士通株式会社 ログ情報発行装置、ログ情報発行方法およびプログラム
TWI465075B (zh) * 2009-03-23 2014-12-11 Mediatek Inc 封包處理之裝置與系統
US9026261B2 (en) * 2009-06-08 2015-05-05 Tendril Networks, Inc. Methods and systems for managing energy usage in buildings
CN101772061B (zh) 2010-01-14 2013-11-06 华为技术有限公司 休眠定时器控制方法和装置及通讯系统
JP5445271B2 (ja) * 2010-03-30 2014-03-19 富士通株式会社 帯域制御装置,帯域制御方法,及びプログラム
US9516357B2 (en) * 2010-09-10 2016-12-06 Verizon Patent And Licensing Inc. Recording variable-quality content stream
WO2012057733A1 (en) * 2010-10-25 2012-05-03 Hewlett-Packard Development Company, L.P. Systems, methods, and devices for adjusting video conference parameters to maintain system performance
US8572699B2 (en) * 2010-11-18 2013-10-29 Microsoft Corporation Hardware-based credential distribution
US20120127864A1 (en) * 2010-11-22 2012-05-24 Avaya Inc. Performing policing operations in packet time
CA2827941C (en) * 2011-02-24 2017-09-12 The University Of Tulsa Network-based hyperspeed communication and defense
EP2761840A4 (en) * 2011-09-29 2015-06-10 Avvasi Inc SYSTEMS AND METHODS FOR THE DISTRIBUTION OF MULTIMEDIA SERVICES
CN102413042A (zh) * 2011-11-14 2012-04-11 盛科网络(苏州)有限公司 基于时戳更新令牌桶的流量监管的方法及系统
KR101565102B1 (ko) 2012-04-04 2015-11-02 주식회사 케이티 이중 우선순위 어플리케이션을 갖는 기계 형태 통신 장치에 대한 접속 제어 방법 및 장치
WO2013151246A1 (ko) * 2012-04-04 2013-10-10 주식회사 케이티 이중 우선순위 어플리케이션을 갖는 기계 형태 통신 장치에 대한 접속 제어 방법 및 장치
US8930604B2 (en) * 2012-07-17 2015-01-06 Lsi Corporation Reliable notification of interrupts in a network processor by prioritization and policing of interrupts
US10678279B2 (en) 2012-08-01 2020-06-09 Tendril Oe, Llc Optimization of energy use through model-based simulations
US20150236955A1 (en) * 2012-08-21 2015-08-20 Paul Allen Bottorff Congestion Notification in a Network
US20140105218A1 (en) * 2012-10-12 2014-04-17 Prashant H. Anand Queue monitoring to filter the trend for enhanced buffer management and dynamic queue threshold in 4g ip network/equipment for better traffic performance
US9423779B2 (en) 2013-02-06 2016-08-23 Tendril Networks, Inc. Dynamically adaptive personalized smart energy profiles
US9576472B2 (en) 2013-02-06 2017-02-21 Tendril Networks, Inc. Real-time monitoring and dissemination of energy consumption and production data
US9310815B2 (en) 2013-02-12 2016-04-12 Tendril Networks, Inc. Setpoint adjustment-based duty cycling
US9237111B2 (en) * 2013-03-14 2016-01-12 International Business Machines Corporation Credit-based flow control in lossless ethernet networks
US9088508B1 (en) 2014-04-11 2015-07-21 Level 3 Communications, Llc Incremental application of resources to network traffic flows based on heuristics and business policies
US9503623B2 (en) 2014-06-03 2016-11-22 Applied Minds, Llc Color night vision cameras, systems, and methods thereof
KR101712168B1 (ko) * 2015-08-24 2017-03-03 주식회사 케이티 패킷 입력 메시지 제어 방법, 이를 수행하는 스위치 및 컨트롤러
EP3436749A4 (en) 2016-04-01 2019-12-11 Tendril Networks, Inc. ORCHESTRATED ENERGY
CN106302464B (zh) * 2016-08-17 2019-07-26 浪潮集团有限公司 一种基于硬件的自适应网络架构及自适应网络方法
EP4004450A4 (en) 2019-07-24 2023-08-16 Uplight, Inc. ADAPTIVE LEARNING OF THERMAL COMFORT FOR OPTIMIZED HVAC CONTROL
CN111083062A (zh) * 2019-12-17 2020-04-28 深圳前海环融联易信息科技服务有限公司 基于权重机制的限流方法、装置、计算机设备及存储介质
US11782851B2 (en) * 2021-09-01 2023-10-10 Micron Technology, Inc. Dynamic queue depth adjustment

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3386117B2 (ja) * 2000-01-11 2003-03-17 日本電気株式会社 マルチレイヤクラス識別通信装置と通信装置

Also Published As

Publication number Publication date
US7447152B2 (en) 2008-11-04
CN1645837A (zh) 2005-07-27
US20050157723A1 (en) 2005-07-21
KR20050076158A (ko) 2005-07-26

Similar Documents

Publication Publication Date Title
KR100666980B1 (ko) 트래픽 폭주 제어 방법 및 이를 구현하기 위한 장치
US10644978B2 (en) Latency increase estimated rate limiter adjustment
US8665892B2 (en) Method and system for adaptive queue and buffer control based on monitoring in a packet network switch
EP3763094B1 (en) Flow management in networks
US8437252B2 (en) Intelligent congestion feedback apparatus and method
US9025456B2 (en) Speculative reservation for routing networks
JP4260631B2 (ja) ネットワーク輻輳制御の方法および装置
US7369498B1 (en) Congestion control method for a packet-switched network
KR100757872B1 (ko) 네트워크에서의 혼잡 발생 예고 시스템 및 방법
KR101075724B1 (ko) 통신 시스템에서 패킷 전송 속도 제한 장치 및 방법
US20050213507A1 (en) Dynamically provisioning computer system resources
US11870698B2 (en) Congestion control method and apparatus, communications network, and computer storage medium
CN109714267B (zh) 管理反向队列的传输控制方法及系统
Taheri et al. RoCC: robust congestion control for RDMA
JP2008507204A (ja) 二方向メッセージングネットワークでゾーン間帯域を管理する方法
JP4700290B2 (ja) 通信システム内のフロー制御のための方法
US10728156B2 (en) Scalable, low latency, deep buffered switch architecture
US7734808B1 (en) End-to-end congestion control in a Fibre Channel network
CN112787919B (zh) 报文传输方法及设备、可读介质
US11115341B1 (en) Low latency flow control in data centers
CN111224884B (zh) 拥塞控制的处理方法、报文转发装置及报文接收装置
Chen et al. On meeting deadlines in datacenter networks
US20200145478A1 (en) Method, electronic device, and computer program product for handling congestion of data transmission
CN113630337A (zh) 数据流接纳方法、装置及系统、计算机可读存储介质
CN117579556A (zh) 拥塞控制方法、设备、介质和程序产品

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
LAPS Lapse due to unpaid annual fee