KR20200116985A - 패킷 전송 방법 및 관련 장치 - Google Patents

패킷 전송 방법 및 관련 장치 Download PDF

Info

Publication number
KR20200116985A
KR20200116985A KR1020207025498A KR20207025498A KR20200116985A KR 20200116985 A KR20200116985 A KR 20200116985A KR 1020207025498 A KR1020207025498 A KR 1020207025498A KR 20207025498 A KR20207025498 A KR 20207025498A KR 20200116985 A KR20200116985 A KR 20200116985A
Authority
KR
South Korea
Prior art keywords
packet
small
transmitter
small packet
transmitted
Prior art date
Application number
KR1020207025498A
Other languages
English (en)
Other versions
KR102476192B1 (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 KR20200116985A publication Critical patent/KR20200116985A/ko
Application granted granted Critical
Publication of KR102476192B1 publication Critical patent/KR102476192B1/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/1825Adaptation of specific ARQ protocol parameters according to transmission conditions
    • 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/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • 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/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
    • 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/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • 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/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • 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/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • 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/20Traffic policing
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

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)

Abstract

본 출원의 실시예는 패킷 전송 방법 및 관련 장치를 개시한다. 방법은: 전송기가 상기 다중 경로 연결이 제1 조건을 충족하는 것으로 결정하는 단계 - 상기 제1 조건은 상기 다중 경로 연결에 사용되는 소형 패킷 전송 제어 정책을 비활성화하는 데 사용되고, 상기 소형 패킷 전송 제어 정책은 상기 전송기가 상기 다중 경로 연결을 사용하여 소형 패킷을 전송하는 시간 간격을 제어하는 데 사용되며, 상기 소형 패킷에 포함된 데이터 길이는 최대 패킷 길이(maximum packet length, MSS)보다 작음 - ; 상기 전송기가 상기 소형 패킷 전송 제어 정책을 비활성화하는 단계; 및 상기 전송기가 상기 소형 패킷 전송 제어 정책을 비활성화한 후 중복 전송 모드에서 다중 경로 연결의 복수의 경로를 통해 복수의 소형 패킷을 전송하는 단계 - 상기 복수의 소형 패킷은 동일한 데이터를 운송하는 소형 패킷을 포함함 - 를 포함한다. 본 출원의 실시예에 따르면 데이터 전송 효율이 향상된다.

Description

