KR20080042764A - 데이터 네트워크의 대역폭 추정 방법 및 네트워크 노드 - Google Patents

데이터 네트워크의 대역폭 추정 방법 및 네트워크 노드 Download PDF

Info

Publication number
KR20080042764A
KR20080042764A KR1020077014414A KR20077014414A KR20080042764A KR 20080042764 A KR20080042764 A KR 20080042764A KR 1020077014414 A KR1020077014414 A KR 1020077014414A KR 20077014414 A KR20077014414 A KR 20077014414A KR 20080042764 A KR20080042764 A KR 20080042764A
Authority
KR
South Korea
Prior art keywords
time
segment
tcp
network node
tcp segment
Prior art date
Application number
KR1020077014414A
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
Application filed by 아이에스티 인터내셔널 인코포레이티드 filed Critical 아이에스티 인터내셔널 인코포레이티드
Publication of KR20080042764A publication Critical patent/KR20080042764A/ko

Links

Images

Classifications

    • 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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route

Landscapes

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

Abstract

한 쌍의 TCP 세그먼트의 출발간 시간, 또는 한 블록의 TCP 세그먼트의 평균 출발간 시간이 측정되고, 한 쌍의 비-중복 확인의 도달간 시간이 측정된다. 데이터 네트워크의 대역폭은, 도달간 시간이 출발간 시간 또는 평균 출발간 시간보다 짧지 않은 경우 도달간 시간에 적어도 부분적으로 기초하여 추정될 수 있다.
한 쌍의 TCP 세그먼트의 출발간 시간, 한 블록의 TCP 세그먼트의 평균 출발간 시간, 한 쌍의 비-중복 확인의 도달간 시간, 데이터 네트워크의 대역폭

Description

