KR20150030713A - 낙관적인 윈도우 조정들을 이용한 원치않은 tcp 재송신들의 회피 - Google Patents

낙관적인 윈도우 조정들을 이용한 원치않은 tcp 재송신들의 회피 Download PDF

Info

Publication number
KR20150030713A
KR20150030713A KR20157000714A KR20157000714A KR20150030713A KR 20150030713 A KR20150030713 A KR 20150030713A KR 20157000714 A KR20157000714 A KR 20157000714A KR 20157000714 A KR20157000714 A KR 20157000714A KR 20150030713 A KR20150030713 A KR 20150030713A
Authority
KR
South Korea
Prior art keywords
data segment
lost
receiver
sequence number
receiving
Prior art date
Application number
KR20157000714A
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 KR20150030713A publication Critical patent/KR20150030713A/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]
    • 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/1825Adaptation of specific ARQ protocol parameters according to transmission conditions
    • 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/1829Arrangements specially adapted for the receiver end
    • H04L1/1832Details of sliding window management
    • 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/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1838Buffer management for semi-reliable protocols, e.g. for less sensitive applications such as streaming video

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

송신 제어 프로토콜 (TCP) 을 통해 데이터를 통신하기 위한 방법, 장치, 및 컴퓨터 프로그램 제품이 제공된다. 그 장치는 순차적인 순서에 따라 복수의 데이터 세그먼트들을 전송기로부터 수신하고, 순차적인 순서에 있어서 적어도 하나의 손실된 데이터 세그먼트를 추론하며, 적어도 하나의 손실된 데이터 세그먼트의 추론에 기초하여, 수신된 데이터 세그먼트의 최고 바이트 시퀀스 번호 플러스 1 의 수신을 전송기로 확인응답한다. 그 장치는 또한, 적어도 하나의 손실된 데이터 세그먼트의 추론 또는 TCP 연결의 라운드-트립-타임 중 적어도 하나에 기초하여 수신 윈도우를 조정하고, 여기서, 수신 윈도우는 데이터 세그먼트들을 수신하기 위한 버퍼 용량을 표시한다. 그 장치는 추가로, 조정된 수신 윈도우를 전송기로 통지한다.

Description

