KR101137164B1 - 단-대-단 측정에 기초한 네트워크 상으로의 데이터 스트림 유입 제어 - Google Patents

단-대-단 측정에 기초한 네트워크 상으로의 데이터 스트림 유입 제어 Download PDF

Info

Publication number
KR101137164B1
KR101137164B1 KR1020040013943A KR20040013943A KR101137164B1 KR 101137164 B1 KR101137164 B1 KR 101137164B1 KR 1020040013943 A KR1020040013943 A KR 1020040013943A KR 20040013943 A KR20040013943 A KR 20040013943A KR 101137164 B1 KR101137164 B1 KR 101137164B1
Authority
KR
South Korea
Prior art keywords
data
receiving
computer system
packet
computer
Prior art date
Application number
KR1020040013943A
Other languages
English (en)
Other versions
KR20040078559A (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 KR20040078559A publication Critical patent/KR20040078559A/ko
Application granted granted Critical
Publication of KR101137164B1 publication Critical patent/KR101137164B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Radio Relay Systems (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Communication Control (AREA)

Abstract

더 수동적인 테스트로부터 더 능동적인 테스트로 전이하는 일련의 테스트내의 적절한 결정이 네트워크 데이터 경로로의 데이터 스트림의 유입을 제어한다. 더 수동적인 테스트는 불규칙 모드 및 패킷쌍 테스트를 포함할 수 있다. 더 수동적인 테스트의 결과가 데이터 스트림이 네트워크 데이터 경로를 혼잡 상태로 전이시킬 가능성이 작은 것을 표시하면, 네트워크 데이터 경로는 혼잡의 가능성에 대한 좀 더 정밀한 결정을 수행하도록 능동적으로 검사될 수 있다. 진단 데이터 패킷의 트레인이 혼잡을 일으킬 기회가 크게 감소된 진단 데이터 전송 속도에서 전송된다. 타겟 데이터 패킷의 트레인이 요구된 애플리케이션 전송 데이터 속도에서 전송된다. 지정된 지연 임계값 내에서 수신된 타겟 데이터 패킷의 수는 지연 임계값으로 수신된 진단 데이터 패킷의 수에 비교된다.
컴퓨터 네트워크, 데이터 스트림, 진단 데이터 패킷의 트레인

Description

단-대-단 측정에 기초한 네트워크 상으로의 데이터 스트림 유입 제어{CONTROLLING ADMISSION OF DATA STREAMS ONTO A NETWORK BASED ON END-TO-END MEASUREMENTS}
도 1은 본 발명의 원리에 대한 적절한 오퍼레이팅 환경을 나타내는 도면.
도 2는 네트워크 상으로의 데이터 스트림의 유입 제어를 용이하게 하는 네트워크 아키텍쳐의 일예를 나타내는 도면.
도 3a 및 도 3b는 송신 컴퓨터 시스템이 네트워크 데이터 경로를 혼잡하게 하지 않고 수신 컴퓨터 시스템에 애플리케이션 데이터 스트림을 전달하는 것을 예측하는 방법의 일예의 플로우챠트.
도 4는 식별된 큐잉(queuing) 지연에 기초하여 네트워크 데이터 경로 혼잡의 가능성을 예측하는 방법의 플로우챠트.
도 5는 10 메가비트/초 이더넷 링크 상의 큐잉 지연 대 제공된 로드의 일예의 그래프.
도 6a는 수신된 데이터 패킷의 백분율 대 데이터 스트림이 검사된 네트워크 데이터 경로를 혼잡하게 할 가능성이 감소된 것을 나타내는 수신 지연 임계값을 형성하는 변화의 일예의 그래프.
도 6b는 수신된 데이터 패킷의 백분율 대 데이터 스트림이 검사된 네트워크 경로를 혼잡하게 할 가능성이 증가된 것을 나타내는 수신 지연 임계값을 형성하는 변화의 일예의 그래프.
*도면의 주요부분에 대한 부호의 설명*
200: 네트워크 아키텍쳐
201, 211, 221: 컴퓨터 시스템
203, 213, 223: 네트워크 인터페이스 모듈
250: 데이터 허브
255: 데이터 스위치
272, 273, 271: 데이터 링크
본 발명은 네트워크 통신 기술에 관한 것으로, 특히, 네트워크 상으로의 데이터 스트림의 유입을 제어하는 메카니즘에 관한 것이다.
컴퓨터 네트워크는 하나 이상의 컴퓨터 또는 장치(이하, 둘다 "컴퓨팅 시스템"으로 지칭됨)이 전자 데이터를 이용하여 다른 컴퓨팅 시스템과의 네트워크를 통해 통신하도록 함으로써 정보를 통신하고 액세스하는 능력을 강화시켜 왔다. 컴퓨팅 시스템 사이에서 전자 데이터를 전송할 때, 전자 메시지는 종종 전자 데이터에 대한 동작을 수행하는 프로토콜 스택을 통과할 것이다. 개방형 시스템간 상호 접 속("OSI"; Open System Interconnect) 모델은 프로토콜 스택을 구현하는 네트워킹 프레임워크의 일예이다.
OSI 모델은 전자 데이터를 전송하는 동작을 7개의 개별 "층"으로 분류하며, 층의 각각은 데이터 전송 프로세스에서 소정의 동작을 수행하도록 지정된다. 프로토콜 스택이 층들의 각각을 잠재적으로 구현할 수 있지만, 많은 프로토콜 스택은 네트워크를 통해 전자 데이터를 전송하는 데 사용되는 선택적인 층만을 구현한다. 전자 데이터가 컴퓨팅 시스템으로부터 송신될 때, 전자 데이터는 애플리케이션 층에서 발신되고 중간 하부 층으로 전달되어, 결국 네트워크로 전달된다. 전자 데이터가 네트워크로부터 수신될 때, 전자 데이터가 물리층으로 입력되고 더 높은 중간 층으로 전달되어, 결국 애플리케이션 층에 수신된다.
애플리케이션 층, 상부의 대부분 층은 애플리케이션과 엔드 유저 프로세스를 지원한다. 대부분의 프로토콜 스택에 의해 통합된 중간층은, 적어도 하부 층에 전달하기 위하여 애플리케이션 데이터를 전송 층 세그먼트로 멀티플렉싱하고 애플리케이션에 전달하기 위하여 전송층 세그먼트를 애플리케이션 데이터로 디멀티플렉싱하는 기능을 갖는 전송층이다. 사용자 데이터그램 프로토콜("UDP")은 애플리케이션과 네트워크 사이의 호환가능 전송을 위한 멀티플렉스/디멀티플렉스 데이터와 마찬가지로 적은 전송 층에서 구현되는 프로토콜의 예이다. 전송층에서 구현되는 또다른 공통 프로토콜은 송신 제어 프로토콜("TCP"), 엔드-투-엔드 복구, 리시퀀싱(resequencing) 및 플로우 제어의 특징을 애플리케이션층에 제공할 수 있는 접속 지향 프로토콜이다.
예를 들어, 하드웨어 컴포넌트 불량, 소프트웨어 에러, 링크 잡음 또는 간섭, 네트워크 혼잡 등의 불리한 네트워크 상태에 의해, 적절하게 구성된 네트워크 데이터 손실이 때때로 발생할 수 있다. 많은 경우, 불리한 네트워크 상태의 발생은 네트워크를 통해 전자 데이터를 송신하기를 원하는 유저에게는 알려지지 않을 것이다. 또한, 유저가 불리한 네트워크 상태를 알게 되어도, 불리한 상태를 정정하는 것은 종종 사용자의 제한 밖이다. 따라서, 전자 데이터가 네트워크를 통해 전송될 때 데이터 손실에 대한 잠재성은 항상 있다. 다행히도, TCP의 특징은 많은 불리한 네트워크 상태로부터 발생된 데이터 손실을 보상하고 정정할 수 있다. 따라서, TCP는 신뢰성있는 데이터 전송이 요망될 때, 예를 들어, 텍스트 및 그래픽을 갖는 웹 페이지를 전송할 때 매우 유용하다.
그러나, TCP의 특징을 실현하기 위하여, 예를 들어, 수신 및 송신 버퍼, 혼잡 제어 파라미터 및 시퀀스 및 확인 번호 파라미터(acknowledgement number parameters) 등의 소정의 상태 정보가 각각의 TCP 접속에 대하여 유지되어야 한다. 상태 정보의 유지는 이들 리소스가 리소스를 이용할 수 있는 유저 프로세스에 이용되지 못하도록 하면서 컴퓨팅 시스템 리소스(예를 들어, 시스템 메모리)를 소비한다. 따라서, 신뢰성있는 데이터의 전송이 중요하지 않을 때, 애플리케이션은 그 대신에 네트워크를 통해 전자 데이터를 송신할 때 컴퓨팅 시스템 리소스를 보존하기 위하여 UDP를 사용할 수 있다.
UDP는, 특히 컴퓨팅 시스템 사이의 안정되고 연속적인 스트림(빈번히 "스트리밍"이라 지칭됨)으로서 오디오 및 비디오 데이터(이하, "A/V 데이터"라 지칭됨) 을 전송하는데 적합하다. A/V 데이터의 출력은 통상 이전에 수신된 데이터를 리프레싱하는 것을 포함하므로, A/V 데이터 스트림으로부터의 A/V 데이터의 임의의 손실(예를 들어, 많은 네트워크에서의 고유한 데이터 손실 등)은 중요하지 않다. 예를 들어, 비디오 프레임에 대한 비디오 데이터가 수신되지 않을 때, 디스플레이 스크린은 순간적으로 플리커가 발생할 수 있지만, 그후 갱신된 비디오 데이터가 수신될 때 리프레쉬된다. 따라서, UDP는 홈 네트워크, 근거리 통신망 및 원거리 통신망의 컴퓨팅 시스템들간의 A/V 데이터 스트림을 전송하는 데 빈번히 사용된다.
불행하게도, UDP는 혼잡 제어에 대한 메카니즘이 내장되어 있지 않다. 따라서, UDP를 사용하여 A/V 데이터 스트림을 송신하는 컴퓨팅 시스템은 통상 A/V 데이터 스트림의 송신이 네트워크 혼잡에 의해 열화되는 때를 검출할 수 없다. 게다가, UDP를 사용하여 A/V 데이터 스트림을 송신하는 컴퓨팅 시스템은 통상 A/V 데이터 스트림이 다른 A/V 데이터 스트림을 열화시키는 네트워크 혼잡을 발생시킬 때를 검출할 수 없다. 따라서, A/V 데이터 스트림은 기존의 다른 A/V 데이터 스트림으로 네트워크로 송신되어 모든 A/V 데이터 스트림의 품질을 저하시킬 수 있다.
예를 들어, 10 메가비트/초("Mbps") 이더넷 허브(Ethernet Hub)가 기존의 6Mbps 고화질 텔레비전 데이터 스트림을 지원하고 또다른 6Mbps 고화질 텔레비전 데이터 스트림이 개시될 때, 그 데이터 스트림 모두가 높은 지연, 지터(jitter) 및 패킷 손실을 얻을 수 있다. 또한, UDP의 송신 속도가 애플리케이션이 데이터를 발생하는 속도 및 소스의 능력(CPU, 클록 속도 등)에 의해서만 제한되므로, 임의의 주어진 시간에 높은 데이터 전송 속도로 데이터를 송신하는 많은 A/V 데이터 스트림을 갖는 것은 일반적인 것이 아니다. 비록, TCP가 혼잡 제어 메카니즘을 갖지만, TCP 혼잡 제어 메카니즘은 예를 들어, A/V 데이터 스트림을 송신하는 애플리케이션 등 실시간 애플리케이션에 적합하지 않다. TCP 혼잡 제어 메카니즘은 송신 컴퓨팅 시스템 및 수신 컴퓨팅 시스템 사이의 하나 이상의 데이터 링크가 과도하게 혼잡하게 될 때 데이터 전송 속도를 감소시킨다. 그러나, 데이터 전송 속도의 감소는 실시간 애플리케이션을 상당히 열화시킬 수 있고, 임의의 패킷 손실을 허용할 수 있지만 최소 데이터 전송 속도를 요구한다.
또한, 네트워크가 혼잡할 때, 하나의 A/V 데이터 스트림이 불균일한 양의 대역폭을 얻을 수 있다(통상, "이더넷 캡쳐 효과(Ethernet Capture Effect)"라 지칭됨). 따라서, 새로운 A/V 데이터 스트림이 기존의 A/V 데이터 스트림으로부터 대역폭을 "취득(take-over)"할 수 있다. 이것은 기존의 A/V 데이터 스트림의 기존의 유저를 불만족스럽게 할 수 있다. 새로운 A/V 데이터 스트림의 초기 유저가 기존의 A/V 데이터 스트림을 열화시키는 것을 능동적으로 원하지 않을 수 있다. 그러나, 초기 유저는 새로운 A/V 스트림을 개시하기 전에 네트워크가 A/V 스트림 둘다를 지원할 수 있는지를 결정하는 방법이 없을 수 있다.
또한, 네트워크 관리자는 A/V 데이터 스트림을 제한하거나 A/V 데이터 스트림에 의해 소비될 수 있는 네트워크 대역폭의 양을 제한하는 메카니즘을 가지고 있지 않을 수 있다. A/V 데이터 스트림으로부터 손실된 데이터가 통상 복구될 수 없기 때문에, 많은 네트워크는 본래 A/V 데이터 스트림에 다른 유형의 데이터보다 더 높은 우선순위를 부여한다. 따라서, 네트워크 링크 상에 혼잡이 발생하면, 더 높은 우선순위에 의해 A/V 데이터 스트림에 대역폭이 주어질 수 있다. 혼잡 동안 A/V 데이터 스트림에 주어진 대역폭은 다른 비-스트리밍 데이터에 가용한 대역폭을 감소시키고, 비-스트리밍 데이터의 전송을 열화시킨다. 예를 들어, A/V 데이터 스트림과 웹 페이지 모두를 적절하게 송신하기에 충분한 대역폭 능력이 없으면, A/V 데이터 스트림의 송신, 심지어 웹 페이지의 송신이 지연되거나 방해된다.
따라서, 네트워크 상으로의 데이터 스트림의 유입을 제어하는 시스템, 방법 및 컴퓨터 프로그램 제품이 유리할 수 있다.
종래 기술에서의 상술한 문제점은 네트워크 상에 데이터 스트림의 유입을 제어하는 방법, 시스템 및 컴퓨터 프로그램 제품에 관한 본 발명의 원리에 의해 극복된다. 송신 컴퓨터 시스템은 적어도 송신측 데이터 링크와 수신측 데이터 링크를 포함하는 하나 이상의 데이터 링크를 갖는 네트워크 데이터 경로를 통해 수신 컴퓨터 시스템에 네트워크 접속될 수 있다. 송신 컴퓨터 시스템은 송신 컴퓨터 시스템으로부터 수신 컴퓨터 시스템으로 애플리케이션 데이터 스트림의 전달을 요구하는 애플리케이션으로부터 요구된 애플리케이션 데이터 전송 속도를 수신한다.
송신 컴퓨터 시스템은 송신측 데이터 로드를 수동적으로 검출한다. 송신측 데이터 로드는 예를 들어 10 메가비트/초("Mbps") 등의 수락가능한 송신측 데이터 링크 용량으로부터 감산되어 가용한 송신측 대역폭을 계산한다. 가용한 송신측 대역폭이 요구된 애플리케이션 데이터 전송 속도보다 크면, 가용한 송신측 대역폭은 애플리케이션 데이터 스트림을 수신하기에 충분한 것으로 간주된다. 네트워크 구성에 의존하여, 송신측 컴퓨터 시스템은 수신측 컴퓨터 시스템에 명령을 송신하여 가용한 수신측 대역폭을 계산한다. 가용된 수신측 대역폭이 요구된 애플리케이션 데이터 전송 속도보다 크면, 가용한 수신측 대역폭이 애플리케이션 데이터 스트림을 수신하기에 충분한 것으로 간주된다. 가용한 송신측 대역폭에 응답하여, 및 적합하다면, 충분한 가용한 수신측 대역폭에 응답하여, 송신 컴퓨터 시스템은 더 능동적인 테스트를 개시한다.
송신 컴퓨터 시스템은 네트워크 데이터 경로를 통해 수신 컴퓨터 시스템으로 제1 패킷쌍 데이터 패킷을 송신하고 그후 제2 패킷쌍 데이터 패킷을 송신한다. 수신 컴퓨터 시스템은 제1 수신 시간에 제1 패킷쌍 데이터 패킷을 수신하고 제2 수신 시간에 제2 패킷쌍 데이터 패킷을 수신한다. 적어도 제1 수신 시간 및 제2 수신시간 사이의 차에 기초하여, 네트워크 데이터 경로의 병목(bottleneck) 대역폭이 예측된다. 병목 대역폭이 요구된 애플리케이션 데이터 전송 속도보다 크면, 가용한 네트워크 데이터 경로 대역폭이 애플리케이션 데이터 스트림을 수신하기에 충분한 것으로 간주된다. 충분한 가용한 네트워크 데이터 경로 대역폭에 응답하여, 송신 컴퓨터 시스템은 더 능동적인 테스트를 개시한다.
송신 컴퓨터 시스템은 데이터 패킷 트레인을 구성하는 파라미터를 식별하여 요구된 애플리케이션 데이터 전송 속도에서 애플리케이션 데이터 스트림의 송신을 시뮬레이션한다. 송신 컴퓨터 시스템은 식별된 파라미터에 따라 데이터 패킷의 트레인을 일시적으로 송신하여 애플리케이션 데이터 스트림의 송신을 시뮬레이션한다. 수신 컴퓨터 시스템은 패킷의 트레인 내의 데이터 패킷의 적어도 일부를 수신한다. 수신 컴퓨터 시스템은 데이터 패킷의 트레인이 네트워크 데이터 경로를 혼잡 상태로 전이시키지 않는다는 것으로 계산한다.
임의의 실시예에서, 송신 컴퓨터 시스템은 초기에 예측된 병목 대역폭의 지정된 일부(예를 들어 1/100)에서 진단 데이터 패킷의 트레인을 네트워크 데이터 경로로 송신한다. 예측된 병목 대역폭의 지정된 일부는 네트워크 데이터 경로 상에서 혼잡을 일으킬 가능성이 크게 감소된 진단 데이터 전송 속도를 나타낸다. 수신 컴퓨터 시스템은 진단 데이터 패킷의 적어도 일부를 수신한다. 수신된 진단 데이터 패킷 중에서, 수신 컴퓨터 시스템은 지연된 진단 데이터 패킷(예를 들어, 지정된 시간 임계값 이후에 수신된 진단 데이터 패킷)의 수를 식별한다.
송신 컴퓨터 시스템은 그후 요구된 애플리케이션 데이터 전송 속도에서 네트워크 데이터 경로 상에 타겟 데이터 패킷의 트레인을 일시적으로 송신한다. 타겟 데이터 패킷의 트레인은 네트워크 데이터 경로 상의 혼잡을 일으킬 가능성이 적도록 애플리케이션 데이터 스트림의 송신을 시뮬레이트하기 위하여 일시적으로 송신된다. 수신 컴퓨터 시스템은 타겟 데이터 패킷 중의 적어도 일부를 수신한다. 수신된 타겟 데이터 패킷 중에서, 수신 컴퓨터 시스템은 지연된 타겟 데이터 패킷(예를 들어, 지정된 시간 임계값 이후에 수신된 타겟 데이터 패킷)의 수를 식별한다.
수신 컴퓨터 시스템은 지연된 타겟 데이터 패킷의 수와 지연된 진단 데이터 패킷의 수를 비교한다. 지연된 타겟 패킷의 수가 지연된 진단 데이터 패킷의 수의 지정된 지연된 패킷 임계값 내에 있으면, 애플리케이션 데이터 스트림이 네트워크 데이터 경로 상에 혼잡을 일으키지 않는 것으로 결정한다. 수신 컴퓨터 시스템이 그 비교 결과를 송신 컴퓨터 시스템에 송신한다. 따라서, 송신 컴퓨터 시스템은 애플리케이션 데이터 스트림을 네트워크 데이터 경로에 송신한다.
본 발명의 다른 특징과 이점은 이하의 설명으로부터 알 수 있으며, 부분적으로 설명으로부터 명백하거나 본 발명의 실행에 의해 이해될 수 있다. 본 발명의 특징 및 이점은 첨부된 청구항에서 특히 지적한 기구 및 조합에 의해 실현되거나 얻어질 수 있다. 본 발명의 이러한 특징 및 다른 특징은 다음의 설명 및 첨부된 청구항으로부터 자명한 것이거나 이하의 본 발명의 실행에 의해 이해될 수 있다.
본 발명의 상술한 및 다른 이점 및 특징을 얻을 수 있는 방법을 기재하기 위하여, 상기에서 간략히 설명된 본 발명의 더 특별한 설명이 첨부된 도면에 도시된 특정 실시예를 참조하여 렌더링될 것이다. 이들 도면은 본 발명의 일반적인 실시예만을 도시하고 따라서 그 범위의 제한으로 간주되지 않으며, 본 발명은 첨부된 도면을 통해 추가의 특성 및 세부사항을 설명할 것이다.
본 발명의 원리는 네트워크 상으로의 데이터 스트림의 유입을 제어하는 것을 제공한다. 더 수동적인 테스트로부터 더 능동적인 테스트로 전이되는 일련의 테스트의 적절한 결정은 네트워크 데이터 경로로의 데이터 스트림의 유입을 제어한다. 더 수동적인 테스트는 네트워크 데이터 경로의 송신측 데이터 링크에서 및, 적절하다면, 네트워크 데이터 경로의 수신측 데이터 링크에서 불규칙 모드 측정을 포함한다. 송신측 데이터 링크 및/또는 수신측 데이터 링크가 애플리케이션 데이터 스트림을 지원하기에 충분한 가용한 대역폭을 갖지 않으면, 테스트는 중지되고 애플리케이션 데이터 스트림은 네트워크 상으로 송신되지 않는다. 한편, 송신측 데이터 링크 및, 적절하다면, 수신측 데이터 링크가 애플리케이션 데이터 스트림을 지원하기에 충분한 가용한 대역폭을 가지면, 예를 들어 패킷쌍 테스트 및/또는 능동적인 네트워크 검사(active network probing) 등의 더 능동적인 테스트가 수행된다.
적절하다면, 패킷쌍 테스트는 네트워크 데이터 경로의 병목 대역폭을 계산하도록 수행된다. 병목 대역폭이 애플리케이션 데이터 스트림을 지원하기에 충분하지 않으면, 테스트는 중지되고 애플리케이션 데이터 스트림은 네트워크 상으로 송신되지 않는다. 한편, 병목 대역폭이 애플리케이션 데이터 스트림을 지원하기에 충분하면, 예를 들어 능동적인 네트워크 검사 등의 더 능동적인 테스트가 수행된다.
적절하다면, 애플리케이션 데이터 스트림이 네트워크 데이터 경로 상으로 송신되었으면, 네트워크 데이터 경로는 (예를 들어, 데이터 패킷의 트레인을 송신함으로써) 능동적으로 검사되어 네트워크 데이터 경로 상에 혼잡을 일으키는 애플리케이션 데이터 스트림의 가능성을 식별한다. 혼잡을 일으킬 가능성이 높은 것으로 식별되면, 애플리케이션 데이터 스트림은 네트워크 데이터 경로로 전달되지 않는다. 한편, 혼잡을 일으킬 가능성이 감소된 것으로 식별되면, 애플리케이션 데이터 스트림은 네트워크 데이터 경로로 전달될 수 있다.
본 발명의 범위내의 실시예들은 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체 또는 그 매체에 저장된 데이터 구조를 포함한다. 이러한 컴퓨터 판독가능 매체는 범용 또는 특수목적 컴퓨터 시스템에 의해 액세스될 수 있는 임의의 가용한 매체일 수 있다. 예를 들어, 제한되는 것은 아니지만, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EPROM, CD-ROM 또는 다른 광학 디스크 기억장치, 자기 디스크 기억장치 또는 다른 자기 기억 장치 또는 컴퓨터 실행가능 명령어, 컴퓨터 판독가능 명령 또는 데이터 구조 형태로 소망의 프로그램 코드 수단을 갖거나 저장하는데 사용될 수 있고 범용 또는 특수목적 컴퓨터 시스템에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다.
이 설명 및 다음의 청구항에서, "네트워크"는 컴퓨터 시스템 및/또는 모듈 사이의 전자 데이터의 전송을 가능하게 하는 하나 이상의 데이터 링크로서 정의된다. 정보가 네트워크 또는 다른 통신 접속(유선(hardwired), 무선, 또는 유선 또는 무선의 조합)에 의해 컴퓨터 시스템에 전송되거나 제공될 때, 접속은 컴퓨터 판독가능 매체로서 적절히 간주된다. 따라서, 임의의 이러한 접속은 컴퓨터 판독가능 매체로서 정의된다. 상기의 조합은 또한 컴퓨터 판독가능 매체의 범위내에 포함되어야 한다. 컴퓨터 실행가능 명령어는 예를 들어, 범용 컴퓨터 시스템 또는 특수목적 컴퓨터 시스템이 소정의 기능 및 기능의 그룹을 수행하도록 하는 명령 및 데이터를 포함한다. 컴퓨터 실행가능 명령어는 예를 들어 바이너리, 어셈블리 언어 등의 중간 포맷 명령 또는 심지어 소스 코드일 수 있다.
이 설명 및 다음의 청구항에서, "컴퓨터 시스템"은, 함께 동작하여 전자 데이터에 대한 동작을 수행하는 하나 이상의 소프트웨어 모듈, 하나 이상의 하드웨어 모듈 또는 그들의 조합으로 정의된다. 예를 들어, 컴퓨터 시스템의 정의는 퍼스널 컴퓨터의 하드웨어 컴포넌트 뿐만 아니라 퍼스널 컴퓨터의 오퍼레이팅 시스템 등의 소프트웨어 모듈을 포함한다. 모듈의 물리적 레이아웃은 중요하지 않다. 컴퓨터 시스템은 네트워크를 통해 결합된 하나 이상의 컴퓨터를 포함할 수 있다. 마찬가지로, 컴퓨터 시스템은 단일 물리층(이동 전화 또는 개인 휴대용 단말기"PDA" 등)을 포함하고, 내부 모듈(메모리 또는 프로세서)은 함께 작동하여 전자 데이터에 대한 동작을 수행한다.
이 설명 및 다음의 청구항에서, "데이터 스트림"은 (비록 데이터 스트림의 종료 전에 수신되더라도) 전송된 데이터의 부분이 수신됨에 따라 출력될 수 있도록 안정되고 연속적인 스트림으로 전송되는 데이터로서 정의된다. 데이터 스트림은 수신 컴퓨터 시스템에서 출력하기 위하여 송신 컴퓨터 시스템으로부터 전달된 오디오 및/또는 비디오 데이터 스트림(예를 들어 오디오/비디오 "A/V" 데이터 스트림)일 수 있다. 데이터 스트림은 예를 들어 라이브 라디오 또는 텔레비전 방송 데이터의 데이터 스트림 등의 라이브 데이터 스트림일 수 있다. 마찬가지로, 데이터 스트림은 송신 컴퓨터 시스템에서 저장된 파일이 수신 컴퓨터 시스템으로 전송될 때 발생될 수 있으며, 예를 들어, 저장된 MPEG(Motion Picture Expert Group) 파일이 선택될 때 발생된 데이터 스트림일 수 있다. 데이터 스트림에 포함된 데이터는 데이터가 출력된 후 수신 컴퓨터 시스템에서 저장되거나 저장되지 않을 수 있다. 데이터 스트림은 예를 들어, 사용자 데이터그램 프로토콜("UDP"), 실시간 전송 프로토콜(RTP") 및 실시간 스트리밍 프로토콜("RTSP") 등의 다양한 프로토콜 또는 프로토콜의 조합을 사용하여 전송될 수 있다.
이 설명 및 다음의 청구항에서, "데이터 전송 속도"는 데이터가 데이터 링크로, 데이터 링크에 통해 전송되거나 (또는 전송될) 또는 데이터 링크로부터 수신되 는 속도로서 정의된다. 데이터 전송 속도는 예를 들어 메가비트/초("Mbps") 및 메가바이트/초("MBps") 등의 많은 다른 단위로 측정될 수 있다. 예를 들어, 애플리케이션 모듈(202)은 오디오 데이터 스트림이 (데이터 링크(272, 271)를 통해) 2 Mbps의 데이터 전송 속도로 컴퓨터 시스템(221)에 송신되도록 할 수 있다. 데이터 스트림이 데이터 링크에 송신되기 전에, 애플리케이션 모듈은 네트워크 검사 모듈로의 데이터 스트림의 예측된 피크 데이터 전송 속도를 표시할 수 있다.
이 설명 및 다음의 청구항은 "데이터 허브(data hub)"는, 다른 컴퓨터 시스템에 대한(유선 또는 무선) 공통 접속 포일트로서 동작하고 수신된 데이터 패킷을 허브의 모든 포트로 송신함으로써 접속된 컴퓨터 시스템들 간의 전자 데이터를 전송하는 컴퓨터 시스템으로서 정의된다. 즉, 데이터 패킷이 데이터 허브의 하나의 포트에서 수신되면, 데이터 허브는 데이터 허브의 다른 모든 포드들에게 패킷을 복사한다. 결과적으로, 데이터 허브에 접속된 하나의 데이터 링크로부터 수신된 데이터 패킷은 후속으로 데이터 허브에 접속된 다른 모든 데이터 링크로 전송된다. 예를 들어, 데이터 링크(271)를 통해 데이터 허브(250)에서 수신된 데이터 패킷은 후속으로 데이터 링크(271, 272, 273, 277)에 송신된다.
이 설명 및 다음의 청구항에서, "데이터 스위치"는, 다른 컴퓨터 시스템에 대한 (유선 또는 무선) 공통 접속 포인트로서 동작하고 수신된 데이터 패킷을 데이터 패킷에 포함된 목적 어드레스에 대응하는 포트로 송신함으로써 접속된 컴퓨터 시스템들 사이에서 전자 데이터를 전송하는 컴퓨터 시스템으로서 정의된다. 즉, 데이터 패킷이 데이터 스위치의 하나의 포트에서 수신되면, 데이터 스위치는 데이 터 패킷의 목적 어드레스(예를 들어, 인터넷 프로토콜("IP"))를 판독하여 데이터 패킷을 목적 어드레스에 대응하는 포트에 송신한다. 결과적으로 하나의 데이터 링크로부터 수신된 데이터 패킷은 후속으로 목적 어드레스와 관련된 목적 컴퓨터 시스템에 더 근접한 데이터 링크로 전송된다.
목적 컴퓨터 시스템에 더 근접한 데이터 링크는 목적 컴퓨터 시스템에 접속된 데이터 링크일 수 있다. 예를 들어, 데이터 스위치(255)는 컴퓨터 시스템(251)에 대응하는 목적 어드레스를 갖는 데이터 패킷을 수신할 수 있다. 따라서, 데이터 스위치(255)는 데이터 링크(279) 상에 데이터 패킷을 송신할 수 있다. 한편, 목적 컴퓨터 시스템에 더 근접한 데이터 링크는 송신 컴퓨터 시스템과 목적 컴퓨터 시스템 사이의 중간 데이터 링크일 수 있다. 예를 들어, 컴퓨터 시스템(211)은 컴퓨터 시스템(241)과 관련된 목적 어드레스에 데이터 패킷을 송신할 수 있다. 따라서, 데이터 허브(250)는 데이터 링크(277)(데이터 링크(271, 272, 273) 뿐만 아니라)로의 데이터 패킷을 반복한다. 데이터 스위치(255)는 데이터 링크(277)로부터 데이터 패킷을 수신하고 데이터 패킷의 목적 어드레스를 판독할 수 있다. 따라서, 데이터 스위치(255)는 데이터 링크(278)에 데이터 패킷을 송신할 수 있다(후에, 데이터 스위치(260)는 데이터 링크(278)로부터 데이터 패킷을 수신하고 데이터 패킷을 데이터 링크(276)에 송신할 수 있다).
본 기술에 숙련된 자는 본 발명이 퍼스널 컴퓨터, 랩탑 컴퓨터, 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능한 가전제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프 레임 컴퓨터, 이동 전화, PDA, 페이저(pagers) 등을 포함하는 많은 유형의 컴퓨터 시스템 구성을 갖는 네트워크 컴퓨팅 환경에서 실행됨을 이해할 것이다. 본 발명은 로컬 및 원격 컴퓨터 시스템이 네트워크를 통해 (유선, 무선 데이터 링크 또는 유선 및 무선 데이터 링크의 조합에 의해) 링크되고 둘다 태스크를 수행하는 분산형 시스템 환경에서 실행될 수 있다. 분산형 시스템 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 기억 장치내에 위치될 수 있다.
도 1 및 다음의 설명은 본 발명이 구현될 수 있는 적합한 컴퓨팅 환경의 간략하고 일반적인 설명을 제공하기 위하여 의도된 것이다. 요구되지는 않았지만, 본 발명은 컴퓨터 시스템에 의해 실행되는 프로그램 모듈 등을 포함하는 컴퓨터 실행가능 명령어의 일반적인 컨텍스트에서 설명될 것이다. 일반적으로 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 컴퓨터 실행가능 명령어, 관련된 데이터 구조 및 프로그램 데이터는 여기에 개시된 발명의 액션을 실행하는 프로그램 코드 수단의 예를 나타낸다.
도 1을 참조하면, 본 발명을 구현하는 일예의 시스템은 프로세싱 유닛(121), 시스템 메모리(122) 및 시스템 메모리(122)를 포함하는 많은 시스템 컴포넌트를 프로세싱 유닛(121)에 결합하는 시스템 버스(123)를 포함하는 컴퓨터 시스템(120)의 형태의 범용 컴퓨팅 장치를 포함한다. 프로세싱 유닛(121)은 본 발명의 특징을 포함하는 컴퓨터 시스템(120)의 특징을 구현하기 위하여 설계된 컴퓨터 실행가능 명령어를 실행할 수 있다. 시스템 버스(123)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스 및 다양한 버스 아키텍쳐 중의 임의의 것을 사용하는 로컬 버스를 포함하는 몇개의 유형의 버스 구조 중의 임의의 것일 수 있다. 시스템 메모리는 판독 전용 메모리("ROM"; 124) 및 랜덤 액세스 메모리("RAM; 125)를 포함한다. 시동중과 같은 때에 컴퓨터 시스템(120)내의 요소들간의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입출력 시스템("BIOS"; 126)이 ROM(124)에 저장될 수 있다.
컴퓨터 시스템(120)은 또한 자기 하드 디스크(139)로부터 판독하고 그 하드 디스크로 기록하는 자기 하드 디스크 드라이브(127), 분리형 자기 디스크(129)로부터 판독하고 그 자기 디스크(129)로 기록하는 자기 디스크 드라이브(128) 및 예를 들어 CD-ROM 또는 다른 광학 매체 등의 분리형 광학 디스크(131)로부터 판독하고 그 광학 디스크로 기록하는 광학 디스크 드라이브(130)를 포함할 수 있다. 자기 하드 디스크 드라이브(127), 자기 디스크 드라이브(128) 및 광학 디스크 드라이브(130)는 각각 하드 디스크 드라이브 인터페이스(132), 자기 디스크 드라이브 인터페이스(133) 및 광학 디스크 드라이브 인터페이스(134)에 의해 시스템 버스(123)에 접속된다. 드라이브 및 그 관련 컴퓨터 판독가능 매체는 컴퓨터 실행가능 명령어, 데이터 구조, 프로그램 모듈 및 컴퓨터 시스템(120)에 대한 다른 데이터의 비휘발성 기억장치를 제공한다. 여기에 설명된 일예의 환경이 자기 하드 디스크(139), 분리형 자기 디스크(129) 및 분리형 광학 디스크(131)를 포함하지만, 자기 카세트, 플래시 메모리 카드, DVD(digital versatile disk), 베르누이(Bernoulli) 카트리지, RAM, ROM 등을 포함하는 데이터를 저장하는 다른 유형의 컴퓨터 판독가능 매체가 사용될 수 있다.
프로그램 코드 수단은 오퍼레이팅 시스템(135), 하나 이상의 애플리케이션 프로그램(136), 다른 프로그램 모듈(137) 및 프로그램 데이터(138)를 포함하는 하드 디스크(139), 자기 디스크(129), 광학 디스크(131), ROM(124) 또는 RAM(125)에 저장될 수 있다. 유저는 키보드(140), 포인팅 장치(142) 또는 예를 들어, 마이크로폰, 조이스틱, 게임 패드, 스캐너 등의 다른 입력 장치(도시하지 않음)를 통해 컴퓨터 시스템(120)에 코맨드 및 정보를 입력할 수 있다. 이들 및 다른 입력 장치는 시스템 버스(123)에 결합된 입출력 인터페이스(146)를 통해 프로세싱 유닛(121)에 접속될 수 있다. 입출력 인터페이스(146)는 예를 들어, 직렬 포트 인터페이스, PS/2 인터페이스, 병렬 포트 인터페이스, 유니버설 시리얼 버스("USB") 인터페이스 또는 미국 전기 전자 학회( "IEEE") 1394 인터페이스(즉, 파이어와이어 인터페이스) 등의 다양한 다른 인터페이스 중 임의의 것을 논리적으로 나타내거나 다른 인터페이스의 조합을 논리적으로 나타낼 수 있다.
모니터(147) 또는 다른 디스플레이 장치는 또한 비디오 인터페이스(148)를 통해 시스템 버스(123)에 접속된다. 스피커(169) 또는 다른 오디오 출력 장치는 또한 오디오 인터페이스(149)를 통해 시스템 버스(123)에 접속된다. 다른 주변 출력 장치(도시하지 않음), 예를 들어, 프린터 등이 컴퓨터 시스템(120)에 접속될 수 있다.
컴퓨터 시스템(120)은 예를 들어, 오피스 광역 또는 기업 광역 컴퓨터 네트워크(office-wied or enterprise-wide computer network), 홈 네트워크, 인트라넷, 및/또는 인터넷 등의 네트워크에 접속가능하다. 컴퓨터 시스템(120)은 이러한 네 트워크를 통해 예를 들어, 원격 컴퓨터 시스템, 원격 애플리케이션, 및/또는 원격 데이터베이스 등의 외부 소스와 데이터를 교환할 수 있다.
컴퓨터 시스템(120)은 네트워크 인터페이스(153)를 포함하며, 컴퓨터 시스템(120)은 네트워크 인터페이스(153)를 통해 외부 소스로부터 데이터를 수신 및/또는 외부 소스로 데이터를 송신한다. 데이터 링크(151)를 통해 원격 컴퓨터 시스템(183)과 데이터를 교환한다. 도 1에 도시된 바와 같이, 네트워크 인터페이스(153)는 예를 들어 네트워크 인터페이스 카드 및 대응하는 네트워크 드라이버 인터페이스 스펙("NDIS"; Network Driver Interface Specification) 스택 등의 하나 이상의 소프트웨어 및/또는 하드웨어 모듈을 논리적으로 나타낼 수 있다. 데이터 링크(151)는 네트워크의 일부(예를 들어, 이더넷 세그먼트)를 나타내고, 원격 컴퓨터 시스템(183)은 네트워크의 노드를 나타낸다. 예를 들어, 원격 컴퓨터 시스템(183)은 컴퓨터 시스템(120)에 데이터 스트림을 송신하는 송신 컴퓨터 시스템일 수 있다. 한편, 원격 컴퓨터 시스템(183)은 컴퓨터 시스템(120)으로부터 송신된 데이터 스트림을 수신하는 수신 컴퓨터 시스템일 수 있다.
마찬가지로, 컴퓨터 시스템(120)은 입출력 인터페이스(146)를 포함하고, 컴퓨터 시스템(120)은 입출력 인터페이스(146)를 통해 외부 소스로부터 데이터를 수신 및/또는 외부 소스로 데이터를 송신한다. 입출력 인터페이스(146)는 데이터 링크(159)를 통해 모뎀(154; 예를 들어, 표준 모뎀, 케이블 모뎀, 또는 디지털 가입자 라인 ("DSL") 모뎀)에 결합되고, 컴퓨터 시스템(120)은 모뎀을 통해 외부 소스로부터 데이터를 수신 및/또는 외부 소스로 데이터를 송신한다. 도 1에 도시된 바 와 같이, 입출력 인터페이스(146)와 모뎀(154)은 데이터 링크(152)를 통해 원격 컴퓨터 시스템(193)과의 데이터 교환을 용이하게 한다. 데이터 링크(152)는 네트워크의 일부를 나타내고 원격 컴퓨터 시스템(193)은 네트워크의 노드를 나타낸다. 예를 들어, 원격 컴퓨터 시스템(193)은 컴퓨터 시스템(120)에 데이터 스트림을 송신하는 송신 컴퓨터 시스템일 수 있다. 한편, 원격 컴퓨터 시스템(193)은 컴퓨터 시스템(120)으로부터 송신된 데이터 스트림을 수신하는 수신 컴퓨터 시스템일 수 있다.
도 1은 본 발명의 적합한 오퍼레이팅 환경을 나타내지만, 본 발명의 원리는 본 발명의 원리를 구현할 수 있는 임의의 시스템(필요하다면, 적절한 변경을 가짐)에 채용될 수 있다. 도 1에 도시된 환경은 단지 예시적인 것이며 본 발명의 원리가 구현될 수 있는 다양한 환경의 작은 부분을 나타내는 것이 아니다.
본 발명에 따르면, 애플리케이션 모듈, 네트워크 인터페이스 모듈 및 검사 모듈 뿐만 아니라 데이터 패킷, 송신 파라미터 및 데이터 스트림을 포함하는 관련된 데이터가 컴퓨터 시스템(120)과 관련된 컴퓨터 판독가능 매체의 임의의 것에 저장되거나 그로부터 액세스될 수 있다. 예를 들어, 이러한 모듈의 부분과 관련된 프로그램 데이터의 부분이 시스템 메모리(122)에 저장되는 오퍼레이팅 시스템(135), 애플리케이션 프로그램(136), 프로그램 모듈(137) 및/또는 프로그램 데이터(138)에 포함될 수 있다.
예를 들어 자기 하드 디스크(139) 등의 매스 기억 장치가 컴퓨터 시스템(120)에 결합될 때, 이러한 모듈 및 관련 프로그램은 또한 매스 기억 장치내 에 저장될 수 있다. 네트워킹된 호나경에서, 컴퓨터 시스템(120) 또는 그 부분과 관련하여 도시된 프로그램 모듈은 원격 컴퓨터 시스템(183) 및/또는 원격 컴퓨터 시스템(193)과 관련된 시스템 메모리 및/또는 매스 기억 장치 등의 원격 메모리 기억 장치에 저장될 수 있다. 이러한 모듈의 실행은 상술한 바와 같이 분산형 환경에서 수행될 수 있다.
도 2는 네트워크 상으로의 데이터 스트림의 유입의 제어를 용이하게 하는 네트워크 아키텍쳐(200)의 일예를 도시한다. 네트워크 아키텍쳐(200)에는 컴퓨터 시스템(201, 211, 221, 231, 241, 251)이 포함된다. 컴퓨터 시스템(201, 211, 221)은 각각 데이터 링크(272, 273, 271)를 대응시킴으로써 데이터 허브(250)에 접속된다. 컴퓨터 시스템(201, 211, 221)은 각각 전자 데이터를 송신하고 전자 데이터를 수신하는 대응하는 네트워크 인터페이스 모듈(203, 213, 223)을 포함한다.
데이터 허브(250)는 데이터 링크(277)에 의해 데이터 스위치(255)에 접속된다. 마찬가지로, 컴퓨터 시스템(251)은 데이터 링크(279)에 의해 데이터 스위치(255)에 접속된다. 컴퓨터 시스템(251)은, 전자 데이터를 송신하고 전자 데이터를 수신하는 네트워크 인터페이스 모듀(253)을 포함한다. 데이터 스위치(255)는 데이터 링크(278)에 의해 데이터 스위치(260)에 접속된다. 컴퓨터 시스템(231, 241)은 각각 데이터 링크(275, 276)를 대응시킴으로써 데이터 스위치(260)에 접속된다. 컴퓨터 시스템(231, 241)은 각각 데이터 스위치(260)에 전자 데이터를 송신하고 데이터 스위치(260)로부터 전자 데이터를 수신하는 대응하는 네트워크 인터페이스 모듈(233, 243)을 포함한다.
데이터 스트림(예를 들어, UDP 데이터 스트림)은 네트워크 아키텍쳐(200)내의 컴퓨터 시스템들 사이와 네트워크 아키텍쳐(200)내의 컴퓨터 시스템과 네트워크 아키텍쳐(200)의 외부에 있는 컴퓨터 시스템(도시하지 않음) 사이에서 전송될 수 있다. 네트워크 아키텍쳐(200)내의 컴퓨터 시스템은 데이터 스트림이 또다른 컴퓨터 시스템의 대응하는 수신 애플리케이션에 전송되는 것을 요구하는 하나의 컴퓨터 시스템의 송신 애플리케이션의 결과로서 데이터 스트림을 전송할 수 있다. 예를 들어, 애플리케이션 모듈(212)은 애플리케이션 모듈(242)로 애플리케이션 데이터 스트림의 전송을 요구할 수 있다. 따라서, 네트워크 인터페이스 모듈(213)은, 적절한 애플리케이션 데이터를 포함하고 컴퓨터 시스템(241)에 대응하는 목적 어드레스(예를 들어, IP 어드레스)를 갖는 데이터 스트림을 데이터 링크(273)에 송신할 수 있다. 네트워크 인터페이스 모듈(243)은 데이터 링크(276)로부터 송신된 데이터를 수신하고 포함된 애플리케이션 데이터가 애플리케이션(242)에 전달되도록 할 수 있다.
비-스트리밍 데이터는 또한 네트워크 아키텍쳐(200)내의 컴퓨터 시스템들 사이와 네트워크 아키텍쳐(200)내의 컴퓨터와 네트워크 아키텍쳐(200)의 외부에 있는 컴퓨터 시스템 사이에서 전송될 수 있다. 예를 들어, 컴퓨터 시스템(251)은 비-스트리밍 방식으로 다른 컴퓨터 시스템에 데이터를 전송하는 서버일 수 있다. 또다른 컴퓨터 시스템이 컴퓨터 시스템(251)에 저장된 파일을 요구하면, 네트워크 인터페이스 모듈(253)은, 요구된 파일을 포함하고 요구하는 컴퓨터 시스템의 목적 어드레스를 갖는 데이터 패킷을 송신함으로써 응답할 수 있다. 예를 들어, 애플리케이 션 모듈(222)은 컴퓨터 시스템(251)에 저장된 웹 페이지를 요구하는 웹 브라우저일 수 있다. 따라서, 컴퓨터 시스템(251)은 컴퓨터 시스템(221)에 전달하기 위하여 데이터 링크(277)로 요구된 웹 페이지를 송신함으로써 응답할 수 있다. 네트워크 인터페이스 모듈(253)은 웹 페이지(예를 들어, 하나 이상의 송신 제어 프로토콜("TCP") 세그먼트)를 포함하는 HTTP 메시지를 컴퓨터 시스템(221)에 송신함으로써 요구된 웹 페이지의 송신을 용이하게 할 수 있다. 네트워크 인터페이스 모듈(223)은 데이터 링크(271)로부터 웹 페이지를 수신하고 웹 페이지가 애플리케이션 모듈(222)에 전달되도록 할 수 있다.
따라서, 네트워크 아키텍쳐(200)내의 데이터 링크는 데이터 링크를 통해 전송되는 스트리밍 및 비-스트리밍 데이터에 의해 변경된 데이터 로드를 경험할 수 있다. 데이터가 데이터 링크로 송신될 때, 데이터 링크의 대역폭의 일부분이 소비되어 데이터 링크의 가용한 대역폭을 감소시킬 수 있다. 반대로, 데이터가 데이터 링크로부터 제거될 때(예를 들어 파일의 전송 완료 후 또는 데이터 스트림의 종료 후), 데이터 링크의 대역폭의 일부분이 해방되어 데이터 링크의 가용한 대역폭을 증가시킨다.
도 3a 및 도 3b는 송신 컴퓨터 시스템이 네트워크 데이터 경로를 혼잡하게 하지 않고 애플리케이션 데이터 스트림을 수신 컴퓨터 시스템에 전달하는 것을 예측하는 방법(300)의 일예의 플로우챠트이다. 방법(300)은 네트워크 아키텍쳐(200)에 도시된 컴퓨터 시스템에 대하여 설명할 것이다.
방법(300)은 요구된 애플리케이션 데이터 전송 속도를 수신하는 액션을 포함 한다(액션 301). 액션 (301)은 송신 컴퓨터 시스템으로부터 수신 컴퓨터 시스템으로 애플리케이션 데이터 스트림의 전달을 요구하는 애플리케이션으로부터 요구된 애플리케이션 데이터 전송 속도를 수신하는 것을 포함한다. 예를 들어, 검사 모듈(204)은 애플리케이션 모듈(202)이 컴퓨터 시스템(201)으로부터 컴퓨터 시스템(221)으로 또는 컴퓨터 시스템(231)으로 전달되도록 요구하는 애플리케이션 데이터 스트림에 대한 애플리케이션 데이터 전송 속도를 수신할 수 있다. 요구된 애플리케이션 데이터 전송 속도는 데이터 스트림의 송신 동안 사용될 피크 데이터 전송 속도이다.
방법(300)은 불규칙 모드 측정을 수행하는 기능적 결과 지향 단계를 포함한다(단계 312). 단계(312)는 불규칙한 모드 측정을 수행한 결과를 달성하기 위한 임의의 대응하는 액션을 포함할 수 있다. 그러나, 도 3에 도시된 예에서, 단계(312)는 송신측 데이터 로드를 수동적으로 검출하는 대응 액션을 포함한다(액션 302). 액션(302)은 송신측 데이터 링크 상의 송신측 데이터 로드를 수동적으로 검출하는 것을 포함할 수 있다.
송신측 컴퓨터 시스템은 데이터 스트림을 송신하기 위한 송신 컴퓨터 시스템일 수 있다. 예를 들어, 애플리케이션 모듈(202)로부터의 요구된 애플리케이션 데이터 속도를 수신하는 것에 응답하여, 검사 모듈(204)은 네트워크 인터페이스 모듈(203)을 구성하여 데이터 링크(272)를 통해 전송된 모든 데이터 패킷을 수신할 수 있다. 적어도 데이터 패킷이 수신되는 주파수 및 수신된 데이터 패킷의 크기에 기초하여, 검사 모듈(204)은 데이터 링크(272) 상의 데이터 로드를 예측할 수 있다. 컴퓨터 시스템(201)이 데이터 허브(250)에 접속되므로, 데이터 링크(272) 상의 데이터 로드가 데이터 링크(271, 272, 273, 277)상에 송신된 모든 데이터 패킷으로부터 계산된다. 예를 들어, 컴퓨터 시스템(221)은 제1 데이터 스트림을 3 Mbps에서 컴퓨터 시스템(211)에 송신하고 제2 데이터 스트림을 2 Mbps 에서 데이터 스위치(255)(예를 들면, 컴퓨터 시스템(231)로 전달하기 위하여)에 전송할 수 있다. 따라서, 데이터 링크(272) 상의 데이터 로드는 적어도 5Mbps일 수 있다.
대안으로, 송신측 컴퓨터 시스템은 송신 컴퓨터 시스템과 함께 공통 데이터 허브에 접속된 컴퓨터 시스템일 수 있다. 예를 들어, 컴퓨터 시스템(201; 송신 컴퓨터 시스템)이 데이터 경로(291)를 통해 컴퓨터 시스템(231)에 데이터 스트림을 송신하려고 할 때, 검사 모듈(204)은 검사 모듈(224)에 명령을 송신하여 송신측 데이터 로드를 수동적으로 검출할 수 있다. 따라서, 검사 모듈(224)은 네트워크 인터페이스 모듈(223)을 구성하여 데이터 링크(271)를 통해 전송된 모든 데이터 패킷을 수신할 수 있다. 데이터 허브(250)는 접속된 모든 데이터 링크로부터 접속된 다른 모든 데이터 링크(데이터 링크(271, 272, 273, 277))로 데이터 패킷을 송신하므로, 데이터 링크(271)상의 데이터 로드는 데이터 링크(272)상의 데이터 로드와 유사할 것이다.
데이터 로드의 수동 검출은 임의의 데이터 패킷을 데이터 링크로 송신하지 않고 발생할 수 있다. 예를 들어, 검사 모듈(204)은 임의의 데이터 패킷을 데이터 링크(272)에 송신하지 않고 데이터 링크(272)상의 데이터 로드를 검출할 수 있다. 따라서, 데이터 링크(272)상의 데이터 로드의 수동 검출이 데이터 허브(250)를 통해 전송된 다른 데이터를 열화시키는 기회가 상당히 감소한다.
단계(312)는 또한 송신측 데이터 링크 상의 가용한 대여폭 용량이 충분하다는 것을 산출하는 대응 액션을 포함한다(액션 303). 액션(303)은 검출된 송신측 데이터 로드에 기초하여 송신측 데이터 링크 상의 가용한 대역폭 용량이 요구된 애플리케이션 데이터 전송 속도로 데이터 스트림을 수신하기에 충분한 것을 계산하는 것을 포함한다. 데이터 링크에 대한 가용한 대역폭 용량이 식 1에 따라 산출될 수 있다.
[식 1]
가용한 링크 대역폭 = [(수락가능한 로딩)?(링크 용량)] - 데이터 링크 로드
수락가능한 로딩은 네트워크 관리자 또는 유저의 소망에 따라 선택되어 데이터 스트림에 의해 소비될 수 있는 가용한 대역폭의 백분율을 나타낼 수 있는 값이다. 데이터 스트림에 대한 감소된 가용한 대역폭을 허용하는 것이 바람직하면, 수락가능한 로딩 값은 감소될 수 있다. 예를 들어, 데이터 스트림에 대한 데이터 링크의 용량의 30%를 이용하는 것이 바람직하면, ".3"의 수락가능한 로딩 값이 선택될 수 있다. 한편, 데이터 스트림에 대한 증가된 가용한 대역폭을 허용하는 것이 바람직하면, 수락가능한 로딩 값이 증가될 수 있다. 예를 들어, 데이터 스트림에 대한 데이터 링크의 용량의 90%를 이용하는 것이 바람직하면, 수락가능한 로딩 값은 ".9"로 설정될 수 있다. 데이터 스트림에 대한 데이터 링크의 전체 용량을 이용하는 것이 바람직하면, 수락가능항 로딩 값은 "1"로 설정될 수 있다. 수락가능한 로딩 값이 데이터 링크를 혼잡하게 하지 않으면서 데이터 스트림에 대한 가능한한 많은 데이터 링크 용량을 이용하도록 선택될 수 있다. 한편, 수락가능 로딩 값은 비-스트리밍 데이터 송신을 위한 소정량의 가용한 대역폭을 보호하도록 선택될 수 있다.
링크 용량은 데이터 링크(예를 들어, 데이터 링크(272))의 규격 데이터 용량(예를 들어, Mbps)를 나타내는 값이다. 링크 용량은 데이터 링크를 구현하기 위하여 사용되는, 예를 들어, 이더넷(IEEE 802.3 표준) 또는 무선(IEEE 802.11 표준) 등의 기술에 의존하여 변경될 수 있다. 또한, 특정 기술의 구현은 다른 규격 데이터 용량을 가질 수 있다. 예를 들어, 이더넷 데이터 링크는 10 Mbps, 100 Mbps, 또는 1,000 Mbps(기가 비트)의 규격 데이터 용량을 가질 수 있다. 마찬가지로, IEEE 802.11 데이터 링크는 11 Mbps, 5.5 Mbps, 2 Mbps, 또는 1 Mbps의 규격 데이터 용량을 가질 수 있다. 그러나, 본 발명은 설명된 네트워크 기술과 규격 데이터 용량으로 제한되지 않음을 이해해야 한다. 이 설명을 검토한 후, 상술한 것에 더하여, 다양한 네트워크 기술과 규격 데이터 용량이 본 발명을 실행할 때 이용될 수 있음은 본 기술에 숙련된 자에게 자명한 것이다.
데이터 링크 로드는 예를 들어 송신 (또는 수신)측 데이터 링크 상의 수동으로 검출된 송신(또는 수신)측 데이터 로드 등의 데이터 링크 상의 데이터 로드를 나타내는 값이다.
식 1의 값은 식 1의 산술 연산자에 따라 결합되어 가용한 링크 대역폭 값을 산출할 수 있다. 즉, 데이터 링크 로드 값은 링크 용량 값에 의해 승산된 수락가 능 로딩 값의 곱으로부터 감산된다. 예를 들어, 데이터 링크(272)는 10 Mbps의 링크 용량 값과 2 Mbps의 데이터 링크 로드 값을 가질 수 있다. 또한, 네트워크 관리자 또는 네트워크 아키텍쳐(200)의 사용자는 데이터 링크(272)에 대한 ".7"의 수락가능 로딩 값을 선택할 수 있다. 따라서, 이 예에서, 데이터 링크(272)에 대한 가용한 링크 대역폭은 [(.7)?10 Mbps)]-2 Mbps 또는 5 Mbps와 동일하다.
송신측 데이터 링크에 대한 산출된 가용한 링크 대역폭 값이 요구된 애플리케이션 데이터 전송 속도보다 작으면, 송신측 데이터 링크는 요구된 애플리케이션 데이터 속도에서 애플리케이션 데이터 스트림을 지원하기에 충분한 가용한 대역폭 용량을 갖지 않는 것으로 간주된다. 직전의 예를 참조하여, 데이터 링크(272)는 5 Mbps보다 큰 임의의 데이터 속도에서 애플리케이션 데이터 스트림을 수신하기에 충분한 가용한 대역폭을 갖지 않는 것으로 간주된다. 데이터 링크의 링크 용량보다 큰 모든 데이터 전송 속도(즉, 데이터 링크 상의 모든 데이터 로드의 합)에서 데이터 링크를 통해 데이터가 전송되는 것을 허용하는 것은 데이터 링크 상의 혼잡을 일으킬 가능성을 증가시킨다. 따라서, 데이터 링크가 요구된 애플리케이션 데이터 속도를 지원하기에 충분한 가용한 대역폭 용량을 갖지 않으면, 애플리케이션 데이터 스트림은 데이터 링크로 송신되지 않고 테스트가 종료될 수 있다. 유리한 결과로서, 데이터 링크가 혼잡하게 될 가능성이 높은 데이터 스트림은 데이터 링크 상으로 송신되는 것이 방지된다.
한편, 송신측 데이터 링크에 대한 계산된 가용한 링크 대역폭이 요구된 애플리케이션 전송 속도보다 크면(또는 동일하면), 송신측 데이터 링크는 요구된 애플리케이션 데이터 속도에서 애플리케이션 데이터 스트림을 지원하기에 충분한 가용한 대역폭 용량을 갖는 것으로 간주된다. 직전의 예를 참조하여, 데이터 링크(272)는 5 Mbps보다 작거나 동일한 임의의 애플리케이션 데이터 속도에서 애플리케이션 데이터 스트림을 지원하기에 충분한 가용한 대역폭을 갖는 것으로 간주될 수 있다. 데이터 링크의 링크 용량보다 작거나 동일한 모든 데이터 전송 속도에서 데이터 링크를 통해 데이터가 전송되는 것을 허용하는 것은 데이터 링크 상의 혼잡을 일으킬 가능성을 감소시킨다. 결과적으로, 데이터 링크가 요구된 애플리케이션 데이터 속도를 지원할 수 있을 때, 예를 들어, 패킷쌍 테스트 등의 더 능동적인 테스트 및/또는 능동적인 네트워크 검사가 수행되어, 네트워크 데이터 경로 상에 혼잡을 일으키는 애플리케이션 데이터 스트림의 가능성을 더 정밀하게 결정할 수 있다.
네트워크 구성에 의존하여, 송신측 컴퓨터 시스템은 또한 명령을 수신측 컴퓨터 시스템에 송신하여 수신측 데이터 로드를 수동적으로 검출할 수 있다(액션 304). 송신측 데이터 링크(예를 들어, 데이터 링크(272)) 및 수신측 데이터 링크(예를 들어, 데이터 링크(271))는 동일한 허브(예를 들어, 데이터 허브(250))에 접속되고 동일한 링크 용량 및 수락가능한 로딩 값을 갖는다. 따라서, 송신측 데이터 링크와 수신측 데이터 링크 둘다에 대한 가용한 로컬 대역폭을 검출하는 것은 중복되는 것으로서 간주될 수 있다. 따라서, 이들 네트워크 구성에서, 송신 컴퓨터 시스템은 명령을 수신측 컴퓨터 시스템에 송신하지 않을 수 있다. 예를 들어, 검사 모듈(204)은 애플리케이션 모듈(202)이 데이터 스트림의 송신을 애플리케이션 모듈(222)에 요구할 때 검사 모듈(224)에 명령을 송신하지 않을 수 있다.
한편, 송신측 데이터 링크(예를 들어, 데이터 링크(272)) 및 수신측 데이터 링크(예를 들어, 데이터 링크(275))는 스위치에 의해 분리된 네트워크 데이터 경로(예를 들어, 데이터 경로(291))의 끝에 있고 및/또는 다른 링크 용량 및/또는 다른 수락가능 로딩 값을 갖는다. 따라서, 송신측 데이터 링크 및 수신측 데이터 링크 둘다에 대한 가용한 로컬 대역폭을 검출하는 것은 중복되는 것으로 간주되지 않을 수 있다. 따라서, 이들 네트워크 구성에서, 송신 컴퓨터 시스템은 수신측 컴퓨터 시스템에 명령을 송신할 수 있다. 예를 들어, 검사 모듈(204)은 애플리케이션 모듈(202)이 애플리케이션 모듈(232)에 데이터 스트림의 송신을 요구할 때 검사 모듈(234)에 명령을 송신할 수 있다.
적절할 때, 방법(300)은 수신 컴퓨터 시스템이 불규칙한 모드 측정에 참여하도록 하는 기능 결과 지향 단계를 포함한다(단계 324). 단계(324)는 불규칙 모드 측정의 결과를 달성하기 위한 임의의 대응 액션을 포함할 수 있다. 그러나, 도 3의 도시된 예에서, 단계(324)는 수신측 데이터 로드를 수동적으로 검출하는 수신측 컴퓨터 시스템의 대응 액션을 포함할 수 있다(액션 314). 액션(314)은 수신측 데이터 링크 상의 수신측 데이터 로드를 수동적으로 검출하는 것을 포함할 수 있다. 수신측 컴퓨터 시스템은 데이터 스트림을 수신하기 위한 수신 컴퓨터 시스템일 수 있다. 예를 들어, 컴퓨터 시스템(231)이 데이터 경로(291)를 통해 컴퓨터 시스템(201)로부터 데이터 스트림을 수신하고자 할 때, 검사 모듈(232)은 네트워크 인터페이스 모듈(233)을 구성하여 데이터 링크(275)를 통해 전송된 모든 데이터 패 킷을 수신할 수 있다.
대안으로, 수신측 컴퓨터 시스템은 수신 컴퓨터 시스템과 함께 공통 데이터 허브에 접속된 컴퓨터 시스템일 수 있다. 예를 들어, 컴퓨터 시스템(231; 송신 컴퓨터 시스템)은 데이터 경로(291)를 통해 컴퓨터 시스템(201; 수신 컴퓨터 시스템)에 데이터 스트림을 송신하고자 할 때, 검사 모듈(234)은 검사 모듈(224)에 명령을 송신하여 수신측 데이터 로드를 수동적으로 검출할 수 있다. 따라서, 검사 모듈(224)은 인터페이스 모듈(223)을 구성하여 데이터 링크(272)를 통해 전송된 모든 데이터 패킷을 수신할 수 있다. 데이터 허브(250)가 접속된 모든 데이터 링크로부터 다른 모든 접속된 링크(데이터 링크(271, 272, 273, 277))로 데이터 패킷을 복사하므로, 링크(271) 상의 데이터 로드는 데이터 링크(272) 상의 데이터 링크와 유사할 것이다.
단계(324)는 가용한 수신측 대역폭 용량을 산출하는 대응 액션을 포함한다(액션 315). 액션(315)은 검출된 수신측 데이터 로드에 기초하여 수신측 데이터 링크 상의 가용한 대역폭 용량을 계산하는 수신측 컴퓨터 시스템을 포함할 수 있다. 수신측 컴퓨터 시스템은 식 1에 따라 수신측 데이터 로드를 계산할 수 있다. 방법(300)은 가용한 수신측 대역폭 용량을 송신 컴퓨터 시스템에 표시하는 액션을 포함한다(액션 316). 액션(316)은 수신측 데이터 링크의 가용한 대역폭을 송신 컴퓨터 시스템에 표시하는 수신측 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 컴퓨터 시스템(231)이 컴퓨터 시스템(201)로부터 데이터 스트림을 수신하고자 할 때, 컴퓨터 시스템(231)은 데이터 링크(275)의 가용한 대역폭 용량을 컴퓨터 시스템(201)에 표시할 수 있다.
방법(300)은 수신측 데이터 링크 상의 가용한 대역폭 용량이 충분하다는 표시를 수신하는 송신측 컴퓨터 시스템의 액션을 포함한다(액션 305). 액션(305)은 수신측 컴퓨터 시스템으로부터 수신측 데이터 링크 상의 가용한 대역폭 용량의 표시를 수신하는 것을 포함한다. 수신측 데이터 링크에 대한 계산된 가용한 링크 대역폭 값(예를 들어, 식 1에 따라)가 요구된 애플리케이션 데이터 전송 속도보다 작으면, 수신측 데이터 링크는 요구된 애플리케이션 데이터 속도에서 애플리케이션 데이터 스트림을 지원하기에 충분한 가용한 대역폭 용량을 갖지 않는 것으로 간주된다. 따라서, 적절할 때, 애플리케이션 데이터 스트림은 송신되지 않고 테스팅이 종료될 수 있다. 한편, 수신측 데이터 링크에 대한 계산된 가용한 링크 대역폭 값이 요구된 애플리케이션 데이터 전송 속도보다 크면(또는 동일하면), 수신측 데이터 링크는 요구된 애플리케이션 데이터 속도에서 애플리케이션 데이터 스트림을 지원하기에 충분한 가용한 대역폭 용량을 갖는 것으로 간주된다. 따라서, 적절할 때, 예를 들어 패킷 쌍 테스트 등의 더 능동적인 테스트 및/또는 능동적인 검사가 수행되어 네트워크 데이터 경로 상에 혼잡을 일으키는 애플리케이션 데이터 스트림의 가능성을 더 정밀하게 결정할 수 있다.
방법(300)은 패킷 쌍 테스트를 개시하는 기능 결과 지향 단계를 포함한다(단계 313). 단계(313)는 패킷쌍 테스트를 개시하는 결과를 달성하는 임의의 대응 액션을 포함할 수 있다. 그러나, 도 3의 도시된 예에서, 단계(313)는 제1 패킷쌍 데이터 패킷을 송신하는 대응 액션을 포함한다(액션 306). 액션(306)은 수신측 컴퓨 터 시스템에 전달하기 위하여 네트워크 데이터 경로로 제1 패킷쌍 데이터 패킷을 송신하는 송신측 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 컴퓨터 시스템(201)은 컴퓨터 시스템(231)로 패킷쌍 테스트를 개시할 수 있다. 따라서, 컴퓨터 시스템(201)은 컴퓨터 시스템(231)으로 전달을 위하여 데이터 경로(291)로 제1 패킷쌍 데이터 패킷을 송신할 수 있다.
단계(313)는 또한 제2 패킷쌍 데이터 패킷을 후속으로 송신하는 대응 액션을 포함한다(액션 307). 액션(307)은 수신측 컴퓨터 시스템에 전달하기 위하여 네트워크 데이터 경로로 대응 제2 패킷쌍 데이터 패킷을 송신하는 송신측 컴퓨터 시스템을 포함할 수 있다. 제2 패킷쌍 데이터 패킷은 크기에 있어서 제1 패킷쌍 데이터 패킷과 유사하거나 또는 심지어 동일하다. 송신 시간 간격(예를 들어, 비동기 송신 코맨드 사이의 시간 간격)은 제1 패킷쌍 데이터 패킷과 제2 패킷쌍 데이터 패킷의 송신을 분리할 수 있다. 송신 시간 간격의 값은 네트워크 데이터 경로의 병목 링크에서 큐잉된 패킷쌍 데이터 패킷의 가능성이 크게 증가하도록 충분히 작을 수 있다.
대안으로, 패킷쌍 데이터 패킷은 중간 송신 컴퓨터 시스템으로부터 송신될 수 있다. 예를 들면, 송신측 불규칙 모드 측정의 결과는 송신측 데이터 링크가 애플리케이션 데이터 스트림을 지원하기에 충분한 가용한 대역폭 용량을 갖는 것을 표시할 수 있다. 이처럼, 송신측 데이터 링크를 통한 송신 패킷쌍 데이터 패킷은 중복(redundant)될 수 있다. 예를 들어, 데이터 링크(272)(및 따라서 데이터 링크(277))가 애플리케이션 데이터 스트림을 지원하기에 충분한 가용한 용량 대역 폭을 갖는 것으로 표시하면, 패킷쌍 데이터 패킷은 데이터 스위치(255)로부터 송신될 수 있다.
방법(300)은 수신측 컴퓨터 시스템이 패킷쌍 테스트에 참여하도록 하는 기능적 결과 지향 단계를 포함한다(단계 325). 단계(325)는 패킷쌍 테스트에 참여한 결과를 달성하는 임의의 대응 액션을 포함할 수 있다. 그러나, 도 3의 도시된 예에서, 단계(325)는 제1 패킷쌍 데이터 패킷을 수신하는 대응 액션을 포함한다(액션 317). 액션(317)은 제1 수신 시간에 네트워크 데이터 경로로부터 제1 패킷쌍 데이터 패킷을 수신하는 수신측 컴퓨터 시스템을 포함할 수 있다. 단계(325)는 또한 제2 패킷쌍 데이터 패킷을 수신하는 대응하는 액션을 포함한다(액션 318). 액션(318)은 제2 수신 시간에 네트워크 데이터 경로로부터 제2 패킷쌍 데이터 패킷을 수신하는 수신측 컴퓨터 시스템을 포함할 수 있다.
대안으로, 패킷쌍 데이터 패킷은 중간 수신 컴퓨터 시스템에서 수신될 수 있다. 예를 들어, 수신측 불규칙 모드 측정의 결과는 애플리케이션 데이터 스트림을 수신하기에 충분한 가용한 대역폭을 갖는 것을 표시할 수 있다. 이처럼, 수신측 데이터 링크를 통한 수신 패킷쌍 데이터 패킷은 중복될 수 있다. 예를 들어, 데이터 링크(275)가 애플리케이션 데이터 스트림을 수신하기에 충분한 가용한 대역폭을 갖는 것을 표시하면, 패킷쌍 데이터 패킷은 데이터 스위치(260)에서 수신될 수 있다.
단계(325)는 병목 링크의 가용한 대역폭 용량을 산출하는 대응 액션을 포함한다(액션 319). 액션(319)은 적어도 제1 수신 시간 및 제2 수신 시간 사이의 차에 기초하여 네트워크 데이터 경로의 병목 데이터 링크 상의 가용한 대역폭 용량을 계산하는 것을 포함할 수 있다. 방법(300)에서는 수신측에서 발생하는 것으로 도시었지만, 수신된 병목 데이터에 기초하여 수신측 또는 중간 수신 컴퓨터 시스템이 병목 데이터(제1 및 제2 수신 시간을 포함)를 병목 대역폭을 계산하는 송신측 또는 중간 송신 컴퓨터 시스템에 송신할 수 있다.
네트워크 데이터 경로의 병목 대역폭은 적어도 식 2에 의해 계산될 수 있다.
[식 2]
병목 대역폭 = 패킷 크기/(제2 수신 시간-제1 수신 시간)
패킷 크기는 제1 패킷쌍 데이터 패킷과 제2 패킷쌍 데이터 패킷의 크기를 나타내는 값이다. 제1 패킷쌍 데이터 패킷과 제2 패킷쌍 데이터 패킷이 크기에 있어서 동일하지 않으면, 이 값은 제1 패킷쌍 데이터 패킷의 크기와 제2 패킷쌍 데이터 패킷의 크기의 평균을 나타낼 수 있다. 제1 수신 시간은 제1 패킷쌍 데이터 패킷이 수신측 또는 중간 수신 컴퓨터 시스템에서 수신되었던 시간을 나타내는 값이다. 마찬가지로, 제2 수신 시간은 제2 패킷쌍 데이터 패킷이 수신측 또는 중간 수신 컴퓨터 시스템에서 수신되었던 시간을 나타내는 값이다.
식 2의 값은 식 2의 산술 연산자에 따라 결합되어 병목 대역폭 값을 산출할 수 있다. 즉, 패킷 크기 값은 제1 수신 시간 값으로부터 감산된 제2 수신 시간의 차에 의해 나누어진다. 예를 들어, 컴퓨터 시스템(231)은 데이터 경로(291)를 통해 09:56:05.234(제1 수신 시간 값)에서 32,768 비트(4,096 바이트)의 패킷 크기 값을 갖는 제1 패킷쌍 데이터 패킷을 수신할 수 있다. 후속으로, 컴퓨터 시스템(231)은 데이터 경로(291)를 통해 09:56:05.250(제2 수신 시간 값)에서 32,768 비트의 패킷 크기 값을 갖는 제2 패킷쌍 데이터 패킷을 수신할 수 있다. 따라서, 이 예에서, 예측된 병목 대역폭 값은 32,786 비트/(.250 sec - .234 sec) 또는 대략 2 Mbps와 동일하다.
송신측 또는 중간 송신 컴퓨터 시스템은 네트워크 데이터 경로를 통해 수신측 또는 중간 수신 컴퓨터 시스템에 송신된 일정 크기의 연속적인(back-to-back) 데이터 패킷의 패킷쌍 트레인의 제1 및 제2 패킷쌍 데이터 패킷을 포함할 수 있다(각각의 데이터 패킷은 일정한 패킷쌍 송신 시간 간격에 의해 분리됨). 패킷쌍 트레인의 송신은 네트워크 데이터 경로에 대한 병목 대역폭을 계산하기 위하여, 예를 들어, 수신기 전용 패킷쌍("ROPP") 알고리즘, 수신기 기반 패킷쌍("RBPP") 알고리즘 및 송신기 기반 패킷쌍("SBPP") 알고리즘 등의 다른 많은 패킷쌍 알고리즘 중의 임의의 것을 구현하도록 사용될 수 있다. 이들 패킷쌍 알고리즘(또는 임의의 다른 패킷쌍 알고리즘)의 임의의 것은 데이터 경로(291)에 대한 병목 대역폭 값을 산출하기 위하여 구현될 수 있다. 예를 들어, 검사 모듈(204, 224, 및/또는 234) 등의 검사 모듈은 패킷쌍 알고리즘을 구현하기 위한 적절한 기능으로 구성될 수 있다. 예를 들어, 히스토그램 등의 패킷쌍 필터링 기술은 패킷쌍 알고리즘의 정확도를 증가시키는 데 사용될 수 있다.
임의의 실시예에서, 중간 송신 컴퓨터 시스템은 적어도 제1 및 제2 패킷쌍 데이터 패킷을 중간 수신 컴퓨터 시스템에 송신한다. 예를 들어, 불규칙 모드 측정의 결과는 송신측 데이터 링크와 수신측 데이터 링크가 애플리케이션 데이터 스트림을 지원하기에 충분한 가용한 대역폭 용량을 갖는 것을 표시할 수 있다. 이처럼, 이들 데이터 링크를 통한 송신 및 수신 패킷쌍 데이터 패킷은 중복될 수 있다. 예를 들어, 데이터 링크(271) 및 데이터 링크(276)가 애플리케이션 데이터 스트림을 지원하기에 충분한 가용한 대역폭 용량을 갖는 것으로 표시되면, 패킷쌍 데이터 패킷은 데이터 스위치(255)로부터 데이터 스위치(260)로 송신될 수 있다. 따라서, 데이터 스위치(255) 또는 데이터 스위치(260)는 데이터 링크(278)에 대한 병목 대역폭을 계산할 수 있다.
방법(300)은 송신 컴퓨터 시스템에 가용한 병목 대역폭을 표시하는 액션을 포함한다. 액션(320)은 송신측 또는 중간 송신 컴퓨터 시스템에 가용한 병목 대역폭 용량을 표시하는 수신측 또는 중간 수신 컴퓨터 시스템을 포함할 수 있다. 방법(300)은 병목 데이터 링크 상의 가용한 대역폭 용량이 충분하다는 표시를 수신하는 액션을 포함한다(액션 308). 액션(308)은 병목 데이터 링크의 가용한 대역폭 용량이 요구된 애플리케이션 데이터 전송 속도에서 데이터 스트림을 지원하기에 충분하다는 표시를 수신하는 송신측 또는 중간 송신 컴퓨터 시스템을 포함할 수 있다.
임의의 실시예에서, 지정된 병목 로딩 값(예를 들어, .2, .7 등)은 데이터 스트림에 의해 소비될 수 있는 병목 대역폭 용량을 제한한다. 지정된 병목 로딩 값은 네트워크 관리자 또는 유저의 소망에 따라 선택될 수 있다. 데이터 스트림에 대한 병목 대역폭을 감소시키는 것이 바람직하면, 지정된 병목 로딩 값이 감소될 수 있다. 예를 들어, 데이터 스트림에 대한 네트워크 데이터 경로의 병목 대역폭 의 20%를 허용하기 위하여, 병목 대역폭 값은 ".2"의 지정된 병목 로딩 값에 의해 승산되어 가용한 병목 대역폭 값을 산출할 수 있다.
한편, 데이터 스트림에 대한 병목 대역폭을 증가시키기를 원하면, 지정된 병목 로딩 값이 증가될 수 있다. 예를 들어, 데이터 스트림에 대한 네트워크 데이터 경로의 병목 대역폭의 70%를 허용하기 위하여, 병목 대역폭 값은 ".7"의 지정된 병목 로딩 값에 의해 승산되어 가용한 병목 대역폭 값을 산출할 수 있다. 데이터 스트림에 대한 네트워크 데이터 경로의 병목 대역폭의 모두를 허용하기를 원하면, 지정된 병목 로딩 값이 "1"로 설정될 수 있다. 지정된 병목 로딩 값이 네트워크 데이터 경로에 혼잡이 발생하지 않도록 하면서 가능한한 많은 병목 대역폭을 이용하도록 선택된다. 한편, 지정된 병목 로딩 값은 비-스트리밍 데이터의 송신을 위한 소정량의 병목 대역폭을 보호하기 위하여 선택될 수 있다.
산출된 병목 대역폭 값(또는 적절할 때, 산출된 가용한 병목 대역폭 값)이 요구된 애플리케이션 전송 속도보다 작으면, 네트워크 데이터 경로는 요구된 애플리케이션 데이터 전송 속도에서 애플리케이션 데이터 스트림을 지원하기에 충분한 가용한 대역폭 용량을 갖지 않는 것으로 간주된다. 따라서, 애플리케이션 데이터 스트림은 네트워크 데이터 경로로 송신되지 않고 테스트가 종료될 수 있다. 유리한 결과로서, 네트워크 데이터 경로를 혼잡하게 할 가능성이 증가한 데이터 스트림이 네트워크 데이터 경로로 송신되는 것이 방지된다.
한편, 네트워크 데이터 경로에 대한 산출된 병목 대역폭 값(또는 적절할 때, 산출된 가용한 병목 대역폭 값)이 요구된 애플리케이션 데이터 전송 속도보다 크면(또는 동일하면), 네트워크 데이터 경로는 요구된 애플리케이션 데이터 속도에서 애플리케이션 데이터 스트림을 지원하기에 충분한 가용한 대역폭 용량을 갖는 것으로 간주된다. 결과적으로, 예를 들어, 능동적인 네트워크 검사 등의 더 능동적인 테스트가 수행되어 네트워크 데이터 경로 상에 혼잡을 일으키는 애플리케이션 데이터 스트림의 가능성을 더 정밀하게 결정할 수 있다.
방법(300)은 네트워크 데이터 경로를 능동적으로 검사하는 기능적 결과 지향 단계를 포함한다(단계 314). 단계(314)는 네트워크 데이터 경로를 능동적으로 검사한 결과를 달성하는 임의의 대응 액션을 포함할 수 있다. 그러나, 도 3에 도시된 예에서, 단계(314)는 애플리케이션 데이터 스트림을 시뮬레이션하기 위하여 송신 파라미터를 식별하는 대응 액션을 포함한다(액션 309). 액션(309)은 요구된 애플리케이션 데이터 전송 속도에서 애플리케이션 데이터 스트림의 송신을 시뮬레이션하기 위하여 데이터 패킷의 트레인을 구성하는 송신 파라미터를 식별하는 송신 컴퓨터 시스템을 포함할 수 있다.
예를 들어, 송신 컴퓨터 시스템은 검사 데이터 패킷 크기 값, 트레인 당 패킷 값, 검사 데이터 패킷 간격 값 및 검사 트레인 간격 값을 식별할 수 있다. 검사 데이터 패킷 크기 값은 검사 데이터 패킷의 트레인에 포함된 검사 데이터 패킷(예를 들어 비트 또는 바이트)의 크기를 나타낸다. 예를 들어, 4,096의 검사 데이터 패킷 크기 값은 검사 데이터 패킷의 트레인 내에 포함된 검사 데이터 패킷이 4,096 비트 또는 4,096 바이트(32,768 비트)의 크기를 갖도록 한 것을 표시할 수 있다. 트레인 당 패킷 값은 검사 데이터 패킷의 트레인 내에 포함될 검사 데이터 패킷의 수를 나타낸다. 예를 들어 10의 트레인 당 패킷 값은 10개 검사 데이터 패킷이 검사 데이터 패킷의 트레인 내에 포함된 것을 나타낼 수 있다. 검사 데이터 패킷 간격 값은 검사 데이터 패킷의 트레인 내의 연속적인 검사 데이터 패킷의 송신 사이의 시간 간격(예를 들어 밀리초)를 나타낸다. 예를 들어, 1의 검사 데이터 패킷 간격 값은 검사 데이터 패킷의 트레인 내의 검사 데이터 패킷이 1밀리초마다 송신되는 것을 표시할 수 있다.
검사 트레인 간격 값은 검사 데이터 패킷의 트레인의 시퀀스에서 검사 데이터 패킷의 연속적인 트레인들간의 시간 간격(예를 들어, 밀리초)를 나타낸다. 예를 들어, 90의 검사 트레인 간격 값은 90밀리초마다 검사 데이터 패킷의 연속적인 트레인이 송신되는 것을 표시할 수 있다. 검사 트레인 간격 값에 의해 검사 데이터 패킷의 연속적인 트레인을 분리하는 것은 데이터 허브 및 데이터 스위치에서 캡쳐 효과를 잠재적으로 감소시킬 수 있다(큐잉된 데이터 패킷이 적어도 검사 트레인 간격 시간에서 전달되도록 허용됨에 따라). 이것은 검사 데이터 패킷의 트레인의 임의의 것이 네트워크 데이터 경로에 송신되는 다른 데이터(데이터 스트림 또는 비-스트리밍 데이터)를 열화시킬 가능성을 감소시킨다.
단계(314)는 식별된 송신 파라미터에 따라 패킷의 트레인을 일시적으로 송신하는 대응 액션을 포함한다(액션 310). 액션(310)은 네트워크 데이터 경로에 애플리케이션 데이터 스트림의 송신을 시뮬레이션하기 위하여 식별된 송신 파라미터에 따라 검사 데이터 패킷의 트레인을 일시적으로 송신하는 송신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 검사 모듈(204)은 요구된 애플리케이션 데이터 전송 속 도에서 애플리케이션 데이터 스트림의 송신을 시뮬레이션하기 위하여 데이터 경로(291)로 검사 데이터 패킷의 트레인을 일시적으로 송신할 수 있다.
방법(300)은 네트워크 데이터 경로의 능동적인 검사에 참여하기 위한 기능적 결과 지향 단계를 포함한다(단계 326). 단계(326)는 네트워크 데이터 경로의 능동적인 검사에 참여하는 결과를 달성하는 임의의 대응 액션을 포함할 수 있다. 그러나, 도 3에 도시된 예에서, 단계(326)는 애플리케이션 데이터 전송 속도에서 애플리케이션 데이터 스트림을 시뮬레이션하는 검사 패킷의 트레인으로부터 검사 패킷을 수신하는 대응 액션을 포함한다(액션 321). 액션(321)은 요구된 애플리케이션 데이터 전송 속도에서 애플리케이션 데이터 스트림을 시뮬레이션하기 위하여 송신 컴퓨터 시스템이 네트워크 데이터 경로에 송신한 검사 데이터 패킷의 트레인 내의 검사 데이터 패킷의 적어도 일부를 수신하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 검사 모듈(234)은 검사 모듈(204)에 의해 송신된 검사 데이터 패킷의 트레인으로부터 검사 데이터 패킷을 수신할 수 있다.
단계(326)는 검사 데이터 패킷의 트레인이 네트워크 데이터 경로 혼잡을 일으키지 않는다는 것을 계산하는 대응 액션을 포함한다(액션 322). 액션(322)은 검사 데이터 패킷의 트레인이 네트워크 데이터 경로의 데이터 링크 중의 임의의 것을 혼잡 상태로 전이시키지 않는다고 계산하는 수신측 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 검사 모듈(234)은 검사 모듈(204)로부터 수신된 검사 패킷의 트레인이 데이터 경로(291)의 임의의 데이터 링크(즉, 데이터 링크(272, 277, 278, 275))를 혼잡 상태로 전이시키지 않는 것으로 계산할 수 있다.
방법(300)은 검사 패킷의 트레인이 네트워크 데이터 경로 혼잡을 일으키지 않는다는 것을 송신 컴퓨터 시스템에 표시하는 액션을 포함한다(액션 323). 액션(323)은 검사 데이터 패킷의 트레인이 네트워크 데이터 경로의 데이터 링크의 임의의 것을 혼잡 상태로 전이시키지 않는다는 것을 송신측 컴퓨터 시스템에 표시하는 수신측 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 검사 모듈(234)은 데이터 경로(291) 상에 수신된 검사 데이터 패킷의 트레인이 데이터 경로(291)를 혼잡하게 하지 않는다는 것을 검사 모듈(204)에 표시할 수 있다.
방법(300)은 검사 데이터 패킷의 트레인이 네트워크 데이터 경로 혼잡을 일으키지 않는다는 표시를 수신하는 액션을 포함한다(액션 311). 액션(311)은 검사 데이터 패킷의 트레인은 네트워크 데이터 경로의 데이터 링크의 임의의 것을 혼잡 상태로 전이시키지 않는다는 표시를 수신측 컴퓨터 시스템으로부터 수신하는 송신측 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 검사 모듈(204)은 검사 데이터 패킷의 트레인이 데이터 경로(291)를 혼잡하게 하지 않는다는 표시를 검사 모듈(234)로부터 수신할 수 있다.
임의의 실시예에서, 네트워크 데이터 경로를 혼잡하게 하는 데이터 스트림의 가능성은 변경된 데이터 전송 속도에서 전송된 데이터 경로의 트레인과 관련된 큐잉 지연을 비교함으로써 결정된다. 도 4는 식별된 큐잉 지연에 기초하여 혼잡의 가능성을 예측하는 방법의 일예의 플로우챠트를 나타낸다. 도 5는 10 Mbps 이더넷 링크 상에서 큐잉 지연 대 제공된 로드의 일예의 그래프(500)를 나타낸다. 도 6a는 수신된 데이퍼 패킷의 백분율 대 데이터 스트림이 검사된 네트워크 데이터 경로를 혼잡된 상태로 전이시킬 가능성이 감소되는 것을 표시하는 수신 시간 지연 임계값으로부터의 변경의 일예의 그래프(600)를 나타낸다. 도 6b는 수신된 데이터 패킷의 백분율 대 데이터 스트림이 검사된 네트워크 데이터 경로를 혼잡 상태로 전이시킬 가능성이 증가하는 것을 표시하는 수신 시간 지연 임계값으로부터의 변경의 일예의 그래프(650)를 나타낸다. 방법(400)은 네트워크 아키텍쳐(200)에 도시된 컴퓨터 시스템과 그래프(500, 600, 650)에 대하여 설명된다.
그래프(500)에서, 큐잉 지연은 수직축("Y 축") 상에 도시되고 제공된 로드는 수평축("X 축")에 도시된다. 그래프(500)는 특정한 제공된 로드(예를 들어, 4 Mbps)에서 10 Mbps의 링크 용량을 갖는 이더넷 링크상에서 이동하는 데이터 패킷이 특정 큐잉 지연(예를 들어 2 밀리초 미만)을 경험하는 것을 나타낸다. 제공된 로드가 증가함에 따라, 큐잉 지연은 제공된 로드가 굴곡 영역(501)으로 전이할 때까지 비교적 일정하게 유지된다. 그후, 굴곡 영역(501)내의 임의의 제공된 로드에서, 큐잉 지연은 극적으로 증가하기 시작한다.
예를 들어, 큐잉 지연은 7 Mbps의 제공된 로드(2밀리초 미만의 큐잉 지연) 및 9 Mbps의 제공된 로드(대략 10밀리초의 큐잉 지연) 간의 5배보다 더 크게 증가한다. 따라서, 그래프(500)에 도시된 바와 같이, 증가된 큐잉 지연은 제공된 로드가 링크 용량 미만일 때조차도 발생할 수 있다. 큐잉 지연이 증가하면, 데이터 패킷은 잠재적으로 이더넷 링크를 혼잡 상태로 전이시키는 증가된 기간동안 이더넷 링크 상에 존재한다. 따라서, 이더넷 링크는 제공된 로드가 링크 용량 미만이면 데이터 스트림에 적합하지 않을 수 있다. 그래프(500)는 10 Mbps 이더넷 링크 상 에서 큐잉 지연 대 제공된 로드를 나타내지만, 예를 들어 100 Mbps 이더넷 링크 및 IEEE 802.11 링크 등의 다른 많은 유형의 데이터 링크는 제공된 로드가 증가한 것과 유사하게 큐잉 지연이 증가하는 것을 경험할 수 있다.
도 4로 되돌아가서, 방법(400)은 진단 데이터 패킷의 트레인을 송신하는 액션을 포함한다(액션 401). 액션(401)은 병목 대역폭 값(예를 들어 패킷쌍 테스트에 의해 예측된 바와 같이)의 지정된 일부(예를 들어, (1%))에서 진단 패킷의 트레인을 네트워크 데이터 경로로 송신하는 송신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 검사 모듈(204)은 데이터 경로(291)의 병목 대역폭의 일부(예를 들어, 1/100 또는 1/50)에서 진단 데이터 패킷의 트레인을 데이터 경로(291)로 송신할 수 있다. 병목 대역폭의 지정된 일부가 네트워크 데이터 경로를 혼잡하게 하거나 네트워크 데이터 경로 상에 송신된 데이터를 열화할 가능성이 매우 감소된 진단 데이터 속도를 나타낸다. 예를 들어, 50 킬로비트/초("Kbps")의 진단 데이터 속도는 5 Mbps의 병목 대역폭을 갖는 네트워크 데이터 경로를 통해 진단 데이터 패킷의 트레인을 송신할 때 사용될 수 있다. 송신 컴퓨터 시스템은 진단 데이터 패킷이 송신된 시간을 표시하는 각각의 진단 데이터 패킷 내의 타임 스탬프를 포함할 수 있다.
방법(400)은 진단 데이터 패킷의 적어도 일부를 수신하는 액션을 포함한다(액션 404). 액션(404)은 송신 컴퓨터 시스템으로부터 수신 컴퓨터 시스템으로 송신된 진단 데이터 패킷의 트레인 내에 포함된 진단 데이터 패킷의 적어도 일부를 수신하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 검사 모듈(234)은 검사 모듈(204)로부터 송신된 진단 데이터 패킷의 트레인 내의 진단 데이터 패킷의 적어도 일부를 수신할 수 있다.
방법(400)은 수신된 진단 데이터 패킷 중에서 지연된 진단 데이터 패킷의 수를 식별하는 액션을 포함한다(액션 405). 예를 들어, 검사 모듈은 검사 모듈(204)로부터 수신된 진단 데이터 패킷 중에서 지연된 진단 데이터 패킷을 식별할 수 있다. 데이터 패킷은 데이터 패킷에 대한 산출된 큐잉 지연이 지정된 수신 시간 지연 임계값보다 클 때 "지연된"것으로 간주된다. 큐잉 지연은 식 3에 따라 산출될 수 있다.
[식 3]
QDi = 패킷(i)에 대한 통과 시간 - 수신된 모든 패킷에 대한 최소 통과 시간
패킷(i)에 대한 통과 시간은 특정 수신 데이터 패킷에 대한 통과 시간(또는 오버-더-와이어(over-the-wire))을 나타내는 값이다. 패킷(i)에 대한 통과 시간은 데이터 패킷이 수신된 시간에서 데이터 패킷이 송신된 시간을 뺀 차와 동일하다. 데이터 패킷이 수신되면, Rtime_Pack은 수신 시간을 나타내는 데 사용될 수 있는 값이다. 데이터 패킷이 송신된 시간이 데이터 페킷내에 포함된 타임 스탬프로부터 식별될 수 있다. TTime_Pack은 데이터 패킷이 송신된 시간을 나타내는 데 사용될 수 있는 값이다. 데이터 패킷의 트레인으로부터의 데이터 패킷이 수신되면, 각각의 수신된 데이터 패킷에 대한 송신 시간과 수신 시간이 식별되고 적절하게 표시된다. 통과시간(RTime_Pack - TTime_Pack)은 각각의 수신된 데이터 패킷에 대하여 산출된다. 수신된 모든 패킷에 대한 최소 통과 시간은 산출된 모든 통과 시간 중 에서 최소의 통과 시간을 나타내는 값이다.
식 3의 값은 식 3의 산술 연산자에 따라 결합되어 특정 데이터 패킷에 대한 큐잉 지연을 나타내는 QDi값을 산출한다. 수신된 모든 패킷에 대한 최소 통과 시간 값은 QDi를 정규화하고 송신 및 수신측 컴퓨터 시스템에서 클록값의 차에 대하여 보상한다. 따라서, 데이터 패킷에 대한 통과 시간이 클록 부정확에 의해 부정확하거나 네가티브일 경우에도, 식 3은 여전히 이용될 수 있다. 표 1은 8개의 데이터 패킷에 대하여 가능한 송신 및 수신 시간의 예를 나타낸다 (시간:분:초로서).
데이터 송신 시간 수신 시간
패킷# 송신 컴퓨터에서 수신컴퓨터에서 외견상의 통과 시간
1 12:10:01.004 12:10:06.057 00:05.053 초
2 12:10:01.006 12:10:06.059 00:05.053 초
3 12:10:01.008 12:10:06.060 00:05.052 초
4 12:10:01.010 12:10:06.063 00:05.053 초
5 12:10:01.012 12:10:06.068 00:05.056 초
6 12:10:01.014 12:10:06.068 00:05.054 초
7 12:10:01.016 12:10:06.070 00:05.054 초
8 12:10:01.018 12:10:06.073 00:05.055 초
표 1에 나타낸 바와 같이, 데이터 패킷(3)은 8 데이터 패킷에 대한 5.052초의 수신된 모든 패킷에 대한 최소 통과 시간 값과 관련된다. 통과 시간에 대한 열은 "외관상의 통과 시간"으로 표시하는데, 그 이유는 클록 부정확은 통과 시간을 실제 통과 시간과 많이 다르게 할 수 있기 때문이다. 수신 지연 임계값은 가상적으로 임의의 임계값일 수 있으며, 관리자 또는 유저는 적절하게 선택한다. 임의의 실시예에서, 수신 지연 임계값은 송신 시간 간격(예를 들어, 비동기 송신 사이)과 동일하다. 표 1에서, 송신 시간 간격은 2밀리초이다.
식 3에 따르면, 각각의 데이터 패킷에 대한 QDi는 패킷의 외관 상의 통과 시간에서 5.052를 뺀 차를 취함으로써 산출될 수 있다. 예를 들어, 패킷(7)에 대한 QDi는 5.054 초 - 5.052 초 또는 2 ms일 수 있다. 패킷(7)은 2밀리초의 QDi가 2밀리초의 송신 시간 간격보다 작거나 동일하므로 지연된 패킷으로서 간주될 수 없다. 한편, 패킷(5)은 4밀리초의 QDi를 가질 수 있으며, 4밀리초가 2밀리초보다 크므로 지연된 패킷으로 간주될 수 있다.
방법(400)은 타겟 데이터 패킷의 트레인을 송신하는 액션을 포함한다(액션 402). 액션(402)은 요구된 데이터 전송 속도(예를 들어, 애플리케이션 모듈에 의해 요구된 것처럼)에서 컴퓨터 네트워크 데이터 경로로 타겟 데이터 패킷의 트레인을 일시적으로 송신하는 송신 컴퓨터 시스템을 포함할 수 있다. 타겟 패킷의 트레인은 캡쳐 효과의 증가를 감소시키기 위하여 비교적 짧은 기간 동안 송신될 수 있다. 따라서, 요구된 데이터 전송 속도는 다른 데이터 스트림을 열화시키는 가능성이 감소하는 방식으로 시뮬레이션될 수 있다. 송신 컴퓨터 시스템은 타겟 패킷이 송신될 때를 표시하는 각각의 타겟 데이터 패킷 내의 타임 스탬프를 포함할 수 있다.
방법(400)은 타겟 데이터 패킷의 적어도 일부를 수신하는 액션을 포함한다(액션 406). 액션(406)은 송신 컴퓨터 시스템으로부터 수신 컴퓨터 시스템으로 송신된 타겟 데이터 패킷의 트레인 내에 포함된 데이터 패킷의 적어도 일부를 수신하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 검사 모듈(234)은 검사 모 듈(204)로부터 송신된 타겟 데이터 패킷의 트레인 내의 타겟 데이터 패킷의 적어도 일부를 수신할 수 있다.
방법(400)은 수신된 타겟 데이터 패킷 중에서 지연된 타겟 데이터 패킷의 수를 식별하는 액션을 포함한다(액션 407). 예를 들어, 검사 모듈(234)은 검사 모듈(204)로부터 수신된 타겟 데이터 패킷 중에서 지연된 타겟 데이터 패킷을 식별할 수 있다. 검사 모듈(234)은 식 3에 따라 지연된 타겟 데이터 패킷을 식별할 수 있다.
방법(400)은 지연된 타겟 데이터 패킷의 수를 지연된 진단 데이터 패킷의 수와 비교하는 액션을 포함한다(액션 408). 액션(408)은 지연된 타겟 데이터 패킷의 수를 지연된 진단 데이터 패킷의 수와 비교하여 타겟 데이터 패킷의 트레인이 네트워크 데이터 경로에 혼잡을 일으켰는지를 결정하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 검사 모듈(234)은 검사 모듈(204)로부터 송신된 지연된 타겟 데이터 패킷의 수를 검사 모듈(204)로부터 송신된 지연된 진단 데이터 패킷의 수와 비교할 수 있다.
지연된 타겟 데이터 패킷의 수가 지연된 진단 데이터 패킷의 수의 지정된 지연된 패킷 임계값 내에 있으면, 애플리케이션 데이터 스트림의 전달이 검사된 네트워크 데이터 경로를 혼잡의 상태로 전이시킬 가능성이 감소된다. 지연된 패킷 임계값이 데이터 패킷의 백분율 또는 데이터 패킷의 수일 수 있고 네트워크 혼잡을 일으키는 애플리케이션 데이터 스트림의 더 줄잡거나(more conservative) 덜 줄잡은 예측을 나타내도록 변경될 수 있다.
예를 들어, 데이터 스트림이 네트워크를 혼잡하게 하지 않는다는 더 줄잡은 예측을 원하면, 예를 들어 3%와 같이 더 작은 지연된 패킷 임계값이 설정될 수 있다. 따라서, 타겟 데이터 패킷의 트레인이 네트워크 데이터 경로 혼잡의 가능성이 감소되는 것을 표시하도록, 수신 지연 임계값 내에서 수신된 타겟 데이터 패킷의 수는 수신 지연 임계값 내에서 수신된 진단 데이터 패킷의 수보다 작은 3%일 수 있다. 한편, 데이터 스트림이 네트워크를 혼잡하게 하지 않는다는 덜 줄잡은 예측을 원하면, 예를 들어 12%와 같이 더 큰 지연된 패킷 임계값이 설정될 수 있다. 따라서, 타겟 데이터 패킷의 트레인이 네트워크 데이터 경로 혼잡의 가능성이 감소되는 것을 표시하도록, 수신 지연 임계값 내에서 수신된 타겟 데이터 패킷의 수는 수신 지연 임계값 내에서 수신된 진단 데이터 패킷의 수보다 작은 12%일 수 있다.
도 6a로 되돌아가서, 그래프(600)는 검사된 네트워크 데이터 경로에 대한 지연 임계값(601) 내에서 수신된 진단 데이터 패킷과 타겟 데이터 패킷의 백분율을 나타낸다. 수신 지연 임계값(601)보다 작게 지연된 데이터 패킷(진단 및 타겟 둘다)은 수락가능한 지연을 갖는 것으로 간주된다. 반대로, 수신 지연 임계값(601)보다 더 많이 지연된 데이터 패킷은 수락가능하지 않은 지연을 갖는 것으로 간주된다. 그래프(600)에서, 수신된 패킷의 백분율은 수직축("Y 축") 상에 도시되고 수신 지연 임계값(601)으로부터의 시간차는 수평축("X 축") 상에 도시된다. 그래프(600)는 2 Mbps의 예측된 데이터 전송 속도를 갖는 데이터 스트림이 네트워크 데이터 경로를 혼잡 상태로 전이시키는지를 결정하기 위하여 4 Mbps의 데이터 로드를 갖는 네트워크 데이터 경로(예를 들어, 데이터 경로(291))을 능동적으로 검사한 결과를 나타낸다.
진단 트레인의 Y 구분(Y-intercept)은 수신 지연 임계값(601) 내에서 수신된 진단 데이터 패킷의 백분율을 나타낸다. 도시된 바와 같이, 진단 데이터 패킷의 약 90 퍼센트가 수락가능한 지연 내에서 수신되었다. 타겟 트레인의 Y 구분은 수신 지연 임계값(601) 내에서 수신된 타겟 데이터 패킷의 백분율을 나타낸다. 도시한 바와 같이, 타겟 데이터 패킷의 약 90%가 수락가능한 지연 내에서 수신되었다. 타겟 데이터 패킷과 진단 데이터 패킷의 유사한 백분율이 수락가능한 지연 내에서 수신됨에 따라, 타겟 데이터 패킷의 백분율은 진단 데이터 패킷의 백분율의 지연된 패킷 임계값 내에서 간주될 것이다. 따라서, 그래프(600)는 2 Mbps의 애플리케이션 데이터 전송 속도에서의 데이터 스트림이 검사된 네트워크 데이터 경로를 혼잡하게 하지 않을 것임을 나타낸다. 따라서, 검사된 네트워크 데이터 경로 상으로의 2 Mbps 데이터 스트림의 송신은 허용될 수 있다.
지연된 타겟 데이터 패킷의 수가 지연된 진단 데이터 패킷의 수의 지정된 지연된 패킷의 임계값 내에 없으면, 애플리케이션 데이터 스트림의 전달이 검사된 네트워크 데이터 경로를 혼잡 상태로 전이시킬 가능성이 증가한다. 도 6b로 되돌아가서, 그래프(650)는 검사된 네트워크 데이터 경로로부터 수신 지연 임계값(601) 내에서 수신된 진단 데이터 패킷과 타겟 데이터 패킷의 백분율을 나타낸다. 수신 지연 임계값(601)보다 작게 지연된 데이터 패킷(진단 및 타겟 둘다)은 수락가능한 지연을 갖는 것으로 간주된다. 반대로, 수신 지연 임계값(601)보다 많이 지연된 데이터 패킷은 수락가능하지 않은 지연을 갖는 것으로 간주된다. 그래프(650)에서, 수신된 패킷의 백분율은 수직축("Y 축")상에 도시되고 수신 지연 임계값(601)로부터의 시간차는 수평축("X 축")상에 도시된다. 그래프(650)는 7 Mbps의 예측된 데이터 전송 속도를 갖는 데이터 스트림이 네트워크 데이터 경로를 혼잡 상태로 전이시키는지를 결정하기 위하여 4 Mbps의 데이터 로드를 갖는 네트워크 데이터 경로(예를 들어, 데이터 경로(291))을 능동적으로 검사한 결과를 도시한다.
진단 트레인의 Y 구분(Y-intercept)은 수신 지연 임계값(601) 내에서 수신된 진단 데이터 패킷의 백분율을 나타낸다. 도시된 바와 같이, 진단 데이터 패킷의 약 90 퍼센트가 지연 임계값(601)내에서 수신되었다. 타겟 트레인의 Y 구분은 수신 지연 임계값(601) 내에서 수신된 타겟 데이터 패킷의 수를 나타낸다. 도시한 바와 같이, 타겟 데이터 패킷의 약 50%가 지연 임계값(601)내에서 수신되었다. 수락가능한 지연 내에서 수신된 타겟 데이터 패킷의 백분율과 진단 데이터 패킷의 백분율이 크게 변경됨에 따라, 타겟 데이터 패킷의 백분율은 진단 데이터 패킷의 백분율의 지연된 패킷 임계값 내로서 간주되지 않을 수 있다. 따라서, 그래프(650)는 7 Mbps의 애플리케이션 데이터 전송 속도에서의 데이터 스트림이 검사된 네트워크 데이터 경로를 혼잡하게 할 수 있는 것을 나타낸다. 따라서, 검사된 네트워크 데이터 경로 상으로의 7 Mbps 데이터 스트림의 송신이 방지될 수 있다. 유리한 결과로서, 네트워크 데이터 경로를 혼잡시킬 가능성이 증가된 데이터 스트림이 네트워크 데이터 경로로 송신되는 것이 방지된다.
네트워크 데이터 경로(예를 들어, 10 Mbps, 100 Mbps 등의 데이터 링크를 갖는)의 구성에 의존하여, 단독적으로 볼 때, 수락가능한 지연 내에 수신된 타겟 데이터 패킷의 특정 백분율(예를 들어, 수신 지연 임계값(601))은 혼잡의 신뢰성있는 표시를 제공할 필요가 없을 수 있다. 예를 들어, 10 Mbps 네트워크 데이터 링크 상에, 지연 임계값 내의 타겟 데이터 패킷의 75%의 수신이 혼잡을 표시하지 않는 수신 백분율로서 간주될 수 있다. 한편, 100 Mbps 네트워크 데이터 링크 상에, 지연 임계값 내의 타겟 데이터 패킷의 75%의 수신이 혼잡을 표시하는 수신 백분율로서 간주될 수 있다. 그러나, 송신 및/또는 수신측 컴퓨터 시스템이 타겟 데이터 패킷의 트레인이 송신되기 전에 네트워크 데이터 경로의 구성을 알 수 있는 방법이 없다. 예를 들어, 송신측 및 수신측 컴퓨터 시스템은 하나 이상의 중간 데이터 링크(병목 링크를 포함)에 의해 분리될 수 있다.
상술한 바와 같이, 진단 패킷의 트레인이 네트워크 데이터 경로를 혼잡하게 할 가능성이 크게 감소된 데이터 속도에서 송신될 수 있다. 따라서, 진단 패킷의 트레인은 네트워크 데이터 경로가 혼잡하게 될 것 같으면, 네트워크 데이터 경로에 대한 지연된 패킷의 수락가능한 임계값을 식별하는데 사용될 수 있다. 또한, 송신 및 수신측 컴퓨터 시스템이 네트워크 데이터 경로의 구성에 대한 이전의 정보를 가지고 있을 때조차도 지연된 패킷의 수락가능한 임계값은 식별될 수 있다. 결과적으로, 데이터 스트림이 네트워크 데이터 경로 상으로 송신되는지를 결정하기 전에 송신 및 수신측 컴퓨터 시스템이 네트워크 데이터 경로 구성을 알아야 할 필요는 없다. 또한, (네트워크 데이터 경로의 구성만을 기초로 한 결정을 수행하는 것과 랄리) 지연된 타겟 데이터 패킷의 백분율과 지연된 패킷의 수락가능한 임계값을 비교함으로써 더 신뢰성있는 결정이 수행될 수 있다.
방법(400)은 비교의 결과를 송신하는 액션을 포함한다(액션 409). 액션(409)은 진단 데이터 패킷에 비교된 타겟 데이터 패킷의 큐잉 지연의 비교의 결과를 송신 컴퓨터 시스템에 송신하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 검사 모듈(234)은 비교 결과를 검사 모듈(204)에 송신할 수 있다. 방법(400)은 비교의 결과를 수신하는 액션을 포함한다(액션 403). 액션(403)은 진단 데이터 패킷에 비교된 타겟 데이터 패킷의 큐잉 지연의 비교 결과를 수신 컴퓨터 시스템으로부터 수신하는 송신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 검사 모듈(204)은 검사 모듈(234)로부터의 비교 결과를 수신할 수 있다. 결과가 적절하면, 애플리케이션 모듈(202)은 그후 요구된 애플리케이션 데이터 속도에서 애플리케이션 데이터 스트림을 애플리케이션(232)에 송신할 수 있다.
임의의 실시예에서, 진단 데이터 패킷의 트레인의 송신후, 중간 진단 데이터 패킷의 트레인은 송신 컴퓨터 시스템으로부터 수신 컴퓨터 시스템으로 송신된다. 중간 진단 데이터 패킷의 트레인은, 진단 데이터 속도보다 크고 요구된 애플리케이션 데이터 속도보다 작은 중간 진단 데이터 속도에서 송신된다. 요구된 애플리케이션 데이터 속도가 진단 데이터 속도에 비교하여 상대적으로 크면, 진단 데이터 속도와 요구된 애플리케이션 데이터 속도 사이의 임의의 중간 진단 데이터 속도에서 잠재적인 혼잡을 결정하는데 유리할 수 있다. 예를 들어, 네트워크 데이터 경로에 대한 가용한 병목 대역폭 값이 70 Mbps일 수 있다. 따라서, 700 Kbps의 진단 데이터 속도가 선택될 수 있다. 요구 애플리케이션 데이터 전송 속도가 600 Mbps이면, 700 Kbps 및 60 Mbps 사이의 중간 진단 데이터 속도, 예를 들어 20 또는 30 Mbps 등에서 잠재적인 혼잡을 결정하는 것이 바람직할 수 있다.
수신된 중간 진단 데이터 패킷의 큐잉 지연은 수신된 진단 패킷에 대한 큐잉 지연에 비교된다. 지연된 중간 진단 데이터 패킷의 수가 지연된 진단 데이터 패킷의 수의 지정된 지연된 패킷 임계값 내에 있지 않으면, 중간 진단 데이터 속도에서의 데이터 스트림의 전달이 검사된 네트워크 데이터 경로를 혼잡 상태로 전이시킬 수 있는 가능성이 증가한다. 결과적으로, 더 높은 요구된 애플리케이션 데이터 속도에서의 데이터 스트림은 검사된 네트워크 데이터 경로를 혼잡 상태로 전이시킬 가능성이 높다. 따라서, 능동적인 검사는 요구된 애플리케이션 데이터 전송 속도에서 능동적으로 검사하지 않고 종료할 수 있다. 유리한 결과로서, 검사된 네트워크 데이터 경로를 혼잡하게 할 가능성이 증가된 데이터 스트림의 송신이 검사된 네트워크 데이터 경로로 송신되는 것을 방지한다.
한편, 지연된 중간 진단 데이터 패킷의 수가 지연된 진단 데이터 패킷의 수의 지정된 지연된 패킷 임계값 내에 있으면, 중간 진단 데이터 속도에서의 데이터 스트림의 전달이 검사된 네트워크 데이터 경로를 혼잡 상태로 전이시킬 가능성이 감소된다. 따라서, 능동적인 검사는 요구된 애플리케이션 데이터 전송 속도에서 계속될 수 있다.
잠재적인 네트워크 경로 혼잡에 대하여 결정의 신뢰성을 증가시키기 위하여, 데이터 패킷(진단, 중간 진단, 또는 타겟)의 트레인의 시퀀스가 송신되어 네트워크 데이터 경로를 능동적으로 검사할 수 있다. 초기에, 진단 패킷의 트레인의 시퀀스가 송신되어 네트워크 데이터 경로를 혼잡하게 할 가능성이 크게 감소된 데이터 전 송 속도와 관련된 큐잉 지연을 식별한다. 후속으로, 적절할 때, 중간 진단 데이터 패킷의 트레인의 시퀀스가 송신되어 중간 진단 데이터 전송 속도와 관련된 큐잉 지연을 식별한다. 그후, 타겟 데이터 패킷의 트레인의 시퀀스가 송신되어 요구된 애플리케이션 데이터 전송 속도와 관련된 큐잉 지연을 식별한다.
시퀀스 내의 데이터 패킷의 각각의 트레인은 검사 트레인 간격에 의해 분리될 수 있다. 검사 트레인 간격은 검사된 네트워크 데이터 경로 상의 캡쳐 효과를 감소시키기 위하여 선택될 수 있다. 예를 들어, 1밀리초 검사 데이터 패킷 간격에서 송신된 10 데이터 패킷의 트레인(즉, 10밀리초의 총 송신 시간을 가짐)은 90 ms의 검사 트레인 간격에 의해 분리될 수 있다. 따라서, 100밀리초 간격이 데이터 패킷 트레인의 시퀀스 내의 연속적인 트레인에 대한 송신의 시작을 분리한다. 이것은 네트워크 데이터 경로를 검사하는데 사용되는 로드를 요구된 애플리케이션 데이터 속도의 10%로 효과적으로 감소시킨다.
네트워크 관리자 또는 유저는 소망의 신뢰성 및 효율에 따라 트레인의 시퀀스 내의 트레인의 수를 선택할 수 있다. 더 많은 신뢰성이 요구되면, 시퀀스 내의 트레인의 수를 증가시켜 큐잉 지연의 계산에 대한 추가의 샘플을 제공할 수 있다. 한편, 더 많은 효율이 요구되면, 시퀀스 내의 트레인의 수를 감소시켜 네트워크 데이터 경로의 검사 완료 시간을 감소시킬 수 있다.
임의의 실시예에서, 검사 모듈(예를 들어, 검사 모듈(204, 224 또는 234))은 컴퓨터 시스템에 유저 인터페이스를 제공하여 네트워크 관리자 또는 유저가 여기에 설명된 파라미터에 대한 소망의 값을 선택 및/또는 입력할 수 있도록 한다. 사용 자 인터페이스는 네트워크 관라지 또는 유저에 의해 입력 장치로 선택될 수 있는 파라미터 값의 리스트를 제공할 수 있다. 마찬가지로, 유저 인터페이스는 네트워크 관리자 또는 유저가 입력 장치로 값을 입력할 수 있는 레이블된 필드를 제공할 수 있다. 예를 들어, 유저 인터페이스를 통해 네트워크 관리자 또는 유저는 송신 및/또는 수신측 데이터 링크에 대한 원하는 수락가능한 로딩 값 및 원하는 지정된 병목 로딩을 선택하거나 입력하여 데이터 스트림에 가용한 대역폭을 제한할 수 있다. 마찬가지로, 네트워크 관리자 또는 유저는 데이터 패킷의 트레인을 구성하는 파라미터 및 네트워크 데이터 경로를 능동적으로 검사하기 위한 데이터 패킷의 트레인의 시퀀스를 선택 또는 입력할 수 있다.
본 발명은 그 사상 및 필수 특징으로부터 벗어나지 않고 다른 특정 형태에서 구현될 수 있다. 설명된 실시예는 설명하기 위한 것으로 제한적인 것으로 간주되지 않는다. 따라서, 본 발명의 범위는 상술한 설명에 의해서라기 보다 첨부된 청구항에 의해 지시된다. 청구항의 동등물의 범위 및 의미 내의 모든 변경이 그들의 범위 내에 포함된다.
상술한 바와 같이, 본 발명에 따르면, 네트워크 상으로의 데이터 스트림의 유입을 제어하는 시스템, 방법 및 컴퓨터 프로그램 제품이 제공될 수 있다.

Claims (36)

  1. 적어도 송신측 데이터 링크(271, 272, 273, 275, 276, 279) 및 수신측 데이터 링크(271, 272, 273, 275, 276, 279)를 포함하는 컴퓨터 네트워크 데이터 경로(151, 152, 291)를 통해 수신 컴퓨터 시스템(120, 183, 193, 201, 211, 221, 231, 241, 251)에 네트워크 접속가능한 송신 컴퓨터 시스템(120, 183, 193, 201, 211, 221, 231, 241, 251))에서, 상기 컴퓨터 네트워크 데이터 경로 내에 포함된 데이터 링크들 중 임의의 데이터 링크를 혼잡하게 하지 않고 상기 송신 컴퓨터 시스템으로부터 상기 수신 컴퓨터 시스템으로 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법(300)에 있어서,
    상기 송신 컴퓨터 시스템으로부터 상기 수신 컴퓨터 시스템으로 상기 애플리케이션 데이터 스트림의 전달을 요구하는 애플리케이션으로부터 요구된 애플리케이션 데이터 전송 속도를 수신하는 단계(301) - 상기 요구된 애플리케이션 데이터 전송 속도는 상기 애플리케이션 데이터 스트림을 전달하는 동안 소비될 대역폭의 예측치(estimation)를 나타냄- ;
    불규칙 모드 측정(promiscuous mode measurements)을 수행하여 상기 송신측 데이터 링크가 애플리케이션 데이터 스트림을 수신하기에 가용한 대역폭을 갖는 것을 결정하는 단계(312);
    패킷쌍 테스트를 개시하여 상기 컴퓨터 네트워크 데이터 경로의 병목 데이터 링크가 애플리케이션 데이터 스트림을 수신하기에 가용한 대역폭 용량을 갖는지를 결정하는 단계(313);
    상기 병목 데이터 링크 상의 상기 가용한 대역폭 용량이 상기 요구된 애플리케이션 데이터 전송 속도에서 데이터의 스트림을 수신하는 것을 허용한다는 표시를 수신하는 단계(308);
    검사 데이터 패킷의 트레인으로 상기 컴퓨터 네트워크 데이터 경로를 능동적으로 검사하여 상기 애플리케이션 데이터 스트림이 상기 컴퓨터 네트워크 데이터 경로로 전달될 때 상기 컴퓨터 네트워크 데이터 경로가 혼잡 상태로 전이하는지를 결정하는 단계(314); 및
    검사 데이터 패킷의 트레인이 상기 컴퓨터 네트워크 데이터 경로의 데이터 링크들 중의 임의의 데이터 링크를 혼잡 상태로 전이시키지 않았다는 표시를 수신하는 단계(311)
    를 포함하는, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  2. 제1항에 있어서,
    불규칙 모드 측정을 수행하는 단계는,
    상기 송신측 데이터 링크 상의 송신측 데이터 로드를 검출하는 단계(302); 및
    상기 송신측 데이터 로드에 기초하여, 상기 송신측 데이터 링크 상의 가용한 대역폭 용량이 요구된 애플리케이션 데이터 전송 속도에서 데이터의 스트림을 지원하는 것을 허용한다는 것을 계산하는(calculating) 단계를 포함하고;
    패킷쌍 테스트를 개시하는 단계는,
    상기 수신 컴퓨터 시스템 또는 중간 컴퓨터 시스템에 전달하기 위하여 상기 컴퓨터 네트워크 데이터 경로 상으로 제1 패킷쌍 데이터 패킷을 송신하는 단계(306);
    상기 제1 패킷쌍 데이터 패킷을 송신하는 것에 후속하여, 상기 수신 컴퓨터 시스템 또는 상기 중간 컴퓨터 시스템에 전달하기 위하여 상기 컴퓨터 네트워크 데이터 경로 상으로 제2 패킷쌍 데이터 패킷을 송신하는 단계(307); 및
    상기 컴퓨터 네트워크 데이터 경로를 능동적으로 검사하는 단계 - 상기 능동적으로 검사하는 단계는,
    검사(probing) 데이터 패킷의 트레인을 구성하기 위한 송신 파라미터를 식별하여 상기 요구된 애플리케이션 데이터 전송 속도에서 상기 애플리케이션 데이터 스트림의 송신을 시뮬레이션하는 단계(309); 및
    상기 식별된 송신 파라미터에 따라 검사 데이터 패킷의 트레인을 일시적으로 송신하여 상기 컴퓨터 네트워크 데이터 경로 상으로의 상기 애플리케이션 데이터 스트림의 송신을 시뮬레이션하는 단계(310)를 포함함 -
    를 포함하는, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  3. 제1항 또는 제2항에 있어서, 상기 애플리케이션으로부터 애플리케이션 데이터 전송 속도를 수신하는 단계 - 요구된 상기 애플리케이션 데이터 전송 속도는 상기 애플리케이션 데이터 스트림을 전달하는 동안 소비될 대역폭의 예측치를 나타냄 - 는 애플리케이션 데이터 전송 속도가 유니버설 데이터그램 프로토콜(Univeral Datagram Protocol) 데이터 스트림을 전달하는 동안 소비될 대역폭을 예측하는 단계를 포함하는, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  4. 제2항에 있어서, 상기 송신측 데이터 링크 상의 가용한 대역폭 용량이 상기 요구된 애플리케이션 데이터 전송 속도에서 데이터의 스트림을 지원하는 것을 허용한다는 것을 계산하는 단계는 유저 선택 수락가능 로딩 값에 기초하여 상기 송신측 데이터 링크 상의 가용한 대역폭 용량을 계산하는 단계를 포함하는, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  5. 제2항 또는 제4항에 있어서, 상기 검사 데이터 패킷의 트레인을 구성하기 위한 송신 파라미터를 식별하는 단계는 유저 인터페이스에서 입력된 유저 선택 송신 파라미터를 식별하는 단계를 포함하는, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  6. 제1항, 제2항 또는 제4항 중 어느 한 항에 있어서,
    수신측 컴퓨터 시스템에 명령을 송신하여 수신측 데이터 로드를 검출하는 단계(304)를 더 포함하는, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  7. 제1항, 제2항 또는 제4항 중 어느 한 항에 있어서,
    상기 수신측 데이터 링크 상의 가용한 대역폭 용량이 상기 요구된 애플리케이션 데이터 전송 속도에서 데이터의 스트림을 지원하는 것을 허용한다는 표시를 수신하는 단계(305)를 더 포함하는, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  8. 제1항, 제2항 또는 제4항 중 어느 한 항에 있어서,
    상기 요구된 애플리케이션 데이터 전송 속도에서 상기 컴퓨터 네트워크 데이터 경로 상으로 상기 애플리케이션 데이터 스트림을 송신하는 단계를 더 포함하는, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  9. 제1항, 제2항 또는 제4항 중 어느 한 항에 있어서, 상기 송신측 데이터 링크와 상기 수신측 데이터 링크가 동일한 데이터 링크인, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  10. 적어도 수신측 데이터 링크(271, 272, 273, 275, 276, 279) 및 송신측 데이터 링크(271, 272, 273, 275, 276, 279)를 포함하는 컴퓨터 네트워크 데이터 경로(151, 152, 291)를 통해 송신 컴퓨터 시스템(120, 183, 193, 201, 211, 221, 231, 241, 251)에 네트워크 접속가능한 수신 컴퓨터 시스템(120, 183, 193, 201, 211, 221, 231, 241, 251)에서, 상기 컴퓨터 네트워크 데이터 경로 내에 포함된 데이터 링크들 중 임의의 데이터 링크를 혼잡하게 하지 않고 상기 송신 컴퓨터 시스템으로부터 상기 수신 컴퓨터 시스템으로 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법(300)에 있어서,
    불규칙 모드 측정에 참여하여 상기 수신측 데이터 링크 상의 가용한 대역폭 용량을 결정하는 단계(324);
    상기 수신측 데이터 링크 상의 상기 가용한 대역폭 용량을 상기 송신 컴퓨터 시스템에게 표시하는 단계(316);
    패킷쌍 테스트에 참여하여 상기 컴퓨터 네트워크 데이터 경로의 병목 데이터 링크 상의 가용한 대역폭 용량을 결정하는 단계(325);
    상기 병목 데이터 링크 상의 상기 가용한 대역폭 용량을 상기 송신 컴퓨터 시스템에게 표시하는 단계(320);
    상기 컴퓨터 네트워크 데이터 경로의 능동적인 검사에 참여하여 상기 애플리케이션 데이터 스트림을 전달하는 것이 상기 컴퓨터 네트워크 데이터 경로의 데이터 링크들 중의 임의의 데이터 링크를 혼잡 상태로 전이시키지 않는다는 것을 결정하는 단계(326); 및
    상기 검사 데이터 패킷의 트레인이 상기 컴퓨터 네트워크 데이터 경로의 상기 데이터 링크들 중의 임의의 데이터 링크를 혼잡 상태로 전이시키지 않았다는 것을 상기 송신 컴퓨터 시스템에게 표시하는 단계(323)
    를 포함하는, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  11. 제10항에 있어서,
    불규칙 모드 측정에 참여하는 단계는,
    상기 수신측 데이터 링크 상의 수신측 데이터 로드를 검출하는 단계(314);
    상기 수신측 데이터 로드에 기초하여 상기 수신측 데이터 링크 상의 가용한 대역폭 용량을 계산하는 단계(315);
    패킷쌍 테스트에 참여하는 단계 - 상기 패킷쌍 테스트에 참여하는 단계는,
    제1 수신 시간에 상기 컴퓨터 네트워크 데이터 경로로부터 제1 패킷쌍 데이터 패킷을 수신하는 단계(317);
    제2 수신 시간에 상기 컴퓨터 네트워크 데이터 경로로부터 제2 패킷쌍 데이터 패킷을 수신하는 단계(318);
    적어도 상기 제1 수신 시간과 상기 제2 수신 시간 사이의 차에 기초하여, 상기 컴퓨터 네트워크 데이터 경로의 병목 데이터 링크 상의 가용한 대역폭 용량을 계산하는 단계(319); 및
    능동적 검사에 참여하는 단계 - 상기 능동적 검사에 참여하는 단계는,
    상기 송신 컴퓨터 시스템이 상기 컴퓨터 네트워크 데이터 경로 상으로 송신한 검사 데이터 패킷의 트레인 내의 검사 데이터 패킷들의 적어도 일부를 수신하여 애플리케이션 데이터 전송 속도에서 애플리케이션 데이터 스트림을 시뮬레이션하는 단계(321); 및
    상기 검사 데이터 패킷의 트레인이 상기 컴퓨터 네트워크 데이터 경로의 데이터 링크들 중의 임의의 데이터 링크를 혼잡 상태로 전이시키지 않았다는 것을 계산하는 단계(322)를 포함함 - 를 포함함 -
    를 포함하는, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  12. 제11항에 있어서, 상기 수신측 데이터 로드에 기초하여 상기 수신측 데이터 링크 상의 상기 가용한 대역폭 용량을 계산하는 단계는 유저 선택 수락가능 로딩 값에 기초하여 상기 수신측 데이터 링크 상의 상기 가용한 대역폭 용량을 계산하는 단계를 포함하는, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  13. 제11항 또는 제12항에 있어서, 적어도 상기 제1 수신 시간과 상기 제2 수신 시간 사이의 차에 기초하여, 상기 병목 데이터 링크 상의 상기 가용한 대역폭 용량을 계산하는 단계는, 패킷쌍 알고리즘에 따라 송신된 패킷쌍 데이터 패킷의 트레인 내에 포함된 복수의 패킷쌍 데이터 패킷의 수신 시간에 기초하여 병목 대역폭을 계산하는 단계를 포함하는, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  14. 제10항 내지 제12항 중 어느 한 항에 있어서,
    송신측 컴퓨터 시스템으로부터 명령을 수신하여 수신측 데이터 로드를 검출하는 단계를 더 포함하는, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  15. 제10항 내지 제12항 중 어느 한 항에 있어서,
    요구된 애플리케이션 데이터 전송 속도에서 상기 컴퓨터 네트워크 데이터 경로로부터 상기 애플리케이션 데이터 스트림을 수신하는 단계를 더 포함하며,
    상기 요구된 애플리케이션 데이터 전송 속도는 상기 애플리케이션 데이터 스트림을 전달하는 동안 소비될 대역폭의 예측치(estimation)를 나타내는, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  16. 제10항 내지 제12항 중 어느 한 항에 있어서, 상기 송신측 데이터 링크와 상기 수신측 데이터 링크는 동일한 데이터 링크인, 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법.
  17. 적어도 송신측 데이터 링크(271, 272, 273, 275, 276, 279) 및 수신측 데이터 링크(271, 272, 273, 275, 276, 279)를 포함하는 컴퓨터 네트워크 데이터 경로(151, 152, 291)를 통해 수신 컴퓨터 시스템(120, 183, 193, 201, 211, 221, 231, 241, 251)에 네트워크 접속가능한 송신 컴퓨터 시스템(120, 183, 193, 201, 211, 221, 231, 241, 251)에서 사용하기 위한 하나 이상의 컴퓨터 판독가능 기록 매체(122, 129, 131, 139, 183, 193)로서, 상기 하나 이상의 컴퓨터 판독가능 기록 매체(122, 129, 131, 139, 183, 193)는, 상기 컴퓨터 네트워크 데이터 경로 내에 포함된 데이터 링크들 중 임의의 데이터 링크를 혼잡하게 하지 않고 상기 송신 컴퓨터 시스템으로부터 상기 수신 컴퓨터 시스템으로 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법(300, 400)을 구현하는 컴퓨터 실행가능 명령어들을 저장하고 있으며, 상기 컴퓨터 실행가능 명령어들은 제1항, 제2항 또는 제4항 중 어느 한 항의 방법을 수행하는 하나 이상의 컴퓨터 판독가능 기록 매체(122, 129, 131, 139, 183, 193).
  18. 적어도 수신측 데이터 링크(271, 272, 273, 275, 276, 279) 및 송신측 데이터 링크(271, 272, 273, 275, 276, 279)를 포함하는 컴퓨터 네트워크 데이터 경로(151, 152, 291)를 통해 송신 컴퓨터 시스템(120, 183, 193, 201, 211, 221, 231, 241, 251)에 네크워크 접속가능한 수신 컴퓨터 시스템(120, 183, 193, 201, 211, 221, 231, 241, 251)에서 사용하기 위한 하나 이상의 컴퓨터 판독가능 기록 매체(122, 129, 131, 139, 183, 193)로서, 상기 하나 이상의 컴퓨터 판독가능 기록 매체(122, 129, 131, 139, 183, 193)는, 상기 컴퓨터 네트워크 데이터 경로 내에 포함된 데이터 링크들 중의 임의의 데이터 링크를 혼잡하게 하지 않고 상기 송신 컴퓨터 시스템으로부터 상기 수신 컴퓨터 시스템으로 애플리케이션 데이터 스트림이 전달될 수 있는 것을 결정하는 방법(300, 400)을 구현하는 컴퓨터 실행가능 명령어들을 저장하고 있으며, 상기 컴퓨터 실행가능 명령어들은 제10항 내지 제12항 중 어느 한 항의 방법을 수행하는 하나 이상의 컴퓨터 판독가능 기록매체(122, 129, 131, 139, 183, 193).
  19. 제17항에 있어서, 상기 하나 이상의 컴퓨터 판독가능 기록 매체(122, 129, 131, 139, 183, 193)는 물리적 기억 매체를 포함하는 하나 이상의 컴퓨터 판독가능 기록 매체(122, 129, 131, 139, 183, 193).
  20. 컴퓨터 네트워크 데이터 경로(151, 152, 291)를 능동적으로 검사하여 상기 컴퓨터 네트워크 데이터 경로 상으로 애플리케이션 데이터 스트림을 전달하는 것이 상기 컴퓨터 네트워크 데이터 경로를 혼잡 상태로 전이시키는지를 결정하도록 구성된 컴퓨터 시스템(120, 183, 193, 201, 211, 221, 231, 241, 251)에 있어서,
    하나 이상의 처리 유닛(121); 및
    제1항, 제2항, 제4항, 제10항, 제11항 또는 제12항 중 어느 한 항의 방법을 수행하도록 구성된 검사 모듈(204, 224, 234)이 저장되어 있는 하나 이상의 컴퓨터 판독가능 기록 매체(122, 129, 131, 139, 183, 193)를 포함하는 컴퓨터 시스템(120, 183, 193, 201, 211, 221, 231, 241, 251).
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
KR1020040013943A 2003-03-03 2004-03-02 단-대-단 측정에 기초한 네트워크 상으로의 데이터 스트림 유입 제어 KR101137164B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/378,532 US7239611B2 (en) 2003-03-03 2003-03-03 Controlling admission of data streams onto a network based on end-to-end measurements
US10/378,532 2003-03-03

Publications (2)

Publication Number Publication Date
KR20040078559A KR20040078559A (ko) 2004-09-10
KR101137164B1 true KR101137164B1 (ko) 2012-04-23

Family

ID=32824757

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040013943A KR101137164B1 (ko) 2003-03-03 2004-03-02 단-대-단 측정에 기초한 네트워크 상으로의 데이터 스트림 유입 제어

Country Status (8)

Country Link
US (1) US7239611B2 (ko)
EP (1) EP1455490B1 (ko)
JP (1) JP4491257B2 (ko)
KR (1) KR101137164B1 (ko)
CN (2) CN1543157B (ko)
AT (1) ATE450956T1 (ko)
DE (1) DE602004024348D1 (ko)
HK (1) HK1069494A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016010192A1 (ko) * 2014-07-17 2016-01-21 주식회사 케이티 엑세스 네트워크에서 인터넷을 제공하기 위한 네트워크 관리 장치 및 이를 이용한 네트워크 관리 방법
WO2016010193A1 (ko) * 2014-07-17 2016-01-21 주식회사 케이티 엑세스 네트워크에서 인터넷을 제공하기 위한 네트워크 관리 장치 및 이를 이용한 네트워크 관리 방법
KR101593504B1 (ko) * 2015-07-29 2016-02-19 한국해양과학기술원 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7792982B2 (en) * 2003-01-07 2010-09-07 Microsoft Corporation System and method for distributing streaming content through cooperative networking
US6982949B2 (en) * 2003-02-28 2006-01-03 Microsoft Corporation Vertical roaming in wireless networks through improved wireless network cell boundary detection
US6944144B2 (en) * 2003-02-28 2005-09-13 Microsoft Corporation Vertical roaming in wireless networks through improved quality of service measures
US7336617B1 (en) * 2003-08-01 2008-02-26 Verizon Laboratories Inc. Bit-field-encoded resource record for determining a transmission path in a communications network
US7366097B2 (en) * 2003-10-20 2008-04-29 Microsoft Corporation Increasing the accuracy and efficiency of admission control for data streams
US7652995B2 (en) * 2003-12-19 2010-01-26 International Business Machines Corporation Autonomic reassociation of clients in a wireless local area network
AU2005209770A1 (en) * 2004-02-06 2005-08-18 Apparent Networks, Inc. Method and apparatus for characterizing an end-to-end path of a packet-based network
WO2005086434A1 (en) * 2004-03-01 2005-09-15 Bae Systems Plc Improvements in or relating to call control
US7426181B1 (en) * 2004-03-26 2008-09-16 Packeteer, Inc. Slow-start adaptive mechanisms to improve efficiency of bandwidth allocation
US8355400B2 (en) * 2004-08-06 2013-01-15 Lantiq Deutschland Gmbh System and method for transmitting information over a plurality of communication links
US7730519B2 (en) * 2004-09-17 2010-06-01 At&T Intellectual Property I, L.P. Detection of encrypted packet streams using feedback probing
US7760638B2 (en) * 2004-11-29 2010-07-20 Nec Corporation High-throughput communication system, communication terminal, session relay, and communication protocol
CN100409647C (zh) * 2005-01-18 2008-08-06 广州泰思管理科技有限公司 数据流协议转换和传输装置
US7545749B2 (en) * 2005-02-15 2009-06-09 Microsoft Corporation High-accuracy packet pair for network bottleneck bandwidth measurement
CN100446479C (zh) * 2005-03-10 2008-12-24 同济大学 一种基于网络紧链路定位的端到端可用带宽测量的方法
US7675856B2 (en) * 2005-03-24 2010-03-09 Microsoft Corporation Bandwidth estimation in broadband access networks
US7613138B2 (en) * 2005-05-23 2009-11-03 Microsoft Corporation Separating control and data in wireless networks
US20070058705A1 (en) * 2005-09-13 2007-03-15 Sbc Knowledge Ventures, L.P. System and method to transmit a data stream
JP4606338B2 (ja) * 2006-01-30 2011-01-05 富士通株式会社 検出方法及び検出装置
JP5046316B2 (ja) * 2006-03-10 2012-10-10 富士通株式会社 ネットワーク管理方法、プログラム及びシステム
US7747734B2 (en) * 2006-03-29 2010-06-29 International Business Machines Corporation Apparatus, system, and method for error assessment over a communication link
JP5038426B2 (ja) 2006-09-28 2012-10-03 クゥアルコム・インコーポレイテッド 通信リンク品質を判定する方法及び装置
WO2008040021A1 (en) 2006-09-28 2008-04-03 Qualcomm Incorporated Methods and apparatus for determining quality of service in a communication system
US8867377B2 (en) * 2007-10-11 2014-10-21 Cisco Technology, Inc. Dynamic selection between active and passive probing in computer network
US8149719B2 (en) * 2008-02-13 2012-04-03 Embarq Holdings Company, Llc System and method for marking live test packets
CN101242618B (zh) * 2008-03-04 2011-12-07 中兴通讯股份有限公司 一种通讯通道上通讯状态的实时检测方法
US20100265833A1 (en) * 2009-04-16 2010-10-21 Ou Frank Y Network bandwidth determination
SG166701A1 (en) * 2009-05-29 2010-12-29 Yokogawa Electric Corp Method and system for regulating bandwidth
US8199655B2 (en) * 2009-08-21 2012-06-12 Verizon Patent And Licensing Inc. Optimized layer-2 network switching systems and methods
US8661118B2 (en) 2010-03-08 2014-02-25 Microsoft Corporation Detection of end-to-end transport quality
JP5515978B2 (ja) * 2010-03-31 2014-06-11 ソニー株式会社 通信装置、通信方法およびプログラム
CN102104426B (zh) * 2010-12-24 2013-11-20 安凯 一种漫射激光通信码速率的自适应确定方法
US8773993B2 (en) 2011-01-31 2014-07-08 Apple Inc. Adaptive bandwidth estimation
JP6107666B2 (ja) * 2012-01-25 2017-04-05 日本電気株式会社 可用帯域探索範囲制御方法および可用帯域探索範囲制御システム
WO2014011163A1 (en) 2012-07-11 2014-01-16 Empire Technology Development Llc Network congestion reduction
US20140056159A1 (en) * 2012-08-24 2014-02-27 Ascom Network Testing Ab Systems and Methods for Measuring Available Bandwidth in Mobile Telecommunications Networks
US9215181B2 (en) 2012-11-06 2015-12-15 Comcast Cable Communications, Llc Systems and methods for managing a network
US10142236B2 (en) 2013-03-14 2018-11-27 Comcast Cable Communications, Llc Systems and methods for managing a packet network
US10122639B2 (en) * 2013-10-30 2018-11-06 Comcast Cable Communications, Llc Systems and methods for managing a network
KR101488133B1 (ko) * 2014-02-19 2015-02-04 포항공과대학교 산학협력단 단말을 위한 에너지 효율적인 가용대역폭 측정 방법 및 장치
ES2809498T3 (es) * 2014-04-23 2021-03-04 Siemens Ag Procedimiento y sistema para diagnosticar averías de transmisión en una red según el estándar opc ua
US9729448B2 (en) * 2015-01-22 2017-08-08 International Business Machines Corporation Congestion detection using a differentiated packet pair
US9747343B2 (en) * 2015-02-19 2017-08-29 International Business Machines Corporation Algorithmic changing in a streaming environment
US20170324642A1 (en) * 2016-05-04 2017-11-09 Microsoft Technology Licensing, Llc Initial and periodic slowdowns for background connections
CN108880754B (zh) * 2018-06-25 2020-04-10 西安电子科技大学 基于分级冗余机制的低时延信令、数据无线传输方法
US10873520B2 (en) 2018-07-02 2020-12-22 Hewlett Packard Enterprise Development Lp Packet batching identification

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0102685A2 (en) * 1982-06-04 1984-03-14 Mallinckrodt, Inc. (a Delaware corporation) Blood vessel catheter for medicine delivery and method of manufacture thereof
JPH10336244A (ja) 1997-05-30 1998-12-18 Nippon Telegr & Teleph Corp <Ntt> アプリケーションによるip品質保証サービスのパラメータ決定方法及びip品質保証サービスのパラメータ決定プログラムを記録した記録媒体
JP2000224172A (ja) 1999-02-04 2000-08-11 Fujitsu Ltd ネットワーク通信性能測定方法及び装置並びにネットワーク通信性能測定プログラムを格納したコンピュータ読取り可能な記録媒体

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995008882A1 (en) 1993-09-20 1995-03-30 CODEX CORPORATION, a subsidiary company of MOTOROLA, INC. Dynamic rate adjustment for overload control in communication networks
US5627970A (en) 1994-08-08 1997-05-06 Lucent Technologies Inc. Methods and apparatus for achieving and maintaining optimum transmission rates and preventing data loss in a processing system nework
JP2776301B2 (ja) 1994-08-30 1998-07-16 日本電気株式会社 回線予約装置および方法、回線予約受付装置および方法
EP0867101B1 (en) 1995-12-13 2004-11-10 International Business Machines Corporation Connection admission control in high-speed packet switched networks
US5864678A (en) * 1996-05-08 1999-01-26 Apple Computer, Inc. System for detecting and reporting data flow imbalance between computers using grab rate outflow rate arrival rate and play rate
US5936940A (en) 1996-08-22 1999-08-10 International Business Machines Corporation Adaptive rate-based congestion control in packet networks
US6075769A (en) 1997-11-26 2000-06-13 Cisco Systems, Inc. Method and apparatus for network flow control
CA2240596A1 (en) 1997-11-28 1999-05-28 Newbridge Networks Corporation Controlling atm layer transfer characteristics based on physical layer dynamic rate adaptation
JPH11261702A (ja) * 1998-03-06 1999-09-24 Fujitsu Ltd 負荷予測によるシステム最適化制御装置
US6222824B1 (en) 1998-04-24 2001-04-24 International Business Machines Corporation Statistical call admission control
EP1050180A2 (en) 1998-11-02 2000-11-08 Koninklijke Philips Electronics N.V. Communication system using a compressed connection
US6917590B1 (en) * 1998-11-13 2005-07-12 Sprint Communications Company L.P. Method and system for connection admission control
US6498782B1 (en) 1999-02-03 2002-12-24 International Business Machines Corporation Communications methods and gigabit ethernet communications adapter providing quality of service and receiver connection speed differentiation
WO2000056021A1 (en) 1999-03-15 2000-09-21 Vocaltec Communications Ltd. Flow control method and apparatus
JP2003530623A (ja) 1999-09-17 2003-10-14 マーキュリー インタラクティブ コーポレーション サーバおよびネットワーク性能の監視
US6430160B1 (en) 2000-02-29 2002-08-06 Verizon Laboratories Inc. Estimating data delays from poisson probe delays
US20020034162A1 (en) * 2000-06-30 2002-03-21 Brinkerhoff Kenneth W. Technique for implementing fractional interval times for fine granularity bandwidth allocation
US7200111B2 (en) 2000-08-31 2007-04-03 The Regents Of The University Of California Method for improving TCP performance over wireless links
US7130268B2 (en) * 2000-10-17 2006-10-31 Saverio Mascolo End-to-end bandwidth estimation for congestion control in packet switching networks
US6895235B2 (en) 2001-06-05 2005-05-17 Telcordia Technologies, Inc. Adaptive load and coverage management system and method
US7012893B2 (en) 2001-06-12 2006-03-14 Smartpackets, Inc. Adaptive control of data packet size in networks
US7151749B2 (en) 2001-06-14 2006-12-19 Microsoft Corporation Method and System for providing adaptive bandwidth control for real-time communication
US7274661B2 (en) * 2001-09-17 2007-09-25 Altera Corporation Flow control method for quality streaming of audio/video/media over packet networks
US7088677B1 (en) * 2002-03-01 2006-08-08 Bellsouth Intellectual Property Corporation System and method for delay-based congestion detection and connection admission control
JP3964751B2 (ja) * 2002-07-15 2007-08-22 日本電信電話株式会社 ネットワーク品質推定制御方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0102685A2 (en) * 1982-06-04 1984-03-14 Mallinckrodt, Inc. (a Delaware corporation) Blood vessel catheter for medicine delivery and method of manufacture thereof
JPH10336244A (ja) 1997-05-30 1998-12-18 Nippon Telegr & Teleph Corp <Ntt> アプリケーションによるip品質保証サービスのパラメータ決定方法及びip品質保証サービスのパラメータ決定プログラムを記録した記録媒体
JP2000224172A (ja) 1999-02-04 2000-08-11 Fujitsu Ltd ネットワーク通信性能測定方法及び装置並びにネットワーク通信性能測定プログラムを格納したコンピュータ読取り可能な記録媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016010192A1 (ko) * 2014-07-17 2016-01-21 주식회사 케이티 엑세스 네트워크에서 인터넷을 제공하기 위한 네트워크 관리 장치 및 이를 이용한 네트워크 관리 방법
WO2016010193A1 (ko) * 2014-07-17 2016-01-21 주식회사 케이티 엑세스 네트워크에서 인터넷을 제공하기 위한 네트워크 관리 장치 및 이를 이용한 네트워크 관리 방법
KR101593504B1 (ko) * 2015-07-29 2016-02-19 한국해양과학기술원 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜

Also Published As

Publication number Publication date
US20040174815A1 (en) 2004-09-09
ATE450956T1 (de) 2009-12-15
DE602004024348D1 (de) 2010-01-14
JP4491257B2 (ja) 2010-06-30
CN101917304B (zh) 2012-03-21
CN1543157B (zh) 2010-11-03
CN101917304A (zh) 2010-12-15
US7239611B2 (en) 2007-07-03
HK1069494A1 (en) 2005-05-20
JP2004266840A (ja) 2004-09-24
EP1455490A2 (en) 2004-09-08
KR20040078559A (ko) 2004-09-10
EP1455490B1 (en) 2009-12-02
CN1543157A (zh) 2004-11-03
EP1455490A3 (en) 2004-12-08

Similar Documents

Publication Publication Date Title
KR101137164B1 (ko) 단-대-단 측정에 기초한 네트워크 상으로의 데이터 스트림 유입 제어
WO2021223452A1 (zh) 数据传输方法及装置
KR101046105B1 (ko) 컴퓨터 프로그램 제조품, 리소스 요구 조정 방법 및 엔드 시스템
Martin et al. Delay-based congestion avoidance for TCP
EP1876758B1 (en) Method for probing the peer-to-peer quality of service (QOS)
US7908393B2 (en) Network bandwidth detection, distribution and traffic prioritization
EP2530870B1 (en) Systems and methods for measuring quality of experience for media streaming
KR100757872B1 (ko) 네트워크에서의 혼잡 발생 예고 시스템 및 방법
US8441943B2 (en) Information processing apparatus and method, program, and recording medium
US20180331965A1 (en) Control channel usage monitoring in a software-defined network
US20020044528A1 (en) Flow control method and apparatus
EP2760182B1 (en) Data communication apparatus, data transmission method, and computer system
US20040203825A1 (en) Traffic control in cellular networks
WO2013029214A1 (en) Video quality monitor and method for determining a network video quality measure in a communication network
US20010005360A1 (en) Method and apparatus for monitoring network state
JP4687590B2 (ja) 情報配信システム及び障害判定方法
US20060002425A1 (en) Determining available bandwidth in a network
US7366097B2 (en) Increasing the accuracy and efficiency of admission control for data streams
US20150382232A1 (en) Controlling apparatus for communication-quality measuring, communication apparatus, and program
Xiong et al. Lambdastream–a data transport protocol for streaming network-intensive applications over photonic networks
US10536378B2 (en) Method and device for detecting congestion on a transmission link
Hisamatsu et al. Non bandwidth-intrusive video streaming over TCP
Zhang et al. LearningCC: An online learning approach for congestion control
WO2001067264A1 (en) Apparatus and method for predictable and differentiated delivery of multimedia streaming on the internet
US20150326861A1 (en) Mobile electronic device and video compensation method thereof

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