데이터 네트워크의 대역폭 추정 방법 및 네트워크 노드{METHODS AND APPARATUS FOR ESTIMATING BANDWIDTH OF A DATA NETWORK}
본 출원은 2004년 11월 24일자로 출원된 미국 가특허원 제60/630,916호의 이익을 주장하며, 그 전체 내용은 인용에 의해 본원에 포함되는 것으로 한다.
본 발명은 일반적으로 신뢰성 있는 종단간 통신(end-to-end communications)에 관한 것으로, 특히 전송 제어 프로토콜에서의 추정에 관한 것이다.
패킷 교환형 데이터 네트워크들은 일반적으로 다-계층 프로토콜 스택으로 표현된다. 일례로는 7 계층 오픈 시스템 인터페이스(Open System Interface; OSI) 모델과, 4 계층 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP) 모델이 있다. OSI 모델에서의 최상위 계층으로부터 최하위 계층까지의 순서는 (1) 애플리케이션 계층, (2) 프레젠테이션 계층, (3) 세션 계층, (4) 트랜스포트 계층, (5) 네트워크 계층, (6) 데이터-링크 계층, 및 (7) 물리 계층이다. TCP/IP 모델에서의 최상위 계층으로부터 최하위 계층까지의 순서는 (1) 애플리케이션 계층, (2) 트랜스포트 계층(통상적으로 TCP), (3) 인터넷 계층(통상적으로 IP), 및 (4) 네트워크 액세스 계층이다. 비록 이것이 가장 일반적인 모델이지만, 모든 TCP/IP 구현들(implementations)이 이 모델을 따르는 것은 아니다. 또한, 비록 TCP/IP 모델이 OSI 모델을 따르지 않더라도, TCP/IP 트랜스포트 계층은 OSI 트랜스포트 계층에 매핑될 수 있고, TCP/IP 인터넷 계층은 OSI 네트워크 계층에 매핑될 수 있다.
트랜스포트 계층은 전송해야 할 데이터를 네트워크를 통해 전송하기에 적절한 크기의 세그먼트들로 분할하는 일을 담당한다. TCP는 트랜스포트 계층 프로토콜이다. 트랜스포트 계층은 네트워크 계층에서 누락될 수 있는 신뢰도 및 혼잡 제어 프로세스(reliability and congestion control processes)를 제공할 수 있다. 네트워크 계층은 네트워크를 통해 데이터 패킷들을 라우팅하는 일을 담당한다. IP는 네트워크 계층 프로토콜이다. 데이터-링크 계층은 네트워크의 물리적 요소들과 인터페이스하는 데 필요한 인터페이스 및 디바이스 드라이버를 관리한다. 데이터-링크 계층의 예로는 이더넷(Ethernet) 프로토콜 및 무선 링크 프로토콜(Radio Link Protocol; RLP)이 있다. 물리 계층은 네트워크의 물리적인 부분들로 구성되어 있다. 물리 계층의 예로는 직렬 및 병렬 케이블, 이더넷 및 토큰 링 케이블링, 안테나, 및 커넥터가 있다.
TCP/TP 네트워크에서, 데이터를 다른 컴퓨터에 전송할 필요가 있는 응용 프로그램들은 데이터를 트랜스포트 계층에 전달한다. 트랜스포트 계층에서는, 그 데이터를 적절한 크기의 세그먼트들로 분할한다. 이어서, 이들 세그먼트들은 네트워크 계층으로 전달되어, 그곳에서 네트워크 전체에 걸쳐 세그먼트들을 전송하는 데 필요한 헤더 정보를 포함한 데이터그램들로 패키지된다. 이 때, 네트워크 계층은 최하위 레벨의 프로토콜들(예컨대, 이더넷 또는 RLP)을 호출하여 특정의 물리적 매체에 걸친 데이터의 전송을 관리한다. 데이터그램들이 한 네트워크에서 다른 네트 워크로 전송될 때, 이들 데이터그램들은 또 다시 분할될 수 있다. 수신측 컴퓨터에서는, 반대의 프로세스가 행해진다. 최하위 레벨의 프로토콜들은 데이터그램들을 수신하여 이들을 네트워크 계층에 전달한다. 네트워크 계층은 데이터그램들을 세그먼트들로 재조합하여(reassemble) 이들 세그먼트들을 트랜스포트 계층에 전달한다. 트랜스포트 계층은 이들 세그먼트들을 재조합하여 데이터를 애플리케이션 계층에 전달한다.
IP는 데이터그램을 발신지(source)에서 수신지(destination)로 전달하기 위한 충분한 기능(functionality)을 제공하는 것에만 한정되어, 신뢰성 있는 종단간 연결 또는 흐름 제어는 제공하지 않는다. IP를 이용하여 네트워크 계층에 전달된 세그먼트가 최종 수신지에 항상 도착한다는 보장은 없다. 세그먼트들은 수신측에서 순서가 뒤바뀐 채 수신될 수 있거나, 패킷들이 네트워크 또는 수신측 혼잡으로 인해 누락될 수 있다. 프로토콜을 단순하지만, 유연성 있게 만들기 위해 이런 비신뢰성(unreliability)을 의도적으로 IP에 구축시켰다.
TCP는 그 기본적인 전달 서비스로서 IP를 이용한다. TCP는 IP에서 상실된 신뢰성 및 흐름 제어를 제공한다. TCP/TP 규격 7에는 "TCP 계층 아래의 통신 프로토콜의 신뢰성에 대해 이루어진 가설은 거의 없다"라고 기술되어 있으며, 또한 TCP는 IP 등의 "하위 레벨 프로토콜로부터 단순하지만, 잠재적으로 신뢰성 없는 데이터그램 서비스를 얻을 수 있음"이라고 기술되어 있다. IP에서 상실된 신뢰성을 제공하기 위해, TCP는 다음 툴을 이용한다. 즉 (1) 데이터의 개개의 바이트를 검사하여 이들을 순서대로 재조합하는 시퀀스 번호(sequence numbers), (2) 일부 바이 트들이 통과(transit) 시에 유실되었는가를 알려주는 확인(ACK) 플래그, 및 (3)세그먼트의 내용(contents)을 검증하는 체크섬(주: IP는 데이터그램 헤더의 내용만을 검증하는 체크섬을 이용함).
또한, TCP는 여러 컴퓨터 및 네트워크들이 프로세서 속도, 메모리 및 대역폭 등과 같은 상이한 역량을 갖는다는 사실로 인해 흐름 제어를 제공한다. 예를 들어, 웹 가동형(web enabled) 이동 전화는 웹 서버가 제공할 수 있는 속도와 동일한 속도로 데이터를 수신할 수 없을 것이다. 그러므로, TCP는 웹 서버가 데이터를 이동 전화가 받아들일 수 있는 속도로 제공하도록 보장해야 한다. TCP의 흐름 제어 체계의 목적은 너무 높은 전송 속도로 인해 데이터가 유실되는 것을 방지함과 동시에, 네트워크 자원이 불충분하게 활용되는 것을 방지하는 데 있다.
초기의 대부분의 TCP 흐름 제어 메커니즘은, 어떠한 혼잡의 원인인 것으로 추정되었던 수신측 연결에 집중되었다. 수신측-기반 흐름 제어 메커니즘의 일례가 수신 윈도우(RWND) 사이징이다. RWND의 크기는 수신측이 송신측에게 전송하는 ACK 시에 수신측에 의해 알려진다. RWND의 크기는 대역폭의 크기 및 가상 회선(virtual circuit)의 레이턴시 등과 같은 요인에 기초한다.
그러나, 수신측에 기초한 흐름 제어 메커니즘은 네트워크에서 발생할 수 있는 문제점을 해결하지는 않는다. 이런 문제점은 네트워크 사용불능, 트랙픽 과부하, 및 네트워크 라우터에 대한 오버플로잉 버퍼일 수 있다. 수신측은 순조롭게 동작될 수 있지만, 네트워크는 패킷들을 누락시킬 수 있는 데, 이는 송신측이 네트워크가 처리하기에 너무 높은 속도로 데이터를 전송하기 때문이다. 따라서, 송신 측-기반 흐름 제어 방법들이 개발되었다. RFC 2581에는 TCP의 4 가지 흐름 제어 방법인 (1) 저속 개시, (2) 혼잡 회피, (3) 고속 재전송, 및 (4) 고속 복원이 상술되어 있다. 이들 흐름 제어 방법들은 네트워크 혼잡에 응하여 송신측 혼잡 윈도우를 조절함으로써 송신측이 네트워크를 오버로드시키는 것을 방지하도록 설계되었다.
TCP의 흐름 제어 서비스 중 거의 대부분은 RWND의 크기, 및 따라서 대역폭 및 레이턴시에 간접적으로 종속된다. 이는 정상 상태 동작 동안 혼잡 윈도우(CRWND)의 최적값이 RWMD의 값이기 때문이다. 핑 또는 트레이스-라우트(ping or trace-route) 등의 툴을 이용하여, 네트워크의 레이턴시를 추정할 수 있다. 그러나, 대역폭을 추정하는 것은 통상적으로 TCP 세션의 성능을 금지시킬 수 있는 보다 복잡하고 계산 집약적인 프로세스이다.
따라서, 당 분야에서는 TCP 세션 동안 데이터 네트워크의 대역폭을 추정하는 새로운 방법이 필요로 된다.
전송 제어 프로토콜(TCP) 세션 동안 데이터 네트워크의 대역폭을 추정하기 위한 본 발명의 방법 및 장치가 개시된다. 본 발명의 일 실시예의 방법은 한 쌍의 TCP 세그먼트들의 출발간 시간(inter-departure time)을 측정하는 단계와, 한 쌍의 대응하는 비-중복 확인(ACK)의 도달간 시간(inter-arrival time)을 측정하는 단계를 포함한다. 이 방법은 또한 도달간 시간이 출발간 시간보다 짧지 않으면 도달간 시간에 적어도 일부 기초하여 데이터 네트워크의 대역폭을 추정하는 단계를 포함한다. 본 발명의 다른 실시예의 방법은 한 블록의 TCP 세그먼트들의 평균 출발간 시간을 측정하는 단계, 한 쌍의 비-중복 확인(ACK)의 도달간 시간을 측정하는 단계, 및 도달간 시간이 평균 출발 사이 시간보다 짧지 않으면 도달간 시간에 적어도 일부 기초하여 데이터 네트워크의 대역폭을 추정하는 단계를 포함한다.
본 발명의 기타 양상, 특징, 및 기술들은 당업자라면 이하의 상세한 설명을 참조해 보면 명백해 질 것이다.
도 1은 본 발명의 하나 이상의 실시예에 따라, 본 발명의 하나 이상의 양상을 실시할 수 있는 시스템의 간략화된 시스템 다이어그램을 도시.
도 2는 본 발명의 하나 이상의 실시예에 따라, 데이터 네트워크의 대역폭을 추정할 수 있는 방법에 대한 흐름도.
도 3은 본 발명의 하나 이상의 실시예에 따라, TCP 세션 동안 추정 적격 블록의 TCP 세그먼트들의 결정할 수 있는 방법에 대한 흐름도.
도 4는 본 발명의 하나 이상의 실시예에 따라, 데이터 네트워크의 대역폭을 추정할 수 있는 방법에 대한 흐름도.
데이터 네트워크의 대역폭을 추정하기 위한 방법 및 장치가 개시된다. 일 실시예에서, 데이터 네트워크의 대역폭은 TCP 세그먼트와 이전 TCP 세그먼트의 출발간 시간을 측정하고, TCP 세그먼트에 대응하는 비-중복 확인(ACK)과 이전 TCP 세그먼트에 대응하는 이전의 비-중복 확인(ACK)의 도달간 시간을 측정함으로써 추정 될 수 있다. 그 후, 데이터 네트워크의 대역폭은 도달간 시간이 출발간 시간보다 짧지 않으면 도달간 시간에 적어도 부분적으로 기초하여 추정될 수 있다. 소정의 실시예에서는, TCP 세그먼트 및 이전의 TCP 세그먼트는 TCP 세션 동안 단지 한 번만 전송된다.
다른 실시예에서, 출발간 시간은 네트워크 노드로부터의 TCP 세그먼트의 전송 시간에서 네트워크 노드로부터의 이전 TCP 세그먼트의 전송 시간을 뺀 시간차로서 계산될 수 있다. 마찬가지로, 도달간 시간은 네트워크 노드에서의 비-중복 확인(ACK)의 도달 시간에서 네트워크 노드에서의 이전의 비-중복 확인(ACK)의 도달간 시간을 뺀 시간차로서 계산될 수 있다.
또는, 출발간 시간은 네트워크 노드에 의한 TCP 세그먼트의 검출 시간에서 네트워크에 의한 이전 TCP 세그먼트의 검출 시간을 뺀 시간차로서 계산될 수 있다. 차례로, 도달간 시간은 네트워크 노드에 의한 비-중복 확인(ACK)의 검출 시간에서 네트워크 노드에 의한 이전의 비-중복 확인(ACK)의 검출 시간을 뺀 시간차로서 계산될 수 있다.
본 발명의 다른 양상은 상기한 바로부터 추정된 대역폭에 적어도 일부 기초하여 하나 이상의 TCP 세션 파라미터를 갱신하는 데 있다.
컴퓨터 프로그래밍 숙련자의 실시에 따라, 컴퓨터 시스템 또는 유사 전자 시스템에 의해 수행되는 동작들(operations)을 참조하여 본 발명을 이하에서 기술하기로 한다. 이런 동작들을 때로는 컴퓨터에 의해 실행되는 것이라 칭한다. 기호로 표현되는 동작들이 데이터 비트를 표현하는 전기 신호에 대한 중앙 처리 장치 등의 프로세서에 의한 조작, 시스템 메모리에서와 같은 메모리 영역에서의 데이터 비트의 보존 이외에도 신호에 대한 기타 처리를 포함하는 것을 인식하게 될 것이다. 데이터 비트가 보존되는 메모리 영역은 그 데이터 비트에 대응하는 특정의 전기적, 자기적, 광학적, 또는 유기적 특성을 갖는 물리적 영역이다. 본원에서 기재된 "네트워크 노드", "송신측", "수신측", 및 추정 유닛"은 중앙 처리 장치와 같은 프로세서를 포함하는 임의 전자 장치를 포함하는 것으로 이해된다.
본 발명의 엘리먼트들은 소프트웨어에 의해 구현될 때, 본질적으로는 필요한 타스크를 수행하기 위한 코드 세그먼트들이다. 코드 세그먼트들은 프로세서 판독가능 매체에 저장될 수 있거나, 전송 매체 또는 통신 링크를 통해 반송파에 실려진 컴퓨터 데이터 신호에 의해 전송될 수 있다. "프로세서 판독가능 매체"는 정보를 저장하거나 전달할 수 있는 어떠한 매체라도 포함될 수 있다. 프로세서 판독가능 매체의 예로서는 전자 회로, 반도체 메모리 장치, ROM, 플래시 메모리나 다른 비휘발성 메모리, 플로피 디스켓, CD-ROM, 광 디스크, 하드 디스크, 광 섬유 매체, 무선 주파수(RF) 링크 등이 있다. 컴퓨터 데이터 신호는 전자 네트워크 채널, 광 섬유, 무선(air), 전자기적 RF 링크 등과 같은 전송 매체를 통해 전파될 수 있는 어떠한 신호라도 포함될 수 있다. 코드 세그먼트들은 인터넷, 인트라넷 등과 같은 컴퓨터 네트워크를 통해 다운로드될 수 있다.
도 1은 하나 이상의 본 발명의 양상을 구현할 수 있는 예시적인 시스템(100)을 도시한다. 시스템(100)은 데이터 네트워크(130)를 통해 수신측(140)과 통신하는 송신측(110)으로 구성된다. 추가로, 시스템(100)은 선택적 추정 유닛(120)을 포함할 수 있다.
송신측(110)은 송신측(110) 상에 상주하는 하나 이상의 TCP 모듈을 이용하여 또 다른 장치에 대한 TCP 가상 회선(160)을 생성하도록 적응되는 네트워크 노드일 수 있다. 예를 들어, 송신측(110)은 데스크탑 컴퓨터, 랩탑 컴퓨터, 셀룰러 전화, 개인 휴대 단말기(PDA), 서버, 네트워크 어댑터, 또는 내장형 컴퓨터일 수 있다. 송신측(110)으로서는, 또 다른 장치에 대해 TCP 가상 회선(160)을 생성할 수 있는 어떠한 장치라도 고려될 수 있는 바와 같이, 상기에서 열거된 것들은 단지 예를 든 것에 불과하다는 것을 인식해야 한다. TCP 모듈은 송신측(110) 상에서 둘 이상의 프로그램에 의해 공유되는 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP) 스택의 일부일 수 있거나, 또 다른 프로그램의 일부로서 존재할 수 있다. 또한, 본 발명의 원리에 부합되는 TCP 모듈을 포함하는 송신측(110)은 이처럼 구성되지 않은 다른 TCP 모듈을 더 포함할 수 있다는 것을 인식해야 한다.
수신측(140)은 수신측(140) 상에 상주하는 하나 이상의 TCP 모듈을 이용하여 또 다른 장치에 대한 TCP 가상 회선(160)을 생성하도록 적응되는 네트워크 노드일 수 있다. 예를 들어, 수신측(140)은 데스크탑 컴퓨터, 랩탑 컴퓨터, 셀룰러 전화, 개인 휴대 단말기(PDA), 서버, 네트워크 어댑터, 또는 내장형 컴퓨터일 수 있다. 수신측(140)으로서는, 또 다른 장치에 대해 TCP 가상 회선(160)을 생성할 수 있는 어떠한 장치라도 고려될 수 있는 바와 같이, 상기에서 열거된 것들은 단지 예를 든 것에 불과하다는 것을 인식해야 한다. TCP 모듈은 수신측(140) 상에서 둘 이상의 프로그램에 의해 공유되는 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP) 스택의 일 부일 수 있거나, 또 다른 소프트웨어 프로그램의 일부로서 존재할 수 있다. 또한, 본 발명의 원리에 부합되는 TCP 모듈을 포함하는 수신측(140)은 이처럼 구성되지 않은 다른 TCP 모듈을 더 포함할 수 있다는 것을 인식해야 한다.
도 1에 도시된 유닛(11 및 140)을 "송신측" 및 "수신측"으로 각각 기술하였지만, 이들 용어는 임의적인 것으로, 송신측(110)이 때로는 수신측(140)에 데이터를 전송할 수 있는 반면, 어떤 때에는 수신측(140)이 송신측(110)에 데이터를 전송할 수 있다는 것을 인식해야 한다.
도 1의 실시예에서, TCP 가상 회선(160)은 송신측 TCP 종단점(endpoint)(150)과 수신측 TCP 종단점(170) 간에 존재한다. TCP 가상 회선에 대한 상세한 사항은 본 발명의 범주를 벗어나는 것이지만, 도 1에서는 기본 네트워크 프로토콜 및 네트워크들을 신뢰할 수 없더라도, 신뢰성 있는 TCP 세션과 이에 수반되는 흐름 제어 알고리즘을 송신측(110) 및 수신측(140)에서 생성할 수 있는 것으로 도시하였다. 송신측(110)과 수신측(140) 간의 둘 이상의 TCP 가상 회선(160)은 동시에 존재할 수 있다는 것을 이해할 것이다.
송신측(110)에서의 TCP 모듈과 수신측(140)에서의 TCP 모듈 간의 물리적 연결을 TCP 연결 경로라 칭할 수 있으며, 이들은 무선 또는 유선의 물리적 연결일 수 있다.
선택적 추정 유닛(120)은 송신측(110)과 수신측(140) 간의 TCP 연결 경로에 위치된 네트워크 노드일 수 있으며, 데스크탑 컴퓨터, 랩탑 컴퓨터, 네트워크 게이트웨이, 네트워크 어댑터, 또는 내장형 컴퓨터일 수 있다. TCP 세그먼트의 통 과(transit)를 검출하고 TCP 헤더를 판독할 수 있는 어떠한 장치 또는 프로그램이라도 선택적 추정 유닛(120)이 될 수 있는 바와 같이, 상기에서 열거된 것들은 단지 예시에 불과한 것이다. 선택적 추정 유닛(120)을 통해 통과하는 TCP 세그먼트가 하나 이상의 데이터-링크 계층 또는 네트워크 계층 프로토콜 패킷으로 분할될 수 있으며, TCP 세그먼트의 통과 검출은 이들 패킷들 중 하나 이상의 통과를 검출하는 것을 포함할 수 있다는 것을 인식해야 한다.
도 1에 도시된 실시예에서는, 비록 선택적 추정 유닛(120)이 송신측(110)과 데이터 네트워크(130) 사이의 TCP 연결 경로를 따라 위치되었지만, TCP 연결 경로를 따르는 어느 곳에라도 위치될 수 있다는 것을 인식해야 한다. 예를 들어, 선택적 추정 유닛(120)은 데이터 네트워크(130)와 수신측(140) 사이에 위치될 수 있거나, 데이터 네트워크(130) 내에 위치될 수 있다(예를 들어, 데이터 네트워크(130)가 둘 이상의 물리적 링크를 포함할 경우에는 데이터 네트워크(130)의 두 물리적 링크 사이에 위치될 수 있다). 또한, 송신측(110) 또는 수신측(140) 내의 네트워크 카드 또는 전자 회로일 수 있다.
소정의 실시예에서, 선택적 추정 유닛(120)은 데이터 네트워크(130)의 대역폭에 관한 데이터를 생성하도록 적응될 수 있다. 대역폭에 관한 데이터는 추정된 대역폭 또는 대역폭을 추정할 수 있는 데이터를 포함할 수 있다.
일부 실시예에서, 선택적 추정 유닛은 또한 선택적 추정 유닛과 송신측(110) 또는 수신측 간의 TCP 연결 경로부를 통해 대역폭에 관한 데이터를 송신측(110) 또는 수신측(140)에 전송하도록 구성될 수 있다. 이들 실시예에서, 선택적 추정 유 닛(120)과 송신측(110) 또는 수신측(140) 간에서의 전송은 TCP, 유니버설 데이터그램 프로토콜(UDP), 또는 또 다른 적합한 트랜스포트 계층 프로토콜을 사용할 수 있다. 다른 실시예에서, 선택적 추정 유닛(120)은 대역폭에 관한 데이터를 TCP 연결 경로 외측에 존재하는 연결을 통해 송신측(110) 또는 수신측(140)에 전송하도록 적응될 수 있다. 이들 실시예에서는, 임의 적합한 프로토콜을 사용할 수 있다(예를 들어, RS-232, RS-485, TCP, UDP, 등). TCP 연결 경로 외측에 존재하는 연결의 예로서는, 직렬 연결, 병렬 연결, 유니버설 직렬 버스 연결, 버스 연결(예를 들어, 주변 컴포넌트 상호접속(PCI)), 근거리 통신망(LAN), 광역 통신망(WAN), 및 그들의 조합이 있다. 연결은 유선 또는 무선일 수 있다.
데이터 네트워크(130)는 단일 네트워크 또는 다수의 상호연결된 네트워크로 구성될 수 있다. 데이터 네트워크(130)를 구성할 수 있는 네트워크의 예로서는 인터넷, LAN, WAN, 디지탈 가입자 회선(DSL) 네트워크, 케이블 네트워크, 전화 접속(dial-up) 네트워크, 셀룰러 데이터 네트워크, 및 위성 네트워크가 있다. 이들은 패킷 교환형 네트워크 또는 회선 교환형 네트워크일 수 있다. 데이터 네트워크(130)를 구성할 수 있는 상기에서 열거된 네트워크들은 단지 예시적인 것으로, 인터넷 프로토콜(IP)과 같은 하나 이상의 네트워크 계층 프로토콜을 이용하여 또 다른 네트워크에 연결될 수 있는 어떠한 네트워크라도 사용할 수 있다는 것을 인식해야 한다.
송신측(110) 또는 수신측(140) 내의 TCP 모듈은 데이터 네트워크(130)의 대역폭을 추정하도록 적응될 수 있다. 소정의 실시예에서, 송신측(110) 또는 수신 측(140) 내의 TCP 모듈은 송신측(110) 또는 수신측(140) 상의 또 다른 프로그램으로부터 또는 선택적 추정 유닛(120)으로부터 대역폭에 관한 데이터를 수신하고, 이 데이터를 이용하여 대역폭을 추정하도록 적응될 수 있다.
송신측(110) 또는 수신측(140) 상의 또 다른 프로그램이 대역폭에 관한 데이터를 생성하도록 적응될 수 있는 실시예에서는, 전역 커널 변수 및/또는 소프트웨어 인터럽트를 이용하여 송신측(110) 또는 수신측(140)에 상주하는 TCP 모듈과 프로그램 간에서 프로세스간 통신을 행할 수 있다.
상기 실시예에서 비록 시스템(100)에 대해 기술하였지만, 다른 실시예도 동등하게 유효하다는 것을 인식해야 한다. 또한, 도 1은 시스템(100)을 간략히 도시한 것이므로, 다른 컴포넌트들도 시스템(100)에 포함될 수 있다는 것을 인식해야 한다.
도 2는 데이터 네트워크(예를 들어, 데이터 네트워크(130))의 대역폭을 추정하는 프로세스(200)의 일 실시예를 도시한다. 소정의 실시예에서, 프로세스(200)는 송신측(예를 들어, 송신측(110)) 또는 수신측(예를 들어, 수신측(140))일 수 있는 네트워크 노드 내의 TCP 모듈이나 또 다른 프로그램에 의해 구현될 수 있다. 다른 실시예서는, 프로세스(200)는 추정 유닛(예를 들어, 선택적 추정 유닛(120))일 수 있는 네트워크 노드에 의해 구현될 수 있다. 프로세스(200)는 둘 이상의 네트워크 노드 또는 프로그램에서 구현될 수 있다는 인식해야 한다. 예를 들어, 추정 유닛은 프로세스(200)에서 기술된 행위들(acts)들 중 일부를 수행하는 한편, 송신측 또는 수신측 내의 TCP 모듈이나 또 다른 프로그램은 나머지 행위들을 수행할 수 있다.
프로세스(200)는 블록(210)에서 시작하여, 여기서, 정규 TCP 세그먼트에 대한 비-중복 확인(NDACK)이 송신측에서 수신되거나 추정 모듈에 의해 검출된다. NDACK는 송신측으로부터의 순서적 세그먼트의 수령에 응답하여 수신측의 TCP 모듈에 의해 전송된 확인(ACK)이다. 반면, 중복 ACK(DACK)는 순서가 뒤바뀐 세그먼트의 수령에 응답하여 수신측의 TCP 모듈에 의해 전송된 확인(ACK)이다. 예를 들어, 수신측이 임의 다른 세그먼트를 수신하기 전에 세그먼트 1을 수신하면, 세그먼트 1에 대해서는 NDACK를 발송할 것이다. 이어서 수신측이 세그먼트 2를 수신하기 전에 세그먼트 3을 수신하면, DACK를 발송할 것이다. 블록 1에서 송신측에 의해 수신된 NDACK는 또한 본 분야의 용어에서 알려진 바와 같이 지연된 ACK일 수 있다는 것을 인식해야 한다. 또한, TCP는 부정(negative) ACK를 사용한다는 것을 인식해야 한다. 예를 들어, 세그먼트 1에 대응하는 NDACK는 실제로는 수신측의 TCP 모듈이 세그먼트 2를 수신할 준비가 되어 있음을 나타낼 것이다.
TCP 세그먼트는 이것이 TCP 세션 동안 단지 한 번만 전송되면(즉, 결코 재전송되지 않음), 정규 TCP 세그먼트로서 정의될 수 있다. 동일한 TCP 세그먼트에 연관된 임의 DACK가 블록(210)에서의 NDACK에 앞서지 않으면, NDACK에 연관된 TCP 세그먼트는 정규 TCP 세그먼트라고 여겨질 수 있다.
프로세스(200)는 블록(220)에서 시작하여, 여기서, 정규 TCP 세그먼트와 이전 TCP 세그먼트(즉, 정규 TCP 세그먼트 이전에 전송됨)에 대한 출발간 시간(IDT)이 측정된다. 프로세스(200)가 송신측의 TCP 모듈이나 또 다른 프로그램에 의해 수행되면, IDT는 송신측으로부터의 정규 TCP 세그먼트의 전송 시간에서 송신측으로부터의 이전의 정규 TCP 세그먼트의 전송 시간을 뺀 시간차일 수 있다. 프로세스(200)가 추정 유닛에 의해 수행되면, IDT는 추정 유닛에 의한 정규 TCP 세그먼트의 검출 시간에서 추정 유닛에 의한 이전의 정규 TCP 세그먼트의 검출 시간을 뺀 시간차일 수 있다. 검출 시간은 추정 유닛이 이것에 들어오고 나가는 세그먼트를 검출하는 시각이거나, 또는 이들 간의 임의 시간일 수 있다. 추정 유닛은 이것을 통과하는 데이터-링크 계층 또는 네트워크 계층 프로토콜 패킷의 TCP 헤더 내의 시퀀스 번호를 판독함으로써 세그먼트를 검출할 수 있다.
IDT는 클럭 사이클, 단위 시간, 또는 임의 다른 적합한 타이밍 파라미터로 표현될 수 있다.
일 실시예에서, 정규 세그먼트 쌍들에 대한 IDT는 세그먼들이 송신측으로부터 전송된 때(또는 추정 유닛을 통과한 때) 계산될 수 있다. 다른 실시예에서는, 세그먼트 쌍들에 대한 IDT는 세그먼트들에 대응하는 NDACKs가 송신측에 의해 수신된 때(또는 추정 유닛에 의해 검출된 때) 계산될 수 있다. 후자의 실시예의 경우, 세그먼트들에 대한 전송(또는 검출) 시간은 세그먼트들에 연관된 NDACKs가 송신측에 의해 수신되거나 또는 추정 유닛에 의해 검출될 때 사용될 수 있는 임시 변수 또는 어레이에 저장될 수 있다.
블록(220)에서 사용된 이전의 정규 TCP 세그먼트는, 이전의 정규 TCP 세그먼트의 전송 후 및 정규 TCP 세그먼트의 전송 전에 전송된 임의 TCP 세그먼트가 또한 정규이기만 하면, 정규 TCP 세그먼트의 전송 이전에 전송된 모든 정규 세그먼트일 수 있다. 도 2에 도시하지는 않았지만, 블록(210)에서 확인된 정규 TCP 세그먼트가 TCP 세션의 시작이래 또는 TCP 세션 동안 세그먼트의 최종 재전송이래 결정된 제1 정규 TCP 세그먼트이면, 프로세스(200)는 종료될 수 있다는 것을 인식해야 한다.
세그먼트 쌍들에 대한 IDT가 세그먼트가 송신측으로부터 전송되는 때(또는 추정 유닛에 의해 검출될 때) 측정되는 실시예에서는, 플래그 또는 포인터들을 사용하여 정규가 아닌 적어도 하나의 세그먼트를 포함하거나 정규가 아닌 하나 이상의 세그먼트에 걸쳐있는 세그먼트 쌍들에 대한 IDT는 사용해서는 안 된다는 것을 TCP 모듈 또는 추정 유닛에 알린다.
도 2를 계속해서 참조하면, 프로세스(200)는 블록(230)으로 진행하여, 정규 TCP 세그먼트와 이전의 정규 TCP 세그먼트에 대한 도달간 시간(IAT)을 측정한다. 프로세스(200)가 송신측의 TCP 모듈이나 또 다른 프로그램에 의해 구현되면, IAT는 송신측에서의 정규 TCP 세그먼트에 대응하는 NDACK의 도달 시간과 송신측에서의 이전의 정규 TCP 세그먼트에 대응하는 NDACK의 도달 시간 간의 시간차일 수 있다.
프로세스(200)가 추정 유닛에 의해 구현되면, IAT는 정규 TCP 세그먼트에 대응하는 NDACK의 검출 시간과 이전의 정규 TCP 세그먼트에 대응하는 NDACK의 검출 시간 간의 차일 수 있다. 검출 시간은 추정 모듈이 이것에 들어오고 나가는 NDACK를 검출하는 시각이거나, 또는 이들 간의 임의 시간일 수 있다. 추정 유닛은 이것을 통과하는 데이터-링크 계층 또는 네트워크 계층 프로토콜 패킷의 TCP 헤더 내의 확인 번호를 판독함으로써 TCP 세그먼트에 대응하는 NDACK를 검출할 수 있다.
IAT는 단위 시간, 클럭 사이클, 또는 임의 다른 적합한 타이밍 파라미터로 표현될 수 있다.
프로세스(200)는 블록(240)으로 진행하여, IAT가 IDT보다 큰지, 또는 일부 실시예의 경우 IDT와 동일한지에 대한 여부를 판단한다. IAT가 IDT보다 작거나, 일부 실시예의 경우 IDT와 동일하면, 프로세스(200)는 종료되고, 그렇지 않으면, 프로세스(200)는 블록(250)으로 진행한다.
블록(250)에서, 블록(230)에서 측정된 IAT에 적어도 부분적으로 기초하여 대역폭을 추정할 수 있다. 대역폭 추정은 여러 방법, 예를 들어, TCP 세션 동안 측정된 이동 평균 또는 이동 모드 추정치를 유지하는 것 등을 통해 수행될 수 있다. 추정치는 다음과 같이 반복적으로 갱신될 수 있다. 즉, 새로운 IAT 샘플 iat가 B량의 새로운 데이터 바이트(B amount of new data bytes)에 대한 대응하는 확인(NDACK를 통해)과 함께 수신되면, 추정된 대역폭(bw_estimate)은 다음 중 하나에 따라 갱신될 수 있다.
bw_estimate = 이동 평균(bw_estimate, B / iat), 또는
bw_estimate = 이동 모드(bw_estimate, B / iat)
상기 예는 단지 예시를 위한 것으로, 대역폭을 추정하는 다른 방법을 동등하게 적용할 수 있다.
블록(250)에서 추정된 대역폭을 이용하여 송신측 또는 수신측에서의 하나 이상의 TCP 세션 파라미터들을 갱신할 수 있다. 예를 들어, 블록(250)에서 추정된 대역폭을 이용하여 혼잡 윈도우(CWND), 수신 윈도우(RWND), 및 저속 시작 임계 치(SSTHRESH)를 갱신할 수 있다.
비록 도 2에 도시된 실시예에서는 한 쌍의 정규 TCP 세그먼트에 대한 IDT를 사용하였지만, 다른 실시예에서는 하나 이상 블록의 TCP 세그먼트에 대한 평균 IDT를 사용할 수 있다. 한 블록의 TCP 세그먼트를 추정 적격(EE) 블록이라 칭할 수 있다. EE 블록에서의 TCP 세그먼트는 이전에 밝힌 바와 같이 정규 세그먼트일 필요는 없지만, 세그먼트의 재전송은 포함되지 않는다. EE 블록에 대한 평균 IDT를 측정하기 위해, 블록에 대해 다음의 파라미터들, (1) 블록의 제1 세그먼트의 시퀀스 번호인 시작 세그먼트 번호(SSN), (2) 블록의 최종 세그먼트의 최종 바이트의 시퀀스 번호인 종료 시퀀스 번호(ESN), (3) 블록의 제1 세그먼트의 전송 시간인 시작 전송 시간(STT), 및 (4) 블록의 최종 세그먼트의 전송 시간인 종료 전송 시간(ETT)을 유지할 수 있다. 추정 유닛에 의해 EE 블록들이 결정되는 실시예에서, STT 및 ETT는 블록의 최초 세그먼트 및 최종 세그먼트 각각의 검출 시간을 나타낼 수 있다.
다수의 EE 블록에 대한 파라미터 SSN, ESN, STT, 및 ETT는 링크된 리스트 또는 어레이의 구조로서 저장될 수 있다.
EE 블록에 대해 상기 4 가지 파라미터를 유지함으로써, 그 블록에서의 연속한 세그먼트의 모든 쌍들에 대한 평균 IDT는 유효하게 유지되어, TCP 세그먼트의 CWND 번호에 대한 모든 IDT를 유지할 필요성을 제거시킬 수 있다. 소정의 실시예에서의 EE 블록에 대한 평균 IDT는 다음의 관계식 mean IDT = mean_segment_size*[ETT-STT] / [ESN-SSN+1]에 따라 추정될 수 있다. 여기서, mean_segment_size는 전송된 TCP 세그먼트 바이트의 추정된 평균 크기이고, 새로운 TCP 세그먼트가 전송될 때마다 반복적으로 계속 갱신되는 이동 평균으로서 구현될 수 있다. 통상적으로, mean_segment_size는 그 용어가 본 분야에 알려진 바와 같이 최대 세그먼트 크기(MSS)와 동일할 것이다. 상기 관계식은 단지 예시적인 목적으로서, 상기 관계식의 변형예를 본 발명에 적용할 수 있다는 것을 인식해야 한다.
도 3은 EE 블록 결정 방법에 대한 일 실시예를 나타낸 것이다. 프로세스(300)는 블록(305)에서 시작되고, 거기서, 파라미터 stop_estimation이 거짓(false)으로 설정되는 시각 T에서 시퀀스 번호 S 및 길이 L을 갖는 TCP 세그먼트가 송신측으로부터 전송되거나, 추정 유닛에 의해 검출된다. 파라미터 stop_estimation을 사용하여 타임아웃, 고속-재전송, 및 고속 복원 시의 재전송과 같은 TCP의 재전송 및 복원 단계 동안 EE 블록의 갱신 또는 생성을 방지한다.
프로세스(300)는 블록(310)으로 진행하여, 블록(305)에서 전송된 TCP 세그먼트가 재전송되는지에 대한 여부를 판단하고, 이 경우 이 세그먼트는 EE 블록에 포함되지 않는다. 송신측의 TCP 모듈이나 또 다른 프로그램에서, 이런 판단은 TCP 모듈이 블록(310)에서의 전송 전에 세그먼트를 재전송할지를 판단할 것이므로 여러 방법으로 행해질 수 있다. 추정 유닛에서, 일 실시예의 경우 이런 판단은 S를 추정 모듈을 통과하는 패킷들의 TCP 헤더에서 관측된 최대 시퀀스 번호와 비교함으로써 행해질 수 있다. 만일 S가 관측된 최대 시퀀스 번호보다 작으면, 세그먼트는 재전송되는 것으로 판단될 수 있다. 다른 실시예에서는, 세그먼트에 대응하는 DACK에 대한 검출에 의해 판단이 행해질 수 있다.
세그먼트가 재전송되면, 프로세스(300)는 블록(315)으로 진행하여, ESN을 재전송된 세그먼트 바로 전에 전송된 세그먼트의 최종 바이트로 설정하고 ETT를 이전 세그먼트의 전송, 또는 검출 시간으로 설정함으로써 현재의 EE 블록을 종료시킨다. 또한, 파라미터 stop_estimation을 참(TRUE)으로 설정한다. 프로세스(300)는 이어서 블록(355)으로 진행하여, 새로운 EE 블록을 초기화시킨다.
블록(355)에서 새로운 EE 블록이 초기화되면, 새로운 EE 블록에 대한 SSN과, ESN, STT 및 ETT 중 하나 이상이 0로 설정될 수 있다. 또한, 해당 블록의 SSN, ESN, STT 및 ETT 파라미터용 메모리가 할당될 수 있다. 더욱이, 새로운 EE 블록은 현재의 EE 블록으로서 표시(marking)된다.
TCP 연결의 시작에 의해, 제1 EE 블록이 블록(355)에서 수행된 새로운 EE 블록의 초기화와 동일한 방식으로 초기화될 수 있다는 것을 인식해야 한다. 또한, 다른 프로세스에서 IAT를 측정하는 데 이용되는 변수 Prev_recv_time은 제1 EE 블록이 초기화되면 0로 설정될 수 있다.
블록(310)을 다시 참조하여, 세그먼트가 재전송되지 않는 것으로 판단되면, 프로세스(300)는 블록(320)으로 진행하여, 현재의 EE 블록의 SSN이 0로 설정되어 있는지에 대한 판단을 행한다. SSN이 0로 설정되면, 즉 블록(305)에서 전송된 세그먼트가 현재의 EE 블록의 제1 세그먼트이면, 프로세스(300)는 블록(325)으로 진행하여, 현재의 EE 블록의 SSN 및 STT를 S 및 T 각각으로 설정한다. 이어서, 프로세스(300)는 블록(325)에서 블록(350)으로 진행하여, prev_send_time을 T로 설정한다.
일 실시예에서, 0로 설정된 STT는 또한 블록(305)에서 전송된 세그먼트가 현재의 EE 블록의 제1 세그먼트를 나타낼 수 있으므로, SSN이 0인지에 대한 판단 대신에 블록(320)에서 STT가 0로 설정되었는지에 대한 판단을 행할 수 있다는 것을 인식해야 한다.
한편, 블록(320)에서 SSN이 0가 아닌 경우, 프로세스(300)는 블록(330)으로 진행하여, 블록(305)에서 전송된 세그먼트의 현재 IDT를 현재의 EE 블록의 현재 평균 IDT에 최대 IDT 편차(max_IDT_deviation)를 더한 합과 비교한다.
현재 IDT는 T에서 prev_send_time을 뺀 것으로서 측정될 수 있다. 이 시점에서 prev_send_time의 값은 현재의 EE 블록의 이전에 최종으로 전송된 세그먼트의 전송 또는 검출 시간이다.
현재의 평균 IDT는 다음 관계식, 현재의 평균 IDT = mean_segment_size*[T-STT] / [S-SSN]에 따라 측정될 수 있다는 것을 인식해야 한다.
일 실시예에서, max_IDT_deviation은 정수(예컨대, 1, 2, 3, 등)일 수 있는 반면, 다른 실시예에서는 조정가능한 파라미터일 수 있다. 소정의 실시예에서, max_IDT_deviation은 현재의 평균 IDT를 곱한 정수이거나, 현재의 평균 IDT를 곱한 조정가능한 파라미터일 수 있다.
도 3을 계속해서 참조해 보면, 현재의 IDT가 현재의 평균 IDT에 max_IDT_deviation을 더한 합보다 크면, 프로세스(300)는 블록(335)으로 진행하여, ESN을 S-1로 설정하고 ETT를 T로 설정함으로써 현재의 EE 블록을 종료시킨다. 이어서, 프로세스(300)는 블록(355)으로 진행하여, 다음 EE 블록을 초기화시킨다.
반면, 블록(330)에서 현재의 IDT가 현재의 평균 IDT에 max_IDT_deviation을 더한 합보다 크지 않으면, 프로세스(300)는 블록(340)으로 진행하여, S에 L을 더한 합을 SSN에 조정가능한 파라미터일 수 있는 최대 블록 크기(max_block_size)를 더한 합과 비교한다. 여기서 L은 현재 전송된 TCP 세그먼트의 길이이다. S에 L을 더한 합이 SSN에 max_block_size를 더한 합보다 크거나, 일부 실시예의 경우 같으면, 프로세스(300)는 블록(345)으로 진행하여, ESN을 S+L-1로 설정하고 ETT를 T로 설정함으로써 종료시킨다.
한편, 블록(340)에서 S에 L을 더한 합이 SSN에 max_block_size를 더한 합보다 작거나, 일부 실시예의 경우 같으면, 프로세스(300)는 블록(350)으로 진행하여, prev_send_time을 T로 설정한다.
프로세스(400)는 프로세스(300)에서 결정된 EE 블록을 사용하여 대역폭을 추정할 수 있는 방법에 대한 일 실시예를 도시한 것이다. 프로세스(400)는 블록(410)에서 시작하고, 여기서, 시퀀스 번호 S1을 갖는 정규 세그먼트에 대한 NDACK가 시각 T1에서 송신측에서 수신되거나, 추정 모듈에 의해 검출된다. 시퀀스 번호는 NDACK의 헤더 필드 내의 확인 번호를 판독함으로써 결정해질 수 있다.
계속해서, 프로세스(400)는 블록(420)으로 진행하여, 프로세스(300)에서 사용된 stop_estimation_flag를 거짓(FALSE)으로 설정한다. 그 후, 프로세스(400)는 블록(430)으로 진행하여, prev_recv_time이 0인지를 판단한다. prev_recv_time이 0이면, 블록(410)에서 수신된 NDACK는 TCP 세션 동안 송신측에 의해 수신되거나, 추정 유닛에 의해 검출된 정규 TCP 세그먼트에 대응하는 제1 NDACK로서, 프로세 스(400)는 블록(470)으로 진행하여, prev_recv_time을 T1의 값으로 설정한다.
한편, 블록(430)에서 prev_recv_time이 0보다 크면, 프로세스(400)는 블록(440)으로 진행하여, 적용가능한 EE 블록을 결정한다. 일 실시예에서, 적용가능한 EE 블록은 SSN이 S1보다 작거나 또는 같고, ESN이 S1보다 크거나 또는 같은 블록이다. 적용가능한 EE 블록은 현재의 EE 블록일 수 있으며, 이 경우 SSN은 S1보다 작거나 같을 것이고, ESN은 0가 될 것인 데, 이는 현재의 EE 블록 결정이 아직 종료되지 않았기 때문인 것에 주목해야 한다.
적용가능한 EE 블록이 결정된 후, 프로세스(400)는 블록(450)으로 진행하여, 현재 IAT가 적용가능한 EE 블록의 평균 IDT보다 큰지를 판단한다.
현재 IAT는 T1에서 prev_recv_time을 뺀 값일 수 있다. 이 시점에서 prev_recv_time의 값은, 이전의 정규 TCP 세그먼트에 대응하는 이전의 최종 NDACK에 대한 송신측에서의 도달 시간 또는 추정 유닛에 의한 검출 시간이다.
소정의 실시예에서의 적용가능한 EE 블록에 대한 평균 IDT는 다음의 관계식, 평균 IDT = mean_segment_size* [ETT-STT] / ESN-SSN+1]에 따라 측정될 수 있다. 상기 관계식에 사용된 ETT, STT, ESN 및 SSN의 값들은 블록(440)에서 결정된 적용가능한 EE 블록에 연관된 값들인 것을 인식해야 한다. 또한, 적용가능한 EE 블록이 현재의 EE 블록일 수 있고, 이 경우, 현재의 EE 블록에 대한 ETT 및 ESN을 결정할 수 없을 가능성으로 인해 현재의 평균 IDT를 사용할 수 있다는 것을 인식해야 한다.
현재 IAT가 적용가능한 EE 블록의 평균 IDT보다 크거나, 일부 실시예의 경우 같으면, 프로세스(400)는 블록(460)으로 진행하여, 현재 IAT에 적어도 부분적으로 기초하여 대역폭을 추정할 수 있고, 이어서 프로세스(400)는 블록(470)으로 진행하여, prev_recv_time을 T1로 설정한다. 대역폭 추정은 여러 방법으로, 예컨대, TCP 세션 동안 결정된 이동 평균 또는 이동-모드 추정치를 유지시키는 방법을 통해 수행될 수 있다. 추정치는 다음과 같이 반복적으로 갱신되는 데, 즉 새로운 IAT 샘플 iat가 B량의 새로운 데이터 바이트(B amount of new data bytes)의 대응하는 확인(NDACK를 통해)과 함께 수신되면, 추정된 대역폭(bw_estimate)은 다음 중 하나에 따라 갱신될 수 있다. 즉
bw_estimate = 이동 평균(bw_estimate, B / iat), 또는
bw_estimate = 이동 모드(bw_estimate, B / iat)
상기 예는 단지 예시를 위한 것으로, 대역폭을 추정하는 다른 방법을 동등하게 적용할 수 있다.
블록(460)에서 추정된 대역폭을 이용하여 송신측 또는 수신측에서의 하나 이상의 TCP 세션 파라미터들을 갱신할 수 있다. 예를 들어, 블록(460)에서 추정된 대역폭을 이용하여 혼잡 윈도우(CWND), 수신 윈도우(RWND), 및 저속 시작 임계치(SSTHRESH)를 갱신할 수 있다.
한편, 블록(450)에서 현재 IAT가 적용가능한 EE 블록의 평균 IDT 또는 현재의 평균 IDT보다 작거나, 일부 실시예의 경우 같으면, 프로세스(400)는 블록(470)으로 진행하여, prev_recv_time을 T1로 설정한다.
도 2 내지 도 4에 도시된 실시예들은 단지 예시의 목적으로서 다른 실시예들 도 동등하게 유효하다는 것을 인식해야 한다. 프로세스(200 내지 400)에 도시된 하나 이상의 행위들의 순서는 본 발명의 원리를 따르면서 변경될 수 있다. 명료히 하기 위해, 프로세스(200 내지 400)는 포괄적인 단계들로 기술하였으며, 본 발명의 원리에 일치하는 다른 단계들도 포함될 수 있다는 것을 인식해야 한다. 또한, 프로세스(200 내지 400)는 송신측에 적용되는 것으로 설명하였지만, 송신측 및 수신측이란 용어는 임의적으로, 단지 네트워크 노들들이 특정 시점에서 송신하고 수신하는 것을 참조한 것임을 인식해야 한다.
비록 본 발명을 상기 실시예에 대해서 기술하였지만, 본 발명은 또 다른 변형예도 가능하다는 것을 이해할 수 있을 것이다. 본 출원은 본 발명의 원리를 따르는 어떠한 변형예도 총 망라하며, 본 발명이 속하는 기술적 분야에 알려진 관습적인 실시 내에서 본 발명의 원리를 벗어나지 않는 한 여러 변형예가 가능하다는 것을 인식해야 한다.

