KR20080022079A - 멀티 스트림 승인 스케쥴링 - Google Patents

멀티 스트림 승인 스케쥴링 Download PDF

Info

Publication number
KR20080022079A
KR20080022079A KR1020077026489A KR20077026489A KR20080022079A KR 20080022079 A KR20080022079 A KR 20080022079A KR 1020077026489 A KR1020077026489 A KR 1020077026489A KR 20077026489 A KR20077026489 A KR 20077026489A KR 20080022079 A KR20080022079 A KR 20080022079A
Authority
KR
South Korea
Prior art keywords
packet
transmission
transmission rate
packets
node
Prior art date
Application number
KR1020077026489A
Other languages
English (en)
Other versions
KR101242338B1 (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 KR20080022079A publication Critical patent/KR20080022079A/ko
Application granted granted Critical
Publication of KR101242338B1 publication Critical patent/KR101242338B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2466Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/624Altering the ordering of packets in an individual queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

업로드 링크 및 다운로드 링크 둘 다의 전체 활용이 양호해지도록, 복수의 스트림의 승인 패킷 및 데이터 패킷이 송신을 위해 재순서화된다. 송신 큐에서의 다양한 패킷들의 지속 시간들을 평가하여 송신 큐의 나중 패킷이 송신 큐의 이전 패킷에 앞서 송신될 수 있는지 여부를 결정할 수 있다. 노드에 대한 상대적 승인 우선 순위 파라미터는 이용가능한 송신 대역폭의 양을 효과적으로 조절하여 승인 송신을 증가시키고 이에 따라 그 노드의 다른 노드로부터의 수신 레이트를 증가시킨다.
Figure P1020077026489
승인 스케쥴링, 송신 큐, 송신 지속 시간

Description

멀티 스트림 승인 스케쥴링{MULTI-STREAM ACKNOWLEDGEMENT SCHEDULING}
본 발명은 일반적으로 네트워크 통신에 관한 것으로서, 보다 상세하게는, 네트워크 통신에서의 멀티 스트림 승인 스케쥴링에 관한 것이다.
많은 인터넷 사용자들은 인터넷에 대하여 비대칭 링크(예를 들어, 비대칭 디지털 가입자 회선(ADSL))를 갖는다. 예를 들어, ADSL에서, 사용자의 다운로드 대역폭은 통상적으로 사용자의 업로드 대역폭보다 크다. 비대칭 링크들이 다른 구성으로 존재할 수 있지만, 다운로드는 주로 인터넷으로부터의 데이터 패킷의 수신에 관련되고, 업로드는 주로 인터넷으로의 데이터 패킷의 송신에 관련된다.
많은 데이터 전달 프로토콜에 있어서, 수신 노드는 데이터 패킷이 성공적으로 수신되었음을 가리키는 소정 형식의 승인(acknowledgement) 패킷을 송신해야 한다. 송신 노드는, 수신 노드로부터 승인 패킷을 수신하게 되면, 전달 시퀀스에서 다른 데이터 패킷을 송신할 수 있다. 반면에, 송신 노드는, 수신 노드로부터 승인 패킷을 수신하지 못하게 되면, 이전의 송신이 성공하지 않았다는 가정 하에 타임아웃 주기 후에 이전에 송신한 패킷을 재송신하기 위해 자신의 송신 액티비티 및/또는 시도를 일시적으로 중단할 수 있다. 따라서, 승인 패킷의 타이밍 및 성공적 수신은, 송신 노드로부터 수신 노드로 데이터가 전달되는 레이트(rate)에 크게 영향 을 끼칠 수 있다.
게다가, 소정의 접속 노드가 데이터 패킷 및 승인 패킷 둘 다를 송신하고 있는 경우(즉, 노드가 다수의 통신 스트림을 처리하고 있는 경우), 데이터, 특히, 제1 노드로부터의 큰 데이터 패킷들을 송신하는 동작은, 그 노드로부터의 승인 패킷의 송신을 상당히 지연시킬 수 있다. 이에 따라, 데이터 패킷 송신 및 승인 송신 둘 다가 하나의 송신 큐에 대하여 경쟁하게 되면, 큰 데이터 패킷을 송신하느라 바쁜 송신 큐는, 노드가 승인을 다른 송신 노드로 리턴할 수 있는 레이트를 감소시킬 수 있고, 이에 따라 또다른 송신 노드가 더 많은 데이터 패킷들을 송신할 레이트를 감소시킨다. 따라서, 노드의 송신 액티비티는 그 노드에서 데이터 패킷이 수신될 레이트에 크게 영향을 끼친다.
소정의 노드에 대한 트래픽의 수신 레이트를 줄일 수 있는, 그 노드에서의 승인 패킷들의 병목(bottleneck) 효과는, 비대칭 접속(예를 들어, 다운로드 = 1024kbps, 업로드 = 64kbps)에 의해 커질 수 있다. 예를 들어, 다운로드 목적지 노드가 통상의 ADSL 접속을 통해 데이터 패킷들을 수신 및 송신하고 있을 때, 이 노드에서 발생하는 수신 처리량은, 이 노드가 승인을 다운로드 소스 노드로 적시에 리턴하지 못함으로 인해 제한될 수 있고, 여기서 다운로드 목적지 노드로부터의 승인은 (다운로드 링크에 비교할 때) 업로드 링크의 보다 작은 대역폭에서 이 다운로드 목적지 노드로부터의 업로드 데이터 패킷과 경쟁한다. 따라서, 더 큰 다운로드 접속을 통한 처리량은 업로드 접속시 이러한 병목으로 인해 감소될 수 있다.
본 명세서에서 설명하고 청구하는 구현예들은, 업로드 링크 및 다운로드 링크 둘 다를 전체적으로 양호하게 활용하기 위해 멀티 스트림의 승인 패킷 및 데이터 패킷 둘 다가 송신 노드에 의해 송신될 수 있게 하는 순서 및 타이밍을 스케쥴링함으로써 상술한 문제점들을 다룬다. 일 구현예에서는, 송신 큐에서의 다양한 패킷들의 지속 시간들을 평가함으로써, 송신 레이트에 크게 영향을 끼치지 않고서 송신 큐에서의 후의 패킷이 송신 큐에서의 전의 패킷보다 앞서 송신될 수 있는지 여부를 결정한다. 노드에 대한 상대적 승인 우선 순위 파라미터는 사용될 이용가능한 송신 대역폭의 양을 효과적으로 조절하여 승인 송신 레이트를 증가시키고 이에 따라 다른 노드로부터의 그 노드의 수신 레이트를 증가시킨다.
몇몇 구현예에서는, 제조 물품을 컴퓨터 프로그램 제품으로서 제공한다. 컴퓨터 프로그램 제품의 일 구현예는, 컴퓨터 시스템에 의해 판독가능하고 컴퓨터 프로그램을 인코딩하는 컴퓨터 프로그램 저장 매체를 제공한다. 컴퓨터 프로그램 제품의 다른 구현예는, 컴퓨팅 시스템에 의해 반송파에서 구체화되고 컴퓨터 프로그램을 인코딩하는 컴퓨터 데이터 신호에 제공될 수 있다.
다른 구현예들도 본 명세서에서 설명 및 인용한다.
도 1은 예시적인 멀티 스트림 승인 스케쥴링을 이용한 비대칭 네트워크 링크를 도시한다.
도 2는 재순서화 동작 전의 멀티 스트림 승인 스케쥴링을 갖는 예시적인 시스템을 도시한다.
도 3은 재순서화 동작 후의 멀티 스트림 승인 스케쥴링을 갖는 도 2의 예시적인 시스템을 도시한다.
도 4는 예시적인 멀티 스레딩(threaded) 승인 스케쥴링의 동작들을 도시한다.
도 5는 본 발명에서 설명하는 기술을 구현하는 데 유용할 수 있는 시스템을 도시한다.
도 1은 예시적인 멀티 스트림 승인 스케쥴링을 갖는 비대칭 네트워크 링크(100)를 도시한다. 컴퓨터 시스템(102)(예를 들어, 업로드 소스)은, ADSL 서비스를 갖는 홈 사용자에게 흔한 구성인 비대칭 네트워크 링크(100)를 통해 인터넷 서비스 제공자(ISP; 104)(예를 들어, 다운로드 소스)로의 인터넷 액세스를 갖도록 구성된다. 도시한 구현예에서, 비대칭 네트워크 링크(100)는 64kbps의 대역폭을 갖는 업로드 링크(106), 및 1024kbps의 대역폭을 갖는 다운로드 링크(108)를 포함하지만, 다른 레이트를 고려할 수도 있다. 멀티 스트림 승인 스케쥴링을 대칭 네트워크 링크 구성에 채용할 수도 있다는 점을 이해하길 바란다.
각 링크는 하나 이상의 흐름을 포함할 수 있으며, 각 흐름에는 링크의 대역폭의 일부분이 할당된다. 예를 들어, 링크는 전체 대역폭의 80%인 접속 관련 흐름, 및 자신의 전체 대역폭의 20%인 비 접속 관련 흐름(non-connection-related flow)을 포함할 수 있다. 이러한 예시적인 할당들을 비대칭 네트워크 링크(100)의 경우에 적용하면, 업로드 링크(106)에서의 접속 관련 흐름의 송신 레이트는 약 52kbps로 될 수 있으며 다운로드 링크(108)에서의 접속 관련 흐름의 수신 레이트는 약 820kbps로 될 수 있다.
또한, 소정의 흐름 내에서 동작가능한 복수의 스트림들이 존재할 수 있다. 예를 들어, 소정의 접속 관련 흐름 내에서, 콘텐츠 제공 웹사이트로부터 디지털 비디오 스트림을 다운로드하는 하나의 접속이나 스트림과, 디지털 이미지들을 퍼스널 포토 앨범 웹사이트에 업로드하는 제2 접속이 존재할 수 있다. 접속 관련 스트림들로서, 이 스트림들의 각각은 업로드 링크(106) 및 다운로드 링크(108) 내의 접속 관련 스트림에 할당된 대역폭을 공유한다.
컴퓨터 시스템(102)은 자신의 네트워크 통신을 위해 복수의 스트림 승인 스케쥴링을 제공하는 소프트웨어를 포함한다. 컴퓨터 시스템(102)(예를 들어, 수신 노드)이 ISP(104)(예를 들어, 송신 노드)로부터 다운로드된 데이터 패킷들을 수신하게 되면, 컴퓨터 시스템의 네트워크 스택은 ISP(104)로 다시 송신될 승인 패킷들을 발생시킨다. 승인 패킷은 이전에 송신한 데이터 패킷을 수신 노드가 수신하였으며 이 수신 노드가 다른 데이터 패킷을 수신하도록 이용가능하다는 것을 ISP(104)에서의 송신 노드에게 통보한다. 송신 노드는, 승인 패킷의 수신에 응답하여, 스트림에서의 후속 패킷이 존재하는 경우 이 후속 패킷을 송신할 수 있다. 이처럼, 승인 패킷은 다운로드된 데이터 패킷들에 대한 조절부로서 기능하며, 송신 노드가 승인 패킷들을 충분히 빠르게 수신하지 못하는 경우, 송신 노드가 데이터 패킷들을 송신하는 레이트가 감소될 수 있다.
일부 패킷들은 데이터 및 하나 이상의 승인 둘 다를 포함할 수 있음을 이해 하길 바란다. 이러한 패킷들도 승인 패킷이라고 칭하며 그 이유는 이 패킷들이 데이터를 포함하는 하나 이상의 패킷들의 수신을 승인하고 송신기에게 새로운 패킷들을 송신하라고 시그널링하기 때문이다. 승인 패킷들은 통상적으로 데이터 승인 양을 가리키며, 이에 따라 송신 노드에 의해 수신 노드로 송신될 수 있는 데이터 양을 가리킨다.
수신 레이트에 대한 승인의 영향은, 복수의 스트림들이 소정의 흐름을 통해 통신되고 있을 때, 비대칭 네트워크 서비스에 의해 커질 수 있다. 동시 다운로드 스트림(예를 들어, 디지털 비디오) 및 업로드(예를 들어, 디지털 이미지) 스트림의 예에서, 이 2개의 스트림은, 업로드 스트림이 데이터를 송신하고 다운로드 스트림이 승인을 송신하는 것처럼, 업로드 측의 보다 작은 파이프에 대하여 경쟁한다. 이처럼, 다운로드 링크(108)에서 이용가능한 넓은 대역폭에도 불구하고, 데이터의 다운로드는 업로드 링크(106)에서의 병목에 의해 느려질 수 있고, 이 업로드 링크는 복수의 스트림들의 데이터 패킷들과 승인 패킷들의 조합으로 포화될 수 있다.
이러한 병목을 경감하기 위해, 네트워크 스택에 관련된 패킷 스케쥴러 드라이버에서 구현된 멀티 스트림 승인 스케쥴러 모듈은, 하나의 스트림에서의 승인 패킷들을 다른 스트림에서의 데이터 패킷들에 대하여 재순서화(reordering)할 수 있다. 예를 들어, 업로드 소스(102)의 송신 큐는 업로드 스트림의 큰 데이터 패킷 뒤로 큐잉(queue)된 다운로드 스트림의 승인 패킷을 가질 수 있다. 이처럼, 데이터 패킷이 보다 느린 업로드 링크(106)를 통해 송신되는 동안, 다운로드 스트림의 승인 패킷이 지연될 수 있다. 그러는 동안, 다운로드 스트림은 추가 데이터를 송 신하고 있지 않으며, 그 이유는 컴퓨터 시스템(102)이 데이터를 추가로 다운로드할 준비가 되어 있다는 사실에도 불구하고 이 다운로드 스트림이 승인을 기다리기 때문이다. 대조적으로, 승인 패킷을 큰 데이터 패킷 앞에 재순서화함으로써, 대기하고 있는 승인을 다운로드 스트림이 수신할 수 있고, 이에 따라 다운로드 스트림이 후속 패킷의 송신을 개시할 수 있다.
도 2는 재순서화 동작 전의 멀티 스트림 승인 스케쥴링을 갖는 예시적인 시스템(200)을 도시한다. 업로드 소스(202)가 네트워크(예를 들어, 인터넷)를 통해 다운로드 소스(204)에 결합된다. 업로드 소스(202)는, 업로드 스트림 A에서 다운로드 소스(204)의 애플리케이션(208)으로 데이터 패킷들을 업로드하는 애플리케이션(206)을 실행하고 있다(예를 들어, 디지털 이미지 업로드 동작의 양 면을 나타냄). 포화된 업로드 링크(203)는 임의의 스트림들로부터의 데이터 패킷들로 도시되어 있다. 마찬가지로, 다운로드 소스(204)는 다운로드 스트림 B에서 업로드 소스(202)의 애플리케이션(214)으로 데이터 패킷들을 다운로드하고 있는 애플리케이션(210)을 실행하고 있다(예를 들어, 디지털 비디오 다운로드 동작의 양 면을 나타냄). 덜 포화된 다운로드 링크(205)는, 임의의 스트림으로부터의 승인 및 데이터 패킷을 갖는 것으로 도시되어 있다.
각 데이터 패킷이 소정의 소스에 의해 수신되면, 이 데이터 패킷에는 타임스탬프(또는 시퀀스 번호)가 표시되고, 이것은 그 데이터 패킷이 다른 패킷들에 대하여 수신된 순서를 가리킬 수 있다. 다운로드 소스(204)의 네트워크 스택에 있는 승인 모듈(216) 및 업로드 소스(202)의 네트워크 스택에 있는 승인 모듈(218)은, 하나 이상의 스트림에서의 데이터 패킷들의 (점선 화살표(217, 219)로 도시된) 수신을 검출한다. 수신된 데이터 패킷이 있다면, 그 패킷은 그것의 스트림(예를 들어, TCP 접속)을 식별하도록 분류된다. 그 데이터 패킷이 접속 관련 스트림의 일부라면, 수신된 데이터 패킷에 대한 승인 패킷은 수신 소스의 접속 관련 송신 큐에 송신되어 원래의 소스로 리턴된다. 그 데이터 패킷이 특정 접속 스트림의 일부가 아니라면, 수신된 데이터 패킷에 대한 승인 패킷은 수신 소스의 비 접속 관련 송신 큐에 송신되어 원래의 소스로 리턴된다. 비 접속 관련 흐름에서, 애플리케이션은 일반적으로 임의의 승인이 존재하는 경우 이 승인의 처리를 담당한다. 업로드 소스(202)에서는 접속 관련 송신 큐(215)가 도시되어 있고, 다운로드 소스(204)에서는 접속 관련 송신 큐(221)가 도시되어 있다.
송신 큐(215)는, 앞에서부터 뒤로의 순서로, 스트림 A의 데이터 패킷, 스트림 B의 승인 패킷, 스트림 C의 승인 패킷을 포함한다. 업로드 링크(203)에서의 나머지 데이터 패킷들은 다른 스트림들로부터 온 것이다. 업로드 소스(202)가 데이터 패킷을 업로드 링크(203) 상으로 송신하게 되면, 승인 패킷들은 데이터 패킷 송신이 완료될 때까지 지연될 것이다. 그러는 동안, 다운로드 소스(204)는 업로드 소스(202)의 송신 큐(215)에 머물러 있는 스트림 B에 대한 대응 승인 패킷을 수신할 때까지 스트림 B의 후속 데이터 패킷을 송신하지 않는다.
도 3은 재순서화 동작 후의 멀티 스트림 승인 스케쥴링을 갖는 예시적인 시스템(200)을 도시한다. 도시한 바와 같이, 데이터 패킷 및 승인 패킷들 중 하나의 승인 패킷은 송신 큐(215)에서 재순서화되었다. 재순서화는 업로드 레이트와 다운 로드 레이트 간에 원하는 균형을 유지하도록 설정된 재순서화 조건이 만족된 것에 응답하여 실행되었다. 예를 들어, 업로드 소스(202)는 다운로드 레이트가 더 유리해지도록 구성될 수 있으며, 그 반대로도 가능하다.
재순서화 조건은, 소스의 수신 레이트를 개선하기 위해, 소스의 송신 레이트를 다른 스트림에서의 승인을 리턴하는 데 대하여 얼마만큼 희생할 수 있는지를 반영하는 상대적 승인 우선 순위 파라미터(RAP)에 기초한다. 예를 들어, "1"이라는 상대적 승인 우선 순위 파라미터는 승인 패킷들이 데이터 패킷들보다 항상 높은 우선 순위를 갖는다는 것을 나타낸다. 예를 들어, 승인에 송신 레이트(RT)의 한 부분이 할당(예를 들어, RAP*RT) 되고 데이터에 송신 레이트(RT)의 나머지 부분이 할당(예를 들어, (1-RAP)*RT)된다고 할 수 있다. 이러한 상대적 승인 우선 순위 파라미터를 조절하여 멀티 스트림 통신의 송신 레이트와 수신 레이트 간의 원하는 트레이드오프를 제공할 수 있다. 일 구현예에서, 다른 파라미터 값들도 고려할 수 있지만, 1/8이라는 상대적 승인 우선 순위 파라미터가 허용가능한 결과를 제공하는 것으로 발견되었다. 이 경우, 파라미터는 재순서화된 승인 패킷들에 송신 레이트의 1/8이 할당될 수 있음을 가리킨다.
다른 RAP 파라미터는 링크 상의 데이터에 대한 승인의 비에 기초할 수 있다. 이 방식에서는, 승인에 송신 레이트(RT)의 일부분이 할당(예를 들어, RT*RAP/(1+RAP))되고 데이터에 송신 레이트(RT)의 나머지 부분이 할당(예를 들어, RT*(1/(1+RAP))된다.
도 4는 제1 노드에서의 예시적인 멀티 스레딩 승인 스케쥴링의 동작(400)을 도시하며, 여기서 제1 노드는 제2 노드로부터 데이터 패킷들을 수신하며 데이터 패킷들을 제2 노드나 다른 일부 노드에 송신한다. 제1 검사 동작(402)은 송신 큐의 제1 패킷을 검사하고, 여기서 제1 패킷은 송신 큐의 선두에 있는 패킷일 필요는 없지만 동작(400)에서 검사받은 다른 패킷들보다 송신 큐에서 상당히 앞쪽에 위치하는 것이다. 검사 동작(402)은 제1 패킷의 TCP 접속, 패킷의 크기(P1), 송신 큐에 관련된 통신 흐름의 송신 레이트(RT)를 기록한다.
이러한 정보에 기초하여, 예측 동작(404)은 상대적 승인 우선 순위 파라미터(RAP)에 기초하여 결정된, 디스카운트된 송신 레이트(RD)에서의 제1 패킷의 송신 지속 시간(즉, 제1 패킷을 완전히 송신하는 데 걸리는 시간)을 계산한다. 일반적으로, 디스카운트된 송신 레이트는, 소정의 승인 패킷들의 우선 순위를 업그레이드하기 위해 송신 레이트의 일부가 희생된 경우에, 데이터 패킷이 경험하는 부분 송신 레이트를 나타낸다. 따라서, 디스카운트된 송신 레이트는 통신 흐름의 송신 레이트보다 느리다. 일 구현예에서, 디스카운트된 송신 레이트는, 다른 알고리즘들을 고려할 수 있지만, 다음과 같이 계산된다.
RD = (1 - RAP)RT
따라서, 디스카운트된 송신 레이트에서의 제1 패킷의 예측 송신 지속 시 간(D1)은 아래의 식을 이용하여 계산될 수 있다.
Figure 112007081692478-PCT00001
다른 검사 동작(406)은 송신 큐의 제2 패킷을 검사하고, 이 제2 패킷은 제1 패킷보다 후에 송신되도록 큐잉된 것이다. 제2 패킷은 제1 패킷 바로 뒤에 또는 송신 큐에서의 소정의 뒤의 위치에 순서화될 수 있다. 검사 동작(406)은 제2 패킷의 TCP 접속, 패킷의 크기(P2), 송신 큐에 관련된 통신 흐름의 송신 레이트(RT)를 기록한다. 제2 패킷이 제1 패킷과 동일한 스트림에 존재하는 경우, 서로 다른 스트림에 패킷이 위치할 때까지 다른 패킷을 선택 및 검사한다.
이 정보에 기초하여, 예측 동작(408)은 표준 송신 레이트(RT)에서 제1 패킷과 제2 패킷의 송신 지속 시간(즉, 제1 패킷 및 제2 패킷 둘 다를 송신하는 데 걸리는 시간)을 계산한다. 따라서, 표준 송신 레이트에서의 제1 및 제2 패킷들의 예측 송신 지속 시간(D2)은 아래의 식을 이용하여 계산될 수 있다.
Figure 112007081692478-PCT00002
결정 동작(410)에 의해 테스트될 때, D2 ≤ D1인 경우(재순서화 조건), 리스케쥴링 동작(412)에서 제2 패킷이 제1 패킷에 앞서 송신 큐로부터 송신되도록 제2 패킷을 리스케쥴링할 수 있다. 제2 패킷이 승인 패킷이면, 재순서화는 제1 노드로부터 승인 레이턴시를 감소시키고 제1 노드가 제2 노드로부터 데이터를 수신하는 레이트를 증가시킨다. 이후, 연속 동작(414)은 송신 큐에서의 후속 패킷에 대한 처리를 재시작한다.
다른 구현예에서, 제1 검사 동작(402)은 송신 큐에서의 제1 패킷 및 제2 패킷을 검사하고, 여기서, 제1 패킷은 송신 큐의 선두에 있는 패킷일 필요는 없지만 단지 동작(400)에서 검사받은 다른 패킷들보다 송신 큐에서 충분히 앞에 위치하는 것이다. 검사 동작(402)은 제1 및 제2 패킷들의 TCP 접속, 패킷들의 크기(P1, P2), 송신 큐에 관련된 통신 흐름의 송신 레이트(RT)를 기록한다. 따라서, 디스카운트된 송신 레이트에서의 제1 및 제2 패킷들의 예측 송신 지속 시간(D1)은 아래의 식을 이용하여 계산될 수 있다.
Figure 112007081692478-PCT00003
이 구현예에서, 검사 동작(406)은 송신 큐에서의 제3 패킷을 검사한다. 검사 동작(406)은 제3 패킷의 TCP 접속, 패킷의 크기(P3), 송신 큐에 관련된 통신 흐름의 송신 레이트(RT)를 기록한다. 제3 패킷이 제1 패킷이나 제2 패킷과 동일한 스트림에 존재하는 경우, 다른 스트림의 패킷이 위치할 때까지 또다른 패킷을 선택 및 검사한다.
이 정보에 기초하여, 예측 동작(408)은 표준 송신 레이트(RT)에서의 제1 패킷, 제2 패킷, 제3 패킷의 송신 지속 시간을 계산한다. 따라서, 표준 송신 레이트 에서의 제1, 제2, 제3 패킷들의 예측 송신 지속 시간(D2)은 아래의 식을 이용하여 계산될 수 있다.
Figure 112007081692478-PCT00004
결정 동작(410)에 의해 테스트될 때, D2 ≤ D1인 경우(재순서화 조건), 제3 패킷은 리스케쥴링 동작(412)에서 제2 패킷에 앞서 송신 큐로부터 송신되도록 리스케쥴링될 수 있다. 제2 패킷이 승인 패킷이면, 재순서화는 제1 노드로부터의 승인 레이턴시를 감소시키고 제1 노드가 제2 노드로부터 데이터를 수신하는 레이트를 증가시킨다. 이후, 연속 동작(414)은 송신 큐에서의 후속 패킷에 대한 처리를 재시작한다.
다른 구현예에서는, 2개의 패킷에 대하여 전술한 특정한 재순서화 조건이 만족되지 않을 수 있지만 제3 패킷이 다른 재순서화 조건을 만족시키는 데 기여하는 경우 재순서화가 여전히 수행될 수 있다. D2 > D1인 경우, 패킷들(P1, P2)은 재순서화되지 않으나, D1과 P1을 송신하는 실제 시간(P1/RT) 간의 차이를 캐리(carry)라 칭할 수 있고, 이것은 후속하는 패킷 쌍(또는 패킷들의 세트)의 비교와 조합되어 다른 재순서화 조건을 만족시킬 수 있다. 캐리는 아래의 식을 이용하여 계산될 수 있다.
Figure 112007081692478-PCT00005
예를 들어, 송신 큐를 통해 순서대로 이동하는 크기(P1, P2, P3)의 패킷들(즉, P1이 가장 먼저 송신되고, P2, P3가 차례로 송신되도록 스케쥴링됨)을 고려하되, 이러한 패킷들 중 어느 것도 D2 ≤ D1 재순서화 조건을 만족시키지 못하는 것으로 한다. 그럼에도 불구하고, 패킷(P1)에 대한 D1과 P1에 대한 P1/RT 간의 차이(△1), 및 패킷(P2)에 대한 D1과 패킷들(P2, P3)에 대한 D2 간의 차이는 여전히 재순서화를 정당화할 수 있다. 즉, D2 - △1가 P2에 대한 D1보다 크지 않으면, P3가 P1나 P2에 앞서 재순서화될 수 있다. 그러나, 이 시점에서는 P1이 이미 송신되어 있을 수 있어서 P2와 P3의 재순서화만이 가능할 수 있다는 점을 이해하길 바란다.
또다른 구현예에서는, 수신 노드에 대한 타겟 수신 레이트가 재순서화에 영향을 끼칠 수 있다. 예를 들어, 통신 흐름의 수신 레이트를 초과하는 방식으로 수신 노드에서 승인 패킷들을 재순서화할 수 있고, 이에 따라 큐잉 레이턴시(queuing latency)라 칭하는, 송신 노드에서 송신 큐에 병목을 초래한다. 이러한 결과는 일반적으로 바람직하지 않다. 따라서, 수신 레이트를 재순서화 조건 내로 포함하는 것이 유리할 수 있다.
일 구현예에서, 승인 패킷은 수신 노드가 승인하고 있는 데이터 양(A)을 가리킨다. 지시된 데이터의 양(승인 양)은 관련 스트림을 위해 적어도 A 양의 추가 데이터를 송신할 수 있음을 통신 노드에게 통보한다. 이처럼, 멀티 스트림의 승인량을 모니터링함으로써, 승인 패킷들의 수신에 응답하여 송신 노드에 의해 송신될 초당 데이터 양을 대략적으로 예측할 수 있다. 이러한 송신 노드의 예측 송신 레이트는 사실상 수신 링크에서의 특정 접속 흐름의 수신 레이트이고, 수신 노드로부터의 승인을 관리함으로써, 송신 노드의 예측 송신 레이트가 수신 링크에서의 특정 접속 흐름의 수신 레이트를 초과하는 것을 방지할 수 있다.
수신 레이트 제한을 본 명세서에서 설명한 승인 스케쥴링의 구현예들과 조합하여 전체 통신 성능을 더 개선할 수 있다. 예를 들어, 패킷 크기가 P1인 승인 패킷의 예측 송신 지속 시간은 아래와 같이 표현된다.
Figure 112007081692478-PCT00006
그리고, 제1 승인 패킷에 속하는 실제 수신 지속 시간(
Figure 112007081692478-PCT00007
)은, 송신 노드로부터 수신 노드로의 다운로드 수신 레이트(RR)로 나눠진 승인량(A1)과 동일하며, 아래와 같다.
Figure 112007081692478-PCT00008
2개의 승인 패킷에 대한 전체 레이트 성분(D2)은, 아래와 같이 표현되고,
Figure 112007081692478-PCT00009
또는, 다른 구현예에서는, 아래와 같이 표현된다.
Figure 112007081692478-PCT00010
이후,
Figure 112007081692478-PCT00011
의 재순서화 조건을 적용할 수 있다.
본 발명을 구현하기 위한 도 6의 예시적인 하드웨어 및 동작 환경은, 처리 장치(21), 시스템 메모리(22), 및 시스템 메모리를 비롯한 다양한 시스템 컴포넌트들을 처리 장치(21)에 동작가능하게 결합하는 시스템 버스(23)를 구비하는 컴퓨터(20)의 형태인 범용 계산 장치를 포함한다. 컴퓨터(20)의 프로세서가 단일 중앙 처리 장치(CPU), 또는 흔히 병렬 처리 환경이라 칭하는 복수의 처리 장치를 포함하는 것처럼, 하나의 처리 장치(21)만이 존재하거나 하나 초과의 처리 장치가 존재할 수 있다. 컴퓨터(20)는 통상의 컴퓨터, 분산형 컴퓨터, 또는 다른 임의의 유형의 컴퓨터일 수 있으며, 본 발명은 이에 한정되지 않는다.
시스템 버스(23)는, 메모리 버스나 메모리 제어기를 포함하는 버스 구조, 주변 버스, 스위칭 패브릭, 점대점 접속, 다양한 버스 아키텍쳐들 중 임의의 것을 이용하는 로컬 버스의 여러 유형들 중 임의의 것일 수 있다. 시스템 메모리는, 간단히 메모리라 칭할 수도 있고, ROM(24) 및 RAM(25)을 포함한다. 기동 동안처럼 컴퓨터(20) 내의 요소들 간에 정보를 전달하는 데 도움이 되는 기본 루틴들을 포함하는 기본 입출력 시스템(BIOS; 26)은 ROM(24)에 저장된다. 컴퓨터(20)는, 하드 디스크(도시하지 않음)로부터의 판독 및 하드 디스크로의 기입을 위한 하드 디스크 드라이브(27), 분리가능 자기 디스크(29)로부터의 판독 또는 분리가능 자기 디스크로의 기입을 위한 자기 디스크 드라이브(28), CD ROM이나 다른 광 매체와 같은 분리가능 광 디스크(31)로부터의 판독 또는 분리가능 광 디스크로의 기입을 위한 광 디스크 드라이브(30)를 더 포함한다.
하드 디스크 드라이브(27), 자기 디스크 드라이브(28), 광 디스크 드라이브(30)는, 각각 하드 디스크 드라이브 인터페이스(32), 자기 디스크 드라이브 인터페이스(33), 광 디스크 드라이브 인터페이스(34)에 의해 시스템 버스(23)에 접속된다. 드라이브들 및 이들과 관련된 컴퓨터 판독가능 매체는, 컴퓨터(20)를 위해, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터의 비휘발성 저장소를 제공한다. 자기 카세트, 플래시 메모리 카드, 디지털 비디오 디스크, RAM, ROM 등과 같이, 컴퓨터에 의해 액세스가능한 데이터를 저장할 수 있는 임의의 유형의 컴퓨터 판독가능 매체를 예시적인 동작 환경에서 사용할 수 있음을 당업자라면 인식할 것이다.
다수의 프로그램 모듈은, 운영 체제(35), 하나 이상의 애플리케이션 프로그램(36), 기타 프로그램 모듈(37), 프로그램 데이터(38)와 더불어, 하드 디스크, 자기 디스크(29), 광 디스크(31), ROM(24), 또는 RAM(25)에 저장될 수 있다. 사용자는 키보드(40) 및 포인팅 장치(42)와 같은 입력 장치를 통해 퍼스널 컴퓨터(20)에 커맨드 및 정보를 입력할 수 있다. 다른 입력 장치들(도시하지 않음)은, 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이러한 입력 장치들 및 다른 입력 장치들은, 흔히 시스템 버스에 결합된 직렬 포트 인터페이스(46)를 통해 처리 장치(21)에 접속되지만, 병렬 포트, 게임 포트, 또는 USB와 같은 다른 인터페이스들에 의해 접속될 수 있다. 모니터(47) 또는 다른 유형의 디스플레이 장치도 비디오 아답터(48)와 같은 인터페이스를 통해 시스템 버스(23)에 접 속된다. 모니터 외에도, 컴퓨터들은 통상적으로 스피커 및 프린터와 같은 기타 주변 출력 장치들(도시하지 않음)을 포함한다.
컴퓨터(20)는 원격 컴퓨터(49)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 이러한 논리적 접속은 컴퓨터(20)에 또는 이 컴퓨터의 일부에 결합된 통신 장치에 의해 얻어진다. 본 발명은 통신 장치의 특별한 유형으로 한정되지 않는다. 원격 컴퓨터(49)는 또 하나의 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 통상적으로 컴퓨터(20)와 관련하여 상술된 구성 요소들의 대부분 또는 그 전부를 포함하지만, 도 10에서는 하나의 메모리 저장 장치(50)만이 도시되어 있다. 도 6에 도시된 논리적 접속으로는 LAN(51) 및 WAN(52)이 있다. 이러한 네트워킹 환경은, 모든 유형의 네트워크들인, 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(20)는 통신 장치의 한 유형인 네트워크 인터페이스 또는 어댑터(53)를 통해 LAN(51)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(20)는 통상적으로 WAN(52)을 통해 통신을 설정하기 위한 모뎀(54), 네트워크 아답터, 한 유형의 통신 장치, 또는 다른 임의의 유형의 통신 장치를 포함한다. 내장형 또는 외장형일 수 있는 모뎀(54)은 직렬 포트 인터페이스(46)를 통해 시스템 버스(23)에 접속된다. 네트워크화된 환경에서, 컴퓨터(20) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장 될 수 있다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단 및 통신 장치가 사용될 수 있다는 것을 이해할 것이다.
예시적인 구현예에서, 스케쥴러 모듈, 결정 블록, 및 다른 모듈들은, 운영 체제(35), 애플리케이션 프로그램(36), 또는 기타 프로그램 모듈(37)의 일부로서 통합될 수 있다. 패킷 크기, 송신 지속 시간, 및 기타 데이터는 프로그램 데이터(38)로서 저장될 수 있다.
본 명세서에서 설명한 기술은 하나 이상의 시스템에서 논리적 동작 및/또는 모듈로서 구현된다. 논리적 동작들은 (1) 하나 이상의 컴퓨터 시스템에서 실행되는 프로세서 구현 단계들의 시퀀스로서 그리고 (2) 하나 이상의 컴퓨터 시스템 내의 상호접속 기계나 회로 모듈로서 구현된다. 마찬가지로, 다양한 컴포넌트 모듈들에 대한 설명은 그 모듈들에 의해 영향을 받거나 실행되는 동작들의 관점으로 제공될 수 있다. 최종 구현은 선택 사항으로서, 전술한 기술을 구현하는 기본 시스템의 성능 요구사항에 의존한다. 이에 따라, 본 명세서에서 설명한 기술의 실시예들을 구성하는 논리적 동작들은 다양하게 동작, 단계, 오브젝트, 모듈이라 칭한다. 게다가, 논리적 동작들은, 다르게 명시되지 않거나 특정 순서가 청구항의 문언에 의해 본래부터 필요한 경우가 아니라면, 임의의 순서로 수행할 수 있다는 점을 이해하길 바란다.
전술한 명세, 예, 데이터는 본 발명의 예시적인 실시예들의 사용 및 구조를 완벽하게 설명한다. 본 발명의 많은 실시예들은 본 발명의 사상 및 범위로부터 벗어나지 않고서 구현될 수 있기 때문에, 본 발명은 이하의 청구범위에 속한다. 특 히, 전술한 기술은 퍼스널 컴퓨터와 무관하게 채용될 수 있다는 점을 이해하길 바란다. 따라서 다른 실시예들을 고려할 수도 있다.

Claims (20)

  1. 제1 노드와 제2 노드 간의 네트워크 트래픽을 제어하는 방법으로서,
    상기 제1 노드의 통신 흐름을 위해 송신 큐를 유지하는 단계 - 상기 송신 큐는 상기 통신 흐름내의 제1 스트림에 관련된 제1 패킷과 상기 통신 흐름내의 제2 스트림에 관련된 제2 패킷을 포함하고, 상기 제1 패킷은 상기 송신 큐에서 상기 제2 패킷에 앞선 순서를 가짐 - 와,
    상기 제1 패킷과 상기 제2 패킷이 재순서화 조건을 만족하는 경우, 상기 송신 큐에서 상기 제1 패킷과 상기 제2 패킷을 재순서화하는 단계
    를 포함하는 네트워크 트래픽 제어 방법.
  2. 제1항에 있어서,
    상기 통신 흐름은 상기 제1 노드로부터의 송신 레이트에 관련되며, 상기 재순서화 조건은 상기 송신 레이트에 의존하는 네트워크 트래픽 제어 방법.
  3. 제1항에 있어서,
    상기 통신 흐름은 상기 제1 노드로부터의 송신 레이트에 관련되며,
    상기 방법은,
    상기 송신 큐에 관련된 송신 레이트로 송신되는 상기 제1 패킷과 상기 제2 패킷 둘 다의 송신 지속 시간을 예측하는 단계와,
    상기 통신 흐름의 송신 레이트보다 느린 송신 레이트로 송신되는 상기 제1 패킷의 송신 지속 시간을 예측하는 단계
    를 더 포함하는 네트워크 트래픽 제어 방법.
  4. 제3항에 있어서,
    상기 송신 레이트에서의 상기 제1 패킷과 상기 제2 패킷의 예측되는 송신 지속 시간이 상기 느린 송신 레이트에서의 상기 제1 패킷의 예측되는 송신보다 적은 경우, 상기 재순서화 조건이 만족되는 네트워크 트래픽 제어 방법.
  5. 제1항에 있어서,
    상기 제2 패킷은 상기 제1 패킷보다 작은 네트워크 트래픽 제어 방법.
  6. 제1항에 있어서,
    상기 제2 패킷은 승인 패킷인 네트워크 트래픽 제어 방법.
  7. 제1항에 있어서,
    상기 제2 패킷은 데이터 패킷인 네트워크 트래픽 제어 방법.
  8. 제1항에 있어서,
    상기 송신 큐는 상기 통신 흐름내의 제3 패킷을 포함하고, 상기 제3 패킷은 상기 제1 스트림에 관련되지 않으며,
    상기 방법은,
    상기 송신 큐에 관련된 송신 레이트로 송신되는 상기 제1, 제2, 제3 패킷의 송신 지속 시간을 예측하는 단계와,
    상기 통신 흐름의 송신 레이트보다 느린 송신 레이트로 송신되는 상기 제1 패킷의 송신 지속 시간을 예측하는 단계
    를 더 포함하는 네트워크 트래픽 제어 방법.
  9. 제8항에 있어서,
    상기 송신 레이트에서의 상기 제1, 제2, 제3 패킷의 예측된 송신 지속 시간이 상기 느린 송신 레이트에서의 상기 제1 패킷의 예측되는 송신보다 적은 경우, 상기 재순서화 조건이 만족되는 네트워크 트래픽 제어 방법.
  10. 제1항에 있어서,
    상기 송신 큐는 상기 통신 흐름내의 제3 패킷을 포함하고,
    상기 방법은,
    상기 통신 흐름의 송신 레이트로 송신되는 상기 제2 및 제3 패킷의 송신 지속 시간을 예측하는 단계와,
    상기 통신 흐름의 송신 레이트보다 느린 송신 레이트로 송신되는 상기 제2 패킷의 송신 지속 시간을 예측하는 단계
    를 더 포함하고,
    상기 송신 레이트에서의 상기 제2 및 제3 패킷의 예측되는 송신 지속 시간이, 상기 느린 송신 레이트에서의 상기 제2 패킷의 예측되는 송신 지속 시간에서, 상기 제1 패킷의 상기 예측되는 송신 지속 시간과 상기 느린 송신 레이트에서의 상기 제1 패킷의 예측되는 송신 지속 시간의 차이인 캐리(carry) 양을 감한 것보다 적은 경우, 상기 재순서화 조건이 만족되는 네트워크 트래픽 제어 방법.
  11. 제1항에 있어서,
    상기 제1 및 제2 패킷 중 적어도 하나의 패킷은 수신 통신 흐름에서 수신되는 데이터 양을 승인하는 승인 패킷이며, 상기 수신 통신 흐름은 수신 레이트를 갖고,
    상기 제1 및 제2 패킷 중 상기 적어도 하나의 패킷에 의해 승인되는 데이터 양이 상기 수신 레이트를 초과하지 않는 것으로 예측되는 경우, 상기 재순서화 조건이 만족되는 네트워크 트래픽 제어 방법.
  12. 제1항의 방법을 구현하는 컴퓨터 프로세스를 수행하기 위한 컴퓨터 실행가능 명령어들을 구비하는 컴퓨터 판독가능 매체.
  13. 제2 노드와의 네트워크 트래픽을 제어하는 통신 노드로서,
    통신 흐름내의 제1 스트림에 관련된 제1 패킷과 상기 통신 흐름내의 제2 스 트림에 관련된 제2 패킷을 포함하며, 제1 노드의 통신 흐름을 위한 송신 큐 - 상기 제1 패킷은 상기 송신 큐에서 상기 제2 패킷보다 앞선 순서를 가짐 - 와,
    상기 제1 및 제2 패킷이 재순서화 조건을 만족하는 경우 상기 송신 큐에서 상기 제1 및 제2 패킷을 재순서화하는 스케쥴러
    를 포함하는 통신 노드.
  14. 제13항에 있어서,
    상기 통신 흐름은 상기 제1 노드로부터의 송신 레이트에 관련되며, 상기 재순서화 조건은 상기 송신 레이트에 의존하는 통신 노드.
  15. 제13항에 있어서,
    상기 통신 흐름은 상기 제1 노드로부터의 송신 레이트에 관련되며,
    상기 스케쥴러는, 상기 송신 큐에 관련된 송신 레이트로 송신되는 상기 제1 패킷과 상기 제2 패킷 둘 다의 송신 지속 시간, 및 상기 통신 흐름의 송신 레이트보다 느린 송신 레이트로 송신되는 상기 제1 패킷의 송신 지속 시간을 더 예측하는 통신 노드.
  16. 제15항에 있어서,
    상기 송신 레이트에서의 상기 제1 및 제2 패킷의 예측되는 송신 지속 시간이 상기 느린 송신 레이트에서의 상기 제1 패킷의 예측되는 송신보다 적은 경우, 상기 재순서화 조건이 만족되는 통신 노드.
  17. 제13항에 있어서,
    상기 제2 패킷은 승인 패킷인 통신 노드.
  18. 제13항에 있어서,
    상기 제2 패킷은 데이터 패킷인 통신 노드.
  19. 제13항에 있어서,
    상기 송신 큐는 상기 통신 흐름내의 제3 패킷을 포함하고, 상기 제3 패킷은 상기 제1 스트림에 관련되지 않으며,
    상기 스케쥴러는, 상기 송신 큐에 관련된 송신 레이트로 송신되는 상기 제1, 제2, 제3 패킷의 송신 지속 시간과, 상기 통신 흐름의 송신 레이트보다 느린 송신 레이트로 송신되는 상기 제1 패킷의 송신 지속 시간을 더 예측하는 통신 노드.
  20. 제19항에 있어서,
    상기 송신 레이트에서의 상기 제1, 제2, 제3 패킷의 예측되는 송신 지속 시간이 상기 느린 송신 레이트에서의 상기 제1 패킷의 예측되는 송신보다 적은 경우, 상기 재순서화 조건이 만족되는 통신 노드.
KR1020077026489A 2005-06-14 2006-06-14 멀티 스트림 승인 스케쥴링 KR101242338B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/153,721 2005-06-14
US11/153,721 US7606234B2 (en) 2005-06-14 2005-06-14 Multi-stream acknowledgement scheduling
PCT/US2006/023331 WO2006138472A2 (en) 2005-06-14 2006-06-14 Multi-stream acknowledgement scheduling

Publications (2)

Publication Number Publication Date
KR20080022079A true KR20080022079A (ko) 2008-03-10
KR101242338B1 KR101242338B1 (ko) 2013-03-11

Family

ID=37571169

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077026489A KR101242338B1 (ko) 2005-06-14 2006-06-14 멀티 스트림 승인 스케쥴링

Country Status (8)

Country Link
US (1) US7606234B2 (ko)
EP (1) EP1889421B1 (ko)
KR (1) KR101242338B1 (ko)
CN (1) CN101375251B (ko)
AT (1) ATE525692T1 (ko)
DK (1) DK1889421T3 (ko)
ES (1) ES2371186T3 (ko)
WO (1) WO2006138472A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101402483B1 (ko) * 2012-09-25 2014-06-03 고려대학교 산학협력단 네트워크 전송 장치 및 방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7606234B2 (en) * 2005-06-14 2009-10-20 Microsoft Corporation Multi-stream acknowledgement scheduling
EP1943846B1 (en) * 2005-11-01 2010-04-21 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Method and arrangements in a radio communication system
US7944930B2 (en) * 2005-12-09 2011-05-17 Cisco Technology, Inc. Memory buffering with fast packet information access for a network device
WO2008148173A1 (en) * 2007-06-07 2008-12-11 Smart Internet Technology Crc Pty Ltd A system and method for improving throughput in a network device
EP2257888A4 (en) * 2008-02-20 2013-04-10 Novatel Wireless Inc SYSTEM AND METHOD FOR TRAFFIC PRIORIZATION
CN102067551B (zh) 2008-06-16 2014-04-16 艾利森电话股份有限公司 媒体流处理
US8194543B2 (en) * 2008-12-18 2012-06-05 Intel Mobile Communications GmbH Methods of data traffic shaping, apparatus and wireless device
US20100165838A1 (en) * 2008-12-30 2010-07-01 Yury Bakshi Method and apparatus for improving data throughput in a network
US20120327943A1 (en) * 2010-03-02 2012-12-27 Udayan Kanade Media Transmission Over a Data Network
FR3037750A1 (fr) * 2015-06-18 2016-12-23 Orange Procede et dispositif de gestion de paquets dans une connexion multi-flux et multi-protocole
JP6323480B2 (ja) 2016-03-02 2018-05-16 住友電気工業株式会社 プログラム更新システム、プログラム更新方法及びコンピュータプログラム

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5612950A (en) * 1993-05-27 1997-03-18 Rockwell International Corporation Managing communication on an unstable error-prone channel
US6247061B1 (en) * 1998-06-09 2001-06-12 Microsoft Corporation Method and computer program product for scheduling network communication packets originating from different flows having unique service requirements
US6452915B1 (en) * 1998-07-10 2002-09-17 Malibu Networks, Inc. IP-flow classification in a wireless point to multi-point (PTMP) transmission system
US6351454B1 (en) * 1998-07-24 2002-02-26 Cisco Technology, Inc. Apparatus and method for maintaining packet ordering over parallel links of a crossbar based switch fabric
FI105641B (fi) * 1998-08-10 2000-09-15 Nokia Mobile Phones Ltd Resurssien varaus pakettimuotoisessa tiedonsiirrossa
US6289224B1 (en) * 1998-10-29 2001-09-11 Motorola, Inc. Method and apparatus for starting an acknowledgment timer
US6868061B1 (en) * 1998-12-10 2005-03-15 Nokia Corporation System and method for pre-filtering low priority packets at network nodes in a network service class utilizing a priority-based quality of service
US6411617B1 (en) * 1998-12-10 2002-06-25 Nokia Telecommunications, Oy System and method for managing data traffic associated with various quality of service principles using a conventional network node switch
US6791989B1 (en) * 1999-12-30 2004-09-14 Agilent Technologies, Inc. Fibre channel interface controller that performs non-blocking output and input of fibre channel data frames and acknowledgement frames to and from a fibre channel
TW477133B (en) * 2000-04-01 2002-02-21 Via Tech Inc Method for solving network congestion and Ethernet switch controller using the same
US6657962B1 (en) * 2000-04-10 2003-12-02 International Business Machines Corporation Method and system for managing congestion in a network
US7140016B2 (en) * 2000-11-29 2006-11-21 Texas Instruments Incorporated Media accelerator quality of service
DE60102071T2 (de) * 2001-03-30 2004-07-22 Alcatel Verfahren zum Multiplexen zweier Datenflüsse auf einen Funkkommunikationskanal und dazugehörender Sender
US20030056000A1 (en) * 2001-07-26 2003-03-20 Nishan Systems, Inc. Transfer ready frame reordering
US7284047B2 (en) * 2001-11-08 2007-10-16 Microsoft Corporation System and method for controlling network demand via congestion pricing
US20030103453A1 (en) * 2001-12-05 2003-06-05 Broadweb Corporation System and method for managing flow bandwidth utilization in a packet communication environment
US7039013B2 (en) * 2001-12-31 2006-05-02 Nokia Corporation Packet flow control method and device
FI20020673A0 (fi) * 2002-04-09 2002-04-09 Nokia Corp Ajantasaisen pakettidatan pakettien ajoittaminen
US7142513B2 (en) * 2002-05-23 2006-11-28 Yea-Li Sun Method and multi-queue packet scheduling system for managing network packet traffic with minimum performance guarantees and maximum service rate control
US7792121B2 (en) * 2003-01-03 2010-09-07 Microsoft Corporation Frame protocol and scheduling system
US7155236B2 (en) * 2003-02-18 2006-12-26 Qualcomm Incorporated Scheduled and autonomous transmission and acknowledgement
JPWO2005046282A1 (ja) * 2003-11-07 2007-05-24 三菱電機株式会社 移動局、通信システム、通信制御方法
US7751421B2 (en) * 2004-12-29 2010-07-06 Alcatel Lucent Traffic generator and monitor
US7606234B2 (en) * 2005-06-14 2009-10-20 Microsoft Corporation Multi-stream acknowledgement scheduling
US7796550B2 (en) * 2005-12-13 2010-09-14 General Instrument Corporation Method and apparatus for packet scheduling in a wireless network
US20080089351A1 (en) * 2006-10-13 2008-04-17 Chunfeng Hu Flow control in communication networks

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101402483B1 (ko) * 2012-09-25 2014-06-03 고려대학교 산학협력단 네트워크 전송 장치 및 방법

Also Published As

Publication number Publication date
EP1889421B1 (en) 2011-09-21
EP1889421A4 (en) 2010-04-07
US7606234B2 (en) 2009-10-20
WO2006138472A3 (en) 2008-07-17
CN101375251B (zh) 2012-03-21
US20070002863A1 (en) 2007-01-04
DK1889421T3 (da) 2011-11-21
ATE525692T1 (de) 2011-10-15
ES2371186T3 (es) 2011-12-28
CN101375251A (zh) 2009-02-25
KR101242338B1 (ko) 2013-03-11
EP1889421A2 (en) 2008-02-20
WO2006138472A2 (en) 2006-12-28

Similar Documents

Publication Publication Date Title
KR101242338B1 (ko) 멀티 스트림 승인 스케쥴링
Vamanan et al. Deadline-aware datacenter tcp (d2tcp)
US7987302B2 (en) Techniques for managing priority queues and escalation considerations in USB wireless communication systems
US9485184B2 (en) Congestion control for delay sensitive applications
JP6178523B2 (ja) 要求マネージャおよび接続マネージャの機能を実装するトランスポートアクセラレータ
RU2491737C2 (ru) Управление памятью для высокоскоростного управления доступом к среде
US8738986B2 (en) Remote presentation over lossy transport with forward error correction
JP3321043B2 (ja) Tcpネットワーク内のデータ端末
JP4719001B2 (ja) ワイヤレス通信システムにおける優先キューおよびエスカレーションの管理
US8144719B2 (en) Methods and system to manage data traffic
US7016971B1 (en) Congestion management in a distributed computer system multiplying current variable injection rate with a constant to set new variable injection rate at source node
US6981052B1 (en) Dynamic behavioral queue classification and weighting
US8036125B2 (en) Apparatus and method for transmitting multimedia stream using virtual machines based on a number of transmissions at a data rate
KR20170060118A (ko) 분류된 네트워크 스트림의 관리
US9509620B2 (en) Deadline-aware network protocol
CN115834556B (zh) 数据传输方法、系统、设备、存储介质及程序产品
Guo et al. IEEE SA Industry Connections-IEEE 802 Nendica Report: Intelligent Lossless Data Center Networks
EP4282152A1 (en) Systems and methods for push-based data communications
Wu et al. Potential performance bottleneck in Linux TCP
CN115190072B (zh) 激进传输协议和保守传输协议之间公平性的速率调节方法
Fan et al. Petabytes in Motion: Ultra High Speed Transport of Media Files: A Theoretical Study and its Engineering Practice of Aspera fasp
Das et al. A Dynamic Algorithm for Optimization of Network Traffic through Smart Network Switch Data Flow Management
Noroozi et al. Performance Evaluation of a New Scheduling Model Using Congestion Window Reservation
KR101308182B1 (ko) 스트림 및 메모리 제어가 가능한 데이터 수신 장치 및 그의 방법, 그리고, 데이터 전송 장치 및 방법
Mishra et al. A Study of Bandwidth Allocation Strategies for Interactive Image Applications

Legal Events

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

Payment date: 20160218

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 8