KR101130479B1 - 스퓨리어스 타임아웃에 대한 응답 방법 - Google Patents

스퓨리어스 타임아웃에 대한 응답 방법 Download PDF

Info

Publication number
KR101130479B1
KR101130479B1 KR1020050021410A KR20050021410A KR101130479B1 KR 101130479 B1 KR101130479 B1 KR 101130479B1 KR 1020050021410 A KR1020050021410 A KR 1020050021410A KR 20050021410 A KR20050021410 A KR 20050021410A KR 101130479 B1 KR101130479 B1 KR 101130479B1
Authority
KR
South Korea
Prior art keywords
data
network
delete delete
host
congestion
Prior art date
Application number
KR1020050021410A
Other languages
English (en)
Other versions
KR20060043648A (ko
Inventor
권 단
첸 장
웬위 주우
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20060043648A publication Critical patent/KR20060043648A/ko
Application granted granted Critical
Publication of KR101130479B1 publication Critical patent/KR101130479B1/ko

Links

Images

Classifications

    • 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/14Arrangements for detecting or preventing errors in the information received by using return channel in which the signals are sent back to the transmitter to be checked ; echo systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • 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
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • 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/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

스퓨리어스 타임아웃(spurious timeout; STO) 응답은 전송 장치가 정체 상태 파라미터를 보존적으로 조정하고 STO의 검출 후 패킷 흐름을 유지할 수 있게 한다. STO의 발생은 데이터 손실을 동반할 수 있기 때문에, STO 응답은 이전의 가용 대역폭의 값을 유지하고 송신 호스트가 리턴된 확인응답(acknowledgement)의 패턴에 따라 전송할 수 있는 한도를 증가시킴으로써, 스퓨리어스 타임아웃과 손실 이벤트를 결합한다. 특히, 확인응답이 수신 호스트로부터 수신되어 데이터 패킷의 성공적 전송을 나타낼 때마다 송신 호스트가 전송할 수 있는 데이터 세그먼트의 최대 크기만큼 그 한도가 증가한다. 따라서, 긍정 데이터 흐름이 보존적으로 유지될 수 있으면서 수신 호스트에 의해 성공적으로 수신된 것일 수 있는 데이터 패킷의 불필요한 재전송과 추가 패킷 손실을 방지할 수 있다.
스퓨리어스 타임아웃, 정체 상태 파라미터, 데이터 흐름, 데이터 세그먼트, 슬로우 스타트 임계치

Description

스퓨리어스 타임아웃에 대한 응답 방법{RESPONSE FOR SPURIOUS TIMEOUT}
도 1은 스퓨리어스 타임아웃에 응답하는 기술을 구현하는 장치를 사용하여, 무선 네트워크를 통해 통신하는 장치.
도 2는 본 명세서에서 설명하는 실시예를 구현하는 통신 환경을 나타내는 도면.
도 3은 스퓨리어스 타임아웃에 응답하는 프로세스의 흐름도.
도 4 내지 도 6은 도 3에 도시한 스퓨리어스 타임아웃에 응답하는 프로세스의 양태의 일 예를 나타내는 도면.
도 7은 본 명세서에서 설명하는 기술을 구현하는 데 사용될 수 있는 통상의 컴퓨터 네트워크 환경을 나타내는 도면.
<도면의 주요 부분에 대한 부호의 설명>
102 : 네트워크
117 : 프로세서
119 : 타임아웃 응답 프로세스
205 : 데이터 패킷 전송기
210 : 전송 타이머/타임아웃 검출기
215 : 타임아웃 응답 프로세서
본 발명은 무선 광역 네트워크에서 스퓨리어스 타임아웃에 응답하는 기술에 관한 것이다.
GPRS(범용 패킷 무선 서비스)와 같은 무선 환경에서, 재전송 타이머는 종종 허위(spuriously) 만료하는 것으로 알려져 있으며, 이는 전송된 데이터의 실제 손실이 없는 경우에도 하나 이상의 데이터 패킷의 불필요한 재전송을 야기한다. 이러한 "스퓨리어스 타임아웃(spurious timeout)"("STO"로도 알려짐)은 전송 제어 프로토콜(이하, "TCP"라 함) 스택의 한계 때문이다.
무선 네트워크에서 스퓨리어스 타임아웃은, 전송 대역폭을 차지하려고 경쟁하는 보다 더 높은 전송 우선권을 갖는 데이터 패킷의 출현으로 인해 스퓨리어스 재전송 타임아웃을 야기하고; 지속적으로 신뢰가능한 무선 링크 레이어가 열악한 무선 접속 상으로 데이터 패킷을 여러번 반복 재전송하여 TCP 전송의 호스트 타임아웃을 야기하고; 또는, 통화중 역방향 채널(busy reverse channel)로 인해 시기적절한 방식으로 수신 호스트가 확인응답 메시지(이하, "ACK"라 함)를 송신 호스트에 전송할 수 없는 등, 여러 요인을 갖는다.
TCP 스택에서, MSS("최대 세그먼트 크기")는 송신 호스트가 단일 패킷 또는 세그먼트로 수신 호스트에 전송할 수 있는 최대 데이터양(바이트 단위)을 나타낸다. 통상, 효율성을 위해서, 송신 호스트는 MSS에 따라 데이터 패킷을 송신한다. TCP 윈도우(이하, "윈도우"라고 함)는 수신 호스트에서 송신된 데이터에 대한 확인응답("ACK"라고도 함)을 수신하기 전에 송신 호스트가 전송할 수 있는 데이터양을 나타낸다.
ACK는 수신 호스트에서 송신 호스트로 송신되어 전송된 데이터의 수신을 확인응답하는 통신 코드이다. 또한, ACK는 데이터의 모든 TCP 세그먼트가 수신된 후에 수신 호스트로부터 송신 호스트로 전송될 수 있다. 다르게는, ACK는 오류 데이터 패킷이 수신된 경우 수신 호스트에서 송신 호스트로 선택적으로 전송될 수 있다. 수신된 데이터 패킷은 선택적 확인응답(이하, "SACK"이라 함) 블록으로 불리는 확장 TCP 헤더 옵션으로 보고된다. 어떠한 경우에서든, TCP는 ACK 또는 SACK가 데이터의 원래 전송된 데이터 세그먼트에 응답하여 생성된 것인지 재전송된 데이터 세그먼트에 응답하여 생성된 것인지 구별할 수 없다.
통상, 타임아웃의 발생 시에, TCP 스택은 확인응답되지 않은 데이터의 전체 윈도우 만큼을 재전송하는 것으로 디폴트된다. 그러나, 상술한 바와 같이, 모든 타임아웃이 데이터 손실에 의해 야기되는 것은 아니다. 따라서, 자동 재전송은, 이미 성공적으로 수신된 데이터의 재전송에 대역폭이 불필요하게 할당되게 할 수 있다. 따라서, 네트워크 접속의 무결성이 감소된다.
데이터의 TCP 세그먼트의 이러한 자동 재전송은 이전에 전송된 데이터가 수신된 것으로서 확인응답되거나 손실된 것으로서 확인될 때까지 데이터가 네트워크에 도입되지 않아야 한다는 "패킷 보존 원리"를 위반할 수 있다. 명확하게, 스퓨리어스 타임아웃 이후의 TCP 세그먼트의 임의의 자동 재전송은 패킷 보존 원리에 부합하지 않는다.
무선 네트워크에서 겪는 스퓨리어스 타임아웃에 응답하는 기술을 설명한다. 스퓨리어스 타임아웃이 발생하는 경우, 개시된 응답 중 하나는 데이터 손실이 확인될 때까지 또는 확인되지 않는 한, 정체 상태 파라미터 하에서 송신 호스트로부터의 데이터 흐름을 유지하는 것이다. 특히, 정체 상태값이 복구되고, 데이터 전송은 수신된 확인응답에 따라 점진적으로 증가할 수 있는 플로우 레이트로 지속된다. 정체 상태값의 복구는 타임아웃 이전에 검출된 가용 대역폭을 복구하는 것과, 확인응답을 수신하기 전에 전송될 수 있는 데이터양의 한도의 디폴트값을 복구하는 것을 포함한다. 후자의 값은 정체 윈도우로서 알려져 있다. 전송 데이터 흐름이 계속됨에 따라, 정체 윈도우에 대한 임의의 증가는 수신 호스트로부터의 확인응답의 수신에 의존한다. 그 이유는, 확인응답은 데이터 패킷이 송신 호스트에서 수신 호스트로 흐르고 네트워크에서 손실되지 않은 것을 나타내기 때문이다.
첨부 도면을 참조하여 상세한 설명을 나타낸다. 도면에서, 참조 번호의 최좌측 숫자는 참조 번호가 처음 나타나는 도면을 나타낸다. 상이한 도면에서 동일 참조 번호를 사용하는 것은 유사 또는 동일한 항목을 의미한다.
후술하는 설명은 무선 네트워크에서 겪는 스퓨리어스 타임아웃에 응답하는 기술에 관한 것이다. 타임아웃이 항상 데이터 손실을 의미하는 것은 아니기 때문에, 스퓨리어스 타임아웃 시의 데이터의 자동 재전송은 네트워크 자원 측면에서 잠 재적으로 낭비적인 응답이다. 다음 예에서 구현되는 보존 응답(conservative response)은 데이터 손실이 확인될 때까지 또는 데이터 손실이 확인되지 않는 한, 송신 호스트로부터 긍정 데이터 흐름을 유지함으로써 잉여 데이터 전송을 방지한다. 응답은 정체 상태값을 복구하고 수신된 확인응답에 따라 정체 윈도우의 크기를 증가시키는 것을 포함한다. 정체 윈도우(congestion window; "cwnd"로도 불림)는 송신 호스트가 확인응답을 수신하기 전에 네트워크를 통해 전송할 수 있는 데이터양을 제한하는 상태 변수이다.
여기서 설명되는 실시예는 공용 및/또는 전용 프로토콜 등의 다양한 네트워크 프로토콜 중 임의의 것을 사용할 수 있다. 실시예는 단지 예시적인 것이며 임의의 방식으로 한정하려는 것은 아니다.
도 1은 네트워크(102)가 클라이언트 장치(105, 110, 115 및 120)와 서버 장치(125) 간의 통신을 가능하게 하는 예시적인 아키텍처(100)를 나타낸다. 네트워크(102)는 다양한 종래 네트워크 토폴로지 및 유형 중 임의의 것을 나타내는 것이며, 유선 및/또는 무선 네트워크를 포함할 수 있다. 또한, 네트워크(102)는 공용 및/또는 전용 프로토콜 등의 다양한 종래 네트워크 프로토콜 중 임의의 것을 사용할 수 있다. 네트워크(102)는, 예를 들면, 하나 이상의 근거리 네트워크(LAN) 중 적어도 일부뿐만 아니라 인터넷을 포함할 수 있다.
클라이언트 장치(105)는 데스크탑 개인용 컴퓨터(PC), 워크스테이션, 메인프레임 컴퓨터, 인터넷 기기 및 게임 콘솔을 포함하는 다양한 종래 컴퓨팅 장치 중 임의의 것을 포함할 수 있다. 네트워크(102)에 관련된 추가 클라이언트 장치는 개 인용 디지털 단말(PDA; 110), 랩탑 컴퓨터(115), 및 셀룰러 폰(120) 등을 포함할 수 있으며, 유선 및/또는 무선 링크에 의해 네트워크(102)와 통신할 수 있다. 또한, 클라이언트 장치들(105, 110, 115, 및 120) 중 하나 이상은 동일 유형의 장치 또는 다르게는 상이한 유형의 장치를 포함할 수 있다.
서버 장치(125)는 컴퓨팅 장치(105, 110, 115 및 120)에 다양한 데이터 및/또는 기능 중 임의의 것을 제공할 수 있다. 데이터는 공개적으로 이용가능할 수도 있고 다르게는, 예를 들면, 단지 특정 사용자로만 한정되거나 적절한 비용이 지불된 경우에만 이용가능하도록 제한될 수도 있다. 서버 장치(125)는 네트워크 서버, 애플리케이션 서버, 웹 블레이드(web blade) 중 적어도 하나이거나, 이들의 임의의 조합일 수 있다. 서버 장치(125)는 컨텐츠의 소스인 임의의 장치이며 클라이언트 장치(105, 110, 115 및 120)는 이러한 컨텐츠를 수신하는 임의의 장치를 포함한다. 클라이언트 또는 서버 장치의 실시예는 도 7을 참조하여 이하에서 더 상세히 설명된다.
클라이언트 장치(105, 110, 115 및 120) 중 임의의 하나와 서버 장치(125)는 여기서 설명되는 실시예에 따라 송신 호스트 또는 수신 호스트로서 동작한다. 임의의 방식으로 한정하려는 것이 아닌 예시의 목적으로, 클라이언트 장치(115)는 네트워크(102)를 통해 수신 호스트에 데이터를 전송하는 송신 호스트이다. 송신 호스트(115)는 여기서 설명하는 실시예에 대응하는 스퓨리어스 타임아웃 응답(119)을 구현하는 프로세서(117)를 포함한다.
도 1의 네트워크(102)에 대응하는 프로토콜은 TCP/IP(전송 제어 프로토콜/인 터넷 프로토콜)을 포함할 수 있지만 이에 한정되지 않으며, 여기서 TCP는 종단-대-종단 에러 검출 및 보정을 구현하는 접속 기반, 스트림 지향 전달 서버이다. 송신 호스트(115)에서 수신 호스트로 데이터를 전송하는 경우, 스퓨리어스 타임아웃은 무선 광역 네트워크일 수 있는 네트워크(102)에서의 이상 발생이 아니다. 당업자는 전송 트랜잭션 상의 이러한 타임아웃의 임의의 효과를 인식할 것이다. 그러나, 스퓨리어스 타임아웃의 발생은 반드시 손실된 데이터 패킷 또는 정체를 나타내는 것은 아니다.
스퓨리어스 타임아웃 응답(119)은 데이터의 재전송을 자동으로 야기하지는 않는 방식으로 스퓨리어스 타임아웃을 처리한다. 그 대신, 스퓨리어스 타임아웃(STO)이 검출되면, 스퓨리어스 타임아웃 응답(119)은 정체 상태값을 복구하고 송신 호스트로부터의 긍정 데이터 흐름을 유지함으로써 STO에 응답한다. 즉, 송신 호스트로부터의 데이터 흐름은 데이터 손실이 확인될 때까지 또는 데이터 손실이 확인되지 않는 한, 데이터 패킷의 임의의 재전송을 포함하지 않는다.
보다 구체적으로는, 스퓨리어스 타임아웃 응답(119)은 타임아웃이 검출되고 정체 윈도우 "cwnd"을 점차 증가시키기 전에 TCP 스택이 그 값에 슬로우 스타트 임계치(slow-start threshold; "ssthresh"로 불림)를 복구하게 한다. 슬로우 스타트 임계치 "ssthresh"는 데이터 전송을 제어하는 데 사용되는 추정된 가용 대역폭에 대한 상태 변수이고, 또한, 정체 윈도우 "cwnd"는 송신 호스트가 확인응답 "ACK"를 수신하기 전에 네트워크를 통해 전송할 수 있는 데이터양을 한정하는 상태 변수이다. 타임아웃이 발생한 후에, 정체 윈도우는 MSS로 설정되고, 제1의 확인응답되지 않은 패킷이 재전송된다. 그러나, 재전송이 불필요하다고 판정된 경우, 즉, 원래의 전송이 수신 호스트에 의해 성공적으로 수신된 경우, 송신 호스트는 다른 타임아웃 패킷의 재전송을 중지한다. 또한, ACK가 타임아웃 데이터 패킷의 성공적 전송을 나타내기 때문에, 정체 윈도우는 ACK의 수신 시에 최대 세그먼트 크기(MSS) 만큼 증가한다(cwnd=cwnd+MSS). 즉, ACK는 네트워크 경로를 재확인하는 데 필요한 정확한 데이터를 제공하기 때문에, ACK의 수신은 전송될 수 있는 데이터양이 증가할 수 있음을 나타낸다.
도 2는 송신 호스트(115)의 프로세서(117)를 보다 상세히 나타낸다. 프로세서(117)는 데이터 패킷을 예를 들어 TCP 프로토콜을 사용하는 수신 호스트에 전송하는 데이터 패킷 전송기(205)를 포함한다. 전송 타이머/타임아웃 검출기(210)는 데이터 패킷이 전송기(205)로부터 전송된 이후의 시간을 추적한다. 따라서, 전송 타이머/타임아웃 검출기(210)는 데이터 패킷이 전송된 후 소정 시간량, 예를 들어, 500㎳가 지나고 데이터 패킷에 대응하는 어떤 ACK도 송신 호스트(115)에서 다시 수신되지 않은 경우, 타임아웃을 검출한다. 타임아웃이 스퓨리어스 타임아웃으로 결정된 경우, 타임아웃 응답 프로세서(215)는 "재패킷화(repacketization)를 이용한 스퓨리어스 타임아웃 검출"(이하, "STODER"로 불림) 응답인 타임아웃 응답 프로세스(119; 도 1)를 구현한다. 도 4 내지 도 6은 타임아웃 응답 프로세스(119)를 보다 상세히 설명한다. 도 2에 도시한 처리 모듈은 도시한 바와 같이, 개별적으로, 또는 이의 다양한 조합으로 구현될 수 있다.
도 3은 스퓨리어스 타임아웃에 대응하는 타임아웃 응답 프로세스(119)를 나 타낸다. 프로세스(119)는 프로세스를 실행하는 데 수행되는 적어도 하나의 동작을 각각 나타내는 일련의 블록으로서 도시된다. 이 동작은 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 또한, 설명의 목적으로, 프로세스(119)는 타임아웃 발생 시에, 송신 호스트(115)에서 수신 호스트로의 데이터 패킷의 전송의 경우에 대하여 나타낸다.
305에서, 송신 호스트(115)는 타임아웃 조건을 검출한다. 타임아웃의 검출 시에, 송신 호스트(115)는 타임아웃 검출 지점까지 송신 호스트(115)로부터 전송된 데이터 패킷에 대응하는 가장 높은 시퀀스 번호를 저장한다(310). 저장된 시퀀스 번호는 후속 데이터 패킷 전송에 대한 기준점의 역할을 할 수 있다. 그 후, 제1의 확인응답되지 않은 패킷이 재전송된다. 수신 호스트로부터 제1 확인응답 수신 시에, 공지된 기술에 따라 타임아웃이 스퓨리어스 타임아웃(STO)임을 판정(315)한다. 이러한 기술의 예는 함께 계류중이고 미국특허상표청에 2004년 1월 15일에 출원된 미국특허출원번호 제10/758,510호에서 설명된 것을 포함하지만 이에 한정되지 않는다. 따라서 여기서는 그 기술에 대해 설명하지 않는다.
도 4 내지 도 6은 STO의 검출 시(315)에 구현되는 예시적인 프로토콜 응답(119)을 나타낸다. 특히, 여기에 개시된 STODER 응답은 데이터 패킷을 자동 재전송하거나 정체 제어 상태 처리를 디폴트로 하여 STO에 응답하지 않고, 대신 패킷 보존 원리에 부합하는 응답을 구현한다.
도 4는 STODER 응답에서의 초기 동작을 나타낸다. STO의 검출(315; 도 3 참조)은 반드시 데이터 패킷의 손실 시에 예측되는 것은 아니기 때문에, 정체 상태 값은 송신 호스트(115)로부터의 긍정 데이터 흐름을 유지하도록 복구된다(405). 전송될 다음 데이터 패킷에 대한 파라미터는 STO 검출 지점까지 송신되었던 이전에 송신된 데이터 패킷과 거의 동일하게 설정된다. 이 지점은 "STODER 복구 지점"(이하, "SRP"라고 함)으로 불릴 수 있다. 슬로우 스타트 임계치 "ssthresh"는 타임아웃이 발생하기 전에 그 값과 거의 동일하게 복구되고, 정체 윈도우 "cwnd"는 최대 세그먼트 크기의 2배로 설정될 수 있다(즉, cwnd=2*MSS). 이는 두개의 데이터 패킷의 크기를 초과하지 않는 정체 윈도우의 초기 값에 대한 공지의 TCP 원리에 부합한다.
데이터 패킷이 손실되었다는 확인의 부재시에, 패킷 보존 원리에의 부합은 이전에 전송된 데이터의 어느 것도 재전송되지 않는 것을 요구한다. 즉, 이 때, 연속 데이터 흐름은 새롭게 전송되는 데이터 패킷만을 포함하는 것이다. 따라서, 410에서, 송신 호스트(115)는 2개의 새로운 데이터 패킷까지만 수신 호스트에 전송하여 데이터 흐름을 유지한다. 데이터 흐름을 유지하기 위해 네트워크를 통해 전송되는 새로운 데이터 패킷의 개수는 프로토콜이 개선됨에 따라 다양해질 수 있음을 유의한다.
415에서, 송신 호스트(115)는 네트워크에서 미처리된(outstanding) 다수의 바이트의 송신측 추정치인 "파이프" 값을 설정한다. 이 단계에서, 파이프 값은 지금까지 송신된 최대 시퀀스 번호(즉, snd.max)와 아직 확인응답되지 않은 최저 시퀀스 번호(즉, snd.una)의 차에 최대 세그먼트 크기(MSS)를 더한 것과 동일하게 설정된다:
파이프 = MSS+snd.max-snd.una
MSS 가산은 타임아웃된 제1 데이터 패킷의 재전송을 설명하기 위해 제공된다.
420에서, 송신 호스트(115)는 확인응답(ACK)을 수신한다. 후속 처리는 ACK가 긍정 데이터 흐름을 전개하는지 또는 중복 ACK(duplicate ACK)인지에 의해 영향을 받는다. ACK는 전송된 데이터 패킷이 수신 호스트에서 성공적으로 수신되었음을 나타내는 경우에 긍정 데이터 흐름을 나타낸다. 중복 ACK는 임의의 새로운 데이터를 축적하여 확인응답하지 않고, 단지 그 확인응답 필드에서 Snd.una를 반복하는 ACK이다.
도 5는 송신 호스트(115)에서 ACK가 수신된 후(420; 도 4)의 STODER 응답의 실시예를 계속한다. 수신된 ACK가 SRP를 커버하는 시퀀스 번호를 확인응답하는지에 대한 판정(505)을 행한다. ACK에 대응하는 시퀀스 번호가 SRP를 커버하는 경우(ACK 시퀀스 번호 > SRP)(즉, 505에서 "예" 분기), STODER 응답은 종료한다(507).
다르게는, ACK가 SRP보다 적은 데이터를 확인응답하는지, 즉, ACK가 어떤 새로운 데이터를 확인응답하지만 SRP를 커버하지 않는지에 대한 판정(510)이 행해진다. 이러한 ACK는 어떤 데이터 패킷이 네트워크를 떠난 것을 나타낸다. 따라서, 이러한 조건의 긍정 판정(즉, 510에서 "예" 분기) 후, 파이프값은 미처리된 패킷의 감소를 반영하도록 조정된다{즉, 블록(512)}. 또한, ACK는 어떤 데이터가 수신 호스트에서 성공적으로 수신되었음을 나타내기 때문에, 정체 윈도우 "cwnd"가 슬로우 스타트 임계치 "ssthresh"보다 적은 경우(즉, cwnd<ssthresh) ACK가 수신되면, 정체 윈도우 "cwnd"는 최대 세그먼트 크기 "MSS"를 정체 윈도우 "cwnd"에 가산하여 열릴 수 있다(즉, cwnd=cwnd+MSS). 그 후, 지속적인 데이터 흐름을 유지하기 위해, 새로운 데이터 패킷, 즉, 아직 전송되지 않은 데이터는 파이프값이 정체 윈도우 "cwnd" 보다 적은 경우 (즉, 파이프< cwnd) 전송될 수 있다.
다르게는, ACK가 "중복 ACK"인지, 즉, 확인응답되지 않은 데이터의 최저 번호, 즉, snd.una와 동일하거나 그 이하의 시퀀스 번호를 갖는지에 대한 판정(520)이 행해진다. 중복 ACK의 판정(즉, 520으로부터의 "예" 분기) 후에, 네트워크에 미처리된 데이터의 양의 추정치는 파이프값을 원래의 파이프값과 최대 세그먼트 크기 "MSS"의 차가 되도록 재설정함으로써 조정된다(즉, 파이프 = 파이프-MSS).
또한, 중복 ACK가 SRP보다 적은 데이터 세그먼트를 선택적으로 확인응답하는 SACK을 포함하고 정체 윈도우 "cwnd"가 슬로우 스타트 임계치 "ssthresh"보다 적은 경우(즉, cwnd < ssthresh), 정체 윈도우 "cwnd"는 최대 세그먼트 크기 "MSS"를 정체 윈도우 "cwnd"의 현재값에 가산하여 재설정된다(즉, cwnd=cwnd+MSS). 다음으로, 지속적인 데이터 흐름을 유지하기 위해서, 파이프값이 정체 윈도우 "cwnd"보다 적은 경우(즉, 파이프<cwnd) 새로운 데이터 패킷이 전송된다.
다르게는, 3개의 중복 ACK가 수신되었다고 판정(530)한 경우, 네트워크에서 데이터 패킷이 손실되었다고 가정한다(즉, 530에서 "예" 분기). 따라서, 어떤 ACK도 수신되지 않은 손실된 데이터 패킷은 제3 중복 ACK의 수신 시에 송신 호스트(115)로부터 재전송될 수 있다(525). 또한, 손실이 검출되기 때문에, 슬로우 스타트 임계치 "ssthresh" 상태값과 정체 윈도우 "cwnd" 상태값이 재설정된다(527). 특히, 슬로우 스타트 임계치는 원래값의 절반으로 감소되고(즉, ssthresh=ssthresh/2), 정체 윈도우는 제3 중복 ACK가 수신된 지점에서 정체 윈도우와 슬로우 스타트 임계치 중 더 적은 것으로 설정된다{즉, cwnd=min(cwnd, ssthresh)}. 3개의 중복 ACK에 대한 부정 판정(530)의 경우, 처리는 505로 되돌아간다.
손실된 데이터의 재전송 외에, STO에 대한 응답은 SACK 기반의 슬로우 스타트 복구 처리로 전환한다.
도 6은 SACK 기반의 슬로우 스타트 복구 처리를 나타낸다. 슬로우 스타트 임계치 상태값과 정체 윈도우 상태값이 재설정된 후(527; 도 5) 송신 호스트(115)에서의 ACK의 수신은, 수신된 ACK가 SRP를 커버하는 시퀀스 번호를 확인응답하는지, 즉, ACK가 아직 확인응답되지 않은 임의의 미처리된 데이터에 대응하는지에 대한 판정(605)을 행하게 한다. 따라서, ACK에 대응하는 시퀀스 번호가 SRP를 커버하는 경우(즉, 605에서 "예" 분기), STODER 응답은 종료한다(607).
다르게는, ACK가 SRP에 나타난 것보다 적은 데이터를 확인응답하는지, 즉, ACK가 "부분 ACK"인지에 대한 판정(610)이 행해진다. SACK 기반의 슬로우 스타트 복구 단계에서 제1 부분 ACK의 판정(615)(즉, 610에서 "예" 분기)은 SRP 이하의 모든 데이터 패킷이 손실된다는 가정적 결론을 낸다. 따라서, 파이프 값을 재전송될 데이터(retran_data)와, 부분 ACK의 판정의 지점까지 송신된 데이터와 SRP의 차(snd.max-SRP)를 합하고, SRP 이상의 선택 확인응답된 데이터 패킷(sacked_pkts aboveSRP)을 감산한 크기로 설정함으로써, 재전송 버스트가 금지(620)된다:
파이프=retran_data+(snd.max-SRP)-(sacked_pkts above SRP);
또한, 정체 윈도우 "cwnd"는 윈도우와, 파이프값과 2*MSS의 초기 윈도우 값의 합 간의 최소값으로 조정된다:
cwnd=min(cwnd, 파이프+(2*MMS)).
그 후, 데이터는 손실된 것으로 간주된 SRP 이하의 데이터 패킷의 형태로 송신(625)된다.
부분 ACK의 후속 수신은, 파이프값이 원래의 파이프값과 확인응답된 데이터의 크기의 차로 재설정(즉, 파이프=파이프-data_acked)되고 정체 윈도우 cwnd는 "cwnd"가 "ssthresh"보다 적은 경우 정체 윈도우 "cwnd"와 최대 세그먼트 크기 "MSS"와의 합으로 재설정(즉, cwnd=cwnd+MSS)되는 등, 상태값이 재설정되게 한다(630). 지속적인 데이터 흐름을 유지하기 위해서, 데이터, 예를 들면, 부분적으로 확인응답되는 가장 오래된 데이터는 그 후, 파이프값이 정체 윈도우보다 작다는 가정(즉, 파이프<cwnd)하에, 송신 호스트(115)로부터 재전송된다(625).
부분 ACK의 부정적 판정(610)은 ACK가 중복 ACK임을 의미한다. 따라서, 파이프값은 파이프값과 MSS의 차(즉, 파이프=파이프-MSS)로 설정된다(635). 중복 ACK가 제1 부분 ACK 전에 수신되고 ACK가 SRP 이하의 데이터를 선택적으로 확인응답하는 SACK 블록을 포함하고 정체 윈도우가 슬로우 스타트 임계치보다 적으면(즉, cwnd<ssthresh), 정체 윈도우는 최대 세그먼트 크기 "MSS"만큼 증가한다(즉, cwnd=cwnd+MSS). 지속적인 데이터 흐름을 유지하기 위해서, 손실된 데이터 또는 새로운 데이터는 파이프값이 정체 윈도우보다 작다는 가정하에 송신 호스트(115)로부터 전송된다(재전송된다).
제2 재전송 타임아웃의 경우, 상술한 응답 처리는 종료하고 공지된 슬로우 스타트 처리가 개시된다.
도 7은 여기서 설명하는 기술을 구현하는 데 사용될 수 있는 일반 컴퓨팅 환경(700)을 나타낸다. 컴퓨터 환경(700)은 컴퓨팅 환경의 단지 일 예이며 컴퓨터 및 네트워크 아키텍처의 사용 또는 기능의 범위에 대한 임의의 제한을 암시하려는 것이 아니다. 컴퓨터 환경(700)은 예시적인 컴퓨터 환경(700)에 나타낸 컴포넌트 중 하나 또는 이들의 조합에 대한 임의의 의존성 또는 요건을 갖는 것으로서 해석되어서는 안된다.
컴퓨터 환경(700)은 컴퓨터(702)의 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(702)의 컴포넌트는 하나 이상의 프로세서 또는 처리부(704), 시스템 메모리(706), 및 프로세서(704)를 포함하는 다양한 시스템 컴포넌트를 시스템 메모리(706)에 결합하는 시스템 버스(708)를 포함하지만 이에 한정되지 않는다.
시스템 버스(708)는 메모리 버스 또는 메모리 제어기, 주변 버스, 가속 그래픽 포트, 및 다양한 버스 아키텍처 중 임의의 것을 사용하는 프로세서 또는 로컬 버스 등의 버스 구종의 여러 유형의 임의의 것 중 하나 이상을 나타낸다. 예를 들면, 이러한 아키텍처는 산업 표준 아키텍처(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, 개선된 ISA(EISA) 버스, 비디오 전자 표준 협회(VESA) 로컬 버스, 메자닌 버스(Mezzanine bus)로도 알려진 주변 컴포넌트 상호접속(PCI), PCI 고속 버스, 범용 직렬 버스(USB), 보안 디지털(SD) 버스, 또는 IEEE 1394, 즉, 파이어와이어(FireWire bus) 버스를 포함할 수 있다.
컴퓨터(702)는 다양한 컴퓨터 판독가능 매체를 포함할 수 있다. 이러한 매체는 컴퓨터(702)에 의해 액세스가능한 임의의 이용가능 매체일 수 있으며, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 포함한다.
시스템 메모리(706)는 랜덤 액세스 메모리(RAM; 710) 등의 휘발성 메모리; 및/또는 판독 전용 메모리(ROM; 712) 또는 플래시 RAM 등의 비휘발성 메모리의 형태의 컴퓨터 판독가능 매체를 포함한다. 기본 입출력 시스템(BIOS; 714)은 시동 시 등에, 컴퓨터(702) 내의 요소들 간의 정보를 전달할 수 있게 하는 기본 루틴을 포함하며, ROM(712) 또는 플래시 RAM에 저장된다. 통상, RAM(710)은 처리부(704)에 의해서만 즉시 액세스가능하고 및/또는 현재 동작하는 데이터 및/또는 프로그램 모듈을 포함한다.
또한, 컴퓨터(702)는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 예를 들면, 도 7은 비분리형, 비휘발성 자기 매체(미도시)로부터 판독하고 이에 기입하는 하드 디스크 드라이브(716), 분리형, 비휘발성 자기 디스크(720; 예를 들면, "플로피 디스크")로부터 판독하고 이에 기입하는 자기 디스크 드라이브(718), 및 CD-ROM, DVD-ROM, 또는 다른 광 매체 등의 분리형, 비휘발성 광 디스크(724)로부터 판독하고 이에 기입하는 광 디스크 드라이브(722)를 나타낸다. 하드 디스크 드라이브(716), 자기 디스크 드라이브(718), 및 광 디스크 드라이브(722)는 하나 이상의 데이터 매체 인터페이스(725)에 의해 시스템 버스(708)에 각각 접속된다. 다르게는, 하드 디스크 드라이브(716), 자기 디스크 드라이브(718) 및 광 디스크 드라이브(722)는 하나 이상의 인터페이스(미도시)에 의 해 시스템 버스(708)에 접속될 수 있다.
디스크 드라이브 및 이들의 관련 컴퓨터 판독가능 매체는 컴퓨터(702)에 대한 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 다른 데이터의 비휘발성 저장 장치를 제공한다. 이 예는 하드 디스크(716), 분리형 자기 디스크(720) 및 분리형 광 디스크(724)를 나타내지만, 자기 카세트 또는 다른 자기 저장 장치, 플래시 메모리 카드, CD-ROM, 디지털 다기능 디스크(DVD) 또는 다른 광 저장 장치, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적 소거 및 프로그래밍가능 판독 전용 메모리(EEPROM) 등과 같이 컴퓨터에 의해 액세스가능한 데이터를 저장할 수 있는 다양한 유형의 컴퓨터 판독가능 매체가 예시적인 컴퓨팅 시스템 및 환경을 구현하는데 사용될 수 있다.
예를 들면, 운영 체계(726), 하나 이상의 애플리케이션 프로그램(728), 다른 프로그램 모듈(730) 및 프로그램 데이터(732)를 포함하는 임의 개수의 프로그램 모듈은 하드 디스크(716), 자기 디스크(720), 광 디스크(724), ROM(712) 및/또는 RAM(710)에 저장될 수 있다. 이러한 운영 체계(726), 하나 이상의 애플리케이션 프로그램(728), 다른 프로그램 모듈(730), 및 프로그램 데이터(732) 각각(또는 이들의 조합)은 분산 파일 시스템을 지원하는 상주 컴포넌트의 전부 또는 일부를 구현할 수 있다.
사용자는 키보드(734)와 포인팅 장치(736; 예를 들면, "마우스")와 같은 입력 장치를 통해 컴퓨터에 명령 및 정보를 입력할 수 있다. 다른 입력 장치(738; 구체적으로 미도시)는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 직렬 포트, 스캐너 등을 포함할 수 있다. 이들 및 다른 입력 장치는 시스템 버스(708)에 결합된 입출력 인터페이스(740)를 통해 처리부(704)에 접속되지만, 병렬 포트, 게임 포트, 또는 범용 직렬 버스(USB)와 같은 다른 인터페이스 및 버스 구조에 의해 접속될 수 있다.
모니터(742) 또는 다른 유형의 디스플레이 장치가 비디오 어댑터(744) 등의 인터페이스를 통해 시스템 버스(708)에 접속될 수 있다. 모니터(742)에 더하여, 다른 출력 주변 장치가 I/O 인터페이스(740)를 통해 컴퓨터(702)에 접속될 수 있는 스피커(미도시) 및 프린터(746)와 같은 컴포넌트를 포함할 수 있다.
컴퓨터(702)는 원격 컴퓨팅 장치(748)와 같은 하나 이상의 원격 컴퓨터에 대한 논리적 접속을 사용하여 네트워킹 환경에 동작할 수 있다. 일 예로서, 원격 컴퓨팅 장치(748)는 PC, 휴대용 컴퓨터, 서버, 라우터, 네트워크 컴퓨터, 피어 장치 또는 다른 공통 네트워크 노드 등일 수 있다. 원격 컴퓨팅 장치(748)는 컴퓨터(702)에 대하여 여기서 설명되는 모든 또는 다수의 요소 및 특징을 포함할 수 있는 휴대용 컴퓨터로서 예시된다. 다르게는, 컴퓨터(702)는 비네트워크 환경에서 또한 동작할 수 있다.
컴퓨터(702)와 원격 컴퓨터(748) 간의 논리적 접속은 근거리 네트워크(LAN; 750) 및 통상의 광역 네트워크(WAN; 752)로서 나타낸다. 이러한 네트워킹 환경은 사무실, 범사내망, 인트라넷 및 인터넷에서 흔한 일이다.
LAN 네트워킹 환경에서 구현된 경우, 컴퓨터(702)는 네트워크 인터페이스 또는 어댑터(754)를 통해 로컬 네트워크(750)에 접속된다. WAN 네트워킹 환경에서 구현되는 경우, 컴퓨터(702)는 광역 네트워크(752)를 통해 통신을 설정하는 모뎀(756) 또는 다른 수단을 통상 포함한다. 모뎀(756)은 컴퓨터(702)에 대한 내장형 또는 내장형일 수 있으며 I/O 인터페이스(740) 또는 다른 적절한 메커니즘을 통해 시스템 버스(708)에 접속될 수 있다. 도시된 네트워크 접속은 단지 일 예이며 컴퓨터(702 및 748) 간의 적어도 하나의 통신 링크를 설정하는 다른 수단이 사용될 수 있다.
컴퓨팅 환경(700)에서 도시된 바와 같은 네트워크 환경에서, 컴퓨터(702) 또는 그 일부에 대하여 도시된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예를 들면, 원격 애플리케이션 프로그램(758)은 원격 컴퓨터(748)의 메모리 장치에 상주한다. 이러한 프로그램 및 컴포넌트는 컴퓨팅 장치(702)의 상이한 저장 장치 컴포넌트에서 다양한 시점에서 상주하고 컴퓨터의 적어도 하나의 데이터 프로세서에 의해 실행된다고 인식되지만, 예시의 목적으로, 운영 채계와 같은 애플리케이션 또는 프로그램 및 다른 실행가능 프로그램 컴포넌트는 개별 블록으로서 도시된다.
다양한 모듈 및 기술은 하나 이상의 컴퓨터 또는 다른 장치에 의해 실행되는 프로그램 모듈 등의 컴퓨터 실행가능 명령의 일반적인 경우에 여기서 설명될 수 있다. 통상, 프로그램 모듈은 특정 작업을 수행하거나 특정 추상 데이터형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조를 포함한다. 통상, 프로그램 모듈의 기능은 여러 실시예에서 바람직한 대로 조합 또는 분산될 수 있다.
이들 모듈 및 기술의 구현예는 컴퓨터 판독가능 매체의 몇몇 형태 상으로 저 장되거나 이에 걸쳐 전송될 수 있다. 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능 매체일 수 있다. 한정이 아닌 일 예로서, 컴퓨터 판독가능 매체는 "컴퓨터 저장 매체" 및 "통신 매체"를 포함할 수 있다.
"컴퓨터 저장 매체"는 컴퓨터 판독가능 매체, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장 장치를 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(DVD) 또는 다른 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 원하는 정보를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 다른 임의의 매체를 포함하지만 이에 한정되지 않는다.
"통신 매체"는 통상 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호의 다른 데이터를 구현한다. 또한, 통신 매체는 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 하나 이상의 특성이 신호의 정보를 인코딩하는 방식으로 설정 또는 변경되게 하는 신호를 의미한다. 비한정 예로서만, 유선 네트워크 또는 다이렉트 유선 접속 및 어쿠스틱, RF, 적외선 및 다른 무선 매체 등의 무선 매체를 포함한다. 또한, 상기의 것의 임의의 조합은 컴퓨터 판독가능 매체의 범위 내에 포함된다.
설명하는 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함됨 을 의미하는 "하나의 실시예(one embodiment)", "일 실시예(an embodiment)", "예시적 실시예(example embodiment)"에 대한 참조가 본 명세를 통해 행해진다. 이러한 어구의 사용은 단지 하나의 실시예에 대하여 것임을 나타낼 수 있다. 또한, 설명한 특징, 구조 또는 특성은 하나 이상의 실시예에서 임의의 적절한 방식으로 결합될 수 있다.
그러나, 당업자는 본 발명이 하나 이상의 특정 세부사항 또는 다른 방법, 자원, 자료없이 실시될 수 있다는 것을 알 것이다. 다른 경우, 공지된 구조, 자원 또는 동작은 본 발명의 양태를 단지 모호하지 않게 하기 위해서 상세히 도시되거나 설명되지 않았다.
본 발명의 실시예 및 응용이 설명되었지만, 본 발명이 상술한 정확한 구성 및 자원에 한정되지 않는다. 당업자에 명백한 다양한 변형, 변화 및 변경은 본 발명의 범위를 벗어나지 않으면서 여기서 개시된 본 발명의 방법 및 시스템의 구성, 동작 및 세부사항으로 행해질 수 있다.
상술한 본 발명에 따르면, 전송 장치가 정체 상태 파라미터를 보존적으로 조정하고 STO의 검출 후 패킷 흐름을 유지할 수 있으며, 또한, 긍정 데이터 흐름이 보존적으로 유지될 수 있으면서 수신 호스트에 의해 성공적으로 수신될 수 있는 데이터 패킷의 불필요한 재전송과 추가 패킷 손실을 방지할 수 있다.

Claims (30)

  1. 스퓨리어스 타임아웃(spurious timeout)에 응답하는 방법으로서,
    정체 상태값(congestion state value)들을 조정하는 단계 - 상기 정체 상태값들을 조정하는 단계는, 슬로우 스타트 임계치(slow-start threshold value)를 복구하는 단계와, 정체 윈도우(congestion window)의 초기값을 재설정하는 단계와, 네트워크 내의 미처리된 바이트들의 수의 송신측 추정치인 파이프값을 설정하는 단계를 포함하여 구성되며, 상기 파이프값을 설정하는 단계는, 지금까지 송신된 최대 시퀀스 번호와 아직 확인응답(acknowledge)되지 않은 최소 시퀀스 번호 간의 차이(difference)에, 송신 호스트에 의해 송신될 수 있는 최대 세그먼트 크기를 가산하는 단계를 포함함 - ;
    상기 조정된 정체 상태값들에 따라 네트워크 상의 데이터 흐름을 유지하는 단계; 및
    이전에 전송된 데이터가 상기 네트워크 상에서 손실된 것으로 간주된 경우, 상기 이전에 전송된 데이터를 재전송하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 슬로우 스타트 임계치는 상기 타임아웃 이전에 검출된 가용 대역폭의 값인 방법.
  3. 제1항에 있어서,
    상기 정체 윈도우의 초기값을 재설정하는 단계는 상기 정체 윈도우를 최대 데이터 세그먼트 크기의 두 배로 설정하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 조정된 정체 상태값들에 따라 데이터 흐름을 유지하는 단계는,
    데이터 패킷을 전송하는 단계;
    확인응답(acknowledgement)을 수신하는 단계; 및
    상기 송신 호스트에 의해 송신될 수 있는 최대 데이터 세그먼트 크기를 가산하여 상기 정체 윈도우를 재설정하는 단계
    를 포함하는 방법.
  5. 제1항에 있어서,
    상기 이전에 전송된 데이터가 상기 네트워크 상에서 손실된 것으로 간주된 경우 상기 이전에 전송된 데이터를 재전송하는 단계는, 3개의 중복 확인응답이 송신 호스트에 의해 수신되는 경우 이전에 전송된 데이터를 재전송하는 단계를 포함하는 방법.
  6. 제5항에 있어서,
    슬로우 스타트 복구 프로세스를 구현하는 단계를 더 포함하는 방법.
  7. 제5항에 있어서,
    슬로우 스타트 복구 프로세스를 구현하는 단계를 더 포함하되, 상기 슬로우 스타트 복구 프로세스를 구현하는 단계는,
    상기 파이프값을 재조정하는 단계; 및
    수신된 확인응답의 패턴에 따라 상기 정체 윈도우의 크기를 재설정하는 단계
    를 포함하는 방법.
  8. 적어도 하나의 명령어를 갖는 컴퓨터 판독가능 기록 매체로서,
    상기 적어도 하나의 명령어는 네트워크 상에서 타임아웃의 검출 시에, 적어도 하나의 프로세서가 제1항 내지 제7항 중 어느 한 항에 따른 방법의 단계들을 수행하게 하는 컴퓨터 판독가능 기록 매체.
  9. 스퓨리어스 타임아웃 복구를 위한 장치로서,
    데이터 패킷을 전송하는 전송기;
    스퓨리어스 타임아웃을 검출하는 전송 타이머; 및
    데이터가 네트워크 상에서 손실된 것으로 확인될 때까지 데이터 흐름을 유지하는 응답 프로세서
    를 포함하며,
    상기 응답 프로세서는,
    정체 상태값들을 조정하고 - 상기 정체 상태값들을 조정하는 것은, 슬로우 스타트 임계치를 복구하는 것과, 정체 윈도우의 초기값을 재설정하는 것과, 네트워크 내의 미처리된 바이트들의 송신측 추정치인 파이프값을 설정하는 것을 포함하되, 상기 파이프값을 설정하는 것은 지금까지 송신된 최대 시퀀스 번호와 아직 확인응답(acknowledge)되지 않은 최소 시퀀스 번호 간의 차이에, 송신 호스트에 의해 송신될 수 있는 최대 세그먼트 크기를 가산하는 것을 포함함 - ;
    상기 조정된 정체 상태값들에 따라 네트워크 상의 데이터 흐름을 유지하며;
    이전에 전송된 데이터가 상기 네트워크 상에서 손실된 것으로 간주된 경우 상기 이전에 전송된 데이터를 재전송하도록 구성되는 장치.
  10. 제9항에 있어서,
    상기 정체 상태값들을 조정하는 것은,
    송신 호스트가 확인응답의 수신 전에 송신할 수 있는 데이터의 양의 한도를 상기 송신 호스트가 송신할 수 있는 데이터 세그먼트 크기의 두 배로 설정하는 것인 장치.
  11. 제9항에 있어서,
    상기 조정된 정체 상태값들에 따라 상기 네트워크 상의 데이터 흐름을 유지하는 것은,
    확인응답의 수신 시에, 송신 호스트가 확인응답을 수신하기 전에 송신할 수 있는 데이터의 양의 한도를 상기 송신 호스트가 전송할 수 있는 데이터 세그먼트의 크기를 가산하여 재설정하고,
    상기 네트워크 상에서 데이터를 전송하는 것인 장치.
  12. 제9항에 있어서,
    상기 이전에 전송된 데이터가 상기 네트워크 상에서 손실된 것으로 간주된 경우에 상기 이전에 전송된 데이터를 재전송하는 것은,
    3개의 중복 확인응답의 수신 시에 상기 이전에 전송된 데이터를 재전송하는 것인 장치.
  13. 제9항에 있어서,
    상기 장치는 슬로우 스타트 복구를 더 처리하는 장치.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020050021410A 2004-03-15 2005-03-15 스퓨리어스 타임아웃에 대한 응답 방법 KR101130479B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/800,897 2004-03-15
US10/800,897 US7397759B2 (en) 2004-03-15 2004-03-15 Response for spurious timeout

Publications (2)

Publication Number Publication Date
KR20060043648A KR20060043648A (ko) 2006-05-15
KR101130479B1 true KR101130479B1 (ko) 2012-03-27

Family

ID=34838876

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050021410A KR101130479B1 (ko) 2004-03-15 2005-03-15 스퓨리어스 타임아웃에 대한 응답 방법

Country Status (7)

Country Link
US (1) US7397759B2 (ko)
EP (1) EP1578070B1 (ko)
JP (1) JP4589764B2 (ko)
KR (1) KR101130479B1 (ko)
CN (1) CN1671094B (ko)
AT (1) ATE424674T1 (ko)
DE (1) DE602005013016D1 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7623464B2 (en) * 2004-07-09 2009-11-24 Cisco Technology, Inc. Rapid protocol failure detection
EP1771742B1 (en) * 2004-07-29 2017-07-12 Dell Products L.P. High performance tcp for systems with infrequent ack
US7903546B2 (en) * 2005-01-14 2011-03-08 Cisco Technology, Inc. Detecting unavailable network connections
WO2006103724A1 (ja) * 2005-03-25 2006-10-05 Fujitsu Limited パケットの配信帯域制御方法、配信装置及び映像配信システム
US7965771B2 (en) * 2006-02-27 2011-06-21 Cisco Technology, Inc. Method and apparatus for immediate display of multicast IPTV over a bandwidth constrained network
US8218654B2 (en) * 2006-03-08 2012-07-10 Cisco Technology, Inc. Method for reducing channel change startup delays for multicast digital video streams
US8031701B2 (en) 2006-09-11 2011-10-04 Cisco Technology, Inc. Retransmission-based stream repair and stream join
JP4898822B2 (ja) 2006-10-05 2012-03-21 株式会社エヌ・ティ・ティ・ドコモ 通信システム、通信装置、通信方法
US7937531B2 (en) 2007-02-01 2011-05-03 Cisco Technology, Inc. Regularly occurring write back scheme for cache soft error reduction
US8769591B2 (en) 2007-02-12 2014-07-01 Cisco Technology, Inc. Fast channel change on a bandwidth constrained network
US7940644B2 (en) * 2007-03-14 2011-05-10 Cisco Technology, Inc. Unified transmission scheme for media stream redundancy
US20080253369A1 (en) 2007-04-16 2008-10-16 Cisco Technology, Inc. Monitoring and correcting upstream packet loss
US8205140B2 (en) * 2007-05-10 2012-06-19 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for the use of network coding in a wireless communication network
US8787153B2 (en) 2008-02-10 2014-07-22 Cisco Technology, Inc. Forward error correction based data recovery with path diversity
US8495238B1 (en) * 2008-05-28 2013-07-23 Google Inc. Facilitating self-tuning traffic shaping without a central traffic manager
US8019899B2 (en) * 2008-08-28 2011-09-13 Yahoo! Inc. Delivering partially processed results based on system metrics in network content delivery systems
US9294219B2 (en) * 2008-09-30 2016-03-22 Qualcomm Incorporated Techniques for supporting relay operation in wireless communication systems
US9203564B2 (en) * 2008-10-20 2015-12-01 Qualcomm Incorporated Data transmission via a relay station in a wireless communication system
US8607114B2 (en) * 2008-12-05 2013-12-10 Ntt Docomo, Inc. Communication device and communication method
US8274886B2 (en) * 2009-10-28 2012-09-25 At&T Intellectual Property I, L.P. Inferring TCP initial congestion window
US8625622B2 (en) * 2009-12-25 2014-01-07 Cisco Technology, Inc. Increasing transmission rate to a remote device in response to attributing information loss as not being a result of network congestion
WO2012132283A1 (ja) * 2011-03-28 2012-10-04 日本電気株式会社 通信装置およびその通信制御方法
CN102664867B (zh) * 2012-03-15 2014-11-19 南京邮电大学 一种卫星通信系统中的传输协议的增强方法
US9413797B2 (en) * 2013-04-23 2016-08-09 Gurulogic Microsystems Oy Data communication system and method
CN104202257B (zh) * 2014-09-12 2017-07-21 大连大学 一种基于带宽估计的卫星网络拥塞控制方法
CN110199505B (zh) 2016-12-21 2022-11-18 英国电讯有限公司 确定通信链路的带宽
GB201621854D0 (en) * 2016-12-21 2017-02-01 British Telecomm Managing congestion response during content delivery
CN110192394B (zh) 2016-12-21 2023-10-20 英国电讯有限公司 通过网络传送媒体内容的方法和服务器
CN110115042B (zh) 2016-12-29 2023-02-21 英国电讯有限公司 在网络中输送视频序列的方法、数据发送器
CN108574644B (zh) * 2017-09-15 2021-05-14 北京金山云网络技术有限公司 一种tcp连接恢复方法、装置、电子设备及存储介质
CN110266446B (zh) * 2019-05-15 2022-05-20 网宿科技股份有限公司 一种基于sack模式调整乱序时长的方法和装置
CN114785462A (zh) * 2022-04-13 2022-07-22 广州国巡机器人科技有限公司 一种防丢包的通信方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003030469A2 (fr) 2001-09-28 2003-04-10 Evolium S.A.S Procede pour ameliorer les performances d'un protocole de transmission utilisant un temporisateur de retransmission

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7046672B2 (en) * 2000-11-16 2006-05-16 Microsoft Corporation Robust, inferentially synchronized transmission of compressed transport-layer-protocol headers
CN1134135C (zh) * 2000-11-22 2004-01-07 深圳市中兴通讯股份有限公司 一种应用于双网容错系统的通讯方法
US7099273B2 (en) * 2001-04-12 2006-08-29 Bytemobile, Inc. Data transport acceleration and management within a network communication system
US7609640B2 (en) * 2003-12-19 2009-10-27 Nokia Corporation Methods and applications for avoiding slow-start restart in transmission control protocol network communications
US7310682B2 (en) * 2004-01-08 2007-12-18 Lsi Corporation Systems and methods for improving network performance

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003030469A2 (fr) 2001-09-28 2003-04-10 Evolium S.A.S Procede pour ameliorer les performances d'un protocole de transmission utilisant un temporisateur de retransmission

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
논문1:Responding to spurious timeouts in TCP(2003.03.)*
논문2:F-RTO: An Enhanced Recovery Algorithm for TCP Retransmission Timeouts(2003.04.)
논문3:F-RTO: DCLOR: De-correlated Loss Recovery using SACK option for spurious timeouts(2004.03.)

Also Published As

Publication number Publication date
JP4589764B2 (ja) 2010-12-01
ATE424674T1 (de) 2009-03-15
CN1671094B (zh) 2010-08-18
KR20060043648A (ko) 2006-05-15
JP2005269643A (ja) 2005-09-29
CN1671094A (zh) 2005-09-21
US7397759B2 (en) 2008-07-08
US20050201279A1 (en) 2005-09-15
DE602005013016D1 (de) 2009-04-16
EP1578070B1 (en) 2009-03-04
EP1578070A1 (en) 2005-09-21

Similar Documents

Publication Publication Date Title
KR101130479B1 (ko) 스퓨리어스 타임아웃에 대한 응답 방법
US11876714B2 (en) Method and apparatus for network congestion control based on transmission rate gradients
US8094557B2 (en) Adaptive fast retransmit threshold to make TCP robust to non-congestion events
JP5523350B2 (ja) Tcpフロー制御のための方法及び装置
JP5020076B2 (ja) 低頻度ackのシステムに適した高性能tcp
US7296206B2 (en) Communication device, transmission control method, and program product
US7035291B2 (en) TCP transmission acceleration
US8306062B1 (en) Method and apparatus of adaptive large receive offload
US7590888B2 (en) Receiving device and transmitting device for determining errors in transmission
EP3939191B1 (en) Device and method for delivering acknowledgment in network transport protocols
Hurtig et al. Tcp and stream control transmission protocol (sctp) rto restart
JP2005167352A (ja) 送信装置およびプログラム
WO2016147650A1 (ja) 送信装置およびその制御方法、通信システム、並びに通信制御プログラムが格納された記録媒体
CN117692367A (zh) 一种rdp冗余数据传输方法
Kocan et al. TCP for wireless network
CN116896532A (zh) 一种面向最小带宽保障的网络拥塞控制方法及装置
Zabir et al. An efficient flow control approach for TCP over wireless Networks
Reddy Best Practices for Deploying FCIP and IFCP Solutions Using Connectrix Multiprotocol Routers
Pujeri et al. Survey of End-to-End TCP Congestion Control Protocols

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150217

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160218

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 7