Claims (34)

  1. 데이터 네트워크의 대역폭을 추정하기 위한 방법으로서,
    TCP 세그먼트와 이전 TCP 세그먼트의 출발간 시간(inter-departure time)을 측정하는 행위,
    상기 TCP 세그먼트에 대응하는 비-중복 확인(ACK)과 상기 이전 TCP 세그먼트에 대응하는 이전 비-중복 확인의 도달간 시간(inter-arrival time)을 측정하는 행위, 및
    상기 도달간 시간이 상기 출발간 시간보다 짧지 않으면 상기 도달간 시간에 적어도 부분적으로 기초하여 상기 대역폭을 추정하는 행위
    를 포함하는 데이터 네트워크의 대역폭 추정 방법.
  2. 제1항에 있어서,
    상기 TCP 세그먼트 및 상기 이전 TCP 세그먼트는 TCP 세션 동안 단지 한 번만 전송되는 데이터 네트워크의 대역폭 추정 방법.
  3. 제1항에 있어서,
    상기 출발간 시간은 네트워크 노드로부터의 상기 TCP 세그먼트의 전송 시간에서 상기 네트워크 노드로부터의 상기 이전 TCP 세그먼트의 전송 시간을 뺀 시간차이며, 상기 도달간 시간은 상기 네트워크 노드에서의 상기 비-중복 확인의 도달 시간에서 상기 네트워크 노드에서의 상기 이전의 비-중복 확인의 도달 시간의 시간차인 데이터 네트워크의 대역폭 추정 방법.
  4. 제1항에 있어서,
    상기 출발간 시간은 네트워크 노드에 의한 상기 TCP 세그먼트의 검출 시간에서 상기 네트워크 노드에 의한 상기 이전 TCP 세그먼트의 검출 시간을 뺀 시간차이며, 상기 도달간 시간은 상기 네트워크 노드에 의한 상기 비-중복 확인의 검출 시간에서 상기 네트워크 노드에 의한 상기 이전의 비-중복 확인의 검출 시간을 뺀 시간차인 데이터 네트워크의 대역폭 추정 방법.
  5. 제1항에 있어서,
    상기 대역폭에 적어도 부분적으로 기초하여 하나 이상의 TCP 세션 파라미터를 갱신하는 행위를 더 포함하는 데이터 네트워크의 대역폭 추정 방법.
  6. 데이터 네트워크의 대역폭을 추정하기 위한 방법으로서,
    추정 적격 블록의 TCP 세그먼트들의 평균 출발간 시간을 측정하는 행위,
    TCP 세그먼트에 대응하는 비-중복 확인과 이전 TCP 세그먼트에 대응하는 이전의 비-중복 확인의 도달간 시간을 측정하는 행위-상기 TCP 세그먼트는 상기 추정 적격 블록에 연관됨-, 및
    상기 도달간 시간이 상기 평균 출발간 시간보다 짧지 않으면, 상기 도달간 시간에 적어도 부분적으로 기초하여 상기 대역폭을 추정하는 행위
    를 포함하는 데이터 네트워크의 대역폭의 대역폭 추정 방법.
  7. 제6항에 있어서,
    상기 TCP 세그먼트 및 상기 이전 TCP 세그먼트는 TCP 세션 동안 단지 한 번만 전송되는 데이터 네트워크의 대역폭 추정 방법.
  8. 제6항에 있어서,
    상기 추정 적격 블록은 시작 세그먼트 번호, 시작 전송 시간, 종료 시퀀스 번호, 및 종료 전송 시간으로 정해지는 데이터 네트워크의 대역폭 추정 방법.
  9. 제8항에 있어서,
    상기 시작 세그먼트 번호는 상기 블록의 제1 TCP 세그먼트의 시퀀스 번호이고, 상기 시작 전송 시간은 네트워크 노드로부터의 상기 제1 TCP 세그먼트의 전송 시간이고, 상기 종료 시퀀스 번호는 상기 블록의 최종 TCP 세그먼트의 최종 바이트의 시퀀스 번호이고, 상기 종료 전송 시간은 상기 네트워크 노드로부터의 상기 최종 TCP 세그먼트의 전송 시간인 데이터 네트워크의 대역폭 추정 방법.
  10. 제8항에 있어서,
    상기 시작 세그먼트 번호는 상기 블록의 제1 TCP 세그먼트의 시퀀스 번호이 고, 상기 시작 전송 시간은 네트워크 노드에 의한 상기 제1 TCP 세그먼트의 검출 시간이고, 상기 종료 시퀀스 번호는 상기 블록의 최종 TCP 세그먼트의 최종 바이트의 시퀀스 번호이고, 상기 종료 전송 시간은 상기 네트워크 노드에 의한 상기 최종 TCP 세그먼트의 검출 시간인 데이터 네트워크의 대역폭 추정 방법.
  11. 제8항에 있어서,
    상기 평균 출발간 시간은 상기 종료 전송 시간에서 상기 시작 전송 시간을 뺀 시간차에 적어도 부분적으로 기초하고, 이어서 상기 시간차를 상기 종료 시퀀스 번호에서 상기 시작 시퀀스 번호를 뺀 차로 나누고, 그 결과치에 평균 세그먼트 크기를 곱하는 데이터 네트워크의 대역폭 추정 방법.
  12. 제9항에 있어서,
    상기 종료 시퀀스 번호가 0이면, 상기 평균 출발간 시간은 상기 추정 적격 블록에 연관된 최종 전송된 세그먼트의 네트워크 노드로부터의 전송 시간에서 상기 시작 전송 시간을 뺀 시간차에 적어도 부분적으로 기초하고, 이어서 상기 차를 상기 최종 전송된 세그먼트의 최종 바이트의 시퀀스 번호에서 상기 시작 세그먼트 번호를 뺀 차로 나눈 데이터 네트워크의 대역폭 추정 방법.
  13. 제10항에 있어서,
    상기 종료 시퀀스 번호가 0이면, 상기 평균 출발간 시간은 상기 추정 적격 블록에 연관된 최종 전송된 세그먼트의 네트워크 노드에 의한 검출 시간에서 상기 시작 전송 시간을 뺀 시간차에 적어도 부분적으로 기초하고, 이어서 상기 차를 상기 최종 전송된 세그먼트의 최종 바이트의 시퀀스 번호에서 상기 시작 세그먼트 번호를 뺀 차로 나눈 데이터 네트워크의 대역폭 추정 방법.
  14. 제8항에 있어서,
    복수의 TCP 세그먼트를 전송하는 행위,
    상기 시작 세그먼트 번호를 상기 복수의 TCP 세그먼트의 제1 TCP 세그먼트의 시퀀스 번호로 설정하는 행위,
    상기 시작 전송 시간을, 네트워크 노드로부터의 상기 제1 TCP 세그먼트의 전송 시간 또는 상기 네트워크 노드에 의한 상기 제1 TCP 세그먼트의 검출 시간 중 하나로 설정하는 행위, 및
    적어도 다른 한 동작(action)을 취하는 행위
    를 포함하며, 상기 다른 한 동작은,
    상기 복수의 TCP 세그먼트의 최종 TCP 세그먼트가 재전송된 세그먼트인 경우, 상기 종료 시퀀스 번호를 상기 복수의 TCP 세그먼트의 최종 TCP 세그먼트 다음 세그먼트의 시퀀스 번호에 적어도 부분적으로 기초하여 설정하고,
    상기 최종 TCP 세그먼트와 상기 최종 TCP 세그먼트 다음 세그먼트의 현재 출발간 시간이 현재 평균 출발간 시간에 최대 출발간 시간 편차를 더한 합보다 큰 경우, 상기 종료 시퀀스 번호를 상기 최종 TCP 세그먼트의 시퀀스 번호에 적어도 부 분적으로 기초하여 설정하고,
    상기 최종 TCP 세그먼트의 상기 시퀀스 번호에 상기 최종 TCP 세그먼트의 길이를 더한 합이 상기 시작 세그먼트 번호에 최대 블록 크기를 더한 합보다 큰 경우, 상기 종료 시퀀스 번호를 상기 최종 TCP 세그먼트의 상기 시퀀스 번호에 상기 최종 TCP 세그먼트의 상기 길이를 더한 상기 합에 적어도 부분적으로 기초하여 설정하고,
    상기 최종 TCP 세그먼트가 재전송된 세그먼트인 경우, 상기 종료 전송 시간을 상기 네트워크 노드로부터의 상기 최종 TCP 세그먼트의 다음 세그먼트의 전송 시간 또는 상기 네트워크 노드에 의한 상기 최종 TCP 세그먼트의 다음 세그먼트의 검출 시간 중 하나로 설정하고,
    상기 최종 TCP 세그먼트와 상기 최종 TCP 세그먼트 다음 세그먼트의 상기 현재 출발간 시간이 상기 현재 평균 출발간 시간에 상기 최대 출발간 시간 편차를 더한 합보다 큰 경우, 상기 종료 전송 시간을 상기 네트워크 노드로부터의 상기 최종 TCP 세그먼트의 전송 시간 또는 상기 네트워크 노드에 의한 상기 최종 TCP 세그먼트의 검출 시간 중 하나로 설정하고,
    상기 최종 TCP 세그먼트의 상기 시퀀스 번호에 상기 최종 TCP 세그먼트의 상기 길이를 더한 상기 합이 상기 시작 세그먼트 번호에 최대 블록 크기를 더한 합보다 크면, 상기 네트워크 노드로부터의 상기 최종 TCP 세그먼트의 전송 시간 또는 상기 네트워크 노드에 의한 상기 최종 TCP 세그먼트의 검출 시간 중 하나로 설정하는 것으로 이루어진 그룹에서 선택되는 데이터 네트워크의 대역폭 추정 방법.
  15. 제6항에 있어서,
    상기 도달간 시간은 네트워크 노드에서의 상기 비-중복 확인의 도달 시간에서 상기 네트워크 노드에서의 상기 이전의 비-중복 확인의 도달 시간을 뺀 시간차인 데이터 네트워크의 대역폭 추정 방법.
  16. 제6항에 있어서,
    상기 도달간 시간은 네트워크 노드에 의한 상기 비-중복 확인의 검출 시간에서 상기 네트워크 노드에 의한 상기 이전의 비-중복 확인의 검출 시간을 뺀 시간차인 네트워크의 대역폭 추정 방법.
  17. 제6항에 있어서,
    상기 대역폭에 적어도 부분적으로 기초하여 하나 이상의 TCP 세션 파라미터를 갱신하는 행위를 더 포함하는 네트워크의 대역폭 추정 방법.
  18. 네트워크 노드로서,
    데이터 네트워크와의 연결성을 제공하도록 적응된 네트워크 인터페이스,
    상기 네트워크 인터페이스에 결합된 프로세서, 및
    상기 프로세서에 결합된 메모리
    를 포함하며, 상기 메모리는 제어 센터로 하여금,
    TCP 세그먼트와 이전 TCP 세그먼트의 출발간 시간을 측정하고,
    상기 TCP 세그먼트에 대응하는 비-중복 확인과 상기 이전 TCP 세그먼트에 대응하는 이전의 비-중복 확인의 도달간 시간을 측정하고,
    상기 도달간 시간이 상기 출발간 시간 보다 짧지 않은 경우, 상기 도달간 시간에 적어도 부분적으로 기초하여 상기 데이터 네트워크의 대역폭을 추정하도록 하게 하는 프로세서 실행가능 명령어 시퀀스를 포함하는 네트워크 노드.
  19. 제18항에 있어서,
    상기 TCP 세그먼트 및 상기 이전 TCP 세그먼트는 TCP 세션 동안 단지 한 번만 전송되는 네트워크 노드.
  20. 제18항에 있어서,
    상기 출발간 시간은 네트워크 노드로부터의 상기 TCP 세그먼트의 전송 시간에서 상기 네트워크 노드로부터의 상기 이전 TCP 세그먼트의 전송 시간을 뺀 시간차이며, 상기 도달간 시간은 상기 네트워크 노드에서의 상기 비-중복 확인의 도달 시간에서 상기 네트워크 노드에서의 상기 이전의 비-중복 확인의 도달 시간을 뺀 시간차인 네트워크 노드.
  21. 제18항에 있어서,
    상기 출발간 시간은 네트워크 노드에 의한 상기 TCP 세그먼트의 검출 시간에 서 상기 네트워크 노드에 의한 상기 이전 TCP 세그먼트의 검출 시간을 뺀 시간차이며, 상기 도달간 시간은 상기 네트워크 노드에 의한 상기 비-중복 확인의 검출 시간에서 상기 네트워크 노드에 의한 상기 이전의 비-중복 확인의 검출 시간을 뺀 시간차인 네트워크 노드.
  22. 제18항에 있어서,
    상기 메모리는 상기 네트워크 노드로 하여금 상기 대역폭에 적어도 부분적으로 기초하여 하나 이상의 TCP 세션 파라미터를 갱신하게 하는 프로세서 실행가능 명령어 시퀀스를 더 포함하는 네트워크 노드.
  23. 네트워크 노드로서,
    데이터 네트워크와의 연결성을 제공하도록 적응된 네트워크 인터페이스,
    상기 네트워크 인터페이스에 결합된 프로세서, 및
    상기 프로세서에 결합된 메모리
    를 포함하며, 상기 메모리는 제어 센터로 하여금,
    추정 적격 블록의 TCP 세그먼트의 평균 출발간 시간을 측정하고,
    TCP 세그먼트에 대응하는 비-중복 확인과 이전 TCP 세그먼트에 대응하는 이전의 비-중복 확인의 도달간 시간을 측정하고-상기 TCP 세그먼트는 상기 추정 적격 블록에 연관됨-,
    상기 도달간 시간이 상기 평균 출발간 시간 보다 짧지 않은 경우, 상기 도 달간 시간에 적어도 부분적으로 기초하여 상기 데이터 네트워크의 대역폭을 추정하도록 하게 하는 프로세서 실행가능 명령어 시퀀스를 포함하는 네트워크 노드.
  24. 제23항에 있어서,
    상기 TCP 세그먼트 및 상기 이전 TCP 세그먼트는 TCP 세션 동안 단지 한 번만 전송되는 네트워크 노드.
  25. 제23항에 있어서,
    상기 추정 적격 블록은 시작 세그먼트 번호, 시작 전송 시간, 종료 시퀀스 번호, 및 종료 전송 시간으로 정해지는 네트워크 노드.
  26. 제25항에 있어서,
    상기 시작 세그먼트 번호는 상기 블록의 제1 TCP 세그먼트의 시퀀스 번호이고, 상기 시작 전송 시간은 네트워크 노드로부터의 상기 제1 TCP 세그먼트의 전송 시간이고, 상기 종료 시퀀스 번호는 상기 블록의 최종 TCP 세그먼트의 최종 바이트의 시퀀스 번호이고, 상기 종료 전송 시간은 상기 네트워크 노드로부터의 상기 최종 TCP 세그먼트의 전송 시간인 네트워크 노드.
  27. 제25항에 있어서,
    상기 시작 세그먼트 번호는 상기 블록의 제1 TCP 세그먼트의 시퀀스 번호이 고, 상기 시작 전송 시간은 네트워크 노드에 의한 상기 제1 TCP 세그먼트의 검출 시간이고, 상기 종료 시퀀스 번호는 상기 블록의 최종 TCP 세그먼트의 최종 바이트의 시퀀스 번호이고, 상기 종료 전송 시간은 상기 네트워크 노드에 의한 상기 최종 TCP 세그먼트의 검출 시간인 네트워크 노드.
  28. 제25항에 있어서,
    상기 평균 출발간 시간은 상기 종료 전송 시간에서 상기 시작 전송 시간을 뺀 시간차에 적어도 부분적으로 기초하고, 이어서 상기 시간차를 상기 종료 시퀀스 번호에서 상기 시작 시퀀스 번호를 뺀 차로 나누고, 그 결과치에 평균 세그먼트 크기를 곱하는 네트워크 노드.
  29. 제26항에 있어서,
    상기 종료 시퀀스 번호가 0이면, 상기 평균 출발간 시간은 상기 추정 적격 블록에 연관된 최종 전송된 세그먼트의 네트워크 노드로부터의 전송 시간에서 상기 시작 전송 시간을 뺀 시간차에 적어도 부분적으로 기초하고, 이어서 상기 시간차를 상기 최종 전송된 세그먼트의 최종 바이트의 시퀀스 번호에서 상기 시작 세그먼트 번호를 뺀 차로 나눈 네트워크 노드.
  30. 제27항에 있어서,
    상기 종료 시퀀스 번호가 0이면, 상기 평균 출발간 시간은 상기 추정 적격 블록에 연관된 최종 전송된 세그먼트의 네트워크 노드에 의한 검출 시간에서 상기 시작 전송 시간을 뺀 시간차에 적어도 부분적으로 기초하고, 이어서 상기 차를 상기 최종 전송된 세그먼트의 최종 바이트의 시퀀스 번호에서 상기 시작 세그먼트 번호를 뺀 차로 나눈 네트워크 노드.
  31. 제25항에 있어서,
    상기 메모리는 상기 네트워크 노드로 하여금,
    복수의 TCP 세그먼트를 전송하고,
    상기 시작 세그먼트 번호를 상기 복수의 TCP 세그먼트의 제1 TCP 세그먼트의 시퀀스 번호로 설정하고,
    상기 시작 전송 시간을, 네트워크 노드로부터의 상기 제1 TCP 세그먼트의 전송 시간 또는 상기 네트워크 노드에 의한 상기 제1 TCP 세그먼트의 검출 시간 중 하나로 설정하고,
    적어도 다른 한 동작(action)을 취하게 하는 프로세서 실행가능 명령어 시퀀스를 더 포함하며, 상기 다른 한 동작은,
    상기 복수의 TCP 세그먼트의 최종 TCP 세그먼트가 재전송된 세그먼트인 경우, 상기 종료 시퀀스 번호를 상기 복수의 TCP 세그먼트의 최종 TCP 세그먼트 다음 세그먼트의 시퀀스 번호에 적어도 부분적으로 기초하여 설정하고,
    상기 최종 TCP 세그먼트와 상기 최종 TCP 세그먼트 다음 세그먼트의 현재 출발간 시간이 현재 평균 출발간 시간에 최대 출발간 시간 편차를 더한 합보다 큰 경 우, 상기 종료 시퀀스 번호를 상기 최종 TCP 세그먼트의 시퀀스 번호에 적어도 부분적으로 기초하여 설정하고,
    상기 최종 TCP 세그먼트의 상기 시퀀스 번호에 상기 최종 TCP 세그먼트의 길이를 더한 합이 상기 시작 세그먼트 번호에 최대 블록 크기를 더한 합보다 큰 경우, 상기 종료 시퀀스 번호를 상기 최종 TCP 세그먼트의 상기 시퀀스 번호에 상기 최종 TCP 세그먼트의 상기 길이를 더한 상기 합에 적어도 부분적으로 기초하여 설정하고,
    상기 최종 TCP 세그먼트가 재전송된 세그먼트인 경우, 상기 종료 전송 시간을 상기 네트워크 노드로부터의 상기 최종 TCP 세그먼트의 다음 세그먼트의 전송 시간 또는 상기 네트워크 노드에 의한 상기 최종 TCP 세그먼트의 다음 세그먼트의 검출 시간 중 하나로 설정하고,
    상기 최종 TCP 세그먼트와 상기 최종 TCP 세그먼트 다음 세그먼트의 상기 현재 출발간 시간이 상기 현재 평균 출발간 시간에 상기 최대 출발간 시간 편차를 더한 합보다 큰 경우, 상기 종료 전송 시간을 상기 네트워크 노드로부터의 상기 최종 TCP 세그먼트의 전송 시간 또는 상기 네트워크 노드에 의한 상기 최종 TCP 세그먼트의 검출 시간 중 하나로 설정하고,
    상기 최종 TCP 세그먼트의 상기 시퀀스 번호에 상기 최종 TCP 세그먼트의 상기 길이르 더한 상기 합이 상기 시작 세그먼트 번호에 최대 블록 크기를 더한 합보다 크면, 상기 네트워크 노드로부터의 상기 최종 TCP 세그먼트의 전송 시간 또는 상기 네트워크 노드에 의한 상기 최종 TCP 세그먼트의 검출 시간 중 하나로 설정하 는 것으로 이루어진 그룹에서 선택되는 네트워크 노드.
  32. 제23항에 있어서,
    상기 도달간 시간은 네트워크 노드에서의 상기 비-중복 확인의 도달 시간에서 상기 네트워크 노드에서의 상기 이전의 비-중복 확인의 도달 시간을 뺀 시간차인 네트워크 노드.
  33. 제23항에 있어서,
    상기 도달간 시간은 네트워크 노드에 의한 상기 비-중복 확인의 검출 시간에서 상기 네트워크 노드에 의한 상기 이전의 비-중복 확인의 검출 시간을 뺀 시간차인 네트워크 노드.
  34. 제23항에 있어서,
    상기 메모리는 상기 네트워크 노드로 하여금, 상기 대역폭에 적어도 부분적으로 기초하여 하나 이상의 TCP 세션 파라미터를 갱신하게 하는 프로세서 실행가능 명령어 시퀀스를 더 포함하는 네트워크 노드.