패킷 전송 방법 및 관련 장치
본 출원은 통신 분야에 관한 것이며, 특히 패킷 전송 방법 및 관련 장치에 관한 것이다.
현재 다중 경로 전송 기술에서는 복수의 경로에서 병렬 전송을 통해 처리량을 높이거나 복수의 경로를 사용하여 서비스 연속성 및 신뢰성을 구현하고 있다. 예를 들어, 일반적인 다중 경로 전송 기술은 다중 경로 전송 제어 프로토콜(Multiple Path Transmission Control Protocol, MPTCP)이다. 다중 경로 전송 기술은 하나의 연결에서 다중 경로 전송을 지원할 수 있는데, 구체적으로는 단일 경로의 데이터가 분산되어 서로 다른 서브플로우에서 개별적으로 전송된다. 이러한 방식으로, 연결에서 두 주소 사이에 복수의 경로가 있으므로 주소에 도달할 수 없는 위험이 줄어들고 전송 경로를 늘리거나 변경하는 과정에서 연결이 중단되지 않는다. 또한, 다중 경로 전송에 중복 스케줄링 정책을 도입하여 구체적으로 TCP 데이터 전송 큐의 미확인 패킷을 복수의 서브플로우로 반복하여 전송함으로써 애플리케이션 계층에서 데이터 전송의 신뢰성을 높이고 서비스 계층에서 데이터 전송의 지연 및 지터를 제거하고 서비스 계층에서 데이터의 패킷 손실 비율을 줄인다. 예를 들어, 복수의 서브플로우는 WiFi 네트워크 및 셀룰러 네트워크를 포함할 수 있으며, 셀룰러 네트워크는 5G 네트워크, 롱텀에볼루션(Long Term Evolution, LTE) 네트워크과 같은 4G 네트워크, 코드 분할 다중 액세스(Code Division Multiple Access, CDMA) 네트워크와 같은 3G 네트워크, 2G 네트워크 등이 될 수 있다.
그렇지만, 전송된 패킷의 부하를 증가시키기 위해 소형 패킷 전송 제어 정책이 가능하다. 소형 패킷 전송 제어 정책에서 전송기가 소형 패킷을 보냈지만 확인되지 않는 경우 전송기는 소형 패킷을 계속 보낼 수 없다. 중복 스케줄링 정책을 사용하여 다중 경로 연결의 복수의 서브플로우에서 소형 패킷을 반복적으로 전송하려고 시도하는 경우, 소형 패킷 전송으로 인해 동일한 데이터를 운송하는 복수의 소형 패킷을 제시간에 복수의 경로를 통해 전송할 수 없다. 그러나 소형 패킷에 대응하는 ACK 패킷이 반환된 후에도 소형 패킷은 계속 전송된다. 결과적으로 데이터 전송 효율성이 영향을 받는다.
본 출원의 실시예는 데이터 전송 효율성을 향상시키기 위한 패킷 전송 방법 및 관련 장치를 제공한다.
제1 관점에 따라, 본 출원의 실시예는 다중 경로 연결의 전송기에 적용되는 패킷 전송 방법이 제공되며, 상기 패킷 전송 방법은: 상기 전송기가 상기 다중 경로 연결이 제1 조건을 충족하는 것으로 결정하는 단계 - 상기 제1 조건은 상기 다중 경로 연결에 사용되는 소형 패킷 전송 제어 정책을 비활성화하는 데 사용되고, 상기 소형 패킷 전송 제어 정책은 상기 전송기가 상기 다중 경로 연결을 사용하여 소형 패킷을 전송하는 시간 간격을 제어하는 데 사용되며, 상기 소형 패킷에 포함된 데이터 길이는 최대 패킷 길이(maximum packet length, MSS)보다 작음 - ; 상기 전송기가 상기 소형 패킷 전송 제어 정책을 비활성화하는 단계; 및 상기 전송기가 상기 소형 패킷 전송 제어 정책을 비활성화한 후 중복 전송 모드에서 다중 경로 연결의 복수의 경로를 통해 복수의 소형 패킷을 전송하는 단계 - 상기 복수의 소형 패킷은 동일한 데이터를 운송하는 소형 패킷을 포함함 - 를 포함한다. 이 방식에서, 프로토콜 스택이 소형 패킷 전송 제어 정책을 활성화하고 중복 전송 모드로 데이터를 전송해야 하는 경우, 조건이 충족되면 추가된 결정 메커니즘을 사용하여 소형 패킷 전송 제어 정책을 적응적으로 비활성화할 수 있으며, 프로토콜 스택에 있고 소형 패킷 전송 제어 정책을 활성화하기 위한 디폴트 설정을 수정할 필요가 없다. 소형 패킷 전송 제어 정책이 비활성화된 후, 동일한 데이터를 운송하는 복수의 소형 패킷이 중복 전송 모드에서 복수의 경로를 통해 전송되어 데이터 전송 효율을 향상시킨다.
상기 제1 조건은 다음: 상기 전송기가 중복 스케줄링 정책을 구성하였고, 다중 경로 연결의 스케줄링 정책이 중복 스케줄링 정책이고, 상기 다중 경로 연결의 수신기가 중복 스케줄링 정책을 구성하였고, 상기 소형 패킷은 중복 스케줄링 정책을 사용하여 전송된 패킷이고, 상기 소형 패킷은 상기 다중 경로 연결의 한 경로를 통해 전송된 후 다른 경로를 통해 반복적으로 전송되어야 하며, 상기 전송기는 현재 상기 다중 경로 연결의 복수 경로를 통해 패킷을 전송하는 것 중 적어도 하나를 포함하며, 상기 중복 스케줄링 정책은 상기 전송기에 상기 중복 전송 모드에서 데이터를 전송하도록 명령하는 데 사용된다.
전송기가 다중 경로 연결의 한 경로에서 소형 패킷을 전송한 후, 소형 패킷이 전송 과정에서 손실되거나 전송에 실패하면 동일한 데이터를 운송하는 소형 패킷이 전송되어야 함을 이해해야 한다. 중복 전송 모드에서 다중 경로 연결의 다른 경로에서 재전송된다. 이 경우 소형 패킷 전송 제어 정책도 비활성화해야 하며, 소형 패킷 전송 제어 정책이 비활성화된 후 중복 전송 모드에서 다른 경로로 소형 패킷이 재전송된다.
가능한 설계에서, 전송 프로세스에서 소형 패킷이 손실되거나 전송되지 않는 것을 결정하는 방법은 적어도 다음을 포함한다: 전송기가 미리 설정된 기간 내에 수신하지 못한 경우, 다중 경로 연결의 한 경로에서 소형 패킷을 전송한 후 소형 패킷에 대응하는 확인 패킷을 수신하지 못하면, 전송기는 소형 패킷이 손실되었거나 전송에 실패했다고 결정할 수 있거나; 또는 다중 경로 연결의 한 경로에서 소형 패킷을 전송한 후, 전송기는 다중 경로 연결에서 소형 패킷이 전송되지 않는 적어도 하나의 경로에서 대형 패킷을 전송하고, 전송기가 대형 패킷에 대응하는 확인 패킷을 수신하기 전에 소형 패킷에 대응하는 확인 패킷을 수신하지 못하면, 전송기는 소형 패킷이 손실되었거나 전송에 실패했다고 결정할 수 있다.
소형 패킷의 데이터는 TCP 프로토콜 위에 있는 프로토콜의 헤더, 예를 들어 원격 프로 시저 호출 프로토콜(Remote Procedure Call Protocol, RPC)의 헤더 또는 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol, HTTP)의 헤더가 포함하지만, TCP 헤더 또는 하위 계층에 있는 헤더, 예를 들어 제어 메시지 프로토콜(Internet Control Message Protocol, ICMP)을 포함하지 않는다. 따라서 소형 패킷에 포함된 데이터의 길이는 유효한 데이터 길이와 TCP 프로토콜 위의 프로토콜 헤더 길이의 합이 된다. 유효한 데이터의 길이와 TCP 프로토콜 위의 프로토콜 헤더 길이의 합이 MSS의 최대 패킷 길이보다 작을 경우, 소형 패킷 전송 제어 정책이 적용되며, 다중 경로 연결에 사용되는 패킷 전송 제어 정책이 비활성화되는지를 판정될 필요가 있다.
가능한 설계에서, 소형 패킷을 수신기에 전송한 후, 전송기는 소형 패킷에 대응하는 반환된 ACK 패킷을 수신하기 전에 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송할 수 없다.
다른 가능한 설계에서, 전송기는 타이밍 시간을 미리 설정할 수 있으며, 소형 패킷을 수신기에 전송한 후, 전송기는 미리 설정된 타이밍 시간에 도달하기 전에 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송할 수 없다.
다른 가능한 설계에서, 전송기는 전송 차단 조건을 시작할 수 있고 전송 차단 조건은 소형 패킷을 전송한 후 전송기가 소형 패킷에 대응하는 반환된 ACK 패킷을 수신하기 전에 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송할 수 없음을 나타내는 데 사용된다. 일정 시간이 지난 후 소형 패킷이 대형 패킷에 결합되면 전송기는 그 결합된 대형 패킷을 수신기에 보낼 수 있다.
전술한 3가지 방식에서, 전송기가 다중 경로 연결을 사용하여 소형 패킷을 전송하는 시간 간격을 제어하여 소형 패킷 전송 제어 정책을 구현하고 전송 패킷의 부하를 증가시킬 수 있다.
가능한 설계에서, 전송기는 소형 패킷 전송 제어 정책의 실행을 중지한다. 예를 들어, 전송기는 제어 로직을 실행할 때 소형 패킷 전송 제어 정책에 대응하는 제어 로직을 건너뛰거나, 조건이 충족되었다고 판단한 후 직접 소형 패킷 전송 제어 정책에 대응하는 제어 로직을 비활성화한다.
다른 가능한 설계에서, 전송기의 제1 소형 패킷에 대응하는 시퀀스 번호가 제1 ACK 패킷의 시퀀스 번호보다 작거나 같도록 전송기는 전송기의 제1 소형 패킷에 대응하는 시퀀스 번호를 수정하거나 전송기가 수신한 제1 ACK 패킷의 시퀀스 번호를 수정하며, 제1 소형 패킷은 현재 순간 이전에 전송기가 보낸 마지막 소형 패킷이고, 전송기는 제1 소형 패킷에 대응하는 ACK 패킷을 수신하지 않으며, 제1 ACK 패킷은 현재 순간 이전에 전송기가 수신한 시퀀스 번호가 가장 큰 ACK 패킷이다.
또 다른 가능한 설계에서, 전송기는 전송기에 저장된 미확인 소형 패킷의 수량을 0으로 수정하고, 여기서 미확인 소형 패킷의 수량은 전송기에 의해 전송되었지만 대응하는 ACK 패킷이 수신되지 않은 소형 패킷의 수량을 나타내는 데 사용된다.
다른 가능한 설계에서, 전송기는 타이머를 사용하여 전송기가 다중 경로 연결을 사용하여 소형 패킷을 전송하는 시간 간격을 제어하고, 타이머가 미리 설정된 시간에 미리 도달하도록 전송기는 다중 경로 연결을 사용하여 제1 소형 패킷을 전송한 후 타이머를 수정하며, 여기서 제1 소형 패킷은 현재 순간 이전에 전송기가 보낸 마지막 소형 패킷이다.
전술한 4가지 방식에서, 프로토콜 스택이 소형 패킷 전송 제어 정책을 활성화하고 중복 전송 모드에서 데이터를 전송해야 하는 경우, 소형 패킷 전송 제어 정책이 비활성화될 수 있으며 제1 소형 패킷에 대응하는 ACK 패킷이 반환된 후 소형 패킷을 계속 전송할 필요가 없으므로, 데이터 전송 효율을 향상시킨다.
가능한 설계에서, 전송기는 제어 로직을 실행할 때 소형 패킷 전송 제어 정책에 대응하는 제어 로직을 건너뛰거나 조건이 충족된 것으로 결정한 후 소형 패킷 전송 제어 정책에 대응하는 제어 로직을 비활성화하기 때문에, 전송기는 중복 전송 모드에서 다중 경로 연결의 복수의 경로를 통해 복수의 소형 패킷을 전송할 수 있다.
다른 가능한 설계에서, 전송기가 전송기의 제1 소형 패킷에 대응하는 시퀀스 번호를 수정하거나 전송기가 수신한 제1 ACK 패킷의 시퀀스 번호를 수정한 후, 전송기의 제1 소형 패킷에 대응하는 시퀀스 번호는 제1 ACK 패킷의 시퀀스 번호보다 작거나 같으며, 이는 전송기가 모든 소형 패킷에 대응하는 ACK 패킷을 수신했음을 나타낼 수 있다. 이 방식으로 전송기는 소형 패킷 전송 제어 정책을 비활성화하기 위해 제1 소형 패킷에 대응하는 ACK 패킷이 반환된 후 소형 패킷을 전송하기 위해 기다릴 필요가 없다. 따라서, 전송기는 다중 경로 연결의 복수의 경로 중에서 제1 소형 패킷이 전송되지 않는 적어도 하나의 경로를 통해 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 보낼 수 있다. 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송한 후, 전송기는 전송기의 제1 소형 패킷에 대응하는 시퀀스 번호를 수정하거나 전송기가 수신한 제1 ACK 패킷의 시퀀스 번호를 다시 수정할 수 있다. 전송기가 모든 소형 패킷에 대응하는 ACK 패킷을 수신했음을 나타낸다. 이러한 방식으로, 전송기는 소형 패킷에 대응하는 ACK 패킷이 반환된 후 소형 패킷을 전송하기 위해 대기할 필요가 없어 소형 패킷 전송 제어 정책을 비활성화하고 중복 전송 모드에서 다중 경로 연결의 복수의 경로를 통해 제2 소형 패킷을 전송할 수 있다.
다른 가능한 설계에서, 전송기가 전송기에 저장된 미확인 소형 패킷의 수량을 0으로 수정하기 때문에 소형 패킷 전송 제어 정책을 비활성화하기 위해 전송기는 미확인 소형 패킷에 대응하는 ACK 패킷이 반환된 후 소형 패킷을 전송하기 위해 기다릴 필요가 없을 수 있다. 그런 다음, 전송기는 다중 경로 연결의 복수의 경로 중에서 제1 소형 패킷이 전송되지 않는 다른 경로를 통해 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 보낼 수 있다. 다음으로, 전송기는 미확인 소형 패킷의 수량을 0으로 수정하고, 다중 경로 연결의 복수 경로 중에서 제1 소형 패킷이 전송되지 않는 또 다른 경로를 통해 제1 소형 패킷과 동일한 소형 패킷을 운송하는 소형 패킷을 전송할 수 있다. 비유하자면, 소형 패킷이 전송될 때마다 확인되지 않은 소형 패킷의 수량은 항상 0이거나 확인되지 않은 소형 패킷의 수량이 0으로 수정되어 수신기가 다른 소형 패킷을 적시에 보낼 수 있다.
다른 가능한 설계에서, 다중 경로 연결을 사용하여 제1 소형 패킷을 전송한 후, 전송기는 타이머를 수정하여 타이머가 미리 설정된 시간에 도달하도록 한다. 따라서 전송기가 제1 소형 패킷에 대응하는 ACK 패킷을 수신하기 전에 타이머가 미리 설정된 미리 시간에 도달하면 제1 소형 패킷에 대응하는 ACK 패킷을 수신하기 전에 다중 경로 연결의 복수의 경로 중에서 제1 소형 패킷이 전송되지 않는 경로를 통해 중복 전송 모드에서 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 보낼 수 있다. 또한, 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송한 후 타이머가 미리 설정된 시간에 도달할 수 있도록 전송기는 타이머를 수정하고 타이머가 미리 설정된 시간에 다시 도달할 때 다중 경로 연결 경로를 통해 제2 소형 패킷을 보낼 수 있다.
전술한 4가지 경우에서, 소형 패킷 전송 제어 정책이 비활성화되었기 때문에 전송기는 중복 전송 모드에서 복수의 경로를 통해 동일한 데이터를 운송하는 복수의 소형 패킷을 전송하여 전송 효율을 향상시킬 수 있다.
타이머가 미리 설정된 시간에 미리 도달하면, 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷이 다중 경로 연결의 복수 경로 중에서 제1 소형 패킷이 전송되지 않는 경로를 통해 즉시 전송될 수 있음을 이해해야 한다. 대안으로, 코드 실행 프로세스에 지연이 있거나, 또는 일부 기존 패킷 전송 절차에서 전송 관련 준비 단계(예를 들어, 패킷 캡슐화 및 패킷을 하드웨어, 예를 들어 네트워크 인터페이스 카드로 전송하기)가 수행되어야 한다. 따라서 타이머가 미리 설정된 시간에 미리 도달하면 타이머가 일정 시간 지연되고, 그런 다음 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷이 다중 경로 연결의 복수의 경로 중에서 제1 소형 패킷이 전송되지 않는 경로를 통해 전송된다.
제2 관점에 따라, 본 출원의 실시예는 패킷 전송 장치를 제공하며, 상기 패킷 전송 장치는 다중 경로 연결의 전송기이며, 상기 패킷 전송 장치는: 상기 다중 경로 연결이 제1 조건을 충족하는 것으로 결정하도록 구성되어 있는 결정 모듈 - 상기 제1 조건은 상기 다중 경로 연결에 사용되는 소형 패킷 전송 제어 정책을 비활성화하는 데 사용되고, 상기 소형 패킷 전송 제어 정책은 상기 전송기가 상기 다중 경로 연결을 사용하여 소형 패킷을 전송하는 시간 간격을 제어하는 데 사용되며, 상기 소형 패킷에 포함된 데이터 길이는 최대 패킷 길이(maximum packet length, MSS)보다 작음 - ; 상기 소형 패킷 전송 제어 정책을 비활성화하도록 구성되어 있는 프로세싱 모듈; 및 상기 소형 패킷 전송 제어 정책을 비활성화한 후 중복 전송 모드에서 다중 경로 연결의 복수의 경로를 통해 복수의 소형 패킷을 전송하도록 구성되어 있는 전송 모듈 - 상기 복수의 소형 패킷은 동일한 데이터를 운송하는 소형 패킷을 포함함 - 을 포함한다. 이 방식에서, 프로토콜 스택이 소형 패킷 전송 제어 정책을 활성화하고 중복 전송 모드로 데이터를 전송해야 하는 경우, 조건이 충족되면 추가된 결정 메커니즘을 사용하여 소형 패킷 전송 제어 정책을 적응적으로 비활성화할 수 있으며, 프로토콜 스택에 있고 중복 전송이 수행될 필요가 없는 모드에서 소형 패킷 전송 제어 정책을 활성화하기 위한 디폴트 설정을 수정할 필요가 없다. 소형 패킷 전송 제어 정책이 비활성화된 후, 동일한 데이터를 운송하는 복수의 소형 패킷이 중복 전송 모드에서 복수의 경로를 통해 전송되어 데이터 전송 효율을 향상시킨다.
제2 관점은 제1 목적에 대응하는 장치, 즉 전술한 전송기, 구체적으로 소형 패킷을 전송하기 위한 엔드를 설명하고, 장치의 다양한 특정 구현, 설명 및 기술적 효과를 다시 설명하지 않는다는 것을 이해해야 한다.
제3 관점에 따르면, 본 출원의 실시예는 프로세싱 회로, 통신 인터페이스 및 저장 매체를 포함하는 패킷 전송 장치를 제공하며, 저장 매체는 프로토콜 스택 프로그램을 저장하고, 통신 인터페이스는 프로토콜 스택 프로그램을 실행하여 다른 장치로부터 패킷을 수신하거나 다른 장치로 패킷을 전송하도록 구성되고, 프로세서는 통신 인터페이스를 사용하여 저장 매체에서 명령을 실행하도록 구성되어 제1 관점 및 제 관점의 구현에 따른 패킷 전송 방법을 구현한다.
가능한 설계에서, 본 출원에서 제공되는 패킷 송신 장치는 전술한 방법 설계에서 패킷 전송 장치의 동작을 수행하도록 구성된 대응 모듈을 포함할 수다. 모듈은 소프트웨어 및/또는 하드웨어일 수 있다.
제3 관점은 제1 관점 또는 제2 관점에 대응하는 장치, 즉 전술한 전송기를 설명하고, 장치의 다양한 특정 구현, 설명 및 기술적 효과에 대해서는 다시 설명하지 않는다는 것을 이해해야 한다.
제4 관점에 따르면, 본 애플리케이션은 컴퓨터 판독 가능 저장 매체를 제공하고, 컴퓨터 판독 가능 저장 매체는 명령어를 저장하고, 명령어가 컴퓨터에서 실행될 때, 컴퓨터는 각 관점에 따른 방법을 수행한다.
제5 관점에 따르면, 본 출원은 컴퓨터 프로그램 제품이 컴퓨터에서 실행될 때 컴퓨터가 각 관점에 따른 방법을 수행하는 명령어를 포함하는 컴퓨터 프로그램 제품을 제공한다.
본 출원의 실시예 또는 배경의 기술적 솔루션을 보다 명확하게 설명하기 위해, 이하에서는 본 출원의 실시예 또는 배경을 설명하는 데 필요한 첨부 도면을 간략하게 설명한다.
도 1은 본 출원의 실시예에 따른 다중 경로 시스템의 개략적인 구조도이다.
도 2는 본 출원의 실시예에 따른 MPTCP 기술을 지원하는 장치의 전체 아키텍처 다이어그램이다.
도 3은 본 출원의 실시예에 따른 소형 데이터 전송의 개략도이다.
도 4는 본 출원의 실시예에 따른 전송 지연 테스트의 개략도이다.
도 5는 본 출원의 실시예에 따른 전송 지연 계산의 개략도이다.
도 6은 본 출원의 실시예에 따른 패킷 전송 방법의 개략적인 흐름도이다.
도 7은 본 출원의 실시예에 따른 패킷 전송 장치의 개략적인 구조도이다. 및
도 8은 본 출원의 실시예에 따른 장치의 개략적인 구조도이다.
다음은 본 출원의 실시예에서 첨부된 도면을 참조하여 본 출원의 실시예를 설명한다.
다음은 본 출원에서 나타나는 몇 가지 용어를 설명한다.
호스트(host): 호스트는 다중 경로 연결을 시작하거나 수신하도록 구성된 엔드 노드, 즉 다중 경로 연결의 전송기 또는 수신기이다. 예를 들어 호스트는 단말 또는 서버에서 실행될 수 있다.
경로(path): 경로는 전송기(sender)와 수신기(receiver) 간의 링크(link)이다. 경로는 4-튜플을 사용하여 식별할 수 있으며 4-튜플은 소스 주소(및/또는 포트)와 목적지 주소(및/또는 포트)의 쌍을 나타내는 데 사용된다. MPTCP 기술을 지원하는 수신기와 전송기 모두 복수의 경로를 식별하기 위해 수신기와 전송기의 호스트 상에서 복수의 주소를 준비할 수 있음을 이해해야 한다. 또한, 한 쌍의 수신기와 전송기 사이의 복수의 경로는 하나 이상의 라우터(router)를 공유할 수 있다.
서브플로우(subflow): 서브플로우는 단일 경로(path)에서 실행되는 TCP 세그먼트(segment)의 플로우이다. 서브플로우는 다중 경로 연결의 일부이다. 서브플로우의 시작(start) 및 종료(terminated)는 일반(regular) TCP 연결의 경우와 유사하다.
다중 경로 연결: 다중 경로 연결은 애플리케이션을 통해(over) 두 호스트(host) 사이에서 서로 통신할 수 있는 서브플로우 그룹이며, 서브플로우 그룹은 복수의 서브플로우를 포함한다. 연결은 애플리케이션의 소켓(socket)에 대한 일대일 매핑 관계에 있다.
패킷(packet): 패킷은 헤더(header)를 갖는 데이터의 패키지(package)이며, 헤더는 논리적으로 완전하거나 불완전할 수 있다. 패킷은 일반적으로 물리적으로 패키징된 데이터(데이터의 물리적 패키징)이거나, 확실히 논리적으로 패키징된 데이터(데이터의 논리적 패키징)일 수 있다. 패킷의 개념은 호스트(host)와 호스트에 연결된 네트워크 간의 데이터 상호 작용을 설명하는 데 사용된다.
ACK 패킷: ACK 패킷은 또한 확인 패킷, 확인 패킷, ACK(확인), ACK 패킷, 피드백 패킷 또는 통지라고도 한다. 본 출원에서 확인 패킷은 수신기가 수신하거나 수신하지 않은 패킷에 대한 정보를 전송기에 피드백하기 위해 사용되며, 확인 패킷에는 피드백 정보가 포함되며, 피드백 정보는 ACK 정보라고도 하며, 예를 들어 특정 패킷의 시퀀스 번호이다. 종래 기술에서 패킷의 피드백 정보는 일반적으로 수신기가 전송기에 패킷이 수신되었음을 알리는 것을 의미한다.
본 출원은 다중 경로 전송 기술에 적용된다. 다중 경로 전송 기술에서 데이터는 복수의 경로를 사용하여 전송되며, 복수의 경로는 둘 이상의 경로일 수 있다. 복수의 경로에서 전송되는 데이터는 일반적으로 다르다. 다중 경로 전송 프로토콜에서 연결 데이터는 복수의 서브플로우에 분배되고, 연결 데이터의 일부는 복수의 서브플로우 각각에서 전송된다. 설명의 편의를 위해, 본 출원에서는 이러한 전송 모드를 다중 경로 전송 모드(multi path transmission mode)라고 하며, 이를 줄여서 다중 경로 모드(MP 모드)라고도 한다. 그러나 데이터 신뢰성에 대해 매우 엄격한 요구 사항이 부과되는 시나리오 또는 지연에 대해 상대적으로 엄격한 요구 사항이 부과되는 시나리오와 같은 일부 특수 시나리오에서는 다른 전송 모드, 즉 줄여서 중복 모드(redundant mode)라고도 하는 중복 전송 모드(redundant transmission mode)가 사용될 수 있다. 중복 전송 모드에서는 연결의 패킷이 연결의 복수의 서브플로우에서 반복적으로 전송된다. 다시 말해, 연결의 데이터는 복수의 서브플로우에서 반복적으로 전송된다. 예를 들어, 중복 전송 모드에서 동일한 데이터는 다중 경로 전송 연결의 각 서브플로우에서 한 번씩 전송되어야 한다. 이 전송 모드에서 다중 경로 전송 기술의 장점은 분명히 사용할 수 없으며 데이터의 전송기 및 수신기 장치는 적어도 하나의 중복 데이터를 처리하기 위해 더 높은 하드웨어 구성을 제공해야 한다. 결과적으로 더 높은 장치 구성 비용이 발생한다. 또한, 다중 경로 전송 연결의 경우 데이터는 n개의 경로를 통해 전송될 수 있으며 n은 1보다 크다는 점에 유의해야 한다. 기본 다중 경로 전송 모드는 n개의 경로를 사용하여 데이터를 전송하는 것이다. 그렇지만, 데이터는 n개의 경로 중 하나 이상을 사용하여 전송될 수 있다.
다중 경로 전송 기술은 MPTCP, 사용자 데이터 그램 프로토콜(User Datagram Protocol, UDP), QUIC(Quick UDP Internet Connection) 프로토콜과 같은 복수의 프로토콜에 적용될 수 있다. MPTCP는 본 출원에서 설명을 위한 예로 사용된다.
현재의 일반적인 다중 경로 전송 시나리오에는 일반적으로 셀룰러 네트워크와 WIFI 네트워크라는 두 개의 서브플로우가 있다. 그러나 2개 이상의 서브플로우가 존재하는 전송 시나리오가 점차 대중화되고 있음을 예측할 수 있다. 예를 들어, 광역 네트워크의 특정 영역에 여러 사업자가 있을 수 있으며, 결과적으로 해당 영역은 두 개 이상의 서브플로우에서 TCP 데이터 전송을 지원한다. 다른 예로, 동일 비용 다중 경로 라우팅(Equal-Cost Multi Path routing, ECMP) 기술을 사용하여 데이터 센터에서 3개 이상의 서브플로우에 대한 다중 경로 TCP 데이터 전송을 지원할 수 있다.
MPTCP 기술은 복수의 네트워킹 시스템에 적용될 수 있다. 일반적으로 MPTCP 기술을 사용하여 정보를 전송해야 하는 경우 정보의 전송기와 수신기 사이에 적어도 하나의 링크가 MPTCP 기술을 지원해야 한다. 도 1은 이 기술을 사용할 수 있는 세 가지 네트워크 시스템을 간략하게 도시한다. 설명의 편의를 위해, 도 1은 다중 경로 시스템에서(라우터를 사용하여 표시되는) WiFi 기술과(기지국을 사용하여 표시되는) 셀룰러 네트워크를 각각 사용하는 예로서 다중 경로 시스템에서 2개의 경로를 보여주며, 여기서 클라우드는 여러 클라우드 서버를 예로 들어 설명한다. 이 도면은 클라우드와 다른 장치 간의 연결만을 예로 보여주고 있으며, 클라우드의 특정 서버와 다른 장치 사이의 연결을 명확하게 보여주지 않음을 이해해야 한다. 도 1의 시스템 1에서, 단말은 클라우드와 통신한다. 단말과 통신하는 클라우드의 장치가 MPTCP 기술을 지원하지 않지만 단말이 기술을 지원하는 경우 또는 클라우드의 장치가 MPTCP 기술을 지원하지만 단말이 해당 기술을 지원하지 않는 경우 사용 기술을 지원하지 않는 한쪽은 MPTCP 기술을 지원하는 프록시(예를 들어, 게이트웨이)를 사용하여 다른 쪽과 상호 작용해야 한다. 도 1의 시스템 2에서, 클라우드와 단말 모두 MPTCP 기술을 지원한다. 도 3의 시스템 3에서, 두 클라우드가 서로 통신하는 시나리오를 설명한다. 두 클라우드 모두 다중 경로 전송 기술을 지원할 수 있거나, 기술을 지원하지 않는 엔드가 MPTCP 기술을 지원하는 프록시(예를 들어, 게이트웨이)를 사용하는 경우 적어도 한쪽 엔드가 기술을 지원하지 않을 수 있다. 도 1은 두 클라우드 모두 MPTCP 기술을 지원하는 프록시를 사용하여 양측의 게이트웨이가 이 기술을 사용하여 서로 통신하는 시나리오를 도시한다.
클라우드는 서버와 같은 복수의 장치를 포함할 수 있다. 일반적으로 클라우드와 관련된 TCP 연결은 클라우드의 장치가 피어 엔드와 통신하는 것이다.
도 2는 본 출원의 일 실시예에 따른 MPTCP 기술을 지원하는 장치의 전체 아키텍처 다이어그램이다. 논리적 아키텍처의 계층적 관계를 기반으로 애플리케이션 계층, MPTCP 모듈, 서브플로우 관리 모듈, 하위 계층 패킷 송수신 모듈이 예로 포함된다. MPTCP 모듈과 서브플로우 관리 모듈은 네트워크 전송 계층에 속할 수 있고, 하위 계층 패킷 송수신 모듈은 하드웨어 계층과 하드웨어 드라이버 계층에 속할 수 있다. 서브플로우 관리 모듈은 서브플로우 설정, 서브플로우 닫기, 상태 관리, 데이터 수신, 데이터 전송 등을 포함한다. MPTCP 모듈에는 경로 관리 및 연결 관리가 포함된다. 경로 관리에는 인터페이스 상태 모니터링, 인터페이스 속성 관리, 인터페이스 주소 관리, 서브플로우 이벤트 처리 등이 포함된다. 연결 관리에는 연결 설정, 연결 종료, 연결 상태, 혼잡 알고리즘, 스케줄링 알고리즘, 데이터 전송, 데이터 수신 등이 포함된다. 본 출원의 이 실시예에서, 스케줄링 알고리즘의 제어 파라미터(순서 번호, 수량 및 미리 설정된 시간) 및 MPTCP 모듈에서 전송되는 데이터의 결정 조건이 주로 개선된다. 도 2에 도시된 아키텍처가 이해되어야 하는데, 특히 MPTCP 모듈에 대한 설명은 클라우드 장치 및 MPTCP 프록시에도 적용할 수 있다. 본 출원에서 설명되는 방법 및 장치에 대해, 구현에서, 도 7에 도시된 결정 모듈(701) 및 처리 모듈(702)의 기능은 도 2에 도시된 MPTCP 모듈에 의해 구현될 수 있으며, 다시 말해, MPTCP 모듈은 결정 모듈(701) 및 처리 모듈(702)에 대응하는 방법 단계 및 도 2에 도시된 전송 모듈(703)의 기능을 수행할 수 있다. 도 7에 도시된 하위 계층 패킷 송수신 모듈로 구현될 수 있으며, 다시 말해, 하위 계층 패킷 수신 및 전송 모듈은 전송 모듈(703)에 대응하는 방법 단계를 수행할 수 있다.
본 출원에서 전송된 소형 패킷은 전송기의 애플리케이션 계층에서 MPTCP 모듈로 운송되고, 소형 패킷은 각 TCP 서브플로우에 할당된다. 전송기의 하위 계층 패킷 수신 및 전송 모듈은 소형 패킷을 네트워크로 전송하고 네트워크에서 전송된 후 MPTCP 기술을 지원하는 피어 엔드 하드웨어에서 소형 패킷을 수신하여 전송 계층에 보고한다. 구문 분석 및 통합된 후 소형 패킷은 전송 계층에 의해 피어 엔드의 애플리케이션 계층에 보고된다. 이러한 방식으로 데이터 전송이 완료된다.
도 3에 도시된 바와 같이, 도 3의 좌측 다이어그램은 소형 패킷 전송 제어 정책을 활성화하지 않고 소형 데이터를 전송하는 개략도이다. 전송기는 복수의 소형 패킷(소형 패킷 a, 소형 패킷 b 및 소형 패킷 c)을 수신기에 지속적으로 전송할 수 있다. 각각의 소형 패킷을 수신한 후 수신기는 소형 데이터에 대응하는 ACK 패킷을 전송기에 반환한다. 도 2의 오른쪽에 있는 다이어그램은 소형 패킷 전송 제어 정책을 가능하게 하여 소형 데이터를 전송하는 개략도이다. 소형 패킷 a를 수신기에 전송한 후, 전송기는 수신기가 소형 패킷 a에 대응하는 ACK 패킷을 반환할 때까지 대기한다. 이 경우 소형 패킷 b와 소형 패킷 c는 캐시되어 중간/대형 패킷으로 결합된다. 수신기가 반환한 ACK를 수신한 전송기는 중대형 패킷을 수신기에 전송할 수 있다.
중복 스케줄링 정책을 사용하여 소형 패킷을 보낼 때 발생하는 전송 지연에 대한 소형 패킷 전송 제어 정책의 영향을 테스트하기 위해 중복 스케줄링 정책을 사용하여 데이터 상호 작용 및 전송을 수행할 때 전송기와 수신기는 WIFI 인터페이스 또는 LTE 인터페이스를 끊고 서비스 계층에서 데이터 전송 지연을 테스트한다. 도 4는 본 출원의 실시예에 따른 전송 지연 테스트의 개략도이다. 먼저 전송기는 소형 패킷을 수신기에 전송하고 소형 패킷을 보내기 위한 타임스탬프 정보, 예를 들어, T1을 기록한다. 각 소형 패킷은 소형 패킷의 시퀀스 번호를 운송한다. 그런 다음 전송기에 의해 전송된 소형 패킷을 수신한 후 수신기는 ACK 패킷을 전송기에 반환한다. ACK는 소형 패킷의 시퀀스 번호와 동일한 시퀀스 번호를 운송한다. 다음으로, 수신기가 보낸 ACK 패킷을 수신하면 전송기는 ACK 패킷을 수신하기 위한 타임스탬프 정보, 예를 들어, T2를 기록하고, ACK 패킷에 포함된 시퀀스 번호를 기반으로 소형 데이터의 타임스탬프 정보 T1을 획득한다. 마지막으로 타임스탬프 정보 T2에서 타임스탬프 정보 T1을 빼서 계산을 통해 소형 패킷의 전송 지연(T2-T1)을 구한다.
도 5는 본 출원의 실시예에 따른 전송 지연 계산의 개략도이다. 가로 좌표는 소형 패킷의 시퀀스 번호를 나타내고 세로 좌표는 테스트 과정에서 기록되는 각 소형 패킷의 전송 지연을 나타낸다. 소형 패킷이 WIFI 인터페이스를 통해 전송될 때 발생하는 지연은 약 40ms이고, LTE 인터페이스를 통해 소형 패킷이 생성될 때 발생하는 지연은 약 20ms이다. 중복 스케줄링 정책을 사용하여 두 개의 서브플로우에서 소형 패킷이 반복적으로 전송되는 경우 각 소형 패킷의 기록된 전송 지연은 약 20ms이어야 한다. 도 5로부터 전송을 위해 WIFI 인터페이스에서 LTE 인터페이스로의 전환이 수행될 때 소형 패킷이 두 개의 서브플로우에서 반복적으로 전송되고 소형 패킷의 전송 지연이 크게 변동한다는 것을 알 수 있다. 이는 전송기가 한 서브플로우에서 소형 패킷을 보낼 때 소형 패킷이 공중으로 날아갈 수 있기 때문이다. 이 경우 제1 소형 패킷이 성공적으로 전송될 수 있다. 전송기가 동일한 데이터를 운송하는 소형 패킷을 예약하여 소형 패킷이 다른 서브플로우에서 반복적으로 전송되도록 하면 소형 패킷 전송 제어 정책이 적용된다. 공중으로 날아가는 소형 패킷이 있기 때문에 전송기는 소형 패킷을 재전송할 수 없다. 결과적으로 소형 패킷의 전송 지연은 크게 변동한다.
결론적으로, MPTCP 연결의 복수의 서브플로우에서 소형 패킷을 반복적으로 전송하기 위해 중복 스케줄링 정책을 사용하거나, 복수의 경로에서 동일한 데이터를 운송하는 복수의 소형 패킷의 전송을 시도하기 위해 중복 스케줄링 정책을 사용하는 경우, 소형 패킷이 소형 패킷 전송 제어 정책으로 인해 복수의 서브플로우에서 반복적으로 적시에 전송될 수 없지만 소형 패킷에 대응하는 ACK 패킷이 반환된 후에도 소형 패킷은 계속 전송된다. 결과적으로 데이터 전송 효율성이 영향을 받는다. 전술한 기술적 문제를 해결하기 위해 본 출원의 실시예는 다음과 같은 솔루션을 제공한다.
도 6은 본 출원의 실시예에 따른 패킷 전송 방법의 개략적인 흐름도이다. 방법은 다음 단계를 포함하지만 이에 국한되지 않는다.
S601. 전송기는 다중 경로 연결이 제1 조건을 충족하는 것으로 결정하며, 제1 조건은 다중 경로 연결에 사용되는 소형 패킷 전송 제어 정책을 비활성화하는 데 사용되며, 소형 패킷 전송 제어 정책은 전송기가 다중 경로 연결을 사용하여 소형 패킷을 전송하는 시간 간격을 제어하는 데 사용되고, 소형 패킷에 포함된 데이터 길이는 최대 패킷 길이(maximum packet length, MSS)보다 작다.
구체적으로, 제1 조건은 다음: 전송기가 중복 스케줄링 정책을 구성하였고, 다중 경로 연결의 스케줄링 정책이 중복 스케줄링 정책이고, 다중 경로 연결의 수신기가 중복 스케줄링 정책을 구성하였고, 소형 패킷은 중복 스케줄링 정책을 사용하여 전송된 패킷이며, 소형 패킷은 다중 경로 연결의 한 경로를 통해 전송된 후 다른 경로를 통해 반복적으로 전송되어야 하며, 전송기는 현재 다중 경로 연결의 여러 경로를 통해 패킷을 전송한다는 것 중 적어도 하나를 포함하며, 여기서 중복 스케줄링 정책은 전송기에 중복 전송 모드에서 데이터를 전송하도록 지시하는 데 사용된다.
전송기가 다중 경로 연결의 한 경로에서 소형 패킷을 전송한 후 소형 패킷이 손실되거나 전송 프로세스에서 전송되지 않으면 소형 패킷을 중복 전송 모드에서 다중 연결의 다른 경로를 통해 다시 전송해야 한다. 이 경우 소형 패킷 전송 제어 정책도 비활성화해야 하며, 소형 패킷 전송 제어 정책이 비활성화된 후 중복 전송 모드에서 다른 경로로 소형 패킷이 재전송된다.
전송 과정에서 소형 패킷이 유실되었거나 전송에 실패했다고 판단하는 방법은 적어도 다음을 포함한다: 전송기가 미리 설정된 기간 내에 다중 경로 연결의 한 경로를 통해 소형 패킷을 전송한 후 소형 패킷에 대응하는 확인 패킷을 수신하지 못하면 전송기는 소형 패킷이 손실되었거나 전송에 실패했다고 결정할 수 있거나; 또는 다중 경로 연결의 한 경로에서 소형 패킷을 전송한 후, 전송기는 다중 경로 연결에서 소형 패킷이 전송되지 않는 하나 이상의 경로에서 대형 패킷을 전송하고 전송기가 대형 패킷에 대응하는 확인 패킷을 수신하기 전에 소형 패킷에 대응하는 확인 패킷을 받지 못하는 경우, 전송기는 소형 패킷이 손실되었거나 전송에 실패했다고 결정할 수 있다. 대용량 패킷에 포함되는 데이터의 길이는 MSS의 최대 패킷 길이보다 작지 않다.
본 출원의 이 실시예에서, 전송기가 다중 경로 연결을 사용하여 소형 패킷을 전송하는 시간 간격은 적어도 다음의 몇 가지 선택적 방식으로 제어될 수 있다.
제1 선택적인 방법에서, 소형 패킷을 수신기에 전송한 후, 전송기는 소형 패킷에 대응하는 반환된 ACK 패킷을 수신하기 전에 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송할 수 없다. 특히 전송기는 먼저 제1 소형 데이터를 전송하고 나중에 도착하는 제2 소형 패킷을 캐시한다. 제1 소형 패킷에 대응하는 ACK 패킷을 수신한 후 전송기는 캐시된 제2 소형 패킷을 전송하고 나중에 도착하는 제3 소형 패킷을 계속 캐시한다. 전송기는 이전 소형 패킷의 ACK 패킷을 수신한 후에만 다음 소형 패킷을 계속 보낸다. 예를 들어 나글(Nagle) 메커니즘이 시작될 때 전송기가 소형 패킷을 보냈지만 확인되지 않은 경우 전송기는 소형 패킷을 계속 보낼 수 없다.
제2 선택적인 방법에서, 타이밍 시간이 미리 설정되고, 소형 패킷을 수신기에 전송한 후, 전송기는 미리 설정된 타이밍 시간에 도달하기 전에 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 보낼 수 없다. 특히 전송기는 먼저 제1 소형 데이터를 전송하고 타이밍을 시작한 다음 나중에 도착하는 제2 소형 패킷을 캐시한다. 타이밍 기간이 타이밍 시간을 초과하면 전송기는 캐시된 제2 소형 패킷을 전송하고 타이밍을 시작하며 나중에 도착하는 제3 소형 패킷을 계속 캐시한다. 전송기는 대기 시간이 타이밍 시간을 초과할 때마다 계속해서 다음 소형 패킷을 보낸다.
제3 선택적인 방법에서, 전송 차단 조건이 시작되고 전송 차단 조건은 소형 패킷을 전송한 후 소형 패킷에 대응하는 반환된 ACK 패킷을 수신하기 전에 전송기가 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송할 수 없음을 나타내는 데 사용된다. 일정 시간이 지난 후 소형 패킷이 대형 패킷으로 결합되면 전송기는 결합된 대형 패킷을 수신기에 보낼 수 있다.
본 출원의 이 실시예에서 소형 패킷의 데이터는 TCP 프로토콜 위에 있는 프로토콜의 헤더, 예를 들어 원격 프로시저 호출 프로토콜(Remote Procedure Call Protocol, RPC)의 헤더 또는 헤더를 포함한다는 점에 유의해야 한다. 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol, HTTP)이지만 인터넷 제어 메시지 프로토콜(Internet Control Message Protocol, ICMP)과 같이 하위 계층에 TCP 헤더 또는 헤더를 포함하지 않는다. 따라서 소형 패킷에 포함된 데이터의 길이는 유효한 데이터 길이와 TCP 프로토콜 위의 프로토콜 헤더 길이의 합이 된다. 유효한 데이터의 길이와 TCP 프로토콜 위의 프로토콜 헤더 길이의 합이 MSS의 최대 패킷 길이보다 작을 경우, 소형 패킷 전송 제어 정책이 적용되며, 다중 경로 연결에 사용되는 소형 패킷 전송 제어 정책이 비활성화되는지를 결정해야 한다.
예를 들어, 전송기가 다중 경로 연결이 제1 조건을 충족하지 않는다고 결정할 때, 예를 들어, 전송기와 수신기의 다중 경로 연결에 대해 중복 스케줄링 정책이 구성되지 않을 때, 전송기는 소형 패킷 전송 제어 정책을 사용하여 소형 패킷을 스케줄링하고 각 경로에서 소형 패킷을 전송할 수 있음을 유의해야 한다.
S602: 전송기는 적어도 다음 몇 가지 선택적 방식으로 소형 패킷 전송 제어 정책을 비활성화한다.
제1 선택적인 방식에서, 전송기는 소형 패킷 전송 제어 정책 실행을 중지한다. 예를 들어, 전송기는 제어 로직을 실행할 때 소형 패킷 전송 제어 정책에 대응하는 제어 로직을 건너뛰거나 조건이 충족된 것으로 판단한 후 소형 패킷 전송 제어 정책에 대응하는 제어 로직을 비활성화한다.
제2 선택적인 방식에서, 전송기의 제1 소형 패킷에 대응하는 시퀀스 번호가 제1 ACK 패킷의 시퀀스 번호보다 작거나 같도록, 전송기는 전송기의 제1 소형 패킷에 대응하는 시퀀스 번호를 수정하거나 전송기에 의해 수신된 제1 ACK 패킷의 시퀀스 번호를 수정하며, 여기서 제1 소형 패킷은 현재 순간 이전에 전송기에 의해 전송된 마지막 소형 패킷이고, 전송기는 제1 ACK 패킷에 대응하는 ACK 패킷을 수신하지 않으며, 제1 ACK 패킷은 현재 순간 이전에 전송기에 의해 수신되는 시퀀스 번호가 가장 큰 ACK 패킷이다. 현재 순간은 전송기의 현재 시스템 시간이거나 시퀀스 번호를 수정하는 순간일 수 있다.
제3 선택적인 방식에서, 전송기는 전송기에 저장된 미확인 소형 패킷의 수량을 0으로 수정하고, 여기서 수신 확인되지 않은 소형 패킷의 수량은 전송기가 전송하였으나 대응하는 ACK 패킷이 수신되지 않은 소형 패킷의 수량을 나타낸다. 구체적으로, 제1 소형 패킷을 전송한 후, 전송기는 미확인 소형 패킷의 수량을 즉시 0으로 수정한 다음 제2 소형 패킷을 전송하고, 확인되지 않은 소형 패킷의 수량을 즉시 0으로 수정한 다음 제3 소형 패킷을 보낼 수 있다. 이전 소형 패킷을 보낼 때마다 전송기는 확인되지 않은 소형 패킷의 수량을 즉시 0으로 수정하여 다음 소형 패킷을 보낸다.
제4 선택적인 방식에서, 전송기는 타이머를 사용하여 전송기가 다중 경로 연결을 사용하여 소형 패킷을 전송하는 시간 간격을 제어하고, 타이머가 미리 설정된 시간에 도달하도록 전송기는 다중 경로 연결을 사용하여 제1 소형 패킷을 전송한 후 타이머를 수정하며, 여기서 제1 소형 패킷은 현재 순간 이전에 전송기에 의해 전송된 마지막 소형 패킷이다. 미리 설정된 시간의 지속 시간은 전송 지연보다 짧을 수 있다. 전송 지연은 전송기가 소형 패킷에 대응하는 ACK 패킷을 수신하는 순간과 전송기가 소형 패킷을 전송하는 순간의 차이일 수 있다. 또한, 현재 순간은 전송기의 현재 시스템 시간이거나 시퀀스 번호를 수정하는 순간일 수 있다.
S603: 전송기는 소형 패킷 전송 제어 정책을 비활성화한 후 중복 전송 모드에서 다중 경로 연결의 복수 경로를 통해 복수의 소형 패킷을 전송하며, 여기서 복수의 소형 패킷은 동일한 데이터를 운송하는 소형 패킷을 포함한다.
제1 선택적인 방식에서, 전송기가 제어 로직을 실행하는 경우 소형 패킷 전송 제어 정책에 대응하는 제어 로직을 건너뛰거나 조건이 충족된 것으로 판단한 후 소형 패킷 전송 제어 정책에 대응하는 제어 로직을 비활성화하기 때문에, 전송기는 중복 전송 모드에서 다중 경로 연결의 복수의 경로를 통해 복수의 소형 패킷을 전송할 수 있다.
제2 선택적인 방식에서, 전송기가 전송기의 제1 소형 패킷에 대응하는 시퀀스 번호를 수정하거나 전송기에 의해 수신된 제1 ACK 패킷의 시퀀스 번호를 변경한 후, 제1 소형 패킷에 대응하는 시퀀스 번호 전송기에서 제1 ACK 패킷의 시퀀스 번호보다 작거나 같으며, 이는 전송기가 모든 소형 패킷에 대응하는 ACK 패킷을 수신했음을 나타낼 수 있다. 이러한 방식으로 전송기는 소형 패킷 전송 제어 정책을 비활성화하기 위해 제1 소형 패킷에 대응하는 ACK 패킷이 반환된 후 소형 패킷을 전송하기 위해 기다릴 필요가 없다. 따라서, 전송기는 다중 경로 연결의 복수의 경로 중에서 제1 소형 패킷이 전송되지 않는 적어도 하나의 경로에서 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 보낼 수 있다. 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송한 후, 전송기는 전송기의 제1 소형 패킷에 대응하는 시퀀스 번호를 수정하거나 전송기에 의해 수신되는 제1 ACK 패킷의 시퀀스 번호를 다시 수정할 수 있다. 전송기가 모든 소형 패킷에 대응하는 ACK 패킷을 수신했음을 나타낸다. 이러한 방식으로, 전송기는 소형 패킷에 대응하는 ACK 패킷이 반환된 후 소형 패킷을 전송하기 위해 대기할 필요가 없어 소형 패킷 전송 제어 정책을 비활성화하고 중복 전송 모드에서 다중 경로 연결의 복수의 경로를 통해 제2 소형 패킷을 전송할 수 있다.
제3 선택적인 방식에서, 전송기가 전송기에 저장된 미확인 소형 패킷의 수량을 0으로 수정하기 때문에 전송기는 소형 패킷 전송 제어 정책을 비활성화하기 위해 미확인 소형 패킷에 대응하는 ACK 패킷이 반환된 후 소형 패킷을 전송하기 위해 기다릴 필요가 없다. 그런 다음, 전송기는 다중 경로 연결의 복수의 경로 중에서 제1 소형 패킷이 전송되지 않는 다른 경로에서 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 보낼 수 있다. 다음으로, 전송기는 미확인 소형 패킷의 수량을 0으로 수정하고, 다중 경로 연결의 복수 경로 중에서 제1 소형 패킷이 전송되지 않는 또 다른 경로에서 동일한 소형 패킷을 전송할 수 있다. 데이터를 제1 소형 패킷으로 사용한다. 비유하자면 소형 패킷이 전송될 때마다 확인되지 않은 소형 패킷의 수량은 항상 0이거나 확인되지 않은 소형 패킷의 수량은 모든 소형 패킷이 전송될 때까지 0으로 수정된다.
제4 선택적인 방법에서, 다중 경로 연결을 사용하여 제1 소형 패킷을 전송한 후 전송기가 타이머를 수정하여 타이머가 미리 설정된 시간에 미리 도달할 수 있도록 하였다. 따라서 전송기가 제1 소형 패킷에 대응하는 ACK 패킷을 수신하기 전에 타이머가 미리 설정된 시간에 미리 도달할 때 전송기는 제1 소형 패킷에 대응하는 ACK 패킷을 수신하기 전에 다중 경로 연결의 복수의 경로 중에서 제1 소형 패킷이 전송되지 않는 경로를 통해 중복 전송 모드에서 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송할 수 있다. 또한, 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송한 후 전송기는 타이머가 미리 설정된 시간에 미리 도달할 수 있도록 타이머를 수정하고 타이머가 미리 설정한 시간에 다시 도달했을 때 다중 경로 연결 경로를 통해 제2 소형 패킷을 보낼 수 있다.
타이머가 미리 설정된 시간에 도달할 때, 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷이 다중 경로 연결의 복수 경로 중에서 제1 소형 패킷이 전송되지 않는 경로를 통해 즉시 전송될 수 있음을 이해해야 한다. 대안으로, 코드 실행 프로세스에 지연이 있거나 또는 일부 기존 패킷 전송 절차에서 전송 관련 준비 단계(예를 들어, 패킷 캡슐화 및 패킷을 하드웨어, 예를 들어 네트워크 인터페이스 카드로 전송하기)가 수행되어야 한다. 따라서 타이머가 미리 설정된 시간에 미리 도달할 때 타이머가 일정 시간 지연되고, 그런 다음 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷이 다중 경로 연결의 복수의 경로 중에서 제1 소형 패킷이 전송되지 않는 경로를 통해 전송된다.
이 방식에서, 프로토콜 스택이 소형 패킷 전송 제어 정책을 활성화하고 중복 전송 모드에서 데이터를 전송해야 하는 경우, 추가된 결정 메커니즘을 사용하여 조건이 충족될 때 소형 패킷 전송 제어 정책을 적응적으로 비활성화할 수 있고, 중복 전송을 수행할 필요가 없는 모드에서 프로토콜 스택에 있으면서 소형 패킷 전송 제어 정책을 활성화하기 위한 디폴트 설정을 수정할 필요가 없다. 소형 패킷 전송 제어 정책이 비활성화된 후, 동일한 데이터를 운송하는 복수의 소형 패킷이 중복 전송 모드에서 복수의 경로를 통해 전송되어 데이터 전송 효율을 향상시킨다.
본 출원에서 설명하는 다중 경로 연결 기반 패킷 전송 방법에서 전송기와 수신기 중 적어도 하나는 단말일 수 있거나, MPTCP 프로토콜을 지원하는 게이트웨이 또는 MPTCP 프로토콜을 지원하는 서버일 수 있음에 유의해야 한다. 본 출원의 이 실시예에서의 방법이 수행되기 전에, MPTCP 프로토콜을 지원하는 운영체제와 마이크로 포트의 드라이버가 전송기와 수신기에 설치되어야 한다는 것을 이해해야 한다.
본 출원의 이 실시예에서, 전송기와 수신기는 액세스 노드를 사용하여 네트워크에 액세스한다는 점에 유의해야 한다. 액세스 노드는 특히 무선 네트워크의 액세스 노드이다. 구체적으로, 액세스 노드는 무선 WI-FI 네트워크의 액세스 포인트(Access Point, AP), 라우터, Winmax 네트워크의 액세스 포인트, 무선 셀룰러 모바일 네트워크의 기지국 등일 수 있다. 무선 네트워크의 유형 및 무선 네트워크의 액세스 노드의 특정 형태는 본 출원에서 제한되지 않는다. 또한, 동일한 유형의 무선 네트워크는 모두 무선 WI-FI 네트워크에 속하는 액세스 노드, 모두 Winmax 네트워크에 속하는 액세스 노드 또는 모두 무선 셀룰러 네트워크, 예를 들어, 2G 네트워크, 3G 네트워크, 4G 네트워크 또는 5G 네트워크에 속하는 액세스 노드이다.
본 출원의 실시예들에서의 방법은 위에서 상세히 설명되었고, 다음은 본 출원의 실시예에 따른 장치를 제공한다.
도 7은 본 출원의 실시예에 따른 패킷 전송 장치의 개략적인 구조도이다. 패킷 전송 장치는 결정 모듈(701), 처리 모듈(702) 및 전송 모듈(703)을 포함할 수 있다. 결정 모듈(701)은 다중 경로 연결이 제1 조건을 충족시키는지를 결정하도록 구성된다. 제1 조건은 다중 경로 연결에 사용되는 소형 패킷 전송 제어 정책을 비활성화하는 데 사용되며, 소형 패킷 전송 제어 정책은 전송기가 다중 경로 연결을 사용하여 소형 패킷을 전송하는 시간 간격을 제어하는 데 사용되며, 소형 패킷에 포함된 데이터가 MSS의 최대 패킷 길이보다 작다.
처리 모듈(702)은 소형 패킷 전송 제어 정책을 비활성화하도록 구성된다. 전송 모듈(703)은 소형 패킷 전송 제어 정책이 비활성화된 후 중복 전송 모드에서 다중 경로 연결의 복수의 경로를 통해 복수의 소형 패킷을 전송하도록 구성된다. 복수의 소형 패킷은 동일한 데이터를 운송하는 소형 패킷을 포함한다.
제1 조건은 다음: 전송기가 중복 스케줄링 정책을 구성하였고, 다중 경로 연결의 스케줄링 정책이 중복 스케줄링 정책이고, 다중 경로 연결의 수신기가 중복 스케줄링 정책을 구성하였고, 소형 패킷은 중복 스케줄링 정책을 사용하여 전송되는 패킷으로, 현재 전송기는 다중 경로 연결의 복수 경로를 통해 패킷을 전송한다는 것 중 적어도 하나를 포함한다. 중복 스케줄링 정책은 전송기에 중복 전송 모드에서 데이터를 전송하도록 지시하는 데 사용된다.
선택적으로, 프로세싱 모듈(702)은 구체적으로:
전송기의 제1 소형 패킷에 대응하는 시퀀스 번호가 제1 ACK 패킷의 시퀀스 번호보다 작거나 같도록 전송기의 제1 소형 패킷에 대응하는 시퀀스 번호를 수정하거나 전송기에 의해 수신된 제1 ACK 패킷의 시퀀스 번호를 수정하도록 구성되어 있으며, 여기서 제1 소형 패킷은 현재 순간 이전에 전송기에 의해 전송된 마지막 소형 패킷이고, 전송기는 제1 소형 패킷에 대응하는 ACK 패킷을 수신하지 않으며, 제1 소형 패킷은 제1 ACK 패킷의 시퀀스 번호와 같거나 ACK 패킷은 상기 현재 순간 이전에 상기 전송기에 의해 수신되는 가장 큰 시퀀스 번호를 가진 ACK 패킷이다.
이에 대응하여, 전송 모듈(702)은 구체적으로:
다중 경로 연결의 복수의 경로 중에서 제1 소형 패킷이 전송되지 않는 적어도 하나의 경로를 통해 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송하며; 그리고
중복 전송 모드에서 다중 경로 연결의 복수의 경로를 통해 제2 소형 패킷을 전송하도록 구성되어 있다.
선택적으로, 프로세싱 모듈(702)은 구체적으로:
전송기에 저장된 확인되지 않은 소형 패킷의 수량을 0으로 수정하도록 구성되어 있으며, 상기 확인되지 않은 소형 패킷의 수량은 상기 전송기에 의해 전송되었지만 대응하는 ACK 패킷이 수신되지 않은 소형 패킷의 수량을 나타내는 데 사용된다.
선택적으로, 전송기가 다중 경로 연결을 사용하여 소형 패킷을 전송하는 시간 간격을 제어하는 데 타이머가 사용되며, 프로세싱 모듈(702)은 구체적으로:
타이머가 미리 설정된 시간에 미리 도달할 수 있도록 다중 경로 연결을 사용하여 제1 소형 패킷을 전송한 후 상기 타이머를 수정하도록 구성되어 있으며, 제1 소형 패킷은 현재 순간 이전에 상기 전송기에 의해 전송된 마지막 소형 패킷이다.
이에 대응하여, 전송 모듈(703)은 구체적으로:
타이머가 미리 설정된 시간에 도달할 때, 다중 경로 연결의 복수 경로 중에서 제1 소형 패킷이 전송되지 않는 경로를 통해 중복 전송 모드에서 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송하며; 그리고
타이머가 미리 설정된 시간에 미리 도달할 수 있도록 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송한 후 타이머를 재수정하고; 타이머가 미리 설정된 시간에 다시 도달할 때 다중 경로 연결의 경로를 통해 제2 소형 패킷을 전송하도록 구성되어 있다.
각 유닛의 구현에 대해서는 도 6에 도시된 방법 실시예의 대응하는 설명을 참조한다는 점에 유의해야 한다.
이 방식에서, 프로토콜 스택이 소형 패킷 전송 제어 정책을 활성화하고 중복 전송 모드로 데이터를 전송해야 하는 경우, 조건이 충족되면 추가된 결정 메커니즘을 사용하여 소형 패킷 전송 제어 정책을 적응적으로 비활성화할 수 있으며, 중복 전송을 수행할 필요가 없는 모드에서 프로토콜 스택에 있으면서 소형 패킷 전송 제어 정책을 활성화하기 위한 디폴트 설정을 수정할 필요가 없다. 소형 패킷 전송 제어 정책이 비활성화된 후에는 동일한 데이터를 운송하는 소형 패킷이 중복 전송 모드에서 복수의 경로를 통해 전송되어 데이터 전송 효율을 향상시킨다.
도 8은 본 출원의 실시예에 따른 장치의 개략적인 구조도이다. 본 출원의 실시예에서의 방법은 장치(800)에 적용된다. 장치(800)는 적어도 하나의 프로세싱 회로(801) 및 통신 인터페이스(804)를 포함한다. 통신 인터페이스(804)는 적어도 하나의 물리적 네트워크 인터페이스 카드를 포함한다. 구현에서, 물리적 네트워크 인터페이스 카드는 복수의 가상 네트워크 인터페이스 카드에 대응한다. 복수의 가상 네트워크 인터페이스 카드는 도면에 표시되지 않은 복수의 포트와 일대일로 대응한다. 장치(800)는 저장 매체(805) 및 적어도 하나의 통신 버스(802)를 더 포함한다. 통신 버스(802)는 이러한 구성 요소들 간의 연결 및 통신을 구현하도록 구성된다.
구현에서, 장치(800)는 단말장치 일 수 있다. 장치(800)가 단말 장치인 경우 장치(800)는 선택적으로 디스플레이(예를 들어, 터치 스크린, LCD, CRT, 홀로그래픽 이미징(Holographic) 또는 프로젝터(Projector), 키보드 또는 클릭 장치(예를 들어, 마우스, 트랙볼(trackball), 터치 보드 또는 터치 스크린)를 포함하는 사용자 인터페이스(803)를 포함한다. 저장 매체(805)는 읽기 전용 메모리 및 랜덤 액세스 메모리를 포함할 수 있고, 프로세싱 회로(801)에 대한 명령 및 데이터를 제공할 수 있다. 저장 매체(805)의 일부는 비휘발성 랜덤 액세스 메모리(non-volatile random access memory, NVRAM)를 더 포함할 수 있다.
일부 구현에서, 예를 들어 장치가 단말 또는 서버인 경우, 저장 매체(805)는 다음 요소: 실행 가능한 모듈 또는 데이터 구조, 그 서브세트 또는 그 확장 세트: 프레임 계층, 커널 라이브러리 계층 및 드라이버 계층과 같은 다양한 시스템 프로그램을 포함하고 다양한 기본 서비스를 구현하고 하드웨어 기반 작업을 처리하도록 구성된 운영 체제(8051); 및 데스크탑(런처), 미디어 플레이어(Media Player), 브라우저(Browser)와 같은 다양한 응용 프로그램을 포함하고 다양한 애플리케이션 서비스를 구현하도록 구성된 응용 프로그램 모듈(8052)을 저장한다. 장치가 게이트웨이인 경우, 저장 매체(805)는 전술한 방법을 수행하는 데 필요한 프로그램 코드만 저장할 수 있다(예를 들어, 전술한 방법은 패킷을 수신 또는 전송하는 단계, 확인 패킷을 수신 또는 전송하는 단계, 수신된 패킷을 분석하거나 또는 수신된 확인 패킷을 분석하는 단계를 포함한다).
장치는 단말, 게이트웨이 또는 서버일 수 있다. 자세한 내용은 도 1 내지 도 4의 정보를 참조한다. 예를 들어, 장치가 단말인 경우, 단말의 구조도 및 도 2의 관련 설명을 참조한다. 장치는 프로세싱 회로(801)를 사용하여 저장 매체(805)의 프로그램을 호출할 수 있으므로, 프로세싱 회로(801)는 통신 인터페이스(804)를 사용하여 전술한 도면의 방법 및 실시예를 수행한다. 예를 들어, 장치는 다중 경로 연결의 전송기 또는 수신기일 수 있다. 구체적인 구현, 관련 설명 및 유익한 효과에 대해서는 앞의 설명을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다. 예를 들어, 프로세싱 회로(801)는 통신 인터페이스(804)를 사용하여 도 7에 도시된 장치에서의 결정 모듈(701), 처리 모듈(702) 및 전송 모듈(703)의 기능을 구현할 수 있다. 예를 들어, 전송 모듈(703)은 상이한 진행 또는 스레드에 의해 호출되는 통신 인터페이스일 수 있다.
본 출원의 다른 실시예는 칩을 추가로 기록한다. 칩은 전술한 전송기 상에 배치될 수 있고, 본 출원에서 설명된 방법을 수행하고, 본 출원에서 전술한 방법으로 소형 패킷을 파싱 및 처리하도록 구성된다. 칩은 전술한 수신기 상에 추가로 배치될 수 있고, 본 출원에서 설명된 방법을 수행하도록 구성된다. 예를 들어, 소형 패킷이 수신된 후, 본 출원에서 전술한 방법에서 설명된 확인 패킷이 생성된다.
당업자는 실시예의 방법의 프로세스의 전부 또는 일부가 관련 하드웨어(예를 들어, 프로세서)를 지시하는 컴퓨터 프로그램에 의해 구현될 수 있음을 이해할 수 있다. 프로그램은 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 프로그램이 실행될 때, 실시예의 방법의 프로세스가 수행된다. 저장 매체는 자기 디스크, 광 디스크, 읽기 전용 메모리(Read-Only Memory, ROM), 랜덤 액세스 메모리(Random Access Memory, RAM) 등일 수 있다.
이상은 본 출원의 전술한 실시예에서 제공된 패킷 전송 방법 및 장치이다. 전술한 실시예는 단지 본 출원의 방법 및 아이디어를 이해하는 것을 돕기 위한 것이다. 또한, 구현 및 적용 범위와 관련하여, 본 출원의 아이디어에 따라 당업자에 의해 수정될 수 있다. 따라서 본 명세서가 본 출원에 대한 제한으로 해석되어서는 안 된다.
당업자는 실시예에서의 방법의 프로세스의 전부 또는 일부가 관련 하드웨어를 지시하는 컴퓨터 프로그램에 의해 구현될 수 있다는 것을 이해할 수 있다. 프로그램은 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 프로그램이 실행될 때, 실시예의 방법의 프로세스가 수행된다. 전술한 저장 매체는 ROM, RAM, 자기 디스크 또는 광 디스크와 같은 프로그램 코드를 저장할 수있는 임의의 매체를 포함한다.

Claims (12)

  1. 다중 경로 연결의 전송기에 적용되는 패킷 전송 방법으로서,
    상기 패킷 전송 방법은:
    상기 전송기가 상기 다중 경로 연결이 제1 조건을 충족하는 것으로 결정하는 단계 - 상기 제1 조건은 상기 다중 경로 연결에 사용되는 소형 패킷 전송 제어 정책을 비활성화하는 데 사용되고, 상기 소형 패킷 전송 제어 정책은 상기 전송기가 상기 다중 경로 연결을 사용하여 소형 패킷을 전송하는 시간 간격을 제어하는 데 사용되며, 상기 소형 패킷에 포함된 데이터 길이는 최대 패킷 길이(maximum packet length, MSS)보다 작음 - ;
    상기 전송기가 상기 소형 패킷 전송 제어 정책을 비활성화하는 단계; 및
    상기 전송기가 상기 소형 패킷 전송 제어 정책을 비활성화한 후 중복 전송 모드에서 다중 경로 연결의 복수의 경로를 통해 복수의 소형 패킷을 전송하는 단계 - 상기 복수의 소형 패킷은 동일한 데이터를 운송하는 소형 패킷을 포함함 -
    를 포함하는 패킷 전송 방법.
  2. 제1항에 있어서,
    상기 제1 조건은 다음: 상기 전송기가 중복 스케줄링 정책을 구성하였고, 다중 경로 연결의 스케줄링 정책이 중복 스케줄링 정책이고, 상기 다중 경로 연결의 수신기가 중복 스케줄링 정책을 구성하였고, 상기 소형 패킷은 중복 스케줄링 정책을 사용하여 전송된 패킷이고, 상기 소형 패킷은 상기 다중 경로 연결의 한 경로를 통해 전송된 후 다른 경로를 통해 반복적으로 전송되어야 하며, 상기 전송기는 현재 상기 다중 경로 연결의 복수 경로를 통해 패킷을 전송하는 것 중 적어도 하나를 포함하며, 상기 중복 스케줄링 정책은 상기 전송기에 상기 중복 전송 모드에서 데이터를 전송하도록 명령하는 데 사용되는, 패킷 전송 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 전송기가 상기 소형 패킷 전송 제어 정책을 비활성화하는 단계는:
    상기 전송기의 제1 소형 패킷에 대응하는 시퀀스 번호가 제1 ACK 패킷의 시퀀스 번호보다 작거나 같도록 상기 전송기가 상기 전송기의 제1 소형 패킷에 대응하는 시퀀스 번호를 수정하거나 상기 전송기에 의해 수신된 제1 ACK 패킷의 시퀀스 번호를 수정하는 단계 - 상기 제1 소형 패킷은 현재 순간 이전에 상기 전송기에 의해 전송된 마지막 소형 패킷이고, 상기 전송기는 제1 소형 패킷에 대응하는 ACK 패킷을 수신하지 않으며, 상기 제1 소형 패킷은 제1 ACK 패킷의 시퀀스 번호와 같거나 ACK 패킷은 상기 현재 순간 이전에 상기 전송기에 의해 수신되는 가장 큰 시퀀스 번호를 가진 ACK 패킷임 -
    을 포함하며, 그리고
    이에 대응하여, 상기 전송기가 상기 소형 패킷 전송 제어 정책을 비활성화한 후 중복 전송 모드에서 다중 경로 연결의 복수의 경로를 통해 복수의 소형 패킷을 전송하는 단계는:
    상기 전송기가 상기 다중 경로 연결의 복수의 경로 중에서 상기 제1 소형 패킷이 전송되지 않는 적어도 하나의 경로를 통해 상기 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송하는 단계; 및
    상기 전송기가 상기 중복 전송 모드에서 상기 다중 경로 연결의 복수의 경로를 통해 제2 소형 패킷을 전송하는 단계
    를 포함하는, 패킷 전송 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 전송기가 상기 소형 패킷 전송 제어 정책을 비활성화하는 단계는:
    상기 전송기가 상기 전송기에 저장된 확인되지 않은 소형 패킷의 수량을 0으로 수정하는 단계
    를 포함하며,
    상기 확인되지 않은 소형 패킷의 수량은 상기 전송기에 의해 전송되었지만 대응하는 ACK 패킷이 수신되지 않은 소형 패킷의 수량을 나타내는 데 사용되는, 패킷 전송 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 전송기는 타이머를 사용하여 상기 전송기가 상기 다중 경로 연결을 사용하여 상기 소형 패킷을 전송하는 시간 간격을 제어하며, 상기 전송기가 상기 소형 패킷 전송 제어 정책을 비활성화하는 단계는:
    상기 타이머가 미리 설정된 시간에 미리 도달할 수 있도록 상기 전송기가 상기 다중 경로 연결을 사용하여 제1 소형 패킷을 전송한 후 상기 타이머를 수정하는 단계 - 상기 제1 소형 패킷은 현재 순간 이전에 상기 전송기에 의해 전송된 마지막 소형 패킷임 -
    를 포함하며, 그리고
    이에 대응하여, 상기 전송기가 상기 소형 패킷 전송 제어 정책을 비활성화한 후 중복 전송 모드에서 다중 경로 연결의 복수의 경로를 통해 복수의 소형 패킷을 전송하는 단계는:
    상기 타이머가 미리 설정된 시간에 도달할 때, 상기 전송기가 상기 다중 경로 연결의 복수 경로 중에서 상기 제1 소형 패킷이 전송되지 않는 경로를 통해 중복 전송 모드에서 상기 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송하는 단계; 및
    상기 타이머가 상기 미리 설정된 시간에 미리 도달할 수 있도록 상기 전송기가 상기 제1 소형 패킷과 동일한 데이터를 운송하는 상기 소형 패킷을 전송한 후 상기 타이머를 재수정하는 단계; 및 상기 타이머가 상기 미리 설정된 시간에 다시 도달할 때 상기 다중 경로 연결의 경로를 통해 제2 소형 패킷을 전송하는 단계를 포함하는, 패킷 전송 방법.
  6. 패킷 전송 장치로서,
    상기 패킷 전송 장치는 다중 경로 연결의 전송기이며, 상기 패킷 전송 장치는:
    상기 다중 경로 연결이 제1 조건을 충족하는 것으로 결정하도록 구성되어 있는 결정 유닛 - 상기 제1 조건은 상기 다중 경로 연결에 사용되는 소형 패킷 전송 제어 정책을 비활성화하는 데 사용되고, 상기 소형 패킷 전송 제어 정책은 상기 전송기가 상기 다중 경로 연결을 사용하여 소형 패킷을 전송하는 시간 간격을 제어하는 데 사용되며, 상기 소형 패킷에 포함된 데이터 길이는 최대 패킷 길이(maximum packet length, MSS)보다 작음 - ;
    상기 소형 패킷 전송 제어 정책을 비활성화하도록 구성되어 있는 프로세싱 모듈; 및
    상기 소형 패킷 전송 제어 정책을 비활성화한 후 중복 전송 모드에서 다중 경로 연결의 복수의 경로를 통해 복수의 소형 패킷을 전송하도록 구성되어 있는 전송 모듈 - 상기 복수의 소형 패킷은 동일한 데이터를 운송하는 소형 패킷을 포함함 -
    을 포함하는 패킷 전송 장치.
  7. 제6항에 있어서,
    상기 제1 조건은 다음: 상기 전송기가 중복 스케줄링 정책을 구성하였고, 다중 경로 연결의 스케줄링 정책이 중복 스케줄링 정책이고, 상기 다중 경로 연결의 수신기가 중복 스케줄링 정책을 구성하였고, 상기 소형 패킷은 중복 스케줄링 정책을 사용하여 전송된 패킷이고, 상기 소형 패킷은 상기 다중 경로 연결의 한 경로를 통해 전송된 후 다른 경로를 통해 반복적으로 전송되어야 하며, 상기 전송기는 현재 상기 다중 경로 연결의 복수 경로를 통해 패킷을 전송하는 것 중 적어도 하나를 포함하며, 상기 중복 스케줄링 정책은 상기 전송기에 상기 중복 전송 모드에서 데이터를 전송하도록 명령하는 데 사용되는, 패킷 전송 장치.
  8. 제6항 또는 제7항에 있어서,
    상기 프로세싱 모듈은 구체적으로:
    상기 전송기의 제1 소형 패킷에 대응하는 시퀀스 번호가 제1 ACK 패킷의 시퀀스 번호보다 작거나 같도록 상기 전송기의 제1 소형 패킷에 대응하는 시퀀스 번호를 수정하거나 상기 전송기에 의해 수신된 제1 ACK 패킷의 시퀀스 번호를 수정하도록 구성되어 있으며, 상기 제1 소형 패킷은 현재 순간 이전에 상기 전송기에 의해 전송된 마지막 소형 패킷이고, 상기 전송기는 제1 소형 패킷에 대응하는 ACK 패킷을 수신하지 않으며, 상기 제1 소형 패킷은 제1 ACK 패킷의 시퀀스 번호와 같거나 ACK 패킷은 상기 현재 순간 이전에 상기 전송기에 의해 수신되는 가장 큰 시퀀스 번호를 가진 ACK 패킷이며; 그리고
    이에 대응하여, 상기 전송 모듈은 구체적으로:
    상기 다중 경로 연결의 복수의 경로 중에서 상기 제1 소형 패킷이 전송되지 않는 적어도 하나의 경로를 통해 상기 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송하며; 그리고
    상기 중복 전송 모드에서 상기 다중 경로 연결의 복수의 경로를 통해 제2 소형 패킷을 전송하도록 구성되어 있는, 패킷 전송 장치.
  9. 제6항 또는 제7항에 있어서,
    상기 프로세싱 모듈은 구체적으로:
    상기 전송기에 저장된 확인되지 않은 소형 패킷의 수량을 0으로 수정하도록 구성되어 있으며,
    상기 확인되지 않은 소형 패킷의 수량은 상기 전송기에 의해 전송되었지만 대응하는 ACK 패킷이 수신되지 않은 소형 패킷의 수량을 나타내는 데 사용되는, 패킷 전송 장치.
  10. 제6항 또는 제7항에 있어서,
    상기 전송기가 상기 다중 경로 연결을 사용하여 상기 소형 패킷을 전송하는 시간 간격을 제어하는 데 타이머가 사용되며, 상기 프로세싱 모듈은 구체적으로:
    상기 타이머가 미리 설정된 시간에 미리 도달할 수 있도록 상기 다중 경로 연결을 사용하여 제1 소형 패킷을 전송한 후 상기 타이머를 수정하도록 구성되어 있으며, 상기 제1 소형 패킷은 현재 순간 이전에 상기 전송기에 의해 전송된 마지막 소형 패킷이며; 그리고
    이에 대응하여, 상기 전송 모듈은 구체적으로:
    상기 타이머가 미리 설정된 시간에 도달할 때, 상기 다중 경로 연결의 복수 경로 중에서 상기 제1 소형 패킷이 전송되지 않는 경로를 통해 중복 전송 모드에서 상기 제1 소형 패킷과 동일한 데이터를 운송하는 소형 패킷을 전송하며; 그리고
    상기 타이머가 상기 미리 설정된 시간에 미리 도달할 수 있도록 상기 제1 소형 패킷과 동일한 데이터를 운송하는 상기 소형 패킷을 전송한 후 상기 타이머를 재수정하고; 상기 타이머가 상기 미리 설정된 시간에 다시 도달할 때 상기 다중 경로 연결의 경로를 통해 제2 소형 패킷을 전송하도록 구성되어 있는, 패킷 전송 장치.
  11. 패킷 전송 장치로서,
    프로세싱 회로, 통신 인터페이스 및 저장 매체를 포함하며,
    상기 저장 매체는 프로토콜 스택 프로그램을 저장하고, 상기 통신 인터페이스는 상기 프로토콜 스택 프로그램을 실행하여 다른 장치로부터 패킷을 수신하거나 또는 다른 장치에 패킷을 전송하도록 구성되어 있고, 상기 프로세서는 상기 통신 인터페이스를 사용하여 상기 저장 매체 내의 명령을 실행하여 제1항 내지 제5항에 따른 패킷 전송 방법을 실행하도록 구성되어 있는, 패킷 전송 장치.
  12. 컴퓨터 판독 가능형 저장 매체로서,
    명령을 포함하며, 상기 명령이 컴퓨터 상에서 실행될 때, 상기 컴퓨터는 제1항 내지 제5항에 따른 방법을 수행하는, 컴퓨터 판독 가능형 저장 매체.
KR1020207025498A 2018-02-12 2019-01-25 패킷 전송 방법 및 관련 장치 KR102476192B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810148231.5 2018-02-12
CN201810148231.5A CN109951260B (zh) 2018-02-12 2018-02-12 一种数据包发送方法及相关设备
PCT/CN2019/073261 WO2019154134A1 (zh) 2018-02-12 2019-01-25 一种数据包发送方法及相关设备

Publications (2)

Publication Number Publication Date
KR20200116985A true KR20200116985A (ko) 2020-10-13
KR102476192B1 KR102476192B1 (ko) 2022-12-08

Family

ID=67006026

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207025498A KR102476192B1 (ko) 2018-02-12 2019-01-25 패킷 전송 방법 및 관련 장치

Country Status (7)

Country Link
US (1) US11444867B2 (ko)
EP (1) EP3739784B1 (ko)
KR (1) KR102476192B1 (ko)
CN (2) CN109951260B (ko)
CA (1) CA3090903C (ko)
ES (1) ES2955714T3 (ko)
WO (1) WO2019154134A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11336683B2 (en) * 2019-10-16 2022-05-17 Citrix Systems, Inc. Systems and methods for preventing replay attacks
CN111147573A (zh) 2019-12-24 2020-05-12 网宿科技股份有限公司 一种数据传输的方法和装置
CN113067741B (zh) * 2020-01-02 2022-11-29 ***通信有限公司研究院 一种信息处理方法、装置、终端及存储介质
CN111885022B (zh) * 2020-07-09 2023-06-20 河南信大网御科技有限公司 基于通信接口的拟态通信方法、通信***及终端设备
CN111901075B (zh) * 2020-07-16 2021-11-23 华中科技大学 多网络融合传输方法、传输***及计算机可读存储介质
CN111970340B (zh) * 2020-07-30 2023-06-16 北京大米科技有限公司 信息传输方法、可读存储介质和电子设备
CN112383472A (zh) * 2020-11-13 2021-02-19 Oppo广东移动通信有限公司 网络传输方法、装置、存储介质及电子设备
CN116684036B (zh) * 2022-11-03 2024-03-22 荣耀终端有限公司 数据处理方法及相关装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170142513A (ko) * 2016-06-17 2017-12-28 주식회사 케이티 다중망 병합 전송 장치, 그리고 이의 패킷 스케줄링 방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101231357B1 (ko) * 2006-04-06 2013-02-07 엘지전자 주식회사 다중 안테나 시스템에서 채널 상태 정보 귀환 방법 및데이터 송신 방법
US9461848B2 (en) * 2009-10-13 2016-10-04 Nec Corporation Gateway device, mobile communication system, mobile terminal, packet transfer control method, control method of mobile terminal, and non-transitory computer readable medium
US9503223B2 (en) * 2011-03-04 2016-11-22 Blackberry Limited Controlling network device behavior
CN102546106B (zh) * 2011-12-28 2014-03-26 南京邮电大学 面向卫星网络的多路径并行传输方法
CN103326831A (zh) 2013-06-04 2013-09-25 华为终端有限公司 在多路传输控制协议中的链路处理方法和移动终端
CN103840917B (zh) * 2014-03-28 2017-04-26 北京邮电大学 一种基于网络编码的多路并行传输方案
CN103905463B (zh) * 2014-04-21 2017-02-15 北京邮电大学 一种适用于多路径传输的连接管理与控制方法
US9787575B2 (en) * 2015-05-28 2017-10-10 Arista Networks, Inc. Method and system for programming equal-cost multi-path routes on network devices
CN105099620B (zh) * 2015-06-03 2020-06-09 香港中文大学深圳研究院 代数交换***及其组装和解码算法、数据包的解码算法
EP3456006B1 (en) * 2016-05-13 2019-10-02 Telefonaktiebolaget LM Ericsson (PUBL) Improved resource usage in a multipath network
EP3459217B1 (en) * 2016-05-16 2020-07-08 Telefonaktiebolaget LM Ericsson (PUBL) Transporting udp packets over an mptcp connection
EP3474471B1 (en) * 2016-06-19 2022-10-05 LG Electronics Inc. Data transmission method and transmitter
US10833735B2 (en) * 2016-06-23 2020-11-10 Lg Electronics Inc. Method and device for receiving signal in wireless communication system to which multiplex transmission technique is applied
WO2017220149A1 (en) 2016-06-23 2017-12-28 Telefonaktiebolaget Lm Ericsson (Publ) Scheduling packets for transport over an mptcp connection
EP3276891B1 (en) * 2016-07-29 2019-02-27 Deutsche Telekom AG Techniques for establishing a communication connection between two network entities via different network flows
CN106254202B (zh) * 2016-08-29 2019-08-02 北京邮电大学 一种基于喷泉码的多路并行传输方法以及装置
CN106656856B (zh) * 2016-12-16 2019-07-26 浙江大学 一种抵抗mptcp接收缓冲区阻塞的数据包调度方法
CN111788817A (zh) * 2018-03-01 2020-10-16 诺基亚技术有限公司 传输控制协议之间的转换

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170142513A (ko) * 2016-06-17 2017-12-28 주식회사 케이티 다중망 병합 전송 장치, 그리고 이의 패킷 스케줄링 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IETF, RFC6897, M. Scharf, Multipath TCP (MPTCP) Application Interface Considerations(March 2013)* *
JiyanWu, Streaming High-Quality Mobile Video with Multipath TCP in Heterogeneous Wireless Networks, IEEE TRANSACTIONS ON MOBILE COMPUTING, VOL. 15, NO. 9, SEPTEMBER 2016(2016.09.30.)* *

Also Published As

Publication number Publication date
US11444867B2 (en) 2022-09-13
KR102476192B1 (ko) 2022-12-08
CN111713056A (zh) 2020-09-25
US20200374217A1 (en) 2020-11-26
CN109951260B (zh) 2020-04-03
EP3739784A1 (en) 2020-11-18
CA3090903A1 (en) 2019-08-15
CA3090903C (en) 2023-04-25
WO2019154134A1 (zh) 2019-08-15
CN109951260A (zh) 2019-06-28
EP3739784B1 (en) 2023-06-21
CN111713056B (zh) 2022-01-14
EP3739784A4 (en) 2021-03-17
ES2955714T3 (es) 2023-12-05

Similar Documents

Publication Publication Date Title
KR102476192B1 (ko) 패킷 전송 방법 및 관련 장치
US11271848B2 (en) Data transmission method, apparatus, and device
EP3533162B1 (en) Handling of data packet transfer via a proxy
CN108881008B (zh) 一种数据传输的方法、装置和***
US10498868B2 (en) Multipath transport communications
US11477130B2 (en) Transmission control method and apparatus
EP2938025B1 (en) Method of data retransmission in collaborative service transmission and access network gateway thereof
WO2010108144A1 (en) Systems and methods for improved wireless interface aggregation
WO2021063147A1 (zh) 异构网络的报文转发方法及装置
KR102397526B1 (ko) 패킷 전송 방법, 네트워크 컴포넌트 및 컴퓨터 판독가능 저장 매체
Liri et al. Robustness of iot application protocols to network impairments
CN108432287A (zh) 一种数据传输方法及网络侧设备
CN115766605A (zh) 网络拥塞控制方法、装置及***
CN111147386B (zh) 用于处理数据传输拥塞的方法、电子设备和计算机可读介质
JP6973511B2 (ja) 通信装置、通信システム、通信方法及びプログラム
Kumar et al. Device‐centric data reordering and buffer management for mobile Internet using Multipath Transmission Control Protocol
KR101396785B1 (ko) 네트워크 장치에서 tcp 기능을 수행하는 방법
Pyk Multipath TCP: Performance in a LTE Environment
Khan et al. Throughput enhancement of simultaneous multipath communication using modified fast retransmit scheme

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