KR102452752B1 - 전송 제어 방법 및 장치 - Google Patents

전송 제어 방법 및 장치 Download PDF

Info

Publication number
KR102452752B1
KR102452752B1 KR1020207033330A KR20207033330A KR102452752B1 KR 102452752 B1 KR102452752 B1 KR 102452752B1 KR 1020207033330 A KR1020207033330 A KR 1020207033330A KR 20207033330 A KR20207033330 A KR 20207033330A KR 102452752 B1 KR102452752 B1 KR 102452752B1
Authority
KR
South Korea
Prior art keywords
packet
sequence number
control signaling
packet sequence
control
Prior art date
Application number
KR1020207033330A
Other languages
English (en)
Other versions
KR20210003834A (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 KR20210003834A publication Critical patent/KR20210003834A/ko
Application granted granted Critical
Publication of KR102452752B1 publication Critical patent/KR102452752B1/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/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0023Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the signalling
    • 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
    • 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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • 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/18End to end
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • 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/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

이 출원은 전송 제어 방법을 기술한다. 제어기 디바이스는, 데이터 패킷을 발신하도록 피어 디바이스를 제어하기 위해, 복수의 파라미터를 전달하는 발신 제어 시그널링을 발신한다. 또한, 제어기 디바이스는, 데이터 패킷의 발신 상태 및 수신 상태를 피드백하도록 피어 디바이스를, 다른 타입의 제어 시그널링을 사용함으로써 제어할 수 있다.

Description

전송 제어 방법 및 장치
본 발명은 통신 분야에 관련되고, 특히, 전송 제어 방법 및 장치에 관련된다.
종래의 통신 방식에서, 프로토콜 스택(protocol stack) 아키텍처, 예를 들어, 보통의 전송 제어 프로토콜(Transmission Control Protocol, TCP), 사용자 데이터그램 프로토콜(User Datagram Protocol, UDP), 또는 도 1에 도시된 바와 같이, 구글(Google)에 의해 제안된 퀵 UDP 인터넷 연결(Quick UDP Internet Connections, QUIC)이 통상적으로 사용되는데, 그 프로토콜 스택 아키텍처에 있어서는 전송단(transmit end)이 결정을 한다. 대안적으로, 몇몇 시나리오에서 더 나은 전송 성능(예를 들어, 네트워크 혼잡을 더 잘 감지할 수 있음)을 획득하기 위해, 도 2에 도시된 바와 같이, 수신단(receive end)이 결정을 하는 프로토콜 스택 아키텍처가 사용될 수 있다.
하나의 연결(connection)의 데이터 전송단 또는 데이터 수신단이 위치된 디바이스는 종단점 디바이스(endpoint device)로 지칭될 수 있다. 실제의 네트워킹 구조(networking structure)에서, 종단점 디바이스는, 예를 들어, 단말 디바이스, 클라우드 디바이스(예를 들어, 클라우드 서버), 또는 몇몇 전송 디바이스(예를 들어, 클라우드 프록시 서버(cloud proxy server), 로드 밸런서(load balancer), 또는 하이브리드 액세스 게이트웨이(hybrid access gateway))일 수 있다. 하나의 종단점 디바이스는 상이한 연결 또는 상이한 시간 기간에서 상이한 역할을 할 수 있다. 예를 들어, 종단점 디바이스는 하나의 연결에서의 전송단일 수 있거나, 다른 연결에서의 수신단일 수 있다. 따라서, 기존의 프로토콜에서, 하나의 연결의 두 종단점 디바이스의 프로토콜 스택은 패킷 전송을 제어하는 능력을 가질 필요가 있다. 예를 들어, 전송단이 결정을 하는 프로토콜 스택 아키텍처에 있어서, 패킷을 발신하는 능력을 가진 모든 종단점 디바이스는 패킷 전송을 제어하는 능력을 가질 필요가 있다. 구체적으로, 디바이스의 관점에서, 연결의 두 종단 모두에서의 디바이스는 패킷 제어를 구현하도록 구성된 모듈을 포함할 필요가 있고, 패킷 전송을 제어하기 위해 양단 합동(dual-end coordination)이 요구된다. 상술한 양단 제어(dual-end control)의 구현은 비교적 복잡하다. 많은 실제의 서비스 시나리오에서, 프로토콜 업그레이드는 불편하고, 전송 제어 알고리즘의 스위칭(switching)에 대한 응답은 느리며, 제어는 충분히 유연하지 않다.
이를 고려하여, 본 발명의 실시예는 전송 제어 방법 및 장치를 제공한다. 연결의 일단(one end)에서의 디바이스에 의해 발신되는 제어 시그널링(control signaling)을 사용함으로써, 타단에서의 디바이스는 결정을 할 필요가 없고, 제어 시그널링에서 전달되는(carried) 파라미터에 기반하여 패킷을 발신할 필요가 있을 뿐이다. 또한, 일단에서의 디바이스가 데이터 전송을 제어하도록 지정되면, 일단에서의 디바이스에 의해 발신되는 제어 시그널링 내의 파라미터 및 제어 시그널링의 발신 순서를 수정함으로써 전송 제어 알고리즘이 구현될 수 있고, 전송 제어 알고리즘이 업그레이드되고 수정될 수 있다. 따라서, 전송 제어 알고리즘을 구현하고 수정하고 업그레이드하는 것이 더욱 편리하다.
제1 측면에 따라, 본 발명의 실시예는 전송 제어 방법을 제공한다. 방법은 다음을 포함한다: 제1 디바이스에 의해, 제1 제어 시그널링을 제2 디바이스에 발신하는 것(제1 제어 시그널링은 제1 그룹의 데이터 패킷을 발신할 것을 제2 디바이스에 지시함(instruct)); 및 제1 디바이스에 의해, 제2 디바이스로부터 적어도 하나의 데이터 패킷을 수신하는 것(적어도 하나의 데이터 패킷은 제1 그룹의 데이터 패킷 중의 데이터 패킷임).
제1 제어 시그널링은 제1 패킷 시퀀스 번호(packet sequence number), 제1 패킷 시퀀스 번호 범위(packet sequence number range) 및 제1 전송 시간 간격(transmission time interval)을 포함하고, 제1 그룹의 데이터 패킷은 제1 패킷 시퀀스 번호 범위 내의, 제1 패킷 시퀀스 번호로부터 시작하는 데이터 패킷이고, 제1 전송 시간 간격은 제1 그룹의 데이터 패킷 중의 데이터 패킷을 발신하기 위한 시간 간격을 나타낸다.
제1 측면에서 기술된 방법은 제어기(controller)에 의해 수행되고, 제어기는 하나의 연결에서 이 출원에 기술된 다양한 제어 시그널링을 발신하는 디바이스이다. 제1 측면에서 언급된 다양한 제어 시그널링은 프레임 내에 캡슐화될(encapsulated) 수 있거나, 패킷 내에 캡슐화될 수 있거나, 프레임 내에 캡슐화되고 이후에 패킷 내에 캡슐화될 수 있다. 제어 시그널링을 전달하는 복수의 프레임이 하나의 패킷 내에 캡슐화될 수 있고, 하나 이상의 조목(piece)의 제어 시그널링이 각각의 프레임 내에 캡슐화될 수 있다.
제1 제어 시그널링은 발신 제어 시그널링이고, 제1 그룹의 데이터 패킷을 발신할 것을 제2 디바이스에 지시하는 데에 사용된다.
전송 시간 간격은 시간 관련 파라미터이고, 대역폭을 사용함으로써 나타내어질 수 있거나, 두 패킷을 발신하는 행동이 수행되는 시간 간격을 사용함으로써 직접적으로 나타내어질 수 있음에 유의하여야 한다.
구현에서, 제1 제어 시그널링은 핸드쉐이크(handshake) 패킷 내에 캡슐화되고, 핸드쉐이크 패킷은 제1 디바이스가 제2 디바이스에의 연결을 수립하는 프로세스에서 사용되는 패킷이다. 이 방식으로, 발신 제어 시그널링은 제2 디바이스가 가능한 한 빨리 데이터 패킷을 발신할 수 있도록, 링크 수립 프로세스에서 제2 디바이스에 발신될 수 있다. 이는, 선행 기술에 비해, 제2 디바이스가 발신 제어 시그널링으로 인해 나중에 데이터 패킷을 발신하는 문제를 방지한다.
구현에서, 제1 제어 시그널링은 제1 제어 프레임 내에 캡슐화되고, 제1 제어 프레임은 타입(type) 필드, 초기 패킷 시퀀스 번호 필드, 패킷 시퀀스 번호 범위 필드 및 전송 시간 간격 필드를 포함하는데, 제1 제어 프레임 내의 타입 필드의 값은 제1 제어 시그널링의 타입에 대응하고, 제1 제어 프레임 내의 초기 패킷 시퀀스 번호 필드의 값은 제1 패킷 시퀀스 번호를 나타내고, 제1 제어 프레임 내의 패킷 시퀀스 번호 범위 필드의 값은 제1 그룹의 데이터 패킷의 패킷 시퀀스 번호의 범위를 나타내고, 제1 제어 프레임 내의 전송 시간 간격 필드의 값은 제1 전송 시간 간격을 나타낸다.
구현에서, 제1 제어 프레임은 흐름 식별 번호(flow identification number) 필드를 더 포함하고, 제1 제어 프레임 내의 흐름 식별 번호 필드의 값은 제1 그룹의 데이터 패킷이 속한 데이터 흐름을 나타내는 데에 사용된다. 구현에서, 제1 제어 프레임 및 제5 제어 프레임이 동일한 패킷 내에 캡슐화되고, 제5 제어 프레임 내에 제5 제어 시그널링이 캡슐화되고, 제5 제어 프레임은 또한 흐름 식별 번호 필드를 포함하고, 제5 제어 시그널링은 제5 그룹의 데이터 패킷을 발신할 것을 제2 디바이스에 지시하는 데에 사용되고, 제5 제어 프레임 내의 흐름 식별자 필드의 값은 제5 그룹의 데이터 패킷이 속한 데이터 흐름을 나타내는 데에 사용된다.
이 방식으로, 연결의 일단에서의 디바이스에 의해 발신되는 제어 시그널링을 사용함으로써, 타단에서의 디바이스는 결정을 할 필요가 없고, 제어 시그널링에서 전달되는 파라미터에 기반하여 패킷을 발신할 필요가 있을 뿐이다. 제1 제어 시그널링을 수신한 후에, 제2 디바이스는 제1 제어 시그널링의 표시(indication)에 기반하여 제1 그룹의 데이터 패킷을 발신함이 이해되어야 한다. 그러나, 발신 지연 및 전송 지연으로 인해, 제1 그룹의 데이터 패킷은 동시에 또는 잇따라서 전송 시간 간격으로 제1 디바이스에 도달하지 않고, 이는 순서 이탈(out-of-order) 또는 패킷 손실(packet loss)을 야기할 수 있다. 따라서, 제1 디바이스는 제1 그룹의 데이터 패킷 중의 하나 이상의 데이터 패킷을 수신한다. 추가로, 다음의 구현에서, 제어를 강화하기 위해, 제1 디바이스는 계속해서 다른 제어 시그널링을 발신한다.
구현에서, 제1 디바이스는 수신된 제1 데이터 패킷에 기반하여 제2 제어 시그널링을 발신한다.
제1 데이터 패킷의 패킷 시퀀스 번호는 적어도 하나의 데이터 패킷 중에서 최대이고, 제2 제어 시그널링은 제2 그룹의 데이터 패킷을 발신할 것을 제2 디바이스에 지시하고, 제2 제어 시그널링은 제2 패킷 시퀀스 번호, 제2 패킷 시퀀스 번호의 범위 및 제2 전송 시간 간격을 포함하고, 제2 그룹의 데이터 패킷은 제2 패킷 시퀀스 번호로부터 시작하는, 제2 패킷 시퀀스 번호 범위 내의 데이터 패킷이고, 제2 전송 시간 간격은 제2 그룹의 데이터 패킷 중의 데이터 패킷을 발신하기 위한 시간 간격을 나타내고, 제2 패킷 시퀀스 번호는 제1 데이터 패킷의 패킷 시퀀스 번호보다 더 크다.
이 방식으로, 제1 디바이스는 제1 그룹의 데이터 패킷 전부가 새로운 제어 시그널링을 발신하기 전에 수신될 것을 기다리지 않아서, 피어 종단(peer end)의 발신에 대해 더 유연하고 효과적인 제어가 수행될 수 있다. 몇몇 구현에서, 제2 제어 시그널링의 발신을 트리거하기(triggering) 위한 특정한 조건이 있을 수 있다. 이들 조건은 각양각색이고 다음일 수 있다: 어떤 시간 후에 제1 그룹의 데이터 패킷 전부가 아직 수신되지 않음; 몇 개의 데이터 패킷이 수신될 때마다 하나의 조목의 제어 시그널링이 발신된다고 지정됨; 및 기타 등등.
구현에서, 제2 디바이스로부터 적어도 하나의 데이터 패킷을 수신한 후에, 방법은 다음을 더 포함한다: 제1 디바이스에 의해, 제3 제어 시그널링을 제2 디바이스에 발신하는 것(제3 제어 시그널링은 제1 패킷 시퀀스 번호를 포함함); 및 제1 디바이스에 의해, 제2 디바이스로부터 제3 제어 시그널링에 대한 응답을 수신하는 것(제3 제어 시그널링에 대한 응답은 제1 패킷 시퀀스 번호 및 제1 패킷 시퀀스 번호로부터 시작하는 적어도 하나의 발신될 데이터 패킷에 대한 정보를 포함함).
구현에서, 제3 제어 시그널링에 대한 응답은 다음을 더 포함한다: 제1 패킷 시퀀스 번호로부터 시작하는 복수의 발신된 데이터 패킷에 대한 정보. 복수의 미발신 또는 발신된 데이터 패킷에 대한 정보는 데이터 패킷의 시퀀스 번호일 수 있거나, 데이터 패킷의 수량일 수 있다.
이 방식으로, 피어 디바이스가 패킷을 발신하는 경우를 실시간으로 추적하기 위해, 제1 디바이스는 제1 그룹의 데이터 패킷의 발신 상태를 피드백할 것을 제2 디바이스에 지시할 수 있다. 이 방식으로, 제1 디바이스는 피드백 정보에 기반하여 적시에 차후의 제어 시그널링 내의 파라미터를 조정할 수 있다. 상술한 몇 개의 제어 시그널링 및 제어 시그널링에 대한 응답은 이 출원에서 발신 제어 부분을 수행하는 데에 사용될 수 있다. 상이한 파라미터를 전달하는 또는 상이한 조건에서 발신되는 제어 시그널링은 데이터를 발신하기 위해 사용되는 다양한 전송 제어 알고리즘을 구현할 수 있다. 구현에서, 제1 디바이스는 상이한 전송 제어 알고리즘에 대응하는 코드를 저장하고, 각각의 전송 제어 알고리즘에 대응하는 코드는 복수의 조목의 제어 시그널링을 응당 포함할 것이다. 하나의 전송 제어 알고리즘에 대응하는 코드는 제어 시그널링이 수행되는 조건과 순서를 기술하는 데에, 그리고 대응하는 전송 제어 알고리즘을 수행하기 위해, 이들 제어 시그널링 내의 파라미터를 어떻게 수정할 것인지를 기술하는 데에 사용된다.
구현에서, 방법은 다음을 더 포함한다: 제1 디바이스에 의해, 제3 그룹의 데이터 패킷을 제2 디바이스에 발신하는 것(제3 그룹의 데이터 패킷은 제3 패킷 시퀀스 번호 범위 내의, 제3 패킷 시퀀스 번호로부터 시작하는 데이터 패킷임); 제1 디바이스에 의해, 제4 제어 시그널링을 제2 디바이스에 발신하는 것(제4 제어 시그널링은 제3 패킷 시퀀스 번호, 제3 패킷 시퀀스 번호 범위 및 타임스탬프(timestamp)를 포함하고, 타임스탬프는 제1 디바이스가 제4 제어 시그널링을 발신하는 시스템 시간임); 및 제1 디바이스에 의해, 제2 디바이스로부터 제4 제어 시그널링에 대한 응답을 수신하는 것(제4 제어 시그널링에 대한 응답은 타임스탬프를 포함하고, 제4 제어 시그널링에 대한 응답은 수신되거나 수신되지 않은 데이터 패킷에 대한 정보를 더 포함하되, 데이터 패킷은 제3 그룹의 데이터 패킷 중의 데이터 패킷임).
수신되거나 수신되지 않은 데이터 패킷에 대한 정보(데이터 패킷은 제3 그룹의 데이터 패킷 중의 데이터 패킷임)는 데이터 패킷의 수량 또는 데이터 패킷의 시퀀스 번호일 수 있거나, 데이터 패킷에 대응하는 데이터 블록에 대한 정보, 예를 들어, 데이터 블록의 수량 또는 시퀀스 번호일 수 있다.
이 방식으로, 피어 디바이스에 대한 수신 제어, 즉, 피어 디바이스가 데이터 패킷의 수신 상태에 대한 피드백을 회신하는 시간의 제어가 구현될 수 있다. 따라서, 전술된 발신 제어를 참조하여, 패킷 전송이 완전하게 제어된다.
구현에서, 제4 제어 시그널링은 제4 제어 프레임 내에 캡슐화되고, 제4 제어 프레임은 타입 필드, 초기 패킷 시퀀스 번호 필드, 패킷 시퀀스 번호 범위 필드 및 타임스탬프 필드를 포함하는데, 제4 제어 프레임 내의 타입 필드의 값은 제4 제어 시그널링의 타입에 대응하고, 제4 제어 프레임 내의 초기 패킷 시퀀스 번호 필드의 값은 제3 패킷 시퀀스 번호를 나타내고, 제4 제어 프레임 내의 패킷 시퀀스 번호 범위 필드의 값은 제3 그룹의 데이터 패킷의 패킷 시퀀스 번호의 범위를 나타낸다.
구현에서, 제1 그룹의 데이터 패킷, 제2 그룹의 데이터 패킷 및 제3 그룹의 데이터 패킷은 각각 제1 흐름 식별자 번호를 전달하고, 제1 제어 시그널링, 제2 제어 시그널링, 제3 제어 시그널링 및 제4 제어 시그널링, 그리고 제3 제어 시그널링에 대한 응답이 위치된 패킷 및 제4 제어 시그널링에 대한 응답이 위치된 패킷은 각각 제2 흐름 식별자 번호를 전달한다.
구현에서, 방법은 다음을 더 포함한다: 제1 디바이스에 의해, 제1 협상 시그널링을 제2 디바이스에 발신하는 것(제1 협상 시그널링은 제1 디바이스의 전송 파라미터 및 역할 파라미터를 포함하고, 제1 디바이스의 전송 파라미터는 제1 디바이스의 전송 능력을 나타내고, 역할 파라미터는 제1 디바이스가 패킷 전송을 제어함을 나타냄); 및 제1 디바이스에 의해, 제2 디바이스로부터 제2 협상 시그널링을 수신하는 것(제2 협상 시그널링은 제2 디바이스의 전송 파라미터 및 역할 파라미터를 포함하고, 제2 디바이스의 전송 파라미터는 제2 디바이스의 전송 능력을 나타내고, 역할 파라미터는 제2 디바이스가 패킷 전송을 제어하지 않음을 나타냄); 그리고 제1 디바이스는 제1 디바이스의 전송 파라미터, 제1 디바이스의 역할 파라미터, 제2 디바이스의 전송 파라미터, 제2 디바이스의 역할 파라미터 및 협상 규칙에 기반하여 패킷 전송을 제어한다.
제2 측면에 따라, 이 출원의 실시예는 전송 제어 방법을 기술하고, 방법은 다음을 포함한다: 제1 디바이스에 의해, 제2 디바이스로의 연결을 수립하는 것(연결은 복수의 경로에 대응함); 제1 디바이스에 의해, 복수의 경로 중의 제1 경로 상에서 제2 디바이스에 제1 패킷을 발신하는 것(제1 패킷은 이중 경로 식별자(dual-path idenetifier)를 포함함); 이중 경로 식별자가 패킷 전송 모드가 단일 경로 전송임을 나타내는 경우에, 제1 디바이스에 의해 제1 경로 상에서, 제2 디바이스에 의해 발신된 패킷을 수신하는 것; 또는 이중 경로 식별자가 패킷 전송 모드가 다중경로 전송임을 나타내는 경우에, 제1 디바이스에 의해 복수의 경로 각각 상에서, 제2 디바이스에 의해 발신된 패킷을 수신하는 것.
다중경로 전송은 잉여적(redundant) 전송이거나 아니면 집성된(aggregated) 전송이다. 이중 경로 식별자는 연결의 패킷 전송 모드를 나타내는 데에 사용된다. 이 방식으로, 다중경로 전송 시나리오에서, 데이터를 발신하는 방식은 이중 경로 식별자를 사용함으로써 피어 디바이스에 나타내어질 수 있다.
제3 측면에 따라, 이 출원의 실시예는 전송 제어 방법을 기술하는데, 방법은 다음을 포함한다: 제2 디바이스에 의해, 제1 디바이스로부터 제1 제어 시그널링을 수신하는 것(제1 제어 시그널링은 제1 패킷 시퀀스 번호, 제1 패킷 시퀀스 번호 범위 및 제1 전송 시간 간격을 포함함); 및 제2 디바이스에 의해, 제1 전송 시간 간격으로 제1 제어 시그널링에 기반하여 제1 디바이스에 적어도 하나의 제1 데이터 패킷을 발신하는 것(복수의 제1 데이터 패킷은 제1 패킷 시퀀스 번호로부터 시작하는, 제1 패킷 시퀀스 번호 범위 내의 데이터 패킷임).
제3 측면에서 기술된 방법은, 제3 측면이 제2 디바이스의 관점으로부터 기술된다는 것을 제외하면, 제1 측면에 기술된 방법에 대응한다. 따라서, 제3 측면의 다양한 구현, 서술 및 유익한 효과에 대해, 제1 측면에서의 서술을 참조하시오.
제4 측면에 따라, 이 출원의 실시예는 전송 제어 방법을 기술하는데, 제1 디바이스 및 제2 디바이스 간의 연결은 복수의 경로에 대응하고, 방법은 다음을 포함한다: 제2 디바이스에 의해, 복수의 경로 중의 제1 경로 상에서 제1 디바이스로부터 제1 패킷을 수신하는 것(제1 패킷은 이중 경로 식별자를 포함하고, 이중 경로 식별자는 연결의 패킷 전송 모드를 나타내는 데에 사용됨); 및 이중 경로 식별자가 패킷 전송 모드가 단일 경로 전송임을 나타내는 경우에, 제2 디바이스에 의해, 제1 경로 상에서 제1 디바이스에 패킷을 발신하는 것; 또는 이중 경로 식별자가 패킷 전송 모드가 다중경로 전송임을 나타내는 경우에, 제2 디바이스에 의해, 복수의 경로 각각 상에서 제1 디바이스에 패킷을 발신하는 것.
다중경로 전송은 잉여적 전송이거나 아니면 집성된 전송이다. 이중 경로 식별자는 연결의 패킷 전송 모드를 나타내는 데에 사용된다. 이 방식으로, 다중경로 전송 시나리오에서, 데이터를 발신하는 방식은 이중 경로 식별자를 사용함으로써 피어 디바이스에 나타내어질 수 있다.
제5 측면에 따라, 이 출원의 실시예는 전송 제어 장치를 기술하고, 장치는 다음을 포함한다: 제어 모듈(제어 모듈은 제1 제어 시그널링을 생성하도록 구성됨); 발신 모듈(발신 모듈은 제2 디바이스에 제1 제어 시그널링을 발신하도록 구성되되, 제1 제어 시그널링은 제1 그룹의 데이터 패킷을 발신할 것을 제2 디바이스에 지시하고, 제1 제어 시그널링은 제1 패킷 시퀀스 번호, 제1 패킷 시퀀스 번호 범위 및 제1 전송 시간 간격을 포함하고, 제1 그룹의 데이터 패킷은 제1 패킷 시퀀스 번호로부터 시작하는, 제1 패킷 시퀀스 번호 범위 내의 데이터 패킷이며, 제1 전송 시간 간격은 제1 그룹의 데이터 패킷 중의 데이터 패킷을 발신하기 위한 시간 간격을 나타냄); 및 수신 모듈(수신 모듈은 제2 디바이스로부터 적어도 하나의 데이터 패킷을 수신하도록 구성되되, 적어도 하나의 데이터 패킷은 제1 그룹의 데이터 패킷 중의 데이터 패킷임).
구현에서, 제어 모듈은 인터페이스 함수(interface function)를 사용함으로써 발신 모듈에 제1 제어 시그널링을 전하도록 또한 구성된다.
제5 측면에서 기술된 장치는 제1 측면에서 기술된 방법을 수행할 수 있다. 제5 측면에서 기술된 장치가 제1 측면에서 기술된 방법에 대응하므로, 제5 측면의 다양한 구현, 서술 및 유익한 효과에 대해, 제1 측면에서의 서술을 참조하시오.
제6 측면에 따라, 이 출원의 실시예는 전송 제어 장치를 기술하는데, 장치는 제1 디바이스 내에 위치되고, 제1 디바이스 및 제2 디바이스 간의 연결은 복수의 경로에 대응한다. 장치는 다음을 포함한다: 제어 모듈(제어 모듈은 제1 패킷을 생성하도록 구성되고, 제1 패킷은 이중 경로 식별자를 포함함); 발신 모듈(발신 모듈은 복수의 경로 중의 제1 경로 상에서 제2 디바이스에 제1 패킷을 발신하도록 구성됨); 및 수신 모듈(수신 모듈은: 이중 경로 식별자가 패킷 전송 모드가 단일 경로 전송임을 나타내는 경우에, 제1 경로 상에서, 제2 디바이스에 의해 발신된 패킷을 수신하거나; 이중 경로 식별자가 패킷 전송 모드가 다중경로 전송임을 나타내는 경우에, 복수의 경로 각각 상에서, 제2 디바이스에 의해 발신된 패킷을 수신하도록 구성됨).
다중경로 전송은 잉여적 전송이거나 아니면 집성된 전송이다. 이 방식으로, 다중경로 전송 시나리오에서, 데이터를 발신하는 방식은 이중 경로 식별자를 사용함으로써 피어 디바이스에 나타내어질 수 있다.
구현에서, 제어 모듈은 인터페이스 기능을 사용함으로써 발신 모듈에 제1 패킷을 전하도록 또한 구성된다.
제7 측면에 따라, 이 출원의 실시예는 전송 제어 장치를 기술하는데, 장치는 수신 모듈 및 발신 모듈을 포함하되, 수신 모듈은 제1 디바이스로부터 제1 제어 시그널링을 수신하도록 구성되고, 제1 제어 시그널링은 제1 패킷 시퀀스 번호, 제1 패킷 시퀀스 번호 범위 및 제1 전송 시간 간격을 포함하고; 발신 모듈은 제1 전송 시간 간격으로 제1 제어 시그널링에 기반하여 제1 디바이스에 적어도 하나의 제1 데이터 패킷을 발신하도록 구성되되, 복수의 제1 데이터 패킷은 제1 패킷 시퀀스 번호로부터 시작하는, 제1 패킷 시퀀스 번호 범위 내의 데이터 패킷이다.
제7 측면은 제3 측면에서의 방법에 대응하는 장치를 기술한다. 제3 측면에서 기술된 방법은, 제3 측면이 제2 디바이스의 관점으로부터 기술된다는 것을 제외하면, 제1 측면에 기술된 방법에 대응한다. 따라서, 제7 측면의 다양한 구현, 서술 및 유익한 효과에 대해, 제1 측면에서의 서술을 참조하시오.
제8 측면에 따라, 이 출원의 실시예는 전송 제어 장치를 기술하는데, 장치는 제2 디바이스 내에 위치되고, 제1 디바이스 및 제2 디바이스 간의 연결은 복수의 경로에 대응하고, 장치는 수신 모듈 및 발신 모듈을 포함하되, 수신 모듈은 복수의 경로 중의 제1 경로 상에서 제1 디바이스로부터 제1 패킷을 수신하도록 구성되고, 제1 패킷은 이중 경로 식별자를 포함하고, 이중 경로 식별자는 연결의 패킷 전송 모드를 나타내는 데에 사용되고; 발신 모듈은: 이중 경로 식별자가 패킷 전송 모드가 단일 경로 전송임을 나타내는 경우에, 제2 디바이스에 의해, 제1 경로 상에서 제1 디바이스에 패킷을 발신하거나; 이중 경로 식별자가 패킷 전송 모드가 다중경로 전송임을 나타내는 경우에, 제2 디바이스에 의해, 복수의 경로 각각 상에서 제1 디바이스에 패킷을 발신하도록 구성된다.
다중경로 전송은 잉여적 전송이거나 아니면 집성된 전송이다. 이 방식으로, 다중경로 전송 시나리오에서, 데이터를 발신하는 방식은 이중 경로 식별자를 사용함으로써 피어 디바이스에 나타내어질 수 있다.
제9 측면에 따라, 이 출원의 실시예는 전송 제어 디바이스를 기술하는데, 디바이스는 처리 회로, 통신 인터페이스 및 저장 매체를 포함하되, 저장 매체는 명령어를 포함하고, 통신 인터페이스는 프로세서에 의해 전해진 명령어에 기반하여 다른 디바이스와의 정보 교환을 수행하도록 구성되고, 프로세서는 제1 측면 또는 제2 측면의 구현 중 임의의 것에 따라 방법을 구현하기 위해, 통신 인터페이스를 제어하기 위해 저장 매체 내에 저장된 명령어를 구동하도록(run) 구성된다.
제9 측면은 제1 측면 또는 제2 측면에 대응하는 장치를 기술한다. 제9 측면의 다양한 구체적인 구현, 서술 및 기술적 효과에 대해, 제1 측면 및 제2 측면에서의 서술을 참조하시오. 세부사항은 여기에서 다시 기술되지 않는다.
제10 측면에 따라, 이 출원의 실시예는 전송 제어 디바이스를 기술하는데, 디바이스는 처리 회로, 통신 인터페이스 및 저장 매체를 포함하되, 저장 매체는 명령어를 포함하고, 통신 인터페이스는 프로세서에 의해 전해진 명령어에 기반하여 다른 디바이스와의 정보 교환을 수행하도록 구성되고, 프로세서는 제3 측면 또는 제4 측면의 구현 중 임의의 것에 따라 방법을 구현하기 위해, 통신 인터페이스를 제어하기 위해 저장 매체 내에 저장된 명령어를 구동하도록 구성된다.
제10 측면은 제3 측면 또는 제4 측면에 대응하는 장치를 기술한다. 제10 측면의 다양한 구체적인 구현, 서술 및 기술적 효과에 대해, 제3 측면 및 제4 측면에서의 서술을 참조하시오. 세부사항은 여기에서 다시 기술되지 않는다.
제11 측면에 따라, 컴퓨터 프로그램 제품이 제공되는데, 컴퓨터 프로그램 제품은 제1 내지 제4 측면의 구현에서의 방법 중 임의의 것을 구현하는 데에 사용되는 프로그램 코드를 저장한다.
제12 측면에 따라, 명령어를 포함하는 컴퓨터 판독가능 저장 매체가 제공되고, 명령어가 컴퓨터 상에서 구동되는 경우에, 컴퓨터는 제1 내지 제4 측면의 구현 중의 임의의 것에서의 방법을 구현하는 데에 사용되는 프로그램 코드를 실행할 수 있게 된다.
본 발명의 실시예에서의 기술적 해결안을 더욱 명확히 설명하기 위해, 다음은 실시예를 설명하는 데에 요구되는 첨부된 도면을 간략하게 설명한다. 명백히, 다음의 설명에서의 첨부된 도면은 본 발명의 일부 실시예를 도시할 뿐이며, 통상의 기술자는 창조적 노력 없이도 이들 첨부된 도면으로부터 다른 도면을 도출할 수 있다.
도 1은 데이터 전송단이 전송을 제어하는 시스템의 개략도이고,
도 2는 데이터 수신단이 전송을 제어하는 시스템의 개략도이고,
도 3은 이 출원에 따른 네트워킹 시스템의 개략도이고,
도 4는 이 출원에 따른 디바이스의 구조도이고,
도 5는 이 출원에 따른 프레임 헤더(frame header)의 개략도이고,
도 6은 이 출원에 따라 제어 시그널링을 발신하는 것의 개략도이고,
도 7은 이 출원에 따른 피어 정보 요청 시그널링에 대한 응답의 개략도이고,
도 8은 이 출원에 따른 수신 제어 시그널링의 개략도이고,
도 9는 이 출원에 따른 전송 제어 방법의 흐름도이고,
도 10은 이 출원에 따라 전송 제어 방법을 수행하기 위한 시스템의 개략도이고,
도 11은 이 출원에 따라 제어기를 협상하기 위한 방법의 시그널링 상호작용의 개략도이고,
도 12는 이 출원에 따라 전송 제어 방법을 수행하기 위한 장치의 개략도이고,
도 13은 이 출원에 따라 전송 제어 방법을 수행하기 위한 다른 장치의 개략도이고,
도 14는 이 출원에 따라 전송 제어 방법을 수행하기 위한 또 다른 장치의 개략도이다.
본 발명의 실시예는 전송 제어 방법, 장치 및 시스템을 제공한다. 다음은 본 발명의 실시예에서의 첨부된 도면을 참조하여 본 발명의 실시예에서의 기술적 해결안을 명확하고 완전하게 기술한다. 창조적 노력 없이 본 발명의 실시예에 기반하여 통상의 기술자에 의해 획득되는 모든 다른 실시예는 본 발명의 보호 범위 내에 속할 것이다.
위에서 언급된 양단 제어는 실제의 시나리오에서 매우 흔하다. 예를 들어, 현재, 사람들은 정보 또는 서비스를 얻기 위해 인터넷에 연결하는 데에 모바일 전화와 같은 단말 디바이스를 사용한다. 이는 클라우드측 디바이스 및 종단측 디바이스 간의 전형적인 통신이다. 단말 제품은 급속히 개발 중이며, 단말 제품의 하드웨어 및 운영 체제(operating system)는 복수의 애플리케이션을 지원할 수 있다. 종단측 디바이스의 소프트웨어는 통상적으로 온라인 업그레이드를 통해서 또는 업데이트 패키지를 다운로드함으로써, 또는 기타 등등으로 업데이트된다. 이러한 유연한 업데이트 방식은 서비스 요구사항의 변화를 면밀히 따르고, 새로운 서비스의 네트워크 전송 품질을 보장하여서, 단말 제품은 더 많은 타입의 더 복잡한 서비스를 지원할 수 있다. 단말 상의 애플리케이션 또는 웹 페이지에 의해 제공되는 서비스는 통상적으로 클라우드(예를 들어, 서버 또는 클라우드 플랫폼)와의 데이터 교환에 의존한다. 빠르게 변하는 단말 시장과는 달리, 전송의 다른 참여자로서의 클라우드측 디바이스는 많은 수량의 서비스 및 서비스의 복잡도와 같은 특성으로 인해 업데이트 빈도와 업데이트 속도, 그리고 심지어 업데이터 권한에 있어서 많이 제한된다. 클라우드측 디바이스는 서비스 콘텐트(content) 제공자로서의 역할을 하고, 이 제한은 모바일 인터넷의 전송 품질의 개선을 심각하게 제약한다.
따라서, 이 출원은 전송 제어 방법 및 장치를 제공한다. 방법에 따르면, 일단에서의 디바이스가 패킷 전송을 제어할 수 있다. 일단에서의 디바이스에 의해 발신된 제어 시그널링을 사용함으로써, 타단에서의 디바이스는 결정을 할 필요가 없고, 제어 시그널링 내에서 전달된 파라미터에 기반하여 패킷을 전송하고 패킷 수신 상태를 피드백할 필요가 있을 뿐인바, 패킷 전송이 데이터 전송단 또는 데이터 수신단에 의해 제어되는 선행 기술과는 상이하다. 이 방식으로, 전송 제어 알고리즘 내의 단계가 일단에 의한 제어를 통해서 구현될 수 있다. 두 종단에서의 디바이스들은 전송 제어 알고리즘의 업그레이드 또는 스위칭에 관여될 필요가 없고, 따라서 업그레이드가 더욱 편리하고 효율적으로 완수될 수 있다. 이 출원에서, 제어되는 패킷은 주로 데이터 패킷, 곧, 데이터 패키지이며, 몇몇 피드백 패킷을 더 포함할 수 있다. 이 방식으로, 패킷 전송을 제어하는 디바이스가 지정될 수 있거나, 연결 내의 두 종단에서의 디바이스의 협상을 통해서 제어기가 판정될 수 있다. 이 경우에, 타단에서의 디바이스는 결정을 할 필요가 없고, 단지 제어기의 제어 시그널링에 기반하여 패킷을 발신할 수 있다. 이 출원에서 기술된 방법은 다양한 통신 시나리오, 예를 들어, 단말 디바이스 간의 통신, 클라우드 디바이스 간의 통신 및 단말 디바이스와 클라우드 디바이스 간의 통신(줄여서 종단-클라우드 통신(end-cloud communication)으로 지칭됨)에 적용가능하다.
이 출원에서 A 및/또는 B는 A 및 B, 또는 A 또는 B를 나타냄에 유의하여야 한다.
다음은 이 출원에서 사용되는 몇몇 용어를 기술한다.
전송단(발신기(sender)) 및 수신단(수신기(receiver)) 간의 데이터 전송을 위해 연결이 사용된다. 하나의 연결은 네트워크 토폴로지(network topology) 내의 복수의 경로에 대응할 수 있고, 복수의 흐름이 하나의 연결 상에서 전송될 수 있다. 경로는 전송단(발신기) 및 수신단(수신기) 간의 링크(link)이다. 복수의 흐름은 하나의 애플리케이션에 속할 수 있거나, 상이한 애플리케이션에 속할 수 있다. 경로는 4-튜플(tuple) 또는 5-튜플을 사용함으로써 식별될 수 있다. 예를 들어, 5-튜플은 소스(source) IP 주소, 소스 포트 번호, 목적지(destination) IP 주소, 목적지 포트 번호 및 전송 계층 프로토콜 이름을 포함한다.
전송: 양방향 정보 교환, 즉, 발신 및 수신 양자 모두가 포함된다.
ACK(Acknowledgement(확인응답)): 확인응답 패킷 또는 ACK 패킷으로 또한 지칭된다. 이 출원에서, ACK는 수신기에 의해 하나 이상의 수신된 데이터 패킷을 발신기에 피드백하기 위해 사용된다. 상응하여, NACK(곧, Non-Acknowledgement(비확인응답))이 있고, NACK은 수신되지 않은 하나 이상의 데이터 패킷을 발신기에 피드백하기 위해 수신기에 의해 사용된다.
혼잡 윈도우(CWND, congestion window)는 TCP 데이터 전송에서의 혼잡 제어의 경우에 데이터의 소스 종단에 의해 어떤 시간에 발신될 수 있는 데이터 패킷의 최대 수량이다. 혼잡 윈도우는 cwnd 또는 CWND로 약칭될 수 있음이 이해되어야 한다.
발신 윈도우(윈도우로도 지칭됨)는 데이터 전송단이 전송하도록 허용된 바이트의 수량을 나타내는 데에 사용되고, 또한 데이터 수신단이 데이터 전송단으로 하여금 어떤 시간에 전송 큐(transmit queue) 내에 넣도록 허용하는 최대 데이터 양이다.
RTT(Round-trip Time(라운드 트립 시간)): 전송단이 데이터를 발신하는 시간으로부터 데이터에 대응하고 수신단에 의해 발신된 수신 확인응답 정보(예를 들어, ACK 또는 NACK)가 수신되는 시간까지의 지연을 나타내는 라운드 트립 시간.
핸드쉐이크 패킷(Handshake packet): 보안의 암호화된 전송 프로토콜을 통한 클라이언트 및 스테이션 간의 연결을 수립하는 데에 사용되는 패킷. 핸드쉐이크 패킷은 연결의 핸드쉐이크 국면에서 발생한다. 보안 암호화된 전송은 전송 계층 보안(Transport Layer Security, TLS) 프로토콜, 보안 소켓 계층(Secure Sockets Layer, SSL) 프로토콜, 데이터그램 전송 계층 보안(Datagram Transport Layer Security, DTLS) 프로토콜, 또는 유사한 것을 사용함으로써 구현될 수 있다.
흐름(flow): 연결 상에서 전송되는 패킷의 그룹. 복수의 흐름이 연결 상에서 전송될 수 있고, 그룹의 패킷의 패킷 헤더는 동일한 흐름 식별자 번호를 전달한다. 그룹의 패킷은 서비스를 구현하는 데에 사용될 수 있다. 예를 들어, 웹 페이지 상에서 그룹의 픽처의 데이터를 또는 비디오 웹사이트 상에서 작은 비디오의 데이터를 전송하는 데에 스트림이 사용된다.
종단-클라우드 통신 시나리오가 예로서 사용된다. 도 3은 이 출원에서의 공통적인 네트워킹 시스템을 도시한다. 도 3에서, 단말 및 클라우드 디바이스(예를 들어, 도면에 도시된 클라우드 플랫폼 1, 클라우드 서버 2 및 클라우드 서버 3) 간의 링크가 하이브리드 액세스 게이트웨이 또는 프록시 서버를 통과할 수 있다. 이 출원에서 기술된 전송 제어 방법에서의 제어기는 단말일 수 있다. 이 경우에, 제어되는 디바이스는 클라우드 디바이스(예를 들어, 클라우드 서버 3), 하이브리드 액세스 게이트웨이, 또는 프록시 서버이다. 대조적으로, 제어기는 클라우드 디바이스(예를 들어, 클라우드 서버 3), 하이브리드 액세스 게이트웨이, 또는 프록시 서버이고, 제어되는 디바이스는 이들 디바이스를 액세스하는 단말이다. 예를 들어, 만일 단말 디바이스가 제어기인 경우, 단말 디바이스 및 클라우드 간의 통신은 항상 단말에 의해 제어될 수 있다. 이 경우에, 단말 디바이스만이 업그레이드될 필요가 있는데, 이는 분명히 더 용이하게 구현된다. 대안적으로, 클라우드 디바이스가 제어기로서 사용되고, 모든 단말 디바이스 및 클라우드 디바이스 간의 통신의 과정에서, 패킷 전송은 항상 클라우드 디바이스에 의해 제어된다. 따라서, 만일 전송 제어 알고리즘이 업그레이드되거나 조정될 필요가 있는 경우, 클라우드 디바이스만이 전송 성능을 최적화하도록 조정될 필요가 있고, 이는 분명히 클라우드 서비스 제공자 또는 네트워크 서비스 제공자에게 역시 꽤 편리하다.
이 출원에서의 디바이스는 클라우드 디바이스 또는 단말 디바이스일 수 있다. 다양한 클라우드 플랫폼이 클라우드 디바이스 상에서 구동될 수 있고, 애플리케이션의 클라이언트가 단말 디바이스 상에서 구동될 수 있다. 구체적으로, 도 4에 도시된 바와 같이, 디바이스의 하드웨어는 다양한 하드웨어 컴포넌트 또는 장치, 예를 들면 메모리, 프로세서, 그리고 네트워크 상호연결을 위해 사용되는 네트워크 인터페이스 카드를 포함한다. 디바이스의 소프트웨어는 운영 체제 및 운영 체제의 사용자 모드(user mode)에서 구동되는 애플리케이션(예를 들어, 애플리케이션 1, 애플리케이션 2 및 애플리케이션 3)을 포함한다. 운영 체제는 커널 모드(kernel mode) 및 사용자 모드로 나뉠 수 있다. 다중 계층 구조로써, 프로토콜 스택은 커널 모드 및 사용자 모드 양자 모두 내에 분포된다. 그러나, 디바이스 내에 배열될 수 있는 상이한 프로토콜 스택의 위치는 또한 약간 상이하다. 예를 들어, UDP, 스트림 제어 전송 프로토콜(Stream Control Transmission Protocol, STCP), 또는 유사한 것은 커널 모드 프로토콜이고, QUIC 프로토콜 및 몇몇 사설 프로토콜은 사용자 모드 프로토콜에 속하고, TCP 프로토콜은 커널 모드 프로토콜 또는 사용자 모드 프로토콜일 수 있다. 디바이스는 통상적으로 복수의 전송 프로토콜로써 구성된다. 디바이스에 의해 지원되는 프로토콜의 타입은 이 출원에서 한정되지 않는다.
이 출원에서 기술된 전송 방법은 새로운 전송 프로토콜을 제안한다. 새로운 전송 프로토콜은 기존의 프로토콜을 수정함 또는 전유(proprietary) 프로토콜을 정의함으로써 구현된다. 디바이스에 대응하는 소프트웨어 구조는 기존의 프로토콜 스택, 예를 들어, 사용자 모드 또는 커널 모드 내의 TCP 프로토콜 스택, UDP 프로토콜 스택, 또는 QUIC 프로토콜 스택에 대한 개선일 수 있거나, 새로운 전유 프로토콜 스택이 사용자 모드에 추가되어, 단일화된 포맷을 갖고 제어 시그널링을 전달하는 제어 패킷 또는 프레임을 생성하여서, 피어 디바이스를 제어하는데, 제어 패킷의 포맷 또는 프레임의 포맷은 데이터 패킷의 포맷과 상이할 수 있다. 제어 시그널링은 복수의 방식으로 전달될 수 있다. 예를 들어, 기존의 프로토콜 내의 확장 패킷 헤더에 기반하여, 패킷에 독립적인 프레임이 사용되거나(예를 들어, 이 형태는 QUIC 프로토콜을 개선하는 데에 사용됨), 제어 시그널링이 QUIC 패킷 또는 UDP 패킷의 페이로드(payload)로서 사용되거나, 제어 시그널링이 TC 프로토콜의 옵션 내에 정의되거나, 기타 등등이다. 제어 패킷 또는 프레임의 과도한 발신을 방지하기 위해, 하나의 제어 패킷 또는 프레임은 복수의 조목의 제어 시그널링을 전달할 수 있고, 구체적인 구현은 이 출원에서 한정되지 않는다. 예를 들어, 구현에서, 하나의 제어 패킷은 복수의 프레임을 포함하고, 각각의 프레임은 하나의 조목의 제어 시그널링을 포함한다. 각각의 프레임이 하나의 흐름 ID를 전달할 수 있고, 하나의 흐름 ID는 연결 상에서 전송되는 하나의 흐름을 나타내므로, 하나의 제어 패킷은 상이한 흐름의 패킷 전송을 제어하는 데에 사용되는 제어 시그널링을 전달할 수 있다. 다른 구현에서, 하나의 프레임은 복수의 조목의 제어 시그널링을 전달한다. 이 방식으로, 프레임 헤더의 수량이 감소될 수 있고, 프레임의 특정 로드(load)에 대응하는 흐름의 제어 시그널링이 사전정의될 수 있다.
이 출원에서, 로컬 디바이스(local device)가 제어기라는 관점으로부터 설명이 제공된다. 전송 제어는 적어도 2개의 측면을 포함한다: 발신 제어, 즉, 데이터를 전달하는 패킷을 피어 디바이스가 어떻게 발신하는지를 로컬 디바이스가 제어함; 수신 제어, 즉, 피어 디바이스에 데이터를 발신한 후에, 어떻게 피어 디바이스가 데이터의 수신 결과를 피드백하는지를 로컬 디바이스가 제어함. 이 출원에서 피드백되는 결과는 아래에서 새로 정의되는 포맷을 사용할 수 있음이 이해되어야 한다. 대안적으로, 기존의 TCP 프로토콜 내의 ACK 또는 NACK와 같은 피드백 패킷의 포맷이 참조될 수 있다. 두 타입의 제어가 상이한 타입의 파라미터를 전달하는 것을 구현하는 데에 제어 시그널링이 사용된다. 제어기인 디바이스는 계속해서 제어 시그널링을 발신하고 제어 시그널링 내에서 전달되는 파라미터의 값을 조정함으로써 다양한 전송 제어 알고리즘을 구현할 수 있다. 예를 들어, 로컬 디바이스는 연결된 네트워크 상태에 기반하여 파라미터를 조정하여, 전송 제어 알고리즘을 스위칭하거나 전송 제어 알고리즘의 상이한 국면을 구현한다. 네트워크 상태는 이들 파라미터 중 적어도 하나에 의해 나타내어질 수 있다: 대역폭, 지연(전송 지연 또는 라운드 트립 시간), 지연 변이(delay variation), 지터(jitter), 패킷 손실률(packet loss rate), 액세스된 네트워크의 신호 세기 및 유사한 것.
이 방식으로, 전송 프로세스에서, 로컬 디바이스는 전송 제어 알고리즘을 스위칭하기 위해 실시간으로 조정을 수행할 수 있다. 구체적으로, 상이한 시나리오에서 상이한 애플리케이션을 위해 더 나은 네트워크 서비스 품질을 제공하기 위해, 파라미터가 조정된다.
추가로, 로컬 디바이스는 상이한 전송 제어 알고리즘을 구현하는 데에 사용되는 복수의 제어 시그널링 세트를 유지하고, 상이한 전송 제어 알고리즘 중 하나 이상이 디폴트(default) 전송 제어 알고리즘으로 설정될 수 있다. 물론, 로컬 디바이스가 더 많은 전송 제어 알고리즘을 지원하도록, 제어 시그널링 세트가 대안적으로 추가될 수 있다. 로컬 디바이스의 전송 제어는 또한 상술한 제어 시그널링을 사용함으로써 구현될 수 있고, 제어 시그널링은 정의된 인터페이스 함수를 사용함으로써 전해진다. 이 방식으로, 다양한 전송 제어 알고리즘은 다음의 몇 개의 타입의 제어 시그널링을 기본 형태소로서 사용할 수 있고 파라미터, 파라미터의 순차적 반복 및 파라미터의 조합을 변경함으로써 표현된다. 예를 들어, 다음의 몇 개의 타입의 제어 시그널링은 26개의 영문자로서 간주될 수 있고, 다양한 단어가 조합을 통해서 다양한 문장을 형성하도록 산출될 수 있는데, 이들 단어 및 문장은 각양각색의 전송 제어 알고리즘이다. 따라서, 이 출원에서 기술된 제어 시그널링이 사용되는 경우에, 기존의 프로토콜에서 지정된 네트워크 파라미터, 예를 들어, 대역폭, 패킷 손실률, 또는 라운드 트립 시간과 같은 파라미터는, 연결의 전송 성능을 기술하는 데에 여전히 사용될 수 있다. 따라서, 알고리즘 로직을 전체로서 대체하지 않고서, 제어 시그널링의 발신 순서 및 파라미터를 전달하는 규칙이 수정된다면 전송 제어 알고리즘이 조정될 수 있다. 이는 디바이스에 의한 처리를 더 간단하고 더 편리하게 하고, 전송 제어 알고리즘을 업그레이드하거나 조정하는 것의 작업부하(workload)를 감소하고, 업그레이드 효율성을 개선한다.
제어 시그널링은 제어 패킷 또는 제어 프레임 내에 캡슐화될 수 있다. 예를 들어, 제어 시그널링은 프레임으로서 캡슐화되고 UDP 패킷의 로드로서 사용된다. 비-데이터 패킷(예를 들어, 제어 시그널링 및 이의 응답) 및 데이터는 상이한 흐름에서 전송될 수 있다. 상이한 흐름은 상이한 ID에 의해 식별되는데, 이는 흐름 식별 번호 또는 흐름 ID로서 지칭된다. 다시 말해, 하나의 연결은 복수의 흐름에 의해 재사용되는바, 즉, 제어 흐름 및 데이터 흐름이 구별되고, 데이터 흐름 및 제어 흐름은 상이한 전송 프로토콜을 사용할 수 있다. 구현에서, 데이터 흐름 및 제어 흐름은 동일한 애플리케이션에 속하고, 애플리케이션의 데이터만이 하나의 데이터 흐름 및 데이터 흐름에 대응하는 제어 흐름 내에서 전송된다. 구현에서, 복수의 애플리케이션의 제어 시그널링이 동일한 제어 흐름 내에서 전송된다. 이 방식으로, 전송에서의 순서를 더 양호하게 보존하기 위해, 시퀀스 번호가 제어 프레임 또는 제어 패킷에 개별적으로 할당될 수 있다. 예를 들어, 제어 프레임의 시퀀스 번호는 1의 공차가 있는 점진적으로 증가하는 시퀀스에 의해 나타내어진다. 구현에서, 각각의 제어 프레임은 제어 프레임 내에서 전달되는 제어 시그널링의 타입을 나타내기 위해, 타입 파라미터를 포함할 수 있고, 이는 제어 시그널링을 수신하는 디바이스가 타입을 식별하는 것을 돕는바, 즉, 동일한 타입의 제어 시그널링이 제어 프레임 내에 캡슐화된다. 파라미터는 프레임 헤더 내에서 전달될 수 있고, 제어 시그널링은 또한 프레임 헤더 뒤의 부분 내에서 전달된다. 프레임 헤더는 타입 및 프레임 시퀀스 번호를 포함하는 일반적인 포맷으로 될 수 있다. 다른 구현에서, 프레임 헤더는 흐름 식별자 필드를 더 포함하는데, 이는 위에서 기술된 흐름 식별 번호를 전달하는 데에 사용된다. 예를 들어, 도 5에 도시된 프레임 헤더 구조에서, 타입 필드의 길이는 8 비트(1 바이트)이고, 흐름 식별자 필드의 길이는 32 비트(4 바이트)이고, 프레임 시퀀스 번호 필드의 길이는 32 비트(4 바이트)이다. 따라서, 상이한 흐름을 제어하는, 데이터 패킷의 제어 시그널링이 상이한 프레임 내에 캡슐화될 수 있다. 타입 필드는 단독으로 값을 정의할 수 있다. 예를 들어, 발신 제어 프레임의 타입 필드는 0x01이고, 피어 정보 요청 프레임의 타입 필드는 0x02이고, 피어 정보 응답(확인응답) 프레임의 타입 필드는 0x03이고, 수신 제어 프레임의 타입 필드는 0x04임이 정의되고, 다양한 프레임이 대응 타입의 시그널링을 전달한다.
연결에 대해, 두 종단에서의 디바이스는, 연결의 링크 수립 국면에서 또는 링크 수립 전에도, 하나의 디바이스를 제어기라고 판정할 수 있다. 링크 수립 국면의 판정 프로세스가 아래에서 기술된다. 물론, 디바이스가 또한 지정될 수 있거나, 디폴트로 일단에서의 디바이스가 제어기임이 지정된다. 다음은, 제1 디바이스 및 제2 디바이스가 연결을 통해서 데이터를 전송하고 제1 디바이스가 제어기인 예를 사용함으로써, 제1 디바이스가 피어 디바이스, 곧, 제2 디바이스에 의해 데이터를 전송하는 프로세스에서 사용되는 시그널링을 제어함을 기술한다. 예를 들어, 종단-클라우드 통신 시나리오에서, 제1 디바이스는 단말이고, 제2 디바이스는 클라우드 서버, 클라우드 프록시 서버, 로드 밸런서, 또는 하이브리드 액세스 게이트웨이이다.
제1 시나리오에서, 제1 디바이스는 위에서 언급된 발신 제어에 대응하는 데이터 수신단이다.
발신 제어는 다음 타입의 시그널링을 수반한다.
발신 제어 시그널링은, 발신 제어 시그널링에 포함된 발신 제어 파라미터를 사용함으로써, 발신 제어 시그널링에 기반하여, 발신되어야 할 패킷을 이들 패킷이 발신되어야 할 시간 간격으로 발신할 것을 피어 디바이스에 지시한다. 포함된 발신 제어 파라미터는 복수의 방식으로 조합될 수 있다.
구체적으로, 발신 제어 파라미터는: 초기 패킷 시퀀스 번호, 패킷 시퀀스 번호 범위 및 전송 시간 간격일 수 있다. 초기 패킷 시퀀스 번호는 패킷 시퀀스 번호(Sequence Number, SN)이고, 제1 패킷, 예를 들어, 하나의 조목의 제어 시그널링을 사용함으로써 발신되도록 제어되는 복수의 패킷 중에서, 최소의 패킷 시퀀스 번호를 가진 패킷을 나타내는 데에 사용된다.
발신 제어 시그널링은 패킷 시퀀스 번호 범위 내의, 초기 패킷 시퀀스 번호로부터 시작하는 패킷을 발신할 것과 전송 시간 간격으로 패킷을 발신할 것을 피어 디바이스에 지시한다. 초기 패킷 시퀀스 번호의 값은 패킷의 시퀀스 번호이다. 패킷 시퀀스 번호는 패킷을 식별할 수 있거나, 패킷의 시퀀스를 식별할 수 있음이 이해되어야 한다. 예를 들어, 더 작은 패킷 시퀀스 번호를 가진 패킷이 우선 처리되어야(예를 들어, 발신되거나 수신됨) 한다. 알려진 프로토콜에 대해, 패킷 시퀀스 번호의 명명 규칙이 정해지고, 이 출원은 그 규칙을 참조할 수 있다. 전유 프로토콜에 대해, 패킷 시퀀스 번호의 명명 규칙이 또한 지정될 필요가 있다. 따라서, 발신될 필요가 있는 패킷은 초기 패킷 시퀀스 번호 및 패킷 시퀀스 번호 범위를 사용함으로써 나타내어질 수 있다. 전송 시간 간격은 시간 관련 파라미터이고, 대역폭을 사용함으로써 나타내어질 수 있거나, 시간 간격을 사용함으로써 직접적으로 나타내어질 수 있다. 이는 정해진 프로토콜에 대해, 각각의 패킷의 길이가 알려지고, 즉, 패킷의 페이로드가 알려지고, 대역폭은 시간 단위당 발신되는 데이터 양을 나타내기 때문이다. 따라서, 패킷을 발신하는 행동이 수행되는 시간 간격 및 대역폭 간에 명확한 수학적 관계가 있다. 예를 들어, 한 조목의 발신 제어 시그널링 내에서 전달되는 초기 패킷 시퀀스 번호는 12이고, 패킷 시퀀스 번호 범위는 10이고, 전송 시간 간격은 대역폭에 의해 나타내어지고, 대역폭의 값은 1 mbps이다. 만일 연결의 프로토콜에서, 데이터 패킷의 패킷 시퀀스 번호가 1의 공차가 있는 등차수열로 번호가 매겨지면, 이 경우에, 발신 제어 시그널링은 시퀀스 번호가 12부터 21인 10개의 패킷을 1/(1 mbps), 즉, 대역폭의 값의 역수의 시간 간격으로 발신할 것을 지시한다.
구현에서, 도 6에 도시된 바와 같이, 발신 제어 시그널링에서, 패킷 시퀀스 번호(곧, 초기 패킷 시퀀스 번호) 필드의 길이가 32 비트(4 바이트)이고, 패킷 시퀀스 번호 범위 필드의 길이가 32 비트(4 바이트)이고, 전송 시간 간격 필드의 길이가 32 비트(4 바이트)이다. 예를 들어, 3개의 필드의 배열 순서가 도 6에 도시될 수 있다. 발신 제어 프레임은 하나 이상의 조목의 발신 제어 시그널링을 포함할 수 있다. 복수의 조목의 발신 제어 시그널링이 포함된 경우에, 발신 제어 프레임에 하나의 필드가 프레임 내의 제어 시그널링의 조목의 수량을 나타내도록 포함되어야 한다.
구현에서, 제1 디바이스는 패킷 시퀀스 번호가 A인 데이터 패킷을 수신하여, 새로운 발신 제어 시그널링의 발신을 트리거한다. 새로운 발신 제어 시그널링 내의 파라미터의 값은 제1 디바이스 및 제2 디바이스 간에 적용되는 전송 제어 알고리즘에 관련된다. 예를 들어, 새로운 발신 제어 시그널링 내의 초기 패킷 시퀀스 번호는 A+1이다.
상술한 시그널링을 사용함으로써, 피어 디바이스의 데이터 패킷의 발신이 제어될 수 있다. 피어 디바이스에 의해 데이터를 발신하는 방식을 정하기 위해 발신 제어 시그널링 내의 파라미터만이 변경될 필요가 있다.
몇몇 알고리즘에 대해, 제어 시그널링: 피어 정보 요청 시그널링 및 그 제어 시그널링에 대한 응답, 곧, 피어 정보 응답(확인응답)이 또한 제어를 위해 사용될 필요가 있다.
피어 정보 요청 시그널링은 피어 정보 요청 시그널링에 대한 응답을 발신할 것을 피어 디바이스에 지시하는 데에, 즉, 패킷 시퀀스 번호로부터 시작하는 복수의 데이터 패킷의 발신 상태를 피드백할 것을 피어 디바이스에 지시하는 데에 사용된다. 피어 정보 요청 시그널링은 패킷 시퀀스 번호를 포함하고, 패킷 시퀀스 번호는 피어 정보 요청 시그널링의 초기 패킷 시퀀스 번호이다. 이 방식으로, 로컬 디바이스는, 응답에 기반하여, 피어 디바이스의 전송 큐의 잔여 길이를 알 수 있는바, 즉, 피어 디바이스의 전송 큐 내의 발신될 패킷의 수량 또는 데이터 양을 알 수 있다. 이에 기반하여, 로컬 디바이스는 연결 상에서 전송되는 흐름 또는 연결에 의해 서빙되는(served) 애플리케이션의 트래픽이 제한되는지를 판정하고, 로컬 디바이스에 의해 현재 추정된 대역폭의 값이 실제의 네트워크 대역폭 또는 애플리케이션이 제한된 경우의 대역폭과 부합하는지를 또한 판정할 수 있다. 따라서, 일반적으로, 하나의 조목의 피어 정보 요청 시그널링 및 하나의 조목의 발신 제어 시그널링은 동일한 초기 패킷 시퀀스 번호를 전달할 수 있다. 시간 순서에 따라, 적어도 하나의 조목의 제어 시그널링이 발신된 후에 하나의 조목의 피어 정보 요청 시그널링이 발신된다. 피어 정보 요청 시그널링의 발신을 트리거하기 위한 조건은 이 출원에서 한정되지 않는다. 예를 들어, 피어 정보 요청 시그널링을 발신하기 위한 조건은 다음으로서 설정될 수 있다: 주기적으로 발신하기, 추정된 네트워크 파라미터, 예를 들어, 대역폭, 라운드 트립 시간, 또는 전송 지연의 변화가 어떤 조건을 충족시키는 경우에 발신하기, 몇 조목의 발신 제어 시그널링이 발신된 후에 발신하기, 몇 개의 데이터 패킷이 수신될 때마다 발신하기, 또는 유사한 것.
피어 정보 응답(확인응답)은 상술한 피어 정보 요청 시그널링에 대한 응답이다. 한 조목의 피어 정보 요청 시그널링을 수신한 후에, 피어 디바이스는 피어 정보 요청 시그널링에 대한 응답을 발신한다. 상이한 흐름을 사용함으로써 데이터 패킷 및 제어 패킷이 발신되는 경우에, 피어 정보 응답(확인응답)은 제어 흐름 내에서 발신된다.
피어 정보 응답(확인응답)은 패킷 시퀀스 번호(곧, 피어 정보 응답(확인응답)의 패킷 시퀀스 번호) 및 발신될 데이터 패킷에 대한 정보를 포함한다. 발신될 데이터 패킷에 대한 정보는 피어 정보 응답(확인응답)의 초기 패킷 시퀀스 번호로부터 시작하는 적어도 하나의 발신될 데이터 패킷에 대한 정보를 나타내는 데에 사용된다. 적어도 하나의 발신될 데이터 패킷에 대한 정보는 피어 디바이스에 의해 발신될 모든 또는 일부 데이터 패킷에 대한 정보일 수 있다. 예를 들어, 적어도 하나의 발신될 데이터 패킷에 대한 정보는 모든 또는 일부의 발신될 데이터 패킷의 수량 또는 패킷 시퀀스 번호일 수 있다. 모든 또는 일부의 발신될 데이터 패킷은 이 경우에 제2 디바이스의 전송 큐 내에서 발신되지 않은 모든 또는 일부 데이터 패킷일 수 있거나, 이 서비스(예를 들어, 이미지를 전송하거나 웹 페이지를 리프레쉬하기(refreshing))에서 제2 디바이스에 의해 발신되지 않은 모든 패킷일 수 있다. 한 조목의 피어 정보 요청 시그널링 및 대응하는 피어 정보 응답(확인응답)은 동일한 초기 패킷 시퀀스 번호를 포함한다.
피어 정보 응답(확인응답)은 발신된 패킷에 대한 정보를 더 포함할 수 있다. 발신된 패킷에 대한 정보는 초기 패킷 시퀀스 번호로부터 시작하고 피어 디바이스에 의해 이미 발신된 복수의 패킷(패킷은 성공적으로 수신되었음이 판정됨)(또는 데이터 블록)에 대한 정보를 포함한다. 예를 들어, 발신된 패킷에 대한 정보는 패킷 시퀀스 번호, 패킷 시퀀스 번호의 수의 오프셋(offset), 데이터의 오프셋, 비트맵(bitmap), 또는 유사한 것일 수 있다. 몇몇 구현에서, 이미 발신된 패킷(패킷은 로컬 디바이스(예를 들어, 제1 디바이스)에 의해 수신됨이 판정되지 않음)(또는 데이터 블록)에 대한 정보가 또한 포함될 수 있다. 발신되지 않은 패킷에 대한 정보는 패킷 시퀀스 번호, 패킷 시퀀스 번호의 오프셋, 데이터의 오프셋, 비트맵, 또는 유사한 것일 수 있다. 구체적으로, 피어 정보 응답(확인응답)의 몇몇 바이트 내의 수는 발신된 패킷에 대한 정보를 나타내고, 몇몇 다른 바이트 내의 수는 발신되지 않은 패킷에 대한 정보를 나타낸다. 피어 정보 응답(확인응답)의 포맷은 이 출원에서 한정되지 않는다. 예를 들어, 도 7에 도시된 바와 같이, 피어 정보 응답(확인응답) 내에서, 초기 패킷 시퀀스 번호 필드의 길이는 32 비트(4 바이트)이고, 몇 개의 가변 길이 필드(도 7에서 7개의 필드)가 순차적으로 포함된다. 각각의 가변 길이 필드의 최대 길이는 32 비트(4 바이트)이고, 가변 길이 필드는 시그널링 내에서 전달되는 데이터 블록(데이터 블록은 발신됨이 판정됨)의 수량을 나타내는 데에 사용되는 확인응답 블록 수량 필드를 포함한다. 확인응답 블록 필드 및 비확인응답 블록 필드는 간격을 두고 설정된다. 각각의 필드는 데이터 블록의 발신 정보를 나타내고, 데이터 블록의 식별자 또는 데이터 블록의 길이에 의해 나타내어질 수 있다. 이 방식으로, 그것은, 초기 패킷 시퀀스 번호로부터 시작하는 몇 개의 필드의 데이터가 발송되었음이 판정됨, 그리고 몇 개의 뒤따르는 필드의 데이터가 발신됨이 판정되지 않음을 나타낼 수 있다. 추가로, 가변 길이의 필드는 발신되지 않은 패킷의 수량을 나타내는 데에 사용되는, 발신될 패킷의 수량의 필드를 더 포함한다.
이 방식으로, 피어 디바이스의 발신 제어가 상술한 복수의 조목의 제어 시그널링의 사용의 조합을 통해서 구현될 수 있고, 복수의 기존의 전송 제어 알고리즘이 또한 수행될 수 있다. 제1 디바이스에 의해 발신되는 제어 시그널링을 사용함으로써, 타단에서의 디바이스는 결정을 할 필요가 없고, 제어 시그널링에서 전달되는 파라미터에 기반하여 패킷을 발신할 필요가 있을 뿐이다. 또한, 일단에서의 디바이스에 의해 발신되는 제어 시그널링 내의 파라미터 및 제어 시그널링의 발신 순서를 수정함으로써 전송 제어 알고리즘이 구현될 수 있고, 전송 제어 알고리즘이 업그레이드되고 수정될 수 있다. 따라서, 전송 제어 알고리즘을 구현하고 수정하고 업그레이드하는 것이 더욱 편리하다. 세부사항에 대해, 다음의 예가 참조될 수 있다.
제2 시나리오에서, 제1 디바이스는 위에서 언급된 수신 제어에 대응하는 데이터 전송단이다. 수신 제어는 수신 제어 시그널링을 발신함으로써 구현된다.
수신 제어 시그널링은, 수신 제어 시그널링 내의 수신 제어 파라미터를 사용함으로써, 데이터 패킷의 수신 상태를 피드백하도록 데이터 수신단을 제어한다. 예를 들어, 수신 제어 시그널링은 피드백을 위한 조건(이는 또한 피드백 시기로서 이해될 수 있음) 및 피드백될 필요가 있는 데이터 패킷의 범위를 데이터 수신단에 통지할 수 있다. 이 방식으로, 데이터 전송단은, 이들 피드백에 기반하여, 이들 데이터 패킷이 정확히 수신되는지를 판정할 수 있다. 포함된 수신 제어 시그널링은 복수의 방식으로 조합될 수 있다. 다중 흐름 다중화 시나리오에서, 데이터 수신단은 제어 흐름을 사용함으로써 수신 제어 시그널링에 기반하여 피드백 패킷을 발신한다. 피드백 패킷의 포맷은 이 출원에서 한정되지 않는다. 예를 들어, 피드백 패킷은 선행 기술에서의 ACK 또는 NACK일 수 있다. 선행 기술에서, 그러한 제어는 데이터 수신단에 의해 구현되고, 따라서, 수신 제어 시그널링은 발신될 필요가 없다.
구현에서, 수신 제어 시그널링은 패킷 시퀀스 번호(곧, 초기 패킷 시퀀스 번호), 패킷 시퀀스 번호 범위 및 타임스탬프를 포함한다. 초기 패킷 시퀀스 번호 및 패킷 시퀀스 번호 범위는 몇몇 특정 데이터 패킷의 수신 상태가 피드백될 필요가 있음을 나타내는 데에 사용된다. 두 파라미터의 구체적인 설명에 대해, 상술한 단락을 참조하시오. 타임스탬프는 수신 제어 시그널링을 발신하는 순간이며, 패킷 순서혼란(disorder)의 경우를 수집하고, 네트워크 지연을 계산하고, 기타 등등을 하는 데에 사용될 수 있다. 수신 제어 시그널링을 수신하는 것은 피드백의 생성 및 발신을 트리거하는 이벤트인데, 예를 들어, 피드백을 발신하는 프로세스를 트리거하는 것이다. 도 8에 도시된 수신 제어 시그널링이 예로서 사용되는데, 3개의 파라미터의 시퀀스 및 각자의 길이는 다음과 같다: 32 비트(4 바이트)의 필드 길이를 가진 타임스탬프, 32 비트(4 바이트)의 필드 길이를 가진 초기 패킷 시퀀스 번호 및 32 비트(4 바이트)의 필드 길이를 가진 패킷 시퀀스 번호 범위. 3개의 파라미터는 발신 제어 시그널링의 것과 상이하고, 3개의 파라미터의 시퀀스도 상이하다. 구현에서, 초기 패킷 시퀀스 번호는 수신 제어 시그널링이 생성될 때 데이터 패킷(여기서 데이터 패킷은 수신되거나 처리됨이 데이터 전송단에 의해 판정됨)의 패킷 시퀀스 번호 중의 최대값으로 설정된다. "처리됨"은 데이터 패킷이 손실됨을 데이터 전송단이 판정하였고, 따라서 손실된 데이터 패킷을 재전송하기 위해, 데이터 패킷의 사본(copy)의 패킷 시퀀스 번호를 수정하는 것을 의미한다. 패킷 시퀀스 번호 범위는 수신 제어 시그널링이 생성될 때, 데이터 전송단에 의해 발신되는 데이터 패킷의 패킷 시퀀스 번호 중의 최대값으로 설정되고, 타임스탬프는 제어 시그널링을 발신하는 순간으로 설정된다.
수신 제어 시그널링을 수신한 후에, 데이터 수신단, 예를 들어, 제2 디바이스는 초기 패킷 시퀀스 번호부터 패킷 시퀀스 번호 범위에 의해 나타내어진 패킷 시퀀스 번호보다 더 크지 않은 패킷 시퀀스 번호까지의 범위 내의 데이터 패킷의 수신 상태를 피드백한다. 예를 들어, 수신 상태는 다음일 수 있다: 어느 데이터 패킷이 수신된 것인지 또는 어느 데이터 패킷이 수신되지 않은 것인지, 그리고 피드백을 트리거하는 수신 제어 시그널링의 타입스탬프가 또한 전달되어야 하는지. 구현에서, 처리 지연이 또한 포함될 수 있고, 처리 지연은 수신 제어 시그널링을 수신하는 시간 및 수신 제어 시그널링에 대응하는 피드백을 발신하는 시간 간의 시간 차이이다. 이 방식으로, 데이터 전송단은 네트워크 전파 지연의 경우를 더 정확히 수집할 수 있다. 만일 피드백될 필요가 있는 데이터 패킷의 범위의 값이 패킷을 피드백하기 위한 지원되는 최대값을 초과하는 경우, 모든 데이터 패킷이 피드백될 수는 없고, 최대값 미만의 수량의 데이터 패킷의 수신 상태만이 피드백된다.
도 9를 참조하여, 다음은 제1 디바이스가, 제어기로서, 상술한 제어 시그널링을 사용함으로써 제1 디바이스 및 제2 디바이스 간의 패킷 전송을 제어하는 프로세스를 기술한다. 이 프로세스에서, 제1 디바이스는 우선 제2 디바이스에 의해 발신된 데이터 패킷의 그룹을 수신하고(S901-905), 이후 제1 디바이스는 데이터 패킷의 그룹을 제2 디바이스에 발신한다(S906-908). 다음(S901-908)은 단지 식별의 용이함을 위한 것이고, 단계는 반드시 번호의 순차로 수행되지는 않으며, 문자적인 설명의 대상임이 이해되어야 한다. 추가로, 제1 디바이스 및 제2 디바이스 간의 연결이 다중 흐름 전송을 지원하고, S901-905 및 S906-908은 상이한 흐름 상에서 수행될 수 있으므로, 단계는 동시에 수행될 수 있거나 단계의 실행 시간이 중첩될 수 있다.
S901: 제1 디바이스는 제1 제어 시그널링을 제2 디바이스에 발신하는데, 제1 제어 시그널링은 제1 그룹의 데이터 패킷을 발신할 것을 제2 디바이스에 지시한다.
제1 제어 시그널링은 상술한 발신 제어 시그널링이고, 따라서 제1 패킷 시퀀스 번호, 제1 패킷 시퀀스 번호 범위 및 제1 전송 시간 간격을 포함한다. 이 방식으로, 제1 패킷 시퀀스 번호 및 제1 패킷 시퀀스 번호 범위는 제1 그룹의 데이터 패킷을 나타낼 수 있다. 제1 전송 시간 간격은 제1 그룹의 데이터 패킷을 발신하기 위한 시간 간격을 나타낸다. 시간 간격은 대역폭에 의해 나타내어질 수 있다.
S902: 제2 디바이스는 수신된 제1 제어 시그널링 내의 나타내어진 패킷 시퀀스 번호 및 제1 전송 시간 간격에 기반하여 제1 그룹의 데이터 패킷을 발신한다.
S903: 제1 디바이스는 제1 그룹의 데이터 패킷 중의 적어도 하나의 데이터 패킷을 수신하고, 적어도 하나의 수신된 데이터 패킷 중의 제1 데이터 패킷에 기반하여 제2 제어 시그널링을 발신한다. 제1 데이터 패킷의 패킷 시퀀스 번호는 적어도 하나의 데이터 패킷 중에서 최대이다.
제2 제어 시그널링은 제2 패킷 시퀀스 번호, 제2 패킷 시퀀스 번호의 범위 및 제2 전송 시간 간격을 포함한다. 제2 패킷 시퀀스 번호 및 제2 패킷 시퀀스 번호 범위는 제2 그룹의 데이터 패킷을 나타내는 것으로서 간주될 수 있다. 제2 전송 시간 간격은 제2 그룹의 데이터 패킷을 발신하기 위한 시간 간격을 나타낸다.
제2 패킷 시퀀스 번호는 제1 데이터 패킷의 패킷 시퀀스 번호보다 더 크다.
제1 디바이스에 의해 수신된 데이터 패킷은 여전히 발신 제어 시그널링의 발신을 트리거할 수 있다. 이 방식으로, 제1 디바이스는 제2 디바이스를 계속해서 제어할 수 있다. 실제의 애플리케이션에서, 제1 그룹의 데이터 패킷이 완전히 수신된 후에 다음 번 조목의 발신 제어 시그널링이 발신될 수 있다. 구체적으로, 제2 패킷 시퀀스 번호 및 제2 패킷 시퀀스 번호의 범위는 제1 그룹의 데이터 패킷 후의 다음 번 패킷을 나타낼 수 있다. 예를 들어, 제1 그룹의 데이터 패킷은 1부터 10까지 번호가 매겨진 패킷이고, 제2 패킷 시퀀스 번호는 11이다. 이후에, 제2 디바이스는 제2 제어 시그널링에 기반하여 데이터 패킷을 발신하는 것을 계속한다.
다른 구현에서, 하나 이상의 데이터 패킷이 수신된 후에, 다음 번 조목의 발신 제어 시그널링이 발신될 수 있다. 디바이스 내에 발신 지연이 존재하고, 네트워크 내에 네트워크 지연이 존재하므로, 이 구현은 피어 종단에서의 데이터 발신을 더 양호하게 제어할 수 있다. 구체적으로, 제2 패킷 시퀀스 번호 및 제2 패킷 시퀀스 번호 범위에 의해 나타내어지는 패킷은 번호에 관해서 제1 그룹의 데이터 패킷과 중첩될 수 있다. 예를 들어, 제1 그룹의 데이터 패킷은 1부터 10까지 번호가 매겨진다. 1부터 4까지 번호가 매겨진 패킷이 수신된 후에, 제2 제어 시그널링이 발신되고, 따라서 제2 패킷 시퀀스 번호는 5이다.
제1 그룹의 데이터 패킷을 수신하는 프로세스 내에서 다음 번 조목의 발신 제어 시그널링이 발신될 수 있음을 알 수 있다.
S904: 제1 디바이스는 제3 제어 시그널링을 제2 디바이스에 발신하는데, 제3 제어 시그널링은 제1 패킷 시퀀스 번호를 포함한다.
제3 제어 시그널링은 상술한 피어 정보 요청 시그널링이다.
제3 제어 시그널링은 제1 제어 시그널링 후에 발신되나, 제2 제어 시그널링 전에 또는 후에 발신될 수 있다. 구체적인 시기는 전송 제어 알고리즘에서 제3 제어 시그널링을 트리거하기 위한 조건에 달려 있다. 도 9는 제3 제어 시그널링이 제2 제어 시그널링 후에 발신되는 경우를 기술한다.
S905: 제1 디바이스는 제3 제어 시그널링에 대한 응답을 수신하는데, 제3 제어 시그널링에 대한 응답은 제1 패킷 시퀀스 번호 및 제1 패킷 시퀀스 번호로부터 시작하는 적어도 하나의 발신될 데이터 패킷에 대한 정보를 포함한다.
제3 제어 시그널링에 대한 응답은 상술한 피어 정보 응답(확인응답)에 대응한다.
피어 정보 응답(확인응답)이 수신된 경우에, 제1 그룹의 데이터 패킷 및 제2 그룹의 데이터 패킷 전부가 발신되지는 않는다. 따라서, 제1 디바이스는 또한 제2 디바이스에 의해 발신된 데이터 패킷을 수신하는 것을 계속할 수 있다.
S906: 제1 디바이스는 제3 그룹의 데이터 패킷을 제2 디바이스에 발신한다.
제3 그룹의 데이터 패킷은 제3 패킷 시퀀스 번호 범위 내의, 제3 패킷 시퀀스 번호로부터 시작하는 복수의 데이터 패킷이다.
S907: 제1 디바이스는 제4 제어 시그널링을 제2 디바이스에 발신하는데, 제4 제어 시그널링은 제3 패킷 시퀀스 번호, 제3 패킷 시퀀스 번호 범위 및 타임스탬프를 포함하고, 타임스탬프는 제4 제어 시그널링이 발신될 때 제1 디바이스의 시스템 시간이다.
제4 제어 시그널링은 수신 제어 시그널링이다.
S908: 제1 디바이스는 제4 제어 시그널링에 대한 응답을 수신하는데, 제4 제어 시그널링에 대한 응답은 타임스탬프를 포함하고, 제4 제어 시그널링에 대한 응답은 수신되거나 수신되지 않은 데이터 패킷에 대한 정보를 더 포함하되, 데이터 패킷은 제3 그룹의 데이터 패킷 중의 데이터 패킷이다.
제4 제어 시그널링에 대한 응답은 제4 제어 시그널링에 의해 트리거되는 피드백 패킷이다.
다음은 Google에 의해 제안된 병목 대역폭 및 라운드 트립 시간(Bottleneck Bandwidth and RTT, BBR) 알고리즘을 예로서 사용하여 제1 디바이스가 알고리즘을, 상술한 시그널링을 사용함으로써 어떻게 구현하는지를 기술한다. 상술한 사용자 모드에서 새로운 프로토콜을 사용함으로써 연결 내에서 데이터가 전송되고, 시그널링을 전송하기 위해 사용자 모드에서의 새로운 프로토콜에서 패킷 및 프레임 포맷이 사용될 수 있다.
제어의 제1 라운드: 제1 디바이스는 라운드에서 제2 디바이스에 제1 조목의 발신 제어 시그널링을 발신하는데, 초기 패킷 시퀀스 번호는 1이고, 패킷 시퀀스 번호 범위는 10이고, 전송 시간 간격은 대역폭에 의해 나타내어지며 1 mbps이다. 제1 조목의 제어 시그널링을 수신한 후에, 제2 디바이스는 1 mbps의 대역폭에서 1부터 10까지 번호 매겨진 데이터 패킷을 발신한다. 1로 번호가 매겨진 데이터 패킷을 수신한 후에, 제1 디바이스는 제2 조목의 발신 제어 시그널링을 피드백하는데, 초기 패킷 시퀀스 번호는 2이고, 패킷 시퀀스 번호 범위는 11이고, 대역폭은 11/RTT mbps이다. RTT는 연결의 라운드 트립 시간이다.
이 프로세스에서, 제1 조목의 발신 제어 시그널링은 제1 RTT에서 10개의 데이터 패킷을 발신하는 것을 의미하고, 10의 값은 데이터 흐름의 초기 발신 윈도우의 크기에 대응하고, 제1 조목의 발신 제어 시그널링 및 링크 수립 시그널링 양자 모두 핸드쉐이크 패킷 내에서 발신된다. 이 방식으로, 만일 링크가 성공적으로 수립된 경우, 제어 시그널링이 또한 동시에 성공적으로 발신되어서, 제2 디바이스는 데이터를 즉시 발신할 수 있다. 이는 기존의 전송 프로토콜에서 그러한데, 즉, 시간 유효성이 기존의 프로토콜과 일관된다(consistent). 제2 디바이스에 의해 처음으로 데이터 패킷을 발신하는 시간으로부터 제1 데이터 패킷을 수신하는 시간까지 RTT/2가 걸린다. 제1 데이터 패킷의 수신은 제1 디바이스로 하여금 제2 조목의 발신 제어 시그널링을 발신하도록 트리거하고, 제2 조목의 발신 제어 시그널링은 RTT/2 후에 제2 디바이스에 도달한다. 이 경우에, 제2 디바이스는 제1 라운드(이는 단순히 RTT로서 이해됨) 전송을 완수하고, 새로운 제어 시그널링(곧, 제2 조목의 발신 제어 시그널링)을 수신한다. 기존의 프로토콜에서 구현된 BBR은 다음과 같다: 제2 디바이스는 제1 라운드에서 10개의 데이터 패킷을 발신하고, 제1 ACK가 도달하기를 기다리고, 혼잡 윈도우의 크기를 11로 업데이트하고, 윈도우를 우측으로 슬라이딩함(sliding)으로써 다른 데이터 패킷을 발신한다. 따라서, 제2 조목의 발신 제어 시그널링은 BBR에서의 제1 ACK 패킷의 도달에 상당한다. 그것은 (지연의 측면에서 가변 값을 가진 지터로서 반영되는) 피드백 패킷의 손실 또는 순서혼란 및 데이터 패킷의 패킷 손실이 기존의 구현 및 이 출원에서 기술된 제어 시그널링이 사용되는 구현에 동일한 영향을 미친다는 것을 나타낸다.
제어의 제2 라운드: 제2 라운드에서의 제어 프로세스는 다음과 같이 완결될 수 있다: 제2 라운드에서의 제1 조목의 발신 제어 시그널링(여기에서 제1 조목의 발신 제어 시그널링의 초기 패킷 시퀀스 번호는 11이어야 하고, 패킷 시퀀스 번호 범위는 10임)이 발신된 후에, 데이터 패킷이 수신될 때마다, 다음 번 조목의 발신 제어 시그널링이 상응하여 생성되는데, 초기 패킷 시퀀스 번호는 1만큼 증가되고, 패킷 시퀀스 번호 범위는 1만큼 증가되고, 전송 시간 간격은 패킷 시퀀스 번호 범위가 RTT로 나뉜 후의 값으로 설정된다. 이 변화 규칙은 현재의 라운드에서 제1 조목의 발신 제어 시그널링에 의해 나타내어진 마지막 데이터 패킷(예를 들어, 20으로 번호 매겨진 데이터 패킷)이 수신될 때까지 지속되고, 20으로 번호가 매겨진 데이터 패킷에 의해 트리거된 발신 제어 시그널링이 발신된다. 이로부터, 제어의 새로운 라운드가 시작되고, 변화 규칙은 다음으로 조정된다: 패킷 시퀀스 번호 범위는 이전의 발신 제어 시그널링에 기초하여 2배로 된다(doubled). 이 방식으로, 이전의 라운드에서의 것보다 대략 두 배의 데이터 양이 발신될 수 있다. 이 제어 프로세스의 메커니즘은 BBR에서의 혼잡 제어 슬로우 스타트(slow start) 국면의 것과 일관된다. 이해를 위해 BBR을 기술하는 다른 문서가 참조될 수 있다.
다시 말해, 제어의 하나의 라운드는 제1 조목의 발신 제어 시그널링을 발신하는 것으로부터 제1 조목의 발신 제어 시그널링의 지시 하에서 발신되는 모든 패킷을 수신하는 것으로의 프로세스이다. 구현에서, 제어의 하나의 라운드에서 발신된 패킷의 수량은 제1 조목의 제어 시그널링이 제어의 라운드에서 발신될 때 발신 윈도우의 값에 대응하는 패킷의 수량이다.
대역폭 추정: 제1 디바이스가 제어의 3개의 연이은 라운드에서의 값의 증분(성공적으로 발신된 데이터 양/RTT)이 25% 미만임을 발견하는 경우에, 제1 디바이스는 연결의 네트워크 대역폭이 최대임을 판정한다. 대역폭 검출 및 추정 국면에 진입된다. 이 국면에서, 대역폭 검출은 8개 라운드의 주기로써 수행되고, 하나의 주기의 제1 라운드에서의 패킷 시퀀스 번호 범위의 값은 대역폭-지연 곱(Bandwidth-delay Product, BDP)의 1.25배이고, 하나의 주기의 제2 라운드에서의 패킷 시퀀스 번호 범위의 값은 BDP의 0.75배이다. 이후, 6개 라운드에서의 패킷 시퀀스 번호 범위는 BDP이고, 제1 디바이스는 능동적 조정을 수행하지 않는다.
구체적으로, 대역폭이 최대임이 검출된 후에, 대역폭 검출 주기의 발신 제어의 제1 라운드에 진입된다. 하나의 데이터 패킷이 수신될 때마다, 다음 번 조목의 생성된 발신 제어 시그널링의 초기 패킷 시퀀스 번호가 1만큼 증가된다. 4개의 데이터 패킷이 수신될 때마다, 패킷 시퀀스 번호 범위가 1만큼 증가되는데, 현재의 라운드에서 제1 조목의 발신 제어 시그널링의 지시 하에 발신된 최대 패킷 시퀀스 번호를 가진 데이터 패킷이 수신될 때까지, 즉, 제어의 현재 라운드에서의 마지막 데이터 패킷이 수신될 때까지이다. 이후, 대역폭 검출 주기의 제2 라운드가 시작한다. 새로운 데이터 패킷이 수신될 때마다, 다음 번 조목의 생성된 발신 제어 시그널링의 초기 패킷 시퀀스 번호가 1만큼 증가된다. 4개의 데이터 패킷이 수신될 때마다, 제어의 현재 라운드에서의 마지막 데이터 패킷이 수신될 때까지 패킷 시퀀스 번호 범위는 1만큼 증가된다. 이후, 대역폭 검출 주기의 마지막 6개 라운드가 시작하고, 마지막 6개 라운드에서, 패킷 시퀀스 번호 범위는 바뀌지 않은 채로 남아 있다.
상술한 제어 프로세스에서, 대역폭 추정을 업데이트하기 위한 방법은 다음이다: 발신 제어의 하나의 라운드에서, 데이터 패킷이 수신될 때마다, 데이터 패킷이 속한 발신 제어의 라운드의 대역폭 값이 계산되고, 발신 제어의 라운드에서의 계산된 대역폭 값의 처음 3개의 값이 보유되는데(reserved), 이 라운드에서 추정된 대역폭 값은 처음 3개의 값에서의 최대값이다. 발신 제어의 새로운 라운드, 곧, 대역폭 추정 주기의 새로운 라운드가 시작되는 경우에, 이전의 라운드에서의 3개의 값은 새로운 라운드에서의 계산된 대역폭 값에 의해 점진적으로 대체되고, 최종적으로, 발신 제어의 새로운 라운드가 종료한 후에, 3개의 업데이트된 값 중의 최대값이 새로운 라운드에서의 추정된 대역폭으로서 사용된다.
또한, 전송 제어 알고리즘은 또한 상술한 시그널링을 사용함으로써 데이터 전송 동안에 변경될 수 있다. 다음은 BBR 알고리즘을 기술하는 실시예에 기반하여 상술한 시그널링을 사용함으로써 다른 알고리즘으로 스위칭하는 프로세스를 예를 사용함으로써 기술한다. 다른 알고리즘으로 스위칭하기 위한 조건은 다음일 수 있다: 대역폭 검출 및 추정 국면에서, 모든 검출된 대역폭 통계 값 중에서, 최대값이 두 번째로 큰 값보다 20% 넘게 더 크다. 이 조건은 네트워크가 불안정임을 나타낸다. 그 다른 알고리즘은 윈도우 기반 혼잡 제어 알고리즘일 수 있다. 알고리즘에 따르면, 발신 제어 시그널링에서의 파라미터는 다음의 방식으로 조정된다: (1) 이전의 라운드에서의 패킷 시퀀스 번호 범위에서의 데이터 패킷이 성공적으로 전송될 때마다 제어의 새로운 라운드에서의 패킷 시퀀스 번호 범위가 1만큼 증가됨; (2) 전송 시간 간격이 대역폭에 의해 나타내어지고, 값은 발신 제어 시그널링 내의 파라미터를 나타내는 데에 사용되는 필드에 의해 나타내어질 수 있는 최대값임; (3) 제1 디바이스가 패킷 손실을 검출하는 경우에, 패킷 시퀀스 번호 범위의 값은 절반으로 됨. 하나의 조목의 발신 제어 시그널링이 수신될 때마다, 데이터 전송단은, 데이터 전송단에 의해 지원되는 최대 발신 레이트(sending rate)를 사용함으로써, 발신 제어 시그널링에 의해 나타내어지는 데이터(곧, 발신 제어 시그널링 내에서 전달되는 초기 패킷 시퀀스 번호 및 패킷 시퀀스 번호 범위에 의해 나타내어지는 패킷)를 발신한다.
상이한 타입의 혼잡 제어 알고리즘이 기술될 수 있도록, 제어 시그널링 내에서 전달되는 파라미터가 시간에 걸쳐서 바뀜을 알 수 있다. 또한, 제어 시그널링 내에서 전달되는 파라미터가 변경된다면 상이한 타입의 혼잡 제어 알고리즘이 구현될 수 있다. 따라서, 이 출원에서 기술된 방법 및 제어 시그널링을 사용함으로써 기존의 프로토콜 및 알고리즘에서의 전송 제어가 구현될 수 있다.
추가로, 몇몇 시나리오에서, 제어를 구현하기 위해, 몇몇 필드가 데이터 패킷에 더 추가될 수 있다. 예를 들어, 제1 디바이스 및 제2 디바이스 간의 연결은 복수의 링크에 대응하는바, 즉, 다중경로 전송 모드가 사용된다. 3개의 전송 모드를 구현하기 위해, 어떻게 피어 디바이스의 발신 경로를 제어하는지를 기술하기 위해 예로서 저지연(low-delay) 시나리오가 사용된다. 3개의 전송 모드는 다음과 같다: 오직 네트워크 1을 사용함으로써 잉여적인 전송, 오직 네트워크 2를 사용함으로써 잉여적인 전송, 그리고 네트워크 1 및 네트워크 2를 사용함으로써 잉여적인 전송. 예를 들어, 네트워크 1은 와이파이(Wi-Fi) 네트워크이고, 네트워크 2는 LTE 네트워크와 같은 셀룰러 무선 네트워크이다. 물론, MPTCP 전송은 다른 전송 모드를 갖는다. 예를 들어, 네트워크 1 및 네트워크 2는 집성된 전송을 위해 사용된다. MPTCP 프로토콜에서의 전송 모드의 다른 조합이 또한 유사한 방식으로 제어될 수 있다. 구체적인 구현에 대해, 다음의 설명이 참조될 수 있다. 제어는 제1 디바이스 또는 제2 디바이스 내에 구현될 수 있다.
구체적으로, 데이터 패킷은 패킷을 발신하기 위해 피어 디바이스에 의해 사용되는 경로를 나타내는 데에 사용되는 이중 경로 식별자를 포함할 수 있다. 이중 경로 식별자는 이중 경로 플래그(flag)일 수 있다. 이 방식으로, 이중 경로 플래그의 값 또는 플래그가 있는지를 나타내는 정보를 사용함으로써 전송 모드가 나타내어질 수 있다. 예를 들어, 제어는 제1 디바이스 내에 구현된다. 전송 모드가 단일 경로 전송임을 이중 경로 식별자가 나타내는 경우에, 제1 디바이스는, 제1 패킷을 발신하기 위해 사용되는 경로 상에서, 제2 디바이스에 의해 발신된 패킷을 수신한다. 전송 모드가 다중경로 전송임을 이중 경로 식별자가 나타내는 경우에, 제1 디바이스는, 복수의 경로 각각 상에서, 제2 디바이스에 의해 발신된 패킷을 수신한다. 구현에서, (1) 만일 이중 경로 플래그가 0으로 설정된 경우, 그것은 제어기가 오직 LTE 네트워크 또는 Wi-Fi 네트워크가 사용되는 전송 모드에 있음을 나타내고, 이후 제2 디바이스는 패킷이 수신된 경로 상에서 패킷을 발신한다; (2) 만일 플래그가 1로 설정된 경우, 그것은 제어기가 잉여적 전송 모드에 있음을 나타내고, 이후 제2 디바이스는 두 경로를 사용함으로써 데이터를 잉여적으로 발신한다. 이중 경로 플래그는 확장된 UDP 또는 TCP 패킷 헤더에 구현을 위해 추가될 수 있거나, 이중 경로 플래그의 구현을 위해 UDP 또는 TCP 패킷 헤더 뒤에 사용자 정의된 프로토콜 헤더가 추가될 수 있다.
상술한 방법은 또한 UDP, TCP, 또는 MPTCP 프로토콜을 직접적으로 확장함으로써, 또는 UDP/TCP 위의 사용자 모드 프로토콜을 수정함으로써 구현될 수 있다. 이 방식으로, 동시에 전술된 제어 시그널링을 사용함으로써 MPTCP 시나리오에서의 단일 전송 경로 상의 패킷 전송 제어가 지원될 수 있다.
소프트웨어 아키텍처의 관점으로부터, 이 출원에서 기술된 해결안의 발상은 데이터 전송을 위해 요구되는 송수신기(transceiver) 기능 및 송수신기 기능을 지원하는 데에 사용되는 몇몇 기본 기능을 추출하는 것이다. 이들 기능을 수행하는 모듈은 집합적으로 기본 기능 모듈로 지칭될 수 있고, 이들 모듈은 코드 또는 함수일 수 있고, 프로세스 또는 쓰레드(thread)에 의해 실행된다. 송수신기 기능을 지원하는 데에 사용되는 기본 기능은 데이터 보안을 보장하는 데에 사용되는 데이터 암호화 및 복호화(예를 들어, 전송 계층 보안(Transport Layer Security, TLS)), 전송 효율을 개선하는 데에 사용되는 인코딩 및 디코딩(예를 들어, 순방향 에러 정정(Forward Error Correction, FEC)), 캐시 관리(cache management), 연결 관리, 경로 관리, 흐름 관리, 또는 유사한 것일 수 있다. 이들 기능은 여전히 선행기술에서와 같이 정보를 교환하는 두 종단에서의 디바이스 상에 대칭적으로 구현된다. 이들 기능 모듈은 전송 프로토콜의 기본 아키텍처를 위한 것이고 대칭적으로 배치되어야 한다. 추가로, 모듈에 대한 변경은 큰 영향을 끼치며, 따라서 업그레이드 주기가 길다. 이것은 부문에 걸친(cross-department) 업그레이드를 위한 긴 주기의 특성과 정합한다. 다시 말해, 이들 기능의 대칭적 배치는 상당한 업그레이드 효율 문제를 가져오지 않는다.
다른 측면에서, 제어 기능은 종래의 프로토콜 스택과 분리된다. 제어 기능은 상술한 송수신기 기능 및 송수신기 기능의 필요한 지원 기능에 대한 제어이다. 제어는 상술한 기본 기능의 작동 대상(operated object), 행위 방식, 트리거 시기 및 유사한 것을 포함하나 이에 한정되지 않는다. 작동 대상은 패킷 또는 프레임과 같은 베어러(bearer) 정보의 포맷으로 될 수 있거나, 송수신기 기능을 지원하는 데에 사용되는 기본 기능의 구현일 수 있다. 행위 방식은 패킷 또는 프레임을 발신하기 위한 간격, 순서 및 경로 중 적어도 하나, 또는 패킷 또는 프레임에 대해 수행되는 처리 행동, 예를 들어, 패킷 또는 프레임이 수신된 후 캐시 지우기(clear) 또는 재전송을 포함하나 이에 한정되지 않는다.
명백히, 이 아키텍처는 또한 로컬 디바이스 상의 전송 제어를 지원한다. 개선된 프로토콜 스택에서의 함수, 예를 들어, 정의된 내부 인터페이스를 호출함으로써, 제어 시그널링이 로컬 제어 모듈로부터 송수신기 모듈로 전해진다.
구체적으로, 제어 기능을 수행하는 제어 모듈은 로컬 디바이스로부터의 네트워크 정보에 기반하여 로컬 디바이스를 위한 제어 정보를 출력할 수 있다. 제어 정보는 작동 대상, 행위 방식, 트리거 시기 및 유사한 것을 포함할 수 있다. 로컬 종단의 네트워크 정보는 내부 인터페이스 함수를 사용함으로써 로컬 종단의 기본 기능 모듈로부터 획득될 수 있다. 네트워크 정보는 로컬 디바이스의 네트워크의 상태를 나타내는 파라미터, 예를 들어, 대역폭, 지연, 또는 혼잡 윈도우를 포함하고, 아래에서 언급되는 로컬 디바이스의 전송 파라미터를 더 포함할 수 있다. 제어 정보는 내부 인터페이스 함수를 사용함으로써 로컬 종단의 기본 기능 모듈에 전해진다. 로컬 종단의 기본 기능 모듈은, 로컬 디바이스에 대해 수행되는 전송 제어를 구현하기 위해, 패킷 발신과 같은 기본 기능을, 제어 정보의 지시에 기반하여 수행한다.
도 10에 도시된 바와 같이, 제1 디바이스는 제2 디바이스와 통신하고, 제1 디바이스는 제어기이다. 이 경우에, 제어 모듈이 제1 디바이스 내에 배치된다. 도 10은 개략적으로 다음을 기술한다: 제1 디바이스 내의 제어 모듈은 발신 제어 시그널링(예를 들어, 위에서 기술된 제1 제어 시그널링 및 제2 제어 시그널링)을 생성하고, 제어 시그널링을 발신 모듈에 내부 인터페이스를 통해서 전송한다; 발신 모듈은 발신 제어 시그널링을 발신 제어 프레임으로 캡슐화하고 발신 제어 프레임을 제2 디바이스에 발신하는데, 발신 제어 프레임은 발신을 위한 제어 패킷 내에서 전달될 수 있다; 제2 디바이스의 수신 모듈이 발신 제어 프레임을 수신한 후에, 제2 디바이스의 발신 모듈은 발신 제어 프레임의 지시에 기반하여 제1 디바이스에 데이터 패킷을 발신한다. 발신 제어 프레임의 포맷에 대해, 도 5 및 도 6을 참조하시오. 도 10에 기술된 아키텍처는 제1 디바이스가 제어를 수행하고 제2 디바이스가 패킷을 회신하는, 이 출원에서 기술된 다른 프로세스, 예를 들어, 도 9에서의 대응하는 전송 프로세스에 또한 적용될 수 있음이 이해되어야 한다.
몇몇 구현에서, 이 출원에서의 아키텍처는 또한 피어 디바이스의 데이터 전송을 제어하는 데에 사용될 수 있고, 로컬 디바이스는 여전히 기존의 기술을 사용함으로써 제어된다.
결론적으로, 제어 기능을 실행하는 제어 모듈은 서비스 요구사항, 네트워크 환경 변화, 또는 유사한 것에 기반하여 빈번히 업그레이드될 수 있다. 제어 모듈은 제조자 또는 사용자에 의해 제어될 수 있는 디바이스 상에 배치되거나 구동된다. 다시 말해, 그것은 패킷 전송을 제어하기 위해 일단에서의 디바이스를 지정하도록 설계되고 제어될 수 있어, 빠른 알고리즘 변환, 효율적인 제품 동작 및 유지 등을 구현한다.
이 출원에서의 설명에 기반하여, 통상의 기술자는 제어 패킷의 복수의 포맷을 설계할 수 있거나, 상술한 기능을 구현하기 위한 복수의 함수가 프로토콜 스택 또는 라이브러리에 추가되도록 정의할 수 있다. 따라서, 이 출원에서 제어 패킷의 포맷 또는 함수의 포맷은 한정되지 않고, 세부사항도 기술되지 않는다.
다음은 두 디바이스 간에 제어기를 협상하는 프로세스를 도 11을 참조하여 기술하기 위해 제1 디바이스 및 제2 디바이스 간의 링크 수립 국면에서 협상이 수행되는 예를 사용한다. 협상 프로세스에서 사용되는 시그널링은 페이로드로서 링크 수립 국면에서의 패킷 내에서 전달될 수 있다. 이 방식으로, 실시간 협상이 보장될 수 있고, 추가적인 전송되는 패킷은 가능한 한 감소될 수 있다. 도 11은 제어기를 협상하는 프로세스를 예시할 뿐만 아니라, 제어 패킷을 사용함으로써 데이터 패킷의 전송을 제어하는 프로세스를 또한 포함한다.
S1101: 제1 디바이스는 협상 시그널링을 제2 디바이스에 발신한다.
선택적으로, 제1 디바이스는 동시에 협상 시그널링 및 초기 제어 시그널링을 발신할 수 있다.
S1101 단계는 제1 디바이스 및 제2 디바이스가 신원 인증(identity authentication)을 상호간에 수행한 후에 수행될 수 있다. 예를 들어, 제1 디바이스 및 제2 디바이스가 처음으로 연결을 수립하는 경우에, 핸드쉐이크 패킷, 곧, 도 11에서의 핸드쉐이크 패킷 1 및 핸드쉐이크 패킷 2가 각각 신원 인증을 위해 서로에게 발신될 필요가 있다. 이 경우에, 협상 시그널링 및 초기 제어 시그널링은 초기의 두 핸드쉐이크 패킷 후, 차후의 핸드쉐이크 패킷, 곧, 도 11에서의 핸드쉐이크 패킷 3의 로드로서 사용될 수 있고, 하나의 패킷 내에 암호화되고 캡슐화된다. 차후의 핸드쉐이크 패킷은 프로토콜 버전 및 키(key)와 같은 정보를 더 포함할 수 있다. 물론, 만일 제1 디바이스 및 제2 디바이스가 이전에 연결을 수립하였다면, 즉, 양측이 신원을 인증하였다면, 제1 디바이스 및 제2 디바이스가 다시 링크를 수립하는 경우에, 협상 시그널링 및 초기 제어 시그널링은 전송된 제1 핸드쉐이크 패킷의 로드 내에서 전달될 수 있다. 도 11에서, 제1 디바이스는 직접적으로 제2 디바이스에 두 조목의 시그널링을 전달하는 핸드쉐이크 패킷 3을 발신한다.
제1 디바이스에 의해 발신된 협상 시그널링은 디바이스에 의해 지원되는 전송 파라미터 및 디바이스가 제어기인지를 나타내는 데에 사용되는 역할 파라미터를 포함한다. 전송 파라미터는 디바이스에 의해 지원되는 최대 연결 수량, 디바이스에 의해 지원되는 최대 경로 수량, 데이터 패킷의 길이, 초기 윈도우 크기, 디바이스에 의해 지원되는 FEC 알고리즘, 프로토콜, 프로토콜의 버전 번호 및 유사한 것 중 적어도 하나를 포함한다. 역할 파라미터는 식별자, 플래그, 또는 유사한 것일 수 있다. 예를 들어, 역할 파라미터는 또한 로컬 디바이스가 제어기가 아님을 나타내는 공란으로 두어질 수 있다. 역할 파라미터의 특정 형태는 이 출원에서 한정되지 않는다.
초기 제어 시그널링은 제1 디바이스가 제어기임을 가정하여 제1 디바이스에 의해 피어 종단에 발신된 제1 조목의 제어 시그널링이고, 패킷을 발신하도록 제2 디바이스를 제어하는 데에 사용된다. 예를 들어, 초기 제어 시그널링은 전송될 대상(예를 들어, 패킷 시퀀스 번호), 전송 모드 및 전송될 대상을 발신하기 위한 시기를 포함한다. 알려진 네트워크 정보 및 피어 정보가 비교적 별로 없거나 무효인 경우에, 제1 디바이스를 제어기로서 가정하여, 초기 제어 시그널링은 제1 디바이스에 의해 발신된다. 예를 들어, 초기 제어 시그널링은 디폴트 설정 또는 무작위로 할당된 네트워크 파라미터에 기반하여 발신될 수 있다. 초기 제어 시그널링은 전술된 제1 제어 시그널링, 곧, 하나의 조목의 발신 제어 시그널링일 수 있다.
이 방식으로, 만일 제1 디바이스가 제어기임을 제2 디바이스가 또한 판정하는 경우, 제2 디바이스는 초기 제어 시그널링에 기반하여 패킷을 발신할 수 있다. 이 방식으로, 데이터 전송 전의 패킷 교환이 가능한 한 많이 감소될 수 있고, 데이터 전송 전의 준비 시간이 단축될 수 있다.
S1102: 제2 디바이스는 제2 디바이스 내에 유지되는 협상 규칙, 제2 디바이스의 로컬 정보 및 수신된 협상 시그널링에 기반하여 협상 결과를 획득하고, 제1 디바이스에 협상 시그널링을 발신한다.
도 11에서, 협상 시그널링은 협상 패킷 내에서 전달된다.
제1 디바이스에 의해 발신된 협상 시그널링과 유사하게, 제2 디바이스에 의해 발신된 협상 시그널링은, 제2 디바이스에 의해 발신된 협상 시그널링을 수신한 후에 제1 디바이스가 제1 디바이스에 의해 유지되는 협상 규칙에 기반하여 협상 결과를 판정하도록, 제2 디바이스에 의해 유지되는 전송 파라미터 및 제2 디바이스가 제어기인지를 나타내는 데에 사용되는 역할 파라미터를 전달할 수 있거나, 제2 디바이스에 의해 획득된 협상 결과를 전달할 수 있다. 협상 결과는 제2 디바이스에 의해 판정된 제어기가 제1 디바이스 또는 제2 디바이스의 신원일 수 있음을 나타낸다. 제2 디바이스에 의해 발신된 협상 시그널링은 핸드쉐이크 패킷 또는 별도로 발신되는 제어 패킷 내에서 전달되는 페이로드로서 사용될 수 있다.
로컬 정보는 애플리케이션 파라미터, 데이터 흐름 파라미터, 경로 파라미터, 사용자 파라미터 및 물리 계층(physical layer) 채널 파라미터 중 적어도 하나를 포함하나 이에 한정되지 않는다. 애플리케이션 파라미터는 두 디바이스 상에서 연결을 수립하는 애플리케이션을 가리키고, 사용자 ID(User Identifier, UID) 및 액세스 도메인 이름(access domain name) 중 적어도 하나를 포함하나 이에 한정되지 않는다.
데이터 흐름 파라미터는 로컬 디바이스에 의해 액세스되는 적어도 하나의 데이터 흐름의 파라미터이다. 데이터 흐름의 데이터 흐름 파라미터는 데이터 흐름의 트래픽, 데이터 패킷 크기(size), 데이터 패킷 간의 도달 간격, 데이터 흐름에 대응하는 IP 주소 및 데이터 흐름에 대응하는 포트 번호 중 적어도 하나를 포함한다.
경로(path) 파라미터는 로컬 디바이스에 의해 액세스되는 적어도 하나의 경로의 파라미터이고, 다음 파라미터 중 하나 이상을 포함하나 이에 한정되지 않는다: 전송률(transmission rate), 라운드 트립 시간(RTT, Round Trip Time), 패킷 손실률(packet loss rate), 패킷 손실 범위, 지터(jitter), 혼잡 윈도우(CWND, congestion window) 및 대역폭.
사용자 파라미터는 디바이스를 사용하는 사용자에 의해 신청된(subscribed) 패키지의 트래픽 크기 및 사용자에 의해 연결에 대응하는 애플리케이션을 사용하는 빈도 중 적어도 하나를 포함하나 이에 한정되지 않는다.
물리 계층 채널 파라미터는, 예를 들어, 디바이스의 Wi-Fi 신호 세기 또는 디바이스가 위치된 LTE 기지국이 스위칭되고 있는지를 나타내는 정보 중 적어도 하나일 수 있다.
제2 디바이스가 제어기를 판정하는 것을 돕기 위해, 제2 디바이스는 하나 이상의 협상 규칙을 유지할 수 있다. 복수의 협상 규칙이 유지되는 경우에, 복수의 협상 규칙 내에 실행 우선순위가 존재할 수 있다. 협상 규칙의 구체적인 내용 및 형태는 이 출원에서 한정되지 않는다. 이해의 용이함을 위해, 다음은 협상 규칙의 예를 간단히 열거한다.
협상 규칙 1: 피어 디바이스의 전송 파라미터 및 로컬 디바이스의 전송 파라미터 중의 몇몇 파라미터의 값, 예를 들어, 데이터 패킷의 길이 및 초기 윈도우 크기의 값에 대해, 더 작은 값을 갖는 종단이 제어기이다.
협상 규칙 2: 만일 협상 시그널링이 피어 디바이스가 제어기임을 나타내는 경우, 로컬 디바이스는 비-제어기(non-controller)이다. 그러나, 만일 협상 시그널링이 피어 디바이스가 제어기임을 나타내고 피어 디바이스에 의해 지원되는 프로토콜 버전이 로컬 디바이스에 의해 지원되는 것보다 더 낮은 경우, 로컬 디바이스는 제어기이다.
만일 협상 시그널링이 피어 디바이스가 비-제어기임을 나타내는 경우, 로컬 디바이스는 제어기이다.
S1103: 만일 협상 시그널링이 피어 디바이스가 비-제어기임을 나타내고 로컬 디바이스가 제어 기능을 지원하지 않는 경우, 두 디바이스 중 어느 것도 제어기가 아니며, 두 디바이스에 의해 지원되는, 양단 제어 전송의 기존 전송 프로토콜이 대신 사용된다.
만일 제2 디바이스에 의해 회신된 협상 결과가 제1 디바이스가 제어기라는 것인 경우, 제2 디바이스는 수신된 초기 제어 시그널링에 기반하여 데이터를 전송하고, 제1 디바이스는 내부 인터페이스 함수를 사용함으로써 로컬 종단에서의 패킷 수신 및 전송을 제어한다.
만일 제2 디바이스에 의해 회신된 협상 결과가 제2 디바이스가 제어기라는 것이거나, 제2 디바이스로부터의 협상 시그널링이 제2 디바이스의 전송 파라미터 및 역할 파라미터만을 포함하는 경우, 제1 디바이스는 제2 디바이스로부터 수신된 협상 시그널링, 제1 디바이스의 로컬 정보 및 협상규칙에 기반하여 제어기를 판정한다. 만일 제1 디바이스가 또한 제2 디바이스가 제어기임을 판정하는 경우, 제2 디바이스는 제1 디바이스의 패킷 전송을 제어한다.
대안적으로, 다음의 처리가 수행된다: 제1 디바이스에 의해 판정된 제어기는 연결의 데이터 전송을 제어한다.
대안적으로, 제1 디바이스 및 제2 디바이스 양자 모두는 로컬 디바이스가 제어기라는 결과를 획득할 수 있거나, 제1 디바이스 및 제2 디바이스 양자 모두는 로컬 디바이스가 제어기가 아니라는 결과를 획득할 수 있거나, 협상을 통해서 획득된 제어기가 어떤 제어 권한도 갖지 않는다. 따라서, 상술한 세 경우에, 두 디바이스에 의해 지원되는, 양단 제어 전송의 기존 전송 프로토콜이 대신 사용된다.
상술한 협상 프로세스를 통해서, 제어기는 디바이스 및 네트워크의 구체적인 상태에 기반하여 연결의 링크 수립 국면에서 판정될 수 있다. 이 방식은 더욱 유연하며 협상 프로세스에서의 패킷 교환이 수행되지 않는다. 이는 협상 프로세스의 시간을 가능한 한 많이 감소시켜서, 데이터 전송 프로세스가 가능한 한 빨리 시작할 수 있고, 제1 디바이스가 데이터를 기다리는 시간이 감소된다.
제2 디바이스에 의해, 제1 디바이스의 패킷 전송을 제어하는 것의 구체적인 구현에 대해, 제1 디바이스가 제어기로서 사용되는 경우에서의 전술된 방법 절차 및 구현 세부사항을 참조하며, 세부사항은 여기에서 다시 기술되지 않는다.
도 11은 제1 디바이스가 협상 후 제어기인 예를 개략적으로 기술한다. 즉, 제2 디바이스에 의해 발신된 협상 시그널링을 수신한 후에, 도 11에서 1103에 도시된 바와 같이, 제1 디바이스는 제어기가 로컬 디바이스임을 판정한다. 도 11은 또한 1104를 기술하는데, 즉, 제2 디바이스가 초기 제어 시그널링에 기반하여 데이터를 전송한다. 추가로, 1105 및 1106이 기술되는데, 즉, 제1 디바이스는 제2 디바이스에 제어 패킷(예를 들어, 제어 패킷 1 및 제어 패킷 2)을 발신하되, 제어 메시지는 제어 시그널링을 전달한다; 제2 디바이스는 수신된 제어 메시지(예를 들어, 제어 메시지 1 및 제어 메시지 2)의 표시에 기반하여 패킷을 발신한다. 제어 메시지 1 및 제어 메시지 2는 전송될 필요가 있는 패킷을 계속해서 발신할 것을 제2 디바이스에 지시하는 데에 사용되고, 패킷은 제1 디바이스가 제2 디바이스로부터 패킷을 수신한 후에 발신됨이 이해되어야 한다. 제어 메시지 1 및 제어 메시지 2는 전술된 제어 시그널링 중 임의의 것을 전달할 수 있다. 단계 1101 내지 1106의 시간 순서 관계에 대해, 도면에 도시된 패킷 교환 관계가 참조될 수 있다.
도 9 내지 도 11에 대응하는 방법 절차에서, (도 5 내지 도 8에서 도시된 바와 같은) 이상의 대응하는 단락에서 기술된 다양한 제어 패킷 및 제어 패킷에 대한 응답이 사용될 수 있음이 이해되어야 한다.
도 12는 본 발명의 실시예에 따른 전송 제어 장치의 개략적인 구조도이다. 장치(1200)는 제어 모듈(1201), 발신 모듈(1202) 및 수신 모듈(1203)을 포함한다. 예를 들어, 도 12에서의 모듈은 도 10에 도시된 제1 디바이스에서의 모듈에 대응할 수 있다. 장치(1200)는 전술된 제1 디바이스 또는 제어기 상에서 구동될 수 있다. 유사하게, 도 13은 다른 전송 제어 장치의 개략적인 구조도이다. 장치(1300)는 수신 모듈(1301) 및 발신 모듈(1302)을 포함한다. 도 13은 도 10에 도시된 제2 디바이스에 대응할 수 있다. 장치(1300)는 전술된 제2 디바이스 또는 제어기 상에서 구동될 수 있다. 따라서, 도 12 및 도 13에서의 장치는 전술된 전송 제어 방법, 예를 들어, 도 9 내지 도 11에 대응하는 단락에서 기술된 예를 수행할 수 있다. 이들 전송 제어 방법을 수행하는 프로세스에서, 전술된 다양한 제어 시그널링이 사용될 수 있고, 이들 제어 시그널링은 도 5 내지 도 8에 도시된 예와 같은 전술된 캡슐화 포맷을 사용할 수 있다. 추가로, 구현에서, 장치(1200) 및 장치(1300)는 도 4에 도시된 운영 체제 내의 프로토콜 스택의 코드를 사용함으로써 구현될 수 있다.
다음은 장치(1200) 및 장치(1300)의 몇 개의 구현을 간단히 기술한다. 다음의 구현의 세부사항 및 기술적 효과에 대해, 상술한 설명을 참조하시오. 세부사항은 여기에서 다시 기술되지 않는다.
구현에서, 제어 모듈(1201)은 제1 제어 시그널링을 생성하도록 구성된다. 발신 모듈(1202)은 제1 제어 시그널링을 제2 디바이스에 발신하도록 구성되는데, 제1 제어 시그널링은 제1 그룹의 데이터 패킷을 발신할 것을 제2 디바이스에 지시하고, 제1 제어 시그널링은 제1 패킷 시퀀스 번호, 제1 패킷 시퀀스 번호 범위 및 제1 전송 시간 간격을 포함하고, 제1 그룹의 데이터 패킷은 제1 패킷 시퀀스 번호로부터 시작하는, 제1 패킷 시퀀스 번호 범위 내의 데이터 패킷이고, 제1 전송 시간 간격은 제1 그룹의 데이터 패킷 중의 데이터 패킷을 발신하기 위한 시간 간격을 나타낸다. 수신 모듈(1203)은 제2 디바이스로부터 적어도 하나의 데이터 패킷을 수신하도록 구성되는데, 적어도 하나의 데이터 패킷은 제1 그룹의 데이터 패킷 중의 데이터 패킷이다.
구현에서, 제어 모듈(1201)은 인터페이스 함수를 사용함으로써 발신 모듈(1202)에 제1 제어 시그널링을 전하도록 또한 구성된다.
구현에서, 제어 모듈(1201)은 수신된 제1 데이터 패킷에 기반하여 제2 제어 시그널링을 생성하도록 또한 구성된다. 제1 데이터 패킷의 패킷 시퀀스 번호는 적어도 하나의 데이터 패킷 중에서 최대이다. 발신 모듈(1202)은 제2 제어 시그널링을 발신하도록 또한 구성되는데, 제2 제어 시그널링은 제2 그룹의 데이터 패킷을 발신할 것을 제2 디바이스에 지시하고, 제2 제어 시그널링은 제2 패킷 시퀀스 번호, 제2 패킷 시퀀스 번호의 범위 및 제2 전송 시간 간격을 포함하고, 제2 그룹의 데이터 패킷은 제2 패킷 시퀀스 번호로부터 시작하는, 제2 패킷 시퀀스 번호 범위 내의 데이터 패킷이고, 제2 전송 시간 간격은 제2 그룹의 데이터 패킷 중의 데이터 패킷을 발신하기 위한 시간 간격을 나타내고, 제2 패킷 시퀀스 번호는 제1 데이터 패킷의 패킷 시퀀스 번호보다 더 크다.
구현에서, 제1 제어 시그널링은 제1 제어 프레임 내에 캡슐화되고, 제1 제어 프레임은 타입 필드, 초기 패킷 시퀀스 번호 필드, 패킷 시퀀스 번호 범위 필드 및 전송 시간 간격 필드를 포함하는데, 제1 제어 프레임 내의 타입 필드의 값은 제1 제어 시그널링의 타입에 대응하고, 제1 제어 프레임 내의 초기 패킷 시퀀스 번호 필드의 값은 제1 패킷 시퀀스 번호를 나타내고 제1 제어 프레임 내의 패킷 시퀀스 번호 범위 필드의 값은 제1 그룹의 데이터 패킷의 패킷 시퀀스 번호의 범위를 나타내고, 제1 제어 프레임 내의 전송 시간 간격 필드의 값은 제1 전송 시간 간격을 나타낸다.
구현에서, 발신 모듈(1202)은 제2 디바이스에 제3 제어 시그널링을 발신하도록 또한 구성되는데, 제3 제어 시그널링은 제1 패킷 시퀀스 번호를 포함한다. 수신 모듈(1203)은 제2 디바이스로부터 제3 제어 시그널링에 대한 응답을 수신하도록 또한 구성되는데, 제3 제어 시그널링에 대한 응답은 제1 패킷 시퀀스 번호 및 제1 패킷 시퀀스 번호로부터 시작하는 적어도 하나의 발신될 데이터 패킷에 대한 정보를 포함한다.
구현에서, 발신 모듈(1202)은: 제3 그룹의 데이터 패킷을 제2 디바이스에 발신하고(제3 그룹의 데이터 패킷은 제3 패킷 시퀀스 번호 범위 내의, 제3 패킷 시퀀스 번호로부터 시작하는 데이터 패킷임); 제4 제어 시그널링을 제2 디바이스에 발신하도록(제4 제어 시그널링은 제3 패킷 시퀀스 번호, 제3 패킷 시퀀스 번호 범위 및 타임스탬프를 포함하고, 타임스탬프는 제1 디바이스가 제4 제어 시그널링을 발신하는 시스템 시간임) 또한 구성된다. 수신 모듈(1203)은 제2 디바이스로부터 제4 제어 시그널링에 대한 응답을 수신하도록 또한 구성되는데, 제4 제어 시그널링에 대한 응답은 타임스탬프를 포함하고, 제4 제어 시그널링에 대한 응답은 수신되거나 수신되지 않은 데이터 패킷에 대한 정보를 더 포함하되, 데이터 패킷은 제3 그룹의 데이터 패킷 중의 데이터 패킷이다.
장치(1200)는 다중경로 전송 시나리오에서 다른 전송 제어를 또한 구현할 수 있다. 이 시나리오에서, 장치(1200)는 제1 디바이스 상에 위치되고, 제1 디바이스 및 제2 디바이스 간의 연결은 복수의 경로에 대응한다. 장치(1200)는 다음을 포함한다: 제1 패킷을 생성하도록 구성된 제어 모듈(1201)(제1 패킷은 이중 경로 식별자를 포함함); 복수의 경로 중의 제1 경로 상에서 제2 디바이스에 제1 패킷을 발신하도록 구성된 발신 모듈(1202); 및 이중 경로 식별자가 패킷 전송 모드가 단일 경로 전송임을 나타내는 경우에, 제2 디바이스에 의해 발신된 패킷을 제1 경로 상에서 수신하거나, 이중 경로 식별자가 패킷 전송 모드가 다중경로 전송임을 나타내는 경우에, 제2 디바이스에 의해 발신된 패킷을 복수의 경로 각각 상에서 수신하도록 구성된 수신 모듈(1203).
구현에서, 제어 모듈(1201)은 인터페이스 함수를 사용함으로써 발신 모듈(1202)에 제1 패킷을 전하도록 또한 구성된다.
다중경로 전송은 잉여적 전송이거나 아니면 집성된 전송이다. 이중 경로 식별자는 연결의 패킷 전송 모드를 나타내는 데에 사용된다. 이 방식으로, 다중경로 전송 시나리오에서, 데이터를 발신하는 방식이 이중 경로 식별자를 사용함으로써 피어 디바이스에 나타내어질 수 있다.
장치(1300)에 대해, 구현에서, 수신 모듈(1301)은 제1 디바이스로부터 제1 제어 시그널링을 수신하도록 구성되는데, 제1 제어 시그널링은 제1 패킷 시퀀스 번호, 제1 패킷 시퀀스 번호 범위 및 제1 전송 시간 간격을 포함한다. 발신 모듈(1302)은 제1 전송 시간 간격으로 제1 제어 시그널링에 기반하여 제1 디바이스에 적어도 하나의 제1 데이터 패킷을 발신하도록 구성되는데, 복수의 제1 데이터 패킷은 제1 패킷 시퀀스 번호 범위 내의, 제1 패킷 시퀀스 번호로부터 시작하는 데이터 패킷이다.
구현에서, 제1 제어 시그널링은 제1 제어 프레임 내에 캡슐화되고, 제1 제어 프레임은 타입 필드, 초기 패킷 시퀀스 번호 필드, 패킷 시퀀스 번호 범위 필드 및 전송 시간 간격 필드를 포함하는데, 제1 제어 프레임 내의 타입 필드의 값은 제1 제어 시그널링의 타입에 대응하고, 제1 제어 프레임 내의 초기 패킷 시퀀스 번호 필드의 값은 제1 패킷 시퀀스 번호를 나타내고, 제1 제어 프레임 내의 패킷 시퀀스 번호 범위 필드의 값은 제1 그룹의 데이터 패킷의 패킷 시퀀스 번호의 범위를 나타내고, 제1 제어 프레임 내의 전송 시간 간격 필드의 값은 제1 전송 시간 간격을 나타낸다.
구현에서, 수신 모듈(1301)은 제1 디바이스로부터 제2 제어 시그널링을 수신하도록 또한 구성되는데, 제2 제어 시그널링은 제2 패킷 시퀀스 번호, 제2 패킷 시퀀스 번호의 범위 및 제2 전송 시간 간격을 포함하고, 제2 패킷 시퀀스 번호는 제1 패킷의 패킷 시퀀스 번호보다 더 크다. 발신 모듈(1302)은 제2 제어 시그널링 및 제2 전송 시간 간격에 기반하여 제1 디바이스에 복수의 제2 데이터 패킷을 발신하도록 또한 구성되는데, 제2 데이터 패킷은 제2 패킷 시퀀스 번호로부터 시작하는, 제2 패킷 시퀀스 번호의 범위 내의 데이터 패킷이다.
구현에서, 수신 모듈(1301)은 제1 디바이스로부터 제3 제어 시그널링을 수신하도록 또한 구성되는데, 제3 제어 시그널링은 제1 패킷 시퀀스 번호를 포함한다. 발신 모듈(1302)은 제1 디바이스에 제3 제어 시그널링에 대한 응답을 발신하도록 또한 구성되는데, 제3 제어 시그널링에 대한 응답은 제1 패킷 시퀀스 번호 및 제1 패킷 시퀀스 번호로부터 시작하는 적어도 하나의 발신될 데이터 패킷에 대한 정보를 포함한다.
구현에서, 수신 모듈(1301)은 제1 디바이스로부터 적어도 하나의 제3 데이터 패킷 및 제4 제어 시그널링을 수신하도록 또한 구성되는데, 적어도 하나의 제3 데이터 패킷은 제3 그룹의 데이터 패킷 중의 데이터 패킷이고, 제4 제어 시그널링은 제3 패킷 시퀀스 번호, 제3 패킷 시퀀스 번호 범위 및 타임스탬프를 포함하고, 제3 그룹의 데이터 패킷은 제3 패킷 시퀀스 번호 범위 내의, 제3 패킷 시퀀스 번호로부터 시작하는 데이터 패킷이고, 타임스탬프는 제4 제어 시그널링이 발신될 때 제1 디바이스의 시스템 시간이다. 발신 모듈(1302)은 제1 디바이스에 제4 제어 시그널링의 피드백 패킷을 발신하도록 또한 구성되는데, 피드백 패킷은 타임스탬프를 포함하고, 피드백 패킷은 적어도 하나의 제3 데이터 패킷에 대한 정보 또는 제3 그룹의 데이터 패킷 중에서 수신되지 않은 데이터 패킷에 대한 정보를 더 포함한다.
장치(1300)는 다중경로 전송 시나리오에서 제어기와 협동하여 다른 전송 제어를 또한 구현할 수 있다. 이 시나리오에서, 장치(1300)는 제2 디바이스 내에 위치되고, 제1 디바이스 및 제2 디바이스 간의 연결은 복수의 경로에 대응한다. 수신 모듈(1301)은 복수의 경로 중의 제1 경로 상에서 제1 디바이스로부터 제1 패킷을 수신하도록 구성되는데, 제1 패킷은 이중 경로 식별자를 포함하고, 이중 경로 식별자는 연결의 패킷 전송 모드를 나타내는 데에 사용된다. 발신 모듈(1302)은: 이중 경로 식별자가 패킷 전송 모드가 단일 경로 전송임을 나타내는 경우에, 제2 디바이스에 의해 제1 경로 상에서, 패킷을 제1 디바이스에 발신하도록; 또는 이중 경로 식별자가 패킷 전송 모드가 다중경로 전송임을 나타내는 경우에, 제2 디바이스에 의해 복수의 경로 각각 상에서, 패킷을 제1 디바이스에 발신하도록 구성된다.
다중경로 전송은 잉여적 전송이거나 아니면 집성된 전송이다. 이중 경로 식별자는 연결의 패킷 전송 모드를 나타내는 데에 사용된다. 이 방식으로, 다중경로 전송 시나리오에서, 데이터를 발신하는 방식이 이중 경로 식별자를 사용함으로써 피어 디바이스에 나타내어질 수 있다.
도 14는 본 발명의 실시예에 따른 디바이스의 개략적인 구조도이다. 도 14에 기술된 디바이스는 단말, 클라우드 서버, 클라우드 프록시 서버, 로드 밸런서, 하이브리드 액세스 게이트웨이 또는 유사한 것일 수 있다. 디바이스(1400)는 적어도 하나의 처리 회로(1401) 및 통신 인터페이스(1403)(통신 인터페이스(1403)는 적어도 하나의 물리적 네트워크 인터페이스 카드를 포함함), 저장 매체(1404) 및 적어도 하나의 통신 버스(1402)를 포함한다. 통신 버스(1402)는 이들 컴포넌트 간의 연결 및 통신을 구현하도록 구성된다. 즉, 도 4에서 기술된 프로세서, 메모리 및 네트워크 인터페이스 카드를 포함하는 디바이스는 도 14의 구체적인 구현이다. 따라서, 도 14에서의 장치는 전술된 다양한 전송 제어 방법, 예를 들어, 도 9 내지 도 11에 대응하는 단락에서 기술된 예를 수행할 수 있다. 이들 전송 제어 방법을 수행하는 프로세스에서, 전술된 다양한 제어 시그널링이 사용될 수 있고, 이들 제어 시그널링은 도 5 내지 도 8에 도시된 예와 같은 전술된 캡슐화 포맷을 사용할 수 있다. 따라서, 구체적인 구현, 구현 세부사항 및 유익한 효과가 여기에서 다시 기술되지 않는다.
추가로, 처리 회로(1401)는 저장 매체(1404) 내의 코드를 실행하고, 통신 인터페이스(1403)와 협동하여, 도 12 및 도 13에 대응하는 장치를 구현한다. 예를 들어, 장치(1200 및 1300) 내의 발신 모듈 및 수신 모듈은 처리 회로(1401)에 의해 저장 매체(1404) 내의 명령어를 실행하고 통신 인터페이스(1403)를 가동함으로써 구현될 수 있고, 구체적으로 처리 회로(1401) 내에서 구동되는 상이한 프로세스 또는 쓰레드에 의해 명령어를 실행하고 따라서 통신 인터페이스를 호출함으로써 구현될 수 있다. 발신 모듈 및 수신 모듈은 하드웨어에서의 동일한 디바이스(예를 들어, 네트워크 인터페이스 카드)일 수 있고, 발신 모듈 및 수신 모듈의 기능은 디바이스 상의 상이한 포트(port)에 의해 구현된다.
구현에서, 디바이스(1400)는 단말 디바이스일 수 있다. 디바이스(1400)가 단말 디바이스인 경우에, 선택적으로, 디바이스(1400)는 사용자 인터페이스를 포함하고, 디스플레이(예를 들어, 터치스크린, LCD, CRT, 홀로그래픽 디바이스, 또는 프로젝터(Projector)), 키보드, 또는 클릭 디바이스(예를 들어, 마우스, 트랙볼(trackball), 터치패드, 또는 터치스크린)를 포함한다. 저장 매체(1405)는 판독 전용 메모리(read-only memory) 및 랜덤 액세스 메모리(random access memory)를 포함하고, 처리 회로(1401)에 명령어 및 데이터를 제공할 수 있다. 메모리 매체(1405)의 일부는 비휘발성 랜덤 액세스 메모리(non-volatile random access memory)(NVRAM)를 더 포함할 수 있다.
디바이스가 단말 디바이스, 클라우드 서버, 또는 클라우드 프록시 서버인 경우에, 저장 매체(1405)는 다음의 요소를 저장한다: 실행가능 모듈 또는 데이터 구조, 또는 이의 서브세트, 또는 이의 확장된 세트; 프레임워크 계층, 커널 라이브러리 계층 및 드라이버 계층과 같은 다양한 시스템 프로그램을 포함하고, 다양한 기본 서비스를 구현하고 하드웨어 기반 작업을 처리하도록 구성된 운영 체제; 및 론처(launcher), 미디어 플레이어(Media Player), 브라우저(Browser) 및 유사한 것과 같은 다양한 애플리케이션을 포함하고, 다양한 애플리케이션 서비스를 구현하도록 구성된 애플리케이션 프로그램. 디바이스가 게이트웨이인 경우에, 저장 매체(1405)는 (예를 들어, 데이터 패킷을 수신하거나 발신하는 것, 확인응답 패킷을 수신하거나 발신하는 것, 그리고 수신된 데이터 패킷을 분석하거나 수신된 확인응답 패킷을 분석하는 것을 포함하는) 상술한 방법을 수행하기 위해 요구되는 프로그램 코드만을 저장할 수 있다.
처리 회로(1401)는 하나 이상의 프로세서를 사용함으로써 구현될 수 있고, 처리 회로(1401)는 중앙 처리 유닛(영문: central processing unit, 줄여서 CPU)일 수 있다. 대안적으로, 처리 회로(1401)는 다른 일반 목적 프로세서, 디지털 신호 프로세서(영문; digital signal processing, 줄여서 DSP), 애플리케이션 특정 집적 회로(영문; application-specific integrated circuit, 줄여서 ASIC), 필드 프로그램가능 게이트 어레이(영문: field-programmable gate array, 줄여서 FPGA), 또는 다른 프로그램가능 로직 디바이스, 이산(discrete) 게이트 또는 트랜지스터 로직 디바이스, 이산 하드웨어 어셈블리, 또는 유사한 것일 수 있다. 일반 목적 프로세서는 마이크로프로세서일 수 있거나, 프로세서는 임의의 종래의 프로세서 또는 유사한 것일 수 있다.
통신 버스(1402)는 데이터 버스, 전력 공급 버스, 제어 버스, 상태 신호 버스 및 유사한 것을 포함할 수 있다. 이 실시예에서 명확한 설명을 위해, 도 14에서 다양한 버스가 통신 버스(1402)로서 표기된다.
통신 인터페이스(1403)는 구체적으로 물리적 머신(machine) 상의 통신 인터페이스일 수 있다. 통신 인터페이스는 무선 통신 인터페이스일 수 있다. 예를 들어, 무선 통신 인터페이스는 물리적 머신의 무선 모듈 또는 네트워크 인터페이스 카드일 수 있다. 처리 회로(1401)는 통신 인터페이스(1403)를 사용함으로써 다른 물리적 머신과 같은 다른 디바이스로부터 데이터를 수신하거나 이에 데이터를 발신한다.
저장 매체(1404)는 휘발성 메모리(영문; volatile memory), 예를 들어, 랜덤 액세스 메모리(영문: random access memory, 줄여서 RAM)를 포함할 수 있거나; 저장 매체(1404)는 비휘발성 메모리(영문: non-volatile memory), 예를 들면 판독 전용 메모리(영문: read-only memory, 줄여서 ROM), 플래시 메모리(영문: flash memory), 하드 디스크 드라이브(영문: hard disk drive, 줄여서 HDD), 또는 솔리드 스테이트 드라이브(영문: solid-state drive, 줄여서 SSD)를 포함할 수 있거나; 저장 매체(1404)는 상술한 타입의 메모리의 조합을 포함할 수 있다.
저장 매체(1404)는 기저의 저장 매체 및 메모리를 포함할 수 있다. 기저의 저장 매체는, 예를 들어, 네트워크 인터페이스 카드 내의 저장 매체일 수 있다. 메모리는 기저의 저장 매체에 커플링되고, 기저의 저장 매체의 캐시(cache)로서의 역할을 하도록 구성된다.
이 출원은 판독가능 저장 매체를 또한 제공한다. 판독가능 저장 매체는 컴퓨터 실행가능 명령어를 포함한다. 물리적 머신이 구동되는 경우에, 물리적 머신의 프로세서는, 물리적 머신이 본 발명의 실시예에서 제공된 방법 중 임의의 것을 수행하도록, 컴퓨터 실행가능 명령어를 실행한다.
선택적으로, 이 실시예에서의 판독가능 저장 매체는 도 14에 도시된 저장 매체(1404)일 수 있다.
이 출원은 컴퓨터 프로그램 제품을 또한 기술하는데, 컴퓨터 프로그램 제품은 명령어를 포함하고, 명령어가 컴퓨터 상에서 구동되는 경우에, 컴퓨터는 이 출원에서 기술된 방법 중 임의의 것을 수행한다.
구현에 대한 상술한 설명은 통상의 기술자로 하여금, 편리하고 간단한 설명의 목적으로, 상술한 기능 모듈의 구분이 예시를 위해 예로서 사용됨을 이해할 수 있도록 한다. 실제의 애플리케이션에서, 상술한 기능은 요구사항에 따라 구현을 위해 상이한 기능 모듈에 할당될 수 있는데, 즉, 장치의 내부 구조는 전술된 기능의 전부 또는 일부를 구현하기 위해 상이한 기능 모듈로 나뉜다. 상술한 시스템, 장치 및 유닛의 상세한 작업 프로세스에 대해, 상술한 방법 실시예에서의 대응하는 프로세스를 참조하며, 세부사항은 여기에서 다시 기술되지 않는다.
이 출원에서 제공된 실시예에서, 개시된 디바이스, 장치 및 방법은 다른 방식으로 구현될 수 있음이 이해되어야 한다. 예를 들어, 기술된 장치 실시예는 단지 예이다. 예를 들어, 모듈로의 구분은 단지 논리적 기능 구분이며 실제의 구현에서 다른 구분일 수 있다. 예를 들어, 복수의 유닛 또는 컴포넌트가 다른 시스템으로 조합 또는 집적될 수 있거나, 몇몇 특징이 무시될 수 있거나 수행되지 않을 수 있다. 예를 들어, 발신 모듈(1202) 및 수신 모듈(1203)은 모듈, 예를 들어, 송수신기 모듈 또는 송수신기일 수 있다. 추가로, 현시되거나 논의된 상호 커플링 또는 직접적인 커플링 또는 통신 연결은 몇몇 인터페이스, 예를 들어, 전술된 인터페이스 함수를 통해서 구현될 수 있고, 장치 또는 유닛 간의 간접적인 커플링 또는 통신 연결은 전기적 형태, 기계적 형태, 또는 다른 형태로 구현될 수 있다.
소프트웨어가 상술한 실시예를 구현하는 데에 사용되는 경우에, 실시예는 전적으로 또는 부분적으로 컴퓨터 프로그램 제품의 형태로 구현될 수 있다. 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 명령어를 포함한다. 컴퓨터 프로그램 명령어가 컴퓨터 상에 로딩되고 실행되는 경우에, 본 발명의 실시예에 따른 절차 또는 기능이 전부 또는 부분적으로 생성된다. 컴퓨터는 일반 목적 컴퓨터, 특수 목적 컴퓨터, 컴퓨터 네트워크, 또는 다른 프로그램가능 장치일 수 있다. 컴퓨터 명령어는 컴퓨터 판독가능 저장 매체 내에 저장될 수 있거나 컴퓨터 판독가능 저장 매체로부터 다른 컴퓨터 판독가능 저장 매체로 전송될 수 있다. 예를 들어, 컴퓨터 명령어는 웹사이트, 컴퓨터, 서버, 또는 데이터 센터로부터 다른 웹사이트, 컴퓨터, 서버, 또는 데이터 센터로 유선(예를 들어, 동축 케이블(coaxial cable), 광섬유(optical fiber), 또는 디지털 가입자 회선(Digital Subscriber Line)(DSL)) 또는 무선(예를 들어, 적외선(infrared), 무전(radio), 또는 마이크로파(microwave)) 방식으로 전송될 수 있다. 컴퓨터 판독가능 저장 매체는 컴퓨터에 의해 액세스 가능한 임의의 사용가능 매체, 또는 하나 이상의 사용가능 매체를 통합한 서버 또는 데이터 센터와 같은 데이터 저장 디바이스일 수 있다. 사용가능 매체는 자기적 매체(예를 들어, 플로피 디스크, 하드 디스크, 또는 자기 테이프), 광학적 매체(예를 들어, DVD), 반도체 매체(예를 들어, 솔리드 스테이트 디스크(Solid State Disk)(SSD), 위상 변화 메모리(phase change memory)) 또는 유사한 것일 수 있다.
이상은 본 발명의 실시예에서 제공되는 방법 및 장치이다. 상술한 실시예의 설명은 단지 본 발명의 방법을 이해하는 것을 돕도록 의도된다. 추가로, 통상의 기술자는, 본 발명에서 개시된 내용에 기반하여, 구체적인 구현 및 적용 범위에 관해서 수정을 행할 수 있다. 따라서, 이 명세서의 내용은 본 발명에 대한 한정으로서 해석되어서는 안 된다.

Claims (39)

  1. 전송 제어 방법으로서,
    제1 디바이스에 의해, 제1 제어 시그널링을 제2 디바이스에 발신하는 단계 - 상기 제1 제어 시그널링은 제1 그룹의 데이터 패킷을 발신할 것을 상기 제2 디바이스에 지시하고, 상기 제1 제어 시그널링은 제1 패킷 시퀀스 번호, 제1 패킷 시퀀스 번호 범위 및 제1 전송 시간 간격을 포함하고, 상기 제1 그룹의 데이터 패킷은 상기 제1 패킷 시퀀스 번호로부터 시작하는, 상기 제1 패킷 시퀀스 번호 범위 내의 데이터 패킷이고, 상기 제1 전송 시간 간격은 상기 제1 그룹의 데이터 패킷 중의 데이터 패킷을 발신하기 위한 시간 간격을 나타냄 - 와,
    상기 제1 디바이스에 의해, 상기 제2 디바이스로부터 적어도 하나의 데이터 패킷을 수신하는 단계 - 상기 적어도 하나의 데이터 패킷은 상기 제1 그룹의 데이터 패킷 중의 데이터 패킷임 - 를 포함하고,
    상기 방법은,
    상기 제1 디바이스에 의해, 수신된 제1 데이터 패킷에 기반하여 제2 제어 시그널링을 발신하는 단계를 더 포함하되, 상기 수신된 제1 데이터 패킷의 패킷 시퀀스 번호는 상기 적어도 하나의 데이터 패킷 중에서 최대이고, 상기 제2 제어 시그널링은 제2 그룹의 데이터 패킷을 발신할 것을 상기 제2 디바이스에 지시하고, 상기 제2 제어 시그널링은 제2 패킷 시퀀스 번호, 제2 패킷 시퀀스 번호 범위 및 제2 전송 시간 간격을 포함하고, 상기 제2 그룹의 데이터 패킷은 상기 제2 패킷 시퀀스 번호 범위 내의, 상기 제2 패킷 시퀀스 번호로부터 시작하는 데이터 패킷이고, 상기 제2 전송 시간 간격은 상기 제2 그룹의 데이터 패킷 중의 데이터 패킷을 발신하기 위한 시간 간격을 나타내고, 상기 제2 패킷 시퀀스 번호는 상기 수신된 제1 데이터 패킷의 상기 패킷 시퀀스 번호보다 더 큰,
    방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 제1 제어 시그널링은 제1 제어 프레임 내에 캡슐화되고(encapsulated), 상기 제1 제어 프레임은 타입 필드, 초기 패킷 시퀀스 번호 필드, 패킷 시퀀스 번호 범위 필드 및 전송 시간 간격 필드를 포함하고, 상기 제1 제어 프레임 내의 상기 타입 필드의 값은 상기 제1 제어 시그널링의 타입에 대응하고, 상기 제1 제어 프레임 내의 상기 초기 패킷 시퀀스 번호 필드의 값은 상기 제1 패킷 시퀀스 번호를 나타내고, 상기 제1 제어 프레임 내의 상기 패킷 시퀀스 번호 범위 필드의 값은 제1 그룹의 데이터 패킷의 패킷 시퀀스 번호의 범위를 나타내고, 상기 제1 제어 프레임 내의 상기 전송 시간 간격 필드의 값은 상기 제1 전송 시간 간격을 나타내는,
    방법.
  4. 제1항에 있어서,
    상기 제2 디바이스로부터 적어도 하나의 데이터 패킷을 수신하는 단계 후에, 상기 방법은,
    상기 제1 디바이스에 의해, 상기 제2 디바이스에 제3 제어 시그널링을 발신하는 단계 - 상기 제3 제어 시그널링은 상기 제1 패킷 시퀀스 번호를 포함함 - 와,
    상기 제1 디바이스에 의해, 상기 제2 디바이스로부터 상기 제3 제어 시그널링에 대한 응답을 수신하는 단계 - 상기 제3 제어 시그널링에 대한 상기 응답은 상기 제1 패킷 시퀀스 번호 및 상기 제1 패킷 시퀀스 번호로부터 시작하는 적어도 하나의 발신될 데이터 패킷에 대한 정보를 포함함 - 를 더 포함하는,
    방법.
  5. 제1항에 있어서,
    상기 방법은,
    상기 제1 디바이스에 의해, 제3 그룹의 데이터 패킷을 상기 제2 디바이스에 발신하는 단계 - 상기 제3 그룹의 데이터 패킷은 제3 패킷 시퀀스 번호 범위 내의, 제3 패킷 시퀀스 번호로부터 시작하는 데이터 패킷임 - 와,
    상기 제1 디바이스에 의해, 제4 제어 시그널링을 상기 제2 디바이스에 발신하는 단계 - 상기 제4 제어 시그널링은 상기 제3 패킷 시퀀스 번호, 상기 제3 패킷 시퀀스 번호 범위 및 타임스탬프(timestamp)를 포함하고, 상기 타임스탬프는 상기 제1 디바이스가 상기 제4 제어 시그널링을 발신하는 시스템 시간임 - 와,
    상기 제1 디바이스에 의해, 상기 제2 디바이스로부터 상기 제4 제어 시그널링에 대한 응답을 수신하는 단계 - 상기 제4 제어 시그널링에 대한 상기 응답은 상기 타임스탬프를 포함하고, 상기 제4 제어 시그널링에 대한 상기 응답은 수신되거나 수신되지 않은 데이터 패킷에 대한 정보를 더 포함하되, 상기 수신되거나 수신되지 않은 데이터 패킷은 상기 제3 그룹의 데이터 패킷 중의 데이터 패킷임 - 를 더 포함하는,
    방법.
  6. 제5항에 있어서,
    상기 제4 제어 시그널링은 제4 제어 프레임 내에 캡슐화되고, 상기 제4 제어 프레임은 타입 필드, 초기 패킷 시퀀스 번호 필드, 패킷 시퀀스 번호 범위 필드 및 타임스탬프 필드를 포함하고, 상기 제4 제어 프레임 내의 상기 타입 필드의 값은 상기 제4 제어 시그널링의 타입에 대응하고, 상기 제4 제어 프레임 내의 상기 초기 패킷 시퀀스 번호 필드의 값은 상기 제3 패킷 시퀀스 번호를 나타내고, 상기 제4 제어 프레임 내의 상기 패킷 시퀀스 번호 범위 필드의 값은 상기 제3 그룹의 데이터 패킷의 패킷 시퀀스 번호의 범위를 나타내는,
    방법.
  7. 제4항에 있어서,
    상기 제1 그룹의 데이터 패킷, 제2 그룹의 데이터 패킷 및 제3 그룹의 데이터 패킷은 제1 흐름 식별자 번호를 전달하고, 상기 제1 제어 시그널링이 위치된 패킷, 제2 제어 시그널링이 위치된 패킷, 상기 제3 제어 시그널링이 위치된 패킷, 제4 제어 시그널링이 위치된 패킷, 그리고 상기 제3 제어 시그널링에 대한 상기 응답이 위치된 패킷 및 상기 제4 제어 시그널링에 대한 상기 응답이 위치된 패킷은 각각 제2 흐름 식별자 번호를 전달하는,
    방법.
  8. 제1항에 있어서,
    상기 제1 제어 시그널링은 제1 제어 프레임 내에 캡슐화되고, 상기 제1 제어 프레임은 제1 제어 패킷 내에 캡슐화되고, 상기 제1 제어 프레임은 제3 흐름 식별자를 전달하고, 상기 제1 제어 패킷은 제5 제어 프레임을 더 포함하고, 상기 제5 제어 프레임 내에 제5 제어 시그널링이 캡슐화되고, 상기 제5 제어 시그널링은 제5 그룹의 패킷을 발신할 것을 상기 제2 디바이스에 지시하는 데에 사용되고, 상기 제5 제어 프레임은 제4 흐름 식별 번호를 전달하는,
    방법.
  9. 전송 제어 방법으로서,
    제2 디바이스에 의해, 제1 디바이스로부터 제1 제어 시그널링을 수신하는 단계 - 상기 제1 제어 시그널링은 제1 패킷 시퀀스 번호, 제1 패킷 시퀀스 번호 범위 및 제1 전송 시간 간격을 포함함 - 와,
    상기 제2 디바이스에 의해, 상기 제1 전송 시간 간격으로 상기 제1 제어 시그널링에 기반하여 상기 제1 디바이스에 복수의 제1 데이터 패킷을 발신하는 단계 - 상기 복수의 제1 데이터 패킷은 상기 제1 패킷 시퀀스 번호로부터 시작하는, 상기 제1 패킷 시퀀스 번호 범위 내의 데이터 패킷임 - 와,
    상기 제2 디바이스에 의해, 수신된 제1 데이터 패킷에 기반한 제2 제어 시그널링을 수신하는 단계 - 상기 수신된 제1 데이터 패킷의 패킷 시퀀스 번호는 적어도 하나의 데이터 패킷 중에서 최대임 - 와,
    상기 제2 디바이스에 의해, 상기 제2 제어 시그널링에 기반하여 제2 그룹의 데이터 패킷을 발신하는 단계 - 상기 제2 제어 시그널링은 제2 패킷 시퀀스 번호, 제2 패킷 시퀀스 번호 범위 및 제2 전송 시간 간격을 포함하고, 상기 제2 그룹의 데이터 패킷은 상기 제2 패킷 시퀀스 번호 범위 내의, 상기 제2 패킷 시퀀스 번호로부터 시작하는 데이터 패킷이고, 상기 제2 전송 시간 간격은 상기 제2 그룹의 데이터 패킷 중의 데이터 패킷을 발신하기 위한 시간 간격을 나타내고, 상기 제2 패킷 시퀀스 번호는 상기 수신된 제1 데이터 패킷의 상기 패킷 시퀀스 번호보다 더 큼 - 를 포함하는,
    방법.
  10. 제9항에 있어서,
    상기 제1 제어 시그널링은 제1 제어 프레임 내에 캡슐화되고, 상기 제1 제어 프레임은 타입 필드, 초기 패킷 시퀀스 번호 필드, 패킷 시퀀스 번호 범위 필드 및 전송 시간 간격 필드를 포함하고, 상기 제1 제어 프레임 내의 상기 타입 필드의 값은 상기 제1 제어 시그널링의 타입을 나타내고, 상기 제1 제어 프레임 내의 상기 초기 패킷 시퀀스 번호 필드의 값은 상기 제1 패킷 시퀀스 번호를 나타내고, 상기 제1 제어 프레임 내의 상기 패킷 시퀀스 번호 범위 필드의 값은 제1 그룹의 데이터 패킷의 패킷 시퀀스 번호의 범위를 나타내고, 상기 제1 제어 프레임 내의 상기 전송 시간 간격 필드의 값은 상기 제1 전송 시간 간격을 나타내는,
    방법.
  11. 삭제
  12. 제9항에 있어서,
    상기 방법은,
    상기 제2 디바이스에 의해, 상기 제1 디바이스로부터 제3 제어 시그널링을 수신하는 단계 - 상기 제3 제어 시그널링은 상기 제1 패킷 시퀀스 번호를 포함함 - 와,
    상기 제2 디바이스에 의해, 상기 제3 제어 시그널링에 대한 응답을 상기 제1 디바이스에 발신하는 단계 - 상기 제3 제어 시그널링에 대한 상기 응답은 상기 제1 패킷 시퀀스 번호 및 상기 제1 패킷 시퀀스 번호로부터 시작하는 적어도 하나의 발신될 데이터 패킷에 대한 정보를 포함함 - 를 더 포함하는,
    방법.
  13. 전송 제어 디바이스로서,
    상기 디바이스는 처리 회로, 통신 인터페이스 및 저장 매체를 포함하고, 상기 저장 매체는 명령어를 저장하고, 상기 통신 인터페이스는 프로세서에 의해 전해진 상기 명령어에 기반하여 다른 디바이스와의 정보 교환을 수행하도록 구성되고, 상기 프로세서는 방법을 구현하기 위해, 상기 통신 인터페이스를 제어하기 위해 상기 저장 매체에 저장된 상기 명령어를 구동하도록 구성되되, 상기 방법은,
    제1 제어 시그널링을 제2 디바이스에 발신하는 단계 - 상기 제1 제어 시그널링은 제1 그룹의 데이터 패킷을 발신할 것을 상기 제2 디바이스에 지시하고, 상기 제1 제어 시그널링은 제1 패킷 시퀀스 번호, 제1 패킷 시퀀스 번호 범위 및 제1 전송 시간 간격을 포함하고, 상기 제1 그룹의 데이터 패킷은 상기 제1 패킷 시퀀스 번호로부터 시작하는, 상기 제1 패킷 시퀀스 번호 범위 내의 데이터 패킷이고, 상기 제1 전송 시간 간격은 상기 제1 그룹의 데이터 패킷 중의 데이터 패킷을 발신하기 위한 시간 간격을 나타냄 - 와,
    상기 제2 디바이스로부터 적어도 하나의 데이터 패킷을 수신하는 단계 - 상기 적어도 하나의 데이터 패킷은 상기 제1 그룹의 데이터 패킷 중의 데이터 패킷임 - 를 포함하고,
    상기 방법은,
    수신된 제1 데이터 패킷에 기반하여 제2 제어 시그널링을 발신하는 단계를 더 포함하되, 상기 수신된 제1 데이터 패킷의 패킷 시퀀스 번호는 상기 적어도 하나의 데이터 패킷 중에서 최대이고, 상기 제2 제어 시그널링은 제2 그룹의 데이터 패킷을 발신할 것을 상기 제2 디바이스에 지시하고, 상기 제2 제어 시그널링은 제2 패킷 시퀀스 번호, 제2 패킷 시퀀스 번호 범위 및 제2 전송 시간 간격을 포함하고, 상기 제2 그룹의 데이터 패킷은 상기 제2 패킷 시퀀스 번호 범위 내의, 상기 제2 패킷 시퀀스 번호로부터 시작하는 데이터 패킷이고, 상기 제2 전송 시간 간격은 상기 제2 그룹의 데이터 패킷 중의 데이터 패킷을 발신하기 위한 시간 간격을 나타내고, 상기 제2 패킷 시퀀스 번호는 상기 수신된 제1 데이터 패킷의 상기 패킷 시퀀스 번호보다 더 큰,
    디바이스.
  14. 삭제
  15. 제13항에 있어서,
    상기 제1 제어 시그널링은 제1 제어 프레임 내에 캡슐화되고, 상기 제1 제어 프레임은 타입 필드, 초기 패킷 시퀀스 번호 필드, 패킷 시퀀스 번호 범위 필드 및 전송 시간 간격 필드를 포함하고, 상기 제1 제어 프레임 내의 상기 타입 필드의 값은 상기 제1 제어 시그널링의 타입에 대응하고, 상기 제1 제어 프레임 내의 상기 초기 패킷 시퀀스 번호 필드의 값은 상기 제1 패킷 시퀀스 번호를 나타내고, 상기 제1 제어 프레임 내의 상기 패킷 시퀀스 번호 범위 필드의 값은 제1 그룹의 데이터 패킷의 패킷 시퀀스 번호의 범위를 나타내고, 상기 제1 제어 프레임 내의 상기 전송 시간 간격 필드의 값은 상기 제1 전송 시간 간격을 나타내는,
    디바이스.
  16. 제13항에 있어서,
    상기 제2 디바이스로부터 적어도 하나의 데이터 패킷을 수신하는 단계 후에, 상기 방법은,
    상기 제2 디바이스에 제3 제어 시그널링을 발신하는 단계 - 상기 제3 제어 시그널링은 상기 제1 패킷 시퀀스 번호를 포함함 - 와,
    상기 제2 디바이스로부터 상기 제3 제어 시그널링에 대한 응답을 수신하는 단계 - 상기 제3 제어 시그널링에 대한 상기 응답은 상기 제1 패킷 시퀀스 번호 및 상기 제1 패킷 시퀀스 번호로부터 시작하는 적어도 하나의 발신될 데이터 패킷에 대한 정보를 포함함 - 를 더 포함하는,
    디바이스.
  17. 컴퓨터 판독가능 저장 매체로서,
    명령어를 포함하되, 상기 명령어가 컴퓨터 상에서 구동되는 경우에, 상기 컴퓨터는,
    제1 디바이스로부터 제1 제어 시그널링을 수신하는 단계 - 상기 제1 제어 시그널링은 제1 패킷 시퀀스 번호, 제1 패킷 시퀀스 번호 범위 및 제1 전송 시간 간격을 포함함 - 와,
    상기 제1 전송 시간 간격으로 상기 제1 제어 시그널링에 기반하여 상기 제1 디바이스에 복수의 제1 데이터 패킷을 발신하는 단계 - 상기 복수의 제1 데이터 패킷은 상기 제1 패킷 시퀀스 번호로부터 시작하는, 상기 제1 패킷 시퀀스 번호 범위 내의 데이터 패킷임 - 와,
    수신된 제1 데이터 패킷에 기반한 제2 제어 시그널링을 수신하는 단계 - 상기 수신된 제1 데이터 패킷의 패킷 시퀀스 번호는 적어도 하나의 데이터 패킷 중에서 최대임 - 와,
    상기 제2 제어 시그널링에 기반하여 제2 그룹의 데이터 패킷을 발신하는 단계 - 상기 제2 제어 시그널링은 제2 패킷 시퀀스 번호, 제2 패킷 시퀀스 번호 범위 및 제2 전송 시간 간격을 포함하고, 상기 제2 그룹의 데이터 패킷은 상기 제2 패킷 시퀀스 번호 범위 내의, 상기 제2 패킷 시퀀스 번호로부터 시작하는 데이터 패킷이고, 상기 제2 전송 시간 간격은 상기 제2 그룹의 데이터 패킷 중의 데이터 패킷을 발신하기 위한 시간 간격을 나타내고, 상기 제2 패킷 시퀀스 번호는 상기 수신된 제1 데이터 패킷의 상기 패킷 시퀀스 번호보다 더 큼 - 를 포함하는 방법을 수행할 수 있게 되는,
    컴퓨터 판독가능 저장 매체.
  18. 제17항에 있어서,
    상기 제1 제어 시그널링은 제1 제어 프레임 내에 캡슐화되고, 상기 제1 제어 프레임은 타입 필드, 초기 패킷 시퀀스 번호 필드, 패킷 시퀀스 번호 범위 필드 및 전송 시간 간격 필드를 포함하고, 상기 제1 제어 프레임 내의 상기 타입 필드의 값은 상기 제1 제어 시그널링의 타입을 나타내고, 상기 제1 제어 프레임 내의 상기 초기 패킷 시퀀스 번호 필드의 값은 상기 제1 패킷 시퀀스 번호를 나타내고, 상기 제1 제어 프레임 내의 상기 패킷 시퀀스 번호 범위 필드의 값은 제1 그룹의 데이터 패킷의 패킷 시퀀스 번호의 범위를 나타내고, 상기 제1 제어 프레임 내의 상기 전송 시간 간격 필드의 값은 상기 제1 전송 시간 간격을 나타내는,
    컴퓨터 판독가능 저장 매체.
  19. 삭제
  20. 제17항에 있어서,
    상기 방법은,
    상기 제1 디바이스로부터 제3 제어 시그널링을 수신하는 단계 - 상기 제3 제어 시그널링은 상기 제1 패킷 시퀀스 번호를 포함함 - 와,
    상기 제3 제어 시그널링에 대한 응답을 상기 제1 디바이스에 발신하는 단계 - 상기 제3 제어 시그널링에 대한 상기 응답은 상기 제1 패킷 시퀀스 번호 및 상기 제1 패킷 시퀀스 번호로부터 시작하는 적어도 하나의 발신될 데이터 패킷에 대한 정보를 포함함 - 를 더 포함하는,
    컴퓨터 판독가능 저장 매체.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
KR1020207033330A 2018-09-04 2019-09-04 전송 제어 방법 및 장치 KR102452752B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811025822.X 2018-09-04
CN201811025822.XA CN110875799B (zh) 2018-09-04 2018-09-04 一种传输控制方法和装置
PCT/CN2019/104343 WO2020048478A1 (zh) 2018-09-04 2019-09-04 一种传输控制方法和装置

Publications (2)

Publication Number Publication Date
KR20210003834A KR20210003834A (ko) 2021-01-12
KR102452752B1 true KR102452752B1 (ko) 2022-10-07

Family

ID=69716933

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207033330A KR102452752B1 (ko) 2018-09-04 2019-09-04 전송 제어 방법 및 장치

Country Status (6)

Country Link
US (1) US11477130B2 (ko)
EP (1) EP3780440A4 (ko)
JP (1) JP7142722B2 (ko)
KR (1) KR102452752B1 (ko)
CN (1) CN110875799B (ko)
WO (1) WO2020048478A1 (ko)

Families Citing this family (11)

* 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
US20210119930A1 (en) * 2019-10-31 2021-04-22 Intel Corporation Reliable transport architecture
US11522804B2 (en) * 2020-03-20 2022-12-06 Cornami, Inc. Method and system for robust streaming of data
US11489761B2 (en) * 2020-04-23 2022-11-01 Code On Network Coding, Llc Method and apparatus for coded multipath network communication
CN112019447A (zh) * 2020-08-19 2020-12-01 博锐尚格科技股份有限公司 数据流量控制方法、装置、系统、电子设备、及存储介质
CN112104635B (zh) * 2020-09-09 2022-10-14 中移(杭州)信息技术有限公司 通信方法、系统和网络设备
CN112351041B (zh) * 2020-11-11 2023-04-21 宏图智能物流股份有限公司 一种应用于物流网络的网络请求防篡改方法
CN114979021B (zh) * 2021-02-27 2024-05-14 华为技术有限公司 数据处理方法及电子设备
CN114143061B (zh) * 2021-11-25 2023-06-02 郑州信大信息技术研究院有限公司 基于用户态协议栈实现数据安全可靠传输的方法及系统
CN115022251B (zh) * 2022-06-02 2023-09-05 中国电子科技集团公司第二十八研究所 一种信息系统间双向报文收发控制方法
WO2024085573A1 (ko) * 2022-10-17 2024-04-25 주식회사 브이알크루 크라우드 소싱 기반 3차원 지도 갱신 방법 및 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090083339A (ko) * 2006-09-13 2009-08-03 아산키아 네트웍스 인코포레이티드 다중경로 환경에서 전송 프로토콜의 성능을 향상시키기 위한 시스템 및 방법
CN101656656B (zh) * 2008-08-22 2011-12-14 中国移动通信集团公司 基于异构化移动通信网络的报文发送、接收方法及装置
CN101594692B (zh) 2009-06-30 2011-05-11 中兴通讯股份有限公司 一种ip abis中的快速呼叫建立的方法及系统
CN102025601B (zh) * 2009-09-17 2014-12-10 中兴通讯股份有限公司 一种数据封装方法及系统
KR20120082416A (ko) * 2009-10-07 2012-07-23 톰슨 라이센싱 네트워크에서 신뢰성 있는 실시간 데이터 스트리밍을 위한 효율적인 애플리케이션 계층의 자동 반복 요청 재송신 방법
CN101699786B (zh) * 2009-10-15 2012-09-05 华为技术有限公司 一种丢包检测的方法、装置和系统
CN101883047B (zh) * 2010-06-25 2012-05-30 黄宏程 多网络接口设备的数据并发传输方法
JP5672063B2 (ja) * 2011-02-24 2015-02-18 富士通株式会社 送信制御プログラム、通信装置および送信制御方法
EP2710853B1 (en) * 2011-05-20 2017-11-08 BlackBerry Limited Hybrid automatic repeat request using multiple receiver- coordinated transmitters
US9456464B2 (en) 2013-06-06 2016-09-27 Apple Inc. Multipath TCP subflow establishment and control
CN104601483A (zh) * 2013-10-31 2015-05-06 华为技术有限公司 报文转发方法、装置及转发设备
US9781488B2 (en) * 2015-07-30 2017-10-03 Adi Rozenberg Controlled adaptive rate switching system and method for media streaming over IP networks
CN107872357B (zh) * 2016-09-27 2020-05-08 华为技术有限公司 一种测量链路可用带宽的方法、设备及系统
CN107425943A (zh) * 2017-08-31 2017-12-01 广州视源电子科技股份有限公司 报文数据传输方法、装置、电子设备及计算机存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
‘Receiver-centric Buffer Blocking-aware Multipath Data Distribution in MPTCP-based Heterogeneous Wireless Networks’, KSII TRANSACTIONS ON INTERNET AND INFORMATION SYSTEMS VOL. 10, NO. 10, Oct. 2016.*

Also Published As

Publication number Publication date
JP2021525044A (ja) 2021-09-16
JP7142722B2 (ja) 2022-09-27
US11477130B2 (en) 2022-10-18
EP3780440A1 (en) 2021-02-17
KR20210003834A (ko) 2021-01-12
CN110875799B (zh) 2023-07-07
CN110875799A (zh) 2020-03-10
US20210067457A1 (en) 2021-03-04
WO2020048478A1 (zh) 2020-03-12
EP3780440A4 (en) 2021-06-16

Similar Documents

Publication Publication Date Title
KR102452752B1 (ko) 전송 제어 방법 및 장치
US10694005B2 (en) Hardware-based packet forwarding for the transport layer
US10841373B2 (en) Optimizing data transmission between a first endpoint and a second endpoint in a computer network
US8209430B2 (en) Apparatus and method for remote communication and bandwidth adjustments
US8122140B2 (en) Apparatus and method for accelerating streams through use of transparent proxy architecture
US11088957B2 (en) Handling of data packet transfer via a proxy
US20230246973A1 (en) System and method for reducing bandwidth usage of a network
US9787770B2 (en) Communication system utilizing HTTP
WO2021089552A1 (en) Method and network device for multi-path communication
Coonjah et al. An investigation of the TCP meltdown problem and proposing raptor codes as a novel to decrease TCP retransmissions in VPN systems
Rajput et al. Comparing stream control and datagram congestion control with traditional transmission control protocol
Coonjah et al. An Investigation of the TCP Meltdown Problem and Proposing Raptor Codes as a Novel to Decrease TCP
KR101396785B1 (ko) 네트워크 장치에서 tcp 기능을 수행하는 방법
Patel et al. Reliable Connectionless Transport Protocol for Fast Message Delivery

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