낙관적인 윈도우 조정들을 이용한 원치않은 TCP 재송신들의 회피{AVOIDING UNWANTED TCP RETRANSMISSIONS USING OPTIMISTIC WINDOW ADJUSTMENTS}
관련 출원(들)에 대한 상호참조
본 출원은 "AVOIDING UNWANTED TCP RETRANSMISSIONS USING OPTIMISTIC WINDOW ADJUSTMENTS" 의 명칭으로 2012년 6월 14일자로 출원되고 본 명세서에 전부 참조로 명백히 포함되는 미국 가출원 제61/659,950호의 이익을 주장한다.
본 개시는 일반적으로 통신 시스템들에 관한 것으로서, 더 상세하게는, 송신 제어 프로토콜 (TCP) 을 통해 전송된 원치않은 데이터 세그먼트 재송신들을 저감시키기 위한 확인응답 및 수신 윈도우를 조정하는 것에 관한 것이다.
송신 제어 프로토콜 (TCP) 은 통신 네트워크들에 걸쳐 널리 이용되는 신뢰성있는 데이터 전송 프로토콜이다. TCP 는 현재 TCP 세션들 사이에서 대역폭을 공유하기 위해 강인한 혼잡 제어 알고리즘을 제공한다. 혼잡 제어 알고리즘은 가용 대역폭 용량에 일치하기 위해 데이터 전송을 역으로 자동으로 스케일링함으로써 네트워크 혼잡에 관련된 문제들을 회피시킨다. 공유된 네트워크 링크에 걸친 다중의 동시발생적이고 신뢰성있는 데이터 전송들은, 데이터 전송 세션들 각각이 링크 용량을 충분히 활용하려고 시도하면 높은 혼잡을 발생시킬 수도 있다. 높은 혼잡은 높은 패킷 손실을 발생시킬 수도 있고, 이는, 차례로, 다수의 패킷 재송신들을 야기할 수도 있어, 결국, 네트워크 붕괴를 발생시킬 수도 있다. TCP 의 혼잡 제어 알고리즘은, 얼마나 많은 대역폭이 이용가능한지를 자동으로 결정하고 총 가용 대역폭을 다른 동시발생적인 TCP 세션들과 동일하게 공유함으로써, 이러한 문제를 회피한다.
TCP 는 혼잡 제어 능력을 제공하기 위해 다양한 내부 알고리즘들을 활용한다. 이들 알고리즘들은 플로우 제어, 슬로우 스타트, 패킷 재순서화, 패킷 손실 검출, 재송신 타이머들, 및 네트워크 조건들에 기초하여 데이터 송신 레이트를 동적으로 감소 또는 증가하기 위한 다수의 다른 메커니즘들을 포함한다.
TCP 의 플로우 제어 알고리즘은, 수신기가 프로세싱 또는 버퍼링 가능한 것보다 더 많은 데이터를 수신기가 수신하는 것을 방지하기 위한 메커니즘이다. 예를 들어, 수신하는 TCP 스택이 16 킬로바이트의 데이터를 저장하기 위한 버퍼를 가지면, 전송기는 16 킬로바이트 초과의 데이터를 언제라도 수신기로 송신하도록 허용되지 않는다. 수신기는, 얼마나 많은 부가 데이터를 수신기가 수용할 수 있는지를 명시하는 확인응답을 데이터 전송 전반에 걸쳐 전송기로 역으로 계속 전송한다. 수신기가 수용할 수 있는 이러한 부가 데이터는 "윈도우 표시" (또는 "윈도우 통지") 로서 공지되며 TCP 헤더에 필드로서 포함된다.
송신 제어 프로토콜 (TCP) 은, 예를 들어, 라이브 오디오 또는 비디오 어플리케이션에 대해 문제가 될 수도 있다. TCP 하에서, 데이터 부분들이 전송기로부터 수신기로 전달될 경우, 수신기에서의 임의의 손실된 데이터 부분들은 전송기에 의해 재송신되고 수신기에서 수신되어야 하여, 어떠한 손실된 부분들도 없는 데이터만이 어플리케이션에 전달된다. TCP 가 스트리밍 어플리케이션들 (예를 들어, 오디오 또는 비디오) 을 위해 사용될 경우, 데이터의 손실은, 프로토콜 구현이 충진될 손실된 데이터 부분들을 대기하는 동안 수신 어플리케이션에서 원치않은 지연을 야기할 수 있다. 이는, 연속적인 미디어를 플레이 백할 경우에 원치않는 거동 (예를 들어, 스킵, 중지 (stall)) 을 야기할 수 있다. 이에 따라, 본 개시는 수신기에서의 비순차적으로 (out of order) 도달한 데이터 부분들을 어플리케이션으로 즉시 전달되게 하고, 불필요한 더 이전의 부분들을 전송기가 재송신하는 것을 방지한다.
일 양태에 있어서, 송신 제어 프로토콜 (TCP) 을 통해 데이터를 통신하기 위한 방법, 장치, 및 컴퓨터 프로그램 제품이 제공된다. 그 장치는 순차적인 순서에 따라 복수의 데이터 세그먼트들을 전송기로부터 수신하고, 순차적인 순서에 있어서 적어도 하나의 손실된 데이터 세그먼트를 추론하며, 적어도 하나의 손실된 데이터 세그먼트의 추론에 기초하여, 수신된 데이터 세그먼트의 최고 바이트 시퀀스 번호 플러스 1 의 수신을 전송기로 확인응답한다.
추가의 양태에 있어서, 그 장치는 순차적인 순서에 따라 복수의 데이터 세그먼트들을 수신기로 송신하고, 수신기에서 수신된 데이터 세그먼트의 최고 시퀀스 번호 플러스 1 의 수신을 확인응답하는 수신기로부터의 확인응답을 전송기에서 수신하고, 통지된 수신 윈도우를 수신기로부터 수신하는 것으로서, 통지된 수신 윈도우는 수신기에서 데이터 패킷들을 수신하기 위한 버퍼 용량을 표시하는, 상기 통지된 수신 윈도우를 수신하고, 그리고 통지된 수신 윈도우에 기초하여 적어도 하나의 부가적인 데이터 패킷을 조정된 송신 레이트로 수신기로 전송한다.
도 1 은 데이터를 통신하는 방법의 플로우 차트이다.
도 2 은 데이터를 통신하는 방법의 플로우 차트이다.
도 3 은 예시적인 장치에 있어서 상이한 모듈들/수단들/컴포넌트들 간의 데이터 플로우를 도시한 개념적 데이터 플로우 다이어그램이다.
도 4 는 예시적인 장치에 있어서 상이한 모듈들/수단들/컴포넌트들 간의 데이터 플로우를 도시한 개념적 데이터 플로우 다이어그램이다.
도 5 는 프로세싱 시스템을 채용하는 장치에 대한 하드웨어 구현의 일 예를 도시한 다이어그램이다.
도 6 은 프로세싱 시스템을 채용하는 장치에 대한 하드웨어 구현의 일 예를 도시한 다이어그램이다.
첨부 도면들과 관련하여 하기에 기재된 상세한 설명은 다양한 구성들의 설명으로서 의도되고, 본 명세서에 설명된 개념들이 실시될 수도 있는 유일한 구성들만을 나타내도록 의도되지 않는다. 상세한 설명은 다양한 개념들의 철저한 이해를 제공할 목적으로 특정 상세들을 포함한다. 하지만, 이들 개념들은 이들 특정 상세들없이도 실시될 수도 있음이 당업자에게 명백할 것이다. 일부 경우들에 있어서, 널리 공지된 구조들 및 컴포넌트들은 그러한 개념들을 불명료하게 하는 것을 회피하기 위해 블록 다이어그램 형태로 도시된다.
이제, 원격통신 시스템들의 수개의 양태들이 다양한 장치 및 방법들을 참조하여 제시될 것이다. 이들 장치 및 방법들은 다양한 블록들, 모듈들, 컴포넌트들, 회로들, 단계들, 프로세스들, 알고리즘들 등 ("엘리먼트들" 로서 총칭함) 에 의해 다음의 상세한 설명에서 설명되고 첨부 도면들에 도시될 것이다. 이들 엘리먼트들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 임의의 조합을 사용하여 구현될 수도 있다. 그러한 엘리먼트들이 하드웨어로서 구현될지 또는 소프트웨어로서 구현될지는 전체 시스템에 부과된 특정 어플리케이션 및 설계 제약들에 의존한다.
예로서, 엘리먼트, 또는 엘리먼트의 임의의 부분, 또는 엘리먼트들의 임의의 조합은, 하나 이상의 프로세서들을 포함한 "프로세싱 시스템" 으로 구현될 수도 있다. 프로세서들의 예들은 마이크로프로세서들, 마이크로 제어기들, 디지털 신호 프로세서들 (DSP들), 필드 프로그램가능 게이트 어레이들 (FPGA들), 프로그램가능 로직 디바이스들 (PLD들), 상태 머신들, 게이트형 로직, 별도의 하드웨어 회로들, 및 본 개시 전반에 걸쳐 설명된 다양한 기능을 수행하도록 구성된 다른 적절한 하드웨어를 포함한다. 프로세싱 시스템에 있어서의 하나 이상의 프로세서들은 소프트웨어를 실행할 수도 있다. 소프트웨어는, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 디스크립션 언어, 또는 기타 등등으로서 지칭되든 아니든, 명령들, 명령 세트들, 코드, 코드 세그먼트들, 프로그램 코드, 프로그램들, 서브프로그램들, 소프트웨어 모듈들, 어플리케이션들, 소프트웨어 어플리케이션들, 소프트웨어 패키지들, 루틴들, 서브루틴들, 오브젝트들, 실행가능물들, 실행 스레드들, 절차들, 함수들 등을 의미하도록 넓게 해석될 것이다.
이에 따라, 하나 이상의 예시적인 실시형태들에 있어서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 소프트웨어에서 구현된다면, 그 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상으로 저장 또는 인코딩될 수도 있다. 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함한다. 저장 매체는, 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수도 있다. 한정이 아닌 예로서, 그러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장부, 자기 디스크 저장부 또는 다른 자기 저장 디바이스들, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 수록 또는 저장하는데 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 본 명세서에서 사용되는 바와 같은 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루레이 디스크를 포함하며, 여기서, 디스크 (disk) 는 통상적으로 데이터를 자기적으로 재생하지만 디스크 (disc) 는 레이저를 이용하여 데이터를 광학적으로 재생한다. 상기의 조합들이 또한, 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
송신 제어 프로토콜 (TCP) 은 널리 이용되는 전송 프로토콜이다. TCP 는, 예를 들어, 인터넷 어플리케이션들에 의해 이용될 수도 있다. TCP 는 정확한 데이터 전달을 위해 최적화되며, 여기서, 데이터는 세그먼트들 (패킷들) 로 분할되고 세그먼트들은 프로토콜에 따라 순차적으로 어플리케이션에 전달된다. 전송기로부터 수신기로의 전달 동안, 세그먼트들은 잠재적으로 손실될 수도 있다. 손실될 경우, 세그먼트들의 전송기는, 수신기가 전송기에 통지 (또는 통지하도록 유도) 할 때까지 손실된 세그먼트들에 대해 알지 못한다. 추상 TCP 구현들 때문에, 수신기는 퍼-바이트 (per-byte) 시퀀스 번호를 사용하여 넘버링된 데이터를, 실제 패킷 수신 순서와는 무관하게 최대 순차적 시퀀스 번호까지 수신 어플리케이션으로 전달한다.
예를 들어, 전송기는 세그먼트들 1, 2, 3, 4, 5, 및 6 을 수신기로 전송할 수도 있다. 하지만, 전달 동안, 세그먼트 3 이 손실되지만 세그먼트들 1, 2, 4, 5, 및 6 은 수신기에서 성공적으로 수신된다. 이에 따라, TCP 하에서, 수신기는, 세그먼트 3 이 전송기로부터 재송신되고 수신기에서 성공적으로 수신될 때까지, 세그먼트들 4, 5, 및 6 으로부터의 데이터를 수신 어플리케이션으로 전달할 수 없다.
더 상세하게, 수신기가 수신하는 세그먼트 3 에 후속하는 세그먼트 (예를 들어, 세그먼트들 4, 5, 및 6) 를 전송기가 전송할 때마다, 수신기는 순차적으로 수신된 세그먼트에 포함된 최대 또는 최근의 수신된 바이트 시퀀스 번호를 확인응답할 것이고, 예를 들어, 수신기는, 세그먼트 4 가 수신될 때 및 세그먼트들 5 및 6 이 수신될 때 다시, 세그먼트 2 에 포함된 최대 시퀀스 번호 (플러스 1) 의 수신을 확인응답 (ACK) 할 것이다. 이에 따라, 세그먼트 2 의 반복된 확인응답에 기초하여, 전송기는, 전송기가 세그먼트 2 의 수신에 관한 추가 통지들을 수신하였기 때문에 세그먼트 3 이 수신기에서 수신되지 않았었음을 추론할 것이다. 추가 통지들은 또한, 비록 세그먼트 3 이 손실되었을 수도 있지만 세그먼트 3 이후에 순차적으로 순서화된 세그먼트들이 수신기에서 성공적으로 수신되었음을 전송기에게 시사할 수도 있다.
수신기가 세그먼트 3 을 손실하였음을 전송기가 인식할 경우, 전송기는 "신속 재송신" 으로 지칭된 절차를 이용하여 세그먼트 3 을 수신기로 재송신할 것이다. 세그먼트 3 이 수신기에 도달할 경우, 세그먼트들 3, 4, 5, 및 6 은 연속 순서일 것이고, 따라서, TCP 는 수신기로 하여금 세그먼트들 3, 4, 5, 및 6 으로부터의 모든 데이터를 수신 어플리케이션으로 전달하게 한다. 더욱이, 수신기는 세그먼트 6 으로부터의 바이트들의 전송기로의 수신을 확인응답할 것이고, 이제, 이는 순차적으로 수신된 최대 또는 최근의 수신된 세그먼트일 것이다. 세그먼트 6 에 대한 데이터의 확인응답이 전송기에 의해 수신될 경우, 전송기는 수신기가 다음 순차적인 세그먼트 (예를 들어, 세그먼트 7) 를 수신하도록 준비됨을 추론할 수도 있고, 이에 따라 송신할 수도 있다.
현재, TCP 는, 예를 들어, 라이브 오디오 또는 비디오 이벤트에 대한 것과 같은 특정 환경들에서 문제가 될 수도 있다. 세그먼트가 전송기로부터 수신기로의 전달 동안 손실되어 갈 경우, 수신기에서 손실된 세그먼트를 수신하기 위해 대기함에 있어서의 지연은 불필요하거나 원치않은 것일 수도 있다. 이는, 손실된 세그먼트가 전송기에 의해 재송신되고 수신기에서 성공적으로 수신될 때까지, 수신 어플리케이션은 수신기에서 후속적으로 수신된 (또는 손실된 세그먼트 이후에 순차적으로 순서화된) 세그먼트들을 수신할 수 없기 때문이다.
스트리밍 비디오 시스템들에 있어서, TCP 는 방화벽들을 통과하기 위한 그 능력 또는 다른 이유들로 인해 전송 프로토콜로서 이용될 수도 있다. TCP 는 순차적인 전달 추상을 수신 어플리케이션에 제공한다. 결과적으로, (2-당사자 대화의) 수신기에서 "손실된" 임의의 데이터는 전송자에 의해 반드시 충진되어, 어떠한 손실된 부분들도 없는 데이터만이 어플리케이션들에 전달된다. TCP 가 스트리밍 어플리케이션들 (예를 들어, 오디오 또는 비디오) 을 위해 사용될 경우, 데이터의 손실은, 프로토콜 구현이 충진될 데이터 "홀"들을 대기하는 동안 수신 어플리케이션에서 원치않은 지연을 야기할 수 있다. 이는, 연속적인 미디어를 플레이 백할 경우에 원치않는 거동 (예를 들어, 스킵, 중지) 을 야기할 수 있다. 이에 따라, 인터페이스에 있어서의 변경이 필요하며, 이는 비순차적인 전달이 발생하도록 허용한다. 일 양태에 있어서, 프로토콜은 수신기로 하여금 "기만"하게 하고, 수신기가 수신하지 않았을 경우라도 데이터가 수신되었음을 전송기에게 나타낼 수도 있다. 예를 들어, 수신기는, 지나간 "홀들" 이 수신기에서 존재하더라도 새롭게 도달된 세그먼트들 (패킷들) 에 대한 확인응답을 제공할 수도 있다.
본 개시는 비순차적인 세그먼트 (패킷) 전달을 허용하는 어플리케이션 프로그래밍 인터페이스 (API) 변경들, ACK 합성 (예를 들어, 전송기에 대한 "기만"), 및 혼잡 제어를 실시하기 위한 TCP 수신기의 통지된 윈도우로의 조정을 커플링하기 위해 제공한다. 이러한 접근법은 수신기에서의 비순차적으로 도달한 정보가 어플리케이션으로 즉시 전달되게 하고, 불필요한 더 이전의 세그먼트들 (패킷들) 을 전송기가 재송신하는 것을 방지한다. 일 양태에 있어서, 전송기 자체에 대한 "기만" 은 전송기로 하여금 중요한 혼잡 제어 절차들을 수행하지 못하게 할 수도 있다. 따라서, 본 개시는 또한, 수신기가 그러한 데이터를 수신하지 않았을 경우 전송기가 수신기에서 수신된 데이터에 관하여 "기만"될 때라도 전송기로 하여금 적절한 전송 레이트로 정정하게 하기 위해 수신기의 통지된 윈도우를 조정하기 위해 제공한다.
도 1 은 송신 제어 프로토콜 (TCP) 을 통해 데이터를 통신하는 방법의 플로우 차트 (100) 이다. 그 방법은 수신기 (예를 들어, 모바일 호스트 컴퓨터) 에 의해 수행될 수도 있다.
단계 102 에서, 수신기는 순차적인 순서에 따라 복수의 데이터 세그먼트들 (패킷들) 을 전송기로부터 수신한다. 단계 104 에서, 수신기는 순차적인 순서에 있어서 적어도 하나의 손실된 데이터 세그먼트를 추론한다.
단계 106 에서, 수신기는 수신된 데이터 세그먼트의 최고 바이트 시퀀스 번호 플러스 1 의 수신을 전송기로 확인응답한다. 확인응답은 적어도 하나의 손실된 데이터 세그먼트의 추론에 기초할 수도 있다. 확인응답은 순차적인 순서에 있어서 손실된 바이트 시퀀스 번호들의 지식에 추가로 기초할 수도 있으며, 여기서, 손실된 바이트 시퀀스 번호들은 손실된 데이터 세그먼트들에 대응한다. 최고 바이트 시퀀스 번호 플러스 1 은, 적어도 하나의 손실된 데이터 패킷 이전에 순차적으로 순서화된 최근의 수신된 데이터 세그먼트에 대응할 수도 있다. 대안적으로, 최고 바이트 시퀀스 번호 플러스 1 은, 적어도 하나의 손실된 데이터 패킷 이후에 순차적으로 순서화된 최근의 수신된 데이터 패킷에 대응할 수도 있다.
일 양태에 있어서, 수신된 복수의 데이터 세그먼트들 각각은 바이트 시퀀스 번호를 가지며, 적어도 하나의 손실된 데이터 세그먼트는 순차적인 순서에 있어서 적어도 하나의 손실된 바이트 시퀀스 번호에 대응한다. 이에 따라, 최근의 수신된 데이터 패킷에 대응하는 최고 바이트 시퀀스 번호 플러스 1 은 적어도 하나의 손실된 바이트 시퀀스 번호보다 클 수도 있다.
단계 108 에서, 수신기는 수신 윈도우를 조정할 수도 있다. 수신 윈도우의 조정은 적어도 하나의 손실된 데이터 세그먼트의 추론 또는 TCP 연결의 라운드-트립-타임 중 적어도 하나에 기초할 수도 있다. 수신 윈도우는 데이터 세그먼트들을 수신하기 위한 버퍼 용량을 표시할 수도 있다. 즉, 수신 윈도우는, 수신기가 수신하고자 하는 다수의 부가적인 데이터 바이트들을 표시할 수도 있다.
단계 110 에서, 수신기는 조정된 수신 윈도우를 전송기에 통지한다. 단계 112 에서, 수신기는 어떠한 임의의 시간에 수신된 데이터 세그먼트들의 콘텐츠를, 적어도 하나의 손실된 데이터 패킷을 수신하는 것을 대기하지 않고 어플리케이션으로 전송할 수도 있다. 그 후, 단계 114 에서, 수신기는 통지된, 조정된 수신 윈도우에 기초하여 적어도 하나의 부가적인 데이터 세그먼트를 조정된 송신 레이트로 전송기로부터 수신할 수도 있다.
도 2 는 송신 제어 프로토콜 (TCP) 을 통해 데이터를 통신하는 방법의 플로우 차트 (200) 이다. 그 방법은 전송기 (예를 들어, 2-당사자 TCP 연결 중 일 당사자인 호스트 컴퓨터) 에 의해 수행될 수도 있다. 단계 202 에서, 전송기는 순차적인 순서에 따라 복수의 데이터 세그먼트들 (패킷들) 을 수신기로 송신할 수도 있다. 단계 204 에서, 전송기는 데이터 세그먼트의 최고 시퀀스 번호 플러스 1 의 수신을 확인응답하는 확인응답을 수신기로부터 수신한다. 최고 시퀀스 번호는, 동일 연결을 위해 수신기에 저장된 데이터 세그먼트들에 대응하는 모든 시퀀스 번호들 중에서 최고의 시퀀스 번호일 수도 있다.
단계 206 에서, 전송기는 통지된 수신 윈도우를 수신기로부터 수신한다. 통지된 수신 윈도우는 수신기에서 데이터 세그먼트들을 수신하기 위한 버퍼 용량을 표시할 수도 있다. 예를 들어, 통지된 수신 윈도우는, 수신기가 수신하고자 하는 다수의 부가적인 데이터 바이트들을 표시할 수도 있다. 그 후, 단계 208 에서, 전송기는 통지된 수신 윈도우에 기초하여 적어도 하나의 부가적인 데이터 세그먼트를 조정된 송신 레이트로 수신기로 전송한다.
도 3 은 예시적인 장치 (302) 에 있어서 상이한 모듈들/수단들/컴포넌트들 간의 데이터 플로우를 도시한 개념적 데이터 플로우 다이어그램 (300) 이다. 그 장치는 송신 제어 프로토콜 (TCP) 을 통해 데이터를 통신하는 수신기일 수도 있다. 그 장치는 수신 모듈 (304), 데이터 세그먼트 프로세싱 모듈 (306), 수신 윈도우 조정 모듈 (308), 어플리케이션 모듈 (310), 및 송신 모듈 (312) 을 포함한다.
수신 모듈 (304) 은 순차적인 순서에 따라 복수의 데이터 세그먼트들 (패킷들) 을 전송기 (예를 들어, 호스트 컴퓨터 TCP 프로토콜 프로세싱 소프트웨어) (350) 로부터 수신한다. 데이터 세그먼트 프로세싱 모듈 (306) 은 순차적인 순서에 있어서 적어도 하나의 손실된 데이터 세그먼트를 추론한다.
데이터 세그먼트 프로세싱 모듈 (306) 은 수신된 데이터 세그먼트의 최고 바이트 시퀀스 번호 플러스 1 의 수신을 전송기 (350) 로 확인응답한다. 확인응답은 적어도 하나의 손실된 데이터 세그먼트의 추론에 기초할 수도 있다. 확인응답은 순차적인 순서에 있어서 손실된 바이트 시퀀스 번호들의 지식에 추가로 기초할 수도 있으며, 여기서, 손실된 바이트 시퀀스 번호들은 손실된 데이터 세그먼트들에 대응한다. 최고 바이트 시퀀스 번호 플러스 1 은, 적어도 하나의 손실된 데이터 세그먼트 이전에 순차적으로 순서화된 최근의 수신된 데이터 세그먼트에 대응할 수도 있다. 대안적으로, 최고 바이트 시퀀스 번호 플러스 1 은, 적어도 하나의 손실된 데이터 세그먼트 이후에 순차적으로 순서화된 최근의 수신된 데이터 세그먼트에 대응할 수도 있다.
일 양태에 있어서, 수신된 복수의 데이터 세그먼트들 각각은 바이트 시퀀스 번호를 가지며, 적어도 하나의 손실된 데이터 세그먼트는 순차적인 순서에 있어서 적어도 하나의 손실된 바이트 시퀀스 번호에 대응한다. 이에 따라, 최근의 수신된 데이터 패킷에 대응하는 최고 바이트 시퀀스 번호 플러스 1 은 적어도 하나의 손실된 바이트 시퀀스 번호보다 클 수도 있다.
수신 윈도우 조정 모듈 (308) 은 수신 윈도우를 조정할 수도 있다. 수신 윈도우의 조정은 적어도 하나의 손실된 데이터 세그먼트의 추론 또는 TCP 연결의 라운드-트립-타임 중 적어도 하나에 기초할 수도 있다. 수신 윈도우는 데이터 세그먼트들을 수신하기 위한 버퍼 용량을 표시할 수도 있다. 즉, 수신 윈도우는, 장치 (302) 가 수신하고자 하는 다수의 부가적인 데이터 바이트들을 표시할 수도 있다.
수신 윈도우 조정 모듈 (308) 은 조정된 수신 윈도우를 송신 모듈 (312) 을 통해 전송기 (350) 로 통지한다. 더욱이, 데이터 세그먼트 프로세싱 모듈 (306) 은 어떠한 임의의 시간에 수신된 데이터 패킷들의 콘텐츠를, 적어도 하나의 손실된 데이터 세그먼트를 수신하는 것을 대기하지 않고 어플리케이션 모듈 (310) 로 전송할 수도 있다. 그 후, 데이터 세그먼트 프로세싱 모듈 (306) 은 통지된, 조정된 수신 윈도우에 기초하여 적어도 하나의 부가적인 데이터 세그먼트를 조정된 송신 레이트로 전송기 (350) 로부터 수신할 수도 있다.
도 4 는 예시적인 장치 (402) 에 있어서 상이한 모듈들/수단들/컴포넌트들 간의 데이터 플로우를 도시한 개념적 데이터 플로우 다이어그램 (400) 이다. 그 장치는 송신 제어 프로토콜 (TCP) 을 통해 데이터를 통신하는 호스트 컴퓨터일 수도 있다. 그 장치는 수신 모듈 (404), 데이터 세그먼트 프로세싱 모듈 (406), 통지된 수신 윈도우 프로세싱 모듈 (408), 및 송신 모듈 (410) 을 포함한다.
데이터 세그먼트 프로세싱 모듈 (406) 은 순차적인 순서에 따라 복수의 데이터 세그먼트들 (패킷들) 을 송신 모듈 (410) 을 통해 수신기 (예를 들어, 모바일 호스트 컴퓨터) (450) 로 송신할 수도 있다. 수신 모듈 (410) 은 데이터 세그먼트의 최고 시퀀스 번호 플러스 1 의 수신을 확인응답하는 확인응답을 수신기 (450) 로부터 수신한다. 최고 시퀀스 번호는, 동일 연결을 위해 수신기 (450) 에 저장된 데이터 세그먼트들에 대응하는 모든 시퀀스 번호들 중에서 최고의 시퀀스 번호일 수도 있다.
통지된 수신된 윈도우 프로세싱 모듈 (408) 은 통지된 수신 윈도우를 수신기 (450) 로부터 (수신 모듈 (404) 을 통해) 수신한다. 통지된 수신 윈도우는 수신기에서 데이터 세그먼트들을 수신하기 위한 버퍼 용량을 표시할 수도 있다. 예를 들어, 통지된 수신 윈도우는, 수신기가 수신하고자 하는 다수의 부가적인 데이터 바이트들을 표시할 수도 있다. 그 후, 데이터 세그먼트 프로세싱 모듈 (406) 은 통지된 수신 윈도우에 기초하여 적어도 하나의 부가적인 데이터 세그먼트를 조정된 송신 레이트로 수신기 (450) 로 전송할 수도 있다.
그 장치는, 도 1 및 도 2 의 전술된 플로우 차트들에서의 알고리즘의 단계들 각각을 수행하는 부가적인 모듈들을 포함할 수도 있다. 그에 따라, 도 1 및 도 2 의 전술된 플로우 차트들에서의 각각의 단계는 모듈에 의해 수행될 수도 있으며, 그 장치는 그 모듈들 중 하나 이상을 포함할 수도 있다. 모듈들은 서술된 프로세스들/알고리즘을 실행하도록 구체적으로 구성된 하나 이상의 하드웨어 컴포넌트들이거나, 서술된 프로세스들/알고리즘을 수행하도록 구성된 프로세서에 의해 구현되거나, 프로세서에 의한 구현을 위해 컴퓨터 판독가능 매체 내에 저장되거나, 또는 이들의 일부 조합일 수도 있다.
도 5 는 프로세싱 시스템 (514) 을 채용하는 장치 (302') 에 대한 하드웨어 구현의 일 예를 도시한 다이어그램 (500) 이다. 프로세싱 시스템 (514) 은 버스 (524) 에 의해 일반적으로 표현되는 버스 아키텍처로 구현될 수도 있다. 버스 (524) 는 프로세싱 시스템 (514) 의 특정 어플리케이션 및 전체 설계 제약들에 의존하는 임의의 수의 상호접속 버스들 및 브리지들을 포함할 수도 있다. 버스 (524) 는 프로세서 (504), 모듈들 (304, 306, 308, 310, 312), 및 컴퓨터 판독가능 매체 (506) 에 의해 표현된 하나 이상의 프로세서들 및/또는 하드웨어 모듈들을 포함한 다양한 회로들을 함께 링크시킨다.
프로세싱 시스템 (514) 은 컴퓨터 판독가능 매체 (506) 에 커플링된 프로세서 (504) 를 포함한다. 프로세서 (504) 는 컴퓨터 판독가능 매체 (506) 상에 저장된 소프트웨어의 실행을 포함한 일반 프로세싱을 책임진다. 소프트웨어는, 프로세서 (504) 에 의해 실행될 경우, 프로세싱 시스템 (514) 으로 하여금 임의의 특정 장치에 대해 상기 설명된 다양한 기능들을 수행하게 한다. 컴퓨터 판독가능 매체 (506) 는 또한, 소프트웨어를 실행할 경우 프로세서 (504) 에 의해 조작되는 데이터를 저장하는데 사용될 수도 있다. 프로세싱 시스템은 모듈들 (304, 306, 308, 310, 및 312) 중 적어도 하나를 더 포함한다. 그 모듈들은 컴퓨터 판독가능 매체 (506) 에 상주/저장된, 프로세서 (504) 에서 구동하는 소프트웨어 모듈들, 프로세서 (504) 에 커플링된 하나 이상의 하드웨어 모듈들, 또는 이들의 일부 조합일 수도 있다.
일 구성에 있어서, 데이터를 통신하기 위한 장치 (302/302') 는 순차적인 순서에 따라 복수의 데이터 세그먼트들을 전송기로부터 수신하는 수단, 순차적인 순서에 있어서 적어도 하나의 손실된 데이터 세그먼트를 추론하는 수단, 적어도 하나의 손실된 데이터 세그먼트의 추론에 기초하여, 수신된 데이터 세그먼트의 최고 바이트 시퀀스 번호 플러스 1 의 수신을 전송기로 확인응답하는 수단, 적어도 하나의 손실된 데이터 세그먼트의 추론 또는 TCP 연결의 라운드-트립-타임 중 적어도 하나에 기초하여 수신 윈도우를 조정하는 수단으로서, 수신 윈도우는 데이터 세그먼트들을 수신하기 위한 버퍼 용량을 표시하는, 상기 수신 윈도우를 조정하는 수단, 조정된 수신 윈도우를 전송기로 통지하는 수단, 통지된 조정된 수신 윈도우에 기초하여 적어도 하나의 부가적인 데이터 세그먼트를 조정된 송신 레이트로 전송기로부터 수신하는 수단, 및 어떠한 임의의 시간에 수신된 데이터 세그먼트들의 콘텐츠를, 적어도 하나의 손실된 데이터 세그먼트를 수신하는 것을 대기하지 않고 어플리케이션으로 전송하는 수단을 포함한다. 전술한 수단들은 전술한 수단들에 의해 상술된 기능들을 수행하도록 구성된 장치 (302) 의 전술한 모듈들 및/또는 장치 (302') 의 프로세싱 시스템 (514) 중 하나 이상일 수도 있다.
도 6 은 프로세싱 시스템 (614) 을 채용하는 장치 (402') 에 대한 하드웨어 구현의 일 예를 도시한 다이어그램 (600) 이다. 프로세싱 시스템 (614) 은 버스 (624) 에 의해 일반적으로 표현되는 버스 아키텍처로 구현될 수도 있다. 버스 (624) 는 프로세싱 시스템 (614) 의 특정 어플리케이션 및 전체 설계 제약들에 의존하는 임의의 수의 상호접속 버스들 및 브리지들을 포함할 수도 있다. 버스 (624) 는 프로세서 (604), 모듈들 (404, 406, 408, 410), 및 컴퓨터 판독가능 매체 (606) 에 의해 표현된 하나 이상의 프로세서들 및/또는 하드웨어 모듈들을 포함한 다양한 회로들을 함께 링크시킨다.
프로세싱 시스템 (614) 은 컴퓨터 판독가능 매체 (606) 에 커플링된 프로세서 (604) 를 포함한다. 프로세서 (604) 는 컴퓨터 판독가능 매체 (606) 상에 저장된 소프트웨어의 실행을 포함한 일반 프로세싱을 책임진다. 소프트웨어는, 프로세서 (604) 에 의해 실행될 경우, 프로세싱 시스템 (614) 으로 하여금 임의의 특정 장치에 대해 상기 설명된 다양한 기능들을 수행하게 한다. 컴퓨터 판독가능 매체 (606) 는 또한, 소프트웨어를 실행할 경우 프로세서 (604) 에 의해 조작되는 데이터를 저장하는데 사용될 수도 있다. 프로세싱 시스템은 모듈들 (404, 406, 408, 및 410) 중 적어도 하나를 더 포함한다. 그 모듈들은 컴퓨터 판독가능 매체 (606) 에 상주/저장된, 프로세서 (604) 에서 구동하는 소프트웨어 모듈들, 프로세서 (604) 에 커플링된 하나 이상의 하드웨어 모듈들, 또는 이들의 일부 조합일 수도 있다.
일 구성에 있어서, 데이터를 통신하기 위한 장치 (402/402') 는 순차적인 순서에 따라 복수의 데이터 세그먼트들을 수신기로 송신하는 수단, 수신기에서 수신된 데이터 세그먼트의 최고 시퀀스 번호 플러스 1 의 수신을 확인응답하는 수신기로부터의 확인응답을 전송기에서 수신하는 수단, 통지된 수신 윈도우를 수신기로부터 수신하는 수단으로서, 통지된 수신 윈도우는 수신기에서 데이터 세그먼트들을 수신하기 위한 버퍼 용량을 표시하는, 상기 통지된 수신 윈도우를 수신하는 수단, 및 통지된 수신 윈도우에 기초하여 적어도 하나의 부가적인 데이터 세그먼트를 조정된 송신 레이트로 수신기로 전송하는 수단을 포함한다. 전술한 수단들은 전술한 수단들에 의해 상술된 기능들을 수행하도록 구성된 장치 (402) 의 전술한 모듈들 및/또는 장치 (402') 의 프로세싱 시스템 (614) 중 하나 이상일 수도 있다.
개시된 프로세스들에 있어서의 단계들의 특정 순서 또는 계위는 예시적인 접근법들의 예시임이 이해된다. 설계 선호도들에 기초하여, 프로세스들에 있어서의 단계들의 특정 순서 또는 계위가 재배열될 수도 있음이 이해된다. 추가로, 일부 단계들은 결합되거나 생략될 수도 있다. 첨부한 방법 청구항들은 다양한 단계들의 엘리먼트들을 샘플 순서로 제시하며, 제시된 특정 순서 또는 계위로 한정되도록 의도되지 않는다.
상기 설명은 당업자로 하여금 본 명세서에서 설명된 다양한 양태들을 실시할 수 있도록 제공된다. 이들 양태들에 대한 다양한 변형들은 당업자에게 용이하게 자명할 것이며, 본 명세서에서 정의된 일반적인 원리들은 다른 양태들에 적용될 수도 있다. 따라서, 청구항들은 본 명세서에서 설명된 양태들로 한정되도록 의도되지 않지만, 랭귀지 청구항들과 부합하는 충분한 범위를 부여받아야 하며, 여기서, 단수로의 엘리먼트들에 대한 언급은 명확하게 그렇게 서술되지 않으면 "하나 또는 단지 하나만" 을 의미하도록 의도되지 않고 오히려 "하나 이상" 을 의미하도록 의도된다. 명확하게 달리 서술되지 않으면, 용어 "일부" 는 하나 이상을 지칭한다. 당업자에게 공지되어 있거나 나중에 공지되게 되는 본 개시 전반에 걸쳐 설명된 다양한 양태들의 엘리먼트들에 대한 모든 구조적 및 기능적 균등물들은 본 명세서에 참조로 명확히 통합되고 청구항들에 의해 포함되도록 의도된다. 더욱이, 본 명세서에 개시된 어떤 것도, 그러한 개시가 청구항들에 명시적으로 기재되는지 여부에 무관하게 공중에 전용되도록 의도되지 않는다. 어떠한 청구항 엘리먼트도, 그 엘리먼트가 어구 "~를 위한 수단" 을 이용하여 명백하게 기재되지 않는다면 수단 플러스 기능으로서 해석되지 않아야 한다.

Claims (29)

  1. 송신 제어 프로토콜 (TCP) 을 통해 데이터를 통신하는 방법으로서,
    순차적인 순서에 따라 복수의 데이터 세그먼트들을 전송기로부터 수신하는 단계;
    상기 순차적인 순서에 있어서 적어도 하나의 손실된 데이터 세그먼트를 추론하는 단계; 및
    상기 적어도 하나의 손실된 데이터 세그먼트의 추론에 기초하여, 수신된 데이터 세그먼트의 최고 바이트 시퀀스 번호 플러스 1 의 수신을 상기 전송기로 확인응답하는 단계를 포함하는, 데이터를 통신하는 방법.
  2. 제 1 항에 있어서,
    상기 확인응답은 상기 순차적인 순서에 있어서 손실된 바이트 시퀀스 번호들의 지식에 추가로 기초하고, 상기 손실된 바이트 시퀀스 번호들은 손실된 데이터 세그먼트들에 대응하는, 데이터를 통신하는 방법.
  3. 제 1 항에 있어서,
    상기 적어도 하나의 손실된 데이터 세그먼트의 추론, 또는
    TCP 연결의 라운드-트립-타임
    중 적어도 하나에 기초하여 수신 윈도우를 조정하는 단계로서, 상기 수신 윈도우는 데이터 세그먼트들을 수신하기 위한 버퍼 용량을 표시하는, 상기 수신 윈도우를 조정하는 단계; 및
    상기 조정된 수신 윈도우를 상기 전송기로 통지하는 단계를 더 포함하는, 데이터를 통신하는 방법.
  4. 제 1 항에 있어서,
    통지된 조정된 수신 윈도우에 기초하여 적어도 하나의 부가적인 데이터 세그먼트를 조정된 송신 레이트로 상기 전송기로부터 수신하는 단계를 더 포함하는, 데이터를 통신하는 방법.
  5. 제 1 항에 있어서,
    상기 최고 바이트 시퀀스 번호 플러스 1 은, 상기 적어도 하나의 손실된 데이터 세그먼트 이전에 순차적으로 순서화된 최근의 수신된 데이터 세그먼트에 대응하는, 데이터를 통신하는 방법.
  6. 제 1 항에 있어서,
    상기 최고 바이트 시퀀스 번호 플러스 1 은, 상기 적어도 하나의 손실된 데이터 세그먼트 이후에 순차적으로 순서화된 최근의 수신된 데이터 세그먼트에 대응하는, 데이터를 통신하는 방법.
  7. 제 6 항에 있어서,
    상기 수신된 복수의 데이터 세그먼트들 각각은 바이트 시퀀스 번호를 갖고,
    상기 적어도 하나의 손실된 데이터 세그먼트는 상기 순차적인 순서에 있어서 적어도 하나의 손실된 바이트 시퀀스 번호에 대응하며,
    상기 최근의 수신된 데이터 세그먼트에 대응하는 상기 최고 바이트 시퀀스 번호 플러스 1 은 상기 적어도 하나의 손실된 바이트 시퀀스 번호보다 큰, 데이터를 통신하는 방법.
  8. 제 1 항에 있어서,
    어떠한 임의의 시간에 수신된 데이터 세그먼트들의 콘텐츠를, 상기 적어도 하나의 손실된 데이터 세그먼트를 수신하는 것을 대기하지 않고 어플리케이션으로 전송하는 단계를 더 포함하는, 데이터를 통신하는 방법.
  9. 송신 제어 프로토콜 (TCP) 을 통해 데이터를 통신하는 방법으로서,
    순차적인 순서에 따라 복수의 데이터 세그먼트들을 수신기로 송신하는 단계;
    상기 수신기에서 수신된 데이터 세그먼트의 최고 시퀀스 번호 플러스 1 의 수신을 확인응답하는 상기 수신기로부터의 확인응답을 전송기에서 수신하는 단계;
    통지된 수신 윈도우를 상기 수신기로부터 수신하는 단계로서, 상기 통지된 수신 윈도우는 상기 수신기에서 데이터 세그먼트들을 수신하기 위한 버퍼 용량을 표시하는, 상기 통지된 수신 윈도우를 수신하는 단계; 및
    상기 통지된 수신 윈도우에 기초하여 적어도 하나의 부가적인 데이터 세그먼트를 조정된 송신 레이트로 상기 수신기로 전송하는 단계를 포함하는, 데이터를 통신하는 방법.
  10. 송신 제어 프로토콜 (TCP) 을 통해 데이터를 통신하는 장치로서,
    순차적인 순서에 따라 복수의 데이터 세그먼트들을 전송기로부터 수신하는 수단;
    상기 순차적인 순서에 있어서 적어도 하나의 손실된 데이터 세그먼트를 추론하는 수단; 및
    상기 적어도 하나의 손실된 데이터 세그먼트의 추론에 기초하여, 수신된 데이터 세그먼트의 최고 바이트 시퀀스 번호 플러스 1 의 수신을 상기 전송기로 확인응답하는 수단을 포함하는, 데이터를 통신하는 장치.
  11. 제 10 항에 있어서,
    상기 확인응답은 상기 순차적인 순서에 있어서 손실된 바이트 시퀀스 번호들의 지식에 추가로 기초하고, 상기 손실된 바이트 시퀀스 번호들은 손실된 데이터 세그먼트들에 대응하는, 데이터를 통신하는 장치.
  12. 제 10 항에 있어서,
    상기 적어도 하나의 손실된 데이터 세그먼트의 추론, 또는
    TCP 연결의 라운드-트립-타임
    중 적어도 하나에 기초하여 수신 윈도우를 조정하는 수단으로서, 상기 수신 윈도우는 데이터 세그먼트들을 수신하기 위한 버퍼 용량을 표시하는, 상기 수신 윈도우를 조정하는 수단; 및
    상기 조정된 수신 윈도우를 상기 전송기로 통지하는 수단을 더 포함하는, 데이터를 통신하는 장치.
  13. 제 10 항에 있어서,
    통지된 조정된 수신 윈도우에 기초하여 적어도 하나의 부가적인 데이터 세그먼트를 조정된 송신 레이트로 상기 전송기로부터 수신하는 수단을 더 포함하는, 데이터를 통신하는 장치.
  14. 제 10 항에 있어서,
    상기 최고 바이트 시퀀스 번호 플러스 1 은, 상기 적어도 하나의 손실된 데이터 세그먼트 이전에 순차적으로 순서화된 최근의 수신된 데이터 세그먼트에 대응하는, 데이터를 통신하는 장치.
  15. 제 10 항에 있어서,
    상기 최고 바이트 시퀀스 번호 플러스 1 은, 상기 적어도 하나의 손실된 데이터 세그먼트 이후에 순차적으로 순서화된 최근의 수신된 데이터 세그먼트에 대응하는, 데이터를 통신하는 장치.
  16. 제 15 항에 있어서,
    상기 수신된 복수의 데이터 세그먼트들 각각은 바이트 시퀀스 번호를 갖고,
    상기 적어도 하나의 손실된 데이터 세그먼트는 상기 순차적인 순서에 있어서 적어도 하나의 손실된 바이트 시퀀스 번호에 대응하며,
    상기 최근의 수신된 데이터 세그먼트에 대응하는 상기 최고 바이트 시퀀스 번호 플러스 1 은 상기 적어도 하나의 손실된 바이트 시퀀스 번호보다 큰, 데이터를 통신하는 장치.
  17. 제 10 항에 있어서,
    어떠한 임의의 시간에 수신된 데이터 세그먼트들의 콘텐츠를, 상기 적어도 하나의 손실된 데이터 세그먼트를 수신하는 것을 대기하지 않고 어플리케이션으로 전송하는 수단을 더 포함하는, 데이터를 통신하는 장치.
  18. 송신 제어 프로토콜 (TCP) 을 통해 데이터를 통신하는 장치로서,
    순차적인 순서에 따라 복수의 데이터 세그먼트들을 수신기로 송신하는 수단;
    상기 수신기에서 수신된 데이터 세그먼트의 최고 시퀀스 번호 플러스 1 의 수신을 확인응답하는 상기 수신기로부터의 확인응답을 전송기에서 수신하는 수단;
    통지된 수신 윈도우를 상기 수신기로부터 수신하는 수단으로서, 상기 통지된 수신 윈도우는 상기 수신기에서 데이터 세그먼트들을 수신하기 위한 버퍼 용량을 표시하는, 상기 통지된 수신 윈도우를 수신하는 수단; 및
    상기 통지된 수신 윈도우에 기초하여 적어도 하나의 부가적인 데이터 세그먼트를 조정된 송신 레이트로 상기 수신기로 전송하는 수단을 포함하는, 데이터를 통신하는 장치.
  19. 송신 제어 프로토콜 (TCP) 을 통해 데이터를 통신하는 장치로서,
    프로세싱 시스템을 포함하고,
    상기 프로세싱 시스템은,
    순차적인 순서에 따라 복수의 데이터 세그먼트들을 전송기로부터 수신하고;
    상기 순차적인 순서에 있어서 적어도 하나의 손실된 데이터 세그먼트를 추론하고; 그리고
    상기 적어도 하나의 손실된 데이터 세그먼트의 추론에 기초하여, 수신된 데이터 세그먼트의 최고 바이트 시퀀스 번호 플러스 1 의 수신을 상기 전송기로 확인응답하도록
    구성되는, 데이터를 통신하는 장치.
  20. 제 19 항에 있어서,
    상기 확인응답은 상기 순차적인 순서에 있어서 손실된 바이트 시퀀스 번호들의 지식에 추가로 기초하고, 상기 손실된 바이트 시퀀스 번호들은 손실된 데이터 세그먼트들에 대응하는, 데이터를 통신하는 장치.
  21. 제 19 항에 있어서,
    상기 프로세싱 시스템은 추가로,
    상기 적어도 하나의 손실된 데이터 세그먼트의 추론, 또는
    TCP 연결의 라운드-트립-타임
    중 적어도 하나에 기초하여 수신 윈도우를 조정하는 것으로서, 상기 수신 윈도우는 데이터 세그먼트들을 수신하기 위한 버퍼 용량을 표시하는, 상기 수신 윈도우를 조정하고; 그리고
    상기 조정된 수신 윈도우를 상기 전송기로 통지하도록
    구성되는, 데이터를 통신하는 장치.
  22. 제 19 항에 있어서,
    상기 프로세싱 시스템은 추가로, 통지된 조정된 수신 윈도우에 기초하여 적어도 하나의 부가적인 데이터 세그먼트를 조정된 송신 레이트로 상기 전송기로부터 수신하도록 구성되는, 데이터를 통신하는 장치.
  23. 제 19 항에 있어서,
    상기 최고 바이트 시퀀스 번호 플러스 1 은, 상기 적어도 하나의 손실된 데이터 세그먼트 이전에 순차적으로 순서화된 최근의 수신된 데이터 세그먼트에 대응하는, 데이터를 통신하는 장치.
  24. 제 19 항에 있어서,
    상기 최고 바이트 시퀀스 번호 플러스 1 은, 상기 적어도 하나의 손실된 데이터 세그먼트 이후에 순차적으로 순서화된 최근의 수신된 데이터 세그먼트에 대응하는, 데이터를 통신하는 장치.
  25. 제 24 항에 있어서,
    상기 수신된 복수의 데이터 세그먼트들 각각은 바이트 시퀀스 번호를 갖고,
    상기 적어도 하나의 손실된 데이터 세그먼트는 상기 순차적인 순서에 있어서 적어도 하나의 손실된 바이트 시퀀스 번호에 대응하며,
    상기 최근의 수신된 데이터 세그먼트에 대응하는 상기 최고 바이트 시퀀스 번호 플러스 1 은 상기 적어도 하나의 손실된 바이트 시퀀스 번호보다 큰, 데이터를 통신하는 장치.
  26. 제 19 항에 있어서,
    상기 프로세싱 시스템은 추가로, 어떠한 임의의 시간에 수신된 데이터 세그먼트들의 콘텐츠를, 상기 적어도 하나의 손실된 데이터 세그먼트를 수신하는 것을 대기하지 않고 어플리케이션으로 전송하도록 구성되는, 데이터를 통신하는 장치.
  27. 송신 제어 프로토콜 (TCP) 을 통해 데이터를 통신하는 장치로서,
    프로세싱 시스템을 포함하고,
    상기 프로세싱 시스템은,
    순차적인 순서에 따라 복수의 데이터 세그먼트들을 수신기로 송신하고;
    상기 수신기에서 수신된 데이터 세그먼트의 최고 시퀀스 번호 플러스 1 의 수신을 확인응답하는 상기 수신기로부터의 확인응답을 전송기에서 수신하고;
    통지된 수신 윈도우를 상기 수신기로부터 수신하는 것으로서, 상기 통지된 수신 윈도우는 상기 수신기에서 데이터 세그먼트들을 수신하기 위한 버퍼 용량을 표시하는, 상기 통지된 수신 윈도우를 수신하고; 그리고
    상기 통지된 수신 윈도우에 기초하여 적어도 하나의 부가적인 데이터 세그먼트를 조정된 송신 레이트로 상기 수신기로 전송하도록
    구성되는, 데이터를 통신하는 장치.
  28. 송신 제어 프로토콜 (TCP) 을 통해 데이터를 통신하기 위한, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 판독가능 매체는,
    순차적인 순서에 따라 복수의 데이터 세그먼트들을 전송기로부터 수신하고;
    상기 순차적인 순서에 있어서 적어도 하나의 손실된 데이터 세그먼트를 추론하고; 그리고
    상기 적어도 하나의 손실된 데이터 세그먼트의 추론에 기초하여, 수신된 데이터 세그먼트의 최고 바이트 시퀀스 번호 플러스 1 의 수신을 상기 전송기로 확인응답하기 위한
    코드를 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  29. 송신 제어 프로토콜 (TCP) 을 통해 데이터를 통신하기 위한, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 판독가능 매체는,
    순차적인 순서에 따라 복수의 데이터 세그먼트들을 수신기로 송신하고;
    상기 수신기에서 수신된 데이터 세그먼트의 최고 시퀀스 번호 플러스 1 의 수신을 확인응답하는 상기 수신기로부터의 확인응답을 전송기에서 수신하고;
    통지된 수신 윈도우를 상기 수신기로부터 수신하는 것으로서, 상기 통지된 수신 윈도우는 상기 수신기에서 데이터 세그먼트들을 수신하기 위한 버퍼 용량을 표시하는, 상기 통지된 수신 윈도우를 수신하고; 그리고
    상기 통지된 수신 윈도우에 기초하여 적어도 하나의 부가적인 데이터 세그먼트를 조정된 송신 레이트로 상기 수신기로 전송하기 위한
    코드를 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
KR20157000714A 2012-06-14 2013-06-12 낙관적인 윈도우 조정들을 이용한 원치않은 tcp 재송신들의 회피 KR20150030713A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261659950P 2012-06-14 2012-06-14
US61/659,950 2012-06-14
US13/830,048 2013-03-14
US13/830,048 US10009445B2 (en) 2012-06-14 2013-03-14 Avoiding unwanted TCP retransmissions using optimistic window adjustments
PCT/US2013/045516 WO2013188596A1 (en) 2012-06-14 2013-06-12 Avoiding unwanted tcp retransmissions using optimistic window adjustments

Publications (1)

Publication Number Publication Date
KR20150030713A true KR20150030713A (ko) 2015-03-20

Family

ID=49756984

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20157000714A KR20150030713A (ko) 2012-06-14 2013-06-12 낙관적인 윈도우 조정들을 이용한 원치않은 tcp 재송신들의 회피

Country Status (5)

Country Link
US (1) US10009445B2 (ko)
EP (1) EP2862307A1 (ko)
KR (1) KR20150030713A (ko)
CN (1) CN104365052A (ko)
WO (1) WO2013188596A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9596281B2 (en) 2014-03-18 2017-03-14 Qualcomm Incorporated Transport accelerator implementing request manager and connection manager functionality
US9596323B2 (en) 2014-03-18 2017-03-14 Qualcomm Incorporated Transport accelerator implementing client side transmission functionality
US9794311B2 (en) 2014-03-18 2017-10-17 Qualcomm Incorporated Transport accelerator implementing extended transmission control functionality
US9350484B2 (en) 2014-03-18 2016-05-24 Qualcomm Incorporated Transport accelerator implementing selective utilization of redundant encoded content data functionality
US20150271226A1 (en) * 2014-03-18 2015-09-24 Qualcomm Incorporated Transport accelerator implementing a multiple interface architecture
US10419967B2 (en) * 2015-10-29 2019-09-17 Altiostar Networks, Inc. Video pacing based on radio conditions
CN106788911A (zh) 2015-11-25 2017-05-31 华为技术有限公司 一种报文重传的方法和装置
EP3417585B1 (en) * 2016-05-10 2021-06-30 Samsung Electronics Co., Ltd. Terminal and communication method thereof
JP2019197975A (ja) * 2018-05-08 2019-11-14 オリンパス株式会社 電子機器、通信方法及び通信プログラム
CN112154618B (zh) * 2018-05-23 2023-10-13 兴和株式会社 通信系统、控制系统以及通信装置

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754754A (en) 1995-07-26 1998-05-19 International Business Machines Corporation Transmission order based selective repeat data transmission error recovery system and method
EP0957613A1 (de) * 1998-05-13 1999-11-17 Telefonaktiebolaget Lm Ericsson Verfahren und Vorrichtung zur Erhöhung eines Datendurchsatzes
US7025209B2 (en) * 1998-05-29 2006-04-11 Palmsource, Inc. Method and apparatus for wireless internet access
CA2249152C (en) 1998-09-30 2003-07-08 Northern Telecom Limited Apparatus for and method of managing bandwidth for a packet-based connection
US7305486B2 (en) * 2000-06-30 2007-12-04 Kanad Ghose System and method for fast, reliable byte stream transport
US20040192312A1 (en) * 2002-07-16 2004-09-30 Jia-Ru Li Communication system for voice and data with wireless TCP server
US7616638B2 (en) * 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
GB2395856A (en) * 2002-11-26 2004-06-02 King S College London Method for reducing packet congestion at a network node
US8238241B2 (en) * 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
US7385923B2 (en) * 2003-08-14 2008-06-10 International Business Machines Corporation Method, system and article for improved TCP performance during packet reordering
US20050060574A1 (en) * 2003-09-13 2005-03-17 Finisar Corporation Network analysis graphical user interface
WO2005027456A1 (ja) * 2003-09-18 2005-03-24 Nomura Research Institute Co., Ltd. 通信システム、通信装置、およびデータの再送制御方法
CN1894894B (zh) 2003-11-05 2011-07-27 瞻博网络公司 传输控制协议流控制的透明优化方法及系统
US9026597B1 (en) * 2003-11-07 2015-05-05 Radix Holdings, Llc Messaging enhancements
US20070097987A1 (en) * 2003-11-24 2007-05-03 Rey Jose L Feedback provision using general nack report blocks and loss rle report blocks
US7382733B2 (en) * 2004-02-12 2008-06-03 International Business Machines Corporation Method for handling reordered data packets
US7571181B2 (en) * 2004-04-05 2009-08-04 Hewlett-Packard Development Company, L.P. Network usage analysis system and method for detecting network congestion
JP5020076B2 (ja) * 2004-07-29 2012-09-05 デル・プロダクツ・エル・ピー 低頻度ackのシステムに適した高性能tcp
US7480301B2 (en) * 2004-12-16 2009-01-20 International Business Machines Corporation Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement
KR100785293B1 (ko) 2005-02-11 2007-12-12 삼성전자주식회사 다중 tcp확인응답을 이용한 tcp 혼잡 제어 시스템및 그 방법
US7596091B2 (en) * 2005-02-28 2009-09-29 Microsoft Corporation Unified congestion notification mechanism for reliable and unreliable protocols by augmenting ECN
US20060262738A1 (en) * 2005-05-17 2006-11-23 Lilian Fernandes Administering acknowledgment messages in the transmission control protocol
GB2430577B (en) * 2005-09-23 2010-09-22 Agilent Technologies Inc Real time monitoring of TCP flows
US7813324B1 (en) * 2005-09-28 2010-10-12 Rockwell Collins, Inc. Scalable mobile adaptive reliable ToS based automatic retransmit request
US8238242B2 (en) * 2006-02-27 2012-08-07 Telefonaktiebolaget Lm Ericsson (Publ) Flow control mechanism using local and global acknowledgements
WO2008029793A1 (fr) * 2006-09-05 2008-03-13 Nec Corporation Procédé de récupération de paquets, système de communication, dispositif de traitement d'informations et programme
US8260935B2 (en) * 2007-01-24 2012-09-04 Viasat, Inc. Error control terminal discovery and updating
GB0701668D0 (en) * 2007-01-29 2007-03-07 Tang Bob Immediate ready implementation of virtually congestion free guaranteed service capable network: external internet nextgenTCP nextgenFTP nextgenUDPs
US7864771B2 (en) 2007-04-20 2011-01-04 Cisco Technology, Inc. Parsing out of order data packets at a content gateway of a network
US20080291911A1 (en) * 2007-05-21 2008-11-27 Ist International, Inc. Method and apparatus for setting a TCP retransmission timer
US8732236B2 (en) * 2008-12-05 2014-05-20 Social Communications Company Managing network communications between network nodes and stream transport protocol
US8819512B1 (en) * 2008-01-19 2014-08-26 Appex Networks Holding Limited Method for detecting TCP packet losses and expediting packet retransmission
WO2009141010A1 (en) * 2008-05-22 2009-11-26 Telefonaktiebolaget L M Ericsson (Publ) Enhanced recovery procedure
CN101631065B (zh) * 2008-07-16 2012-04-18 华为技术有限公司 一种无线多跳网络拥塞的控制方法和装置
CN101369875B (zh) 2008-09-12 2013-04-24 上海华为技术有限公司 一种传输控制协议数据包的传输方法、装置及系统
US7818430B2 (en) * 2008-10-15 2010-10-19 Patentvc Ltd. Methods and systems for fast segment reconstruction
US8295159B2 (en) * 2009-01-14 2012-10-23 Qualcomm Incorporated Timer poll retransmission expiry in a wireless communication system
AU2009337511A1 (en) * 2009-01-16 2011-09-08 Mainline Net Holdings Limited Maximizing bandwidth utilization in networks with high latencies and packet drops using transmission control protocol
US8169914B2 (en) * 2009-03-16 2012-05-01 Sling Media Pvt. Ltd. Method and node for transmitting data over a communication network using negative acknowledgment
WO2010118255A2 (en) 2009-04-08 2010-10-14 The University Of North Carolina At Chapel Hill Methods, systems, and computer program products for network server performance anomaly detection
CN102014110A (zh) * 2009-09-08 2011-04-13 华为技术有限公司 认证通信流量的方法、通信系统和防护装置
US8274886B2 (en) * 2009-10-28 2012-09-25 At&T Intellectual Property I, L.P. Inferring TCP initial congestion window
US9137338B2 (en) * 2010-01-22 2015-09-15 Microsoft Technology Licensing, Llc Multi-link remote protocol
US9660912B2 (en) * 2010-02-19 2017-05-23 Thomson Licensing Control of packet transfer through a multipath session comprising a single congestion window
JP5352852B2 (ja) * 2010-03-19 2013-11-27 株式会社日立製作所 移動通信システム、及び通信方法
GB2485765B (en) * 2010-11-16 2014-02-12 Canon Kk Client based congestion control mechanism
JP2012114737A (ja) 2010-11-25 2012-06-14 Sony Corp 受信装置、受信方法、プログラムおよび通信システム
US9049175B2 (en) * 2010-12-02 2015-06-02 Microsoft Technology Licensing, Llc Client-adjustable window size for connectionless transfer protocols
EP4024760A1 (en) * 2011-06-14 2022-07-06 ViaSat Inc. Transport protocol for anticipatory content
US8837488B2 (en) * 2011-07-29 2014-09-16 Blackfire Research Corporation Two tier multiple sliding window mechanism for multidestination media applications
US9456377B2 (en) * 2011-08-19 2016-09-27 Futurewei Technologies, Inc. System and method for transmission control protocol service delivery in wireless communications systems
US10063606B2 (en) * 2012-06-12 2018-08-28 Taiwan Semiconductor Manufacturing Co., Ltd. Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US8761181B1 (en) * 2013-04-19 2014-06-24 Cubic Corporation Packet sequence number tracking for duplicate packet detection

Also Published As

Publication number Publication date
US20130339543A1 (en) 2013-12-19
CN104365052A (zh) 2015-02-18
WO2013188596A1 (en) 2013-12-19
US10009445B2 (en) 2018-06-26
EP2862307A1 (en) 2015-04-22

Similar Documents

Publication Publication Date Title
KR20150030713A (ko) 낙관적인 윈도우 조정들을 이용한 원치않은 tcp 재송신들의 회피
US11641387B2 (en) Timely delivery of real-time media problem when TCP must be used
EP3108639B1 (en) Transport accelerator implementing extended transmission control functionality
EP2590348B1 (en) Method and apparatus for transmitting and receiving media streams
US9871878B2 (en) Network traffic accelerator
US9391840B2 (en) Avoiding delayed data
JP2007089174A (ja) 無線通信システムにおける信号の伝送速度を改善する方法及び装置
WO2014187114A1 (zh) 一种文件传输方法、装置及存储介质
WO2014069642A1 (ja) 通信装置、送信データ出力制御方法、及びそのプログラム
WO2017097201A1 (zh) 一种数据传输方法、发送装置及接收装置
WO2020147453A1 (zh) 数据传输方法及相关装置
JP2012095190A (ja) 通信装置、通信システム、プログラム及び通信方法
EP1708404A1 (en) Method and apparatus for error recovery performed at the access node of a core network
WO2010022665A1 (zh) 一种实现物理层重传的方法、装置及系统
WO2019001352A1 (zh) 数据传输的方法、装置和系统
US8532111B2 (en) Transmission apparatus, transmission method, and program
WO2014100973A1 (zh) 视频处理方法、设备及系统
US9954984B2 (en) System and method for enabling replay using a packetized link protocol
US20240165508A1 (en) Method, apparatuses and systems directed to quality of experience improvement in cloud gaming
US20100122134A1 (en) Application-configured, content-based retransmission scheme for dropped media access control frames
CN111385241B (zh) 多媒体数据的丢包修复方法、装置、系统和可读存储介质
CN113824851A (zh) 图像处理方法、装置、存储介质及电子设备

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