KR20150074018A - Tcp 매퍼를 위한 시스템 및 방법 - Google Patents

Tcp 매퍼를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20150074018A
KR20150074018A KR1020157011508A KR20157011508A KR20150074018A KR 20150074018 A KR20150074018 A KR 20150074018A KR 1020157011508 A KR1020157011508 A KR 1020157011508A KR 20157011508 A KR20157011508 A KR 20157011508A KR 20150074018 A KR20150074018 A KR 20150074018A
Authority
KR
South Korea
Prior art keywords
tcp
congestion control
traffic
mapper
incoming
Prior art date
Application number
KR1020157011508A
Other languages
English (en)
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
Priority claimed from US13/644,057 external-priority patent/US8630204B1/en
Application filed by 라이브코스 인코포레이티드 filed Critical 라이브코스 인코포레이티드
Publication of KR20150074018A publication Critical patent/KR20150074018A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • H04L1/203Details of error rate determination, e.g. BER, FER or WER
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • H04L1/205Arrangements for detecting or preventing errors in the information received using signal quality detector jitter monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
    • 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/11Identifying congestion
    • 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/12Avoiding congestion; Recovering from congestion
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms

Landscapes

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

Abstract

송신 제어 프로토콜(Transmission Control Protocol; TCP)을 이용하는 네트워크에서 트래픽의 정체 제어를 위한 시스템은, 하나 이상의 파라미터들을 갖는 복수의 TCP 정체 제어 프로그램들, TCP 정체 제어 프로그램들을 작동시키는 복수의 TCP 정체 제어 유닛들, 및 (a) 인커밍(incoming) TCP 트래픽 흐름이 발신(originate)된 애플리케이션 프로그램의 유형, (b) 인커밍 TCP 트래픽 흐름이 향하는(destined) 네트워크의 유형, (c) 네트워크 성능과 관련된 파라미터들, (d) 네트워크 제약(constraint)들, (e) 인커밍 TCP 트래픽 흐름의 근원지(source), 및 (f) 인커밍 TCP 트래픽 흐름의 목적지(destination) 중 적어도 하나에 기초하여 복수의 인커밍 TCP 트래픽 흐름들 중의 인커밍 TCP 트래픽 흐름을 TCP 정체 제어 유닛들에 매핑하도록 적응된 TCP 매퍼를 포함한다.

Description