KR1020077014414A 2004-11-24 2005-11-23 데이터 네트워크의 대역폭 추정 방법 및 네트워크 노드 KR20080042764A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63091604P 2004-11-24 2004-11-24
US60/630,916 2004-11-24

Publications (1)

Publication Number Publication Date
KR20080042764A true KR20080042764A (ko) 2008-05-15

Family

ID=36498553

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077014414A KR20080042764A (ko) 2004-11-24 2005-11-23 데이터 네트워크의 대역폭 추정 방법 및 네트워크 노드

Country Status (2)

Country Link
KR (1) KR20080042764A (ko)
WO (1) WO2006058212A2 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10749765B2 (en) 2019-01-08 2020-08-18 International Business Machines Corporation Method and system for monitoring communication in a network

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6646987B1 (en) * 1998-10-05 2003-11-11 Nortel Networks Limited Method and system for transmission control protocol (TCP) packet loss recovery over a wireless link
US6987728B2 (en) * 2001-01-23 2006-01-17 Sharp Laboratories Of America, Inc. Bandwidth allocation system
US7299280B2 (en) * 2001-10-17 2007-11-20 The Regents Of University Of California Method and apparatus for TCP with faster recovery
CA2473863A1 (en) * 2001-11-13 2003-05-22 Ems Technologies, Inc. Enhancements for tcp perfomance enhancing proxies
US6744766B2 (en) * 2002-06-05 2004-06-01 Meshnetworks, Inc. Hybrid ARQ for a wireless Ad-Hoc network and a method for using the same
US7225266B2 (en) * 2002-12-20 2007-05-29 Nokia Corporation Adaptive delayed ACK switching for TCP applications

