KR20180048760A - 패킷 전송 방법 및 사용자 장비 - Google Patents

패킷 전송 방법 및 사용자 장비 Download PDF

Info

Publication number
KR20180048760A
KR20180048760A KR1020187008310A KR20187008310A KR20180048760A KR 20180048760 A KR20180048760 A KR 20180048760A KR 1020187008310 A KR1020187008310 A KR 1020187008310A KR 20187008310 A KR20187008310 A KR 20187008310A KR 20180048760 A KR20180048760 A KR 20180048760A
Authority
KR
South Korea
Prior art keywords
packet
retransmitted
transmitting
time interval
packets
Prior art date
Application number
KR1020187008310A
Other languages
English (en)
Other versions
KR102136563B1 (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 KR20180048760A publication Critical patent/KR20180048760A/ko
Application granted granted Critical
Publication of KR102136563B1 publication Critical patent/KR102136563B1/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/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
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • 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/1607Details of the supervisory signal
    • H04L1/1628List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
    • 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
    • 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/1809Selective-repeat protocols
    • 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/1874Buffer 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/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements
    • 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/189Transmission or retransmission of more than one copy of a message
    • 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/50Queue scheduling
    • H04L47/54Loss aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Landscapes

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

Abstract

본 발명은 패킷 전송 방법 및 사용자 장비를 개시한다. 본 방법은, 송신 노드가, 복수의 패킷을 수신 노드에 송신하는 단계; 수신 노드로부터 복수의 확인 응답 패킷을 수신하는 단계; 수신된 복수의 확인 응답 패킷에 따라 제1 패킷이 손실된 것으로 결정한 다음, 제1 패킷을 재전송 하는 단계; 및 송신 노드가, 재송신된 패킷이 손실된 것으로 검출된 경우, 미리 설정된 시간 간격 내에 적어도 두 번 제1 패킷을 수신 노드에 연속해서 재송신하는 단계를 포함한다. 본 발명의 해결 수단에 따르면, 재송신된 패킷이 손실된 다음 제시간에 재송신된 패킷이 검출되고 복구될 수 있으므로, 타임 아웃 재전송의 횟수를 줄이고 전송 속도를 개선하며, 재송신된 패킷의 패킷 손실 가능성을 줄이고, 추가로 타임 아웃 재전송의 가능성을 줄인다.

Description

패킷 전송 방법 및 사용자 장비
본 발명은 통신 분야에 관련된 것으로서, 보다 상세하게는 패킷 전송 방법 및 사용자 장비에 관한 것이다.
컴퓨터 네트워크 통신에서, 패킷 손실복구 알고리즘은 매우 중요한 역할을 한다. 패킷 손실 복구 알고리즘은, TCP(Transmission Control Protocol) 프로토콜 스택에서 데이터 전송의 신뢰성을 보장하고 데이터 패킷 손실시 오류 허용 메커니즘(error tolerance mechanism)이며 데이터 전송 효율과 네트워크 대역폭 사용에 직접 영향을 미치는 중요한 알고리즘이다. RFC2581은 주로 타임 아웃 재송신(timeout retransmission)과 빠른 재송신(fast retransmission)을 포함하는 전형적인 패킷 손실 복구 알고리즘을 정의하고 설명한다. 타임 아웃 재송신은 TCP 프로토콜에서 데이터 신뢰성을 보장하는 중요한 메커니즘이다. 타임 아웃 재송신의 원칙은 다음과 같다. 송신 노드는 패킷을 보낸 후 타임 아웃 타이머(timeout timer)를 활성화하고, 타임 아웃 타이머가 만료된 후, 송신 노드가, 패킷이 정확하게 수신되었다는 것을 지시하는 확인 응답(Acknowledgement, ACK) 패킷을 여전히 수신하지 않은 경우, 송신 노드는 패킷을 재송신한다. 재송신된 패킷은 또한 일반적으로 재송신된 패킷으로 지칭된다. 빠른 재송신은 타임 아웃 재송신의 최적화된 메커니즘이다. 송신단이 N 번(일반적으로, N은 3과 같음) 이상 반복 ACK를 수신하면 패킷이 손실되었다고 판단하여 손실된 패킷을 즉시 재송신한다. 빠른 재송신 메커니즘에서, 재송신 타이머가 만료되기 전에 패킷 재송신될 수 있으므로 데이터 전송 효율이 크게 향상된다.
TCP 전송에서 불필요한 타임 아웃 재송신을 회피하는 것은 항상 학계 및 산업계의 연구 핫스팟(hotspot)이다. 그러나 현재 TCP 프로토콜 스택의 대부분에서, 재송신된 패킷의 손실을 검출하는 메커니즘은 없다. 재송신된 패킷이 손실되면 필연적으로 타임 아웃 재송신이 발생하고, 결과적으로 TCP 연결의 전송 효율이 크게 저하된다.
현재, 재송신 패킷의 손실 검출 및 복구와 관련된 알고리즘은 주로 DAC(Duplicate Acknowledgement Counting) 알고리즘 및 SACK+(Selective Acknowledgement Plus) 알고리즘을 포함한다. DAC 알고리즘과 SACK+ 알고리즘은 모두 비대칭 TCP 가속 알고리즘이며 전송 단에서만 배치되어야 하며 기본 아이디어는 매우 유사하다.
DAC 알고리즘의 주요 원리는 다음과 같다: 패킷이 재송신 될 때, 송신단은 현재 네트워크에서 전송되는 패킷의 양(n)을 추정하고, 패킷 재송신 후에 수신된 반복된 ACK 수를 카운트한다. 여기에서 이미 수신된 패킷, 수신단에 의해 수신 확인되지 않은 패킷, 송신단에서 손실된 패킷으로서 결정되지 않은 패킷은 네트워크에서 전송된 패킷으로서 정의되고, n번 이상의 ACK가 수신된 후에 누적 응답이 업데이트되지 않으면 현재 재송신된 패킷이 손실되었다고 판단하고 타임 아웃 재송신을 기다리지 않고 즉시 재송신한다.
도 1에 도시된 바와 같이, 도 1에서, 송신 창에서, 시퀀스 번호가 3인 패킷이 손실된 것으로 가정한다. 도 1의 단계 101에 도시된 바와 같이, 3번의 반복된 ACK를 수신한 다음, 송신단은 시퀀스 넘버가 3인 패킷을 재송신하기 위해 빠른 재송신을 시작하고, DAC 알고리즘을 이용하여 네트워크에서 전송되는 패킷의 양을 추정한다.
실현 가능한 추정 방법은 다음과 같다(추정 방법은 이 추정 방법에 제한되지 않는다). 송신단은 송신된 패킷의 최대 시퀀스 번호가 8이고, 수신된 누적 확인 응답의 시퀀스 번호가 2이고, 3회의 반복 확인 응답이 수신되면, 송신단은 하나의 패킷이 손실된 것으로 결정하고, 네트워크에서 송신되는 패킷의 양이 8-2-3-1=2와 같다고 추정한다. 다음으로, 도 1의 단계 102에 도시된 바와 같이, 송신단은 재송신 후 수신된 반복 ACK를 카운트한다. 송신단이 재송신 후 3번째 반복 ACK를 수신한 경우, 누적 확인 응답의 시퀀스 번호가 여전히 2이고 업데이트되지 않으면, 송신단은 재송신된 패킷이 손실된 것으로 결정한다. 마지막으로, 도 1의 단계 103에 도시된 바와 같이, 송신단은 시퀀스 번호가 3인 패킷을 즉시 재송신하고 재송신 타이머의 타임 아웃을 기다릴 필요가 없으므로 타임 아웃 재송신 진입을 피할 수 있다.
SACK+ 알고리즘의 원리는 DAC 알고리즘의 원리와 유사하다. 가장 큰 차이점은 SACK 알고리즘에서 확인 응답 패킷 내의 SACK 옵션에 포함된 선택 확인 응답 정보를 사용하여 재송신된 패킷이 손실되었는지 결정된다는 점이다.
그러나 DAC 알고리즘이나 SACK+ 알고리즘에 관계없이, 재송신 패킷의 손실을 제시간에 검출할 수 없을 확률이 높다는 것을 테스트에 의해 알 수 있다. 결과적으로, 재송신된 패킷은 손실된 후에 송신단에 의해 검출되고 복구될 수 없다. 따라서 타임 아웃 재송신이 트리거된다. 높은 패킷 손실률의 시나리오에서, 빈번한 타임 아웃 재송신은 전송 지연의 증가 및 전송 속도의 급격한 감소를 야기한다.
본 발명의 실시예는 패킷의 타임 아웃 재송신 가능성을 줄이고 패킷 전송 지연을 줄이며 패킷 전송률을 향상시키기 위한 패킷 전송 방법, 송신 장치 및 통신 시스템을 제공한다.
본 발명의 전술한 목적을 달성하기 위해, 본 발명의 제1 측면에 따르면, 본 발명의 실시예는 패킷 전송 방법을 제공하고, 이러한 패킷 송신 방법은, 송신 노드가, 상기 송신 노드와 수신 노드 사이의 통신 링크를 사용하여 복수의 패킷을 상기 수신 노드에 송신하는 단계; 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정된 다음, 상기 송신 노드가 상기 제1 패킷을 재송신하는 단계; 상기 송신 노드가, 상기 제1 패킷이 재송신 된 다음 수신된 확인 응답패킷(acknowledgement packet)에 기초하여, 재송신된 패킷이 손실된 것으로 결정하는 단계 - 상기 재송신된 패킷은 상기 재송신된 제1 패킷임 -; 및 상기 송신 노드가, 상기 제1 패킷을 다시 재송신하고, 제1 시간 간격 내에 적어도 한 번 상기 제1 패킷을 송신하는 단계를 포함하고, 상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 송신 노드는 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 상기 제1 시간 간격 내에 수신한 적이 없다.
제1 측면의 가능한 제1 구현 방식에서, 상기 송신 노드가, 상기 수신 노드로부터 하나 이상의 확인 응답 패킷을 수신하고, 상기 하나 이상의 확인 응답 패킷에 포함된 확인 응답 필드 또는 확장 필드에 따라 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하는 단계를 더 포함한다.
제1 측면 또는 제1 측면의 가능한 제1 구현 방식을 참조하면, 가능한 제2 구현 방식에서, 상기 송신 노드가, 제1 시간 간격 내에 상기 제1 패킷을 적어도 한 번 송신하는 단계 이후에, 상기 송신 노드가, 상기 송신 노드에 의해 송신되지 않은 패킷인 제2 패킷을 송신하는 단계를 더 포함한다.
제2 측면에 따르면, 본 발명의 실시예는 패킷 전송 방법을 제공하고, 이러한 패킷 전송 방법은, 송신 노드가, 상기 송신 노드와 수신 노드 사이의 통신 링크를 사용하여 복수의 패킷을 상기 수신 노드에 송신하는 단계; 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정된 다음, 상기 송신 노드가 상기 제1 패킷을 재송신하는 단계; 상기 송신 노드가, 상기 제1 패킷이 재송신 된 다음 수신된 확인 응답 패킷(acknowledgement packet)에 기초하여, 재송신된 패킷이 손실된 것으로 결정하는 단계 - 상기 재송신된 패킷은 상기 재송신된 제1 패킷임 -; 상기 송신 노드가, 상기 제1 패킷을 다시 재송신하고, 송신 버퍼가 비어 있는지 결정하는 단계; 및 상기 송신 노드가, 상기 송신 버퍼가 비어 있으면 상기 제1 시간 간격 내에 적어도 한 번 상기 제1 패킷을 송신하는 단계를 포함하고, 상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 송신 노드는 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷(acknowledgement packet)을 상기 제1 시간 간격 내에 수신한 적이 없다.
제2 측면의 가능한 제1 구현 방식에서, 상기 패킷 전송 방법은, 상기 송신 노드가, 상기 송신 버퍼가 비어있지 않은 경우, 상기 제1 시간 간격 내에 상기 송신 버퍼 내의 적어도 하나의 패킷을 송신하는 단계를 더 포함하고, 상기 송신 버퍼 내의 패킷은 상기 송신 노드에 의해 송신되지 않은 패킷이다.
제2 측면 또는 제2 측면의 가능한 제1 구현 방식을 참조하면, 가능한 제2 구현 방식에서, 상기 송신 노드가, 상기 제1 패킷이 재송신 된 다음 수신된 확인 응답 패킷에 기초하여, 재송신된 패킷이 손실된 것으로 결정하는 단계는, 상기 송신 노드가, 상기 제1 패킷이 재송신된 다음 수신된 확인 응답 패킷에 포함된 확인 응답 필드 또는 확장 필드에 따라 상기 재송신된 패킷이 손실된 것으로 결정하는 단계를 포함한다.
제3 측면에 따르면, 본 발명의 실시예는 패킷 전송 방법을 제공하고, 이러한 패킷 전송 방법은, 송신 노드가, 상기 송신 노드와 수신 노드 사이의 통신 링크를 사용하여 복수의 패킷을 상기 수신 노드에 송신하는 단계; 상기 송신 노드가, 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정한 다음, 상기 제1 패킷을 재송신하는 단계; 상기 송신 노드가, 상기 제1 패킷이 재송신 된 다음 수신된 확인 응답 패킷에 기초하여, 재송신된 패킷이 손실된 것으로 결정하는 단계 - 상기 재송신된 패킷은 상기 재송신된 제1 패킷임 -; 상기 송신 노드가, 상기 제1 패킷을 다시 재송신하고, 송신 버퍼가 비어 있는지 또는 현재 혼잡 제어 정책(congestion control policy)이 신규 패킷의 송신을 허용하는지 결정하는 단계; 및 상기 송신 노드가, 상기 송신 버퍼가 비어있거나 또는 상기 현재 혼잡 제어 정책이 상기 신규 패킷의 송신을 허용하지 않는 경우, 제1 시간 간격 내에 적어도 한 번 상기 제1 패킷을 송신하는 단계를 포함하고, 상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 송신 노드는 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 상기 제1 시간 간격 내에 수신한 적이 없다.
제3 측면의 가능한 제1 구현 방식에서, 상기 패킷 전송 방법이, 상기 송신 노드가, 상기 송신 버퍼가 비어있지 않고 상기 현재 혼잡 제어 정책이 상기 신규 패킷의 송신을 허용하는 경우, 상기 제1 시간 간격 내에 상기 송신 버퍼 내의 적어도 하나의 패킷을 송신하는 단계를 더 포함하고, 상기 송신 버퍼 내의 패킷은 상기 송신 노드에 의해 송신되지 않은 패킷이다.
전술한 측면들 중 어느 하나 또는 전술한 측면들의 가능한 구현 방식들 중 어느 하나에서, 제1 시간 간격은, 0보다 크거나 그와 같고, 제1 패킷의 타임 아웃 타이머의 주기보다 짧으며 송신 노드는 다시 재전송된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 답신 패킷을 제1 시간 간격 내에 수신한 적이 없다.
전술한 측면들 중 어느 하나 또는 전술한 측면들의 가능한 구현 방식들 중 어느 하나에서, 송신 노드와 수신 노드 사이의 통신 링크는 TCP 연결이다.
전술한 측면들 중 어느 하나 또는 전술한 측면들의 가능한 구현 방식들 중 어느 하나에서, 송신 버퍼 내의 패킷은 송신 노드에 의해 송신되지 않은 패킷이다.
전술한 측면들 중 어느 하나 또는 전술한 측면들의 가능한 구현 방식들 중 어느 하나에서, 송신노드는, 송신 노드가 상기 재송신된 제1 패킷이 손실된 것으로 검출한 다음, 상기 손실된 제1 패킷을 미리 설정된 시간 간격 내에 재송신하고, 상기 미리 설정된 시간 간격은, 상기 송신 노드가 상기 재송신된 제1 패킷이 손실된 것으로 검출한 시점을 시작 시점으로 사용하고, 상기 미리 설정된 시간 간격은 0보다 크거나 그와 같고 제1 패킷의 타임 아웃 타이머의 주기보다 짧거나 또는 상기 미리 설정된 시간 간격은 0에 접근한다..
제4 측면에 따르면, 본 발명의 실시예는 사용자 장비를 제공하고, 이러한 사용자 장비는, 무선 모뎀, 프로세서, 안테나, 및 TCP 프로토콜 스택(TCP protocol stack)을 포함하고, 상기 무선 모뎀은 상기 안테나에 연결되고, 상기 TCP 프로토콜 스택은, 상기 프로세서의 제어 하에, 상기 사용자 장비에서 실행되는 애플리케이션 프로그램의 데이터를 복수의 패킷으로 캡슐화(encapsulate)하고, 상기 복수의 패킷을 상기 무선 모뎀에 송신하도록 구성되며, 상기 무선 모뎀은 수신된 상기 패킷을 아날로그 신호로 변조하고, 상기 안테나를 이용하여 상기 아날로그 신호를 서버에 송신하도록 구성되고, 상기 TCP 프로토콜 스택이 추가로, 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 확인된 다음, 상기 무선 모뎀 및 상기 안테나를 사용하여 상기 제1 패킷을 상기 서버에 재송신하고, 상기 제1 패킷이 재송신된 다음 수신된 확인 응답 패킷(acknowledgement packet)에 기초하여, 재송신된 패킷이 손실된 것으로 결정하고 - 상기 재송신된 패킷은 상기 재송신된 제1 패킷임 -. 상기 제1 패킷을 상기 서버에 다시 재송신하고, 제1 시간 간격 내에 적어도 한 번 상기 제1 패킷을 상기 서버에 송신하도록 구성되고, 상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 사용자 장비는 상기 제1 시간 간격 내에 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신한 적이 없다.
제4 측면의 가능한 제1 구현 방식에서, 상기 TCP 프로토콜 스택이 추가로, 상기 무선 모뎀 및 상기 안테나를 사용하여, 송신되지 않은 패킷인 제2 패킷을 송신하도록 구성된다.
제5 측면에 따르면, 본 발명의 실시예는 사용자 장비를 제공하고, 이러한 사용자 장비는, 무선 모뎀, 프로세서, 안테나, 및 TCP 프로토콜 스택(TCP protocol stack)을 포함하고, 상기 무선 모뎀은 상기 안테나에 연결되고, 상기 TCP 프로토콜 스택은, 상기 프로세서의 제어 하에, 상기 사용자 장비에서 실행되는 애플리케이션 프로그램의 데이터를 복수의 패킷으로 캡슐화(encapsulate)하고, 상기 복수의 패킷을 상기 무선 모뎀에 송신하도록 구성되며 상기 무선 모뎀은 수신된 상기 패킷을 아날로그 신호로 변조하고, 상기 안테나를 이용하여 상기 아날로그 신호를 서버에 송신하도록 구성되고, 상기 TCP 프로토콜 스택이 추가로, 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 확인한 다음, 상기 무선 모뎀 및 상기 안테나를 사용하여 상기 제1 패킷을 상기 서버에 재송신하고, 상기 제1 패킷이 재송신된 다음 수신된 확인 응답 패킷에 기초하여, 재송신된 패킷이 손실된 것으로 결정하고 - 상기 재송신된 패킷은 상기 재송신된 제1 패킷임 -, 상기 제1 패킷을 상기 서버에 다시 재송신 하고, 송신 버퍼가 비어있는지 결정하고, 상기 송신 버퍼가 비어 있는 경우, 상기 무선 모뎀 및 상기 안테나를 사용하여 제1 시간 간격 내에 적어도 한 번 상기 제1 패킷을 상기 서버에 송신하도록 구성되고, 상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 사용자 장비는 상기 제1 시간 간격 내에 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신한 적이 없다.
제5 측면의 가능한 제1 구현 방식에서, 상기 TCP 프로토콜 스택이 추가로, 상기 송신 버퍼가 비어있지 않은 경우, 상기 무선 모뎀 및 상기 안테나를 사용하여 상기 제1 시간 간격 내에 상기 송신 버퍼 내의 적어도 하나의 패킷을 상기 서버에 송신하도록 구성되고, 상기 송신 버퍼 내의 패킷은 상기 사용자 장비에 의해 송신되지 않은 패킷이다.
제5 측면 또는 제5 측면의 가능한 제1 구현 방식을 참조하면, 가능한 제2 구현 방식에서, 상기 TCP 프로토콜 스택은 구체적으로, 상기 제1 패킷이 재송신된 다음 수신된 확인 응답 패킷에 포함된 확인 응답 필드 또는 확장 필드에 따라 상기 재송신된 패킷이 손실된 것으로 결정하도록 구성된다.
제6 측면에 따르면, 본 발명의 실시예는 사용자 장비를 제공하고, 이러한 사용자 장비는, 무선 모뎀, 프로세서, 안테나, 및 TCP 프로토콜 스택(TCP protocol stack)을 포함하고, 상기 무선 모뎀은 상기 안테나에 연결되고, 상기 TCP 프로토콜 스택은, 상기 프로세서의 제어 하에, 상기 사용자 장비에서 실행되는 애플리케이션 프로그램의 데이터를 복수의 패킷으로 캡슐화(encapsulate)하고, 상기 복수의 패킷을 상기 무선 모뎀에 송신하도록 구성되며, 상기 무선 모뎀은 수신된 상기 패킷을 아날로그 신호로 변조하고, 상기 안테나를 이용하여 상기 아날로그 신호를 서버에 송신하도록 구성되고, 상기 TCP 프로토콜 스택이 추가로, 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 확인한 다음, 상기 무선 모뎀 및 상기 안테나를 사용하여 상기 제1 패킷을 상기 서버에 재송신하고, 상기 제1 패킷이 재송신된 다음 수신된 확인 응답 패킷에 기초하여, 재송신된 패킷이 손실된 것으로 결정하고 - 상기 재송신된 패킷은 상기 재송신된 제1 패킷임 -, 상기 제1 패킷을 상기 서버에 다시 재송신하고, 송신 버퍼가 비어있는지 또는 현재 혼잡 제어 정책이 신규 패킷의 송신을 허용하는지 결정하고, 상기 송신 버퍼가 비어있거나 또는 상기 현재 혼잡 제어 정책이 상기 신규 패킷의 송신을 허용하지 않는 경우, 제1 시간 간격 내에 적어도 한 번 상기 제1 패킷을 상기 서버에 송신하도록 구성되고, 상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 사용자 장비는 상기 제1 시간 간격 내에 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신한 적이 없다.
제6 측면의 가능한 제1 구현 방식에서, 상기 TCP 프로토콜 스택은 추가로,
상기 송신 버퍼가 비어있지 않고, 상기 현재 혼잡 정책이 상기 신규 데이터 패킷의 송신을 허용하는 경우, 상기 무선 모뎀 및 상기 안테나를 사용하여 상기 제1 시간 간격 내에 상기 송신 버퍼 내의 적어도 하나의 패킷을 상기 서버에 송신하도록 구성되고, 상기 송신 버퍼 내의 패킷은 상기 사용자 장비에 의해 송신되지 않은 패킷이다.
제4 내지 제6 측면 또는 제4 내지 제6 측면의 가능한 구현 방식들 중 어느 하나에서, 상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머의 주기보다 짧으며 상기 사용자 장비는 제1 시간 간격 내에 다시 재전송된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 답신 패킷을 수신한 적이 없다.
제4 내지 제6 측면 또는 제4 내지 제6 측면의 가능한 구현 방식들 중 어느 하나에서, 상기 송신 버퍼 내의 패킷은 사용자 장비에 의해 송신되지 않은 패킷이고, 상기 재송신된 패킷은, 상기 사용자 장비가 상기 제1 패킷이 손실된 것으로 검출한 경우, 상기 사용자 장비에 의해 재송신된 제1 패킷이다.
제4 내지 제6 측면 또는 제4 내지 제6 측면의 가능한 구현 방식들 중 어느 하나에서, 상기 TCP 프로토콜 스택이 구체적으로, 상기 복수의 패킷 중 제1 패킷이 손실된 것을 확인한 다음 미리 설정된 시간 간격 내에 상기 무선 모뎀 및 상기 안테나를 사용하여 제1 패킷을 상기 서버에 재송신하도록 구성되고, 상기 미리 설정된 시간 간격은 0보다 크거나 그와 같고 상기 제1 패킷의 타임 아웃 타이머의 주기보다 짧거나 또는 상기 미리 설정된 시간 간격은 0에 근접한다.
제7 측면에 따르면, 본 발명의 실시예는 사용자 장비를 제공하고, 이러한 사용자 장비는, 상기 사용자 장비 통신 연결된 수신 노드에 복수의 패킷을 송신하도록 구성된 송신 유닛; 상기 수신 노드로부터 복수의 확인 응답 패킷(acknowledgement packet)을 수신하도록 구성된 수신 유닛; 및 상기 수신 유닛이 수신한 복수의 확인 응답 패킷에 따라 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하고, 상기 제1 패킷을 상기 수신 노드에 재송신하도록 상기 송신 유닛을 트리거(trigger)하고, 상기 제1 패킷이 재송신된 다음 상기 수신 유닛에 의해 수신된 확인 응답 패킷에 따라 재송신된 패킷이 손실된 것으로 결정하도록 구성된 처리 유닛을 포함하고, 상기 재송신된 패킷은 상기 재송신된 제1 패킷이고, 상기 송신 유닛이 추가로, 상기 처리 유닛이 상기 재송신된 패킷이 손실된 것으로 결정한 다음, 제1 시간 간격 내에 적어도 두 번 상기 제1 패킷을 연속해서 송신하도록 구성되고, 상기 제1 시간 간격은, 0보다 크거나 그와 같고 상기 송신 노드의 타임 아웃 타이머의 주기보다 짧다.
제7 측면의 가능한 제1 구현 방식에서, 상기 송신 유닛이 추가로, 적어도 두 번 상기 제1 패킷을 연속해서 송신한 다음 상기 송신 유닛에 의해 송신되지 않은 제2 패킷을 송신하도록 구성된다.
제8 측면에 따르면, 본 발명의 실시예는 사용자 장비를 제공하고, 상기 사용자 장비와 통신 연결된 수신 노드에 복수의 패킷을 송신하도록 구성된 송신 유닛; 상기 수신 노드로부터 복수의 확인 응답 패킷(acknowledgement packet)을 수신하도록 구성된 수신 유닛; 및 상기 수신 유닛이 수신한 복수의 확인 응답 패킷에 따라 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하고, 상기 제1 패킷을 상기 수신 노드에 재송신하도록 상기 송신 유닛을 트리거하고, 상기 제1 패킷이 재송신된 다음 상기 수신 유닛에 의해 수신된 확인 응답 패킷에 따라 재송신된 패킷이 손실된 것으로 결정하도록 구성된 처리 유닛을 포함하고, 상기 재송신된 패킷은 상기 재송신된 제1 패킷이고, 상기 송신 유닛이 추가로, 상기 처리 유닛이 상기 재송신된 패킷이 손실된 것으로 결정한 다음, 상기 제1 패킷을 다시 재송신하고, 송신 버퍼가 비어있는지 결정하고, 상기 송신 버퍼가 비어있는 경우 제1 시간 간격에 적어도 한 번 상기 제1 패킷을 송신하도록 구성되고, 상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 수신 유닛은, 상기 제1 시간 간격 내에 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신한 적이 없다.
제8 측면의 가능한 제1 구현 방식에서, 상기 송신 유닛이 추가로, 상기 송신 버퍼가 비어있지 않은 경우, 상기 제1 시간 간격 내에 상기 송신 버퍼 내의 적어도 하나의 패킷을 송신하도록 구성되고, 상기 송신 버퍼 내의 패킷은 상기 송신 유닛에 의해 송신되지 않은 패킷이다.
제9 측면에 따르면 본 발명의 실시예는 사용자 장비를 제공하고, 이러한 사용자 장비는, 상기 사용자 장비와 통신 연결된 수신 노드에 복수의 패킷을 송신하도록 구성된 송신 유닛; 상기 수신 노드로부터 복수의 확인 응답 패킷(acknowledgement packet)을 수신하도록 구성된 수신 유닛; 및 상기 수신 유닛이 수신한 복수의 확인 응답 패킷에 따라 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하고, 상기 제1 패킷을 상기 수신 노드에 재송신하도록 상기 송신 유닛을 트리거하고, 상기 제1 패킷이 재송신된 다음 상기 수신 유닛에 의해 수신된 확인 응답 패킷에 따라, 상기 재송신된 패킷이 손실된 것으로 결정하도록 구성된 처리 유닛을 포함하고, 상기 재송신된 패킷은 상기 재송신된 제1 패킷이고, 상기 송신 유닛이 추가로, 상기 처리 유닛이 상기 재송신된 패킷이 손실된 것으로 결정한 다음, 상기 제1 패킷을 다시 재송신하고, 송신 버퍼가 비어있는지 또는 현재 혼잡 제어 정책이 신규 패킷의 송신을 허용하는지 결정하고, 상기 송신 버퍼가 비어있거나 또는 상기 현재 혼잡 제어 정책이 상기 신규 패킷의 송신을 허용하지 않는 경우, 제1 시간 간격 내에 상기 제1 패킷을 적어도 한 번 송신하도록 구성되고, 상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 수신 유닛은 상기 제1 시간 간격 내에 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신한 적이 없다.
제9 측면의 가능한 구현 방식에서, 상기 송신 유닛이 추가로, 상기 송신 버퍼가 비어있지 않고 상기 현재 혼잡 제어 정책이 상기 신규 패킷의 송신을 허용하는 경우, 상기 제1 시간 간격 내에 상기 송신 버퍼 내의 적어도 하나의 패킷을 송신하도록 구성되고, 상기 송신 버퍼 내의 패킷은 상기 송신 유닛에 의해 송신되지 않은 패킷이다.
제8 및 제9 측면 또는 제8 및 제9 측면의 가능한 구현 방식들 중 어느 하나에서, 상기 송신 유닛이 구체적으로, 상기 처리 유닛이 재송신된 패킷이 손실된 것으로 결정한 다음, 미리 설정된 시간 간격 내에 제1 패킷을 재송신하도록 구성되고, 상기 미리 설정된 시간 간격은 0보다 크거나 그와 같고 상기 제1 타임 아웃 타이머의 주기보다 짧거나 또는 상기 미리 설정된 시간 간격이 0에 근접한다.
제7 내지 제9 측면 또는 제7 내지 제9 측면의 가능한 구현 방식들 중 어느 하나에서, 상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머의 주기보다 짧으며 상기 수신 유닛은 제1 시간 간격 내에, 상기 다시 재전송된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 답신 패킷을 수신한 적이 없다.
제7 내지 제9 측면 또는 제7 내지 제9 측면의 가능한 구현 방식들 중 어느 하나에서, 상기 송신 버퍼 내의 패킷은 상기 송신 노드에 의해 송신되지 않은 패킷이다.
제7 내지 제9 측면 또는 제7 내지 제9 측면의 가능한 구현 방식들 중 어느 하나에서, 상기 송신 유닛이, 상기 재송신된 패킷이 손실된 것으로 검출된 다음, 미리 설정된 시간 간격 내에 상기 손실된 제1 패킷을 재송신하도록 구성되고, 상기 미리 설정된 시간 간격은 0보다 크거나 그와 같고 상기 제1 패킷의 타임 아웃 타이머의 주기보다 짧거나 또는 상기 미리 설정된 시간 간격은 0에 근접한다.
제10 측면에 따르면, 본 발명의 실시예는 패킷 전송 방법을 제공하고, 이러한 패킷 전송 방법은, 송신 노드가, 상기 송신 노드와 수신 노드 사이의 통신 링크를 사용하여 복수의 패킷을 상기 수신 노드에 송신하는 단계; 상기 송신 노드가, 상기 수신 노드로부터 복수의 확인 응답패킷(acknowledgement packet)을 수신하는 단계; 상기 송신 노드가, 상기 수신된 복수의 확인 응답 패킷에 기초하여 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하는 단계; 및 상기 송신 노드가, 상기 제1 패킷을 상기 수신 노드에 재송신하고 제2 시간 간격 내에 적어도 한 번 상기 제1 패킷을 송신하는 단계를 포함하고, 상기 제2 시간 간격은, 0보다 크거나 그와 같고 상기 제1 패킷의 타임 아웃 타이머의 주기보다 짧고, 상기 송신 노드는 상기 제2 시간 간격 내에 상기 재송신된 제1 패킷이 손실된 것을 지시하는데 사용되는 확인 응답 패킷을 수신한 적이 없다.
제11 측면에 따르면, 본 발명의 실시예는 패킷 전송 방법을 제공하고, 이러한 패킷 전송 방법은, 송신 노드가, 상기 송신 노드와 수신 노드 사이의 통신 링크를 사용하여 복수의 패킷을 상기 수신 노드에 송신하는 단계; 상기 송신 노드가, 상기 수신 노드로부터 복수의 확인 응답 패킷(acknowledgement packet)을 수신하는 단계; 상기 송신 노드가, 상기 수신된 복수의 확인 응답 패킷에 기초하여 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하는 단계; 및 상기 송신 노드가, 상기 제1 패킷을 상기 수신 노드에 재송신하고, 상기 송신 버퍼가 비어있는지 결정하고, 상기 송신 버퍼가 비어있는 경우, 상기 송신 노드가, 제2 시간 간격 내에 적어도 한 번 상기 제1 패킷을 송신하는 단계를 포함하고, 상기 제2 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 송신 노드는 상기 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 상기 제2 시간 간격 내에 수신한 적이 없다.
제11 측면의 가능한 제1 구현 방식에서, 상기 송신 노드가, 상기 송신 버퍼가 비어있지 않은 경우, 제1 시간 간격 내에 상기 송신 버퍼 내의 적어도 하나의 패킷을 송신하고, 상기 송신 버퍼 내의 패킷은 상기 송신 노드에 의해 송신되지 않은 패킷이다.
제12 측면에 따르면, 본 발명의 실시예는 패킷 전송 방법을 제공하고, 이러한 패킷 전송 방법은, 송신 노드가, 상기 송신 노드와 수신 노드 사이의 통신 링크를 사용하여 복수의 패킷을 상기 수신 노드에 송신하는 단계; 상기 송신 노드가, 상기 수신 노드로부터 복수의 확인 응답 패킷(acknowledgement packet)을 수신하는 단계; 상기 송신 노드가, 상기 수신된 복수의 확인 응답 패킷에 기초하여 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하는 단계; 상기 송신 노드가, 상기 제1 패킷을 상기 수신 노드에 재송신하고, 송신 버퍼가 비었는지 또는 현재 혼잡 제어 정책이 신규 패킷의 송신을 허용하는지 결정하는 단계; 및 상기 송신 노드가, 상기 송신 버퍼가 비어있거나 또는 상기 현재 혼잡 제어 정책이 상기 신규 패킷의 송신을 허용하지 않는 경우, 제2 시간 간격 내에 적어도 한 번 상기 제1 패킷을 송신하는 단계를 포함하고, 상기 제2 시간 간격이 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 송신 노드는, 상기 제2 시간 간격 내에 상기 재송신된 제1 패킷이 송신되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신한 적이 없다.
제10 내지 제12 측면 또는 제10 내지 제12 측면의 가능한 구현 방식들 중 어느 하나에서, 상기 제1 시간 간격은, 상기 제1 패킷이 다시 재송신도니 시점을 시작 시점으로서 사용하고, 상기 제1 패킷이 다시 재송신된 다음 상기 제1 답신 패킷을 수신한 순간을 종료 시점으로서 사용한다.
제10 내지 제12 측면 또는 제10 내지 제12 측면의 가능한 구현 방식들 중 어느 하나에서, 상기 제1 시간 간격이 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머의 기간보다 짧으며, 상기 송신 노드는 제1 시간 간격 내에 상기 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 답신 패킷을 수신한 적이 없다.
제10 내지 제12 측면 또는 제10 내지 제12 측면의 가능한 구현 방식들 중 어느 하나에서, 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정된 다음, 상기 송신 노드가 상기 제1 패킷을 미리 설정된 간격 내에 다시 재송신하고, 상기 미리 설정된 시간 간격은 0보다 크거나 그와 같고 상기 제1 패킷의 타임 아웃 타이머의 주기보다 짧거나, 또는 상기 미리설정된 시간 간격은 0에 근접한다.
본 발명의 실시예는 추가로 사용자 장비를 제공하고, 이러한 사용자 장비는, 제10 내지 제12 측면 또는 제10 내지 제12 측면의 가능한 구현 방식들 중 어느 하나에서의 방법을 구현하도록 구성된 기능 유닛을 포함한다.
본 발명의 실시예는 추가로, 컴퓨터 판독 가능한 기록 매체를 제공하며, 이러한 저장 매체는 프로그램 코드를 저장하고, 프로그램 코드는 전술한 측면들 또는 전술한 측면들 중 어느 하나의 가능한 구현 방식들 중 어느 하나에서 설명된 방법의 단계를 수행하는 데 사용된다.
본 발명의 실시예에 제공된 패킷 전송 방법 및 사용자 장비에 따르면, 패킷이 손실된 것으로 검출된 후에, 손실된 패킷은 신속하게 중복하여 여러 번 전송되거나, 또는 손실된 패킷이 재송신된 다음 신규 패킷이 즉시 송신되어, 송신 노드가, 손실된 패킷을 재송신한 다음 가능한 한 연속적으로 확인 응답 패킷을 수신할 수 있도록 하고, 확인 응답 패킷에 따라 재송신 패킷의 패킷 손실 검출 및 복구 알고리즘을 제시간에 트리거하여, 재송신 패킷이 손실된 후 즉시 재송신된 패킷이 검출되고 복구될 수 있어, 재송신 타임 아웃 시간을 줄이고 전송 속도를 향상시킬 수 있다. 또한, 재송신된 패킷이 다시 손실되면, 타임 아웃 재송신이 트리거 될 수 있다. 그러나 재송신된 패킷이 제시간에 여러번 고속 재송신되면, 재송신 패킷이 손실될 확률이 급격히 감소하여 타임 아웃 재송신의 확률이 더욱 낮아지게된다.
본 발명의 실시예 또는 종래 기술의 기술적 해결 수단을 보다 명확하게 설명하기 위해, 실시예 또는 종래 기술을 설명하기 위해 요구되는 첨부 도면을 간단히 설명한다. 명백하게, 다음의 설명에서의 첨부 도면은 단지 본 발명의 일부 실시예를 나타내고, 당업자는 창조적 노력 없이도 이들 도면으로부터 다른 도면을 유도할 수 있다.
도 1은 종래의 패킷 손실복구 알고리즘의 개략도이다.
도 2는 본 발명의 일 실시예에 따른 통신 시스템의 개략도이다.
도 3은 TCP 패킷 포맷의 개략도이다.
도 4는 종래 기술에 따른 고속 재송신 방법의 원리를 나타내는 도면이다.
도 5는 본 발명의 실시예에 따른 패킷 전송 방법의 개략도이다.
도 6은 본 발명의 실시예에 따른 다른 패킷 전송 방법의 개략도이다.
도 7은 본 발명의 실시예에 따른 또 다른 패킷 전송 방법의 개략도이다.
도 8은 본 발명의 실시예의 애플리케이션 시나리오의 개략도이다.
도 9는 본 발명의 실시예에 따른 또 다른 패킷 전송 방법의 개략도이다.
도 10은 본 발명의 실시예에 따른 TCP 프로토콜 스택의 동작 원리를 나타낸 도면이다.
도 11은 본 발명의 실시예에 따른 사용자 장비의 개략도이다.
도 12는 본 발명의 실시예에 따른 사용자 장비의 개략도이다.
도 13은 본 발명의 실시예에 따른 사용자 장비의 개략도이다.
당업자가 본 발명의 기술적 해결 수단을 보다 잘 이해할 수 있도록, 본 발명의 실시예의 첨부 도면을 참조하여 본 발명의 실시예의 기술적 해결 수단을 명확하고 완전하게 설명한다. 명백하게, 설명된 실시예는 본 발명의 모든 실시예가 아닌 일부에 불과하다. 창의적인 노력 없이 본 발명의 실시예에 기초하여 당업자에 의해 획득된 다른 모든 실시예는 본 발명의 보호 범위 내에 있다.
본 발명의 실시예에서 제공되는 기술적 해결 수단은 전형적으로 비교적 높은 패킷 손실 레이트(packet loss rate)를 갖는 통신 시스템, 예를 들어, 이동 통신용 글로벌 시스템(GSM, Global System of Mobile Communication) 네트워크, 코드 분할 다중 접속(CDMA, Code Division Multiple Access) 네트워크, 광대역 코드 분할 다중 접속 무선(WCDMA, Wideband Code Division Multiple Access Wireless) 네트워크, 일반 패킷 무선 서비스(GPRS, General Packet Radio Service) 네트워크, LTE(Long Term Evolution) 네트워크, 소프트웨어 정의 네트워크(SDN, Software Defined Network), 및 무선 센서 네트워크(Wireless Sensor Network)에 적용될 수 있다.
도 2는 본 발명의 일 실시예에 따른 통신 시스템(100)의 간략 블록도이다. 통신 시스템(100)은 단지 본 발명의 애플리케이션 시나리오로서 사용되며, 본 발명의 애플리케이션 시나리오에 대해 제한으로서 이해되어서는. 본 발명의 본 실시예에서 제공되는 기술적 해결 수단은 TCP/IP 프로토콜 스택(TCP/IP protocol stack)에 기초한 모든 통신 시스템에 적용 가능하다. TCP/IP 프로토콜 스택은 TCP/IP 참조 모델에 의해 정의된 프로토콜 레벨에 대한 분할 방식을 참조하여 구현된 프로토콜 스택이다. TCP/IP 프로토콜 스택은 TCP(Transmission Control Protocol)와 IP(Internet Protocol)의 두 가지 핵심 프로토콜을 포함한다. 본 발명의 실시예에서, TCP 프로토콜의 구현이 최적화된다. 본 발명의 실시예의 방법은 패킷 재송신 메카니즘을 갖는 또 다른 신뢰성있는 전송 프로토콜에도 적용 가능하다.
본 발명의 명세서, 특허 청구 범위, 및 첨부 도면에서, "제1", "제2", "제3", "제4" 등(존재한다면)은 유사한 대상을 구별하기 위한 것이지만, 반드시 특정 순서 또는 순서를 나타내는 것은 아니다.
통신 시스템(100)은 사용자 장비(110), 액세스 포인트(10), 무선 액세스 게이트웨이(12), 광역 네트워크(14), 제1 애플리케이션 서버(20), 제2 애플리케이션 서버(30), 및 제3 애플리케이션 서버(40)를 포함한다.
당업자는 하나의 통신 시스템이 일반적으로 도 2에 도시된 컴포넌트보다 더 적거나 또는 더 많은 컴포넌트를 포함할 수 있음을 이해할 수 있다. 도 2에 도시된 구성 요소와 다른 구성 요소를 포함하거나 또는 도 2에 도시된 컴포넌트와 다른 컴포넌트를 포함할 수 있다는 것을 알 수 있다. 도 2는 본 발명의 본 실시예에 개시된 복수의 구현 방식에 더 관련된 구성 요소만을 도시한다.
예를 들면, 3개의 애플리케이션 서버(20, 30, 40)가 도 2에 이미 기재되어 있지만, 당업자는 하나의 통신 시스템이 임의의 개수의 애플리케이션 서버를 포함할 수 있거나, 심지어 임의의 애플리케이션 서버를 포함하지 않을 수도 있음을 이해할 수 있다. 애플리케이션 서버(20, 30, 40)는 각각 대응하는 TCP 프로토콜 스택(21,31,41)을 포함한다. TCP 프로토콜 스택(21, 31, 41)의 기능은 각각 애플리케이션 서버(20, 30, 40)에서 실행되는 소프트웨어, 하드웨어 및/또는 펌웨어의 적절한 조합으로 수행될 수 있다. 광역 네트워크(14)는 공중 네트워크, 사설 네트워크, 및 인터넷의 일부 및/또는 임의의 조합을 포함할 수 있다. 무선 액세스 게이트웨이(12) 및 액세스 포인트(10)는 하나의 무선 네트워크에 포함될 수 있다. 단순화를 위해, 무선 네트워크의 다른 부분은 기술되지 않았다. 액세스 포인트(10)는 안테나(11)를 더 포함한다.
사용자 장비(110)는 프로세서(120), TCP 프로토콜 스택(130), 무선 모뎀(140), 및 메모리(150)를 포함한다. 무선 모뎀(140)은 안테나(142)에 연결될 수 있다. TCP 프로토콜 스택(130)은 소프트웨어, 하드웨어 및/또는 펌웨어의 적절한 조합에 의해 실행될 수 있다. TCP 프로토콜 스택(130), 무선 모뎀(140), 및 안테나(142)는 서로 협력하여 프로세서의 제어하에 패킷의 송수신을 완료한다. 또한, 당업자는 사용자 장비가 도 2에 도시된 컴포넌트들보다 더 적거나 더 많은 컴포넌트를 포함할 수 있음을 이해할 수 있다. 도 2에 도시된 사용자 장비(110)는 본 발명의 본 실시예에 개시된 복수의 구현 방식에 더 관련된 구성 요소만을 도시한다.
대체로, 사용자 장비(110)의 메모리(150)는 제1 애플리케이션 프로그램(121), 제2 애플리케이션 프로그램(123), 및 제3 애플리케이션 프로그램(125)과 같은 애플리케이션 프로그램을 저장한다. 제1 애플리케이션 프로그램(121), 제2 애플리케이션 프로그램, 제3 애플리케이션 프로그램(125)은 각각 제1 애플리케이션 프로그램 서버(20), 제2 애플리케이션 프로그램 서버(30) 및 제3 애플리케이션 프로그램 서버(40)의 클라이언트 측 애플리케이션 프로그램이다. 프로세서(120)는 메모리(150) 내의 이러한 애플리케이션 프로그램을 판독하고 실행하여 특정 기능을 구현할 수 있다.
TCP 프로토콜 스택은 클라이언트-서버 통신 모델을 사용한다. 클라이언트는 서버에서 제공하는 서비스(예: 웹 페이지 콘텐츠)를 요청하고 수락한다. 예를 들어, 제1 애플리케이션 프로그램(121)은 제1 애플리케이션 프로그램 서버(20)로부터 정보를 요청하는 웹 페이지 브라우저일 수 있다.
본 발명의 실시예의 사용자 장비(110)는, 예를 들면 이동 전화, 액션 카메라, 노트북 컴퓨터 등의 휴대형, 착용 형 또는 차량 형 휴대 기기 등의 휴대 단말 또는 컴퓨터 또는 서버와 같은 장치 일 수 있거나, 라우터 또는 게이트웨이와 같은 네트워크 장치 일 수 있다. 사용자 장비(110)는 다른 사용자 장비로 TCP 연결을 설정하고, TCP 연결을 이용하여 패킷을 더 송수신할 수 있다. TCP 패킷의 포맷은 도 3에 도시된다. 소스 포트(source port) 및 목적지 포트(destination port)는 송신단 및 수신단의 애플리케이션 프로세스를 결정하도록 구성된다.
소스 포트 번호, 목적지 포트 번호, 소스 IP 주소 및 목적지 IP 주소는 TCP 연결을 고유하게 결정할 수 있다. TCP 패킷의 헤더(heade)의 시퀀스 번호(Sequence Number, seq)는 패킷의 페이로드(payload)에서 첫 번째 데이터 바이트의 시퀀스 번호를 전달한다. TCP 패킷을 수신한 수신 노드는 TCP 연결을 이용하여 확인 응답(ACK: Acknowledge) 패킷을 송신 노드로 전송한다. ACK 패킷의 헤더의 확인 응답 번호(ack: Acknowledge Number)의 필드의 값은 수신 노드가 수신한 패킷의 "시퀀스 번호(Sequence Number)" 필드의 값을 나타내며, 또한 수신단이 송신단에서 송신하고 "시퀀스 번호"의 값이 ACK 패킷의 "확인 응답 번호(Acknowledge Number)"보다 작은 모든 패킷을 수신했다는 것을 나타낸다. 창의 크기는 수신단의 현재 수신 버퍼 영역의 크기를 나타내기 위해 사용된다. 또한, TCP 패킷의 헤더는 이하의 6개의 플래그 비트(flag bit)를 더 갖는다.
URG: 긴급 포인터 필드 중요(urgent pointer field significant);
ACK: 확인 응답 번호 필드 중요(acknowledge number field significant);
PSH: 처리를 위해 애플리케이션 프로그램 계층에 즉시 전송;
RST: 이상 발생시 리셋;
SYN: 구축 설정시 1로 설정된 동기화 플래그(synchronization flag); 및
FIN: 연결을 해제하도록 요청하는 종료 플래그(termination flag)
사용자 장비(110)는 유선 네트워크 또는 무선 네트워크(예를 들어, Wi-Fi 네트워크, WSN 또는 셀룰러 네트워크)를 이용하여 애플리케이션 프로그램 서버(20) 또는 다른 단말로 TCP 연결을 구축할 수 있다. 애플리케이션 프로그램 서버(20)에 대한 TCP 접속의 구축은 소프트웨어 애플리케이션 프로그램(예를 들어, 브라우저 또는 도 1의 제1 애플리케이션 프로그램(121))에 의해 개시될 수 있다. 구체적으로, 사용자 장비(110) 및 애플리케이션 프로그램 서버(20)는 3방향 핸드 셰이크(three-way handshake)를 사용하여 TCP 연결을 구축할 수 있다. 예를 들어, 제1 애플리케이션 프로그램(121)은 소켓 오픈(socket open) 명령을 생성한다. 이 명령은 사용자 장비(110)의 TCP 프로토콜 스택(120)에 제공되어, 3개의 메시지 교환을 사용하여 애플리케이션 프로그램 서버(20)에 TCP 연결을 구축하기 위해 TCP 프로토콜 스택(130)을 트리거한다. 그리고 TCP 프로토콜 스택(130)은 상위층의 제1 애플리케이션 프로그램(121)에 접속이 구축된 것을 통지한다. 또한, 애플리케이션 프로그램 서버(20)의 TCP 프로토콜 스택은, 상위층 애플리케이션 처리에 이러한 접속이 구축된 것을 통지한다. 이후, 사용자 장비(110) 상의 제1 애플리케이션 프로그램(121)과 애플리케이션 프로그램 서버(20)는 구축된 TCP 연결을 바탕으로 데이터 전송을 수행할 수 있다. 당업자는 대응하는 안테나(142) 및 안테나(11)를 이용하여 사용자 장비(110) 및 액세스 포인트(10)가 무선 서비스 채널에 액세스한다는 것을 이해할 수 있다.
종래 기술의 TCP 패킷 손실 검출 메커니즘 및 고속 재송신 메커니즘은 특정 인스턴스를 사용하여 아래에서 설명된다. 설명을 단순화하기 위해, 본 발명의 일부 실시예에서, 서로 간에 접속을 구축한 2개의 장치 중 하나는 송신 노드로 지칭되고, 다른 하나는 수신 노드로 지칭된다. 송신 노드 및 수신 노드는 데이터 전송 및 수신 능력이 있는 모든 장치, 예를 들어 전술한 사용자 장치 또는 전술한 애플리케이션 프로그램 서버 일 수 있다. 도 4에 도시된 바와 같이, 송신 노드는 시퀀스 번호가 1, 2, 3, 4 및 5인 5개의 패킷을 송신한다고 가정한다. 시퀀스 번호가 1인 패킷(간단히 패킷 1이라고 함)은 수신 노드가 먼저 수신하고, 수신 노드는 확인 응답 번호 ack = 1인 확인 응답 패킷 ACK1을 리턴한다. 만일 패킷 2가 어떤 이유로 수신 노드에 도착하지 않으면 패킷(3)이 수신 노드에 도착하는 동안 수신 노드는 여전히 ACK1을 리턴한다. 패킷 4와 패킷 5가 수신 노드에 도착하면 패킷 2가 아직 수신 노드에 도착하지 않았기 때문에 수신 노드는 여전히 ACK1을 리턴한다. 따라서, 송신 노드는 ack가 1인 3개의 확인 응답 패킷을 수신하고, 패킷 2가 손실되었다고 판정한다. 따라서, 송신 노드는 재송신 타이머가 만료될 때까지 대기할 필요가 없으며 즉시 시퀀스 번호가 2인 패킷을 다시 재송신한다. 수신 노드는 패킷 2를 수신한다. 이 경우, 패킷(3), 4, 5가 이미 수신되었으므로, 수신 노드는 확인 응답 번호가 ack = 5 인 확인 응답 패킷 ACK5를 리턴한다.
TCP 패킷의 타임 아웃 재송신은 네트워크 대역폭의 낮은 이용 및 증가 된 전송 지연에 대한 중요한 이유이다. 기존의 고속 재송신 메커니즘은 타임 아웃 재송신의 가능성을 어느 정도 줄인다. 그러나 재송신된 패킷이 다시 손실되고 제시간에 검출되고 복구되지 않으면, 필연적으로 타임 아웃 재송신이 발생한다.
종래 기술에서는 DAC 및 SACK+ 알고리즘을 사용하여 재송신 패킷에 대한 패킷 손실 검출 및 복구가 수행될 수 있었지만, 본 발명자는 반복적 테스트 및 실험을 통해, 패킷 손실 검출 및 재송신된 패킷의 복구 알고리즘이 도입되면, 처리량은 명백하게 개선되지 않는다는 것을 알 수 있었다. 본 발명자는 이 결과의 주된 이유는 기존의 재송신 패킷 손실 검출 및 복구 방법이 대부분은 제시간(in time)에 트리거되지 않는다는 것을 발견했다. 결과적으로, 손실된 다음, 재송신된 패킷은 검출되지 않고 제시간에 복구되지 않아, 결국 타임 아웃 재송신이 발생한다. 구체적으로, 기존의 고속 재송신 해결 수단에서는 주로 패킷이 재송신된 다음 수신한 ACK 패킷에 따라 재송신 패킷 유실 여부를 판단하여 재송신함으로써 타임 아웃 재송신 진입을 방지한다.
그러나 패킷이 재송신 된 다음에 패킷이 전송되지 않으면 기존의 재송신 패킷 손실 감지 및 복구 방법이 트리거되지 않을 수 있다. 결국, 타임 아웃 재송신은 불가피하게 발생한다. 이러한 방식으로, 타임 아웃으로 인한 패킷 재송신의 확률은 상대적으로 커서 처리량을 감소시킨다.
상술한 문제점을 해결하기 위하여, 본 발명의 실시예는 패킷 전송 방법을 제공한다. 패킷이 재송신 된 다음, 재송신된 패킷이 손실된 것으로 검출되면, 손실된 패킷은 여러번(연속적으로 두 번을 포함하지만 이에 국한되지 않음) 지속적으로 송신되거나, 손실된 패킷이 재송신 된 다음 즉시 신규 패킷이 전송된다. 이러한 방식으로써, 한편으로는, 불충분한 ACK 패킷으로 인해 재송신된 패킷의 패킷 손실 검출 및 복구 알고리즘이 트리거되는 것을 피한다. 따라서, 재송신된 패킷은 손실된 후에 제시간에 검출되고 복구될 수 있고, 타임 아웃 재송신의 횟수는 감소한다. 한편, 손실된 패킷은 여러번 연속적으로 재송신되고, 재송신 된 모든 패킷이 손실될 때만 타임 아웃 재송신이 트리거된다. 실제 효과는 재송신된 패킷의 패킷 손실 확률이 기하급수적으로 감소함으로써 타임 아웃 재송신 횟수를 더욱 감소시키고 데이터 전송 속도를 향상시키는 것이다. 도 5에 도시된 바와 같이, 본 발명의 실시예에 따른 패킷 전송 방법은 다음과 같은 단계를 포함한다.
단계 501: 송신 노드는, 도 5의 수신 노드로부터 송신 노드로의 화살표로 도시된 바와 같이, 송신 노드와 수신 노드 사이의 통신 링크를 이용하여 수신 노드로 복수의 패킷(도 5에 도시된 패킷 1 내지 8)을 송신하고, 수신 노드로부터 확인 응답 패킷을 수신한다. 송신 노드가 보낸 패킷은 TCP 패킷이다. 각 패킷의 헤더의 시퀀스 번호 필드(Sequence Number, seq)는 패킷의 페이로드에서 첫 번째 데이터 바이트의 시퀀스 번호를 포함한다. 수신 노드가 패킷을 수신할 때마다 수신 노드는, 수신 노드가 패킷을 정확하게 수신했음을 나타내기 위해 확인 응답(ACK) 패킷을 송신 노드에 리턴한다. 선택적으로, 단계 501 이후에, 송신 노드는 연속적인 패킷 손실 검출을 위해 송신된 패킷들의 최대 시퀀스 번호를 더 기록할 수 있다.
단계 503: 제1 패킷이 손실된 것으로 결정된 후에, 송신 노드는 손실된 제1 패킷을 즉시 재송신하고, 여기서 재송신 된 제1 패킷(즉, FR3)은 또한 재송신된 패킷으로도 지칭된다.
대체로, 송신 노드에 의해 송신된 복수의 패킷 중 일부 패킷은 네트워크 상태와 같은 이유로 인해 수신 노드에 도달할 수 없기 때문에 손실된다. 송신 노드는 수신 노드에 의해 리턴된 확인 응답 패킷에 따라 패킷이 손실되었는지 결정할 수 있다. 예를 들어, 송신 노드는 수신된 확인 응답 패킷에 기초하여, 복수의 패킷 중 제1 패킷(예를 들어, 도 5에 도시된 패킷(3))이 손실되었다고 결정한다.
구체적으로, 송신 노드는 제1 패킷이 손실되었다고 여러 방식으로 결정할 수 있다. 도 4에 도시된 고속 재송신 메카니즘을 예로서 사용하면, 송신 노드가 ack 값이 동일한 적어도 N(일반적으로 N = 3)개의 확인 응답 패킷을 수신하면, 시퀀스 번호가 동일한 ack 값 + 1인 제1 패킷이 손실된 것으로 결정한다. 도 5에 도시된 바와 같이, 송신 노드가 ack 필드 값이 2인 3개의 확인 응답 패킷을 수신하면, 송신 노드는 시퀀스 번호가 3인 패킷이 손실된 것으로 판단한다. 다른 예를 들면, 다른 실시예에서, 확인 응답 패킷 내에 SACK 필드가 확장되어, 수신 버퍼의 패킷 정보를 지시하는데 사용되며, 수신 버퍼는 수신된 패킷을 임시 저장하는데 사용되고, SACK 필드의 값은 SACK 값으로 정의된다. 예를 들어, SACK 값은 수신 노드에 의해 수신된 패킷의 시퀀스 번호 일 수 있다. 이러한 방식으로, 송신 노드는 수신 노드에 의해 리턴된 확인 응답 패킷의 SACK 값에 따라 수신 노드에 의해 수신된 패킷 및 수신 노드에 의해 수신되지 않은 패킷을 학습하여 손실된 패킷이 있는지 추가로 결정할 수 있다.
선택적으로, 단계(503)에서, 송신 노드는 제1 패킷의 타임 아웃 타이머가 만료된 후 손실된 제1 패킷을 재송신 할 수 있다.
단계 505: 재송신 된 제1 패킷이 손실된 것을 검출한 후, 송신 노드는 제1 패킷을 즉시 2회 또는 2회 이상 연속적으로 전송한다. 본 발명의 본 실시예에서 설명되는 "즉시"는 미리 설정된 시간 간격 내를 지칭한다. 즉, 송신 노드는 단계(505)에서, 송신 노드가 재송신 패킷이 손실되었음을 감지한 후, 미리 설정된 시간 간격 동안 손실된 첫 번째(제1) 패킷을 두 번 또는 두 번 이상 연속적으로 전송한다. 여기서 설정된 시간 간격은 0보다 크거나 그와 같아야 하고, 제1 패킷의 타임 아웃 타이머의 주기보다 짧거나 더욱 짧아야 한다. 예를 들어, 제1 패킷에 대응하는 타임 아웃 타이머의 주기(period)가 T인 경우, 미리 설정된 시간 간격은 T보다 짧거나, T/2보다 짧거나, 또는 T/4보다 짧아야 한다. 바람직하게는, 미리 설정된 시간 간격은 송신 노드가 재송신된 제1 패킷이 시작점으로서 손실되었음을 감지하는 시점을 사용하고, 미리 설정된 시간 간격은 0 또는 0에 접근하는 시점을 사용한다. 미리 설정된 시간 간격이 0이면, 재송신된 패킷이 손실되었음을 감지하는 동작과 제1 패킷을 전송하는 동작이 동시에 또는 거의 동시에 완료된 것을 지시한다. 또한, 제1 패킷을 2회 연속적으로 송신하는 간격(이하, 제1 시간 간격이라 함) t는, 도 5에 도시된 바와 같이, 또한 0보다 크거나 그와 같아야 하고, 제1 패킷의 타임 아웃 타이머의 주기보다 짧거나 더욱 짧아야 한다. 또한, 송신 노드는 제1 시간 간격(t)에서, 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신하지 못한다. 즉, 송신 노드는 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신하지 못한 경우(다시 재송신 된 제1 패킷이 손실되었는지 확인할 수 없음), 제1 시간 간격(t)으로 제1 번째 패킷을 중복하여 전송한다.
타임 아웃 타이머는 TCP 타임 아웃 재송신, 즉 패킷 송신시 또는 송신 후에 사용되며, 송신 노드는 타임 아웃 타이머를 인에이블(enable)시킨다. 타임 아웃 타이머의 타이밍 주기는 T이다. 타임 아웃 타이머의 한 타이밍 주기가 종료될 때 패킷에 대응하는 확인 응답 패킷이 아직 수신되지 않으면, 송신 노드가 패킷은 손실된 것으로 판단하고 타임 아웃 재송신을 수행한다. 대체로 프로토콜 스택(protocol stack)은 각 패킷에 대해 동일한 타임 아웃 타이머의 주기를 설정한다. 즉, 각 패킷에는 동일한 타임 아웃 타이머 주기가 있다. 구체적으로, 일 실시예에서, 단계(505)는 이하의 단계를 포함한다.
제1 단계: 송신 노드는 제1 패킷이 재송신 된 다음 수신된 확인 응답 패킷에 따라 재송신 된 제1 패킷(즉, 단계(403)에서 재송신 된 제1 패킷(FR3))이 손실된 것으로 판단한다.
예를 들어, 송신 노드에 의해 기록되는 현재 송신된 패킷의 최대 시퀀스 번호는 8이다. 송신 노드가 8보다 큰 SACK 값을 갖는 확인 응답 패킷을 수신하는 경우, 예를 들어 SACK 값이 9인 확인 응답 패킷을 수신하면, 송신 노드는 재송신된 패킷이 손실된 것으로 결정할 수 있다. Sack은 확인 응답 패킷의 확장 필드(SACK)에 포함되어 수신 노드가 수신한 패킷의 시퀀스 번호를 나타내는 데 사용된다. 송신 노드는 또 다른 방식으로, 재송신된 패킷이 손실되었는지 더 검출할 수 있다.
제2 단계: 제1 패킷을 즉시 다시 재송신한다. 여기에서 "즉시"는 송신 노드가 재송신된 패킷이 손실되었다고 결정한 다음 미리 설정된 시간 간격 내를 의미한다. 미리 설정된 시간 간격은 송신 노드가 재송신 된 제1 패킷이 시작점으로서 손실되었음을 감지하는 순간을 사용한다.
미리 설정된 시간 간격은 0보다 크거나 같아야 하고 제1 패킷의 시간 초과 타이머의 시간보다 짧거나 훨씬 짧아야 한다. 미리 설정된 시간 간격은 0 또는 0에 접근하는 것이 바람직하다. 미리 설정된 시간 간격이 0이면, 송신 노드에 의해 재송신된 패킷이 손실되었음을 검출하는 동작과 제1 패킷을 다시 재송신하는 동작 패킷은 다시 동시에 또는 거의 동시에 완료된다는 것을 지시한다.
제3 단계: 제1 패킷을 다시 재송신한 다음, 송신 노드는 제1 시간 간격(t)으로 제1 패킷을 적어도 한 번 송신한다. 여기서 제1 시간 간격(t)은 0보다 크거나 같아야 하고, 제1 패킷의 타임 아웃 타이머의 주기보다 짧거나 훨씬 더 짧아야 한다. 예를 들어, 송신 노드의 타임 아웃 타이머의 타이밍 주기가 T이고, t≤T 또는 t≤T/2 또는 t≤T/4인 경우. 바람직하게는, 제1 시간 간격은 제1 패킷을 시작 시점으로서 다시 제1 패킷을 재송신하는 시점을 사용한다. 제1 시간 간격이 0이면 제2 단계 및 제3 단계에서 제1 패킷을 송신하는 동작이 동시에 또는 거의 동시에 완료된 것을 나타낸다. 또한, 송신 노드는 제1 시간 간격으로, 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용된 확인 응답 패킷을 수신하지 못한다. 즉, 송신 노드는 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신하지 못하면(다시 재송신 된 제1 패킷이 손실되었는지 확인할 수 없음), 송신 노드는 제1 패킷을 중복하여 송신한다.
또한, 본 실시예에서는 제2 단계에서 제1 패킷을 재송신하는 동작과 제3 단계에서 제1 패킷을 송신하는 동작이 연속적이며, 송신 노드는 제2 단계에서 제1 패킷을 재송신하는 동작과 제3 단계에서 제1 패킷을 송신하는 동작 사이의 시간 간격 t에서 다른 패킷을 송신하지 않는다. 예를 들어, 제2 단계에서 재송신 된 제1 패킷의 시퀀스 번호가 N이라면 제3 단계에서 보낸 패킷의 시퀀스 번호는 N+1이다.
선택적으로, 단계(505) 후에, 본 방법은 이하의 단계를 더 포함한다.
단계 507: 송신 노드는 계속해서 후속 패킷을 송신한다.
구체적으로, 단계(507)는, 패킷이 현재 송신되도록 허용되면, 송신 노드는 적어도 하나의 신규 패킷을 더 송신하는 것을 포함한다. 신규 패킷은 전에 송신 노드에 의해 보내지지 않은 패킷을 나타낸다. 일 실시 형태에서, 송신 노드는 현재의 송신 버퍼 및/또는 혼잡 제어 정책에 따라, 신규 패킷이 송신될 수 있는지 결정할 수 있다. 예를 들어, 송신 버퍼가 제1 시간 간격에 비어 있지 않으면, 송신 노드는 제1 시간 간격 내에 적어도 하나의 패킷을 송신 버퍼에 송신한다.
전술한 실시예에서, 송신 노드는 재송신된 패킷이 손실된 것을 검출한 다음, 그 시간 간격으로 제1 패킷을 2회 이상 반복하여 송신한다. 이와 같이, 송신 노드는 수신 확인 응답 패킷을 계속해서 수신할 수 있어, 재송 된 패킷이 손실된 다음, 제시간에 검출하여 복원할 수 있어, 타임 아웃 재송신의 시간을 단축하고, 전송 지연을 줄이고, 전송 속도를 향상시킬 수 있다. 또한, 재송신된 패킷이 다시 손실되면, 타임 아웃 재송신이 트리거 될 수 있다. 그러나 재송신된 패킷이 제시간에 여러 번 고속 재송신되면 재송신 패킷이 손실될 확률이 급격히 감소하여 타임 아웃 재송신 확률이 더욱 낮아진다.
전술한 실시예에 기초하여, 본 발명은 또 다른 패킷 송신 방법을 더 제공한다. 도 6에 도시된 바와 같이, 본 방법은 다음 단계를 포함한다.
단계 601: 송신 노드는 송신 노드와 수신 노드 사이의 통신 링크를 사용하여 복수의 패킷(예를 들어, 도 6의 패킷 1 내지 패킷 8)을 수신 노드로 송신한다. 패킷은 TCP 패킷이다. 각 패킷의 헤더의 시퀀스 번호 필드(Sequence Number, seq)는 패킷의 페이로드에서 첫 번째 데이터 바이트의 시퀀스 번호를 포함한다. 선택적으로, 단계 601 이후에, 송신 노드는 후속 패킷 손실 검출을 위해 송신된 패킷들의 최대 시퀀스 번호를 더 기록할 수 있다.
단계 603: 제1 패킷(예를 들어, 도 6의 패킷(3))이 손실된 것으로 판단한 후, 송신 노드는 손실된 제1 패킷을 즉시 재송신하고, 재송신 된 제1 패킷(즉, FR3)은 재송신된 패킷이라고도 한다.
구체적으로, 단계 603에서, 송신 노드는 수신 노드로부터 확인 응답 패킷을 수신하고, 수신된 확인 응답 패킷에 기초하여, 복수의 패킷 중에서 제1 패킷(예를 들어, 도 6의 패킷(3))이 손실된 것으로 결정한다. 송신 노드가 의해 확인 응답 패킷에 따라 제1 패킷이 손실되었다는 것을 결정하는 구체적 단계에 대해, 단계(503)의 관련 설명을 참조한다. 본 발명의 다른 실시예에서, 제1 패킷은 타임 아웃 타이머가 미리 설정된 시간 주기를 초과한 후 1회 재송신되거나 여러번 재송신된다. 단계(603)에서 "즉시"는 제1 패킷이 손실된 것으로 결정된 후 미리 설정된 시간 간격 안을 의미한다. 미리 설정된 시간 간격은 0보다 크거나 같고 제1 패킷의 타임 아웃 타이머의 주기보다 짧거나 그보다 더욱 짧다. 바람직하게는, 미리 설정된 시간 간격은 재송신된 제1 패킷이 시작 지점으로서 손실되었음을 감지하는 순간을 사용하고, 미리 설정된 시간 간격은 0 또는 0에 접근한다.
단계 605: 송신 노드는 제1 패킷이 재송신 된 다음, 수신한 확인 응답 패킷에 따라 재송신된 패킷(즉, 단계 602에서 재송신 된 제1 패킷 FR3)이 손실되었음을 확인한 후 바로 제1 패킷을 다시 재송신한다. 송신 노드가 재송신된 패킷이 손실된 것으로 결정하는 구체적 방법에 대해서는 도 5의 제1 단계의 관련 설명을 참조한다. 또한, 단계 605에서의 "즉시"의 관련 의미 및 설명은 단계 505에서 기술된 것과 유사하며, 상세한 설명은 여기에서 다시 기술하지 않는다.
단계 607: 송신 노드는 송신 버퍼가 비어 있는지 결정하고, 송신 버퍼가 비어 있으면 송신 노드는 제1 패킷을 다시 재송신한 후, 제1 시간 간격으로 제1 패킷을 적어도 한 번 송신한다. 제1 시간 간격의 정의에 대해서는 도 5에 도시된 실시예를 참조한다. 또한, 다른 실시예에서, 단계 607의 제1 시간 간격은 제1 패킷을 다시 재전송한 시점을 시작 시점으로서 사용하고, 제1 패킷이 다시 재송신된 다음 제1 확인 응답 패킷의 수신한 순간을 종료 시점으로서 사용할 수 있다. 이러한 방식으로, 제1 패킷을 다시 재송신한 다음, 송신 노드는 다시 재전송된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신하기 전에, 제1 패킷을 실제로 다시 송신한다.
단계 607에서 송신 버퍼는 애플리케이션의 송신 될 데이터, 즉 송신 노드에 의해 송신되지 않은 데이터를 버퍼링하도록 구성된다. 송신 버퍼에서 패킷은 특정 시간에 송신 큐(sending queue)에 삽입되고 송신 큐로부터 송신된다. 송신 큐는 송신 노드에 의해 송신되지 않은 패킷을 포함할 수 있고, 재송신된 패킷 또한 송신 큐에 삽입될 수 있다.
또한, 도 6을 참조하면, 실시예에서 단계 607은, 송신 버퍼가 비어 있지 않으면, 송신 노드가, 제1 패킷을 다시 재전송한 다음, 제1 시간 간격 내에 제2 패킷(예를 들어, 도 6의 패킷 11)을 송신 버퍼에 송신한다. 제2 패킷은 신규 패킷, 즉 송신 노드가 제1 패킷을 다시 재송신하기 전에 전송되지 않은 패킷이다.
다른 실시예에서, 전술한 단계 605 및 단계 607은 미리 설정된 시간 간격 내에 완료된다. 즉, 제1 패킷을 다시 재송신하고, 송신 버퍼가 비어 있는지 결정하고, 중복하여 제1 패킷을 송신하거나 제2 패킷을 송신하는 동작 패킷은 미리 설정된 시간 간격 내에 완료된다. 미리 설정된 시간 간격은 0보다 크거나 그와 같고 제1 패킷의 타임 아웃 타이머의 주기보다 짧거나 더욱 짧다. 또한, 송신 노드는 미리 설정된 시간 간격 내에, 다시 재전송된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신하지 못했다. 즉, 송신 노드가 다시 재전송된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신하지 못한 경우(다시 재송신 된 제1 패킷이 손실되었는지 확인할 수 없음), 송신 노드는 제1 패킷을 중복해서 송신한다.
또한, 일 실시예에서, 송신 노드는 수신 노드로 패킷을 송신하는 프로세스에서 상태 정보를 수집할 수 있다. 따라서, 제1 패킷을 재송신한 다음, 송신 노드는 수집된 상태 정보에 따라, 제1 패킷을 재송신한 다음에 송신 노드가 즉시 신규 패킷을 송신할 수 있는지 계산할 수 있다.
상태 정보는 송신 노드의 송신 버퍼의 크기, 송신 노드의 혼잡 창의 크기, 송신 노드의 혼잡 제어 정책 또는 수신 노드의 수신 창의 크기의 정보 중 적어도 하나의 정보를 포함하지만 이에 한정되지는 않는다. 이에 대응하여, 단계 607에서, 송신 노드의 송신 버퍼가 비어 있지 않고 송신 노드의 혼잡 제어 정책이 신규 패킷의 송신을 허용하면, 송신 노드는 신규 패킷이 현재 송신되도록 허용되는지를 결정하고, 제1 패킷을 다시 재송신한 다음에 제1 시간 간격 내에 신규 패킷을 더 전송한다. 대안으로서, 송신 노드의 송신 버퍼가 비어 있지 않고 송신 노드의 혼잡 제어 정책이 신규 패킷의 송신을 허용하지 않으면, 송신 노드는 여전히 신규 패킷이 현재 송신되도록 허용될 수 있는 것으로 결정하고, 제1 패킷을 다시 재송신한 다음 제1 시간 간격(t)에서 신규 패킷을 전송한다. 즉, 단계 607에서, 송신 노드는 단지 송신 버퍼에 따라, 제1 시간 간격 내에 신규 패킷을 송신할지 결정 하나, 혼잡 제어 정책의 제한을 무시한다. 혼잡 제어 정책(congestion control policy)을 무시하는 구체적 방법은, 송신 노드가 손실 패킷을 다시 재송신한 다음, 송신 버퍼가 비어 있지 않으면, 제1 시간 간격 내에 송신 노드가 혼잡 창(congestion window)을 일시적으로 증가시켜 혼잡 제어 정책의 제한을 피하고, 신규 패킷을 신속하게 전송한다. 또한, 신규 패킷을 송신한 후에, 송신 노드는 혼잡 창을 복구한다.
본 발명의 실시예에서의 패킷 전송 방법과 도 5에 도시된 방법과의 차이점은, 도 5에 도시된 바와 같이, 본 발명의 실시예에서, 송신 노드는 재송신된 패킷이 손실된 것을 검출한 후, 매번 2회 또는 2회 이상 제1 시간 간격 내에 손실된 제1 패킷을 반복적으로 전송하지 않지만, 신규 패킷이 현재 전송될 수 있는지 추가로 결정하고, 전송될 수 있으면 제1 시간 간격 내에 적어도 하나의 신규 패킷을 전송한다는 것이다. 도 5에 도시된 방법과 비교하여, 본 발명의 실시예에 따른 방법을 사용함으로써, 재송신 패킷의 손실 확률이 감소하면, 패킷의 중복 전송이 감소하고, 네트워크 전송 효율이 향상된다.
도 6에 도시된 방법에 기초하여, 본 발명의 실시예는 또 다른 패킷 전송 방법을 제공한다. 도 7에 도시된 바와 같이, 본 방법은 다음 단계를 포함한다.
단계 701: 송신 노드는 송신 노드와 수신 노드 사이의 통신 링크를 사용하여 수신 노드로 복수의 패킷(예를 들어,도 7의 패킷 1 내지 8)을 송신한다.
단계 703: 제1 패킷(예를 들어, 도 7의 패킷(3))이 손실되었다고 판단한 후, 송신 노드는 손실된 제1 패킷을 즉시 재송신하고, 재송신 된 제1 패킷(즉, FR3)은 또한, 재송신된 패킷으로 지칭된다. 여기에서 "즉시"란 용어는 0에 가까운 시간 간격을 의미한다. 상세한 설명은 도 5에 도시된 실시예에서 관련된 설명을 참조한다.
단계 705: 송신 노드는 제1 패킷이 재송신 된 다음 수신한 확인 응답 패킷에 따라 재송신된 패킷(즉, 단계 602에서 재송신 된 제1 패킷 FR3)이 손실되었음을 확인한 후 즉시 제1 패킷을 다시 재송신한다. 송신 노드가 재송신된 패킷이 손실된 것으로 결정하는 구체적 방법에 대해서는 도 7의 제1 단계의 관련 설명을 참조한다. 또한, 단계 705에서의 "즉시"의 관련 의미 및 설명은 단계(505) 및 단계(605)에서 기술된 것과 유사하며, 상세한 설명은 여기에서 다시 기술하지 않는다.
단계 707: 송신 버퍼가 비어 있는지 및 혼잡 제어 정책이 신규 패킷의 송신을 허용하는지 결정한다. 송신 버퍼가 비어있거나 또는 현재 혼잡 제어 정책이 신규 패킷의 송신을 허용하지 않는 경우, 송신 노드는 제1 시간 간격(예를 들어, 도 7의 t)에서 적어도 한 번 이상 제1 패킷을 송신하고; 그렇지 않으면, 송신 버퍼가 비어있지 않고 현재 혼잡 제어 정책이 신규 패킷의 송신을 허용하는 경우, 송신 노드는 제1 시간 간격 내에 적어도 하나의 신규 패킷을 송신한다. 제1 시간 간격의 정의에 대해서는 도 5에 도시된 방법 실시예를 참조한다. 상세한 설명은 생략한다.
또한, 도 7을 참조하면, 단계 707 후에 패킷 전송 방법은 다음 단계를 포함한다.
단계 709: 송신 노드는 송신 버퍼가 비어 있는지 결정하고, 송신 버퍼가 비어 있으면 리턴하거나 대기한다. 또는 송신 버퍼가 비어 있지 않은 경우, 현재의 혼잡 제어 정책이 신규 패킷의 송신을 허용하는지 결정하고, 현재의 혼잡 제어 정책이 신규 패킷의 송신을 허용하지 않으면, 리턴하거나 대기한다. 또는 현재 혼잡 제어 정책이 신규 패킷의 전송을 허용하는 경우, 신규 패킷을 송신한다.
도 6에 도시된 방법과 비교하여, 도 7에 도시된 방법에서, 신규 패킷을 송신할지 결정될 때, 송신 버퍼 및 혼잡 제어 정책 모두가 고려되고, 신규 패킷이 송신되지 않기 때문에 혼잡 제어 정책이 준수된다.
이하, 본 발명의 실시예에 따른 다른 패킷 전송 방법을 구체적 애플리케이션 시나리오(네트워크 비디오 감시 시나리오)에 기초하여 설명한다. 도 8에 도시된 바와 같이, 사용자는 사용자 장비를 이용하여 원격 네트워크 카메라가 촬영한 영상을 시청한다고 가정한다. 네트워크 카메라 칩은 가벼운 TCP/IP 프로토콜 스택을 통합한다. 프로토콜 스택은 본 발명의 실시예에서 패킷 전송 방법을 구현한다.
링크의 패킷 손실률이 5%라고 가정한다. TCP 패킷 전송 프로세스에서, 시퀀스 번호가 3인 패킷(3)은 손실된다고 가정한다. 본 발명의 실시예에서의 패킷 전송 방법은 도 9에 도시된다.
단계 1001: 패킷(3)이 손실된 것을 검출한 후, 네트워크 카메라는 패킷(3)을 재송신하고, 현재 송신된 패킷의 최대 시퀀스 번호가 8이라고 기록한다.
단계 1002: 송신 버퍼가 비어 있지 않고 혼잡 제어 정책이 신규 패킷의 송신을 허용하면, 송신 노드는 신규 패킷을 계속 송신한다.
단계 1003: 패킷(3)이 재송신 된 다음 세 번째 반복 ACK가 수신되면 누적 확인 응답의 시퀀스 번호는 여전히 2이고 업데이트되지 않고, 시퀀스 번호가 9인 패킷이 확인 응답 된 경우 네트워크 카메라 재송신된 패킷이 손실된 것으로 판단한다.
단계 1004: 패킷(3)을 즉시 재송신하고, 현재 송신된 패킷의 최대 시퀀스 번호가 10임을 기록한다.
단계 1005: 송신 버퍼 및 혼잡 제어 정책에 따라 현재 신규 패킷을 계속 송신할지 결정한다.
단계 1006: 송신 버퍼가 비어 있지 않지만 현재의 혼잡 제어 정책이 신규 패킷의 송신을 허용하지 않으면, 적어도 하나의 신규 패킷을 즉시 송신하거나, 또는 송신 버퍼가 비어 있다면, 즉시 적어도 한 번 패킷(3)을 송신한다. 본 발명의 본 실시예에서 설명되는 "즉시"는 미리 설정된 시간 간격 내인 것을 의미한다. 즉, 송신 노드는 패킷(3)을 다시 재송신한 다음 미리 설정된 시간 간격 내에 손실된 패킷(3)을 적어도 한 번 중복하여 송신하거나 또는 신규 패킷을 송신한다. 여기에서 미리 설정된 시간 간격은 0보다 크거나 같아야 하고, 패킷(3)의 타임 아웃 타이머의 주기보다 짧거나 더욱 짧아야 한다. 예를 들어, 패킷(3)에 대응하는 타임 아웃 타이머의 주기가 T이면, 미리 설정된 시간 간격은 T보다 짧거나 T/2보다 짧거나 T/4보다 짧아야 한다. 바람직하게, 미리 설정된 시간 간격은 다시 패킷(3)을 다시 재송신하는 시점을 시작점으로서 사용하고 네트워크 카메라는 미리 설정된 시간 간 내에 재송신된 패킷(3)이 손실되었음을 나타내는 확인 응답 패킷이 수신되지 않았음을 감지한다.
본 발명의 실시예의 방법에서, 네트워크 카메라는 패킷이 손실된 것을 검출한 후, 패킷을 재송신하고, 현재 신규 패킷이 송신될 수 있는지 판정한다. 신규 패킷이 전송될 수 없는 경우, 송신 노드는 미리 설정된 시간 간격 내에 손실된 패킷을 중복하여 송신한다. 이러한 방식으로, 패킷 손실의 가능성이 감소 될 수 있고, 데이터 전송 효율이 향상될 수 있다.
서로 다른 패킷 손실 레이트의 상이한 네트워크 환경에서 획득된 본 발명의 실시예이 실험 결과가 표 1 및 표 2에 나타난다. 표 1은 상이한 패킷 손실률의 시나리오에서 200MB 데이터가 전송될 때 패킷 손실의 횟수를 나타내고, 표2는 상이한 패킷 손실률의 시나리오에서 200MB 데이터가 전송될 때 처리량(Throughput)을 나타낸다. 표 1에 따르면, 200MB 데이터를 전송하는 시나리오에서, 본 발명의 실시예에서의 패킷 전송 방법을 사용함으로써, 패킷 손실의 횟수가 DAC 방법을 사용하여 얻은 것보다 2배 내지 5배 더 적다. 표 2에 나타낸 바와 같이, 본 발명의 방법을 사용하는 경우, 처리량은 DAC 방법을 사용함으로써 얻은 처리량보다 적어도 2배 더 많다. 높은 패킷 손실률 시나리오에서 처리량은 Linux의 기본 프로토콜 스택의 처리량을 초과한다.
패킷 손실률 1% 3% 5% 7% 9% 11%
DAC 0 9 52 134 291 534
최적화 0 0 8 31 84 169
패킷 손실률 1% 3% 5% 7% 9% 11%
DAC 11.31 MiB/s 5.81 MiB/s 1.99 MiB/s 0.83 MiB/s 0.36 MiB/s 0.19 MiB/s
최적화 11.33 MiB/s 11 MiB/s 6.8 MiB/s 2.87 MiB/s 1.29 MiB/s 0.65 MiB/s
Linux 11.24 MiB/s 8.7 MiB/s 4.54 MiB/s 1.96 MiB/s 0.89 MiB/s 0.53 MiB/s
도 5 내지 도 7에서 설명된 방법 실시예는, 재송신된 패킷이 손실된 것으로 검출된 다음 패킷 송신 메카니즘이다. 본 발명의 선택적 실시예에서, 패킷(예를 들어, 제1 패킷)이 손실된 것을 처음으로 검출한 후, 제1 패킷은 제1 시간 간격 내에 연속적으로 여러번 재송신 될 수 있다. 다른 실시예에서, 송신 노드는, 제1 패킷이 손실된 것을 처음으로 검출한 후, 현재 송신 버퍼가 비어 있지 않으면, 제1 시간 간격 내에 제1 패킷 및 적어도 하나의 신규 패킷을 연속적으로 송신한다. 그렇지 않으면, 송신 노드는, 제1 시간 간격 내에 제1 패킷을 적어도 2회 연속적으로 송신한다. 또 다른 실시예에서, 송신 노드가 처음으로 제1 패킷이 손실된 것을 검출한 다음, 현재의 송신 버퍼가 비어 있거나, 현재의 혼잡 제어 정책이 신규 패킷의 송신을 허용하지 않으면, 송신 노드는 제1 시간 간격 내에의 적어도 하나의 제1 패킷을 연속적으로 송신한다. 그렇지 않으면, 제1 패킷 및 적어도 하나의 신규 패킷을 연속적으로 송신한다.
전술한 방법 실시예에서 알 수 있는 바와 같이, 본 발명은 사용자 장비를 추가로 제공하여 전술한 방법 실시예에서 송신 노드의 기능을 구현한다. 구체적으로, 도 2를 참조하면 사용자 장비(110)는 프로세서(120), TCP 프로토콜 스택(130), 안테나(142), 무선 모뎀(140), 및 메모리(150)를 포함한다. 무선 모뎀(140)은 안테나(142)에 연결된다. TCP 프로토콜 스택(130)은 프로세서(120)의 제어하에 애플리케이션 프로그램의 데이터를 TCP/IP 프로토콜에 따라 특정 데이터 포맷의 다수의 패킷으로 캡슐화(encapsulate)하고, 무선 모뎀(140)에 복수의 패킷을 송신하도록 구성된다. 무선 모뎀(140)은 수신된 패킷을 아날로그 신호로 변조하고 안테나를 사용하여 아날로그 신호를 전송하도록 구성된다. 애플리케이션 프로그램 서버(20)는 사용자 장비(110)가 전송 한 아날로그 신호를 무선 네트워크를 통해 수신하고, 아날로그 신호를 디지털 신호로 복조하여 애플리케이션 프로그램 서버(20)의 TCP 프로토콜 스택(21)으로 전송하도록 구성된다. TCP 프로토콜 스택(21)은 디지털 신호를 캡슐 해제(decapsulate)하여 최종적으로 애플리케이션 프로그램의 데이터를 얻도록 구성된다. 사용자 장비(110)와 애플리케이션 프로그램 서버(20)의 TCP 프로토콜 스택은 물리 계층(physical layer), 링크 계층(link layer), 네트워크 계층(network layer), 전송 계층(transmission layer), 및 애플리케이션 계층(application layer)을 포함한다. TCP 프로토콜 스택이 패킷을 캡슐화 및 캡슐 해제하는 프로세스는 도 10에 도시된다. 알 수 있는 바와 같이, 패킷의 캡슐화 프로세스는 실제로 TCP 프로토콜 스택에 의해 헤더 및/또는 프레임 트레일러(frame trailer)를 패킷에 부가하는 프로세스이며, 패킷의 캡슐 해제 프로세스는 실제로 패킷으로부터 헤더 및/또는 프레임 트레일러를 제거하는 프로세스이다.
또한, 애플리케이션 프로그램 서버(20)는 사용자 장비(110)가 송신 한 패킷을 수신한 다음, 수신 확인 응답 패킷을 리턴(return)하여 패킷이 수신되었음을 알린다. TCP 프로토콜 스택(130)은 또한, 애플리케이션 프로그램 서버로부터 수신된 확인 응답 패킷에 따라 프로세서(120)의 제어하에 제1 패킷이 손실되었음을 결정하고; 미리 설정된 시간 간격으로 상기 제1 패킷을 적어도 2회 연속적으로 재송신하도록 구성된다.
바람직하게는, 또 다른 실시예에서, TCP 프로토콜 스택(130)은 프로세서(120)의 제어하에 도 5, 도 6, 또는 도 7의 일부 또는 모든 단계를 수행하도록 더 구성된다. TCP 프로토콜 스택(130)은 사용자 장비(110)상의 소프트웨어, 하드웨어 및/또는 펌웨어의 적절한 조합에 의해 실행될 수 있다. 예를 들어, 일 실시예에서, TCP 프로토콜 스택(130)은 실행 가능 프로그램 코드의 형태로 메모리(150)에 저장된다. 프로세서(120)는 TCP 프로토콜 스택(130)에 대응하는 프로그램 코드를 실행하여 도 5, 6, 또는 7에 설명된 일부 또는 모든 단계를 수행한다. 구체적으로, 도 12에 도시된 바와 같이, 사용자 장비(100)는 논리 계층에 따라 칩/하드웨어 플랫폼(chip/hardware platform), 칩/하드웨어 플랫폼상의 커널(kernel), 미들웨어(middleware). 및 미들웨어 상에서 실행되는 애플리케이션 프로그램으로 분할된다. 커널, 미들웨어 및 애플리케이션 프로그램은 모두 실행 가능 코드의 방식으로 사용자 장비(110)의 메모리(150)에 저장된다. 프로세서는 코드를 구체적 명령으로 파싱(parse)하고 명령을 실행하여 대응하는 기능을 완료한다. 실행 칩은 범용 프로세서, 마이크로프로세서, 그래픽 처리 장치, 또는 베이스밴드 프로세서 중 적어도 하나를 포함한다. 하드웨어 플랫폼은 칩, 메모리, 통신 인터페이스 등을 포함한다. 커널은 구체적으로 칩 드라이버, 주변 장치 드라이버(예: 통신 인터페이스 및 센서 드라이버), 하드웨어 어뎁션 레이어(hardware adaption layer), 및 기본 커널(basic kernel)을 포함한다. 기본 커널은 메모리 관리, 인터럽트 관리(interrupt management), 프로세스 관리, 및 파일 시스템과 같은 기능을 제공한다. 프로세서는 커널에 대응하는 실행 가능 코드를 실행하여 하드웨어 자원이 특정 기능(예: 데이터 읽기 및 쓰기 및 제어 명령 생성)을 구현하도록 스케줄링(schedule )한다.
또한, 미들웨어는 커널과 상위 계층 애플리케이션 프로그램 간의 연결 지점(joint point)으로서, 여러 종류의 프로토콜 스택을 포함할 수 있으므로, 사용자 장비는 서로 다른 타입의 프로토콜을 지원할 수 있다. 예를 들어, 미들웨어는 전술한 실시예에서 설명한 TCP 프로토콜 스택을 포함할 수 있다. 미들웨어는 애플리케이션 프로그래밍 인터페이스(API: application programming interface) 및 상이한 타입의 서비스 컴포넌트를 더 포함한다. 서비스 컴포넌트는 특정 애플리케이션 프로그램 또는 서비스용으로 개발되며 애플리케이션 프로그램 또는 서비스에 대한 확장 기능을 제공한다. 도 8에 도시된 애플리케이션 시나리오에 대해, 서비스 컴포넌트는 비디오 감시 애플리케이션의 동작을 지원하도록 비디오 최적화 기능 및/또는 비디오 코딩 및 디코딩 기능을 제공하도록 구성된 비디오 컴포넌트를 포함할 수 있다. API는 메시지를 전송하기 위해 상위 계층 애플리케이션 프로그램, 미들웨어 및 커널 간의 인터워킹(interworking)을 위해 구성된다. 선택적으로, 미들웨어는 장치의 인증 및 허가를 구현하도록 구성된 보안 구성 요소를 더 포함한다.
구체적으로, 프로세서에 의해 애플리케이션 프로그램(예를 들면, APP1)이 실행되는 프로세스에서, API는 네트워크 프로토콜 스택(예를 들어, TCP 프로토콜 스택)에 데이터 패킷을 전송하도록 호출될 수 있다. 패킷을 감지한 후, TCP 프로토콜 스택은 관련된 하드웨어, 예를 들어 무선 모뎀(140) 및 안테나(142)를 구동하여 패킷을 송신, 수신 및 처리하기 위해 시스템 기능을 사용하여 커널에서 하드웨어 드라이버를 호출한다. 또한, 데이터 패킷 손실 검출 및 패킷 재송신은 TCP 프로토콜 스택을 실행함으로써 프로세서에 의해 구현된다. TCP 프로토콜 스택에 의한 패킷 손실 검출 및 패킷 전송의 구체적인 구현 예에 대해서는 전술한 실시예를 참조하고, 상세한 설명은 여기서 다시 설명하지 않는다.
다른 실시예에서, TCP 프로토콜 스택(130)은 하드웨어회로 또는 필드 프로그래머블 게이트 어레이(Field Programmable Gata Array, FPGA) 또는 주문형 집적회로(ASIC: Application Specific Integrated Circuit)와 같은 전용 칩으로 구현될 수 있다. 이 경우, 프로세서(120)와, TCP 프로토콜 스택을 구현하도록 구성된 TCP 하드웨어회로 또는 주문형 집적회로는 버스를 사용하여 서로 접속된다. 프로세서는 메모리(150) 내의 애플리케이션 프로그램을 실행하고, TCP 프로토콜 스택을 구현하도록 구성된 TCP 하드웨어회로 또는 전용 칩을 호출하여, 애플리케이션 프로그램을 실행하는 프로세스에서 생성된 데이터를 송신 및 처리한다. 구체적으로는, 프로세서(120)는 애플리케이션 프로그램에 대응하는 코드를 기계 명령(machine instruction)으로 디코딩하고, 기계 명령을 하나씩 실행하며, 명령을 실행하는 과정에서, 대응하는 프로그램, TCP 하드웨어회로 또는 전용 칩을 사용하여 패킷을 보내고 받는다. 이에 대응하여, 프로세서(120)의 호출하에, TCP 하드웨어회로 또는 전용 칩은 본 발명의 방법 실시예에서 설명된 단계 또는 기능을 완료하기 위해 또 다른 하드웨어와 협력한다. 또한, 전술한 방법 단계들을 TCP 하드웨어회로 또는 TCP 프로토콜 스택의 애플리케이션 특정 칩에 의해 실행하는 것과 관련된 상세한 설명은 전술한 방법 실시예를 참조하고, 상세한 설명은 여기서 다시 설명하지 않는다.
도 11에 도시된 바와 같이, 본 발명의 실시예는 처리회로(302), 및 처리회로(302)에 접속된 통신 인터페이스(304) 및 저장 매체(320)를 포함하는 다른 사용자 장비(300)를 더 제공한다.
처리회로(302)는 데이터를 처리 및/또는 송신하고, 데이터 액세스 및 저장을 제어하고, 명령을 내리고, 작업을 수행하기 위해 다른 장치를 제어하도록 구성된다. 처리회로(302)는 하나 이상의 프로세서, 하나 이상의 제어기 및/또는 프로그램 등을 실행하도록 구성될 수 있는 다른 구조로서 구현될 수 있다. 처리회로(302)는 구체적으로, 범용 프로세서(general purpose processor), 디지털 신호 프로세서(DSP:digital signal processor), 주문형 집적회로(ASIC), 필드 프로그램 가능 게이트 어레이(FPGA: field programmable gate array) 또는 다른 프로그램 가능 논리 컴포넌트를 포함할 수 있다. 범용 프로세서는 마이크로프로세서, 임의의 정상 프로세서(normal processor), 컨트롤러, 마이크로 컨트롤러 또는 상태 머신(state machine)을 포함할 수 있다. 처리회로(302)는 예를 들어 DSP 및 마이크로프로세서의 조합과 같은 컴퓨팅 구성 요소로서 구현될 수 있다.
저장 매체(306)는 자기 저장 장치(예를 들어, 하드 디스크, 플로피 디스크 또는 자기 스트라이프), 광학 저장 매체(예를 들어, DVD(digital versatile disc )), 스마트카드, 플래시 메모리 장치, RAM(random access memory), ROM(read-only memory), PROM(programmable ROM), EPROM(erasable PROM), 레지스터 또는 이들의 임의의 조합과 같은 컴퓨터 판독 가능한 저장 매체를 포함할 수 있다. 저장 매체(306)는 처리회로(302)에 결합 될 수 있어서, 처리 회로(302)는 정보를 판독하고 저장 매체(306)에 정보를 기록할 수 있다. 구체적으로, 저장 매체(306)는 처리회로(302) 또는 저장 매체(306)에 집적될 수 있거나 또는 저장 매체(306) 및 처리 회로(302)는 분리될 수 있다.
처리회로(302)는 기억 매체(306)에 저장된 프로그램을 실행하도록 구성된다. 본 발명의 본 실시예에서 사용된 용어 "프로그램"은 명령(instruction), 명령 세트(instruction set), 코드, 코드 세그먼트(code segment), 서브 루틴(subroutine), 소프트웨어 모듈, 애플리케이션, 소프트웨어 패키지, 스레드(thread), 프로세스, 기능, 펌웨어, 미들웨어 등을 포함할 수 있다.
통신 인터페이스(304)는 사용자 장비(300) 및 하나 이상의 무선 네트워크 장치들(예를 들어, 네트워크 노드) 간의 양방향 통신을 구현하기 위한 회로 및/또는 프로그램을 포함할 수 있다. 통신 인터페이스(304)는 하나 이상의 안테나(도 11에 도시되지 않음)에 연결될 수 있고 적어도 하나의 수신기회로(316) 및/또는 적어도 하나의 송신기회로(318)를 포함할 수 있다. 일 실시예에서, 통신 인터페이스(304)는 무선 모뎀에 의해 전체 또는 부분적으로 구현될 수 있다.
실시예에서, 저장 매체(306)는 프로토콜 스택 프로토콜(320)을 저장한다. 처리회로(302)는 프로토콜 스택 모듈(308)의 기능을 구현하기 위해 프로토콜 스택 프로토콜(320)을 실행한다. 프로토콜 스택 모듈(308)은 통신 인터페이스(304)에 의해 수신된 데이터에 디코딩 및/또는 캡슐 해제 처리를 수행하고 데이터를 상위층 애플리케이션 프로그램으로 데이터를 송신하거나, 또는 애플리케이션 프로그램의 데이터를 캡슐화 처리한 다음, 통신 인터페이스를 사용하여 다른 장치로 데이터를 전송할 수 있다. 프로토콜 스택 모듈(308)의 구체적 작업 프로세스에 대해서는, 전술한 실시예에의 TCP 프로토콜 스택(130 및 21) 및 도 11의 관련 설명을 참조한다.
일 실시예에서, 프로토콜 스택 모듈(308)은 물리 계층 모듈, 데이터 링크 계층 모듈, 네트워크 계층 모듈, 전송 계층 모듈 및 애플리케이션 계층 모듈을 포함할 수 있으며, 계층의 프로토콜을 구현할 수 있다. 예를 들어, 물리 계층 모듈은 물리적 장치 인터페이스 특성, 전송 매체 유형, 전송 속도, 전송 모드 등을 정의하도록 구성된 회로 및/또는 프로그램을 포함할 수 있다. 유사하게, 데이터 링크 계층 모듈은 예를 들어 네트워크 계층에 의해 생성된 시그널링을 전달하고 물리적 계층에 의해 생성된 정보 처리를 담당하는 데이터 링크 계층의 기능을 구현하도록 구성된 회로 및/또는 프로그램을 포함할 수 있다. 데이터 링크 계층 모듈은 하나 이상의 서브 모듈(submodule), 예를 들어, 미디어 액세스 제어(MAC: Media Access Control) 계층 모듈, 무선 링크 제어(RLC: radio link control) 계층 모듈, 및 논리 링크 제어(LLC:logical link control) 계층 모듈을 포함하여 서브 모듈은 MAC 계층, RLC 계층, 및 LLC 계층의 기능을 구현하도록 구성된다. 예를 들어, MAC 계층 모듈은, 물리 계층이 제공하는 서비스를 이용하여 상위 계층 프로토콜 데이터를 전송하고, 상위 계층과 무선 인터페이스 간의 데이터 접근을 관리하도록 구성된다. RLC 계층 모듈은 데이터 분할 및 재구성을 위해 구성된다. LLC 계층 모듈은 트래픽 및 시퀀스 제어 기능 및 오류 제어 기능을 제공하도록 구성된다. 또한, 네트워크 계층 모듈은 네트워크 계층의 기능, 예를 들어, 논리 어드레싱 및 라우팅을 구현하기 위한 회로 및/또는 프로그램을 포함할 수 있다. 전송 계층 모듈은 예를 들어, 포트 어드레싱(port addressing), 세그멘테이션(segmentation) 및 리어셈블리(reassembly), 접속 제어, 트래픽 제어 및 에러 제어와 같은 전송 계층의 기능을 구현하도록 구성된 회로 및/또는 프로그램을 포함할 수 있다. 애플리케이션 계층 모듈은 상위 계층 애플리케이션 프로그램에 인터페이스를 제공하도록 구성된 회로 및/또는 프로그램을 포함할 수 있다.
본 발명의 본 실시예의 하나 이상의 측면에 따르면, 프로세싱회로(302)는 프로토콜 스택 모듈(308)의 기능을 구현하기 위해 저장 매체(306)에 저장된 프로토콜 스택 프로토콜(320)을 실행하도록 구성된다. 프로토콜 스택 모듈(308)은 전술한 방법 실시예에서 일부 또는 모든 단계를 구체적으로 구현한다.
도 13을 참조하면, 본 발명의 실시예는 전술한 방법 실시예에서 송신 노드의 기능을 구현하기 위해 사용자 장비(13)를 추가로 제공한다. 사용자 장비(13)는 수신 유닛(131), 송신 유닛(133) 및 처리 유닛(132)을 포함한다. 송신 유닛(133)은 사용자 장비(13)와 통신 접속하는 수신 노드(14)에 복수의 패킷을 전송하도록 구성된다. 수신 유닛(131)은 수신 노드(14)로부터 확인 응답 패킷을 수신하도록 구성된다. 실시예에서, 처리 유닛(132)은, 수신 유닛(131)에 의해 수신된 확인 응답 패킷에 따라, 복수의 패킷 중 제1 패킷이 손실되었음을 결정하고; 제1 시간 간격 내에 적어도 두 번 제1 패킷을 연속해서 송신하도록 송신 유닛(133)을 즉시 트리거한다. "즉시" 및 "제1 시간 간격"의 상세한 정의에 대해서는 전술한 방법 실시예를 참조한다.
또 다른 실시예에서, 처리 유닛(132)은, 수신 유닛(131)에 의해 수신된 확인 응답 패킷에 따라, 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하고; 제1 패킷을 다시 재전송하고, 송신 버퍼가 비어있는지 결정하도록 송신 유닛(133)을 트리거하고, 송신 버퍼가 비어있지 않은 경우, 제1 시간 간격 내에 송신 버퍼 내의 적어도 하나의 패킷을 송신하도록 구성된다. 송신 버퍼 내의 패킷은 송신 유닛이 송신하지 않은 패킷이다. 또한, 처리 유닛(132)은, 송신 버퍼가 비어 있다면 제1 시간 간격에 제1 패킷을 적어도 한 번 송신하도록 송신 유닛(133)을 트리거한다. "제1 시간 간격"의 상세한 정의에 대해서는, 전술한 방법 실시예를 참조한다.
또 다른 실시예에서, 처리 유닛(132)은, 수신 유닛(131)에 의해 수신된 확인 응답 패킷에 따라, 복수의 패킷 중 제1 패킷이 손실되었음을 결정하고; 제1 패킷을 수신 노드(14)로 재송신하도록 송신 유닛(133)을 트리거한다. 또한, 처리 유닛(132)은, 제1 패킷이 재송신 된 다음에 수신 유닛(131)에 의해 수신된 수신 확인 응답 패킷에 따라, 재송신된 패킷이 손실된 것으로 결정하고, 송신 버퍼가 비어있는지 또는 현재 혼잡 제어 정책이 신규 패킷의 송신을 허용하는지 결정하고, 송신 버퍼가 비어있거나 또는 현재 혼잡 제어 정책이 신규 패킷의 송신을 허용하지 않는 경우 제1 시간 간격 내에 제1 패킷을 적어도 한 번 송신하도록 구성된다. 또한, 처리 유닛(132)은 송신 버퍼가 비어있지 않고 현재 혼잡 제어 정책이 신규 패킷의 송신을 허용하는 경우, 송신 버퍼 내의 적어도 하나의 패킷을 제1 시간 간격 내에 송신하고, 송신 버퍼 내의 패킷은 송신 유닛이 송신하지 않은 패킷이다. "제1 시간 간격"의 상세한 정의에 대해서는, 전술한 방법 실시예를 참조한다.
수신 유닛(131), 송신 유닛(133) 및 처리 유닛(132)의 상세한 동작 과정에 대해서는 상술 한 방법의 실시예를 참조하여, 상세한 설명은 생략한다.
본 발명의 실시예는 또한, 송신 유닛, 수신 유닛 및 처리 유닛을 포함하는 사용자 장비를 제공한다.
송신 유닛은 사용자 장비 통신 연결된 수신 노드에 복수의 패킷을 송신하도록 구성된다.
수신 유닛은 수신 노드로부터 복수의 확인 응답 패킷을 수신하도록 구성된다.
일 실시예에서, 처리 유닛은, 수신 유닛이 수신한 복수의 확인 응답 패킷에 따라 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하고, 송신 유닛을 트리거하여 즉시 제1 패킷을 수신 노드에 송신하도록 송신 유닛을 트리거하고, 제1 시간 간격은, 0보다 크거나 그와 같고, 제1 패킷의 타임 아웃 타이머(타임 아웃 timer)의 주기보다 짧고, 송신 노드는 제3 시간 간격 내에 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신한 적이 없다. 또한, 본 명세서에서 기술된 "즉시"는 제1 패킷이 손실된 것으로 결정된 후 미리 설정된 시간 간격 내를 의미한다. 미리 설정된 시간 간격은 0보다 크거나 그와 같고 제1 패킷의 타임 아웃 타이머의 주기보다 짧거나 더욱 짧다. 바람직하게는, 미리 설정된 시간 간격은 0 또는 0에 접근한다.
다른 실시예에서, 처리 유닛은, 수신 유닛에 의해 수신된 복수의 확인 응답 패킷에 따라, 복수의 패킷 중 제1 패킷이 손실되었음을 결정하고; 제1 패킷을 수신 노드로 즉시 재송신하도록 송신 유닛을 트리거하도록 구성된다. 또한, 처리 유닛은 추가로 송신 버퍼가 비어 있는지 결정하고, 송신 버퍼가 비어있는 경우, 송신 유닛을 트리거하여 제2 시간 간격 내에 제1 패킷을 적어도 한 번 송신하도록 구성된다. 또한, 처리 유닛은 추가로, 송신 버퍼가 비어 있지 않은 경우, 송신 버퍼 내의 적어도 하나의 패킷을 제1 시간 간격 내에 송신하도록 송신 유닛을 트리거하도록 구성되고, 송신 버퍼 내의 패킷은 송신 유닛이 송신하지 않은 패킷이다. 제2 시간 간격은 0보다 크거나 그와 같고, 제1 패킷의 타임 아웃 타이머의 주기보다 짧으며, 송신 노드는 제3 시간 간격 내에 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신하지 못한다. 또한, 본 명세서에서 기술된 "즉시"는 제1 패킷이 손실된 것으로 결정된 후 미리 설정된 시간 간격 내에 있음을 의미한다. 미리 설정된 시간 간격은 0보다 크거나 같고 첫 번째 패킷의 시간 초과 타이머의 주기보다 작거나 훨씬 짧다. 바람직하게는, 미리 설정된 시간 간격은 0 또는 0에 접근한다.
다른 실시예에서, 처리 유닛은, 수신 유닛에 의해 수신된 복수의 확인 응답 패킷에 따라, 복수의 패킷 중 제1 패킷이 손실되었음을 결정하고; 제1 패킷을 수신 노드로 즉시 재송신하도록 송신 유닛을 트리거하도록 구성된다. 또한, 처리 유닛은 추가로, 송신 버퍼가 비어 있는지 또는 현재의 혼잡 제어 정책이 신규 패킷의 송신을 허용하는지 결정하고; 송신 버퍼가 비어 있거나 또는 현재 혼잡 제어 정책이 신규 패킷의 송신을 허용하지 않으면 제2 시간 간격 내에 제1 패킷을 송신하도록 송신 유닛을 트리거하도록 구성된다. 또한, 처리 유닛은 추가로 송신 버퍼가 비어있지 않고 현재 혼잡 제어 정책이 신규 패킷의 송신을 허용하는 경우, 제3 시간 간격 내에 송신 버퍼 내의 적어도 하나의 패킷을 송신하도록 송신 유닛을 트리거하도록 구성되고, 송신 버퍼 내의 패킷은 송신 유닛이 송신하지 않은 패킷이다. 제2 시간 간격은 0보다 크거나 그와 같고, 제1 패킷의 타임 아웃 타이머의 주기보다 짧고, 송신 노드는 제3 시간 간격 내에 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신한 적이 없다. 또한, 본 명세서에서 기술된 "즉시"는 제1 패킷이 손실된 것으로 결정된 후 미리 설정된 시간 간격 내를 의미한다. 미리 설정된 시간 간격은 0보다 크거나 그와 같고 제1 패킷의 타임 아웃 타이머의 주기보다 짧거나 더욱 짧다. 바람직하게는, 미리 설정된 시간 간격은 0 또는 0에 접근한다.
당업자는 실시예에서의 방법의 모든 단계가 관련 하드웨어(프로세서 등)에 명령하는 프로그램에 의해 구현될 수 있다는 것을 이해할 수 있다. 프로그램은 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 저장 매체는 ROM, RAM, 자기 디스크 또는 광디스크를 포함할 수 있다.
본 발명의 실시예에서 제공되는 패킷 송신 방법 및 사용자 장비가 설명되었다. 본 명세서에서, 구체적인 예는 본 발명의 원리 및 구현 방법을 설명하기 위해 사용되며, 실시예의 설명은 본 발명의 방법 및 핵심 사상을 이해하는 것을 돕기 위한 것일 뿐이다. 또한, 당업자는 본 발명의 아이디어에 기초하여 구체적 구현 방식 및 적용 범위를 수정할 수 있다. 따라서, 본 명세서의 내용은 본 발명의 제한으로 해석되어서는 안된다.

Claims (27)

  1. 패킷 전송 방법(packet transmission method)으로서,
    송신 노드가, 상기 송신 노드와 수신 노드 사이의 통신 링크를 사용하여 복수의 패킷을 상기 수신 노드에 송신하는 단계;
    상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정된 다음, 상기 송신 노드가 상기 제1 패킷을 재송신하는 단계;
    상기 송신 노드가, 상기 제1 패킷이 재송신 된 다음 수신된 확인 응답 패킷(acknowledgement packet)에 기초하여, 재송신된 패킷이 손실된 것으로 결정하는 단계 - 상기 재송신된 패킷은 상기 재송신된 제1 패킷임 -; 및
    상기 송신 노드가, 상기 제1 패킷을 다시 재송신하고, 제1 시간 간격 내에 적어도 한 번 상기 제1 패킷을 송신하는 단계
    를 포함하고,
    상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 송신 노드는 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 상기 제1 시간 간격 내에 수신한 적이 없는, 패킷 전송 방법.
  2. 제1항에 있어서,
    상기 송신 노드가, 상기 수신 노드로부터 하나 이상의 확인 응답 패킷을 수신하고, 상기 하나 이상의 확인 응답 패킷에 포함된 확인 응답 필드 또는 확장 필드에 따라 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하는 단계
    를 더 포함하는 패킷 전송 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 송신 노드가, 제1 시간 간격 내에 상기 제1 패킷을 적어도 한 번 송신하는 단계 이후에,
    상기 송신 노드가, 상기 송신 노드에 의해 송신되지 않은 패킷인 제2 패킷을 송신하는 단계
    를 더 포함하는 패킷 전송 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 송신 노드와 상기 수신 노드 사이의 통신 링크는 TCP 연결(TCP connection)인, 패킷 전송 방법.
  5. 패킷 전송 방법(packet transmission method)으로서,
    송신 노드가, 상기 송신 노드와 수신 노드 사이의 통신 링크를 사용하여 복수의 패킷을 상기 수신 노드에 송신하는 단계;
    상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정된 다음, 상기 송신 노드가 상기 제1 패킷을 재송신하는 단계;
    상기 송신 노드가, 상기 제1 패킷이 재송신 된 다음 수신된 확인 응답 패킷(acknowledgement packet)에 기초하여, 재송신된 패킷이 손실된 것으로 결정하는 단계 - 상기 재송신된 패킷은 상기 재송신된 제1 패킷임 -;
    상기 송신 노드가, 상기 제1 패킷을 다시 재송신하고, 송신 버퍼가 비어 있는지 결정하는 단계; 및
    상기 송신 노드가, 상기 송신 버퍼가 비어 있으면 상기 제1 시간 간격 내에 적어도 한 번 상기 제1 패킷을 송신하는 단계
    를 포함하고,
    상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 송신 노드는 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷(acknowledgement packet)을 상기 제1 시간 간격 내에 수신한 적이 없는, 패킷 전송 방법.
  6. 제5항에 있어서,
    상기 패킷 전송 방법은,
    상기 송신 노드가, 상기 송신 버퍼가 비어있지 않은 경우, 상기 제1 시간 간격 내에 상기 송신 버퍼 내의 적어도 하나의 패킷을 송신하는 단계
    를 더 포함하고,
    상기 송신 버퍼 내의 패킷은 상기 송신 노드에 의해 송신되지 않은 패킷인, 패킷 전송 방법.
  7. 제5항 또는 제6항에 있어서,
    상기 송신 노드가, 상기 제1 패킷이 재송신 된 다음 수신된 확인 응답 패킷에 기초하여, 재송신된 패킷이 손실된 것으로 결정하는 단계는,
    상기 송신 노드가, 상기 제1 패킷이 재송신된 다음 수신된 확인 응답 패킷에 포함된 확인 응답 필드 또는 확장 필드에 따라 상기 재송신된 패킷이 손실된 것으로 결정하는 단계
    를 포함하는, 패킷 전송 방법.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서,
    상기 송신 노드와 상기 수신 노드 사이의 통신 링크는 TCP 연결(TCP connection)인, 패킷 전송 방법.
  9. 패킷 전송 방법(packet transmission method)으로서,
    송신 노드가, 상기 송신 노드와 수신 노드 사이의 통신 링크를 사용하여 복수의 패킷을 상기 수신 노드에 송신하는 단계;
    상기 송신 노드가, 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정한 다음, 상기 제1 패킷을 재송신하는 단계;
    상기 송신 노드가, 상기 제1 패킷이 재송신 된 다음 수신된 확인 응답 패킷에 기초하여, 재송신된 패킷이 손실된 것으로 결정하는 단계 - 상기 재송신된 패킷은 상기 재송신된 제1 패킷임 -;
    상기 송신 노드가, 상기 제1 패킷을 다시 재송신하고, 송신 버퍼가 비어 있는지 또는 현재 혼잡 제어 정책(congestion control policy)이 신규 패킷의 송신을 허용하는지 결정하는 단계; 및
    상기 송신 노드가, 상기 송신 버퍼가 비어있거나 또는 상기 현재 혼잡 제어 정책이 상기 신규 패킷의 송신을 허용하지 않는 경우, 제1 시간 간격 내에 적어도 한 번 상기 제1 패킷을 송신하는 단계
    를 포함하고,
    상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 송신 노드는 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 상기 제1 시간 간격 내에 수신한 적이 없는, 패킷 전송 방법.
  10. 제9항에 있어서,
    상기 패킷 전송 방법이,
    상기 송신 노드가, 상기 송신 버퍼가 비어있지 않고 상기 현재 혼잡 제어 정책이 상기 신규 패킷의 송신을 허용하는 경우, 상기 제1 시간 간격 내에 상기 송신 버퍼 내의 적어도 하나의 패킷을 송신하는 단계
    를 더 포함하고,
    상기 송신 버퍼 내의 패킷은 상기 송신 노드에 의해 송신되지 않은 패킷인, 패킷 전송 방법.
  11. 사용자 장비(user equipment)로서,
    무선 모뎀, 프로세서, 안테나, 및 TCP 프로토콜 스택(TCP protocol stack)
    을 포함하고,
    상기 무선 모뎀은 상기 안테나에 연결되고,
    상기 TCP 프로토콜 스택은, 상기 프로세서의 제어 하에, 상기 사용자 장비에서 실행되는 애플리케이션 프로그램의 데이터를 복수의 패킷으로 캡슐화(encapsulate)하고, 상기 복수의 패킷을 상기 무선 모뎀에 송신하도록 구성되며,
    상기 무선 모뎀은 수신된 상기 패킷을 아날로그 신호로 변조하고, 상기 안테나를 이용하여 상기 아날로그 신호를 서버에 송신하도록 구성되고,
    상기 TCP 프로토콜 스택이 추가로,
    상기 복수의 패킷 중 제1 패킷이 손실된 것으로 확인된 다음, 상기 무선 모뎀 및 상기 안테나를 사용하여 상기 제1 패킷을 상기 서버에 재송신하고, 상기 제1 패킷이 재송신된 다음 수신된 확인 응답 패킷(acknowledgement packet)에 기초하여, 재송신된 패킷이 손실된 것으로 결정하고 - 상기 재송신된 패킷은 상기 재송신된 제1 패킷임 -.
    상기 제1 패킷을 상기 서버에 다시 재송신하고,
    제1 시간 간격 내에 적어도 한 번 상기 제1 패킷을 상기 서버에 송신하도록 구성되고,
    상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 사용자 장비는 상기 제1 시간 간격 내에 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신한 적이 없는, 사용자 장비.
  12. 제11항에 있어서,
    상기 TCP 프로토콜 스택이 추가로,
    상기 무선 모뎀 및 상기 안테나를 사용하여, 송신되지 않은 패킷인 제2 패킷을 송신하도록 구성된, 사용자 장비.
  13. 사용자 장비(user equipment)로서,
    무선 모뎀, 프로세서, 안테나, 및 TCP 프로토콜 스택(TCP protocol stack)
    을 포함하고,
    상기 무선 모뎀은 상기 안테나에 연결되고,
    상기 TCP 프로토콜 스택은, 상기 프로세서의 제어 하에, 상기 사용자 장비에서 실행되는 애플리케이션 프로그램의 데이터를 복수의 패킷으로 캡슐화(encapsulate)하고, 상기 복수의 패킷을 상기 무선 모뎀에 송신하도록 구성되며 상기 무선 모뎀은 수신된 상기 패킷을 아날로그 신호로 변조하고, 상기 안테나를 이용하여 상기 아날로그 신호를 서버에 송신하도록 구성되고,
    상기 TCP 프로토콜 스택이 추가로,
    상기 복수의 패킷 중 제1 패킷이 손실된 것으로 확인한 다음, 상기 무선 모뎀 및 상기 안테나를 사용하여 상기 제1 패킷을 상기 서버에 재송신하고, 상기 제1 패킷이 재송신된 다음 수신된 확인 응답 패킷에 기초하여, 재송신된 패킷이 손실된 것으로 결정하고 - 상기 재송신된 패킷은 상기 재송신된 제1 패킷임 -,
    상기 제1 패킷을 상기 서버에 다시 재송신 하고, 송신 버퍼가 비어있는지 결정하고,
    상기 송신 버퍼가 비어 있는 경우, 상기 무선 모뎀 및 상기 안테나를 사용하여 제1 시간 간격 내에 적어도 한 번 상기 제1 패킷을 상기 서버에 송신하도록 구성되고,
    상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 사용자 장비는 상기 제1 시간 간격 내에 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신한 적이 없는, 사용자 장비.
  14. 제13항에 있어서,
    상기 TCP 프로토콜 스택이 추가로,
    상기 송신 버퍼가 비어있지 않은 경우, 상기 무선 모뎀 및 상기 안테나를 사용하여 상기 제1 시간 간격 내에 상기 송신 버퍼 내의 적어도 하나의 패킷을 상기 서버에 송신하도록 구성되고,
    상기 송신 버퍼 내의 패킷은 상기 사용자 장비에 의해 송신되지 않은 패킷인, 사용자 장비.
  15. 제13항 또는 제14항에 있어서,
    상기 TCP 프로토콜 스택은 구체적으로,
    상기 제1 패킷이 재송신된 다음 수신된 확인 응답 패킷에 포함된 확인 응답 필드 또는 확장 필드에 따라 상기 재송신된 패킷이 손실된 것으로 결정하도록 구성된, 사용자 장비.
  16. 사용자 장비(user equipment)로서,
    무선 모뎀, 프로세서, 안테나, 및 TCP 프로토콜 스택(TCP protocol stack)
    을 포함하고,
    상기 무선 모뎀은 상기 안테나에 연결되고,
    상기 TCP 프로토콜 스택은, 상기 프로세서의 제어 하에, 상기 사용자 장비에서 실행되는 애플리케이션 프로그램의 데이터를 복수의 패킷으로 캡슐화(encapsulate)하고, 상기 복수의 패킷을 상기 무선 모뎀에 송신하도록 구성되며,
    상기 무선 모뎀은 수신된 상기 패킷을 아날로그 신호로 변조하고, 상기 안테나를 이용하여 상기 아날로그 신호를 서버에 송신하도록 구성되고,
    상기 TCP 프로토콜 스택이 추가로,
    상기 복수의 패킷 중 제1 패킷이 손실된 것으로 확인한 다음, 상기 무선 모뎀 및 상기 안테나를 사용하여 상기 제1 패킷을 상기 서버에 재송신하고, 상기 제1 패킷이 재송신된 다음 수신된 확인 응답 패킷에 기초하여, 재송신된 패킷이 손실된 것으로 결정하고 - 상기 재송신된 패킷은 상기 재송신된 제1 패킷임 -,
    상기 제1 패킷을 상기 서버에 다시 재송신하고, 송신 버퍼가 비어있는지 또는 현재 혼잡 제어 정책이 신규 패킷의 송신을 허용하는지 결정하고,
    상기 송신 버퍼가 비어있거나 또는 상기 현재 혼잡 제어 정책이 상기 신규 패킷의 송신을 허용하지 않는 경우, 제1 시간 간격 내에 적어도 한 번 상기 제1 패킷을 상기 서버에 송신하도록 구성되고,
    상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 사용자 장비는 상기 제1 시간 간격 내에 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신한 적이 없는, 사용자 장비.
  17. 제16항에 있어서,
    상기 TCP 프로토콜 스택은 추가로,
    상기 송신 버퍼가 비어있지 않고, 상기 현재 혼잡 정책이 상기 신규 데이터 패킷의 송신을 허용하는 경우, 상기 무선 모뎀 및 상기 안테나를 사용하여 상기 제1 시간 간격 내에 상기 송신 버퍼 내의 적어도 하나의 패킷을 상기 서버에 송신하도록 구성되고,
    상기 송신 버퍼 내의 패킷은 상기 사용자 장비에 의해 송신되지 않은 패킷인, 사용자 장비.
  18. 사용자 장비(user equipment)로서,
    상기 사용자 장비 통신 연결된 수신 노드에 복수의 패킷을 송신하도록 구성된 송신 유닛;
    상기 수신 노드로부터 복수의 확인 응답 패킷(acknowledgement packet)을 수신하도록 구성된 수신 유닛; 및
    상기 수신 유닛이 수신한 복수의 확인 응답 패킷에 따라 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하고, 상기 제1 패킷을 상기 수신 노드에 재송신하도록 상기 송신 유닛을 트리거(trigger)하고, 상기 제1 패킷이 재송신된 다음 상기 수신 유닛에 의해 수신된 확인 응답 패킷에 따라 재송신된 패킷이 손실된 것으로 결정하도록 구성된 처리 유닛
    을 포함하고,
    상기 재송신된 패킷은 상기 재송신된 제1 패킷이고,
    상기 송신 유닛이 추가로, 상기 처리 유닛이 상기 재송신된 패킷이 손실된 것으로 결정한 다음, 제1 시간 간격 내에 적어도 두 번 상기 제1 패킷을 연속해서 송신하도록 구성되고,
    상기 제1 시간 간격은, 0보다 크거나 그와 같고 상기 송신 노드의 타임 아웃 타이머의 주기보다 짧은, 사용자 장비.
  19. 제18항에 있어서,
    상기 송신 유닛이 추가로,
    적어도 두 번 상기 제1 패킷을 연속해서 송신한 다음 상기 송신 유닛에 의해 송신되지 않은 제2 패킷을 송신하도록 구성된, 사용자 장비.
  20. 사용자 장비(user equipment)로서,
    상기 사용자 장비와 통신 연결된 수신 노드에 복수의 패킷을 송신하도록 구성된 송신 유닛;
    상기 수신 노드로부터 복수의 확인 응답 패킷(acknowledgement packet)을 수신하도록 구성된 수신 유닛; 및
    상기 수신 유닛이 수신한 복수의 확인 응답 패킷에 따라 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하고, 상기 제1 패킷을 상기 수신 노드에 재송신하도록 상기 송신 유닛을 트리거하고, 상기 제1 패킷이 재송신된 다음 상기 수신 유닛에 의해 수신된 확인 응답 패킷에 따라 재송신된 패킷이 손실된 것으로 결정하도록 구성된 처리 유닛
    을 포함하고,
    상기 재송신된 패킷은 상기 재송신된 제1 패킷이고,
    상기 송신 유닛이 추가로,
    상기 처리 유닛이 상기 재송신된 패킷이 손실된 것으로 결정한 다음, 상기 제1 패킷을 다시 재송신하고, 송신 버퍼가 비어있는지 결정하고,
    상기 송신 버퍼가 비어있는 경우 제1 시간 간격에 적어도 한 번 상기 제1 패킷을 송신하도록 구성되고,
    상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 수신 유닛은, 상기 제1 시간 간격 내에 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신한 적이 없는, 사용자 장비.
  21. 제20항에 있어서,
    상기 송신 유닛이 추가로,
    상기 송신 버퍼가 비어있지 않은 경우, 상기 제1 시간 간격 내에 상기 송신 버퍼 내의 적어도 하나의 패킷을 송신하도록 구성되고,
    상기 송신 버퍼 내의 패킷은 상기 송신 유닛에 의해 송신되지 않은 패킷인, 사용자 장비.
  22. 사용자 장비(User equipment)로서,
    상기 사용자 장비와 통신 연결된 수신 노드에 복수의 패킷을 송신하도록 구성된 송신 유닛;
    상기 수신 노드로부터 복수의 확인 응답 패킷(acknowledgement packet)을 수신하도록 구성된 수신 유닛; 및
    상기 수신 유닛이 수신한 복수의 확인 응답 패킷에 따라 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하고, 상기 제1 패킷을 상기 수신 노드에 재송신하도록 상기 송신 유닛을 트리거하고, 상기 제1 패킷이 재송신된 다음 상기 수신 유닛에 의해 수신된 확인 응답 패킷에 따라, 상기 재송신된 패킷이 손실된 것으로 결정하도록 구성된 처리 유닛
    을 포함하고,
    상기 재송신된 패킷은 상기 재송신된 제1 패킷이고,
    상기 송신 유닛이 추가로,
    상기 처리 유닛이 상기 재송신된 패킷이 손실된 것으로 결정한 다음, 상기 제1 패킷을 다시 재송신하고, 송신 버퍼가 비어있는지 또는 현재 혼잡 제어 정책이 신규 패킷의 송신을 허용하는지 결정하고,
    상기 송신 버퍼가 비어있거나 또는 상기 현재 혼잡 제어 정책이 상기 신규 패킷의 송신을 허용하지 않는 경우, 제1 시간 간격 내에 상기 제1 패킷을 적어도 한 번 송신하도록 구성되고,
    상기 제1 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 수신 유닛은 상기 제1 시간 간격 내에 상기 다시 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신한 적이 없는, 사용자 장비.
  23. 제22항에 있어서,
    상기 송신 유닛이 추가로,
    상기 송신 버퍼가 비어있지 않고 상기 현재 혼잡 제어 정책이 상기 신규 패킷의 송신을 허용하는 경우, 상기 제1 시간 간격 내에 상기 송신 버퍼 내의 적어도 하나의 패킷을 송신하도록 구성되고,
    상기 송신 버퍼 내의 패킷은 상기 송신 유닛에 의해 송신되지 않은 패킷인, 사용자 장비.
  24. 패킷 전송 방법(packet transmission method)으로서,
    송신 노드가, 상기 송신 노드와 수신 노드 사이의 통신 링크를 사용하여 복수의 패킷을 상기 수신 노드에 송신하는 단계;
    상기 송신 노드가, 상기 수신 노드로부터 복수의 확인 응답 패킷(acknowledgement packet)을 수신하는 단계;
    상기 송신 노드가, 상기 수신된 복수의 확인 응답 패킷에 기초하여 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하는 단계; 및
    상기 송신 노드가, 상기 제1 패킷을 상기 수신 노드에 재송신하고 제2 시간 간격 내에 적어도 한 번 상기 제1 패킷을 송신하는 단계
    를 포함하고,
    상기 제2 시간 간격은, 0보다 크거나 그와 같고 상기 제1 패킷의 타임 아웃 타이머의 주기보다 짧고, 상기 송신 노드는 상기 제2 시간 간격 내에 상기 재송신된 제1 패킷이 손실된 것을 지시하는데 사용되는 확인 응답 패킷을 수신한 적이 없는, 패킷 전송 방법.
  25. 패킷 전송 방법(packet transmission method)으로서,
    송신 노드가, 상기 송신 노드와 수신 노드 사이의 통신 링크를 사용하여 복수의 패킷을 상기 수신 노드에 송신하는 단계;
    상기 송신 노드가, 상기 수신 노드로부터 복수의 확인 응답 패킷(acknowledgement packet)을 수신하는 단계;
    상기 송신 노드가, 상기 수신된 복수의 확인 응답 패킷에 기초하여 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하는 단계; 및
    상기 송신 노드가, 상기 제1 패킷을 상기 수신 노드에 재송신하고, 상기 송신 버퍼가 비어있는지 결정하고, 상기 송신 버퍼가 비어있는 경우, 상기 송신 노드가, 제2 시간 간격 내에 적어도 한 번 상기 제1 패킷을 송신하는 단계
    를 포함하고,
    상기 제2 시간 간격은, 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 송신 노드는 상기 재송신된 제1 패킷이 손실되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 상기 제2 시간 간격 내에 수신한 적이 없는,
    패킷 전송 방법.
  26. 제25항에 있어서,
    상기 송신 노드가, 상기 송신 버퍼가 비어있지 않은 경우, 제1 시간 간격 내에 상기 송신 버퍼 내의 적어도 하나의 패킷을 송신하고,
    상기 송신 버퍼 내의 패킷은 상기 송신 노드에 의해 송신되지 않은 패킷인, 패킷 전송 방법.
  27. 패킷 전송 방법(packet transmission method)으로서,
    송신 노드가, 상기 송신 노드와 수신 노드 사이의 통신 링크를 사용하여 복수의 패킷을 상기 수신 노드에 송신하는 단계;
    상기 송신 노드가, 상기 수신 노드로부터 복수의 확인 응답 패킷(acknowledgement packet)을 수신하는 단계;
    상기 송신 노드가, 상기 수신된 복수의 확인 응답 패킷에 기초하여 상기 복수의 패킷 중 제1 패킷이 손실된 것으로 결정하는 단계;
    상기 송신 노드가, 상기 제1 패킷을 상기 수신 노드에 재송신하고, 송신 버퍼가 비었는지 또는 현재 혼잡 제어 정책이 신규 패킷의 송신을 허용하는지 결정하는 단계; 및
    상기 송신 노드가, 상기 송신 버퍼가 비어있거나 또는 상기 현재 혼잡 제어 정책이 상기 신규 패킷의 송신을 허용하지 않는 경우, 제2 시간 간격 내에 적어도 한 번 상기 제1 패킷을 송신하는 단계
    를 포함하고,
    상기 제2 시간 간격이 0보다 크거나 그와 같고, 상기 제1 패킷의 타임 아웃 타이머(timeout timer)의 주기보다 짧고, 상기 송신 노드는, 상기 제2 시간 간격 내에 상기 재송신된 제1 패킷이 송신되었다는 것을 지시하는 데 사용되는 확인 응답 패킷을 수신한 적이 없는, 패킷 전송 방법.
KR1020187008310A 2015-09-21 2016-09-20 패킷 전송 방법 및 사용자 장비 KR102136563B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510605226.9 2015-09-21
CN201510605226.9A CN106656431B (zh) 2015-09-21 2015-09-21 一种报文传输方法及用户设备
PCT/CN2016/099480 WO2017050216A1 (zh) 2015-09-21 2016-09-20 一种报文传输方法及用户设备

Publications (2)

Publication Number Publication Date
KR20180048760A true KR20180048760A (ko) 2018-05-10
KR102136563B1 KR102136563B1 (ko) 2020-07-22

Family

ID=58385688

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187008310A KR102136563B1 (ko) 2015-09-21 2016-09-20 패킷 전송 방법 및 사용자 장비

Country Status (9)

Country Link
US (2) US10601554B2 (ko)
EP (2) EP3337072B1 (ko)
JP (1) JP6522855B2 (ko)
KR (1) KR102136563B1 (ko)
CN (1) CN106656431B (ko)
BR (1) BR112018005373A2 (ko)
CA (1) CA2997637C (ko)
RU (1) RU2691240C1 (ko)
WO (1) WO2017050216A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020179993A1 (en) * 2019-03-07 2020-09-10 Samsung Electronics Co., Ltd. Apparatus and method for transmitting and receiving data in wireless communication system

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108270682B (zh) * 2016-12-30 2022-06-24 华为技术有限公司 一种报文传输方法、终端、网络设备及通信系统
CN106788916B (zh) * 2016-12-30 2021-08-27 深圳市优必选科技股份有限公司 用于总线的数据传输方法及数据传输装置
CN109981385B (zh) * 2017-12-27 2022-10-28 华为技术有限公司 一种实现丢包检测的方法、装置和系统
EP3900299A4 (en) 2019-02-05 2022-07-27 Casa Systems, Inc. METHOD AND DEVICE FOR RECOVERING NETWORK ASSOCIATION INFORMATION
CN115396077A (zh) * 2019-03-25 2022-11-25 华为技术有限公司 一种数据传输方法及装置
CN111830913A (zh) * 2019-04-22 2020-10-27 北京国电智深控制技术有限公司 一种数据获取方法及装置
CN112019306B (zh) * 2019-05-28 2022-02-18 上海华为技术有限公司 一种数据重传方法以及装置
CN110233856B (zh) * 2019-06-28 2022-04-05 北京云中融信网络科技有限公司 报文处理方法、装置及计算机可读存储介质
CN112311725B (zh) * 2019-07-26 2022-01-11 华为技术有限公司 一种数据处理方法、装置及终端
KR20210019307A (ko) * 2019-08-12 2021-02-22 삼성전자주식회사 상태 보고를 이용하여 신호 재전송을 수행하는 무선 통신 장치 및 이를 포함하는 무선 통신 시스템의 동작 방법
CN112737737B (zh) * 2019-10-28 2022-10-11 华为技术有限公司 一种确认报文的处理方法和通信装置以及存储介质
CN113765626B (zh) * 2020-06-01 2022-11-11 大唐移动通信设备有限公司 一种移动通信系统的数据传输方法和装置
CN111953555A (zh) * 2020-06-29 2020-11-17 联想(北京)有限公司 一种链路检测方法、cpe及存储介质
WO2022056791A1 (zh) * 2020-09-17 2022-03-24 华为技术有限公司 一种报文重传方法和装置
CN112087361A (zh) * 2020-09-17 2020-12-15 宏图智能物流股份有限公司 一种可实现不同仓库网络平台对接的方法
CN113645015A (zh) * 2021-10-13 2021-11-12 徐州工程学院 一种被动重发的可靠传输方法
CN114442598B (zh) * 2022-02-09 2023-12-12 一汽解放汽车有限公司 诊断冲突协调方法、装置、计算机设备和存储介质
CN115941128A (zh) * 2022-11-07 2023-04-07 天津津航计算技术研究所 一种基于QCache的报文协议超时重发管理方法
CN117692396B (zh) * 2024-02-04 2024-04-26 湖南国科亿存信息科技有限公司 一种复杂网络环境下的tcp单边加速方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1220486A2 (en) * 2000-10-27 2002-07-03 Tsinghua University A scheme for retransmission of lost packet in fading channels
US20040148422A1 (en) * 2002-12-04 2004-07-29 Kenji Ikedo Communication control method, communication system, and communication apparatus that can improve throughput
WO2015094069A1 (en) * 2013-12-20 2015-06-25 Telefonaktiebolaget L M Ericsson (Publ) High-reliability transmission scheme with low resource utilization

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7607062B2 (en) 2002-03-25 2009-10-20 Akamai Technologies, Inc. System for fast recovery from losses for reliable data communication protocols
WO2005006664A1 (ja) * 2003-07-11 2005-01-20 Nec Corporation トランスポート層中継方法及びトランスポート層中継装置並びにプログラム
JP3871661B2 (ja) * 2003-07-25 2007-01-24 株式会社東芝 マルチメディアコンテンツ受信装置及びマルチメディアコンテンツ受信方法
JP2007060345A (ja) * 2005-08-25 2007-03-08 Kazunori Nakamura ネットワークシステム
CN101296161A (zh) * 2007-04-26 2008-10-29 华为技术有限公司 一种数据重传的方法、系统、装置、接收设备及发送设备
CN101631065B (zh) * 2008-07-16 2012-04-18 华为技术有限公司 一种无线多跳网络拥塞的控制方法和装置
JP5014281B2 (ja) * 2008-07-30 2012-08-29 パナソニック株式会社 Tcp送信制御装置及びtcp送信制御方法
CN101753275A (zh) 2008-12-15 2010-06-23 华为技术有限公司 重传视频报文的方法、装置及系统
JP5387058B2 (ja) * 2009-03-04 2014-01-15 日本電気株式会社 送信装置、送信レート算出方法及び送信レート算出プログラム
US8611354B2 (en) 2009-06-29 2013-12-17 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for relaying packets
US8804513B2 (en) * 2010-02-25 2014-08-12 The Trustees Of Columbia University In The City Of New York Methods and systems for controlling SIP overload
CN102480346B (zh) * 2010-11-26 2014-12-10 中国科学院声学研究所 一种网络数据可靠传输方法
CN102075436B (zh) * 2011-02-10 2014-09-17 华为数字技术(成都)有限公司 以太网络及其数据传输方法和装置
US9503223B2 (en) * 2011-03-04 2016-11-22 Blackberry Limited Controlling network device behavior
CN103220091A (zh) * 2012-01-20 2013-07-24 华为技术有限公司 数据传输的方法及装置
JP5942706B2 (ja) * 2012-08-29 2016-06-29 富士通株式会社 監視装置,監視プログラム,監視方法
US9496971B2 (en) * 2012-12-10 2016-11-15 Qualcomm Incorporated Techniques for determining actual and/or near states of proximity between mobile devices
CN103986548B (zh) 2013-02-07 2018-02-23 华为技术有限公司 一种确定丢包原因的方法和终端
JP6094357B2 (ja) * 2013-04-22 2017-03-15 富士通株式会社 通信方法、通信システム、及び通信装置
CN103401666A (zh) * 2013-06-29 2013-11-20 华为技术有限公司 数据重传方法和装置
US9240939B2 (en) * 2013-10-22 2016-01-19 Cisco Technology, Inc. Detecting packet loss and retransmission in a network environment
CN104660573A (zh) * 2013-11-25 2015-05-27 上海益尚信息科技有限公司 一种用于sctp协议的低信息交互的多基站置
JP2016058909A (ja) * 2014-09-10 2016-04-21 沖電気工業株式会社 通信システム、通信装置、通信方法及び通信プログラム
US20160226628A1 (en) * 2015-01-30 2016-08-04 Huawei Technologies Co., Ltd. System and method for data retransmission
CN110730105B (zh) * 2015-05-29 2021-09-28 腾讯科技(深圳)有限公司 图片数据传输方法、装置、设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1220486A2 (en) * 2000-10-27 2002-07-03 Tsinghua University A scheme for retransmission of lost packet in fading channels
US20040148422A1 (en) * 2002-12-04 2004-07-29 Kenji Ikedo Communication control method, communication system, and communication apparatus that can improve throughput
WO2015094069A1 (en) * 2013-12-20 2015-06-25 Telefonaktiebolaget L M Ericsson (Publ) High-reliability transmission scheme with low resource utilization

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020179993A1 (en) * 2019-03-07 2020-09-10 Samsung Electronics Co., Ltd. Apparatus and method for transmitting and receiving data in wireless communication system
US11153779B2 (en) 2019-03-07 2021-10-19 Samsung Electronics Co., Ltd. Apparatus and method for transmitting and receiving data based on an identified event in wireless communication system

Also Published As

Publication number Publication date
JP2018535582A (ja) 2018-11-29
US11153041B2 (en) 2021-10-19
KR102136563B1 (ko) 2020-07-22
EP3780449A1 (en) 2021-02-17
CN106656431A (zh) 2017-05-10
BR112018005373A2 (pt) 2018-10-09
CA2997637A1 (en) 2017-03-30
US20180212721A1 (en) 2018-07-26
US10601554B2 (en) 2020-03-24
EP3337072A1 (en) 2018-06-20
EP3337072B1 (en) 2020-07-22
RU2691240C1 (ru) 2019-06-11
JP6522855B2 (ja) 2019-05-29
US20200195390A1 (en) 2020-06-18
CN106656431B (zh) 2020-09-29
EP3337072A4 (en) 2018-08-15
CA2997637C (en) 2021-01-26
WO2017050216A1 (zh) 2017-03-30

Similar Documents

Publication Publication Date Title
US11153041B2 (en) Packet transmission method and user equipment
US10924421B2 (en) Packet transmission method, terminal, network device, and communications system
US11272420B2 (en) Method and apparatus for transmitting data packets using dual sequence numbers
JP6924830B2 (ja) パケット送信方法および装置、チップ、ならびに端末
KR102300300B1 (ko) 헤더 압축을 이용한 패킷 통신 방법 및 장치
US10524175B2 (en) Data transmission method and network device
US20190174356A1 (en) Data transmission method, data receiving device, and data sending device
JP4384676B2 (ja) データ通信装置の制御方法
JP2006101339A (ja) データ通信装置

Legal Events

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