KR100504005B1 - 컴퓨터 네트워크의 하위 파이프에서 흐름을 제어하기 위한 방법, 기록 매체 및 시스템 - Google Patents

컴퓨터 네트워크의 하위 파이프에서 흐름을 제어하기 위한 방법, 기록 매체 및 시스템 Download PDF

Info

Publication number
KR100504005B1
KR100504005B1 KR10-2002-7012686A KR20027012686A KR100504005B1 KR 100504005 B1 KR100504005 B1 KR 100504005B1 KR 20027012686 A KR20027012686 A KR 20027012686A KR 100504005 B1 KR100504005 B1 KR 100504005B1
Authority
KR
South Korea
Prior art keywords
flow
pipe
packets
switch
subpipes
Prior art date
Application number
KR10-2002-7012686A
Other languages
English (en)
Other versions
KR20020084252A (ko
Inventor
고르티브라마난드쿠마르
황동밍
제프리즈클라크뎁스
시겔마이클스티븐
수딥프카르틱크
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20020084252A publication Critical patent/KR20020084252A/ko
Application granted granted Critical
Publication of KR100504005B1 publication Critical patent/KR100504005B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L12/5602Bandwidth control in ATM Networks, e.g. leaky bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5619Network Node Interface, e.g. tandem connections, transit switching
    • H04L2012/5624Path aspects, e.g. path bundling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5629Admission control
    • H04L2012/5631Resource management and allocation
    • H04L2012/5632Bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

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

Abstract

본 발명의 목적은 컴퓨터 네트워크에 있는 복수 개의 하위 파이프를 제어하기 위한 방법 및 시스템을 제공하는 것이다. 그 복수 개의 하위 파이프는 스위치를 이용하여 네트워크를 통해서 트래픽을 전송한다. 본 발명의 방법 및 시스템은 복수 개의 하위 파이프의 각 하위 파이프에 대해서 최저 흐름을 설정할 수 있도록 허용하는 것과 파이프에 대해서 통신 폭주가 존재하는 지의 여부를 판정하는 것을 포함하고 있다. 또한, 본 발명의 방법 및 시스템은 통신 폭주가 존재하는 경우에만 복수 개의 하위 파이프 중 하나의 하위 파이프의 흐름을 제어하는 것을 포함한다. 통신 폭주가 존재한다고 판정되면, 하위 파이프의 제어에 설정되는 시간은 하위 파이프의 흐름의 개별적인 감소 또는 증가를 통해서 제어하기 위해서 상당히 길게 설정된다. 흐름은, 복수 개의 하위 파이프 중 상기 하나의 파이프의 흐름이 최저 흐름 이하이면 그 하위 파이프의 흐름이 선형적으로 증가될 수 있도록 제어된다. 또한, 흐름은, 복수 개의 하위 파이프 중 상기 하나의 파이프의 흐름이 최저 흐름 이상이면 복수 개의 하위 파이프 중 그 하위 파이프의 흐름이 지수함수적으로 감소되도록 제어된다. 어떤 하위 파이프의 흐름을 증가하거나 감소하는 지의 여부를 판정함에 있어서, 제2 통신 폭주 정의가 이용될 수 있다. 따라서, 스위치를 통한 트래픽은 안정하다.

Description

컴퓨터 네트워크의 하위 파이프에서 흐름을 제어하기 위한 방법, 기록 매체 및 시스템{METHOD AND SYSTEM FOR CONTROLLING FLOWS IN SUB-PIPES OF COMPUTER NETWORKS}
본 발명은 컴퓨터 네트워크에 관한 것으로서, 특히 차별화된 서비스와 컴퓨터 네트워크의 미세 레벨의 제어를 제공하기 위한 방법 및 시스템에 관한 것이다.
인터넷을 포함하는 것들과 같은 다양한 네트워크 애플리케이션의 이용이 증가함에 따라, 컴퓨터 네트워크는 관심이 증가하고 있다. 도 1은 인터넷(1)을 통해서 연결될 수 있는 종래의 네트워크(10 및 30)를 묘사하고 있다. 네트워크(10)와 네트워크(30)는 각각 호스트(11, 12, 17, 18, 21, 22)와 호스트(32, 34)를 포함하고 있고, 하나 또는 그 이상의 서버, 예컨대 서버(15, 20, 24)와 서버(38)를 포함할 수도 있다. 그 외에도, 네트워크(10)와 네트워크(30)는 각각 인터넷(1)에 대해서 각각 하나 또는 그 이상의 게이트웨이(13)와 게이트웨이(35)를 포함할 수도 있다. 네트워크(10 및 30)의 라우터 및 기타의 부분은 명시적으로 도시하지 않았지만, 이들은 네트워크(10 및 30)를 통해서 통신량(트래픽)을 제어할 수도 있고, 각각 스위치(14, 16, 19)와 스위치(36) 및 네트워크(10 및 30)에 내재적으로 묘사되어 있다고 간주될 것이다.
스위치, 예컨대 스위치(14 또는 36)와, 그 스위치(14 또는 36) 등의 스위치에 연결된 인터넷(1) 안의 임의의 스위치(도시하지 않음)는 각각 네트워크(10, 30) 또는 인터넷(1)의 경계부(edge)에 있다고 간주된다. 그 이유는, 이들 스위치는 네트워크(10, 30) 또는 인터넷(1)의 직접적인 제어 하에 있지 않은 엔티티(entity) 쪽으로 및/또는 엔티티 쪽으로부터 직접 트래픽을 송신 및/또는 수신하기 때문이다. 예컨대, 네트워크(10)의 네트워크 관리자 또는 다른 사용자는 네트워크(10)의 파라미터 설정, 사용 및 퍼포먼스에 관해서 제어권을 가질 수 있다. 그러나, 이러한 네트워크 관리자는 통상 인터넷(1)을 제어하지 않고, 네트워크(30)를 제어하지 못할 수도 있다. 스위치(14)는 인터넷(1)에의 접속을 제공하는 게이트웨이(13)에 직접 결합한다. 그러나, 이것은 스위치(16 및 19)에 대해서는 맞지 않는 말이다. 따라서, 스위치(13)를 네트워크(10)의 경계부에 있다고 간주한다. 마찬가지로, 인터넷(1) 안의 스위치(도시하지 않음)는 게이트웨이(13)와 인터페이스한다. 네트워크 관리자 또는 다른 사용자는 인터넷(1)의 일부 또는 전부의 퍼포먼스를 제어할 수 있지만, 네트워크(10)의 퍼포먼스에 대해서는 그렇지 못하다. 따라서, 이러한 스위치를 인터넷의 경계부에 있다고 간주할 것이다.
도 2는 컴퓨터 네트워크에 사용될 수 있는 스위치(40)의 하이 레벨 블록도를 묘사하고 있다. 따라서, 스위치(40)는 인터넷(1) 안은 물론 스위치(14, 16, 19 및 36)에 대해서도 사용될 수 있다. 스위치(40)는 블레이드(47, 48 및 49)와 결합된 스위치 패브릭(41)을 포함하고 있다. 각 블레이드(47, 48 및 49)는 일반적으로 회로 기판이며, 포트(44)와 결합된 적어도 하나의 네트워크 프로세서(42)를 포함하고 있다. 따라서, 포트(44)는 스위치(40)가 존재하고 있는 네트워크의 호스트(도시하지 않음) 또는 다른 구성 요소와 결합되어 있다. 블레이드(47, 48 및 49)는 스위치 패브릭(41)에 트래픽을 제공할 수 있고, 스위치 패브릭(41)으로부터 트래픽을 수령할 수 있다. 따라서, 이들 블레이드(47, 48 및 49) 중 하나의 블레이드와 연결된 모든 구성 요소는 다른 블레이드(47, 48 및 49)에 연결된 또는 그 동일 블레이드에 연결된 다른 구성 요소와 통신할 수 있다.
도 3a는 스위치(40)의 간략화된 다른 블록도를 묘사하고 있고, 네트워크 프로세서(51 및 55)에 의해서 수행되는 기능 중의 일부를 설명하고 있다. 스위치(40)는 포트 A(52)와 연결된 구성 요소(도시하지 않음)를 포트 B(76)와 연결된 그들 구성 요소(도시하지 않음)와 결합시킨다. 스위치(40)는 스위치(40)에 제공되는 데이터 패킷의 식별, 스위치(40)를 통과하는 데이터 패킷의 전송, 및 패킷의 재조립(reassembly)을 비롯하여 다양한 기능을 수행한다. 이들 기능은 각각 분류기(58), 스위치 패브릭(64) 및 재조립기(70)에 의해서 제공된다. 분류기(58)는 공급되어 오는 패킷들을 분류하고 각 패킷을 편리한 크기의 몫(portion)으로 나눈다. 이것을 셀이라고 부르기로 한다. 스위치 패브릭(64)은 연결 매트릭스이며, 셀들은 이 연결 매트릭스를 통해서 스위치(40)를 통과하는 경로를 따라 전송된다. 재조립기(70)는 그들 셀을 적절한 패킷으로 재조립한다. 이어서, 패킷은 포트 B(76)의 적절한 포트에 공급되고, 목적지 호스트에 출력된다. 분류기(54)는 1 개의 네트워크 프로세서(51)의 일부가 될 수 있고, 재조립기(70)는 다른 네트워크(55)의 일부가 될 수도 있다. 도시한 네트워크 프로세서(51)의 부분과 네트워크 프로세서(55)의 부분은 각각 포트 A(52)로부터 오는 트래픽을 위한 기능과 포트 B(76)로 가는 트래픽을 위한 기능을 수행한다. 그러나, 네트워크 프로세서(51)와 네트워크 프로세서(55)는 각각 포트 B(76)로부터 오는 트래픽을 위한 기능과 포트 A(52)로 가는 트래픽을 위한 기능을 수행하기도 한다. 따라서, 네트워크 프로세서(51)와 네트워크 프로세서(55)의 각각은 분류 기능과 재조립 기능을 수행할 수 있다.
트래픽이 스위치(40)를 지날 때 생기는 병목 현상 때문에, 데이터 패킷은 분류 기능, 전송 기능 및 재조립 기능을 실행하기 이전에 대기해야 할 수도 있다. 그 때문에, 큐(56, 62, 68 및 74)가 설치될 수 있다. 큐(56, 62, 68 및 74)에는 인큐잉 메카니즘(54, 60, 66 및 72)이 결합되어 있다. 인큐잉 메카니즘(54, 60, 66 및 72)은 패킷 또는 셀을 대응하는 큐(56, 62, 68 및 74)에 배치시키고, 되돌아 오는 통지를 패킷이 발원한 호스트에 공급한다.
큐(56, 62, 68 및 74)는 따로따로 도시되어 있지만, 당해 기술 분야의 숙련자는 큐(56, 62, 68 및 74)의 일부 또는 전부가 물리적인 동일 메모리 자원의 일부일 수 있음을 쉽게 이해할 것이다. 도 3b는 이러한 1 개의 스위치(40')를 도시하고 있다. 스위치(40')의 많은 구성 요소는 스위치(40)의 구성 요소들과 유사하다. 따라서, 이들 구성 요소는 동일하게 명명한다. 예컨대, 스위치(40')의 포트 A(52')는 스위치(40)의 포트 A(52)에 대응한다. 스위치(40')의 경우, 큐(54)와 큐(62)는 단일 메모리 자원(69)을 공유한다. 마찬가지로, 큐(68)와 큐(74)는 다른 단일 메모리 자원(71)의 일부이다. 따라서, 스위치(40')에서, 큐(56, 62, 68 및 74)는 메모리 자원(59 및 71)으로부터 구획이 나뉜 논리 큐이다.
현재, 종래의 대부분의 스위치(40)는 스위치가 사용되고 있는 네트워크를 통과하는 트래픽의 흐름을 취급하고 있다. 그러나, 소비자에게 예컨대 소비자가 서비스에 지불하는 금액을 기준으로 하여 여러 가지의 서비스를 제공하는 경향이 있다. 소비자는, 보다 고속의 응답을 보장받거나, 통신 폭주로 인해 다른 소비자의 트래픽이 중단(드롭)되더라도 자신의 트래픽은 전송되는 것을 보장받기 위해서 더 많이 지불하고 싶어할 수도 있다. 이와 같이 하여, 서비스 차별화의 개념이 발전하고 있다. 차별화된 서비스는 여러 가지의 서비스 레벨, 또는 네트워크를 통과하는 트래픽의 흐름을 서로 다른 소비자에게 제공할 수 있다.
DiffServ는 차별환된 서비스를 제공하기 위한 새로운 인터넷 엔지니어링 태스크 포스(IETF, Internet Engeneering Task Force) 표준이다(IETF RFC 2475와 관련 RFC를 참조). DiffServ는 BA(Behavior Aggregate, 동일한 패킷 전송 서비스를 받게 될 패킷들의 집합)흐름을 기초로 하여 행해진다. BA 흐름은 네트워크의 한 경계부로부터 네트워크의 다른 경계부로의 파이프라인으로서 고려될 수 있다. 각 BA 흐름 안에는 개개의 호스트 사이에 수백 개의 세션이 있을 수 있다. 그러나, DiffServ는 BA 흐름 안의 세션들과는 관련이 없다. 그 대신에, DiffServ는 BA 흐름들간의 대역폭의 할당과 관련이 있다. DiffServ에 의하면, 초과 대역폭은 BA 흐름들 사이에서 잘 할당되어야 한다. 또한, 각 BA 흐름에 제공되는 서비스의 레벨을 측정하기 위한 후술하는 기준을 제공한다.
다양한 레벨의 서비스들을 제공하기 위한 종래의 한 가지 메카니즘은 가중치와 큐 레벨의 조합을 이용하여, 예컨대 미국 캘리포니아주 산호세에 소재하는 시스코 시스템(주)가 제공하고 있는 다양한 레벨의 서비스들을 제공한다. 도 4는 이러한 종래의 방법 80을 도시하고 있다. 우선, 큐 레벨의 임계치와 가중치를 설정한다(단계 82). 전형적으로, 큐 레벨의 임계치는 네트워크 관리자의 조정 즉 "노브의 조절"에 의해 단계 82에서 설정된다. 가중치는 특정한 큐, 스위치(40) 또는 네트워크 프로세서(42)를 통해 다양한 파이프, 즉 흐름에 대해서 설정될 수 있다. 따라서, 가중치는 다양한 BA 흐름에 대해서 전형적으로 설정된다. 큐 레벨은 전형적으로는 에포크(epoch)라고 알려진 기간의 말단에서 관찰된다(단계 84). 이어서, 파이프의 흐름은 큐 레벨과 큐 레벨 임계치를 비교하는 방식과 가중치를 기초로 하여 수정된다(단계 86). 보다 높은 가중치를 갖는 파이프의 흐름은 단계 86에서 수정을 보다 크게 행한다. 파이프의 흐름은 그 파이프에 의해서 큐, 예컨대 큐(56)에 공급되는 트래픽의 단편(斷片) 중 어느 단편이 그의 대응하는 인큐잉 메카니즘, 예컨대 인큐잉 메카니즘(54)에 의해서 큐(56)에 전송될 것인지를 판정한다. 따라서, 트래픽은 그 흐름을 기초로 하여 큐에 전송되거나 중단된다(단계 88). 이어서, 네트워크 관리자는 원하는 서비스 레벨이 일치되고 있는지의 여부를 판정한다(단계 90). 일치되어 있다면, 네트워크 관리자는 통신 폭주의 회피를 달성한 것이다. 그러나, 원하는 서비스 레벨을 달성하지 못하면, 큐 레벨 임계치, 가능하게는, 가중치는 리셋되고(단계 82), 방법 80이 반복된다. 종래의 방법 80에 관한 정보는 http://www.cisco.com/univercd/cc/td/doc/product/software/ios120/12cgcr/qos_c/qcpart2/qcconman.htm에서 확인할 수 있다.
종래의 방법 80은 작동하기는 하지만, 당해 기술 분야의 숙련자는 네트워크를 통과하는 특정의 파이프에 관하여 큐 레벨 임계치를 수정하는 것이 어떤 효과를 나타낼지를 판정하는 것이 어렵다는 것을 쉽게 인식할 것이다. 따라서, 방법 80을 이용하는 네트워크 관리자는 컴퓨터 네트워크 내에서 다양한 고객, 또는 파이프(BA 흐름)에 대한 원하는 흐름 속도에 도달하기 이전에 매우 많은 량의 경험과 관련이 있어야 할 수 있다.
또한, 방법 80은 서비스의 품질을 측정하는데 전형적으로 이용되는 파라미타에 관해서 간접적으로 동작한다. 큐 레벨은 서비스에 대해서 직접 이용되는 기준을 직접 측정한 것이 아니다. 전형적으로는, 예컨대 DiffServ(IETF RFC 2475 및 관련 RFC 참조)에서, 서비스의 레벨은 4 가지의 파라미터, 즉 중단율, 대역폭, 레이턴시 및 지터에 의해서 측정된다. 중단율은 스위치를 통과하여 흐를 때 중단되는 트래픽의 백분율이다. BA 흐름의 대역폭은 스위치를 통과하여 그의 목적지에 도달하는 BA 흐름에 대한 트래픽의 양의 측정치이다. 레이턴시는 트래픽이 네트워크를 통과하여 전송될 때 생기는 지연이다. 지터는 시간에 관한 레이턴시의 변화량이다. 큐 레벨은 서비스 품질의 직접적인 척도라고 간주되지는 않는다. 따라서, 방법 80은 서비스 품질에 대한 모든 기준을 직접적으로 다루지는 못한다. 따라서, 네트워크 관리자가 방법 80을 이용하여 다양한 서비스 레벨을 제공하는 것은 더욱 어렵다. 그 외에도, 방법 80은 BA 흐름의 흐름을 제어하지만, 방법 80은 이보다 더 미세한 레벨로 트래픽을 제어하지는 못한다.
종래의 다른 트래픽 제어 방법은 흐름, 최저 흐름 속도, 가중치, 우선 순위, 임계치 및, 흐름을 제어하기 위해서 초과 대역폭, 즉 트래픽 전송 능력이 존재하는 것을 표시하는 신호를 이용한다. 그러나, 종래 방법들은 직감을 기초로 하여 이루어지고, 적절해 보이는 듯하지만, 실제로는 제어 이론의 토대에 의해서 지원되지 않고 있다. 이 종래 방법은 스위치를 통해서 트래픽을 제어하기 위한 안정된 메카니즘이라는 것이 불분명하다. 결국, 이러한 종래 방법은 스위치(40)를 통해서 트래픽을 제어하기에 적합하지 못하다.
또한, 또 다른 IETF 제안으로는 종합 서비스를 위한 IntServ가 알려져 있다. IntServ에서는 네트워크의 모든 흐름이 모든 시기에 제어된다. 따라서, IntServ는 네트워크의 각 BA 흐름, 또는 파이프 내에서 각 개별 흐름을 제어하는 것을 제안하고 있다. 그 결과, IntServ는 차별화된 서비스를 제공하는데 이용될 수 있다. 그러나, 모든 흐름을 모든 시기에 제어하는 것은 급속히 작업 불능 상태로 된다. 특히, 네트워크 안에서의 흐름의 수는 네트워크가 확대될수록 그리고 네트워크를 통하는 트래픽이 많아질수록 급속히 늘어난다. 대부분의 네트워크의 경우, 모든 시기에 네트워크의 각 흐름을 제어하는 것은 막대한 량의 자원을 소모하고 실시에 어려움이 따른다. 결국, IntServ는 네트워크를 통하는 트래픽을 적절히 제어하지 못한다.
따라서, 차별화된 서비스를 보다 양호하게 제공하고 흐름을 미세한 레벨로 제어하기 위한 시스템과 방법이 요구된다. 본 발명은 이러한 요구에 관한 것이다.
이제, 다음의 도면을 참조하여 본 발명의 양호한 실시예를 설명한다.
도 1은 종래 기술에 따른 컴퓨터 네트워크의 블록도이다.
도 2는 종래 기술에 따른 스위치의 고레벨 블록도이다.
도 3a는 종래 기술에 따른 스위치의 간략화된 블록도이다.
도 3b는 종래 기술에 따른 다른 스위치의 간략화된 블록도이다.
도 4는 종래 기술에 따른 스위치를 통해서 차별화된 레벨의 서비스를 제공하기 위한 종래 방법을 묘사하고 있는 흐름도이다.
도 5는 본 발명을 이용할 수 있는 네트워크를 묘사하고 있는 도면이다.
도 6은 트래픽을 제어하여 하위 파이프에서 다양한 레벨의 서비스를 제공하기 위한 본 발명에 의한 방법을 묘사하고 있는 고레벨의 흐름도이다.
도 7a 및 도 7b는 트래픽을 제어하여 하위 파이프에서 다양한 레벨의 서비스를 제공하기 위한 본 발명에 의한 방법을 묘사하고 있는 보다 상세한 고레벨의 흐름도이다.
도 8은 파이프에 통신 폭주가 존재하는 지의 여부를 판정하기 위한 본 발명에 의한 방법의 제1 실시예를 도시하고 있는 상세한 흐름도이다.
도 9는 파이프에 통신 폭주가 존재하는 지의 여부를 판정하기 위한 본 발명에 의한 방법의 제2 실시예를 도시하고 있는 상세한 흐름도이다.
도 10은 파이프에 통신 폭주가 존재하는 지의 여부를 판정하기 위한 본 발명에 의한 방법의 제3 실시예를 도시하고 있는 상세한 흐름도이다.
도 11은 파이프에 통신 폭주가 존재하는 지의 여부를 판정하기 위한 본 발명에 의한 방법의 제4 실시예를 도시하고 있는 상세한 흐름도이다.
본 발명은 컴퓨터 네트워크 안의 복수 개의 하위 파이프를 제어하기 위한 방법 및 시스템으로서, 적어도 하나의 스위치를 포함하는 컴퓨터 네트워크의 파이프 안에 있는 복수 개의 하위 파이프를 제어하는 하위 파이프 제어 방법이며, 상기 복수 개의 하위 파이프는 상기 네트워크를 통해서 트래픽을 전송하기 위해서 상기 스위치를 이용하는 상기 하위 파이프 제어 방법은, (a) 상기 복수 개의 하위 파이프의 각각에 대해서 최저 흐름이 설정될 수 있도록 허용하는 단계와, (b) 상기 파이프에 대해서 통신 폭주가 존재하는 지의 여부를 판정하는 단계와, (c) 통신 폭주가 존재하는 경우, 상기 복수 개의 하위 파이프 중 하나의 하위 파이프에서의 흐름을 제어하는 단계를 포함하고, 상기 흐름 제어 단계 (c)는, (c1) 상기 하위 파이프의 흐름이 상기 최저 흐름 이하인 것에 응답하여, 상기 하위 파이프의 흐름을 선형적으로 증가시키거나 수정하지 않고 유지하는 단계와, (c2) 상기 하위 파이프의 흐름이 상기 최저 흐름 이상인 것에 응답하여, 상기 하위 파이프의 흐름을 지수함수적으로 감소시키는 단계를 포함하는 것인 하위 파이프 제어 방법을 제공한다. 따라서, 상기 스위치를 통한 트래픽은 안정화가 가능하다.
본 명세서에서 개시한 시스템과 방법에 의하면, 본 발명은 차별화된 서비스를 가능하게 하면서도 네트워크를 통한 트래픽을 미세한 레벨로 제어하기 위한, 안정되고 작업 가능한 메카니즘을 제공한다. 또한, 본 발명은 네트워크의 경계부에서 네트워크를 통한 트래픽을 제어하는데 이용될 수 있고, 그에 의해서, 네트워크 내의 중복 제어를 제거할 수 있다.
특정의 시스템과 특정의 구성 요소로 본 발명을 설명할 것이지만, 당해 기술 분야의 숙련자는, 본 발명의 방법과 시스템은 컴퓨터 네트워크의 다른 구성 요소에 대해서도 유효하게 작동할 것임을 쉽게 인식할 것이다. 또한, 큐의 관점으로 본 발명을 설명할 것이지만, 당해 기술 분야의 숙련자는, 본 발명은 큐들이 단일 메모리 자원의 일부인 논리 큐일 때 또는 그들 큐가 별개의 메모리 자원들의 일부일 때 유효하게 기능하는 것을 쉽게 인식할 것이다. 또한, 본 발명은 특정 논리 큐의 하위 큐 안으로의 흐름을 제어할 때에도 유사하게 기능한다. 또한, 순향(順向)식으로 패킷을 폐기함으로써 네트워크의 흐름을 제어하는 것으로 본 발명을 설명할 것이지만, 당해 기술 분야의 숙련자는, 본 발명의 방법과 시스템이 줄지어 도착하는 패킷의 속도를 제어하는 것과, 다른 신호들은 발원지에 유지되어 있지만 그 발원지에 전송되고 전송될 패킷의 단편을 나타내는 신호는 유효한 것을 쉽게 인식할 것이다. 그러므로, 전송 단편의 제어는 패킷이, 예컨대 하나 또는 그 이상의 소스에 의해서 제공되는 속도의 유사한 제어이다. 또한, 본 발명을 큐와 파이프/하위 파이프의 관계의 관점으로 설명할 것이지만, 당해 기술 분야의 숙련자는, 파이프가 상이한 등급의 BA 흐름 또는 동일한 등급의 BA 흐름일 수도 있고 저장을 위해 큐를 이용하는 특정 구성 요소로의 임의의 제공된 속도일 수도 있다는 것을 쉽게 인식할 것이다. 또한, 본 발명을 특정 파이프의 하위 파이프들을 제어하는 관점으로 설명할 것이지만, 당해 기술 분야의 숙련자는, 본 발명은 복수 개의 파이프의 하위 파이프들의 흐름을 제어하는데 이용될 수 있는 것을 쉽게 인식할 것이다.
본 발명에 의한 방법과 시스템을 보다 특별하게 설명하기 위해서, 이제, 본 발명에 이용될 수 있는 양호한 실시예의 네트워크(10' 및 30')와 인터넷(1')을 묘사하고 있는 도 5를 참조한다. 네트워크(10' 및 30') 및 인터넷(1')은 도 1에 도시되어 있는 네트워크(10 및 30) 및 인터넷(1)과 실질적으로 동일하다. 그러나, 제어 포인트(25, 26, 27 및 37)도 역시 도시되어 있다. 제어 포인트(25, 26, 27 및 37)는 스위치(14', 16', 19' 및 36')와 결합된 범용 컴퓨터인 것이 바람직하다. 제어 포인트(25, 26, 27 및 37)는, 후술하는 바와 같이, 테스트 필터링 규칙에 이용될 비트의 선택과 매트릭스 관련 기능들을 수행하는 것이 바람직하다. 스위치(14', 16', 19' 및 36')는, 후술하는 바와 같이, (도 5에 도시하지 않은) 소프트웨어적으로 관리되는 결정 계통도를 포함하여, 그 결정 계통도를 이용해서 하나 또는 그 이상의 필터 규칙을 하나의 키가 일치하는 지의 여부를 판정하는 것이 바람직하다. 그 외에도, 스위치(14', 16', 19' 및 36')는 도 2, 도 3a 및 도 3b에 도시되어 있는 스위치(40 및 40')와 동일한 것이 바람직하다. 네트워크(10', 30')와 인터넷(1')을 이용하는 것이 바람직하지만, 본 발명과 관련해서는 네트워크(10', 30')와 인터넷(1')을 이용할 수도 있다.
본 발명에 의한 방법과 시스템을 보다 특별하게 설명하기 위해서, 이제, 본 발명에 의한 방법(100)의 일 실시예를 묘사하고 있는 도 6을 참조한다. 그 방법 100은 미국 특허상표청에 1999년 8월 27일자로 출원되고 발명의 명칭이 "NETWORK PROCESSING COMPLEX AND METHOD"이며 본 출원의 양수인에게 양도된 미국 특허 출원 번호 제09/384,691호에 공개된 장치를 이용하여 달성되는 것이 바람직하다.
방법 100에서는 도 2, 도 3a 및 도 3b에 도시되어 있는 스위치(40, 40')가 이용될 수 있다. 따라서, 방법 100은 복수 개의 블레이드(47, 48 및 49)와, 각 블레이드(47, 48 및 49) 상에 복수 개의 포트를 갖는 스위치에서 수행될 수 있다. 명확히하기 위하여, 방법 100을 도 3a에 도시되어 있는 큐(74)와 인큐잉 메카니즘(72)과 관련하여 설명할 것이다. 그러나, 방법 100을 다른 큐, 예컨대 큐(56, 62, 68, 56', 62', 68' 및 74')를 이용하여 설명할 수 있다. 방법 100을 다른 인큐잉 메카니즘, 예컨대 인큐잉 메카니즘(54, 60, 66, 54', 60', 66' 및 72')을 이용하여 설명할 수도 있다. 양호한 실시예에서, 방법 100은 복수 개의 큐가 동일 메모리 자원의 일부인 시스템에 이용된다. 그러나, 방법 100을 각 큐가 별개의 메모리 자원을 갖는 다른 시스템에 이용하는 것을 막는 것은 아무것도 없다. 방법 100은 네트워크의 경계부에 위치하는 스위치, 예컨대 도 1 및 도 5에 도시하고 있는 스위치(14 및 14')에 사용되는 것이 바람직하다. 그 외에도, 방법 100은 네트워크의 외부에 있는 스위치가 아닌, 네트워크의 경계부에 존재하는 스위치 내에서만 사용되는 것이 바람직하다. 또한, 방법 100은 큐에 대한 하위 파이프를 제어하는데 이용되고 인큐잉 메카니즘을 이용하여 수행되는 것이 바람직하지만, 스위치의 다른 부분이 방법 100을 이용하는 것을 아무것도 막지는 못한다.
방법 100은 네트워크 안의 하위 파이프의 흐름을 제어하는데 이용된다. 각 하위 파이프는 파이프의 일부이다. 또한, 파이프는 네트워크를 통해서 흐른다. 따라서, 특정 네트워크의 파이프는 네트워크의 경계부에서 종단된다고 간주될 수 있다. 바람직하게는, 각 파이프는 하나의 BA 흐름이다. 하위 파이프는 파이프 내에서의 흐름들의 어떤 조합이다. 따라서, 하위 파이프는 역시 네트워크의 경계부에서 종단된다고 간주될 수 있다. 바꿔말하면, 파이프와 하위 파이프는 네트워크 내부에서 정의된다. 하나의 하위 파이프는 하나의 단일 흐름을 포함하거나 파이프 내에서의 흐름들의 어떤 조합을 포함할 수 있다. 또한, 방법 100은 하위 파이프와 파이프가 종단하는 네트워크 경계부의 스위치에서만 사용되는 것이 바람직하다. 그러나, 방법 100은 네트워크 내부의 스위치에서 사용될 수도 있다.
도 3a 및 도 6을 참조하면, 트래픽을 스위치(40)에 제공하는 임의의 파이프의 하위 파이프에 대한 최저 흐름이 설정된다(단계 102). 단계 102에서 설정된 최저 흐름은 하위 파이프에 대해서 제공되도록 보증되는 최저 흐름인 것이 바람직하다. 따라서, 단계 102에서 설정된 최저 흐름은 하위 파이프가 소비하도록 항상 허용될 대역폭의 양에 대응한다. 따라서, 그 최저 흐름은, 각 하위 파이프가 그 최저 호름에 동일한 흐름을 운반한다면, 파이프는 통신 폭주 상태가 되지 않고 트래픽은 원하는 파라미터 내에서 스위치와 네트워크를 통해서 이동하도록 설정되는 것이 바람직하다. 하위 파이프를 통하는 트래픽의 양이 적은 경우에, 하위 파이프는 최저 흐름보다 적은 트래픽을 운반할 수 있다. 또한, 하위 파이프는 최저 흐름보다 많은 트래픽을 운반하도록 허용될 수도 있을 것이다. 또한, 양호한 실시예에 있어서, 최고 가능 흐름은 DoS(Denial of Service) 공격(고의적으로 대량의 네트워크 트래픽을 유발하여 네트워크를 교란시키는 방법)의 방어용으로도 설정될 수 있다. 양호한 실시예에서, 최저 흐름은 특정 큐, 예컨대 큐(74)에 진입하는 하위 파이프에 대해서 설정된다. 그 외에도, 각 하위 파이프는 제공받은 속도 Ii(t)로 트래픽을 큐(74)에 제공하는 것이 바람직하다. 여기에서, i는 i번째 하위 파이프를 나타낸다. 다양한 요소에 따라서, 몇몇의 트래픽은 큐에 진입하는 대신에 중단될 수도 있다. i번째 하위 파이프의 전송 부분 Ti(t)은 큐(74')에 전송되는 i번째 하위 파이프로부터의 트래픽의 단편이다. 따라서, i번째 하위 파이프의 순간 흐름은 fi(t)=Ii(t)*Ti(t)이다.
하위 파이프가 제어될 수 있는 파이프가 통신 폭주 상태에 있는 지의 여부를 판정한다(단계 104). 다양한 요소를 기초로 하여 특정 파이프가 통신 폭주 상태에 있다고 판정될 수 있다. 이들 요소는 전형적으로는 파이프를 통해 흐르는 패킷, 또는 트래픽을 기초로 하여 평가된다. 이 명세서에서 사용되는 바와 같은 패킷은 이더넷 패킷(대개 프레임이라고 칭함), ATM 패킷(대개 셀이라고 칭함) 및 IP 패킷(대개 패킷이라고 칭함)을 포함하지만 이에 한정되지 않는 다양한 유형의 데이터 패킷을 가리킴에 유의한다. 파이프가 통신 폭주 상태에 있는지 또는 그렇지 않은지의 여부를 판정할 수 있는 몇 가지의 요소에는, 도 8 내지 도 11에 관하여 후술하는 바와 같이, 특정 패킷이 송신기로부터 수신기로 전송되고 그 수신기가 확인 신호를 다시 전송하는데 걸리는 시간, 동기화 패킷의 수, 왕복 시간(RTT) 및 명시적 통신 폭주 통지(ECN)를 포함할 수 있다. 이들은 패킷에 대해서 제공될 수 있다. 다시 도 6을 참조하면, 일반적으로, 파이프가 네트워크 관리자와 같은 사용자에 의해서 수용할 수 없다고 간주되는 속도로 패킷을 지연시키거나 중단시키기에 충분한 트래픽을 운반하고 있는 경우에 그 파이프는 통신 폭주 상태에 있다고 간주될 수 있다.
통신 폭주가 존재하지 않는다고 판정되면, 하위 파이프에서의 흐름은 제어되지 않는다(단계 108). 따라서, 스위치(40)는 파이프의 퍼포먼스가 수용 가능하다고 간주되는 경우에 하위 파이프의 흐름을 제어하고자 시도할 때 자원을 확장할 필요가 없다. 그러나, 통신 폭주가 존재한다고 판정되면, 하위 파이프의 흐름은 지정된 시간량(T) 동안 제어된다(단계 106). 하위 파이프의 제어에 대한 그 지정 시간량 T는 전형적으로는 전송 단편을 갱신하기 위한 시간 증분 Dt의 몇 배(아마도 백배 또는 백만배)이다. 따라서, T 동안에, 통신 폭주 신호가 현재 통신 폭주를 표시하고 있다면, 하위 파이프의 보증받은 최저 속도 이상의 흐름은, 통신 폭주가 계속되고 그들 흐름이 그 보증받은 최저 속도 이상을 유지하고 있는 한, 지수함수적으로 감소된다. 그 외에도, 하위 파이프에서의 흐름을 제어하기 위한 기간을 가리키는 T와 특정의 하위 파이프에 대한 전송 단편을 가리키는 Ti간의 구별을 유의한다. 양호한 실시예에서, 단계 106은 단계 102에서 설정된 대응의 최저 흐름보다 큰 흐름을 갖는 하위 파이프의 흐름을 지수함수적으로 감소시키는 것을 포함하고 있다. 따라서, 하위 파이프의 흐름은 하위 파이프 흐름의 값에 비례하여 감소된다. 또한, 양호한 실시예에서, 단계 106은 대응하는 최저 흐름보다 적거나 같은 흐름을 갖는 하위 파이프의 흐름을 적어도 초기에 수정하지 않은 채로 놓아두는 것을 포함할 수 있다. 그러나, 기간 T 중에, 순간적으로라도 통신 폭주가 표시되지 않으면, 하위 파이프의 최고 속도 이하의 흐름은 선형적으로 증가되도록 허용된다. 특히, 하위 파이프가 계속해서 제어되고 있는 한, 그들 하위 파이프의 설정된 최저값 이하의 흐름을 갖는 하위 파이프는 수정되지 않은 채로 놓아두거나 선형적으로 증가하도록 허용되고, 하위 파이프의 최고 흐름(설정되어 있다면) 이상의 하위 파이프는 감소하도록 실시되고, 하위 파이프의 최저 흐름과 최고 흐름 사이의 흐름을 갖는 하위 파이프는 선형적으로 증가하도록 허용되거나 지수함수적으로 감소하도록 실시된다. 이것은 흐름이 단계 106에서 계속해서 제어될 때 특히 명확하다. 흐름은 지수함수적으로 감소되고 또한 선형적으로 증가될 수 있기 때문에, 하위 파이프의 흐름은 안정하게 제어된다. 단계 106은 제어될 하위 파이프의 전송 단편을 설정하는 것을 포함하는 것이 바람직하다. 또한 단계 106에서, 큐에 진입하는 하위 파이프의 패킷수는 전송 단편을 이용하여 제어된다.
따라서, 방법 100의 제어는 어떤 파이프가 통신 폭주 상태에 있을 때에만 그 파이프의 하위 파이프에 흘러 들어간다. 그 결과, 방법 100은 통신 폭주가 존재하지 않는 경우에 자원을 쓸데없이 소비하지 않고, 따라서, 트래픽은 원하는 바와 같이 네트워크를 통해서 흐른다. 또한, 방법 100은 하위 파이프의 흐름을 선형적으로 증가시키고 또한 지수함수적으로 감소시킬 수 있기 때문에, 그 하위 파이프를 통하는 흐름의 제어는 안정될 것이다. 또한, 방법 100은 도 5에 도시되어 있는 네트워크(10')의 스위치(14')에서와 같은 네트워크의 경계부에서만 실시되는 것이 바람직하다. 그러나, 파이프 및 하위 파이프는 전체 네트워크(10')를 통해서 흐른다. 따라서, 도 6의 방법 100은 네트워크의 경계부에서 하위 파이프를 제어함으로써 그 네트워크의 전체 파이프의 통신 폭주를 제어한다. 방법 100은 네트워크 안의 다른 포인트에서는 실시되지 않아도 된다. 따라서, 계산적으로 비용이 들고 쓸데없는 하위 파이프의 중복 제어는 회피될 수 있다. 그러나, 네트워크 안의 트래픽을 제어하기 위한 다른 메카니즘이 그 네트워크의 중심부 및/또는 경계부에 실시되는 경우에도 그러한 다른 메카니즘과 관련하여 방법 100을 이용할 수 있다.
도 7a 및 도 7b는 본 발명에 따른 하위 파이프의 흐름 제어 방법 110의 일 실시예의 보다 상세한 흐름도를 묘사하고 있다. 방법 110은 제어될 하위 파이프의 최저 흐름이 설정된 후에 시작하는 것이 바람직하다.
또한, 방법 110은 하나의 특정 파이프의 하위 파이프의 흐름을 제어하는 관계로 설명될 것이다. 그러나, 당해 기술 분야의 숙련자는 복수 개의 파이프에 사용하기 위해서 방법 110을 확장할 수 있다는 것을 쉽게 인식할 것이다. 그 외에도, 방법 110은 방법 100과 유사하며, 따라서 동일한 장치를 이용하여 수행될 수 있다. 하위 파이프의 최저 흐름이 설정된 후, 하위 파이프의 최저 흐름 및 설정되어 있다면 최고 흐름을 기초로 하여 각 하위 파이프마다 상수를 계산한다(단계 112). 각 하위 파이프(i)에 대해서, 단계 112에서 상수 Ci와 상수 Di를 계산한다. 상수 Ci 는 후술하는 바와 같이 하위 파이프(i)의 흐름을 선형적으로 증가시키는데 이용된다. 마찬가지로, 상수 Di는 후술하는 바와 같이 하위 파이프(i)의 흐름을 지수함수적으로 감소시키는데 이용된다. 양호한 실시예에서, 상수 Ci와 상수 Di는 모두 최저 흐름을 기초로 한다. 다른 실시예에서, 상이한 하위 파이프에 대한 가중치가 제공되기도 한다. 이러한 경우, 상수 Ci와 상수 Di는 그 제공된 가중치를 기초로 하여 계산될 수도 있다.
상수가 결정되면, 트래픽은 하위 파이프를 통해서 큐(74)로 흐르도록 허용된다(단계 114). 이어서, 파이프가 통신 폭주 상태에 있는지의 여부를 판정한다(단계 116). 양호한 실시예에서, 단계 116은 감시되고 있는 각 파이프마다의 파이프 통신 폭주 레벨(PCL) 신호를 이용함으로써 수행된다. 파이프의 PCL은 0과 1 사이에 있다. PCL이 1에 가까울수록 파이프는 통신 폭주 상태가 더욱 커진다. 따라서, 0과 1 사이의 임계치는 통신 폭주에 대한 임계치로서 설정될 수도 있다. 단계 116은 파이프의 PCL을 판정할 것이다. 파이프의 PCL이 이 임계치보다 적거나 같으면, 단계 116은 통신 폭주가 존재하지 않는다는 것을 표시할 것이다. PCL이 임계치보다 크면, 단계 116은 파이프 안에 통신 폭주가 존재한다는 것을 판정할 것이다. 통신 폭주가 없으면, 제어를 수행하는 것이 바람직할 수 있는 기간인 에포크가 종료되었는지의 여부를 판정한다(단계 134). 따라서, 통신 폭주가 없으면, 하위 파이프의 흐름을 제어할 수 없다.
단계 116에서 통신 폭주가 존재한다고 판정하면, 하위 파이프의 흐름을 제어한다(단계 118 내지 단계 132). 큐 레벨, 이진값 1 또는 0을 갖는 순간 초과 대역폭 신호 B 및 간격 [0, 1]의 값을 갖는 수인 초과 대역폭의 값 E는 이미 이용 가능하지 않다면 이전의 에포크 기간 중에 판정된다(단계 118). 양호한 실시예에서, 이전의 에포크에 대한 하위 파이프의 흐름도 역시 단계(118)에서 이용 가능하게 만들어진다. 바꿔말하면, 단계 118은 방법 110의 시스템을 갱신하는데 필요한 양을 판정한다. 양호한 실시예에서는 전술한 양이 종전의 에포크의 방법 110을 이용하여 판정되었기 때문에 단계 118은 대개 불필요하다. 큐 레벨은 하위 파이프가 흘러가고 있는 큐의 레벨이다. 큐 레벨은 최고 큐 레벨의 단편으로서 정의될 수 있다. 예컨대, 큐 레벨은 도 3a의 큐(74)에 대한 전체의 단편 레벨일 수 있다. 다시 도 7a 및 도 7b를 참조하면, 양호한 실시예에 관하여, 판정된 큐 레벨은 전체 메모리 자원에 대한 레벨이다. 그러나, 논리 큐 또는 하위 큐에 대해서 큐 레벨을 판정하는 것은 아무것도 막지 못한다. 이진값 1 또는 0을 갖는 순간 초과 대역폭 신호 B 및 간격 [0, 1]의 값을 갖는 수인 초과 대역폭의 값 E는 후술된다.
초과 대역폭이 존재하는 지의 여부를 판정한다(단계 120). 일 실시예에서, 큐, 예컨대 큐(74)의 큐 레벨이 0, 또는 작은 값 이하 또는 감소되고 있는 경우에만 존재하도록 초과 대역폭을 판정할 수 있다. 그러나, 바람직하게는, 초과 대역폭 존재 여부의 판정은 왕복 시간, 또는 다른 파라미터, 또는 이러한 측정치의 수정의 1회 판정에 의존할 수도 있다. 또한, 이들 다른 파라미터는 후술하는 바와 같이 통신 폭주를 측정하도록 사용될 수 있다. 따라서, 양호한 실시예에서, 두 가지의 통신 폭주 정의를 사용하는 것으로 간주할 수 있다. 제1 통신 폭주 정의는 단계 116에서 하위 파이프의 흐름을 통해 제어를 개시하는데 이용된다. 제2 통신 폭주 정의는 단계 120에서 초과 대역폭이 존재하는 지의 여부를 판정하는데 이용된다. 단계 120에서 이용되는 제2 통신 폭주 정의는 제1 통신 폭주 정의와는 다르다고 할 수 있다. 예컨대, 단계 120의 제2 통신 폭주 정의는 단계 116에서 이용되는 제1 통신 폭주 정의보다 낮은 흐름 속도에서 통신 폭주가 존재하는 것을 고려할 수 있다. 또한, 초과 대역폭의 정의 및 제2 통신 폭주 정의는 기간 T에 걸쳐서 수정할 수 있다. 예컨대, 기간 T의 초기에, 초과 대역폭의 정의는 하위 파이프의 흐름이 통신 폭주를 감소하도록 제어되는 것을 보증하도록 통신 폭주의 측정을 포함할 수 있다. 기간 T의 후기에, 초과 대역폭의 정의는, 통신 폭주를 배제하고, 통신 폭주가 존재한다고 간주되어야 하는 흐름을 상승시키고, 및/또는 큐 레벨과 같은 다른 파라미터에만 의존하도록 수정할 수 있다. 특히, 큐 레벨과 최대 버퍼 용량간의 차(헤드룸이라고 함)는 통신 폭주를 정의하는데 이용될 수 있다. 그러나, 초과 대역폭이 존재하는 지의 여부를 판정하기 위한 다른 기준을 사용하는 것을 아무것도 막지 못한다. 일반적으로, 순간 초과 대역폭 신호는 종전의 에포크 중에 부가 자원이 부가 트래픽을 처리하기 위해서 스위치(40)에, 또는 파이프에 걸쳐서 존재했는 지의 여부를 표시한다. 초과 대역폭이 존재하지 않으면, 순간 초과 대역폭 신호 B는 0으로 설정된다(단계 122). 신호 B는 큐 레벨, 왕복 시간, 또는 다른 파라미터, 또는 이러한 측정치의 수정의 1회 판정에 기초하기 때문에 순간이라고 부른다. 따라서, 초과 대역폭의 정의는 통신 폭주에 의존하기 때문에, 순간 초과 대역폭 B도 역시 초과 대역폭이 존재하는 지의 여부를 판정함에 있어서 이용되는 바와 같이 통신 폭주에 의존한다. 이어서, 초과 대역폭의 값 E는 지수함수적으로 1(예컨대, 통신 폭주가 없는 경우)을 향해서 증가되거나 0(예컨대, 통신 폭주가 있는 경우)을 향해서 감소된다(단계 124). 양호한 실시예에서, 초과 대역폭의 값은 순간 초과 대역폭 신호의 지수함수 가중 평균이다. 따라서, 초과 대역폭의 값은 종전의 에포크를 통한 이용 가능 자원의 측정치를 제공한다. 그 외에도, 초과 대역폭의 값 E는 순간 초과 대역폭 신호 B에 의존하기 때문에, 초과 대역폭의 값 E도 역시 초과 대역폭이 존재하는 지의 여부를 판정함에 있어서 이용되는 바와 같이, 통신 폭주의 존재에 의존할 수 있다.
단계 120에서 초과 대역폭이 존재한다는 것을 판정하면, 순간 초과 대역폭의 값은 1로 설정된다(단계 126). 이어서, 초과 대역폭의 값은 순간 초과 대역폭 신호의 지수함수 가중 평균으로 설정된다(단계 128). 양호한 실시예에서, 초과 대역폭의 값은 제1 상수×종전의 초과 대역폭의 값 + 제2 상수×순간 초과 대역폭의 값이다. 단계 122와 단계 124 또는 단계 126과 단계 128에서 설정된 순간 초과 대역폭 신호 B의 값과 초과 대역폭의 값 E는 하위 파이프의 흐름의 제어를 갱신하기 위해서 다음 에포크에 이용되는 것이 바람직할 것이다.
양호한 실시예의 경우, 각 하위 파이프(i)의 전송 단편은 단계 120 내지 단계 128과 병행하는 단계 130에서 설정된다. 그러나, 다른 실시예에서는, 전송 단편은 순간 초과 대역폭 신호 B 및 초과 대역폭의 값 E와 함께 연속해서 갱신될 수 있다. 파이프의 흐름이 최고 레벨 이상이면, 흐름은 전송 단편을 (31/32)×종전의 전송 단편이 되도록 설정함으로써 지수함수적으로 감소되는 것이 바람직하다. 하위 파이프의 흐름이 최고치를 넘지 않으면, 전송 단편은 다음과 같이 변경된다. 종전의 순간 초과 대역폭 신호 B가 1(초과 대역폭 이용 가능)이었다면, 단계 130은 종전의 전송 단편, 상수 Ci 및 초과 대역폭의 값을 기초로 하여 각 하위 파이프(i)마다 전송 단편을 설정할 것이다. 바람직하게는, 종전에 존재하는 초과 대역폭에 대해서 단계 130에서 설정된 전송 단편은 Ti(t+Dt)=Ti(t)+Ci*E(t)Dt이고, 여기서 Dt는 에포크의 길이(최종 계산된 전송 단편 이후의 시간)이다.
바람직하게는, 흐름의 단위는 Dt와 최고 가능 큐 레벨 Qmax가 1이 되도록 설정된다. 따라서, 초과 대역폭이 존재한다면 하나의 하위 파이프에 대한 전송 단편은 선형적으로 증가될 수 있다. 또한, 전송 단편은 초과 대역폭이 계속해서 존재하는 한 계속해서 선형적으로 증가할 수 있다. 그러나, 양호한 실시예에서는 하위 파이프가 먼저 제어되는 경우(파이프에 통신 폭주가 존재하는 것을 먼저 판정하는 경우)에 일반적으로 초과 대역폭은 없음을 유의한다. 결국, 하위 파이프의 흐름은 증가되지 않을 것이다. 따라서, 단계 116에서 행해지는 하위 파이프의 제어 결정은 파이프의 통신 폭주의 징후에 관한 한 가지 정의를 기초로 한다. 하위 파이프 제어는 일반적으로 하나의 에포크 Dt 동안의 시간 증분의 몇 배인 기간 T 동안에 시행된다. 초기에, T 중에, 하위 파이프의 흐름은 일반적으로 파이프 내의 제2 통신 폭주 정의를 기초로 하여 상기 메카니즘에 응답해서 감소하도록 시행되기 쉽다. 이 제2 통신 폭주 정의는 적어도 기간 T의 초기 단계 중에 초과 대역폭이 존재하는 지의 여부를 판정하는데 이용된다. 그러나, 하위 파이프의 흐름의 속도가 실제로 증가할 때에는 기간 T 중에 모멘트가 있을 수 있다. 이것은 소정 수의 에포크가 만료된 후 기간 T의 종단 근처에서 특히 확실하다. 따라서, 하위 파이프의 흐름의 제어를 개시하기 위해서 하나의 통신 폭주 정의를 이용할 수 있다. 제2 통신 폭주 정의는 순간 초과 대역폭 신호 B가 0 또는 1이 되도록 하기 위해서 초과 대역폭을 설정하는데 이용될 수 있으므로, 하위 파이프의 흐름은 기간 T 중에 증가 및 감소가 모두 가능해진다.
초과 대역폭이 종전의 에포크에는 존재하지 않았고(B가 0이었고) 하위 파이프가 자신의 최저 흐름보다 많은 트래픽을 운반한다면, 단계 130에서 어떤 하위 파이프(i)의 전송 단편 Ti(t+Dt)는 그 하위 파이프의 종전의 전송 단편 Ti(t), Di 및 그 하위 파이프의 종전의 흐름 fi(t)를 기초로 하여 설정된다. 자신의 최저 흐름보다 많은 흐름을 운반하고 있는 하위 파이프의 경우에 B=0일 때의 전송 단편은 Ti(t+Dt)=Ti(t)-Di*fi(t)로 주어지는 것이 바람직하다.
또한, B=0일 때, 자신의 최저 흐름 이하를 운반하고 있는 하위 파이프의 경우의 전송 단편은 Ti(t+Dt)=Ti(t)로 주어지는 것이 바람직하다.
따라서, 단계 130에서 설정된 전송 단편은, 자신의 최저 흐름보다 많이 운반하는 하위 파이프의 전송 단편 및, 그에 따라, 그러한 하위 파이프의 흐름은 초과 대역폭이 계속해서 존재하지 않는 한 지수함수적으로 감소한다. 상수 Ci와 상수 Di는 최저 흐름의 값을 기초로 하는 것이 바람직하다. 또한, 양호한 실시예에서, 제어가 처음 행해질 때, 초과 대역폭은 파이프에서의 통신 폭주 때문에 존재하지 않을 것이다. 그 결과, 자신의 최저 흐름을 초과하는 하위 파이프의 흐름은 전송 단편을 이용함으로써 지수함수적으로 감소될 것이다. 자신의 최저 흐름을 초과하지 않는 하위 파이프의 흐름은 초과 대역폭이 이용 가능하지 않을 때 수정되지 않은 채로 유지될 것이다. 따라서, 각 하위 파이프가 최저 흐름과 같은 흐름을 운반하면 통신 폭주가 존재하지 않도록 하위 파이프에 대해서 설정된 최저값을 설정하는 것이 바람직하기 때문에, 통신 폭주는 제어될 수 있다. 따라서, 통신 폭주가 존재하는 경우, 적어도 하나의 하위 파이프는 자신의 최저 흐름보다 많은 흐름을 운반한다. 그 결과, 이러한 하위 파이프의 흐름을 지수함수적으로 감소시키면 통신 폭주가 치유되게 된다. 전술한 바와 같이, 초과 대역폭이 이용 가능해질 때, 모든 하위 파이프의 흐름은 선형적으로 증가될 수 있다. 따라서, 통신 폭주는 제어되고 하위 파이프의 흐름은 안정하게 조정될 수 있다.
단계 130에서 계산된 전송 단편을 이용하여, 스위치(40)를 통과하는 패킷은 에포크 중에 전송되거나 중단된다(단계 132). 패킷을 특정 큐, 예컨대 큐(74)에 진입하지 못하게 함으로써 그 패킷을 폐기하는 것이 바람직하다. 양호한 실시예에서, 패킷은 패킷이 흘러 들어가는 하위 패킷의 전송 단편 뿐만 아니라 각 패킷의 우선 순위도 또한 기초로 하여 중단된다. 다른 실시예에서, 패킷은 무작위로 중단된다. 또한, 전송 단편을 이용하는 대신에, 폐기 단편을 이용할 수도 있다. 어떤 하위 파이프의 폐기 단편은 1에서 전송 단편을 뺀 것이다(1-전송 단편). 따라서, 폐기 단편은 특정의 하위 파이프에 대해서 원하는 전송 단편, 또는 트래픽 흐름을 얻기 위해 중단되어야 하는 패킷들의 단편을 표시한다.
에포크가 완료되었는 지의 여부를 판정한다(단계 134). 완료되지 않았다면, 트래픽은 동일한 전송 단편들을 기초로 하여 계속해서 전송된다(단계 132). 에포크가 종료되었다면, 그 방법을 단계 116에서 다시 시작한다. 그러나, 방법 110이 반복되는 일 실시예의 경우에, 특정의 기간 또는 특정 수 만큼의 에포크에 대해서는 (통신 폭주가 존재하는 지의 여부를 판정하는) 단계 116을 생략할 수 있다. 단계 116의 생략에 의해서, 하위파이프의 흐름의 제어는 통신 폭주가 더 이상 존재하지 않은 이후에 어느 정도의 시간량 동안 계속할 수 있다. 바꿔말하면, 단계 116의 생략에 의해서, 하위 파이프의 흐름을 제어하도록 설정된 시간 T는 만료될 수 있다. 이러한 실시예에서, 하위 파이프보다 더 큰 제어가 허용되고, 하위 파이프의 흐름은 초과 대역폭이 할당되는 것을 보증하도록 증가할 수 있게 허용된다.
방법 110이 수행되는 에포크의 길이 Dt는 방법 110의 시작 이전에 설정되는 것이 바람직하다. 그러나, 다른 실시예에서, 에포크의 길이는 수정될 수 있다. 또한, 에포크의 시간 스케일은 아마도 1 내지 10 밀리초 이상의 배수로 비교적 긴 것이 바람직하다. 에포크의 길이는 파이프와 하위 파이프의 단부들간의 지연을 고려하도록 설정되어야 한다. 이것은 방법 110에서 하위 파이프에 관한 제어는 통신 폭주가 존재하는 지의 여부와 초과 대역폭이 이용 가능한 지의 여부에 따라서 에포크의 단부에서 수정될 수 있기 때문이다. 하나의 에포크에서 수행되는 제어가 파이프의 통신 폭주를 해소할 수 있는 기회를 갖는 것과 또 방법 100 또는 방법 110에 적절한 피드백이 제공될 수 있는 것을 보증하기 위해서, 패킷이 자신의 목적지에 도달하고, 필요하다면, 그 목적지에 도달했는 지의 여부에 관해서 통지를 제공할 수 있는 충분한 시간이 허용되어야 한다. 바꿔말하면, 에포크의 길이는 전송 단편의 수정이 효과를 나타낼 수 있고 또 시스템에 그 전송 단편의 효과에 관한 정보를 제공할 수 있을 만큼 길어야 한다.
방법 110은 흐름을 선형적으로 증가시키고 흐름을 지수함수적으로 감소시키기 때문에, 방법 110은 방법 100과 유사하게 기능하고 동일한 이익의 대부분을 제공한다. 따라서, 방법 110은 하위 파이프를 통한 트래픽이 자동적이고 점근(漸近)적으로 안정화에 도달할 수 있는 것을 보증할 수 있다. 또한, 각 파이프의 흐름의 증가와 감소는 파이프의 최저 흐름과 파이프의 종전 흐름에 의존할 것이다. 따라서, 여러 개의 파이프는 여러 개의 흐름 레벨, 또는 서비스를 가질 수 있다. 그 결과, 방법 110은 안정한 특성을 만들어 내고 초과 대역폭을 공정하게 할당하며 차별화된 서비스를 제공할 수 있다. 그러나, 방법 110은 초과 대역폭을 공정하게 할당하지만 하위 파이프를 통한 흐름과 파이프의 통신 폭주는 자원의 공정한 할당이 없더라도 제어될 수 있음을 유의한다. 여러 개의 서비스 레벨을 여러 개의 하위 파이프, 또는 고객에게 제공하기 위해서, 네트워크 관리자 또는 다른 사용자가 해야 할 일의 전부는 여러 개의 최저 흐름과, 원한다면, 특정의 고객이 원하는 서비스 레벨에 따른 고객을 위한 최고 흐름을 설정하는 것이다. 따라서, 방법 110은 여러 개의 서비스 레벨을 다양한 고객 또는 다양한 매체에 제공하기를 희망하는 인터넷 서비스 제공업자에 의해서 다양한 애플리케이션, 예컨대 DiffServ를 이용하는 네트워크에 이용될 수 있다.
또한, 방법 100과 방법 110은 방법 100과 방법 110을 이용하여 제어되는 네트워크의 경계부에서만 이용될 수도 있을 것이다. 예컨대, 네트워크(10')의 경우, 방법 100과 방법 110은 파이프의 입구부에 있는 스위치(14')에서만 수행되어도 된다. 따라서, 비교적 계산적으로 부담이 되는 하위 파이프를 통한 흐름의 제어는 전체 네트워크(10')에 걸쳐서 수행되지 않아도 된다. 그러나, 네트워크(10')의 파이프와 하위 파이프는 일반적으로 전체 네트워크(10')를 통해서 정의된다. 따라서, 하위 파이프의 흐름을 경계부에서만 제어함으로써, 대응하는 파이프는 전체 네트워크(10')에 걸쳐서 통신 폭주 상태에 있지 않는 것을 보증할 수 있다. 따라서, 반드시 중복 계산을 수행하여 네트워크에 걸쳐서 하위 파이프를 제어하지 않아도 통신 폭주가 제어된다. 그러나, 네트워크의 동일 스위치와 다른 스위치 모두에서 방법 100 및 방법 110과 관련하여 다른 바람직하게는 보다 간단한 제어 방법이 이용될 수도 있을 것이다. 예컨대, 파이프의 흐름 제어 방법은, 현재 계류 중이고 PCT 특허 출원 번호가 제GB00/04410호이며 발명의 명칭이 "METHOD AND SYSTEM FOR CONTROLLING TRANSMISSION OF PACKETS IN COMPUTER NETWORKS"이고 본 발명의 양수인에게 양도된 것에 개시되어 있다. 전술의 계류 중인 특허 출원에서 설명한 파이프의 흐름 제어 방법은 본 발명과 함께 이용될 수 있을 것이다. 따라서, 적어도 두 개의 제어 레벨과, 보다 미세한 하위 파이프 레벨 및 보다 대강의 파이프 레벨을 제공할 수도 있을 것이다.
통신 폭주가 도 6, 도 7a 및 도 7b에 각각 묘사하고 있는 방법 100 및 방법 110의 단계 104 및 단계 116에 각각 존재하는 지의 여부를 판정할 때에는 다양한 메카니즘을 이용할 수 있다. 도 8 내지 도 11은 특정의 파이프에 통신 폭주가 존재하는 지의 여부를 판정하기 위한 이러한 방법의 실시예들을 묘사하고 있다. 그러나, 도 8 내지 도 11에 묘사한 방법은 여러 개의 파이프에 이용될 수도 있고, 조합될 수도 있으며, 다른 방법(도시하지 않음)이 이용될 수도 있을 것이다. 또한, 도 8 내지 도 11에 묘사한 방법은 초과 대역폭이 존재하는 지의 여부를 판정하기 위한 방법 110의 단계 120에서 이용될 수도 있는 상기 제2 통신 폭주 정의에 이용될 수도 있을 것이다.
도 8은 통신 폭주가 존재하는 지의 여부를 판정하기 위한 방법 140의 일 실시예를 묘사하고 있다. 그 방법 140은 ECN을 이용하고 있다. ECN은 TCP와 같은 프로토콜에 적합한 IETF 제안 RFC 2481에 설명되어 있다. ECN의 경우에는 한 패킷 안에서 사용하지 않는 2 개의 비트를 이용하여 통신 폭주를 표시한다. ECN 인에이블되고 패킷이 주행하는 스위치는 제1 비트를 세트(설정)시킨다. ENC 인에이블된 스위치가 통신 폭주 상태에 있다면, 패킷이 통과하는 ECN 인에이블된 스위치는 제2 비트를 세트시킨다. 따라서, 그들 비트의 조합에 의해서, 패킷이 흘러서 통과하는 하위 파이프의 적어도 하나의 스위치가 통신 폭주 상태에 있는 지의 여부를 표시한다. 이들 비트는 패킷이 자신의 발원지에서 자신의 목적지로 주행할 때 전형적으로 세트된다. 수신기(목적지)가 다시 확인 응답을 보낼 때, 그 두 개의 비트의 결과는 저장되고 다시 발원지(송신기)로 제공된다. 따라서, 그 두 개의 비트에 의해서 표현되는 ECN은 파이프가 통신 폭주 상태에 있는 지의 여부를 판정하는데 이용될 수 있다.
특히, ECN이 통신 폭주 중인 스위치를 통과했음을 표시하는 패킷의 수의 측정치를 판정한다(단계 142). 일 실시예에서는, 단계 142는 ECN이 통신 폭주 중인 스위치를 통과했음을 표시하는 파이프를 주행하는 패킷의 단편을 판정하는 것을 포함하고 있다. 이 단편을 전술한 PCL로서 이용할 수 있을 것이다. 이어서, ECN에 대해서 정의된 바와 같이 통신 폭주가 존재하는 지의 여부를 판정한다(단계 144). 일 실시예에서는, 단계 144는 ECN이 통신 폭주 중인 스위치를 통과했음을 표시하는 패킷의 단편이 일부의 임계치보다 큰 지의 여부를 판정하는 것을 포함하고 있다. 그러나, ECN을 이용하는 통신 폭주의 다른 통계 측정치를 이용할 수 있다. 임계치를 초과하지 않는다고 판정되면, 파이프는 통신 폭주 상태에 있지 않다고 정의된다(단계 146). 임계치를 초과한다고 판정되면, 파이프는 통신 폭주 상태에 있다고 정의된다(단계 148). 따라서, 방법 140을 이용하여 파이프가 통신 폭주 상태에 있는 지 또는 있지 않은 지의 여부를 판정할 수 있다.
도 9는 파이프가 통신 폭주 상태에 있는 지의 여부를 판정하기 위한 방법 150의 다른 실시예를 묘사하고 있다. 그 방법 150은 동기화(SYN) 패킷을 이용한다. TCP의 경우, SYN 패킷은 호스트와 같은 2 개의 구성 요소간의 세션의 개시를 표시할 수 있다. 한 세션의 어떤 패킷이 예컨대 통신 폭주로 인해서 그 패킷이 중단되어서 자신의 목적지에 도달하지 못한 경우에는 그 구성 요소들 사이에 새로운 세션이 개시된다. 따라서, 새로운 SYN 패킷이 발송될 것이다. 따라서, SYN 패킷은 세션의 개시와 재개시의 수를 측정하는데 이용될 수 있기 때문에 파이프의 통신 폭주를 측정하는데 이용될 수 있다.
파이프의 SYN 패킷수의 측정치를 판정한다(단계 152). 일 실시예에서는, 단계 152는 파이프를 주행하여 통과하는 총 패킷수에 대한 SYN 패킷의 분량(단편)을 판정하는 것을 포함하고 있다. 이 단편을 전술한 PCL로서 이용할 수 있을 것이다. 이어서, SYN 패킷에 대해서 정의되는 바와 같이 통신 폭주가 존재하는 지의 여부를 판정한다(단계 154). 일 실시예에서는, 단계 154는 총 패킷수에 대한 SYN 패킷의 분량(단편)이 일부의 임계치보다 큰 지의 여부를 판정하는 것을 포함하고 있다. 그러나, SYN 패킷을 이용하는 통신 폭주의 다른 통계 측정치를 이용할 수 있다. 임계치를 초과하지 않는다고 판정되면, 파이프는 통신 폭주 상태에 있지 않다고 정의된다(단계 156). 임계치를 초과한다고 판정되면, 파이프는 통신 폭주 상태에 있다고 정의된다(단계 158). 따라서, 방법 150을 이용하여 파이프가 통신 폭주 상태에 있는 지 또는 있지 않은 지의 여부를 판정할 수 있다.
도 10은 파이프가 통신 폭주 상태에 있는 지의 여부를 판정하기 위한 방법 160의 다른 실시예를 묘사하고 있다. 그 방법 160은 패킷의 발원지(송신기)와 목적지(수신기) 사이를 주행하고 통지를 다시 패킷을 수신한 상기 발원지에 제공하는 패킷의 왕복 시간(RTT)을 이용한다. 한 세션의 어떤 패킷이 예컨대 통신 폭주로 인해서 그 패킷이 중단되어서 자신의 목적지에 도달하지 못한 경우에, 또는 그 패킷이 목적지에 도달하는데 시간이 많이 걸리는 경우에는 RTT는 길어질 것이다. RTT가 길어지는 것은 파이프의 통신 폭주가 많아지는 것을 의미한다. 따라서, RTT의 길이를 이용하여 파이프의 통신 폭주를 측정할 수 있다. 또한, RTT가 아닌 송신기에서 수신기까지 걸리는 시간을 이용할 수도 있다.
파이프의 패킷에 대한 RTT의 통계 측정치를 판정한다(단계 162). 일 실시예에서는, 단계 162는 일부 평균치보다 긴 RTT를 갖는 패킷의 단편을 판정하는 것을 포함할 수도 있다. 그러나, RTT의 다른 통계 측정치를 이용하는 것을 아무것도 막지는 못한다. 전술한 PCL을 판정하는데 이러한 RTT의 통계 측정치를 이용할 수도 있다. 이어서, 예컨대 RTT의 측정치가 어떤 임계치보다 높은 지의 여부를 판정함으로써, RTT에 대해서 정의된 바와 같이 통신 폭주가 존재하는 지의 여부를 판정한다(단계 164). RTT의 측정치가 파이프가 통신 폭주 상태에 있지 않다는 것을 표시한다고 판정되면, 파이프는 통신 폭주 상태에 있지 않다고 정의된다(단계 166). RTT의 측정치가 파이프가 통신 폭주 상태에 있다는 것을 표시한다고 판정되면, 파이프는 통신 폭주 상태에 있다고 정의된다(단계 168). 따라서, 방법 160을 이용하여 파이프가 통신 폭주 상태에 있는 지 또는 있지 않은 지의 여부를 판정할 수 있다.
도 11은 파이프가 통신 폭주 상태에 있는 지의 여부를 판정하는데 ECN, SYN 패킷 및 RTT의 조합을 이용할 수도 있는 방법 170의 일 실시예를 묘사하고 있다. ECN이 통신 폭주 중인 스위치를 통과했음을 표시하는 패킷수의 측정치를 판정한다(단계 172). 일 실시예에서, 단계 172는 ECN이 통신 폭주 중인 스위치를 통과했음을 표시하는 패킷의 단편을 판정하는 것을 포함하고 있다. 파이프 안의 SYN 패킷수의 측정치를 판정한다(단계 174). 일 실시예의 경우, 단계 174는 파이프를 주행하여 통과하는 총 패킷수에 대한 SYN 패킷의 분량(단편)을 판정하는 것을 포함하고 있다. 파이프 안의 패킷의 RTT의 통계 측정치를 판정한다(단계 176). 이어서, ECN, SYN 패킷 및 RTT의 크기들을 조합하여 PCL과 같은 통신 폭주의 측정치를 제공한다(단계 178). 이어서, 바람직하게는 PCL이 임계치를 초과하는 지의 여부를 판정함으로써 통신 폭주가 존재하는 지의 여부를 판정한다(단계 180). PCL이 파이프가 통신 폭주 상태에 있지 않다는 것을 표시한다고 판정되면, 파이프는 통신 폭주 상태에 있지 않다고 정의된다(단계 182). PCL이 파이프가 통신 폭주 상태에 있다는 것을 표시한다고 판정되면, 파이프는 통신 폭주 상태에 있다고 정의된다(단계 184). 따라서, 방법 170을 이용하여 파이프가 통신 폭주 상태에 있는 지 또는 있지 않은 지의 여부를 판정할 수 있다.
따라서, 파이프가 통신 폭주 상태에 있는 지의 여부를 판정하는데 있어서 다양한 방법이 이용될 수 있다. 파이프가 통신 폭주 상태에 있다면, 파이프 내부의 하위 파이프의 흐름이 제어된다. 그 외의 경우에는, 하위 파이프 레벨에서 흐름은 제어되지 않는다. 하위 파이프의 흐름은 흐름을 지수함수적으로 감소시키고 어떤 경우에는 흐름을 선형적으로 증가시킴으로써 제어된다. 따라서, 통신 폭주가 존재하기 때문에 네트워크가 원하는 대로 수행되고 있지 않은 경우에만, 흐름을 하위 파이프의 레벨에서 미세하게 제어함으로써 자원이 확장된다. 또한, 통신 폭주의 정도는, 예컨대 초과 대역폭이 존재하는 지의 여부를 판정함에 있어서 이용되는 제2 통신 폭주 정의를 통해서 하위 파이프의 흐름을 미세하게 조정하는 방법을 결정하는데 이용될 수도 있다. 그 외에도, 다양한 하위 파이프 및, 따라서, 다양한 파이프에 대해서 다양한 서비스 레벨이 제공될 수 있다. 또한, 이 제어 레벨은 네트워크의 경계부에서만 제공되어도 된다. 따라서, 하위 파이프의 흐름의 중복 제어는 불필요해진다. 그러나, 다른 네트워크 트래픽 제어 방법도 역시 이용될 수 있다.
이제까지, 네트워크의 하위 파이프의 트래픽을 제어하기 위한 방법 및 시스템을 개시하였다. 본 발명에 따라서 작성되는 소프트웨어는 어떤 형태의 컴퓨터 판독 가능 매체, 예컨대 메모리나 CD-ROM 등에 저장되거나 네트워크를 통해서 전송되고, 프로세서에 의해서 수행될 수 있다.

Claims (32)

  1. 적어도 하나의 스위치를 포함하는 컴퓨터 네트워크의 파이프 안에 있는 복수 개의 하위 파이프를 제어하는 하위 파이프 제어 방법으로서, 상기 복수 개의 하위 파이프는 상기 네트워크를 통해서 트래픽을 전송하기 위해서 상기 스위치를 이용하고, 상기 하위 파이프 제어 방법은,
    (a) 상기 복수 개의 하위 파이프의 각각에 대해서 최저 흐름이 설정될 수 있도록 허용하는 단계(102)와,
    (b) 상기 파이프에 대해서 통신 폭주가 존재하는 지의 여부를 판정하는 단계(104, 116)와,
    (c) 통신 폭주가 존재하는 경우, 상기 복수 개의 하위 파이프 중 하나의 하위 파이프에서의 흐름을 제어하는 단계(106, 132)를 포함하고,
    상기 흐름 제어 단계 (c)는,
    (c1) 상기 하위 파이프의 흐름이 상기 최저 흐름 이하인 것에 응답하여, 상기 하위 파이프의 흐름을 선형적으로 증가시키거나 수정하지 않고 유지하는 단계(106)와,
    (c2) 상기 하위 파이프의 흐름이 상기 최저 흐름 이상인 것에 응답하여, 상기 하위 파이프의 흐름을 지수함수적으로 감소시키는 단계(106)
    를 포함하는 것인 하위 파이프 제어 방법.
  2. 제1항에 있어서, (b1) 초과 대역폭이 존재하는 지를 판정하는 단계(120)를 더 포함하고,
    상기 선형적으로 증가시키는 단계 (c1)은 초과 대역폭이 존재하는 것에 더 응답하고,
    상기 지수함수적으로 감소시키는 단계 (c2)는 초과 대역폭이 존재하지 않는 것에 더 응답하는 것인 하위 파이프 제어 방법.
  3. 제2항에 있어서, 상기 스위치는 큐를 갖는 프로세서를 더 포함하고, 상기 복수 개의 하위 파이프는 상기 큐를 이용하여 상기 스위치를 통해서 트래픽을 전송하며, 상기 대역폭 판정 단계 (b1)은 상기 큐에 대해서 초과 대역폭이 존재하는 지를 판정하는 것을 기초로 하여 초과 대역폭이 존재하는 지를 판정하는 것인 하위 파이프 제어 방법.
  4. 제2항에 있어서, 상기 초과 대역폭 판정 단계 (b1)는 제2 통신 폭주 유형이 존재하는 지를 판정하는 것을 기초로 하여 초과 대역폭이 존재하는 지를 판정하는 것인 하위 파이프 제어 방법.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서, 상기 초과 대역폭 판정 단계 (b1)는,
    (b1i) 초과 대역폭 값을 이전 초과 대역폭 값들의 지수함수 가중 평균이 되게 설정하는 단계
    를 더 포함하는 것인 하위 파이프 제어 방법.
  6. 제5항에 있어서, 상기 복수 개의 하위 파이프 중 상기 하나의 하위 파이프의 흐름은 제공된 속도에 전송 단편을 곱한 것이고, 상기 선형적으로 증가시키는 단계 (c1)은 상기 하나의 하위 파이프의 상기 전송 단편을 종전의 전송 단편에 제1 량(量)을 더한 것이 되도록 설정하며, 상기 제1 량은 제1 상수에 상기 초과 대역폭의 값을 곱한 것이고, 상기 지수함수적으로 감소시키는 단계 (c2)는 상기 하나의 하위 파이프의 상기 전송 단편을 상기 종전의 전송 단편에 제2 량을 뺀 것이 되도록 설정하며, 상기 제2 량은 상기 종전의 흐름에 제2 상수를 곱한 것인 하위 파이프 제어 방법.
  7. 제6항에 있어서, 상기 제1 상수와 상기 제2 상수는 상기 파이프의 상기 최저 흐름에 의존하는 것인 하위 파이프 제어 방법.
  8. 제6항에 있어서, 상기 제1 상수는 소정의 가중치에 제3 량을 곱한 것이고, 상기 제3 량은 큐 서비스 속도에 상기 파이프의 상기 최저 흐름을 더하고 상기 복수 개의 하위 파이프의 각각에 대한 최저 흐름의 합을 뺀 것인 하위 파이프 제어 방법.
  9. 제7항에 있어서, (a1) 상기 복수 개의 하위 파이프의 각각에 대해서 최고 흐름을 설정할 수 있도록 허용하는 단계를 더 포함하고, 상기 제어 단계 (c)는,
    (c3) 상기 하위 파이프의 흐름이 상기 최고 흐름 이상인 경우, 상기 하위 파이프의 흐름을 감소시키는 단계(106, 130)
    를 더 포함하는 것인 하위 파이프 제어 방법.
  10. 제9항에 있어서, 상기 제어 단계 (c)는 상기 복수 개의 하위 파이프의 각각에 대해서 수행되는 것인 하위 파이프 제어 방법.
  11. 제10항에 있어서, 상기 네트워크는 경계부(edge)를 더 포함하고, 상기 스위치는 상기 네트워크의 상기 경계부에 위치하는 것인 하위 파이프 제어 방법.
  12. 제11항에 있어서,
    (d) 소정의 기간 후에 상기 통신 폭주 판정 단계 (b)를 반복하고 상기 소정의 기간에 걸쳐서 상기 제어 단계 (c)를 반복하는 단계
    를 더 포함하는 것인 하위 파이프 제어 방법.
  13. 제12항에 있어서, 상기 스위치를 통하는 트래픽은 복수 개의 패킷을 포함하고, 상기 통신 폭주 판정 단계 (b)는 상기 복수 개의 패킷의 제1 부분의 각각에 대해서 명시적 통신 폭주 통지(ECN)를 기초로 하여 통신 폭주가 존재하는 지의 여부를 판정하는 것(140)인 하위 파이프 제어 방법.
  14. 제12항에 있어서, 상기 스위치를 통하는 트래픽은 복수 개의 패킷을 포함하고, 상기 통신 폭주 판정 단계 (b)는 상기 복수 개의 패킷의 일 부분--상기 복수 개의 패킷의 이 일부는 복수 개의 동기 패킷을 포함함--을 기초로 하여 통신 폭주가 존재하는 지의 여부를 판정하는 것(150)인 하위 파이프 제어 방법.
  15. 제12항에 있어서, 상기 스위치를 통하는 트래픽은 복수 개의 패킷--이 복수 개의 패킷의 각각은 송신기에 의해서 개시되고 수신기에 의해서 수신됨--을 포함하고, 상기 통신 폭주 판정 단계 (b)는 상기 복수 개의 패킷의 각각에 대해서 상기 송신기와 상기 수신기간의 왕복 시간을 기초로 하여 통신 폭주가 존재하는 지의 여부를 판정하는 것(160)인 하위 파이프 제어 방법.
  16. 제12항에 있어서, 상기 스위치를 통하는 트래픽은 복수 개의 패킷--이 복수 개의 패킷의 제1 부분의 각각은 송신기에 의해서 개시되고 수신기에 의해서 수신됨--을 포함하고, 상기 통신 폭주 판정 단계 (b)는 상기 복수 개의 패킷의 제2 부분의 각각에 대한 명시적 통신 폭주 통지(ECN)와, 상기 복수 개의 패킷의 상기 제1 부분의 각각에 대한 상기 송신기와 상기 수신기간의 왕복 시간, 및 복수 개의 동기 패킷을 포함하는 상기 복수 개의 패킷의 제3 부분을 기초로 하여 통신 폭주가 존재하는 지의 여부를 판정하는 것(170)인 하위 파이프 제어 방법.
  17. 제1항 내지 제4항 또는 제6항 내지 제16항 중 어느 한 항에 있어서, 상기 복수 개의 파이프의 하위 파이프의 흐름은 상기 하위 파이프 중에서 무작위로 중단하는 패킷에 의해서 감소되는 것인 하위 파이프 제어 방법.
  18. 제1항 내지 제4항 또는 제6항 내지 제16항 중 어느 한 항에 있어서, 상기 하위 파이프의 흐름은 상기 패킷의 우선 순위를 기초로 하여 중단하는 패킷에 의해서 감소되는 것인 하위 파이프 제어 방법.
  19. 프로그램을 포함하고 있는 컴퓨터 판독 가능 기록 매체로서, 상기 프로그램은 적어도 하나의 스위치를 포함하는 컴퓨터 네트워크의 파이프 안에 있는 복수 개의 하위 파이프를 제어하고, 상기 복수 개의 하위 파이프는 상기 스위치를 이용하여 상기 네트워크를 통해서 트래픽을 전송하며, 상기 프로그램은 청구항 제1항 내지 제4항 또는 제6항 내지 제16항 중 어느 한 항에서 청구한 방법을 수행하기 위한 명령을 포함하는 것인 컴퓨터 판독 가능 기록 매체.
  20. 스위치를 포함하는 컴퓨터 네트워크의 파이프에 대한 복수 개의 하위 파이프--이 복수 개의 하위 파이프는 상기 스위치를 교차함--를 제어하기 위한 시스템으로서,
    상기 스위치를 통해서 트래픽을 전송할 때 상기 복수 개의 하위 파이프가 사용하기 위한 큐와,
    상기 큐에 결합되어 상기 복수 개의 하위 파이프의 각각에 대해서 사용자가 설정한 최저 흐름을 이용해서 상기 스위치를 통해 트래픽을 제어하는 인큐잉 메카니즘을 포함하고,
    상기 인큐잉 메카니즘은, 상기 복수 개의 하위 파이프 중 하나의 하위 파이프의 흐름이 상기 최저 흐름 이하이면 상기 하나의 파이프의 흐름이 선형적으로 증가되고, 그리고 상기 흐름이 상기 최저 흐름 이상이면 상기 복수 개의 하위 파이프 중 상기 하나의 하위 파이프의 흐름이 지수함수적으로 감소되어 상기 스위치를 통한 트래픽이 안정될 수 있도록, 상기 파이프에 대해서 통신 폭주가 존재하는 지를 판정하고 통신 폭주가 존재하는 경우에만 상기 복수 개의 하위 파이프 중 상기 하나의 파이프의 흐름을 제어하는 것인 하위 파이프 제어 시스템.
  21. 제20항에 있어서, 상기 인큐잉 메카니즘은 초과 대역폭이 존재하는 지의 여부를 더 판정하여, 초과 대역폭이 존재하거나 존재하지 않는 지의 여부를 기초로 하여 상기 복수 개의 하위 파이프의 각각에 대한 흐름을 증가 또는 감소시키는 것인 하위 파이프 제어 시스템.
  22. 제21항에 있어서, 상기 인큐잉 메카니즘은, 제2 통신 폭주 유형이 존재하는 지의 여부를 판정하고 상기 제2 통신 폭주 유형이 존재하면 상기 초과 대역폭이 존재하는 것을 표시하며 그렇지 않은 경우에는 상기 초과 대역폭이 존재하지 않는 것을 표시함으로써, 초과 대역폭의 존재 여부를 판정하는 것인 하위 파이프 제어 시스템.
  23. 제20항에 있어서, 상기 스위치를 통하는 트래픽은 복수 개의 패킷을 포함하고, 상기 인큐잉 메카니즘은 상기 복수 개의 패킷의 제1 부분의 각각에 대해서 명시적 통신 폭주 통지(ECN)를 기초로 하여 통신 폭주가 존재하는 지의 여부를 판정하는 것인 하위 파이프 제어 시스템.
  24. 제20항에 있어서, 상기 스위치를 통하는 트래픽은 복수 개의 패킷을 포함하고, 상기 인큐잉 메카니즘은 상기 복수 개의 패킷의 일 부분--상기 복수 개의 패킷의 이 일부는 복수 개의 동기 패킷을 포함함--을 기초로 하여 통신 폭주가 존재하는 지의 여부를 판정하는 것인 하위 파이프 제어 시스템.
  25. 제20항에 있어서, 상기 스위치를 통하는 트래픽은 복수 개의 패킷--이 복수 개의 패킷의 각각은 송신기에 의해서 개시되고 수신기에 의해서 수신됨--을 포함하고, 상기 인큐잉 메카니즘은 상기 복수 개의 패킷의 각각에 대해서 상기 송신기와 상기 수신기간의 왕복 시간을 기초로 하여 통신 폭주가 존재하는 지의 여부를 판정하는 것인 하위 파이프 제어 시스템.
  26. 제20항에 있어서, 상기 스위치를 통하는 트래픽은 복수 개의 패킷--이 복수 개의 패킷의 제1 부분의 각각은 송신기에 의해서 개시되고 수신기에 의해서 수신됨--을 포함하고, 상기 인큐잉 메카니즘은 상기 복수 개의 패킷의 제2 부분의 각각에 대한 명시적 통신 폭주 통지(ECN)와, 상기 복수 개의 패킷의 상기 제1 부분의 각각에 대한 상기 송신기와 상기 수신기간의 왕복 시간, 및 복수 개의 동기 패킷을 포함하는 상기 복수 개의 패킷의 제3 부분을 기초로 하여 통신 폭주가 존재하는 지의 여부를 판정하는 것인 하위 파이프 제어 시스템.
  27. 제20항에 있어서, 상기 스위치는 복수 개의 블레이드에 대응하는 복수 개의 프로세서를 포함하고, 상기 복수 개의 프로세서는 복수 개의 포트를 가지며, 상기 큐는 상기 복수 개의 프로세서 중 하나의 프로세서에 대한 것인 하위 파이프 제어 시스템.
  28. 제20항에 있어서, 상기 네트워크는 경계부를 포함하고 상기 스위치는 상기 네트워크의 상기 경계부에 배치하고 있는 것인 하위 파이프 제어 시스템.
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
KR10-2002-7012686A 2000-03-31 2001-03-30 컴퓨터 네트워크의 하위 파이프에서 흐름을 제어하기 위한 방법, 기록 매체 및 시스템 KR100504005B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US54042800A 2000-03-31 2000-03-31
US09/540,428 2000-03-31

Publications (2)

Publication Number Publication Date
KR20020084252A KR20020084252A (ko) 2002-11-04
KR100504005B1 true KR100504005B1 (ko) 2005-07-27

Family

ID=24155415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-7012686A KR100504005B1 (ko) 2000-03-31 2001-03-30 컴퓨터 네트워크의 하위 파이프에서 흐름을 제어하기 위한 방법, 기록 매체 및 시스템

Country Status (14)

Country Link
EP (1) EP1269694B1 (ko)
JP (1) JP2003530014A (ko)
KR (1) KR100504005B1 (ko)
CN (1) CN1168265C (ko)
AT (1) ATE289727T1 (ko)
AU (1) AU2001242638A1 (ko)
BR (1) BR0109622A (ko)
CA (1) CA2401425C (ko)
DE (1) DE60109027T2 (ko)
IL (1) IL151739A0 (ko)
MX (1) MXPA02009102A (ko)
MY (1) MY124780A (ko)
TW (1) TW488135B (ko)
WO (1) WO2001076138A2 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1260915C (zh) 2002-11-19 2006-06-21 华为技术有限公司 一种城域网传输设备的流量控制方法
US8429291B2 (en) * 2009-11-18 2013-04-23 Cisco Technology, Inc. Protection of network flows during congestion in a communications network
CN102726092B (zh) * 2011-11-25 2014-12-10 华为技术有限公司 网络拥塞控制方法和装置
JP6585133B2 (ja) * 2017-06-02 2019-10-02 株式会社三菱Ufj銀行 通信経路制御システム
JP6979913B2 (ja) * 2018-03-29 2021-12-15 株式会社Pfu 情報処理装置、情報処理方法、及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9520807D0 (en) * 1995-10-11 1995-12-13 Newbridge Networks Corp Fair queue servicing using dynamic weights
DE19617816B4 (de) * 1996-05-03 2004-09-09 Siemens Ag Verfahren zum optimierten Übertragen von ATM-Zellen über Verbindungsabschnitte
US6163542A (en) * 1997-09-05 2000-12-19 Carr; David Walter Virtual path shaping
US6169740B1 (en) * 1997-10-30 2001-01-02 Nortel Networks Limited Method of and apparatus for virtual link management

Also Published As

Publication number Publication date
TW488135B (en) 2002-05-21
JP2003530014A (ja) 2003-10-07
CN1168265C (zh) 2004-09-22
CN1406424A (zh) 2003-03-26
MY124780A (en) 2006-07-31
KR20020084252A (ko) 2002-11-04
AU2001242638A1 (en) 2001-10-15
CA2401425A1 (en) 2001-10-11
BR0109622A (pt) 2003-02-04
EP1269694B1 (en) 2005-02-23
DE60109027T2 (de) 2006-04-13
WO2001076138A3 (en) 2002-01-31
EP1269694A2 (en) 2003-01-02
WO2001076138A2 (en) 2001-10-11
DE60109027D1 (de) 2005-03-31
ATE289727T1 (de) 2005-03-15
IL151739A0 (en) 2003-04-10
MXPA02009102A (es) 2003-03-12
CA2401425C (en) 2006-07-11

Similar Documents

Publication Publication Date Title
EP3714579B1 (en) Layer 3 fair rate congestion control notification
US6894974B1 (en) Method, apparatus, media, and signals for controlling packet transmission rate from a packet source
US8169906B2 (en) Controlling ATM traffic using bandwidth allocation technology
US7596627B2 (en) Methods and apparatus for network congestion control
US7280477B2 (en) Token-based active queue management
US8161145B2 (en) Method for managing of denial of service attacks using bandwidth allocation technology
KR20040023719A (ko) 비선형, 높은 스케일링 가능한 증가-감소 폭주 제어방식을 지원하는 방법
WO2013132213A1 (en) Signalling congestion
US20090010165A1 (en) Apparatus and method for limiting packet transmission rate in communication system
KR20130109199A (ko) 네트워크 요소들의 온-칩 버퍼 메모리들에서 주기적인 조기 폐기를 구현하는 시스템 및 방법
US6771652B1 (en) Method and system for controlling transmission of packets in computer networks
EP1782236A2 (en) Method for managing inter-zone bandwidth in a two-way messaging network
US6724776B1 (en) Method and system for providing optimal discard fraction
WO2014125239A1 (en) Signalling congestion
EP2637371A1 (en) Signalling congestion
KR100504005B1 (ko) 컴퓨터 네트워크의 하위 파이프에서 흐름을 제어하기 위한 방법, 기록 매체 및 시스템
CA2387101C (en) Method and system for controlling transmission of packets in computer networks
Javam et al. Sared: stabilized ARED
Ho et al. A TCP-friendly stateless AQM scheme for fair bandwidth allocation
Aweya et al. Service differentiation using a multi‐level RED mechanism
Gaidamaka Flexible Random Early Detection Algorithm for Queue Management in Routers
Shinohara et al. Queue management scheme stabilizing buffer utilization in the IP router
Divakaran Using spikes to deal with elephants
Ruiz-Sánchez et al. Controlling bursts in best-effort routers for flow isolation
Liu et al. Generic congestion control through network coordination

Legal Events

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