Also Published As

Publication number Publication date
WO2006058212A3 (en) 2006-09-08
WO2006058212A2 (en) 2006-06-01

Similar Documents

Publication Publication Date Title
US20070223529A1 (en) Methods and apparatus for estimating bandwidth of a data network
US7385923B2 (en) Method, system and article for improved TCP performance during packet reordering
US20080291911A1 (en) Method and apparatus for setting a TCP retransmission timer
US20070223395A1 (en) Methods and apparatus for optimizing a TCP session for a wireless network
CN110661723B (zh) 一种数据传输方法、计算设备、网络设备及数据传输系统
US8004981B2 (en) Methods and devices for the coordination of flow control between a TCP/IP network and other networks
US7564843B2 (en) Method, system and article for improved network performance by avoiding IP-ID wrap-arounds causing data corruption on fast networks
JP4778453B2 (ja) 通信端末、輻輳制御方法および輻輳制御プログラム
US20070223492A1 (en) Methods and apparatus for optimizing a TCP session for a wireless network
US9843525B2 (en) Apparatus and method
US20060209838A1 (en) Method and system for estimating average bandwidth in a communication network based on transmission control protocol
AU782705B2 (en) Methodology for improving TCP throughput over lossy communication links
WO2019169273A1 (en) Method of traffic and congestion control for a network with quality of service
CN104580171B (zh) Tcp协议的传输方法、装置和系统
KR101231793B1 (ko) Tcp 세션 최적화 방법 및 네트워크 노드
KR101240312B1 (ko) 무선 네트워크에 대해 tcp 세션을 최적화하는 방법 및장치
KR20080042764A (ko) 데이터 네트워크의 대역폭 추정 방법 및 네트워크 노드
Ayar et al. A transparent reordering robust TCP proxy to allow per-packet load balancing in core networks
Bassil TCP congestion control scheme for wireless networks based on tcp reserved field and snr ratio
WO2006058257A2 (en) Method and apparatus for setting a tcp retransmission timer
Kamboj et al. Various TCP options for congestion evasion
Altahir et al. Performance evaluation of TCP congestion control mechanisms using NS-2
Liu et al. A unified tcp enhancement for wireless mesh networks
Subedi et al. Performance Evaluation of TCP Tahoe, Reno, Reno with SACK, and NewReno Using OPNET Modeler
US20140369189A1 (en) Method of controlling packet transmission in network system and network system transmitting packet using pseudo-tcp agent

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