TCP 매퍼를 위한 시스템 및 방법 {SYSTEM AND METHOD FOR A TCP MAPPER}
본 발명은 송신 제어 프로토콜(Transmission Control Protocol; TCP)을 이용하는 네트워크들에 관한 것이다.
일 실시예에 따르면, 송신 제어 프로토콜(TCP)을 이용하는 네트워크에서의 트래픽의 정체(congestion) 제어를 위한 시스템이 제공되며, 트래픽은 복수의 인커밍(incoming) TCP 트래픽 흐름(flow)들을 포함한다. 시스템은 하나 이상의 파라미터들을 갖는 복수의 TCP 정체 제어 프로그램들, 복수의 TCP 정체 제어 프로그램들 중의 하나의 제어 프로그램을 각각 작동시키는 복수의 TCP 정체 제어 유닛들, 및 복수의 인커밍 TCP 트래픽 흐름들 중의 제1 인커밍 TCP 트래픽 흐름을, 복수의 TCP 정체 제어 유닛들 중에서, 복수의 TCP 정체 제어 프로그램들 중의 제1 TCP 정체 제어 프로그램을 작동시키는 제1 TCP 정체 제어 유닛에 매핑하도록 적응된 TCP 매퍼를 포함한다. 이 매핑은:
(a) 인커밍 TCP 트래픽 흐름이 발신(originate)된 애플리케이션 프로그램의 유형,
(b) 인커밍 TCP 트래픽 흐름이 향하는(destined) 네트워크의 유형,
(c) 네트워크 성능과 관련된 파라미터들,
(d) 네트워크 제약(constraint)들,
(e) 인커밍 TCP 트래픽 흐름의 근원지(source), 및
(f) 인커밍 TCP 트래픽 흐름의 목적지(destination)
중 적어도 하나에 기초한다.
인커밍 TCP 트래픽 흐름은 TCP 전송 호스트로부터 발신될 수 있다.
일 구현예는 호스트에 의해 참조(see)된 왕복 시간(round trip time; RTT)을 조정하고, 네트워크 성능과 관련된 파라미터들의 측정을 분석하는 TCP 전송 호스트를 포함하고, 이 측정은 TCP 매퍼 및 외부 센서들 중 적어도 하나에 의해 수행된다. 시스템은 하나 이상의 휴리스틱(heuristic)을 수행하며, 하나 이상의 휴리스틱의 결과들에 기초하여 제1 TCP 정체 제어 프로그램의 적어도 하나의 파라미터를 조정할 수 있다. 휴리스틱은 (a) 정체의 존재 및 지속을 결정하는 것, (b) TCP 호스트에 의해 송신된 트래픽 레이트(rate)의 분율(fraction)로서의 굿풋(goodput)을 결정하는 것, (c) TCP 호스트에 의해 송신된 트래픽의 단방향(one way) 지연들에서의 변경들을 결정하는 것, 및 (d) (ⅰ) 패킷간(inter packet) 도착 시간, (ⅱ) 확인응답 메시지간 도착 시간, (ⅲ) 버스트(burst) 내의 패킷들의 레이턴시(latency)의 변화, 및 (ⅳ) 버스트 내의 패킷들의 손실 레이트 중 적어도 하나를 이용하여 채널 용량을 추정하는 것 중 적어도 하나를 포함할 수 있다. 이 시스템은 정체의 존재 및 지속의 결정에 기초하여 패킷 손실 이벤트의 원인을 또한 식별할 수 있다.
TCP 전송 호스트를 포함하는 시스템에서, TCP 매퍼는 TCP 호스트에 신호들을 전송할 수 있고, 그러한 신호들 중 적어도 하나는 손실 패킷의 재송신을 반복할 수 있다.
송신 제어 프로토콜(TCP)을 이용하는 네트워크에서의 트래픽의 정체 제어를 위한 방법이 제공되며, 트래픽은 하나 이상의 인커밍 TCP 트래픽 흐름들을 포함한다. 네트워크는 복수의 TCP 정체 제어 프로그램들 및 복수의 TCP 정체 제어 유닛들을 포함하며, 각각의 TCP 정체 제어 유닛은 복수의 TCP 정체 제어 프로그램들 중 하나의 제어 프로그램을 작동시킨다. 이 방법은 TCP 매퍼를 이용하여 하나 이상의 인커밍 TCP 트래픽 흐름들 중의 인커밍 TCP 트래픽 흐름을 복수의 TCP 정체 제어 프로그램들 중의 제1 TCP 정체 제어 프로그램에 매핑한다. 이 매핑은:
(a) 인커밍 TCP 트래픽 흐름이 발신된 애플리케이션 프로그램의 유형,
(b) 인커밍 TCP 트래픽 흐름이 향하는 네트워크의 유형,
(c) 네트워크 성능과 관련된 파라미터들,
(d) 네트워크 제약들,
(e) 인커밍 TCP 트래픽 흐름의 근원지, 및
(f) 인커밍 TCP 트래픽 흐름의 목적지
중 적어도 하나에 기초한다.
일 구현예에서, TCP 매퍼는 미드스트림(midstream) TCP 프록시이다.
본 발명은 첨부되는 도면들과 함께 이하의 설명을 참조함으로써 가장 잘 이해될 수 있다.
도 1은 하나의 TCP 전송 호스트 및 하나의 TCP 수신 호스트를 가진 일반적인 네트워크를 도시한다.
도 2는 TCP 매퍼가 포함된, 도 1의 네트워크를 도시한다.
도 3은 네트워크의 전송 및 수신 측에 TCP 매퍼들(105 및 205)이 있는 네트워크(103)를 도시한다.
도 4는 TCP 전송 호스트들(201A 내지 201M)이 하나의 매퍼에 연결되는, 또 다른 실시예를 도시한다.
도 5는 전송 호스트 매퍼 조합들(401A 내지 401K)이 네트워크(103)에 연결되는, 일 실시예를 도시한다.
도 6은 전송 호스트 매퍼 조합들(501A 내지 501L)을 가진 예시를 도시하며, 조합들(501A 내지 501K)은 단일 전송 호스트 매퍼 조합들이고; 조합(501L)은 다중 전송 호스트 매퍼 조합이다.
본 발명이 일정한 바람직한 실시예들과 함께 설명될 것이긴 하지만, 본 발명이 그러한 특정 실시예들에 한정되지 않는다는 것이 이해될 것이다. 반면에, 본 발명은 첨부된 특허청구범위에 의해 정의되는 본 발명의 사상 및 범위 내에 포함될 수 있는 모든 대안들, 변경들, 및 동등한 구성들을 포함하는 것으로 의도된다.
도 1은 TCP 전송 호스트(101)가 TCP 수신 호스트(102)에 네트워크(103)를 통해 TCP를 이용하여 트래픽을 전송하는, 일반적인 네트워크를 도시한다. TCP 전송 호스트(101)는 TCP 송신 큐(queue)(104)를 갖는다. 네트워크(103)는, 예를 들어, 단일 유선, 3G, 4G, 또는 Wi-Fi 네트워크일 수 있다. 일 실시예에서, 네트워크(103)는 유선, 3G, 4G, 또는 Wi-Fi 서브네트워크들을 또한 포함할 수 있다.
도 2는 TCP 매퍼(105)가 포함된, 도 1의 네트워크를 도시한다. TCP 매퍼(105)는 보통 TCP 수신 호스트 상에서 종단될 TCP 스트림들에 대한 미드스트림 TCP 프록시의 역할을 한다. TCP 매퍼(105)는 프로세싱 시스템(107)을 포함한다. TCP 매퍼(105)는 TCP 전송 호스트(101)로부터의 인커밍 TCP 트래픽 흐름들을 차단하고, TCP 매퍼 프로세싱 시스템(107) 내의 프로세서(106)는 각각의 인커밍 TCP 트래픽 흐름을 TCP 매퍼 프로세싱 시스템(107)에서의 TCP 정체 제어(congestion control; CC) 유닛들(108A 내지 108N) 중 하나에 매핑한다. 일 실시예에서, 각각의 CC 유닛은 상이한 정체 제어 프로그램을 작동시킨다. 또 다른 실시예에서, CC 유닛들의 서브세트는 동일한 프로그램을 작동시킬 수 있지만, 그 서브세트 내의 각각의 CC 유닛은 프로그램 내에서 이용되는 주어진 파라미터들의 서브세트를 조정 또는 구성(configure)하기만 할 수 있다. 또 다른 실시예에서, TCP 매퍼 프로세서(106)는, CC 유닛에 의해 작동되는 대응하는 TCP 정체 제어 프로그램에 대한 CC 유닛에 대해 이용 가능한 파라미터들을 조정하기 위해 각각의 CC 유닛과 협력한다. CC 프로그램들의 예시들은 이하에서 제공된다. 각각의 CC 유닛은, 송신을 기다리는 패킷들을 저장하는 데에 이용되는, 도 2에 도시된 관련 버퍼(109A 내지 109N)를 또한 갖는다. 일 실시예에서, TCP 매퍼(105)는, 예를 들어, 손실, 스루풋(throughput), 레이턴시, 대역폭, 지터(jitter), 및 굿풋과 같은, 네트워크 성능과 관련된 파라미터들을 측정하기 위해, 여러 개의 센서들(미도시)을 갖는다. 또 다른 실시예에서, TCP 매퍼는 분석을 수행하기 위해 이러한 파라미터들을 또한 이용한다. 이하에서 더욱 상세하게 설명될 바와 같이, 또 다른 실시예에서, TCP 매퍼는, 네트워크 제약들, 예를 들어, 우선순위화 및 트래픽 폴리싱(policing)이 네트워크에서 적용되고 있는지의 여부에 기초하여 매핑을 수행한다.
TCP 매퍼(105)는 여러 가지 이점들을 제공한다. 전송 호스트(101)는 최대 스루풋에 대응하는 단계에 도달하기 전에 하나 이상의 상이한 단계들을 거쳐 진행해야 한다. 또한, 단계들을 거치는 진행의 속도는 왕복 시간(RTT)에 의존한다. 일 실시예에서, 매퍼(105)는 분리되지만 전송 호스트(101)에 가깝게 배치된다. 일 실시예에서, 매퍼(105)와 전송 호스트(101) 사이의 RTT는, 전송 호스트(101)와 수신 호스트(102) 사이의 RTT의 분율인, 임계 RTTthresh 미만이다. RTTthresh는, 예를 들어, 과거 기록의 분석, 계산, 또는 네트워크 성능의 시뮬레이션을 통해, 설정될 수 있다. 매퍼(105)가 전송 호스트(101)와 가깝게 배치되기 때문에, 매퍼(105)에 의한 차단은 전송 호스트(101)에 의해 참조된 RTT를 감소시키고, 그에 따라 최대 스루풋에 대응하는 단계에 도달하기 전에 다양한 단계들을 거치는 TCP 전송 호스트(101)의 스루풋 진행을 가속화하는 효과를 갖는다.
또 다른 실시예에서, TCP 매퍼는 전송 호스트(101)의 요구조건에 최적으로 적합한 값으로 RTT를 조절한다. 예를 들어, 매퍼는 전송 호스트(101)에 의해 참조된 RTT의 변화를 감소시키기 위해 RTT를 조절할 수 있다. 대안으로, 일부 전송 호스트(101) 애플리게이션들은 이러한 애플리케이션들이 증가된 RTT를 참조할 때 보다 우수하게 작동되기 때문에, 매퍼는 여분의 지연들을 추가시킴으로써 RTT를 증가시킬 수 있다. 이는, 일부 운영 시스템들이 낮은 RTT가 측정되는 경우에 미확인된 데이터의 양을 제한하기 때문에, 유용하다.
다른 실시예에서, TCP 매퍼는 RTT의 계산을 제어하기 위해 조절들을 행한다. 예를 들어, RTT를 계산하기 위한 시작 값 및 종료 값은, 전송 호스트에서의 패킷들의 전송 및 수신 각각의 어떠한 "오버헤드"도 방지하기 위해 매퍼에 의해 조절된다. 또 다른 실시예에서, TCP 매퍼는 이러한 오버헤드들을 측정하거나 또는 이러한 오버헤드들을 측정하기 위해 전송 호스트와 통신하고, 기록된 RTT로부터 이러한 측정들을 추출한다. 이는 네트워크 내의 RTT의 더 정확한 추정을 제공한다.
또 다른 실시예에서, TCP 매퍼는 전송 호스트(101) 내에 배치되지만, 전송 호스트(101) TCP 엔진으로부터는 분리된다. 이는 RTT를 거의 0으로 감소시키고 최대 스루풋이 달성될 수 있는 단계에 도달하기 위해 TCP 단계들을 거치는 전송 호스트의 진행을 더 가속화하는 효과를 갖는다. 또 다른 실시예에서, TCP 매퍼는 전송 호스트(101) TCP 엔진을 대체한다.
TCP 매퍼(105)는, 예를 들어, 비제한적인 예시로서, 파일 이동 트래픽, 원격 데스크탑 프로토콜(Remote Desktop Protocol; RDP) 트래픽, 또는 스트리밍 트래픽과 같은, 트래픽이 발신된 애플리케이션을 인식할 수 있다. 일 실시예에서, TCP 매퍼는 패킷 헤더들 및 콘텐츠를 점검하는 것에 의해 발신측 애플리케이션을 인식한다. 또 다른 실시예에서, TCP 매퍼는 애플리케이션, 종단 시스템, 또는 다른 네트워크 디바이스에 의한 명시적인 통지를 통해 발신측 애플리케이션을 인식한다.
일 실시예에서, TCP 매퍼(105)는, 발신측 애플리케이션에 기초하여, 트래픽을 대응하는 정체 제어 유닛들에 매핑하고, 선택된 정체 제어 유닛에 대응하는 버퍼들(109A 내지 109N) 중 하나의 버퍼에 상이한 애플리케이션들로부터의 패킷들을 저장한다.
또 다른 실시예에서, TCP 매퍼는, 예를 들어, 목적지를 결정하기 위해 패킷 헤더들 또는 콘텐츠를 점검하는 것, 및, 트래픽이 향하는 네트워크의 유형, 예를 들어, 유선, 3G, 4G, 또는 Wi-Fi를 인식하는 것에 의해, 트래픽이 향하는 네트워크의 유형을 결정할 수 있다. 그 후, TCP 매퍼는, 트래픽이 향하는 네트워크의 유형에 기초하여 CC 유닛들(108A 내지 108N)에 트래픽을 매핑한다. 예를 들어, 유선, 3G, 4G, 또는 Wi-Fi 네트워크들에 대응하는 상이한 CC 유닛들이 있을 수 있다.
또 다른 실시예에서, TCP 매퍼는 공통 네트워크 디바이스를 통해 흐르는 다른 TCP 흐름들에 의해 이용되는 정체 제어 프로그램을 인지한다. 그 후 CC 유닛들(108A 내지 108N)에 대한 매핑은 이러한 다른 흐름들에 의해 이용되는 정체 제어 프로그램에 의존한다. 예를 들어, TCP 매퍼가 인커밍 흐름으로부터의 트래픽을 매핑할 필요가 있고, 많은 다른 인커밍 흐름들이 TCP 리노(Reno) 프로그램을 이용하여 호스트들에 의해 전송된다고 결정하는 경우, TCP 매퍼는 인커밍 흐름으로부터의 트래픽을 TCP CUBIC 프로그램에 매핑할 수 있다.
TCP 매퍼는 다양한 방식들로 네트워크에서 이용되고 있는 다른 정체 제어 프로그램들을 결정할 수 있다. 일 실시예에서, TCP 매퍼는, 정체 제어 프로그램의 알려진 동작에 기초하여, 알려지지 않은 정체 제어 프로그램의 정체 윈도우(window) 크기 진화(evolution)를 기존의 정체 제어 프로그램의 정체 윈도우 크기 진화와 상관시킬 수 있다.
또 다른 실시예에서, TCP 매퍼는, 주어진 RTT 동안의 플라이트(flight)에서의 바이트들의 양인, 인플라이트(inflight) 윈도우의 진화를 샘플링하고; 불연속(discrete) RTT 크기의 시간 증분(increment)들을 가정할 때, 이 값이 시간에 따라 선형으로 증가함을 검출한다. 이에 기초하여, TCP 매퍼는 적절한 정확도로 TCP RENO 정체 제어 프로그램이 이용되고 있다고 결정한다.
또 다른 실시예에서, TCP 매퍼는, 인플라이트 윈도우의 진화를 샘플링하기 위해, 더 높은 샘플링 레이트들을 이용하고, 손실 이벤트들 사이의 곡선의 형태가, 시간 및 진폭에 있어서 편향된, 삼차 함수(cubic function)의 형태라고 결정한다. 이에 기초하여, TCP 매퍼는 적절한 정확도로 TCP CUBIC 정체 제어 프로그램이 이용되고 있다고 결정한다.
또 다른 실시예에서, TCP 매퍼는 프로빙(probing) 방법들에 기초하여 정체 제어 프로그램들을 식별하기 위해 알려진 방법들을 이용한다 (예를 들어, http://cnds.eecs.jacobs-university.de/courses/nds-2009/feyzabadi-report.pdf에 있는 S.S. Feyzabadi의 "능동 프로빙을 이용한 TCP 정체 제어 매커니즘들의 식별" 참조).
또 다른 실시예에서, 호스트에 의해 이용되고 있는 TCP 정체 제어 프로그램을 추론한 이후에, TCP 매퍼는, 현재 관측된 네트워크 상태들을 고려해 볼 때, 이 제어 프로그램이 해당 호스트로부터 발신된 흐름들에 적합한지의 여부를 또한 결정한다. 적합하지 않다면, TCP 매퍼는 그러한 흐름들을 보다 적절한 정체 제어 프로그램에 매핑한다.
또 다른 실시예에서, TCP 매퍼는, 트래픽이 속하는 흐름의 근원지 또는 목적지 중 어느 하나에 기초하여 CC 유닛들(108A 내지 108N)에 트래픽을 매핑한다. TCP 매퍼는, 예를 들어, 패킷 헤더들 및 콘텐츠를 점검하는 것에 의해; 또는 애플리케이션, 종단 시스템, 또는 다른 네트워크 디바이스에 의한 명시적인 통지를 통해, 근원지 또는 목적지를 식별할 수 있다.
또 다른 실시예에서, TCP 매퍼는, 손실, 스루풋, 굿풋, 레이턴시, 패킷 지터, 및 대역폭과 같은 네트워크 성능과 관련되는 파라미터들의 측정에 기초하여 CC 유닛들(108A 내지 108N)에 트래픽을 매핑한다. 일 실시예에서, 이러한 파라미터 측정은 TCP 매퍼(105) 내의 센서들에 의해 취해진다. 그러나, 일정한 파라미터들은 수신 측에서만 측정될 수 있으므로, 또 다른 실시예에서, 이러한 네트워크 성능은, 예를 들어, 수신 측의 외부 센서들에 의해 외부에서 측정되고, 대역내(in-band) 기술 또는 대역외(out-of-band) 기술 중 어느 하나를 통해 TCP 매퍼(105)에 전달된다.
또 다른 실시예에서, TCP 매퍼는 분석을 수행하기 위해 이러한 측정치들을 이용하고, 이러한 분석의 결과들에 기초하여 매핑 결정들을 행한다. 예를 들어, TCP 매퍼는, 다음의 방식으로, 네트워크가 정체되는지의 여부, 및 정체의 본질을 결정하기 위해 이러한 측정치들을 이용할 수 있다: 주어진 채널에서의 모든 흐름들의 총 비트레이트(bitrate)가 채널 용량의 한계에 도달할 때, 채널이 정체되었다라고 말한다. 이러한 정체의 지속은 결과적인 정상 상태(steady-state)를 분석하는 것 및 시간이 지남에 따른 손실 및 레이턴시의 진화를 매핑 아웃하는 것뿐만 아니라; 그 둘 사이의 상관 관계에 의해 결정될 수 있다. 또 다른 실시예에서, 전술한 기술들과 같은 휴리스틱 기술 또는 휴리스틱은 외부 모듈에 의해 수행된다. 그 후, 이러한 분석의 결과들에 기초하여, TCP 매퍼는 CC 유닛들 중의 하나의 CC 유닛에 트래픽을 매핑한다.
또 다른 실시예에서, TCP 매퍼는, 네트워크 내의 다른 유형들의 트래픽에 대한 일정한 유형들의 트래픽의 우선순위화; 및 트래픽 폴리싱의 존재와 같은 네트워크 제약들에 기초하여 CC 유닛들(108A 내지 108N)에 트래픽을 매핑한다. 일 실시예에서, TCP 매퍼는 그러한 제약들의 존재를 자동 검출할 수 있다. 예를 들어, TCP 매퍼는, 인터넷 프로토콜 차등화 서비스 코드 포인트(Internet Protocol Differentiated Services Code Point; IP DSCP) 비트들과 같은 패킷들의 다양한 양상들을 검토하는 것 또는 매체 액세스 제어(Media Access Control; MAC) 헤더들에서의 우선순위 비트들을 검토하는 것에 의해, 우선순위화가 이용되고 있는지의 여부를 검출할 수 있다. TCP 매퍼는 주어진 TCP 스트림이 "애플리케이션 제한적"인 때를, 또는 다시 말해서, CC 프로그램의 현재 상태에 의해 허용되는 최대 대역폭을 이용하지 않는 것을, 또한 검출할 수 있다. 해당 흐름이 "애플리케이션 제한적"인지 또는 우선순위화 정책들에 의해 제한되고 있는지의 여부를 분석하는 것에 의해, TCP 매퍼는 적절한 CC 프로그램을 선택할 수 있다. 대안으로, TCP 매퍼는 이러한 네트워크 제약들을 고려하도록 명시적으로 프로그래밍될 수 있다. 예를 들어, 매퍼는, 일정한 유형들의 트래픽이 다른 유형들의 트래픽에 우선화될 것임을 인식하도록 사용자에 의해 프로그래밍될 수 있다. 유사하게, 관련 데이터는 사용자에 의해 폴리싱 계약(contract)들로부터 추출되고 그 후 사용자에 의해 TCP 매퍼로 명시적으로 프로그래밍될 수 있다. 매핑 결정들은 그 후 이 데이터에 기초하여 이루어진다.
다른 실시예에서, TCP 매퍼는,
- 발신측 애플리케이션;
- 트래픽이 향하는 네트워크의 유형;
- 트래픽이 속하는 흐름의 근원지;
- 트래픽이 속하는 흐름의 목적지;
- 네트워크 성능과 관련된 파라미터들;
- 네트워크 제약들
중 둘 이상에 기초하여 CC 유닛들(108A 내지 108N)에 트래픽을 매핑한다.
앞서 설명된 바와 같이, 일 실시예에서, 각각의 CC 유닛은 상이한 정체 제어 프로그램을 작동시킨다. 또 다른 실시예에서, CC 유닛들의 서브세트는 동일한 프로그램을 작동시킬 수 있지만, 그 서브세트 내의 각각의 CC 유닛은 프로그램 내에서 이용되는 파라미터들의 주어진 서브세트를 조정 또는 구성하기만 할 수 있다. 또 다른 실시예에서, TCP 매퍼 프로세서(106)는, CC 유닛에 의해 작동되는 대응하는 TCP 정체 제어 프로그램에 대한 CC 유닛에 대해 이용 가능한 파라미터들을 조정하기 위해 각각의 CC 유닛과 협력한다.
매핑은 다양한 방식들로 수행될 수 있다. 일 실시예에서, 참조표(lookup table) 엔트리가 존재하지 않는 경우에 정의된 디폴트 CC 유닛이 이용되는 것과 더불어, TCP 포트 번호들을 CC 유닛들에 매핑하는 데에 참조표가 이용될 수 있다. 다른 참조표들은 근원지 및 목적지 IP 주소들 및 다른 IP 및 TCP 헤더 값들을 타겟 CC 유닛들에 매핑할 수 있다. 또 다른 실시예에서, 매칭이 발견될 때까지 복수의 참조표들이 순서대로 이용될 수 있다.
앞서 설명된 바와 같이, 각각의 정체 제어 유닛은, 이동중에 있는 CC 유닛에 의해 작동되는 정체 제어 프로그램에 대한 CC 유닛에 대해 이용 가능한 파라미터들을 조정할 수 있으므로, 각각의 흐름 유형에 대한 제약들(레이턴시, 대역폭, 지터)이 만족된다. 예시로서, CC 유닛이 TCP CUBIC을 이용하는 경우, 참조 시상수들 및 전체 스케일링(scaling) 인자(factor)들이 조절된 파라미터들일 수 있다. 여러 조정 접근법들이 이용될 수 있다. 일 실시예에서, 조정은, 손실, 스루풋, 굿풋, 레이턴시, 패킷 지터, 및 대역폭과 같은 네트워크 성능과 관련된 파라미터들의 측정에 기초할 수 있다. 측정된 네트워크 성능 관련 메트릭(metric)들 및 조정 파라미터들을 포함하는 참조표가 이용될 수 있다. 이러한 메트릭들은 패킷 손실, 레이턴시, 지터, 스루풋, 굿풋, 및 다른 측정 가능한 네트워크 통계들을 포함할 수 있다. 또 다른 실시예에서, 버퍼 채움(fill) 레벨 및 타이머 값들과 같은 내부 CC 메트릭들을 조정 파라미터들과 관련시키는 참조표가 이용될 수 있다. 또 다른 실시예에서, TCP 매퍼 프로세서(106)는, 앞서 주어진 TCP CUBIC 예시에서와 같이, CC 유닛에 의해 작동되는 대응하는 TCP 정체 제어 프로그램에 대한 CC 유닛에 대해 이용 가능한 파라미터들을 조정하기 위해 각각의 CC 유닛과 협력한다. 초기 파라미터 값들은 과거의 측정에 기초하여 계산될 수 있으며 그 후 새로운 측정이 이루어짐에 따라 더 조정된다.
또 다른 실시예에서, TCP 매퍼는 분석을 수행하기 위해 이러한 측정치들을 이용하고, 분석의 결과들에 기초하여 조정을 수행한다. 앞서 설명된 바와 같이, TCP 매퍼는, 예를 들어, 네트워크가 지속적으로 정체되는지의 여부를 결정하기 위해 이러한 측정치들을 이용할 수 있다. TCP 매퍼는 그 후 그에 맞춰 조정을 수행할 수 있다.
또 다른 실시예에서, TCP 매퍼는 파라미터들을 적절하게 조정하기 위해 다른 휴리스틱을 이용한다. 달성된 굿풋, 병목(bottleneck) 링크 버퍼 용량, 및 채널 용량과 같은 측정치들이 분석되고, 이러한 휴리스틱에서 이용된다. 휴리스틱의 이용으로부터의 결과들은 파라미터들을 조정하는 데에 이용된다. 일 실시예에서, 휴리스틱은 외부 모듈에 의해 수행된다.
또 다른 예시에서, 휴리스틱은 정체 이벤트로 인한 네크워크 손실과 임의의 이벤트로 인한 네트워크 손실 간의 차별화에 이용된다. 정체의 예시를 언급하면, 지속적인 정체 기간의 시작이 일단 식별되면, 이러한 지속적인 정체 기간 동안의 패킷 손실 이벤트들은 임의적인 원인들보다는 정체로 인한 것일 가능성이 높으며, 이러한 상황대로 식별될 수 있다. 유사하게, 비정체 기간 동안에, 손실 이벤트들은 임의적인 이벤트들일 가능성이 더 높다. 이 휴리스틱을 적용하는 것으로부터 획득된 결과들에 기초하여, 매퍼는 그에 맞춰 파라미터들의 조정을 수행한다. 예시로서, 일 실시예에서, 파라미터들 중 하나가 정체 윈도우이고 손실 이벤트가 정체로 인한 것이라기보다는 임의의 이벤트이라고 결정되는 경우, 매퍼는 CC 프로그램에 정체 윈도우를 감소시키지 말라는 지시를 전송한다.
휴리스틱의 또 다른 예시는, 수신 호스트에 의해 확인되는 TCP 트래픽의 레이트, 즉, 굿풋을, 전송 호스트에 의해 송신되는 TCP 트래픽의 레이트의 분율로서 측정하는 것이다. 이러한 비율은 그 후 적절한 조정 파라미터를 선택하기 위해 참조표에서 조회될 것이다. 이는, 예를 들어, 네트워크 버퍼들의 오버플로우(overflow)를 방지하기 위해 수행된다. 참조표는, 예를 들어, 과거의 관측들, 컴퓨터 시뮬레이션들을 이용하거나, 또는 프와송(Poisson) 프로세스들과 같은 알려진 트래픽 도착 프로세스들에 대하여 잘 확립된 수학적 관계식들을 이용하여 구축된다.
휴리스틱의 또 다른 예시는, 병목 링크 버퍼에서의 대기(queued) 패킷들의 수를 추정하기 위해, 송신된 데이터의 단방향 지연들에서의 변경들의 측정치를 이용하는 것이다. 이전의 예시와 유사하게, 단방향 지연들에서의 변경들은 병목 링크 버퍼에서의 대기 패킷들의 수를 추정하기 위해 참조표에서 조회된다. 그러한 참조표는, 예를 들어, 과거의 관측들; 컴퓨터 시뮬레이션들; 또는 프와송 프로세스들과 같은 알려진 트래픽 도착 프로세스들에 대하여 잘 확립된 수학적 관계식들을 이용하는 것에 의해, 구축된다. 이 휴리스틱은 병목 링크 버퍼들에서의 긴 큐들에서 대기하는 패킷들에 의해 야기되는 레이턴시의 "블로트(bloat)"를 제한시키는 것을 돕는다.
휴리스틱의 다른 예시는 채널 용량을 추정하기 위해 패킷간 도착 시간을 이용하는 것이다. 확인응답 메시지간 도착 시간이 채널 용량을 추정하는 데에 또한 이용될 수 있다. 버스트 내의 패킷들의 레이턴시의 변화가 채널 용량을 추정하는 데에 이용될 수 있다. 버스트 내의 패킷들의 손실 레이트가 채널 용량을 추정하는 데에 또한 이용될 수 있다.
- 패킷간 도착 시간
- 확인응답 메시지간 도착 시간
- 버스트 내의 패킷들의 레이턴시의 변화
- 버스트 내의 패킷들의 손실 레이트
중 하나 이상이 채널 용량을 추정하는 데에 또한 이용될 수 있다. 이전의 예시와 유사하게, 이러한 측정치들 중 하나 이상이 채널 용량을 추정하기 위해 참조표에서 조회될 수 있다. 참조표는, 예를 들어, 과거의 관측들, 컴퓨터 시뮬레이션들, 또는 잘 알려진 수학적 관계식들을 이용하여, 구축된다. 그러한 추정들은 평균 트래픽 레이트가 추정된 링크 용량에 적절하게 매칭되는 것을 보장하는 데에 이용될 수 있다.
또 다른 실시예에서, 조정은 네트워크 제약들, 예를 들어, 네트워크 내의 다른 유형들의 트래픽에 대한 일정한 유형들의 트래픽의 우선순위화에 기초할 수 있다. 앞서 설명된 바와 같이, TCP 매퍼는 우선순위화와 같은 제약들이 이용되고 있는지의 여부를 자동 검출할 수 있다. 대안으로, TCP 매퍼는 매핑을 수행할 때 제약들을 고려하도록 사용자에 의해 명시적으로 프로그래밍될 수 있다. 앞서 설명된 바와 같이, 매퍼는 일정한 유형들의 트래픽의 우선순위가 다른 유형들의 트래픽에 우선화될 것을 고려하도록 프로그래밍될 수 있다. 유사하게, 관련 데이터가 사용자에 의해 폴리싱 계약들로부터 추출되고 그 후 사용자에 의해 TCP 매퍼로 명시적으로 프로그래밍될 수 있다. 조정 결정들은 그 후 이 데이터에 기초하여 행해진다.
또 다른 실시예에서, 앞서 설명된 바와 같이, TCP 매퍼는, 공통 네트워크 디바이스를 통해 흐르는 다른 TCP 흐름들에 의해 이용되는 정체 제어 프로그램들을 인지한다. 매퍼는, 앞서 개요를 서술한 바와 같이, 다양한 접근법들을 이용하여 정체 제어 프로그램들을 식별할 수 있다. 그 후, 매퍼는 네트워크에서 이용되고 있는 다른 정체 제어 프로그램들에 기초하여 조정을 수행할 수 있다.
또 다른 실시예에서, 주어진 흐름에 대한 CC 유닛으로의 매핑은 네트워크 성능 측정치에 기초하여 TCP 매퍼(105)에 의해 "즉각적으로" 스위칭될 수 있다. 흐름이 제1 CC 유닛에 현재 매핑되는 상황을 고려한다. 매핑은 그 후 동적으로 스위칭될 수 있으므로, 동일한 흐름에 속하는 트래픽에 대한 정체 제어는 그 후, 제1 CC 유닛과는 상이한, 제2 CC 유닛에 의해 처리될 것이다. 동적 스위칭 이후에, 해당 흐름에 속하는 트래픽은 제2 CC 유닛에 대응하는 버퍼에서 버퍼링될 것이다. 이는, 제1 CC 유닛의 버퍼로부터의 데이터를 제2 CC 유닛의 버퍼에 복사하고, 제2 CC 유닛에 대해 이용 가능한 파라미터들에 대한 초기 설정들을 계산하기 위해 가장 최근에 알려진 메트릭들을 이용하는 것에 의해 달성될 수 있다. 일 실시예에서, TCP 매퍼 프로세서(106)는 흐름 매핑을 제2 CC 유닛으로 동적으로 스위칭하고, 제1 CC 유닛으로부터의 흐름에 속하는 트래픽을 제2 CC 유닛의 버퍼에 복사한다. 제2 CC 유닛은 자신에 대해 이용 가능한 파라미터들에 대한 초기 설정들을 계산한다. 다른 실시예에서, TCP 매퍼 프로세서(106)는 파라미터들에 대한 초기 설정들을 계산하기 위해 제2 CC 유닛과 협력한다.
또 다른 접근법은, TCP 매퍼 프로세서(106)가 대안의 CC 유닛들에 의해 작동되는 CC 프로그램들에 대해 이용 가능한 파라미터들을 조정하기 위해 대안의 CC 유닛들과 동시에 협력하는 동안, TCP 매퍼 프로세서(106)가 제1 CC 유닛에 의해 작동되고 있는 CC 프로그램에 대한 제1 CC 유닛에 대해 이용 가능한 파라미터들을 조정하기 위해 제1 CC 유닛과 협력하는 것이다. 이러한 방식으로, 대안의 CC 유닛으로의 스위칭을 원할 때 파라미터들에 대한 올바른 설정들을 위한 준비가 이미 되어 있다.
정체 제어 프로그램 파라미터 조정은, 예를 들어, 손실, 스루풋, 굿풋, 레이턴시, 패킷 지터, 및 대역폭과 같은, 네트워크 성능 측정에 기초하여 수행된다. 앞서 설명된 바와 같이, 일 실시예에서, 이러한 네트워크 성능 측정은 TCP 매퍼(105) 내의 센서들에 의해 취해진다. 앞서 설명된 바와 같이, 일정한 네트워크 성능 측정은 수신 측에서만 측정될 수 있으므로, 또 다른 실시예에서, 이러한 네트워크 성능 측정은, 예를 들어, 수신 측의 외부 센서들에 의해, 외부에서 측정되고, 대역내 기술 또는 대역외 기술 중 어느 하나를 통해 TCP 매퍼(105)에 전달된다.
일 실시예에서, TCP 매퍼 프로세서(106)는 센서들로부터 결과들을 수집하고, 이러한 결과들을 개별 CC 유닛들(108A 내지 108N)에 분배한다. 각각의 CC 유닛에서, 유닛에 의해 작동되는 TCP 정체 제어 프로그램에 대한 파라미터들은 상이한 애플리케이션 요구조건 및 네트워크 성능과 관련된 파라미터들에 기초하여 CC 유닛에 의해 즉각적으로 조정된다. 또 다른 실시예에서, TCP 매퍼 프로세서(106)는 CC 유닛에 의해 작동되는 대응하는 TCP 정체 제어 프로그램에 대한 파라미터들을 조정하기 위해 각각의 CC 유닛과 협력한다.
다양한 유형들의 TCP 정체 제어 프로그램들이 작동될 수 있다. 일 실시예에서, CC 유닛들(108A 내지 108N) 중 하나는 TCP Hybla CC 프로그램을 작동시킨다. 그 후, 예를 들어, 500ms보다 훨씬 더 큰, 긴 RTT들을 갖는 네트워크들에 송신될 트래픽은, TCP Hybla CC 유닛과 관련된 버퍼를 향하고, 대응하는 TCP Hybla CC 유닛은 이 트래픽에 대한 정체 제어에 이용될 것이다. TCP Hybla CC 유닛의 관련 파라미터들의 작동 및 조정은 다른 곳에서 문서화되어 있다(예를 들어, C. Caini 등의, "TCP Hybla; 이종 네트워크들에 대한 TCP 인핸스먼트", 위성 통신 및 네트워킹에 관한 국제 저널, John Wiley & Sons, 22권, 5호, 547-566페이지, 2004년 9월, 참조).
또 다른 실시예에서, CC 유닛들(108A 내지 108N) 중 하나는 TCP CUBIC 정체 제어 프로그램을 작동시킨다. 그 후, 예를 들어, 고속 네트워크에 송신될 트래픽은, TCP CUBIC과 관련된 버퍼를 향하고, 대응하는 TCP CUBIC CC 유닛은 이 트래픽에 대한 정체 제어에 이용될 것이다. TCP CUBIC CC 유닛의 관련 파라미터들의 작동 및 조정은 다른 곳에 잘 문서화되어 있다(예를 들어, Ha 등의 "CUBIC: 새로운 TCP 친화적 고속 TCP 변형", ACM SIGOPS 운영 시스템 리뷰, 42권, 5호, 2008년 7월, 64-74페이지, 2008년, 참조).
또 다른 실시예에서, CC 유닛들(108A 내지 108N) 중 하나는 데이터 센터 TCP(Data Center TCP; DCTCP) 정체 제어 프로그램을 작동시킨다. 그 후, 예를 들어, 데이터 센터 네트워크에 송신될 트래픽; 또는 낮은 레이턴시 및 높은 대역폭을 필요로 하는 애플리케이션들로부터의 트래픽은; DCTCP와 관련된 버퍼를 향한다. 대응하는 DCTCP CC 유닛은 이 트래픽에 이용될 것이다. DCTCP CC 유닛의 관련 파라미터들의 작동 및 조정은 다른 곳에서 잘 문서화되어 있다(예를 들어, Alizadeh 등의 "DCTCP: 상품화된 데이터 센터에 대한 효율적인 패킷 이동", Proceedings of SIGCOMM 2010, 참조).
또 다른 실시예에서, CC 유닛들(108A 내지 108N) 중 하나는 TCP 웨스트우드+ 정체 제어 프로그램 또는 TCP 웨스트우드 CC 프로그램을 작동시킨다. 그 후, 예를 들어, 무선 네트워크에 송신될 트래픽은 TCP 웨스트우드+ 또는 TCP 웨스트우드와 관련된 버퍼를 향한다. 대응하는 TCP 웨스트우드+ CC 유닛은 그 후 이 트래픽에 대한 정체 제어에 이용될 것이다. 관련 파라미터들의 작동 및 조정은 다른 곳에서 잘 문서화되어 있다(예를 들어, Mascolo 등의 "TCP 웨스트우드: 무선 링크들을 통한 강화된 이동에 대한 대역폭 추정", Proc. of the ACM Mobicom 2001, 로마, 이탈리아, 2001년 7월 16-21일; 또는 Grieco 등의 "웨스트우드+, 뉴 리노 및 베가스 TCP 정체 제어의 성능 평가 및 비교", ACM 컴퓨터 통신 리뷰, 2004년 4월, 34(2)권, 참조).
또 다른 실시예에서, CC 유닛들(108A 내지 108N) 중 하나는 TCP 일리노이(Illinois) 정체 제어 프로그램 또는 TCP 일리노이 CC 프로그램을 작동시킨다. 그 후, 예를 들어, 고속의, 긴 RTT 네트워크에 송신될 트래픽은 TCP 일리노이와 관련된 버퍼를 향한다. 대응하는 TCP 일리노이 CC 유닛은 그 후 이 트래픽에 대한 정체 제어에 이용될 것이다. 관련 파라미터들의 작동 및 조정은 다른 곳에서 잘 문서화되어 있다(예를 들어, Liu 등의, "TCP 일리노이; 고속 네트워크들에 대한 손실 및 지연 기반 정체 제어 알고리즘", 417-440페이지, 성능 평가 65 (2008), 참조).
또 다른 실시예에서, CC 유닛들(108A 내지 108N) 중 하나는 FAST TCP CC 프로그램을 작동시킨다. 그 후, 예를 들어, 레이턴시 및 지터 민감성인 애플리케이션들로부터의 트래픽; 또는 고속의, 긴 RTT 네트워크에 송신될 트래픽은; FAST TCP와 관련된 버퍼를 향한다. 대응하는 FAST TCP CC 유닛은 그 후 이 트래픽에 대한 정체 제어에 이용될 것이다. 관련 파라미터들의 작동 및 조정은 다른 곳에서 잘 문서화되어 있다(예를 들어, Wei 등의, "FAST TCP; 동기, 아키텍쳐, 알고리즘들, 성능", IEEE/ACM 네트워크상의 거래들, 14권, 6호, 2006년 12월, 참조).
다른 유형들의 CC 프로그램들이 CC 유닛들 상에서 작동될 수 있다. 예를 들어, 측정된 레이턴시에 기초하여 윈도우 크기들을 동적으로 수정하는 CC 프로그램이 CC 유닛들(108A 내지 108N) 중 하나 상에서 또한 작동될 수 있다. 그 후, 예를 들어, 원격 데스크탑 프로토콜(RDP)와 같은 애플리케이션들로부터의 트래픽은 대응하는 버퍼를 향할 수 있고, CC 유닛은 이 유형의 트래픽에 대한 정체 제어에 이용될 것이다.
일 실시예에서, TCP 매퍼(105)는, 예를 들어:
- 스루풋 진행을 제어하고,
- 매퍼의 버퍼들의 오버플로우를 방지하고,
- 버퍼링으로 인한 레이턴시를 감소시키고,
- 정체 제어 프로그램을 변경하도록 명시적으로 요청
하기 위해, 전송 호스트에 신호들을 전송하는 것에 의해 흐름 적응(adaptation)을 또한 수행할 수 있다. 이러한 단계들은, 비제한적인 예시로서:
- 타임스탬프(timestamp)들을 변경하는 것에 의해 트래픽의 전송 레이트를 감소시키는 것,
- TCP 세그먼트들의 폐기를 시뮬레이팅하는 것,
- 윈도우 크기들을 수정하는 것,
- 스케일링 파라미터들을 수정하는 것, 및
- ACK들의 송신을 늦추는 것
중 하나 이상을 포함할 수 있다.
TCP 매퍼는, 2000년 3월, 인터넷 엔지니어링 태스크 포스(Internet Engineering Task Force; IETF) 코멘트 요청(Request for Comments; RFC) 2780, "인터넷 프로토콜 및 관련 헤더들에서의 값들에 대한 IANA 할당 가이드라인", S. Bradner 및 V. Paxson에 문서로 기록된 것과 같은 TCP 옵션들을 조정하기 위해 전송 호스트에 신호들을 또한 전송할 수 있다.
손실 패킷이 재송신되고, 재송신된 패킷 이후에 송신된 패킷들에 대응하는 선택적인 확인응답(selective acknowledgement; SACK)들이 전송 호스트에 의해 수신되는 경우, 재송신된 패킷이 또한 손실될 가능성이 높다. 또 다른 실시예에서, TCP 매퍼(105)는 재송신을 반복하기 위해 전송 호스트에 신호들을 전송할 수 있다.
일 실시예에서, 도 3에 도시된 바와 같이, 네트워크(103)의 전송 측 및 수신 측 각각에 TCP 매퍼들(105 및 205)이 있다. 그 후, 전송 매퍼 및 수신 매퍼(105 및 205)는 다양한 흐름 유형들에 대한 제약들이 만족되는 것을 보장하기 위해 서로 상호작용할 수 있다. 일 실시예에서, 수신 측 TCP 매퍼(205)는 앞서 개요를 서술한 흐름 적응 단계들을 수행할 수 있다. 또 다른 실시예에서, 전송 측 및 수신 측 TCP 매퍼들(105 및 205) 양자 모두가 앞서 개요를 서술한 흐름 적응 단계들을 수행한다. 또 다른 실시예에서, 전송 측 TCP 매퍼(105) 또는 수신 측 TCP 매퍼(205) 중 어느 하나만이 앞서 개요를 서술한 흐름 적응 단계들을 수행한다.
앞서 설명된 바와 같이, 비제한적인 예시로서, 예를 들어, 패킷 지터 및 대역폭을 포함하는, 일정한 네트워크 성능 측정치는, 수신 측에서만 측정될 수 있다. 일 실시예에서, 수신 측 TCP 매퍼(205)의 센서들은 이러한 파라미터들을 측정하는 데에 이용된다. 그 후, 수신 측 TCP 매퍼(205)는 대역내 기술 또는 대역외 기술 중 어느 하나를 이용하여 전송측 매퍼(105)와 통신한다. 수신 측 TCP 매퍼(205)에 의해 측정될 수 있는 네트워크 성능 측정치는, 비제한적인 예시로서, 관련 스트림의 수신 대역폭, 수신 중인 총 대역폭(모든 수신 스트림들의 합계), 패킷 지터, 비트 에러(error) 레이트, 패킷 에러 레이트, 및 패킷간 간격(spacing)을 포함한다. 전송측 TCP 매퍼(105)를 조정하는 데에 유용할 수 있는 다른 유용한 정보가 교환될 수 있다.
다른 정보가 대역내 기술 또는 대역외 기술을 이용하여 교환될 수 있다. 예를 들어, 네트워크(103)에서 발견되는 서브네트워크들의 유형에 대한 정보, 예를 들어, Wi-Fi, 3G, 및 유선; 다운스트림 네트워크 실패; 대기 지연들 등등이, 송신될 수 있다.
일 실시예에서, 전송 측의 TCP 매퍼(105)는 2개의 작동 모드들을 갖는다:
- "싱글-엔디드(single-ended)" - 대응하는 TCP 매퍼(205)가 수신 측에 없음
- "듀얼-엔디드(dual-ended)" - 대응하는 TCP 매퍼(205)가 수신 측에 있음
일 실시예에서, 듀얼 엔디드 모드의 전송 측 TCP 매퍼는 하나 이상의 TCP 확인응답들을 단일 TCP 확인응답으로 요약하도록 또한 구성된다. 이는 여러 확인응답들을 전송하는 것이 네트워크 성능을 감소시킬 수 있는 네트워크들에서 유리하다. 또 다른 실시예에서, 수신 측 TCP 매퍼는, 단일 TCP 확인응답을 받아들이고, 단일 TCP 확인응답으로부터 하나 이상의 TCP 확인응답들을 도출하며, 단일 TCP 확인응답으로부터의 하나 이상의 도출된 TCP 확인응답들을 송신할 수 있다. 일 실시예에서, 요약 및 도출은 양자 모두 TCP 정체 제어 프로그램들 중 하나 내에서 수행된다.
도 4는 TCP 전송 호스트들(201A 내지 201M)이 동일한 매퍼(305)에 연결된, 또 다른 실시예를 도시한다. 이 경우에, 매퍼(305)는 여러 상이한 호스트들로부터의 흐름들을 모으고 프로세싱한다. 이는, 예를 들어, 오피스에 대응할 수 있다.
도 5는 여러 전송 호스트 매퍼 조합들(401A 내지 401K)이 있는, 또 다른 실시예를 도시한다. 호스트 매퍼 조합(401A)은 TCP 전송 호스트(401AA) 및 매퍼(401AB)를 포함하고; 호스트 매퍼 조합(401B)은 TCP 전송 호스트(401BA) 및 매퍼(401BB)를 포함하며; 이런 식으로 TCP 전송 호스트(401KA) 및 매퍼(401KB)를 포함하는 호스트 매퍼 조합(401K)까지 계속된다. 매퍼들(401AB 내지 401KB)은 제어 네트워크(411)에 연결되며 서로 상호작용할 수 있다. 일 실시예에서, 매퍼들(401AB 내지 401KB)은 분산식으로 서로 상호작용한다. 또 다른 실시예에서, 예를 들어, 매퍼들(401AB 내지 401KB) 중 하나가 마스터 매퍼로 간주되는, 집중식 제어가 있다. 또 다른 실시예에서, 마스터 매퍼의 프로세서는 다른 매퍼들의 작동을 조정하는 역할을 추가적으로 수행한다. 또 다른 실시예에서, 집중식 제어는, TCP 매퍼들과 분리된, 전용 시스템에 의해 제공된다. 일 실시예에서, 이 전용 시스템은 제어 네트워크(411) 내에 상주할 수 있다. 또 다른 실시예에서, 이 전용 시스템은 제어 네트워크(411)의 외부에 있을 수 있다.
추가적인 조합들이 또한 가능하다. 도 6에서는 여러 전송 호스트 매퍼 조합들(501A, 501B, … 501K, 501L)이 있는 하나의 "하이브리드" 예시가 도시된다. 전송 호스트 매퍼 조합들(501A 내지 501K) 각각은 TCP 전송 호스트 및 매퍼를 포함한다. 호스트 매퍼 조합(501A)은 TCP 전송 호스트(501AA) 및 매퍼(501AB)를 포함하고; 호스트 매퍼 조합(501B)은 TCP 전송 호스트(501BA) 및 매퍼(501BB)를 포함하며; 이런 식으로 TCP 전송 호스트(501KA) 및 매퍼(501KB)를 포함하는 호스트 매퍼 조합(501K)까지 계속된다.
그러나, 호스트 매퍼 조합(501L)은, 도 4의 조합과 유사하게, 다중 전송 호스트 단일 매퍼 조합이다. 매퍼(501LB)는 전송 호스트들(501LA-A 내지 501LA-M)에 연결된다. 하나의 다중 전송 호스트 단일 매퍼 조합만이 도시되기는 하였지만, 다른 실시예들에서 하나보다 많은 다중 전송 호스트 단일 매퍼 조합들이 존재한다.
도 4, 도 5, 및 도 6에 도시된 구성들은 수신 측 상에서 또한 구현될 수 있다. 도 4와 유사하게, 단일 TCP 매퍼는 여러 수신 호스트들에 연결될 수 있다. 도 5와 유사하게, 여러 수신 호스트 매퍼 조합들이 있을 수 있다. 도 6과 유사하게, 여러 수신 호스트 매퍼 조합들이 있을 수 있으며, 이러한 조합들 중 하나 이상은 여러 수신 호스트들을 포함할 수 있다. 전송 측의 TCP 매퍼들은 그 후 앞서 설명된 2개의 모드들 중의 하나의 모드로 설정될 수 있다.
또 다른 실시예에서, TCP 매퍼들은 네트워크 내의 다른 TCP 제어 디바이스들과 또한 상호작동할 수 있다. 제어 디바이스들 및 TCP 매퍼들은 서로 데이터를 교환하고 이것들을 작동을 위한 입력들로서 이용한다. 제어 디바이스들은, 단하나 또는 다른쪽 하나만이 있는 구성들에서 전송측 또는 수신측 TCP 매퍼들 중 어느 하나와; 또는 양자 모두가 있는 구성들에서 전송측 및 수신측 TCP 매퍼들 양자 모두와 상호작용할 수 있다.
또 다른 실시예에서, 도 2를 참조하면, 네트워크(103) 내의 서브네트워크 실패시에, TCP 매퍼(105)는, 전송 호스트(101)로부터 트래픽을 계속하여 수신하며, 트래픽을 전송하기 위해 네트워크(103) 내의 대안의 경로를 찾고, 매퍼(105) 내의 개별 TCP 정체 제어 프로그램들이 대안의 경로에 대한 조정을 수행하는 동안, 버퍼들(109A 내지 109N) 내에 트래픽을 저장할 것이다.
본 발명의 특정 실시예들 및 애플리케이션들이 예시 및 설명되기는 하였지만, 본 발명이 본원에 개시된 명확한 구조 및 구성요소들로 한정되는 것은 아니라는 점과, 첨부된 특허청구범위에서 정의되는 본 발명의 정신 및 범위에서 벗어나지 않으면서 다양한 변형들, 변경들, 및 변화들이 전술한 내용들로부터 명백할 수 있다는 점이 이해되어야 한다.

Claims (51)

  1. 송신 제어 프로토콜(Transmission Control Protocol; TCP)을 이용하며, 복수의 TCP 정체(congestion) 제어 프로그램들 및 복수의 TCP 정체 제어 유닛들을 포함하는 네트워크에서, 하나 이상의 인커밍(incoming) TCP 트래픽 흐름(flow)들을 포함하는 트래픽의 정체 제어를 위한 방법으로서, 각각의 TCP 정체 제어 유닛은 상기 복수의 TCP 정체 제어 프로그램들 중의 하나의 TCP 정체 제어 프로그램을 작동시키는 것인, 상기 트래픽 정체 제어 방법에 있어서,
    TCP 매퍼(mapper)를 이용하여 상기 하나 이상의 인커밍 TCP 트래픽 흐름들 중의 제1 인커밍 TCP 트래픽 흐름을 상기 복수의 TCP 정체 제어 프로그램들 중의 제1 TCP 정체 제어 프로그램에 매핑하는 단계
    를 포함하며, 상기 매핑은,
    (a) 상기 제1 인커밍 TCP 트래픽 흐름이 발신(originate)된 애플리케이션 프로그램의 유형,
    (b) 상기 제1 인커밍 TCP 트래픽 흐름이 향하는 네트워크의 유형,
    (c) 네트워크 성능과 관련된 파라미터들,
    (d) 네트워크 제약들,
    (e) 상기 제1 인커밍 TCP 트래픽 흐름의 근원지, 및
    (f) 상기 제1 인커밍 TCP 트래픽 흐름의 목적지
    중 적어도 하나에 기초하는 것인, 트래픽 정체 제어 방법.
  2. 제1항에 있어서,
    상기 제1 인커밍 TCP 트래픽 흐름은 TCP 전송 호스트로부터 발신된 것인, 트래픽 정체 제어 방법.
  3. 제2항에 있어서,
    상기 TCP 전송 호스트에 의해 참조되는 왕복 시간(round trip time; RTT)을 조정하는 단계를 더 포함하는, 트래픽 정체 제어 방법.
  4. 제2항에 있어서,
    상기 네트워크 성능과 관련된 파라미터들의 측정을 분석하는 단계를 더 포함하며, 상기 측정은 상기 TCP 매퍼 및 외부 센서들 중 적어도 하나에 의해 수행되는 것인, 트래픽 정체 제어 방법.
  5. 제4항에 있어서,
    하나 이상의 휴리스틱(heuristic)을 수행하는 단계; 및
    상기 하나 이상의 휴리스틱의 결과들에 기초하여 상기 제1 TCP 정체 제어 프로그램의 적어도 하나의 파라미터를 조정하는 단계를 더 포함하는, 트래픽 정체 제어 방법.
  6. 제5항에 있어서,
    상기 하나 이상의 휴리스틱은,
    정체의 존재 및 지속을 결정하는 단계;
    상기 TCP 전송 호스트에 의해 송신되는 트래픽의 레이트(rate)의 분율(fraction)로서 굿풋(goodput)을 결정하는 단계;
    상기 TCP 전송 호스트에 의해 송신되는 트래픽의 단방향(one way) 지연들에서의 변경들을 결정하는 단계; 및
    패킷간(inter packet) 도착 시간,
    확인응답 메시지간(inter acknowledgement message) 도착 시간,
    버스트(burst) 내의 패킷들의 레이턴시(latency)의 변화, 및
    버스트 내의 패킷들의 손실 레이트
    중 적어도 하나를 이용하여 채널 용량을 추정하는 단계
    중 적어도 하나를 포함하는 것인, 트래픽 정체 제어 방법.
  7. 제6항에 있어서,
    정체의 존재 및 지속의 결정에 기초하여 패킷 손실 이벤트의 원인을 식별하는 단계를 더 포함하는, 트래픽 정체 제어 방법.
  8. 제2항에 있어서,
    상기 TCP 매퍼가 상기 TCP 전송 호스트에 신호들을 전송하는 단계를 더 포함하는, 트래픽 정체 제어 방법.
  9. 제8항에 있어서,
    상기 TCP 매퍼가 손실 패킷의 재송신을 반복하기 위해 상기 TCP 전송 호스트에 신호를 전송하는 것인, 트래픽 정체 제어 방법.
  10. 송신 제어 프로토콜(TCP)을 이용하는 네트워크에서, 복수의 인커밍 TCP 트래픽 흐름들을 포함하는 트래픽의 정체 제어를 위한 시스템에 있어서,
    하나 이상의 파라미터들을 갖는 복수의 TCP 정체 제어 프로그램들,
    상기 복수의 TCP 정체 제어 프로그램들 중의 하나의 TCP 정체 제어 프로그램을 각각 작동시키는 복수의 TCP 정체 제어 유닛들, 및
    TCP 매퍼를 포함하며,
    상기 TCP 매퍼는,
    (a) 인커밍 TCP 트래픽 흐름이 발신된 애플리케이션 프로그램의 유형,
    (b) 인커밍 TCP 트래픽 흐름이 향하는 네트워크의 유형,
    (c) 네트워크 성능과 관련된 파라미터들,
    (d) 네트워크 제약들,
    (e) 상기 인커밍 TCP 트래픽 흐름의 근원지, 및
    (f) 상기 인커밍 TCP 트래픽 흐름의 목적지
    중 적어도 하나에 기초하여, 상기 복수의 인커밍 TCP 트래픽 흐름들 중의 제1 인커밍 TCP 트래픽 흐름을, 상기 복수의 TCP 정체 제어 유닛들 중에서, 상기 복수의 TCP 정체 제어 프로그램들 중의 제1 TCP 정체 제어 프로그램을 작동시키는 제1 TCP 정체 제어 유닛에 매핑하도록 적응된 것인, 트래픽 정체 제어 시스템.
  11. 제10항에 있어서,
    상기 제1 인커밍 TCP 트래픽 흐름은 TCP 전송 호스트로부터 발신된 것인, 트래픽 정체 제어 시스템.
  12. 제11항에 있어서,
    상기 TCP 매퍼는 상기 TCP 전송 호스트에 의해 참조된 왕복 시간을 조정하는 것인, 트래픽 정체 제어 시스템.
  13. 제11항에 있어서,
    상기 네트워크 성능과 관련된 파라미터들의 측정을 분석하는 것을 더 포함하고, 상기 측정은 상기 TCP 매퍼 및 외부 센서들 중 적어도 하나에 의해 수행되는 것인, 트래픽 정체 제어 시스템.
  14. 제13항에 있어서,
    하나 이상의 휴리스틱을 수행하는 것; 및
    상기 하나 이상의 휴리스틱의 결과들에 기초하여 상기 제1 TCP 정체 제어 프로그램의 적어도 하나의 파라미터를 조정하는 것을 더 포함하는, 트래픽 정체 제어 시스템.
  15. 제14항에 있어서,
    상기 하나 이상의 휴리스틱은,
    정체의 존재 및 지속을 결정하는 것;
    상기 TCP 전송 호스트에 의해 송신되는 트래픽의 레이트의 분율로서 굿풋을 결정하는 것;
    상기 TCP 전송 호스트에 의해 송신되는 트래픽의 단방향 지연들에서의 변경들을 결정하는 것; 및
    패킷간 도착 시간,
    확인응답 메시지간 도착 시간,
    패킷들의 버스트 내의 패킷들의 레이턴시의 변화, 및
    패킷들의 버스트 내의 패킷들의 손실 레이트
    중 적어도 하나를 이용하여 채널 용량을 추정하는 것
    중 적어도 하나를 포함하는 것인, 트래픽 정체 제어 시스템.
  16. 제15항에 있어서,
    정체의 존재 및 지속의 결정에 기초하여 패킷 손실 이벤트의 원인을 식별하는 것을 더 포함하는, 트래픽 정체 제어 시스템.
  17. 제11항에 있어서,
    상기 TCP 매퍼가 상기 TCP 전송 호스트에 신호들을 전송하는 것을 더 포함하는, 트래픽 정체 제어 시스템.
  18. 제17항에 있어서,
    상기 TCP 매퍼가 손실 패킷의 재송신을 반복하기 위해 상기 TCP 전송 호스트에 신호를 전송하는 것인, 트래픽 정체 제어 시스템.
  19. 송신 제어 프로토콜(TCP)을 이용하며, 하나 이상의 파라미터들을 갖는 복수의 TCP 정체 제어 프로그램들, 및 상기 복수의 TCP 정체 제어 프로그램들 중의 하나의 TCP 정체 제어 프로그램을 작동시키는 적어도 하나의 TCP 정체 제어 유닛을 포함하는 네트워크에서, 트래픽의 정체 제어를 위한 방법에 있어서,
    TCP 전송 호스트로부터 발신된 인커밍 TCP 트래픽 흐름을 차단(intercept)하는 단계;
    상기 차단된 인커밍 TCP 트래픽 흐름을 상기 적어도 하나의 TCP 정체 제어 유닛 중 어느 TCP 정체 제어 유닛에 매핑할지를 결정하는 단계;
    상기 차단된 인커밍 TCP 트래픽 흐름을 상기 적어도 하나의 TCP 정체 제어 프로그램들 중의 제1 TCP 정체 제어 프로그램에 매핑하는 단계로서, 상기 차단된 인커밍 TCP 트래픽 흐름을 상기 제1 TCP 정체 제어 프로그램에 매핑하는 단계는,
    (a) 상기 인커밍 TCP 트래픽 흐름이 발신된 애플리케이션 프로그램의 유형,
    (b) 상기 인커밍 TCP 트래픽 흐름이 향하는 네트워크의 유형,
    (c) 네트워크 성능과 관련된 파라미터들,
    (d) 네트워크 제약들,
    (e) 상기 인커밍 TCP 트래픽 흐름의 근원지, 및
    (f) 상기 인커밍 TCP 트래픽 흐름의 목적지
    중 적어도 하나에 기초한 것인, 상기 차단된 인커밍 TCP 트래픽 흐름을 상기 제1 TCP 정체 제어 프로그램에 매핑하는 단계; 및
    상기 매핑을, 제1 TCP 정체 제어 유닛으로부터 제2 TCP 정체 제어 유닛으로 동적으로 스위칭하는 단계를 포함하고;
    상기 차단 단계, 결정 단계, 매핑 단계, 및 동적 스위칭 단계는 TCP 미드스트림(midstream) 프록시로서 역할을 하는 TCP 매퍼에 의해 수행되는 것인, 트래픽 정체 제어 방법.
  20. 제19항에 있어서,
    상기 TCP 전송 호스트는 TCP 엔진을 포함하고;
    상기 TCP 매퍼 전체가 상기 TCP 전송 호스트 내에 위치되며;
    상기 TCP 매퍼는 상기 TCP 엔진으로부터 분리되어 있는 것인, 트래픽 정체 제어 방법.
  21. 제19항에 있어서,
    상기 TCP 매퍼 전체는 상기 TCP 전송 호스트로부터 분리된 디바이스 상에 위치되고;
    상기 디바이스는 상기 전송 호스트에 의해 참조된 왕복 시간을 감소시키기 위해 상기 전송 호스트에 가깝게 배치되는 것인, 트래픽 정체 제어 방법.
  22. 제20항에 있어서,
    상기 결정 단계는, 트래픽의 우선순위화, 및 트래픽 폴리싱(policing) 중 적어도 하나를 포함하는 네트워크 제약들에 기초하며;
    상기 TCP 매퍼에 의해, 상기 네트워크 제약들의 존재를 자동 검출하는 단계를 포함하는, 트래픽 정체 제어 방법.
  23. 제20항에 있어서,
    네트워크 성능과 관련된 파라미터들을 측정하는 단계; 및
    정체가 존재하는지의 여부를 결정하기 위해 상기 측정을 분석하는 단계를 더 포함하고;
    상기 분석 단계는,
    시간이 지남에 따른 손실 및 레이턴시의 진화(evolution)를 결정하는 단계와,
    손실과 레이턴시 사이의 상관성을 결정하는 단계를 포함하는,
    상기 정체의 지속을 결정하는 단계를 더 포함하고;
    상기 차단된 인커밍 TCP 트래픽 흐름을 매핑할 상기 복수의 TCP 정체 제어 유닛들의 결정은, 상기 분석에 기초하는 것인, 트래픽 정체 제어 방법.
  24. 제21항에 있어서,
    상기 결정 단계는, 트래픽의 우선순위화, 및 트래픽 폴리싱 중 적어도 하나를 포함하는 네트워크 제약들에 기초하는 것이고;
    상기 TCP 매퍼에 의해, 상기 네트워크 제약들의 존재를 자동 검출하는 단계를 포함하는, 트래픽 정체 제어 방법.
  25. 제21항에 있어서,
    네트워크 성능과 관련된 파라미터들을 측정하는 단계; 및
    정체가 존재하는지의 여부를 결정하기 위해 상기 측정을 분석하는 단계를 더 포함하고;
    상기 분석 단계는,
    시간이 지남에 따른 손실 및 레이턴시의 진화를 결정하는 단계와,
    손실과 레이턴시 사이의 상관성을 결정하는 단계를 포함하는,
    정체의 지속을 결정하는 단계를 더 포함하고;
    상기 차단된 인커밍 TCP 트래픽 흐름을 매핑할 상기 복수의 TCP 정체 제어 유닛들의 결정은, 상기 분석에 기초하는 것인, 트래픽 정체 제어 방법.
  26. 제19항에 있어서,
    상기 네트워크 제약들은, 트래픽의 우선순위화, 및 트래픽 폴리싱 중 적어도 하나를 포함하고;
    상기 TCP 매퍼에 의해, 상기 네트워크 제약들의 존재를 자동 검출하는 단계를 포함하는, 트래픽 정체 제어 방법.
  27. 제19항에 있어서,
    네트워크 성능과 관련된 파라미터들을 측정하는 단계; 및
    정체가 존재하는지의 여부를 결정하기 위해 상기 측정을 분석하는 단계를 더 포함하고;
    상기 결정은 네트워크 성능과 관련된 파라미터들의 측정의 분석에 기초하는 것인, 트래픽 정체 제어 방법.
  28. 제27항에 있어서,
    상기 분석 단계는 상기 정체의 지속을 결정하는 단계를 더 포함하고,
    상기 지속의 결정 단계는,
    시간이 지남에 따른 손실 및 레이턴시의 진화를 결정하는 단계; 및
    손실과 레이턴시 사이의 상관성을 결정하는 단계를 포함하는 것인, 트래픽 정체 제어 방법.
  29. 제19항에 있어서,
    상기 제2 TCP 정체 제어 유닛과 관련된 버퍼에서 상기 인커밍 TCP 트래픽 흐름을 버퍼링하는 단계를 더 포함하는, 트래픽 정체 제어 방법.
  30. 제19항에 있어서,
    상기 제2 TCP 정체 제어 유닛에서 작동하는 제2 TCP 정체 제어 프로그램의 적어도 하나의 파라미터를 조정하는 단계를 더 포함하는, 트래픽 정체 제어 방법.
  31. 제19항에 있어서,
    상기 인커밍 TCP 트래픽 흐름은 원격 데스크탑 프로토콜(Remote Desktop Protocol; RDP) 트래픽을 포함하고,
    상기 복수의 TCP 정체 제어 프로그램들 중의 적어도 하나의 TCP 정체 제어 프로그램은 RDP 트래픽에 대한 정체를 제어하는 것인, 트래픽 정체 제어 방법.
  32. 송신 제어 프로토콜(TCP)을 이용하며, 하나 이상의 파라미터들을 갖는 적어도 하나의 TCP 정체 제어 프로그램, 및 상기 적어도 하나의 TCP 정체 제어 프로그램들 중의 하나의 TCP 정체 제어 프로그램을 작동시키는 적어도 하나의 TCP 정체 제어 유닛을 포함하는 네트워크에서, 트래픽의 정체 제어를 위한 방법에 있어서,
    인커밍 TCP 트래픽 흐름을 차단하는 단계;
    상기 차단된 인커밍 TCP 트래픽 흐름을 상기 적어도 하나의 TCP 정체 제어 유닛 중의 어느 TCP 정체 제어 유닛에 매핑할지를 결정하는 단계;
    (a) 상기 인커밍 TCP 트래픽 흐름이 발신된 애플리케이션 프로그램의 유형,
    (b) 상기 인커밍 TCP 트래픽 흐름이 향하는 네트워크의 유형,
    (c) 네트워크 성능과 관련된 파라미터들,
    (d) 네트워크 제약들,
    (e) 상기 인커밍 TCP 트래픽 흐름의 근원지, 및
    (f) 상기 인커밍 TCP 트래픽 흐름의 목적지
    중 적어도 하나에 기초하여, 상기 차단된 인커밍 TCP 트래픽 흐름을 상기 적어도 하나의 TCP 정체 제어 프로그램들 중의 제1 TCP 정체 제어 프로그램에 매핑하는 단계;
    상기 적어도 하나의 TCP 정체 제어 프로그램의 하나 이상의 파라미터들 중 적어도 하나를 조정하는 단계로서, 상기 조정 단계는 트래픽의 우선순위화, 또는 트래픽 폴리싱 중 어느 하나를 포함하는 네트워크 제약들에 기초하는 것인, 상기 조정 단계; 및
    네트워크 제약들의 존재를 자동 검출하는 단계를 포함하고;
    상기 차단 단계, 결정 단계, 매핑 단계, 조정 단계, 및 자동 검출 단계는 TCP 미드스트림 프록시에 의해 수행되는 것인, 트래픽 정체 제어 방법.
  33. 제32항에 있어서,
    상기 인커밍 TCP 트래픽 흐름이 매핑되는, 제1 정체 제어 유닛과 관련된 버퍼에서 상기 인커밍 TCP 트래픽 흐름을 버퍼링하는 단계를 포함하는, 트래픽 정체 제어 방법.
  34. 제32항에 있어서,
    상기 방법은 복수의 TCP 정체 제어 프로그램들을 포함하고;
    상기 인커밍 TCP 트래픽 흐름은 원격 데스크탑 프로토콜(RDP) 트래픽을 포함하고, 상기 복수의 TCP 정체 제어 프로그램들 중의 적어도 하나의 TCP 정체 제어 프로그램은 RDP 트래픽에 대한 정체를 제어하며, 상기 매핑 단계는 상기 RDP 트래픽을 상기 RDP 트래픽에 대한 정체를 제어하는 상기 복수의 TCP 정체 제어 프로그램들 중의 적어도 하나의 TCP 정체 제어 프로그램에 매핑하는 단계를 포함하는 것인, 트래픽 정체 제어 방법.
  35. 제32항에 있어서,
    상기 방법은 복수의 TCP 정체 제어 프로그램들을 포함하고,
    상기 복수의 TCP 정체 제어 프로그램들 중의 하나의 TCP 정체 제어 프로그램은 TCP CUBIC 정체 제어 프로그램인 것인, 트래픽 정체 제어 방법.
  36. 송신 제어 프로토콜(TCP)를 이용하는 네트워크에서 트래픽의 정체 제어를 위한 시스템에 있어서,
    하나 이상의 파라미터들을 갖는 복수의 TCP 정체 제어 프로그램들;
    복수의 TCP 정체 제어 유닛들로서, 각각의 TCP 정체 제어 유닛은 상기 복수의 TCP 정체 제어 프로그램들 중의 하나의 TCP 정체 제어 프로그램을 작동시키는 것인, 상기 복수의 TCP 정체 제어 유닛들; 및
    미드스트림 TCP 프록시의 역할을 하는 TCP 매퍼를 포함하고;
    상기 TCP 매퍼는,
    인커밍 TCP 트래픽 흐름을 차단하고,
    상기 차단된 인커밍 TCP 트래픽 흐름을 상기 복수의 TCP 정체 제어 유닛들 중의 어느 TCP 정체 제어 유닛에 매핑할지를 결정하며,
    상기 차단된 인커밍 TCP 트래픽 흐름을 상기 복수의 TCP 정체 제어 유닛들 중의 제1 TCP 정체 제어 유닛에 매핑하고;
    상기 결정은,
    (a) 상기 인커밍 TCP 트래픽 흐름이 발신된 애플리케이션 프로그램의 유형,
    (b) 상기 인커밍 TCP 트래픽 흐름이 향하는 네트워크의 유형,
    (c) 네트워크 성능과 관련된 파라미터들,
    (d) 네트워크 제약들,
    (e) 상기 인커밍 TCP 트래픽 흐름의 근원지, 및
    (f) 상기 인커밍 TCP 트래픽 흐름의 목적지
    중 적어도 하나에 기초하며;
    상기 인커밍 TCP 트래픽 흐름은 TCP 전송 호스트로부터 발신된 것이며;
    상기 TCP 매퍼는 상기 매핑을 상기 제1 TCP 정체 제어 유닛으로부터 제2 TCP 정체 제어 유닛으로 동적으로 스위칭하는 것인, 트래픽 정체 제어 시스템.
  37. 제36항에 있어서,
    상기 TCP 전송 호스트는 TCP 엔진을 포함하고;
    상기 TCP 매퍼 전체는 상기 TCP 전송 호스트 내에 위치되며;
    상기 TCP 매퍼는 상기 TCP 엔진으로부터 분리되어 있는 것인, 트래픽 정체 제어 시스템.
  38. 제36항에 있어서,
    상기 TCP 매퍼 전체는 상기 TCP 전송 호스트로부터 분리된 디바이스 상에 위치되는 것이고;
    상기 디바이스는 상기 전송 호스트에 의해 참조된 왕복 시간을 감소시키기 위해 상기 전송 호스트에 가깝게 위치하는 것인, 트래픽 정체 제어 시스템.
  39. 제37항에 있어서,
    상기 결정은 트래픽의 우선순위화, 및 트래픽 폴리싱 중 적어도 하나를 포함하는 네트워크 제약들에 기초하는 것이고;
    상기 TCP 매퍼는 상기 네트워크 제약들의 존재를 자동 검출하는 것인, 트래픽 정체 제어 시스템.
  40. 제37항에 있어서,
    네트워크 성능과 관련된 파라미터들을 측정하는 것; 및
    정체가 존재하는지의 여부를 결정하기 위해 상기 측정을 분석하는 것을 더 포함하고;
    상기 분석은,
    시간이 지남에 따른 손실 및 레이턴시의 진화를 결정하는 것과,
    손실과 레이턴시 사이의 상관성을 결정하는 것을 포함하는,
    상기 정체의 지속을 결정하는 것을 더 포함하는 것이고;
    상기 차단된 인커밍 TCP 트래픽 흐름을 매핑할 상기 복수의 TCP 정체 제어 유닛들의 결정은, 상기 분석에 기초하는 것인, 트래픽 정체 제어 시스템.
  41. 제38항에 있어서,
    상기 결정은 트래픽의 우선순위화, 및 트래픽 폴리싱 중 적어도 하나를 포함하는 상기 네트워크 제약들에 기초하는 것이고;
    상기 TCP 매퍼는 상기 네트워크 제약들의 존재를 자동 검출하는 것인, 트래픽 정체 제어 시스템.
  42. 제38항에 있어서,
    네트워크 성능과 관련된 파라미터들을 측정하는 것;
    정체가 존재하는지의 여부를 결정하기 위해 상기 측정을 분석하는 것을 더 포함하고;
    상기 분석은,
    시간이 지남에 따른 손실 및 레이턴시의 진화를 결정하는 것과,
    손실과 레이턴시 사이의 상관성을 결정하는 것을 포함하는,
    상기 정체의 지속을 결정하는 것을 더 포함하는 것이고;
    상기 차단된 인커밍 TCP 트래픽 흐름을 매핑할 상기 복수의 TCP 정체 제어 유닛들의 결정은, 상기 분석에 기초하는 것인, 트래픽 정체 제어 시스템.
  43. 제36항에 있어서,
    상기 네트워크 제약들은 트래픽의 우선순위화, 및 트래픽 폴리싱 중 적어도 하나를 포함하는 것이고;
    상기 TCP 매퍼는 상기 네트워크 제약들의 존재를 자동 검출하는 것인, 트래픽 정체 제어 시스템.
  44. 제36항에 있어서,
    네트워크 성능과 관련된 파라미터들을 측정하는 것;
    정체가 존재하는지의 여부를 결정하기 위해 상기 측정을 분석하는 것을 더 포함하고;
    상기 결정은 네트워크 성능과 관련된 파라미터들의 측정의 분석에 기초하는 것인, 트래픽 정체 제어 시스템.
  45. 제44항에 있어서,
    상기 분석은 정체의 지속을 결정하는 것을 더 포함하는 것이고,
    상기 지속의 결정은,
    시간이 지남에 따른 손실 및 레이턴시의 진화를 결정하는 것, 및
    손실과 레이턴시 사이의 상관성을 결정하는 것을 포함하는 것인, 트래픽 정체 제어 시스템.
  46. 제36항에 있어서,
    상기 복수의 TCP 정체 제어 유닛들 각각은 관련된 버퍼를 가지며,
    상기 TCP 매퍼는 상기 인커밍 TCP 트래픽 흐름이 매핑되는 제1 TCP 정체 제어 유닛과 관련된 버퍼에 매핑된 인커밍 TCP 트래픽 흐름을 저장하는 것인, 트래픽 정체 제어 시스템.
  47. 제46항에 있어서,
    상기 TCP 매퍼가 상기 매핑을 상기 제1 TCP 정체 제어 유닛으로부터 제2 TCP 정체 제어 유닛으로 동적으로 스위칭한 이후에, 상기 TCP 매퍼는 상기 제2 TCP 정체 제어 유닛과 관련된 버퍼에 상기 매핑된 인커밍 TCP 트래픽 흐름을 저장하는 것인, 트래픽 정체 제어 시스템.
  48. 제36항에 있어서,
    상기 복수의 TCP 정체 제어 프로그램들 중의 적어도 하나의 TCP 정체 제어 프로그램은 TCP CUBIC인 것인, 트래픽 정체 제어 시스템.
  49. 제36항에 있어서,
    상기 TCP 매퍼는 상기 제1 TCP 정체 제어 유닛에 의해 작동되는 TCP 정체 제어 프로그램의 적어도 하나의 파라미터를 조정하며,
    상기 조정은 상기 네트워크 성능 및 상기 네트워크 제약들 중 적어도 하나와 관련된 파라미터들에 기초하는 것인, 트래픽 정체 제어 시스템.
  50. 제36항에 있어서,
    상기 TCP 매퍼는 제2 TCP 정체 제어 유닛에 의해 작동되는 TCP 정체 제어 프로그램의 적어도 하나의 파라미터를 조정하는 것이고,
    상기 조정은 상기 네트워크 성능 및 상기 네트워크 제약들 중 적어도 하나와 관련된 파라미터들에 기초하는 것인, 트래픽 정체 제어 시스템.
  51. 제36항에 있어서,
    상기 동적 스위칭은 네트워크 성능 측정에 기초하는 것인, 트래픽 정체 제어 시스템.
KR1020157011508A 2012-10-03 2013-09-26 Tcp 매퍼를 위한 시스템 및 방법 KR20150074018A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/644,057 2012-10-03
US13/644,057 US8630204B1 (en) 2012-10-03 2012-10-03 System and method for a TCP mapper
US13/799,110 US8711690B2 (en) 2012-10-03 2013-03-13 System and method for a TCP mapper
US13/799,110 2013-03-13
PCT/IB2013/058900 WO2014053969A1 (en) 2012-10-03 2013-09-26 System and method for a tcp mapper

Publications (1)

Publication Number Publication Date
KR20150074018A true KR20150074018A (ko) 2015-07-01

Family

ID=50385074

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157011508A KR20150074018A (ko) 2012-10-03 2013-09-26 Tcp 매퍼를 위한 시스템 및 방법

Country Status (5)

Country Link
US (4) US8711690B2 (ko)
EP (1) EP2904750A4 (ko)
KR (1) KR20150074018A (ko)
CN (1) CN104704783A (ko)
WO (1) WO2014053969A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10136355B2 (en) 2012-11-26 2018-11-20 Vasona Networks, Inc. Reducing signaling load on a mobile network
US10341881B2 (en) 2013-11-12 2019-07-02 Vasona Networks, Inc. Supervision of data in a wireless network
US9397915B2 (en) 2013-11-12 2016-07-19 Vasona Networks Inc. Reducing time period of data travel in a wireless network
US10039028B2 (en) * 2013-11-12 2018-07-31 Vasona Networks Inc. Congestion in a wireless network
US9345041B2 (en) 2013-11-12 2016-05-17 Vasona Networks Inc. Adjusting delaying of arrival of data at a base station
CN105763474B (zh) * 2014-12-19 2019-10-25 华为技术有限公司 数据传输方法和装置
CN105991462B (zh) * 2015-03-02 2019-05-28 华为技术有限公司 传输控制协议tcp数据包的发送方法、发送装置和系统
CN107770082B (zh) * 2017-10-19 2020-05-12 中南大学 数据中心网络中一种基于任务流量特性的传输控制方法
CN110138678B (zh) * 2018-02-08 2023-02-24 华为技术有限公司 数据传输控制方法和装置、以及网络传输设备和存储介质
CN113873571A (zh) * 2020-06-30 2021-12-31 华为技术有限公司 一种拥塞控制方法及相应设备
US11606277B2 (en) * 2021-02-10 2023-03-14 Cohesity, Inc. Reducing the impact of network latency during a restore operation

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2853701B2 (ja) * 1997-03-18 1999-02-03 日本電気株式会社 Atm網における端末間フロー制御方法
US6862622B2 (en) 1998-07-10 2005-03-01 Van Drebbel Mariner Llc Transmission control protocol/internet protocol (TCP/IP) packet-centric wireless point to multi-point (PTMP) transmission system architecture
US6826620B1 (en) 1998-08-26 2004-11-30 Paradyne Corporation Network congestion control system and method
US6826147B1 (en) * 2000-07-25 2004-11-30 Nortel Networks Limited Method and apparatus for aggregate flow control in a differentiated services network
DE60212104T2 (de) * 2002-06-18 2006-10-19 Matsushita Electric Industrial Co., Ltd., Kadoma Auf Empfänger basierte Umlaufzeitmessung in TCP
US7650416B2 (en) * 2003-08-12 2010-01-19 Riverbed Technology Content delivery for client-server protocols with user affinities using connection end-point proxies
US7953114B2 (en) 2004-08-06 2011-05-31 Ipeak Networks Incorporated System and method for achieving accelerated throughput
US7782759B2 (en) * 2006-04-21 2010-08-24 Microsoft Corporation Enabling network devices to run multiple congestion control algorithms
US8351327B1 (en) * 2006-08-28 2013-01-08 Juniper Networks, Inc. Intermediate network device applying application-layer quality of service to channels within a communication session
WO2008034000A1 (en) 2006-09-13 2008-03-20 Asankya Networks, Inc. Systems and methods of improving performance of transport protocols in a multi-path environment
US8320250B2 (en) 2008-02-12 2012-11-27 Nvidia Corporation Method and arrangement for TCP flow control
US8639813B2 (en) 2008-11-25 2014-01-28 Citrix Systems, Inc. Systems and methods for GSLB based on SSL VPN users
US8412832B2 (en) 2009-12-23 2013-04-02 Citrix Systems, Inc. Systems and methods for GSLB MEP connection management across multiple core appliances
US9001663B2 (en) * 2010-02-26 2015-04-07 Microsoft Corporation Communication transport optimized for data center environment
JP5976277B2 (ja) * 2011-02-23 2016-08-23 富士通株式会社 伝送制御方法
US9240950B2 (en) 2011-03-23 2016-01-19 Hughes Network Systems, Llc System and method for providing quality of service over dedicated local loop networks
US10292066B2 (en) * 2011-11-04 2019-05-14 Cisco Technology, Inc. System and method of modifying congestion control based on mobile system information

Also Published As

Publication number Publication date
US10079764B2 (en) 2018-09-18
US8711690B2 (en) 2014-04-29
WO2014053969A1 (en) 2014-04-10
EP2904750A4 (en) 2015-10-28
EP2904750A1 (en) 2015-08-12
US20180359185A1 (en) 2018-12-13
US20140092741A1 (en) 2014-04-03
CN104704783A (zh) 2015-06-10
US20140133308A1 (en) 2014-05-15
US9503377B2 (en) 2016-11-22
US20170041232A1 (en) 2017-02-09

Similar Documents

Publication Publication Date Title
US10079764B2 (en) System and method for a TCP mapper
US11546268B2 (en) Systems and methods for pacing data flows
Al-Saadi et al. A survey of delay-based and hybrid TCP congestion control algorithms
KR20050085742A (ko) 무선 네트워크에서의 실시간 데이터 보호
US20040203825A1 (en) Traffic control in cellular networks
US10111130B2 (en) Supporting delivery of data packets using transmission control protocol in a wireless communication network
US9143454B2 (en) System and method for a TCP mapper
US8630204B1 (en) System and method for a TCP mapper
US10063489B2 (en) Buffer bloat control
Szilágyi et al. LTE user plane congestion detection and analysis
Lu et al. EQF: An explicit queue-length feedback for TCP congestion control in datacenter networks
Raniwala et al. Evaluation of a stateful transport protocol for multi-channel wireless mesh networks
Singh A survey on congestion control mechanisms in packet switch networks
Arshad et al. Issues of multihoming implementation using FAST TCP: a simulation based analysis
Magalhaes et al. Improving Performance of Rate-Based Transport Protocols in Wireless Environments
Kim et al. Gateway strategies for VoIP traffic over wireless multihop networks
Mohammadizadeh Cooperative End-to-end Congestion Control in Heterogeneous Wireless Networks

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid