KR20170097129A - 데이터 전송 방법 및 장치 - Google Patents

데이터 전송 방법 및 장치 Download PDF

Info

Publication number
KR20170097129A
KR20170097129A KR1020177019590A KR20177019590A KR20170097129A KR 20170097129 A KR20170097129 A KR 20170097129A KR 1020177019590 A KR1020177019590 A KR 1020177019590A KR 20177019590 A KR20177019590 A KR 20177019590A KR 20170097129 A KR20170097129 A KR 20170097129A
Authority
KR
South Korea
Prior art keywords
modified
tcp parameter
ack response
congestion
response frequency
Prior art date
Application number
KR1020177019590A
Other languages
English (en)
Other versions
KR102061772B1 (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 KR20170097129A publication Critical patent/KR20170097129A/ko
Application granted granted Critical
Publication of KR102061772B1 publication Critical patent/KR102061772B1/ko

Links

Images

Classifications

    • 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/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields

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 디바이스가, 데이터 스트림 정보에 따라, 상기 데이터 스트림 정보에 대응하는 데이터 스트림의 데이터 트랜스퍼 프로토콜 TCP 파리미터가 수정되어야 하는지를 결정하는 단계; 상기 TCP 파라미터가 수정되어야 하는 것으로 결정되면, 상기 제1 디바이스가, 상기 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계; 및 상기 제1 디바이스가, 상기 TCP 파라미터의 수정 결과를 생성하는 단계를 포함하며, 상기 데이터 스트림 정보는 상기 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 서비스 정보, 또는 네트워크 상태 정보 중 적어도 하나를 포함한다. 상이한 사용자의 상이한 서비스의 데이터 스트림에 대응하는 TCP 파라미터는 데이터 스트림에 따라 수정된다.

Description

데이터 전송 방법 및 장치{DATA TRANSMISSION METHOD AND APPARATUS}
본 출원은 2014년 12월 19일에 중국 특허청에 출원되고 발명의 명칭이 "DATA TRANSMISSION METHOD AND APPARATUS"인 중국 특허 출원 제201410799680.8호에 대한우선권을 주장하는 바이며, 상기 문헌의 내용은 그 전체로서 원용에 의해 본 명세서에 포함된다.
본 발명은 컴퓨터 기술 분야에 관한 것으로, 특히 데이터 전송 방법 및 장치에 관한 것이다.
TCP(Transmission Control Protocol, 전송 제어 프로토콜)는 접속 지향적(connection-oriented)이고, 신뢰성 있는, 바이트(byte) 스트림 기반의 전달(transport) 계층 통신 프로토콜이다. 이 프로토콜에서, 사용자는 다수의 수정 파라미터를 제공받으므로, 사용자는 상이한 네트워크 상태에 대응하는 파라미터를 수정(modify)하여 데이터 전송 효율을 향상시킬 수 있다.
종래 기술에서, TCP 파라미터는 다음과 같이 수정된다. 시스템 파일에 저장된 TCP 파라미터가 수정되고, 그 다음에 시스템 파일이 수정 후에 저장되며, 마지막으로 수정이 적용될 수 있도록 해당 명령이 실행된다.
그러나 전술한 처리를 실행하는 동안, 종래 기술이 다음과 같은 문제점을 가지는 것을 발견하였다. 하나의 사용자가 다수 서비스에 대응할 수 있고, 각각의 서비스가 하나의 TCP 스트림에 대응하며, 즉, 하나의 사용자가 다수 TCP 스트림에 대응한다. TCP 파라미터가 사용자 측에서 수정되면, 수정된 파라미터가 글로벌(global) 파라미터이기 때문에, 특정 사용자에 대응하는 TCP 스트림의 특정 TCP 파라미터가 수정된 다음에, 사용자의 모든 TCP 스트림의 TCP 파라미터가 수정된다. TCP 파라미터가 서버 측에서 수정되면, 특정 사용자의 TCP 스트림의 특정 TCP 파라미터가 수정된 다음에, 다른 사용자의 모든 TCP 스트림의 TCP 파라미터도 수정된다. 그러나 일부 사용자 또는 서버의 일부 서비스의 경우, 일부 사용자 또는 서버의 일부 서비스에 대응하는 TCP 스트림의 TCP 파라미터가 수정될 필요가 없다. 따라서 TCP 파라미터의 수정의 정밀도(precision)가 높지 않다.
본 발명의 실시 예는 TCP 파라미터를 수정하는 정밀도가 높지 않은 종래 기술의 문제점을 해결하기 위한 데이터 전송 방법 및 장치를 제공한다.
제1 측면에 따르면, 본 발명의 실시 예는 데이터 전송 방법을 제공하며, 상기 데이터 전송 방법은,
제1 디바이스가, 데이터 스트림 정보에 따라, 상기 데이터 스트림 정보에 대응하는 데이터 스트림의 데이터 트랜스퍼 프로토콜(transfer protocol) TCP 파리미터가 수정(modify)되어야 하는지를 결정하는 단계;
상기 TCP 파라미터가 수정되어야 하는 것으로 결정되면, 상기 제1 디바이스가, 상기 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계; 및
상기 제1 디바이스가, 상기 TCP 파라미터의 수정 결과를 생성하는 단계를 포함하며,
상기 데이터 스트림 정보는 상기 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 서비스 정보, 또는 네트워크 상태(status) 정보 중 적어도 하나를 포함한다.
제1 측면을 참조하여 제1 측면의 제1 가능 구현 방식에서, 상기 제1 디바이스가, 상기 TCP 파라미터의 수정 결과를 생성하는 단계 이전에, 상기 데이터 전송 방법은 상기 제1 디바이스가, 데이터 트랜스퍼 프로토콜 협상 요청 메시지를 상기 제2 디바이스로 송신하는 단계를 더 포함하며,
상기 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 상기 수정된 TCP 파라미터를 포함하고, 상기 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 상기 수정된 TCP 파라미터가 미리 설정된 수정 조건을 만족하는지를 결정하도록 상기 제2 디바이스에게 요청하는 데 사용되며,
상기 제1 디바이스가, 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
상기 제1 디바이스가, 상기 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 상기 피드백 메시지에 따라 상기 TCP 파라미터의 수정 결과를 생성하는 단계를 포함한다.
제1 측면 또는 제1 측면의 제1 가능 구현 방식을 참조하여 제1 측면의 제2 가능 구현 방식에서, 상기 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 데이터 트랜스퍼 프로토콜 패킷이고, 상기 수정된 TCP 파라미터는 상기 데이터 트랜스퍼 프로토콜 패킷의 옵션(option)으로 사용된다.
제1 측면 또는 제1 측면의 제1 내지 제2 가능 구현 방식 중 어느 하나를 참조하여 제1 측면의 제3 가능 구현 방식에서, 상기 제1 디바이스가, 상기 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
상기 제1 디바이스가, 상기 데이터 스트림에 대응하는 제1 소켓(socket)을 생성하는 단계; 및
상기 제1 디바이스가, 상기 제1 소켓에 대응하는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 사용하여 상기 TCP 파라미터를 수정하여 상기 수정된 TCP 파라미터를 획득하는 단계를 포함한다.
제1 측면의 제3 가능 구현 방식을 참조하여 제1 측면의 제4 가능 구현 방식에서, 상기 데이터 트랜스퍼 프로토콜 수정 인터페이스는, 일반(general) 소켓 소켓 프로그래밍 인터페이스와 새로운 애플리케이션 프로그래밍 인터페이스(API)를 포함한다.
제1 측면 또는 제1 측면의 제1 내지 제4 가능 구현 방식 중 어느 하나를 참조하여 제1 측면의 제5 가능 구현 방식에서, 상기 TCP 파라미터는,
초기 혼잡(congestion) 윈도,
타임아웃(timeout) 후의 재전송을 위한 혼잡 윈도,
빠른(fast) 복구(recovery)를 위한 혼잡 윈도,
슬로우 스타트 문턱값(start threshold),
타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값,
빠른 복구를 위한 혼잡 윈도 문턱값
슬로우 스타트 단계(step),
혼잡 회피(avoidance) 단계,
혼잡 제어 알고리즘,
수신기 윈도,
슬로우 스타트 ACK 응답 빈도(frequency),
혼잡 회피 ACK 응답 빈도,
빠른 복구 ACK 응답 빈도,
정상(normal) 전송 ACK 응답 빈도, 또는
최대 패킷 길이
의 항목(item)중 하나 이상을 포함한다.
제2 측면에 따르면, 본 발명의 실시 예는 제1 디바이스를 제공하며, 상기 제1 디바이스는,
데이터 스트림 정보에 따라, 상기 데이터 스트림 정보에 대응하는 데이터 스트림의 데이터 트랜스퍼 프로토콜 TCP 파라미터가 수정되어야 하는지를 결정하도록 구성된, 결정 모듈;
상기 TCP 파라미터가 수정되어야 하는 것으로 결정되면, 상기 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하도록 구성된, 수정 모듈; 및
상기 TCP 파라미터의 수정 결과를 생성하도록 구성된, 생성 모듈을 포함하며,
상기 데이터 스트림 정보는 상기 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 서비스 정보, 또는 네트워크 상태 정보 중 적어도 하나를 포함한다.
제2 측면을 참조하여 제2 측면의 제1 가능 구현 방식에서, 상기 제1 디바이스는,
데이터 트랜스퍼 프로토콜 협상 요청 메시지를 제2 단말로 송신하도록 구성된, 송신 모듈; 및
상기 제2 단말에 의해 송신된 피드백 메시지를 수신하도록 구성된, 수신 모듈을 더 포함하고,
상기 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 상기 수정된 TCP 파라미터를 포함하고, 상기 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 상기 수정된 TCP 파라미터가 미리 설정된 수정 조건을 만족하는지를 결정하도록 상기 제2 단말에게 요청하는 데 사용되며,
상기 생성 모듈은 구체적으로, 상기 피드백 메시지에 따라 상기 TCP 파라미터의 수정 결과를 생성하도록 구성된다.
제2 측면 또는 제2 측면의 제1 가능 구현 방식을 참조하여 제2 측면의 제2 가능 구현 방식에서, 상기 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 데이터 트랜스퍼 프로토콜 패킷이고, 상기 수정된 TCP 파라미터는 상기 데이터 트랜스퍼 프로토콜 패킷의 옵션으로 사용된다.
제2 측면 또는 제2 측면의 제1 내지 제2 가능 구현 방식 중 어느 하나를 참조하여 제2 측면의 제3 가능 구현 방식에서,
상기 수정 모듈은 구체적으로,
상기 데이터 스트림에 대응하는 제1 소켓을 생성하고; 그리고
상기 제1 소켓에 대응하는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 사용하여 상기 TCP 파라미터를 수정하여 상기 수정된 TCP 파라미터를 획득하도록 구성된다.
제2 측면의 제3 가능 구현 방식을 참조하여 제2 측면의 제4 가능 구현 방식에서, 상기 데이터 트랜스퍼 프로토콜 수정 인터페이스는, 일반 소켓 소켓 프로그래밍 인터페이스와 새로운 애플리케이션 프로그래밍 인터페이스(API)를 포함한다.
제2 측면 또는 제2 측면의 제1 내지 제4 가능 구현 방식 중 어느 하나를 참조하여 제2 측면의 제5 가능 구현 방식에서, 상기 TCP 파라미터는,
초기 혼잡 윈도,
타임아웃 후의 재전송을 위한 혼잡 윈도,
빠른 복구를 위한 혼잡 윈도,
슬로우 스타트 문턱값,
타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값,
빠른 복구를 위한 혼잡 윈도 문턱값
슬로우 스타트 단계,
혼잡 회피 단계,
혼잡 제어 알고리즘,
수신기 윈도,
슬로우 스타트 ACK 응답 빈도,
혼잡 회피 ACK 응답 빈도,
빠른 복구 ACK 응답 빈도,
정상 전송 ACK 응답 빈도, 또는
최대 패킷 길이
의 항목 중 하나 이상을 포함한다.
제3 측면에 따르면, 본 발명의 실시 예는 제2 디바이스를 제공하며, 상기 제2 디바이스는,
제1 디바이스에 의해 송신된 데이터 트랜스퍼 프로토콜 협상 요청 메시지를 수신하도록 구성된, 수신 모듈 - 상기 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 상기 제1 디바이스에 의해 수정된 TCP 파라미터를 포함함 -;
상기 수정된 TCP 파라미터가 미리 설정된 수정 조건을 만족하는지를 결정하도록 구성된, 처리 모듈; 및
피드백 메시지를 생성하고, 상기 피드백 메시지를 상기 제1 디바이스로 송신하도록 구성된, 송신 모듈을 포함한다.
제3 측면을 참조하여 제3 측면의 제1 가능 구현 방식에서, 상기 TCP 파라미터는,
초기 혼잡 윈도,
타임아웃 후의 재전송을 위한 혼잡 윈도,
빠른 복구를 위한 혼잡 윈도,
슬로우 스타트 문턱값,
타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값,
빠른 복구를 위한 혼잡 윈도 문턱값
슬로우 스타트 단계,
혼잡 회피 단계,
혼잡 제어 알고리즘,
수신기 윈도,
슬로우 스타트 ACK 응답 빈도,
혼잡 회피 ACK 응답 빈도,
빠른 복구 ACK 응답 빈도,
정상 전송 ACK 응답 빈도, 또는
최대 패킷 길이
의 항목 중 하나 이상을 포함한다.
본 발명의 데이터 전송 방법 및 장치에 따르면, 제1 디바이스가 데이터 스트림 정보에 따라, 데이터 스트림 정보에 대응하는 데이터 스트림의 데이터 트랜스퍼 프로토콜 TCP 파라미터가 수정되어야 하는지를 결정하며, TCP 파라미터가 수정되어야 하는 것으로 결정되면, 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하고, 제1 디바이스가 TCP 파라미터의 수정 결과를 생성하며, 데이터 스트림 정보는 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 서비스 정보, 또는 네트워크 상태(status) 정보 중 적어도 하나를 포함함으로써, 상이한 사용자의 상이한 서비스의 데이터 스트림에 대응하는 데이터 트랜스퍼 프로토콜 TCP 파라미터가 데이터 스트림에 따라 수정된다. 이는 종래 기술에서 TCP 파라미터를 수정하는 정밀도가 높지 않은 문제점을 해결한다.
본 발명의 실시 예 또는 종래 기술의 기술적 해결 방안을 보다 명확하게 설명하기 위해, 실시 예 또는 종래 기술을 설명하기 위해 요구되는 첨부 도면을 간단히 설명한다. 명백하게, 다음의 설명에서의 첨부된 도면은 본 발명의 일부 실시 예를 나타내며, 당업자는 창의적인 노력 없이도 이들 도면으로부터 다른 도면을 유도할 수 있다.
도 1은 본 발명에 따른 데이터 전송 방법의 일 실시 예의 흐름도이다.
도 2는 본 발명에 따른 데이터 전송 방법의 일 실시 예의 구현 원리의 제1 도이다.
도 3은 본 발명에 따른 데이터 전송 방법의 일 실시 예의 패킷 포맷의 제1 개략도이다.
도 4는 본 발명에 따른 데이터 전송 방법의 일 실시 예의 구현 원리의 제2 도이다.
도 5는 본 발명에 따른 데이터 전송 방법의 일 실시 예의 패킷 포맷의 제2 개략도이다.
도 6은 본 발명에 따른 데이터 전송 방법의 일 실시 예의 구현 원리의 제3 도이다.
도 7은 본 발명에 따른 데이터 전송 방법의 일 실시 예의 패킷 포맷의 제3 개략도이다.
도 8은 본 발명에 따른 데이터 전송 방법의 일 실시 예의 구현 원리의 제4 도이다.
도 9는 본 발명에 따른 데이터 전송 방법의 일 실시 예의 패킷 포맷의 제4 개략도이다.
도 10은 본 발명에 따른 데이터 전송 방법의 다른 실시 예의 흐름도이다.
도 11은 본 발명에 따른 제1 디바이스의 실시 예 1의 개략적인 구조도이다.
도 12는 본 발명에 따른 제2 디바이스의 실시 예 1의 개략적인 구조도이다.
본 발명의 실시 예들의 목적, 기술적 해결 방안 및 장점들을 보다 명확하게 하기 위해, 본 발명의 실시 예들의 기술적 해결 방안을 본 발명의 실시 예들에서의 첨부된 도면을 참조하여 명확하고 완전하게 설명한다. 명백하게, 설명된 실시 예는 본 발명의 일부 실시 예에 불과하며 전부는 아니다. 창의적인 노력 없이 본 발명의 실시 예에 기초한 당업자에 의해 획득된 다른 모든 실시 예는 본 발명의 보호 범위 내에 있다.
도 1은 본 발명에 따른 데이터 전송 방법의 일 실시 예의 흐름도이다. 본 실시 예의 실행 주체(body)는 제1 디바이스이다. 예를 들어, 제1 디바이스는 TCP의 송신단 또는 수신단일 수 있다. 즉, 제1 디바이스는 서버 또는 클라이언트 디바이스일 수 있다. 도 1에 도시된 바와 같이, 본 실시 예에서 제공되는 데이터 전송 방법은 다음의 단계들을 포함한다.
단계 101: 제1 디바이스가 데이터 스트림 정보에 따라, 데이터 스트림 정보에 대응하는 데이터 스트림의 데이터 트랜스퍼 프로토콜 TCP 파라미터가 수정되어야 하는 지의 여부를 결정하며, 데이터 스트림 정보는 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 서비스 정보 또는 네트워크 상태 정보 중 적어도 하나를 포함한다.
단계 102: TCP 파라미터가 수정되어야 하는 것으로 결정되면, 제1 디바이스는 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득한다.
단계 103: 제1 디바이스가 TCP 파라미터의 수정 결과를 생성한다.
구체적으로, 본 발명의 본 실시 예에서, 상이한 서비스 요구 사항 및 동적으로 변화하는 네트워크를 만족시키기 위해, TCP 파라미터가 서비스에 대응하는 TCP 스트림을 토대로 동적으로 조정될 수 있으며, 즉, 제1 디바이스는 데이터 스트림에 대응하는 TCP 파라미터를 수정한다. TCP 파라미터는 초기 혼잡(congestion) 윈도(window), 타임아웃 후의 재전송을 위한 혼잡 윈도, 빠른 복구를 위한 혼잡 윈도 등을 포함한다.
먼저, TCP 파라미터가 수정되어야 하는 지의 여부가 데이터 스트림 정보에 따라 결정된다. 구체적으로, 결정은 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 서비스 정보 또는 네트워크 상태 정보 중 적어도 하나에 따라 수행될 수 있다. 예를 들어, 제1 디바이스가 서버인 경우, 서버에 대한 정보, 제2 디바이스(즉, 사용자의 클라이언트 디바이스)에 대한 정보, 서비스 정보 또는 네트워크 상태 정보 중 적어도 하나가 결정될 수 있다. 네트워크 상태 정보는 네트워크 대역폭 등을 포함하며; 제1 디바이스에 대한 정보는 디바이스의 송수신 능력(capability), 중앙 처리 장치(central processing unit, CPU)의 처리 능력, 캐시의 크기, 하드 디스크의 저장 공간 크기 등을 포함하고; 그리고 제2 디바이스에 대한 정보는 전술한 정보와 유사하며, 인터페이스의 레이트(rate), 단말의 타입 등을 더 포함할 수 있다. 제2 디바이스에 대한 정보는 제1 디바이스로 미리 송신될 수 있다. 즉, TCP 연결의 성립(establishment) 동안에 제1 디바이스가 제2 디바이스와 상호 작용하는 경우, 제2 디바이스에 대한 정보가 획득될 수 있다.
본 실시 예에서, 제1 디바이스는 제2 디바이스와 협상하지 않고 TCP 파라미터를 수정할 수 있다. 제1 디바이스는 예를 들어, TCP 데이터 스트림의 송신단일 수 있으며, 이 경우, 제2 디바이스는 수신단이다. TCP 파라미터를 수정한 후, 제1 디바이스는 성공적인 수정의 수정 결과를 직접 생성한다.
본 발명에서, 동일한 물리적 서버상의 상이한 TCP 스트림들은 유연하게 수정될 수 있다. 예를 들어, 작은 객체가 일반적으로 포함되는 웹 브라우징 애플리케이션의 경우, 객체의 크기에 따라 초기 혼잡 윈도가 설정될 수 있으며; 큰 파일의 다운로딩, 슬로우 스타트 단계, 타임아웃 후의 재전송을 위한 혼잡 윈도 및 빠른 복구를 위한 혼잡 윈도가 증가할 수 있으므로, 큰 세분성 파일(large-granularity file)이 더 빨리 다운로드될 수 있다.
본 발명의 방법에 따르면, TCP가 완전히 개방된다. 혼잡 제어 알고리즘이 수정될 수 있으며, TCP의 모든 파라미터가 다양한 서비스, 사용자 및 네트워크, 끊임 없이 변화하는(ever-changing) 서비스 요구사항, 사용자 요구사항 및 네트워크 상태에 적합하다. 예를 들어, 동일한 물리적 서버가 2 세대(Second Generation, 간략하게 2G) 사용자와 FTTH(Fiber To The Home, 간략하게 FTTH) 광 가입자(fiber user) 모두에게 서비스를 제공하는 경우, 서버는 사용자들의 상이한 TCP 스트림을 기반으로 상이한 혼잡 제어 알고리즘을 설정할 수 있다. 예를 들어, FTTH 광 가입자가 CUBIC 알고리즘을 사용하며; 패킷 손실이 발생하는 경우, 빠른 복구가 수행될 수 있으며; 그리고 이 알고리즘의 애플리케이션 시나리오는 주로 현재의 고속 네트워크이다. 2G 사용자는 전통적인 혼잡 제어 알고리즘을 사용하며; 패킷 손실이 네트워크 혼잡에 기인하는 경우, 대량의 패킷이 연속적으로 송신되지 않기 때문에, 상태는 악화되지 않으며; 이 알고리즘의 애플리케이션 시나리오는 주로 과거의 저속 네트워크이다.
본 실시 예에서, 제1 디바이스는 데이터 스트림에 해당하는 TCP 파라미터를 수정하여 데이터 트랜스퍼 프로토콜의 수정 결과를 생성함으로써, 상이한 사용자의 상이한 서비스의 데이터 스트림에 해당하는 데이터 트랜스퍼 프로토콜 TCP 파라미터가 데이터 스트림에 따라 수정된다. 이는 종래 기술에서 TCP 파라미터를 수정하는 정밀도가 높지 않은 문제점을 해결한다.
본 발명의 방법의 다른 실시 예에서, 도 1에 도시된 실시 예를 기반으로, 상기 제1 디바이스가 TCP 파라미터의 수정 결과를 생성하는 단계 이전에, 상기 방법은, 제1 디바이스가, 데이터 트랜스퍼 프로토콜 협상 요청 메시지를 제2 디바이스로 송신하는 단계를 더 포함하며, 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 수정된 TCP 파라미터를 포함하고, 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 수정된 TCP 파라미터가 미리 설정된 수정 조건을 만족하는지를 결정하도록 제2 디바이스에게 요청하는 데 사용되며, 그리고
상기 제1 디바이스가 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
제1 디바이스가, 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 피드백 메시지에 따라 TCP 파라미터의 수정 결과를 생성하는 단계를 포함한다.
선택적으로, 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 데이터 트랜스퍼 프로토콜 패킷이며; 수정된 TCP 파라미터는 데이터 트랜스퍼 프로토콜 패킷의 옵션으로 사용된다.
구체적으로, 본 실시 예에서, TCP 파라미터를 수정하는 경우, 제1 디바이스는 제2 디바이스와 협상할 필요가 있을 수 있고, TCP 파라미터는 혼잡 제어 알고리즘, 초기 혼잡 윈도, 수신기 윈도, 슬로우 스타트 ACK 응답 빈도(frequency), 혼잡 회피 ACK 응답 빈도 등을 포함할 수 있다.
예를 들어, 종래의 혼잡 제어 알고리즘은 저속 네트워크에 기초하여 설계되며; 바이너리 증가 전송 제어 프로토콜(binary increase Transmission Control Protocol, BIC), 고속 장거리 네트워크에서 사용되는 바이너리 증가 전송 제어 프로토콜(CUBIC), 및 복합 전송 제어 프로토콜(Compound TCP)은 고속 네트워크를 기반으로 설계된다. 동일한 서버에 의해 서비스를 받는 사용자는 저속 네트워크의 사용자와 고속 네트워크의 사용자를 모두 포함할 수 있기 때문에, TCP 파라미터는 상이한 사용자의 요구 사항을 만족시키기 위해 상이한 사용자를 기반으로 조정되어야 한다. 또한, 상이한 서비스에 대해 상이한 TCP 파라미터가 설정될 수 있으며; 예를 들어, 구글(Google) 검색 엔진 서비스의 경우, TCP의 초기 혼잡 윈도(Initial Congestion Window, 간략하게 InitCwnd)는 16으로 설정됨으로써, 지연이 가장 낮으며; 파일 크기가 구글의 파일 크기와 다른 타오바오(Taobao)의 경우, TCP의 InitCwnd가 7로 설정되므로, 서비스 경험이 가장 좋다.
TCP 파라미터를 수정한 후, 제1 디바이스는 제2 디바이스와 협상하여야 하며, 제2 디바이스는 수정된 TCP 파라미터가 미리 설정된 조건을 만족하는 지의 여부를 결정한다. 미리 설정된 조건은, 예를 들어, 수정된 TCP 파라미터가 제2 디바이스에 의해 허용된 범위 내에 있는 지의 여부이며; 제1 디바이스는, 예를 들어, TCP 데이터 스트림의 송신단(예를 들어, 서버)일 수 있고, 이 경우, 제2 디바이스는 수신단(클라이언트 디바이스)이다. 협상 중, 데이터 트랜스퍼 프로토콜 협상 요청 메시지가 송신될 수 있으며, 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 수정된 TCP 파라미터를 포함할 수 있다. 수정된 TCP 파라미터를 결정한 후, 제2 디바이스는 피드백을 수행하고 피드백 메시지를 송신한다. 피드백 메시지를 수신한 후, 제1 디바이스는 수정 결과를 생성하며: 미리 설정된 조건이 만족되면, 성공적인 수정의 수정 결과가 생성되거나, 또는 미리 설정된 조건이 만족되지 않으면, 실패한 수정의 수정 결과가 생성된다.
본 발명의 방법의 다른 실시 예에서, 도 1에 도시된 실시 예에 기초하여, 단계(101)에서, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
상기 제1 디바이스가, 데이터 스트림에 대응하는 제1 소켓(socket)을 생성하는 단계; 및
상기 제1 디바이스가, 상기 제1 소켓에 대응하는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 사용하여 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계를 포함한다.
선택적으로, 데이터 트랜스퍼 프로토콜 수정 인터페이스는, 일반적인 소켓 소켓 프로그래밍 인터페이스와 새로운 애플리케이션 프로그래밍 인터페이스 API를 포함한다.
구체적으로, 제1 디바이스가 데이터 스트림에 대응하는 TCP 파라미터를 수정하는 것은, 제1 디바이스가 데이터 스트림에 대응하는 제1 소켓을 생성하는 단계와, 제1 소켓에 대응하는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 사용하여 TCP 파라미터를 수정하는 단계를 사용하여 구현될 수 있다. 다르게는, TCP 파라미터는 명령 라인(line) 또는 레지스트리(registry)와 같은 다른 방식을 사용하여 수정될 수 있다.
제1 소켓에 대응하는 데이터 트랜스퍼 프로토콜 수정 인터페이스가 사용되는 수정 방식에서, 일반적인 소켓 소켓 프로그래밍 인터페이스가 사용될 수 있으며; 예를 들어, TCP 파라미터는 int setsockopt(int s, int level, int optname, const void * optval, socklen_toptlen)의 함수를 사용하여 수정될 수 있다. 다르게는, TCP 파라미터가 새로운 애플리케이션 프로그래밍 인터페이스(application programming interface, API)를 사용하여 수정될 수 있다.
TCP 파라미터는,
초기 혼잡(congestion) 윈도,
타임아웃(timeout) 후의 재전송을 위한 혼잡 윈도,
빠른 복구(recovery)를 위한 혼잡 윈도,
슬로우 스타트 문턱값(start threshold),
타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값,
빠른 복구를 위한 혼잡 윈도 문턱값
슬로우 스타트 단계(step),
혼잡 회피(avoidance) 단계,
혼잡 제어 알고리즘,
수신기 윈도,
슬로우 스타트 ACK 응답 빈도,
혼잡 회피 ACK 응답 빈도,
빠른 복구 ACK 응답 빈도,
정상(normal) 전송 ACK 응답 빈도, 또는
최대 패킷 길이
의 항목(item) 중 하나 이상을 포함한다.
다음은 도 1에 도시된 방법 실시 예의 기술적 해결 방안을 상세하게 설명하기 위해 특정 실시 예를 사용한다.
선택적으로, TCP 파라미터가 초기 혼잡 윈도인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 초기 혼잡 윈도를 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여 수정된 제1 초기 혼잡 윈도를 획득하는 단계를 포함하며, 제1 초기 혼잡 윈도는 미리 설정되며, 그리고
상기 제1 디바이스가 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
수정된 제1 초기 혼잡 윈도를 획득한 후, 제1 디바이스가 수정 결과를 생성하는 단계를 포함하며, 수정 결과는 제1 디바이스가 초기 혼잡 윈도를 수정하였음을 지시한다.
구체적으로, 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 데이터 스트림에 현재 운반되는 서비스에 대한 정보, 또는 네트워크 상태 정보 중 적어도 하나에 따라, TCP의 초기 혼잡 윈도가 수정되어야 하는지가 결정되는 경우, 이 경우, TCP 파라미터는 초기 혼잡 윈도이다. 제1 디바이스(예를 들어, 송신단)는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 데이터 스트림에 대응하는 초기 혼잡 윈도를 보다 적절한 제1 초기 혼잡 윈도로 수정하며, 제1 초기 혼잡 윈도는 제1 디바이스에 의해 미리 설정될 수 있다. 구체적으로, 제1 초기 혼잡 윈도는 일반적으로, 송신될 파일의 크기, 송신단의 능력, 네트워크 대역폭 등을 토대로 결정되어야 한다.
적절한 제1 초기 혼잡 윈도를 선택한 후에, 제1 디바이스는 수정 결과를 생성하며, 수정 결과는 제1 디바이스가 초기 혼잡 윈도를 수정했음을 지시한다.
본 실시 예에서, 송신단은 수신단과 협상하지 않고 TCP의 초기 혼잡 윈도를 독립적으로 수정한다.
선택적으로, TCP 파라미터가 타임아웃 후에 재전송을 위한 혼잡 윈도인 경우, 상기 제1 디바이스가 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
타임아웃 후의 재전송을 위한 것이며 데이터 스트림에 대응하는 혼잡 윈도를 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 타임아웃 후의 재전송을 위한 혼잡 윈도를 획득하는 단계를 포함하며, 제1 타임아웃 후의 재전송을 위한 혼잡 윈도는 미리 설정되며,
상기 제1 디바이스가 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
상기 수정된 타임아웃 후에 재전송을 위한 혼잡 윈도를 획득한 후에, 상기 제1 디바이스가 수정 결과를 생성하는 단계를 포함하며, 수정 결과는 제1 디바이스가 타임아웃 후의 재전송을 위한 혼잡 윈도를 수정하였음을 지시한다.
구체적으로, TCP에서의 네트워크 혼잡의 주요 이유는, 패킷 세그먼트가 TCP에서 재전송된다는 점으로 고려된다. TCP에서, 각각의 패킷 세그먼트에 대한 타이머가 있으며, 타이머는 재전송 타이머(Retransmission Timeout, 간략하게 RTO)로 지칭된다. RTO가 만료되기 전에 데이터에 대한 확인응답(acknowledgement)이 수신되지 않으면, 패킷 세그먼트가 TCP에서 재전송된다. 타임아웃이 발생하는 경우, 혼잡의 가능성이 매우 높으며, 특정 패킷 세그먼트가 네트워크의 어딘가에서 손실될 수 있다. 따라서, 네트워크 혼잡이 발생하는 경우, 타임아웃 후의 재전송을 위한 혼합 윈도가 수정된다. 슬로우 스타트는 타임아웃 후의 재전송 중에 진입된다(eneterd).
제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 데이터 스트림에 현재 운반되는 서비스에 대한 정보 또는 네트워크 상태 정보 중 적어도 하나에 따라, 타임아웃 후의 재전송을 위한 TCP의 혼잡 윈도가 수정되어야 하는 것으로 결정되는 경우, 이 경우, TCP 파라미터는 타임아웃 후의 재전송을 위한 혼잡 윈도이다. 제1 디바이스(예를 들어, 송신단)는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 타임아웃 후의 재전송을 위한 것이며 제1 서비스에 대응하는 혼잡 윈도를, 보다 적절한 제1 타임아웃 후의 재전송을 위한 혼잡 윈도로 수정한다. 제1 타임아웃 후의 재전송을 위한 혼잡 윈도는 제1 디바이스에 의해 미리 설정될 수 있다. 구체적으로, 제1 타임아웃 후의 재전송을 위한 혼잡 윈도는 일반적으로, 송신될 파일의 크기, 송신 단에서의 서버의 능력, 네트워크 대역폭 등에 기초하여 결정되어야 한다.
적절한 제1 타임아웃 후의 재전송을 위한 혼잡 윈도를 선택한 후, 제1 디바이스는 수정 결과를 생성하며, 수정 결과는 제1 디바이스가 타임아웃 후의 재전송을 위해 혼잡 윈도를 수정하였음을 지시한다.
선택적으로, TCP 파라미터가 빠른 복구를 위한 혼잡 윈도인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
빠른 복구를 위한 것이며 데이터 스트림에 대응하는 혼잡 윈도를 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 빠른 복구를 위한 혼잡 윈도를 획득하는 단계를 포함하며, 제1 빠른 복구를 위한 혼잡 윈도는 미리 설정되며,
상기 제1 디바이스가 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
수정된 제1 빠른 복구를 위한 혼잡 윈도를 획득한 후에, 상기 제1 디바이스가 수정 결과를 생성하며, 수정 결과는 상기 제1 디바이스가 빠른 복구를 위한 혼잡 윈도를 수정했음을 지시한다.
구체적으로, 재전송은 타임아웃 후에 발생한다. 그러나 송신단이 적어도 3 개의 중복 ACK를 수신하면, 송신단은 데이터가 손실되고 재전송되어야 한다는 것을 인식해야 한다. 본 메커니즘에서, 재전송 타이머가 오버플로우할 때까지 기다릴 필요가 없으며, 따라서 본 메커니즘이 빠른 재전송(fast retransmission)이라고 지칭된다. 빠른 재전송 후, 혼잡 회피 알고리즘이 슬로우 스타트 대신 사용되기 때문에, 본 메커니즘은 또한 빠른 복구 알고리즘이라고도 지칭된다. 빠른 재전송 및 빠른 복구는 손실된 패킷의 빠른 복구를 위한 것이다.
제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 현재 데이터 스트림에 운반되는 서비스에 대한 정보 또는 네트워크 상태 정보 중 적어도 하나에 따라, 빠른 복구를 위한 TCP의 혼잡 윈도가 수정되어야 하는 것으로 결정되는 경우, 이 경우, 수정될 컨텐츠(content)는 빠른 복구를 위한 혼잡 윈도이다. 제1 디바이스(예를 들어, 송신단)는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 빠른 복구를 위한 것이며 데이터 스트림에 대응하는 혼잡 윈도를, 보다 적절한 제1 빠른 복구를 위한 혼잡 윈도로 수정하며, 제1 빠른 복구를 위한 혼잡 윈도는 제1 디바이스에 의해 미리 설정될 수 있다. 구체적으로, 제1 빠른 복구를 위한 혼잡 윈도는 일반적으로, 송신될 파일의 크기, 송신단의 능력, 네트워크 대역폭 등을 토대로 결정되어야 한다.
적절한 제1 빠른 복구를 위한 제1 혼잡 윈도를 선택한 후에, 제1 디바이스는 수정 결과를 생성하고, 수정 결과는 제1 디바이스가 빠른 복구를 위한 혼잡 윈도를 수정했음을 지시한다.
선택적으로, TCP 파라미터가 슬로우 스타트 문턱값인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 슬로우 스타트 문턱값을 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 슬로우 스타트 문턱값을 획득하는 단계를 포함하며, 제1 슬로우 스타트 문턱값이 미리 설정되며,
상기 제1 디바이스가 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
수정된 제1 슬로우 스타트 문턱값을 획득한 후에, 상기 제1 디바이스가 수정 결과를 생성하는 단계를 포함하며, 수정 결과는 상기 제1 디바이스가 슬로우 스타트 문턱값을 수정했음을 지시한다.
구체적으로, 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 데이터 스트림에 현재 실려있는 서비스에 대한 정보, 또는 네트워크 상태 정보 중 적어도 하나에 따라, TCP의 슬로우 스타트 문턱값이 수정되어야 하는 것으로 결정되는 경우, 이 경우, TCP 파라미터는 슬로우 스타트 문턱값이다. 제1 디바이스(예를 들어, 송신단)는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 데이터 스트림에 대응하는 슬로우 스타트 문턱값을 보다 적절한 제1 슬로우 스타트 문턱값으로 수정하며, 제1 슬로우 스타트 문턱값은 제1 디바이스에 의해 미리 설정될 수 있다. 구체적으로, 제1 슬로우 스타트 문턱값은 일반적으로, 송신될 파일의 크기, 송신단의 능력, 네트워크 대역폭 등에 기초하여 결정되어야 한다.
적절한 제1 슬로우 스타트 문턱값을 선택한 후에, 제1 디바이스는 수정 결과를 생성하고, 수정 결과는 제1 디바이스가 슬로우 스타트 문턱값을 수정했음을 지시한다.
선택적으로, TCP 파라미터가 타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값을 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값을 획득하는 단계를 포함하며, 제1 타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값이 미리 설정되며,
상기 제1 디바이스가 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
수정된 제1 타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값을 획득한 후에, 상기 제1 디바이스가 수정 결과를 생성하는 단계를 포함하며, 수정 결과는 상기 제1 디바이스가 타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값을 수정했음을 지시한다.
구체적으로, 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 데이터 스트림에 현재 실려있는 서비스에 대한 정보, 또는 네트워크 상태 정보 중 적어도 하나에 따라, TCP의 타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값이 수정되어야 하는 것으로 결정되는 경우, 이 경우, 수정될 컨텐츠는 타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값이다. 제1 디바이스(예를 들어, 송신단)는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 데이터 스트림에 대응하는 타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값을 보다 적절한 제1 타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값으로 수정하며, 제1 타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값은 제1 디바이스에 의해 미리 설정될 수 있다. 구체적으로, 제1 타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값은 일반적으로, 송신될 파일의 크기, 송신단의 능력, 네트워크 대역폭 등에 기초하여 결정되어야 한다.
적절한 제1 타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값을 선택한 후에, 제1 디바이스는 수정 결과를 생성하고, 수정 결과는 제1 디바이스가 타임아웃후의 재전송을 위한 슬로우 스타트 문턱값을 수정했음을 지시한다.
선택적으로, TCP 파라미터가 빠른 복구를 위한 혼잡 윈도 문턱값인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 빠른 복구를 위한 혼잡 윈도 문턱값을 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 빠른 복구를 위한 혼잡 윈도 문턱값을 획득하는 단계를 포함하며, 제1 빠른 복구를 위한 혼잡 윈도 문턱값이 미리 설정되며,
상기 제1 디바이스가 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
수정된 제1 빠른 복구를 위한 혼잡 윈도 문턱값을 획득한 후에, 상기 제1 디바이스가 수정 결과를 생성하는 단계를 포함하며, 수정 결과는 상기 제1 디바이스가 빠른 복구를 위한 혼잡 윈도 문턱값을 수정했음을 지시한다.
구체적으로, 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 데이터 스트림에 현재 운반되는 서비스에 대한 정보, 또는 네트워크 상태 정보 중 적어도 하나에 따라, TCP의 빠른 복구를 위한 혼잡 윈도 문턱값이 수정되어야 하는 것으로 결정되는 경우, 이 경우, 수정될 컨텐츠는 빠른 복구를 위한 혼잡 윈도 문턱값이다. 제1 디바이스(예를 들어, 송신단)는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 데이터 스트림에 대응하는 빠른 복구를 위한 혼잡 윈도 문턱값을 보다 적절한 제1 빠른 복구를 위한 혼잡 윈도 문턱값으로 수정하며, 제1 빠른 복구를 위한 혼잡 윈도 문턱값은 제1 디바이스에 의해 미리 설정될 수 있다. 구체적으로, 제1 빠른 복구를 위한 혼잡 윈도 문턱값은 일반적으로, 송신될 파일의 크기, 송신단의 능력, 네트워크 대역폭 등에 기초하여 결정되어야 한다.
적절한 제1 빠른 복구를 위한 혼잡 윈도 문턱값을 선택한 후에, 제1 디바이스는 수정 결과를 생성하고, 수정 결과는 제1 디바이스가 빠른 복구를 위한 혼잡 윈도 문턱값을 수정했음을 지시한다.
선택적으로, TCP 파라미터가 슬로우 스타트 단계인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 슬로우 스타트 단계를 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 슬로우 스타트 단계를 획득하는 단계를 포함하며, 제1 슬로우 스타트 단계는 미리 설정되며,
상기 제1 디바이스가 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
수정된 제1 슬로우 스타트 단계를 획득한 후에, 상기 제1 디바이스가 수정 결과를 생성하는 단계를 포함하며, 수정 결과는 상기 제1 디바이스가 슬로우 스타트 단계를 수정했음을 지시한다.
구체적으로, 슬로우 스타트 단계는, 슬로우 스타트 중에 송신단이 혼잡 윈도를 증가시키는 단계이다. 현재, 패킷의 ACK가 수신될 때마다, 혼잡 윈도는 1 씩 증가하고, RTT의 각각의 주기에서, 혼잡 윈도는 기하급수적으로 증가한다. 그러나 높은 지연을 갖는 네트워크에서, 송신단이 타임아웃 후의 재전송 동안에 슬로우 스타트 위상(phase)으로 재진입하는 경우, 슬로우 스타트의 지속 기간(duration)을 감소시키고 동적으로 변환하는 네트워크 상태에 적응하기 위하여, 슬로우 스타트 단계는 실제 상황에 따라 수정되어야 한다.
제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 데이터 스트림에 현재 운반되는 서비스에 대한 정보, 또는 네트워크 상태 정보 중 적어도 하나에 따라, TCP의 슬로우 스타트 단계가 수정되어야 하는 것으로 결정되는 경우, 이 경우, TCP 파라미터는 슬로우 스타트 단계이다. 제1 디바이스(예를 들어, 송신단)는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 데이터 스트림에 대응하는 슬로우 스타트 단계를 보다 적절한 제1 슬로우 스타트 단계로 수정하며, 제1 슬로우 스타트 단계는 제1 디바이스에 의해 미리 설정될 수 있다. 구체적으로, 제1 슬로우 스타트 단계는 일반적으로, 송신될 파일의 크기, 송신단의 능력, 네트워크 대역폭 등에 기초하여 결정되어야 한다.
적절한 제1 슬로우 스타트 단계를 선택한 후에, 제1 디바이스는 수정 결과를 생성하고, 수정 결과는 제1 디바이스가 슬로우 스타트 단계를 수정했음을 지시한다.
선택적으로, TCP 파라미터가 혼잡 회피 단계인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 혼잡 회피 단계를 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 혼잡 회피 단계를 획득하는 단계를 포함하며, 제1 혼잡 회피 단계는 미리 설정되며,
상기 제1 디바이스가 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
수정된 제1 혼잡 회피 단계를 획득한 후에, 상기 제1 디바이스가 수정 결과를 생성하는 단계를 포함하며, 수정 결과는 상기 제1 디바이스가 혼잡 회피 단계를 수정했음을 지시한다.
구체적으로, 혼잡 회피 단계는, 송신단이 혼잡 회피 동안 혼잡 윈도를 증가시키는 단계이다. 현재, 패킷의 ACK가 수신될 때마다 혼잡 윈도는 1/Cwnd 씩 증가하고, RTT의 각각의 주기에서 혼잡 윈도는 1씩 증가한다. 그러나 높은 지연을 갖는 네트워크에서, 혼잡 방지 단계는 혼잡 회피의 지속 기간을 감소시키기 위해 실제 상황에 따라 수정되어야 한다.
제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 데이터 스트림에 현재 운반되는 서비스에 대한 정보, 또는 네트워크 상태 정보 중 적어도 하나에 따라, TCP의 혼잡 회피 단계가 수정되어야 하는 것으로 결정되는 경우, 이 경우, TCP 파라미터는 혼잡 회피 단계이다. 제1 디바이스(예를 들어, 송신단)는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 데이터 스트림에 대응하는 혼잡 회피 단계를 보다 적절한 제1 혼잡 회피 단계로 수정하며, 제1 혼잡 회피 단계는 제1 디바이스에 의해 미리 설정될 수 있다. 구체적으로, 제1 혼잡 회피 단계는 일반적으로, 송신될 파일의 크기, 송신단의 능력, 네트워크 대역폭 등에 기초하여 결정되어야 한다.
적절한 제1 혼잡 회피 단계를 선택한 후에, 제1 디바이스는 수정 결과를 생성하고, 수정 결과는 제1 디바이스가 혼잡 회피 단계를 수정했음을 지시한다.
선택적으로, TCP 파라미터가 슬로우 스타트 ACK 응답 빈도인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 슬로우 스타트 ACK 응답 빈도를 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 슬로우 스타트 ACK 응답 빈도를 획득하는 단계를 포함하며, 제1 슬로우 스타트 ACK 응답 빈도는 미리 설정되며,
상기 제1 디바이스가 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
수정된 제1 슬로우 스타트 ACK 응답 빈도를 획득한 후에, 상기 제1 디바이스가 수정 결과를 생성하는 단계를 포함하며, 수정 결과는 상기 제1 디바이스가 슬로우 스타트 ACK 응답 빈도를 수정했음을 지시한다.
구체적으로, 본 실시 예에서, 슬로우 스타트 ACK 응답 빈도는 제2 디바이스와의 협상 없이 제1 디바이스에 의해서만 결정될 수 있다. 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 데이터 스트림에 현재 운반되는 서비스에 대한 정보, 또는 네트워크 상태 정보 중 적어도 하나에 따라, TCP의 슬로우 스타트 ACK 응답 빈도가 수정되어야 하는 것으로 결정되는 경우, 이 경우, TCP 파라미터는 슬로우 스타트 ACK 응답 빈도다. 제1 디바이스(예를 들어, 송신단)는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 데이터 스트림에 대응하는 슬로우 스타트 ACK 응답 빈도를 보다 적절한 제1 슬로우 스타트 ACK 응답 빈도로 수정하며, 제1 슬로우 스타트 ACK 응답 빈도는 제1 디바이스에 의해 미리 설정될 수 있다. 구체적으로, 제1 슬로우 스타트 ACK 응답 빈도는 일반적으로, 송신될 파일의 크기, 송신단의 능력, 네트워크 대역폭 등에 기초하여 결정되어야 한다.
적절한 제1 슬로우 스타트 ACK 응답 빈도를 선택한 후에, 제1 디바이스는 수정 결과를 생성하고, 수정 결과는 제1 디바이스가 슬로우 스타트 ACK 응답 빈도를 수정했음을 지시한다.
선택적으로, TCP 파라미터가 혼잡 회피 ACK 응답 빈도인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 혼잡 회피 ACK 응답 빈도를 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 혼잡 회피 ACK 응답 빈도를 획득하는 단계를 포함하며, 제1 혼잡 회피 ACK 응답 빈도는 미리 설정되며,
상기 제1 디바이스가 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
수정된 제1 혼잡 회피 ACK 응답 빈도를 획득한 후에, 상기 제1 디바이스가 수정 결과를 생성하는 단계를 포함하며, 수정 결과는 상기 제1 디바이스가 혼잡 회피 ACK 응답 빈도를 수정했음을 지시한다.
구체적으로, 본 실시 예에서, 혼잡 회피 ACK 응답 빈도는 제2 디바이스와의 협상 없이 제1 디바이스에 의해서만 결정될 수 있다. 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 데이터 스트림에 현재 운반되는 서비스에 대한 정보, 또는 네트워크 상태 정보 중 적어도 하나에 따라, TCP의 혼잡 회피 ACK 응답 빈도가 수정되어야 하는 것으로 결정되는 경우, 이 경우, TCP 파라미터는 혼잡 회피 ACK 응답 빈도다. 제1 디바이스(예를 들어, 송신단)는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 제1 서비스에 대응하는 혼잡 회피 ACK 응답 빈도를 보다 적절한 제1 혼잡 회피 ACK 응답 빈도로 수정하며, 제1 혼잡 회피 ACK 응답 빈도는 제1 디바이스에 의해 미리 설정될 수 있다. 구체적으로, 제1 혼잡 회피 ACK 응답 빈도는 일반적으로, 송신될 파일의 크기, 송신단의 능력, 네트워크 대역폭 등에 기초하여 결정되어야 한다.
적절한 제1 혼잡 회피 ACK 응답 빈도를 선택한 후에, 제1 디바이스는 수정 결과를 생성하고, 수정 결과는 제1 디바이스가 혼잡 회피 ACK 응답 빈도를 수정했음을 지시한다.
선택적으로, TCP 파라미터가 빠른 복구 ACK 응답 빈도인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 빠른 복구 ACK 응답 빈도를 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 빠른 복구 ACK 응답 빈도를 획득하는 단계를 포함하며, 제1 빠른 복구 ACK 응답 빈도는 미리 설정되며,
상기 제1 디바이스가 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
수정된 제1 빠른 복구 ACK 응답 빈도를 획득한 후에, 상기 제1 디바이스가 수정 결과를 생성하는 단계를 포함하며, 수정 결과는 상기 제1 디바이스가 빠른 복구 ACK 응답 빈도를 수정했음을 지시한다.
본 실시 예에서, 빠른 복구 ACK 응답 빈도는 제2 디바이스와의 협상 없이 제1 디바이스에 의해서만 결정될 수 있다. 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 데이터 스트림에 현재 운반되는 서비스에 대한 정보, 또는 네트워크 상태 정보 중 적어도 하나에 따라, TCP의 빠른 복구 ACK 응답 빈도가 수정되어야 하는 것으로 결정되는 경우, 이 경우, TCP 파라미터는 빠른 복구 ACK 응답 빈도다. 제1 디바이스(예를 들어, 송신단)는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 데이터 스트림에 대응하는 빠른 복구 ACK 응답 빈도를 보다 적절한 제1 빠른 복구 ACK 응답 빈도로 수정하며, 제1 빠른 복구 ACK 응답 빈도는 제1 디바이스에 의해 미리 설정될 수 있다. 구체적으로, 제1 빠른 복구 ACK 응답 빈도는 일반적으로, 송신될 파일의 크기, 송신단의 능력, 네트워크 대역폭 등에 기초하여 결정되어야 한다.
적절한 제1 빠른 복구 ACK 응답 빈도를 선택한 후에, 제1 디바이스는 수정 결과를 생성하고, 수정 결과는 제1 디바이스가 빠른 복구 ACK 응답 빈도를 수정했음을 지시한다.
선택적으로, TCP 파라미터가 정상 전송 ACK 응답 빈도인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 정상 전송 ACK 응답 빈도를 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 정상 전송 ACK 응답 빈도를 획득하는 단계를 포함하며, 제1 정상 전송 ACK 응답 빈도는 미리 설정되며,
상기 제1 디바이스가 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
수정된 제1 정상 전송 ACK 응답 빈도를 획득한 후에, 상기 제1 디바이스가 수정 결과를 생성하는 단계를 포함하며, 수정 결과는 상기 제1 디바이스가 정상 전송 ACK 응답 빈도를 수정했음을 지시한다.
본 실시 예에서, 정상 전송 ACK 응답 빈도는 제2 디바이스와의 협상 없이 제1 디바이스에 의해서만 결정될 수 있다. 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 데이터 스트림에 현재 운반되는 서비스에 대한 정보, 또는 네트워크 상태 정보 중 적어도 하나에 따라, TCP의 정상 전송 ACK 응답 빈도가 수정되어야 하는 것으로 결정되는 경우, 이 경우, TCP 파라미터는 정상 전송 ACK 응답 빈도다. 제1 디바이스(예를 들어, 송신단)는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 데이터 스트림에 대응하는 정상 전송 ACK 응답 빈도를 보다 적절한 제1 정상 전송 ACK 응답 빈도로 수정하며, 제1 정상 전송 ACK 응답 빈도는 제1 디바이스에 의해 미리 설정될 수 있다. 구체적으로, 제1 정상 전송 ACK 응답 빈도는 일반적으로, 송신될 파일의 크기, 송신단의 능력, 네트워크 대역폭 등에 기초하여 결정되어야 한다.
적절한 제1 정상 전송 ACK 응답 빈도를 선택한 후에, 제1 디바이스는 수정 결과를 생성하고, 수정 결과는 제1 디바이스가 정상 전송 ACK 응답 빈도를 수정했음을 지시한다.
도 2는 본 발명에 따른 데이터 전송 방법의 일 실시 예의 구현 원리의 제1 도이다.
도 3은 본 발명에 따른 데이터 전송 방법의 일 실시 예의 패킷 포맷의 제1 개략도이다.
선택적으로, TCP 파라미터가 혼잡 제어 알고리즘인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 혼잡 제어 알고리즘을 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 혼잡 제어 알고리즘을 획득하는 단계를 포함하며, 제1 혼잡 제어 알고리즘은 미리 설정되며,
상기 제1 디바이스가 데이터 트랜스퍼 프로토콜 협상 요청 메시지를 제2 디바이스로 송신하는 단계는,
상기 제1 디바이스가 혼잡 제어 알고리즘 협상 요청 메시지를 제2 디바이스로 송신하는 단계를 포함하며, 혼잡 제어 알고리즘 협상 요청 메시지는 제1 혼잡 제어 알고리즘을 포함함으로써, 제2 디바이스는 제1 혼잡 제어 알고리즘이 미리 설정된 수정 조건을 만족하는지를 결정하며, 그리고,
상기 제1 디바이스가, 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 피드백 메시지에 따라 데이터 트랜스퍼 프로토콜의 수정 결과를 생성하는 단계는,
상기 제1 디바이스가 제2 디바이스에 의해 송신된 피드백 메시지를 수신하는 단계 - 상기 피드백 메시지는 제1 혼잡 제어 알고리즘이 제2 디바이스의 미리 설정된 수정 조건을 만족하는 지의 여부를 지시하는 메시지를 포함함 -; 및
상기 피드백 메시지가 제1 혼잡 제어 알고리즘이 제2 디바이스의 미리 설정된 수정 조건을 만족하는 것을 지시하면, 제1 디바이스가 제1 혼잡 제어 알고리즘이 성공적으로 수정되었음을 지시하는 수정 결과를 생성하거나, 또는, 상기 피드백 메시지가 제1 혼잡 제어 알고리즘이 제2 디바이스의 미리 설정된 수정 조건을 만족하지 않음을 지시하면, 제1 디바이스가 제1 혼잡 제어 알고리즘이 수정되지 않음을 지시하는 수정 결과를 생성하는 단계를 포함한다.
구체적으로, 도 2에 도시된 바와 같이, 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 데이터 스트림에 현재 운반되는 서비스에 대한 정보, 또는 네트워크 상태 정보 중 적어도 하나에 따라, 혼잡 제어 알고리즘이 수정되어야 하는 것으로 결정되는 경우, 이 경우, 송신될 컨텐츠는 혼잡 제어 알고리즘이다. 제1 디바이스(예를 들어, 송신단)는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 데이터 스트림에 대응하는 혼잡 제어 알고리즘을 보다 적절한 제1 혼잡 제어 알고리즘으로 수정하며, 제1 혼잡 제어 알고리즘은 제1 디바이스에 의해 다수의 미리 설정된 혼잡 제어 알고리즘들로부터 선택될 수 있다.
위성 네트워크 및 다이얼 업(dial-up) 액세스 네트워크와 같은 저속 네트워크 및 현재의 고속 인터넷을 포함하는 상이한 네트워크와, 검색 엔진에 관련된 작은 객체(object)와 파일 다운로딩에 관련된 큰 객체를 포함하는 상이한 서비스들에 대하여, 다수의 혼잡 제어 알고리즘이 존재한다. 혼잡 제어 알고리즘은 구체적으로, 선택 확인응답(Selective Acknowledgement, 간단히 SACK), BIC, CUBIC, 복합 TCP, 고속 전송 제어 프로토콜(High Speed Transmission Control Protocol, 간단히 HSTCP), 엑스플리시트 제어 프로토콜(eXplicit Control Protocol, 간단히 XCP) 등을 포함한다.
적절한 제1 혼잡 제어 알고리즘을 선택한 후, 제1 디바이스는 혼잡 제어 알고리즘 협상 요청 메시지를 제2 디바이스로 송신하며, 혼잡 제어 알고리즘 협상 요청 메시지는 제1 혼잡 제어 알고리즘을 포함하는 정보이므로, 제2 디바이스는 제1 혼잡 제어 알고리즘이 미리 설정된 조건을 만족하는지의 여부, 즉, 제2 디바이스가 제1 혼잡 제어 알고리즘을 지원하는 지의 여부를 결정하며; 이 경우, 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 구체적으로는 혼잡 제어 알고리즘 협상 요청 메시지이다.
제1 디바이스는 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 피드백 메시지는 제1 혼잡 제어 알고리즘이 제2 디바이스의 미리 설정된 조건을 만족하는 지의 여부를 지시하는 메시지를 포함하며; 피드백 메시지가 제1 혼잡 제어 알고리즘이 제2 디바이스의 미리 설정된 조건을 만족함을 지시하면, 제1 디바이스는 제1 혼잡 제어 알고리즘이 성공적으로 수정되었음을 지시하는 수정 결과를 생성하거나; 또는 피드백 메시지가 제1 혼잡 제어 알고리즘이 제2 디바이스의 미리 설정된 조건을 만족시키지 못하는 것을 지시하면, 제1 디바이스는 제1 혼잡 제어 알고리즘이 수정되지 않음을 지시하는 수정 결과를 생성한다.
도 2에서, 송신단은 혼잡 제어 알고리즘을 수정한다. 개발자(developer)는 수신단에서 혼잡 제어 알고리즘을 수정할 수 있으며, 수신단은 송신단과 협상하여 혼잡 제어 알고리즘이 성공적으로 수정되었는 지의 여부를 개발자에게 알릴 수 있다.
혼잡 제어 알고리즘 협상 요청 메시지 및 피드백 메시지의 특정 패킷 포맷은 도 3에 도시된 패킷 포맷일 수 있다. 혼잡 제어 알고리즘 옵션(Congestion Control Algorithm Option)이 TCP 패킷에 추가된다. 물론, 혼잡 제어 알고리즘 옵션은 TCP 패킷의 정식 콘텐츠로서 사용될 수 있다. 즉, 혼잡 제어 알고리즘 옵션이 혼잡 제어 알고리즘을 지시하는 고정 필드로서 사용될 수 있다. 혼잡 제어 알고리즘 옵션의 컨텐츠는 다음 표 1에 도시된다.
혼잡 제어 알고리즘 옵션 길이
혼잡 제어 알고리즘 협상 요청 메시지 32 비트 xx
피드백 메시지 xx xx
전술한 표 1에서, 혼잡 제어 알고리즘 협상 요청 메시지의 값 "xx"는 상술한 혼잡 제어 알고리즘 중 하나일 수 있으며, 예를 들어, XCP 또는 다른 혼잡 제어 알고리즘 일 수 있고, 길이는 32비트가 아닐 수 있다. 이것은 본 발명에 한정되지 않는다.
피드백 메시지의 길이 및 값은 또한 실제 요구 사항에 따라 결정될 수 있다.
도 4는 본 발명에 따른 데이터 전송 방법의 일 실시 예의 구현 원리의 제2 도이다.
도 5는 본 발명에 따른 데이터 전송 방법의 일 실시 예의 패킷 포맷의 제2 개략도이다.
선택적으로, TCP 파라미터가 초기 혼잡 윈도 및 수신기 윈도인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 초기 혼합 윈도를 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 초기 혼합 윈도를 획득하는 단계를 포함하며, 제1 초기 혼합 윈도는 미리 설정되며,
상기 제1 디바이스가 데이터 트랜스퍼 프로토콜 협상 요청 메시지를 제2 디바이스로 송신하는 단계는,
상기 제1 디바이스가 초기 혼합 윈도 협상 요청 메시지를 제2 디바이스로 송신하는 단계를 포함하며, 초기 혼합 윈도 협상 요청 메시지는 제1 초기 혼합 윈도를 포함함으로써, 제2 디바이스는 제1 초기 혼합 윈도에 대응하는 수신기 윈도를 제1 수신기 윈도로 수정하는 것이, 미리 설정된 수정 조건을 만족하는지의 여부를 결정하며, 그리고,
상기 제1 디바이스가, 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 피드백 메시지에 따라 TCP 파라미터의 수정 결과를 생성하는 단계는,
상기 제1 디바이스가 제2 디바이스에 의해 송신된 피드백 메시지를 수신하는 단계 - 상기 피드백 메시지는 제1 수신기 윈도가 제2 디바이스의 미리 설정된 수정 조건을 만족하는 지의 여부를 지시하는 메시지를 포함함 -; 및
상기 피드백 메시지가 제1 수신기 윈도가 제2 디바이스의 미리 설정된 수정 조건을 만족하는 것을 지시하면, 제1 디바이스가 제1 초기 혼잡 윈도 및 제1 수신기 윈도가 성공적으로 수정되었음을 지시하는 수정 결과를 생성하거나, 또는, 상기 피드백 메시지가 제1 수신기 윈도가 제2 디바이스의 미리 설정된 수정 조건을 만족하지 않음을 지시하면, 제1 디바이스가 제1 디바이스가 제1 초기 혼잡 윈도 및 제1 수신기 윈도가 수정되지 않음을 지시하는 수정 결과를 생성하는 단계를 포함한다.
구체적으로, 슬로우 스타트는 TCP에서 사용되는 혼잡 제어 메커니즘이며, 슬로우 스타트는 또한 지수 증가 기간(exponential increase period)이라고도 지칭된다. 혼잡을 피하기 위해, 슬로우 스타트에서, 혼잡 윈도(Congestion Window, 간단히 Cwnd)가 송신자(sender)의 TCP에 추가된다. 슬로우 스타트는 확인응답이 수신될 때마다 TCP의 송신단의 혼잡 윈도가 증가한다는 것을 지시한다. 윈도의 증가된 크기는 확인응답 패킷 세그먼트의 수량이다. 이 상황은 일부 세그먼트가 수신되지 않거나 윈도의 크기가 미리 설정된 문턱값에 도달할 때까지 지속된다. 손실 이벤트가 발생하면, TCP에서 네트워크 혼잡이 발생하고 네트워크 혼잡을 감소시키기 위한 조치(measure)가 사용되는 것으로 간주된다. 손실 이벤트가 발생하거나 문턱값에 도달되면, 선형 증가 위상(linear increase phase)이 TCP에 진입된다. 이 경우, 왕복 시간(round trip time, 간단히 RTT)의 각각의 주기 이후에 윈도는 하나의 패킷 세그먼트만큼 증가한다.
예를 들어, 다른 네트워크의 호스트로의 TCP 연결이 설립되는 경우, 혼잡 윈도는 하나의 패킷 세그먼트(즉, 다른 단(end)에 의해 광고되는 패킷 세그먼트의 크기)로 초기화될 수 있으며, 즉, 초기 혼잡 윈도는 하나의 패킷 세그먼트이다. 하나의 ACK가 수신될 때마다 혼잡 윈도는 하나의 패킷 세그먼트만큼 증가한다(Cwnd는 바이트로 측정되지만 슬로우 스타트에서는 혼잡 윈도가 패킷 세그먼트의 크기만큼 증가한다). 송신단은 혼잡 윈도와 수신 윈도(Receiver Window, 간단히 Rwnd)에서 더 작은 값을 송신 상한(ending upper limit)으로 선택한다. 혼잡 윈도는 송신자에 의해 사용되는 트래픽 제어 측정(traffic control measure)이며, 수신기 윈도는 수신단에 의해 사용되는 트래픽 제어 측정이다. 초기 혼잡 윈도는 실제 상황에 따라 추가로 수정될 수 있다.
도 4에 도시된 바와 같이, 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 데이터 스트림에 현재 운반되는 서비스에 대한 정보, 또는 네트워크 상태 정보 중 적어도 하나에 따라, TCP의 초기 혼잡 윈도가 수정되어야 하는 것으로 결정되는 경우, 이 경우, TCP 파라미터는 초기 혼잡 윈도와 수신기 윈도이다. 제1 디바이스(예를 들어, 송신단)는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 데이터 스트림에 대응하는 초기 혼잡 윈도를 보다 적절한 제1 초기 혼잡 윈도로 수정하며, 제1 초기 혼잡 윈도는 제1 디바이스에 의해 미리 설정될 수 있다. 구체적으로, 제1 초기 혼잡 윈도는 일반적으로, 송신될 파일의 크기, 송신단의 능력, 네트워크 대역폭 등에 기초하여 결정되어야 한다.
적절한 제1 초기 혼잡 윈도를 선택한 후, 제1 디바이스는 초기 혼잡 윈도 요청 메시지를 제2 디바이스(예를 들어, 수신단)에 송신하며, 초기 혼잡 윈도요청 메시지는 제1 초기 혼잡 윈도를 포함하므로, 제2 디바이스는 제1 초기 혼잡 윈도에 대응하는 수신기 윈도를 제1 수신기 윈도로 수정하는 것이 미리 설정된 조건을 만족하는 지의 여부를 결정한다. 제1 초기 혼잡 윈도는 제1 디바이스에 의해 미리 설정될 수 있다. 제1 수신 윈도는 제1 초기 혼잡 윈도에 대응하고, 제1 수신 윈도의 크기는 제1 초기 혼잡 윈도의 크기와 같거나 다를 수 있으며, 상기 크기는 작은 파일의 크기와 동일하게 설정될 수 있다. 이 경우, 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 구체적으로 수신기 윈도 협상 요청 메시지이다.
제1 디바이스는 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 피드백 메시지는 제1 수신기 윈도가 제2 디바이스의 미리 설정된 조건을 만족하는 지의 여부를 지시하는 메시지를 포함하며; 피드백 메시지가 제1 수신기 윈도가 제2 디바이스의 미리 설정된 조건을 만족함을 지시하면, 제1 디바이스는 제1 초기 혼잡 윈도와 제1 수신기 윈도가 성공적으로 수정되었음을 지시하는 수정 결과를 생성하거나; 또는 피드백 메시지가 제1 수신기 윈도가 제2 디바이스의 미리 설정된 조건을 만족시키지 못하는 것을 지시하면, 제1 디바이스는 제1 초기 혼잡 윈도와 제1 수신기 윈도가 수정되지 않음을 지시하는 수정 결과를 생성한다.
수신기 윈도 협상 요청 메시지 및 피드백 메시지의 구체적인 패킷 포맷은 도 5에 도시된 패킷 포맷일 수 있다. 초기 혼잡 윈도 수정 옵션(Initial Cwnd Modify Option)이 TCP 패킷에 추가된다. 물론, 초기 혼잡 윈도 수정 옵션은 TCP 패킷의 정식 콘텐츠로 사용될 수 있다. 즉, 초기 혼잡 윈도 수정 옵션은 초기 혼잡 윈도를 지시하기 위해 고정 필드로서 사용될 수 있다. 초기 혼잡 윈도 수정 옵션의 콘텐츠가 다음 표 2에 나와 있다.
수신기 윈도 수정 옵션 길이
초기 혼잡 윈도 요청 메시지 32 bits xx
피드백 메시지 32 bits xx
전술한 표 2에서, 초기 혼잡 윈도 요청 메시지의 값 "xx"는 임의 길이를 가지고 실제적으로 요구되는 초기 혼잡 윈도일 수 있으며, 메시지의 길이는 32 비트가 아닐 수 있다. 이것은 본 발명에 한정되지 않는다.
피드백 메시지의 길이 및 값은 또한 실제 요구 사항에 따라 결정될 수 있다.
도 6은 본 발명에 따른 데이터 전송 방법의 일 실시 예의 구현 원리의 제3 도이다.
도 7은 본 발명에 따른 데이터 전송 방법의 일 실시 예의 패킷 포맷의 제3 개략도이다.
선택적으로, TCP 파라미터가 슬로우 스타트 ACK 응답 빈도인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 슬로우 스타트 ACK 응답 빈도를 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 슬로우 스타트 ACK 응답 빈도를 획득하는 단계를 포함하며, 제1 슬로우 스타트 ACK 응답 빈도는 미리 설정되며,
상기 제1 디바이스가 데이터 트랜스퍼 프로토콜 협상 요청 메시지를 제2 디바이스로 송신하는 단계는,
상기 제1 디바이스가 슬로우 스타트 ACK 응답 빈도 협상 요청 메시지를 제2 디바이스로 송신하는 단계를 포함하며, 슬로우 스타트 ACK 응답 빈도 협상 요청 메시지는 제1 슬로우 스타트 ACK 응답 빈도를 포함함으로써, 제2 디바이스는 제1 슬로우 스타트 ACK 응답 빈도가 미리 설정된 수정 조건을 만족하는 지의 여부를 결정하며, 그리고,
상기 제1 디바이스가, 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 피드백 메시지에 따라 TCP 파라미터의 수정 결과를 생성하는 단계는,
상기 제1 디바이스가 제2 디바이스에 의해 송신된 피드백 메시지를 수신하는 단계 - 상기 피드백 메시지는 제1 슬로우 스타트 ACK 응답 빈도가 제2 디바이스의 미리 설정된 수정 조건을 만족하는 지의 여부를 지시하는 메시지를 포함함 -; 및
상기 피드백 메시지가 제1 슬로우 스타트 ACK 응답 빈도가 제2 디바이스의 미리 설정된 수정 조건을 만족하는 것을 지시하면, 제1 디바이스가 제1 슬로우 스타트 ACK 응답 빈도가 성공적으로 수정되었음을 지시하는 수정 결과를 생성하거나, 또는, 상기 피드백 메시지가 제1 슬로우 스타트 ACK 응답 빈도가 제2 디바이스의 미리 설정된 수정 조건을 만족하지 않음을 지시하면, 제1 디바이스가 제1 슬로우 스타트 ACK 응답 빈도가 수정되지 않음을 지시하는 수정 결과를 생성하는 단계를 포함한다.
구체적으로, 슬로우 스타트 동안, 예를 들어, 처음에, 송신자는 패킷 세그먼트의 송신을 시작한 다음 ACK를 기다린다. ACK가 수신되는 경우, 혼잡 윈도가 1에서 2로 증가하며, 즉, 2개의 패킷 세그먼트가 송신될 수 있다. 2개의 패킷 세그먼트에 대한 ACK가 수신되는 경우, 혼잡 윈도가 4로 증가한다. 이것은 지수 증가 관계이다. 혼잡 윈도의 증가는 ACK 응답 빈도에 의존한다. 현재, 2개의 패킷이 수신될 때마다, 수신단은 하나의 ACK를 송신한다. ACK가 손실되거나 소량의 패킷이 수신되는 경우, 혼잡 윈도는 느리게 증가하며, 결과적으로, 슬로우 스타트의 지속 시간이 길어진다. 따라서, 슬로우 스타트의 지속 기간은 ACK 응답 빈도를 수정하는 것에 의해 감소될 수 있다.
도 6에 도시된 바와 같이, 제1 디바이스(예를 들어, 송신단)가 TCP의 슬로우 스타트 ACK 응답 빈도를 수정해야 하는 것으로 결정한 경우, 이 경우 TCP 파라미터는 슬로우 스타트 ACK 응답 빈도이다. 제1 디바이스는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 제1 디바이스에 대응하는 데이터 스트림에 대응하는 슬로우 스타트 ACK 응답 빈도를 현재 서비스에 적합한 슬로우 스타트 ACK 응답 빈도, 즉, 제1 슬로우 스타트 ACK 응답 빈도로 수정하며, 제1 슬로우 스타트 ACK 응답 빈도는 미리 설정된다. 구체적으로, 슬로우 스타트 ACK 응답 빈도는 일반적으로 송신될 파일의 크기, 송신단에서의 서버의 능력, 네트워크 대역폭 등에 기초하여 결정된다.
제1 디바이스는 슬로우 스타트 ACK 응답 빈도 협상 요청 메시지를 제2 디바이스(예를 들어, 수신단)로 송신하며, 슬로우 스타트 ACK 응답 빈도 협상 요청 메시지는 제1 슬로우 스타트 ACK 응답 빈도를 포함하므로, 제2 디바이스는 제1 슬로우 스타트 ACK 응답 빈도가 미리 설정된 수정 조건을 만족하는 지의 여부를 결정하며, 이 경우, 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 구체적으로, 슬로우 스타트 ACK 응답 빈도 협상 요청 메시지이다.
제1 디바이스는 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 피드백 메시지는 제1 슬로우 스타트 ACK 응답 빈도가 제2 디바이스의 미리 설정된 조건을 만족하는 지의 여부를 지시하는 메시지를 포함하며; 피드백 메시지가 제1 슬로우 스타트 ACK 응답 빈도가 제2 디바이스의 미리 설정된 조건을 만족함을 지시하면, 제1 디바이스는 제1 슬로우 스타트 ACK 응답 빈도가 성공적으로 수정되었음을 지시하는 수정 결과를 생성하거나; 또는 피드백 메시지가 제1 슬로우 스타트 ACK 응답 빈도가 제2 디바이스의 미리 설정된 조건을 만족시키지 못하는 것을 지시하면, 제1 디바이스는 제1 슬로우 스타트 ACK 응답 빈도가 수정되지 않음을 지시하는 수정 결과를 생성한다.
슬로우 스타트 ACK 응답 빈도 협상 요청 메시지 및 피드백 메시지의 구체적인 패킷 포맷은 도 7에 도시된 패킷 포맷일 수 있다. 슬로우 스타트 ACK 응답 빈도 옵션(Slow Start ACK Frequency Option)이 TCP 패킷에 추가된다. 물론, 슬로우 스타트 ACK 응답 빈도 옵션은 TCP 패킷의 정식 콘텐츠로 사용될 수 있다. 즉, 슬로우 스타트 ACK 응답 빈도 옵션은 슬로우 스타트 ACK 응답 빈도를 지시하는 고정 필드로서 사용될 수 있다. 슬로우 스타트 ACK 응답 빈도 옵션의 컨텐츠는 다음 표 3에 나와 있다.
슬로우 스타트 ACK 응답 빈도 옵션 길이
슬로우 스타트 ACK 응답 빈도 협상 요청 메시지 xx xx
피드백 메시지 xx xx
전술한 표 3에서, 슬로우 스타트 ACK 응답 빈도 협상 요청 메시지의 값 "xx"는 실제로 요구되는 임의의 ACK 응답 빈도일 수 있으며, 메시지의 길이는 실제 요구 사항에 따라 결정될 수 있으며, 예를 들어, 32비트일 수 있다. 이것은 본 발명에 한정되지 않는다.
피드백 메시지의 길이 및 값은 또한 실제 요구 사항에 따라 결정될 수 있다.
선택적으로, TCP 파라미터가 혼잡 회피 ACK 응답 빈도인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 혼잡 회피 ACK 응답 빈도를 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 혼잡 회피 ACK 응답 빈도를 획득하는 단계를 포함하며, 제1 혼잡 회피 ACK 응답 빈도는 미리 설정되며,
상기 제1 디바이스가 데이터 트랜스퍼 프로토콜 협상 요청 메시지를 제2 디바이스로 송신하는 단계는,
상기 제1 디바이스가 혼잡 회피 ACK 응답 빈도 협상 요청 메시지를 제2 디바이스로 송신하는 단계를 포함하며, 혼잡 회피 ACK 응답 빈도 협상 요청 메시지는 제1 혼잡 회피 ACK 응답 빈도를 포함함으로써, 제2 디바이스는 제1 혼잡 회피 ACK 응답 빈도가 미리 설정된 수정 조건을 만족하는 지의 여부를 결정하며, 그리고,
상기 제1 디바이스가, 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 피드백 메시지에 따라 TCP 파라미터의 수정 결과를 생성하는 단계는,
상기 제1 디바이스가 제2 디바이스에 의해 송신된 피드백 메시지를 수신하는 단계 - 상기 피드백 메시지는 제1 혼잡 회피 ACK 응답 빈도가 제2 디바이스의 미리 설정된 수정 조건을 만족하는 지의 여부를 지시하는 메시지를 포함함 -; 및
상기 피드백 메시지가 제1 혼잡 회피 ACK 응답 빈도가 제2 디바이스의 미리 설정된 수정 조건을 만족하는 것을 지시하면, 제1 디바이스가 제1 혼잡 회피 ACK 응답 빈도가 성공적으로 수정되었음을 지시하는 수정 결과를 생성하거나, 또는, 상기 피드백 메시지가 제1 혼잡 회피 ACK 응답 빈도가 제2 디바이스의 미리 설정된 수정 조건을 만족하지 않음을 지시하면, 제1 디바이스가 제1 혼잡 회피 ACK 응답 빈도가 수정되지 않음을 지시하는 수정 결과를 생성하는 단계를 포함한다.
구체적으로, 네트워크 대역폭 자원의 사용을 최대화하기 위하여, Cwnd가 빠르게 증가할 수 있음을 슬로우 스타트로부터 알 수 있다. 그러나 Cwnd는 무한히 증가할 수 없으며, 특정 제한이 요구된다. 슬로우 스타트 문턱값(Slow Start Threshold, SSThresh)으로 지칭되는 변수가 TCP에서 사용된다. Cwnd가 상기 값을 초과하는 경우, 슬로우 스타트의 처리가 종료되고, 혼잡 회피 위상(phase)이 진입된다. TCP의 대부분의 구현의 경우, SSThresh 값은 65536(바이트로 측정됨)이다. 혼잡 회피의 주요 아이디어는 1의 단계에서 Cwnd를 증가시키는 것이며, 즉, Cwnd의 값은 더이상 기하급수적으로 증가하지 않는다. 이 경우, 윈도 내의 모든 패킷 세그먼트가 확인응답되면, CWnd의 값이 1씩 증가하고, Cwnd의 값은 RTT에 따라 선형적으로 증가한다. 이는 Cwnd가 과도하게 빠르게 증가하는 경우 발생하는 네트워크 혼잡을 방지하고, Cwnd를 천천히 증가시킴으로써 네트워크에서 최적의 Cwnd 값을 얻는다.
혼잡 회피 동안의 혼잡 회피 ACK 응답 빈도를 조정함으로써 혼잡 윈도를 증가시키는 속도가 제어될 수 있다.
본 실시 예에서, 제1 디바이스(예를 들어, 송신단)가 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 현재 데이터 스트림으로 운반되는 서비스에 대한 정보, 또는 네트워크 상태 정보를 이용하여 TCP의 혼잡 회피 ACK 응답 빈도가 수정되어야 하는 것으로 결정한 경우, 이 경우 TCP 파라미터는 혼잡 회피 ACK 응답 빈도이다. 제1 디바이스는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여 데이터 스트림에 대응하는 혼잡 회피 ACK 응답 빈도를 현재 서비스에 적합한 혼합 회피 ACK 응답 빈도, 즉 제1 혼잡 회피 ACK 응답 빈도로 수정한다. 제1 혼잡 회피 ACK 응답 빈도는 미리 설정된다. 구체적으로는, 혼잡 회피 ACK 응답 빈도는 일반적으로 송신될 파일의 크기, 송신 단의 능력, 네트워크 대역폭 등에 기초하여 결정된다.
제1 디바이스는 혼잡 회피 ACK 응답 빈도 협상 요청 메시지를 제2 디바이스(예를 들어, 수신단)로 송신하고, 혼잡 회피 ACK 응답 빈도 협상 요청 메시지는 제1 혼잡 회피 ACK 응답 빈도를 포함하므로, 제2 디바이스는 제1 혼잡 회피 ACK 응답 빈도가 미리 설정된 수정 조건을 만족하는 지의 여부를 결정하며, 이 경우, 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 구체적으로는 혼잡 회피 ACK 응답 빈도 협상 요청 메시지이다.
제1 디바이스는 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 피드백 메시지는 제1 혼잡 회피 ACK 응답 빈도가 제2 디바이스의 미리 설정된 조건을 만족하는 지의 여부를 지시하는 메시지를 포함하며; 피드백 메시지가 제1 혼잡 회피 ACK 응답 빈도가 제2 디바이스의 미리 설정된 조건을 만족함을 지시하면, 제1 디바이스는 제1 혼잡 회피 ACK 응답 빈도가 성공적으로 수정되었음을 지시하는 수정 결과를 생성하거나; 또는 피드백 메시지가 제1 혼잡 회피 ACK 응답 빈도가 제2 디바이스의 미리 설정된 조건을 만족시키지 못하는 것을 지시하면, 제1 디바이스는 제1 혼잡 회피 ACK 응답 빈도가 수정되지 않음을 지시하는 수정 결과를 생성한다.
혼잡 회피 ACK 응답 빈도 협상 요청 메시지 및 피드백 메시지의 구체적인 패킷 포맷은 슬로우 스타트 ACK 응답 빈도 협상 요청 메시지 및 피드백 메시지의 패킷 포맷과 유사하다. 세부 사항은 여기에서 다시 설명하지 않는다.
선택적으로, TCP 파라미터가 빠른 복구 ACK 응답 빈도인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 빠른 복구 ACK 응답 빈도를 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 빠른 복구 ACK 응답 빈도를 획득하는 단계를 포함하며, 제1 빠른 복구 ACK 응답 빈도는 미리 설정되며,
상기 제1 디바이스가 데이터 트랜스퍼 프로토콜 협상 요청 메시지를 제2 디바이스로 송신하는 단계는,
상기 제1 디바이스가 빠른 복구 ACK 응답 빈도 협상 요청 메시지를 제2 디바이스로 송신하는 단계를 포함하며, 빠른 복구 ACK 응답 빈도 협상 요청 메시지는 제1 빠른 복구 ACK 응답 빈도를 포함함으로써, 제2 디바이스는 제1 빠른 복구 ACK 응답 빈도가 미리 설정된 수정 조건을 만족하는 지의 여부를 결정하며, 그리고,
상기 제1 디바이스가, 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 피드백 메시지에 따라 TCP 파라미터의 수정 결과를 생성하는 단계는,
상기 제1 디바이스가 제2 디바이스에 의해 송신된 피드백 메시지를 수신하는 단계 - 상기 피드백 메시지는 제1 빠른 복구 ACK 응답 빈도가 제2 디바이스의 미리 설정된 수정 조건을 만족하는 지의 여부를 지시하는 메시지를 포함함 -; 및
상기 피드백 메시지가 제1 빠른 복구 ACK 응답 빈도가 제2 디바이스의 미리 설정된 수정 조건을 만족하는 것을 지시하면, 제1 디바이스가 제1 빠른 복구 ACK 응답 빈도가 성공적으로 수정되었음을 지시하는 수정 결과를 생성하거나, 또는, 상기 피드백 메시지가 제1 빠른 복구 ACK 응답 빈도가 제2 디바이스의 미리 설정된 수정 조건을 만족하지 않음을 지시하면, 제1 디바이스가 제1 빠른 복구 ACK 응답 빈도가 수정되지 않음을 지시하는 수정 결과를 생성하는 단계를 포함한다.
구체적으로, TCP에서 빠른 재전송이 있는데, 즉, 3개의 동일한 ACK가 수신되는 경우이다. TCP에서 3개의 동일한 ACK가 패킷 손실을 결정하는 데 사용된다. 이 경우, 빠른 재전송이 수행된다. 빠른 재전송 동안, SSThresh 및 혼잡 윈도의 크기가 리셋되고, 혼잡 회피 위상이 재진입된다. 전술한 빠른 재전송 알고리즘에 기초하여 빠른 복구 알고리즘이 추가된다. 세 개의 중복 ACK가 수신되는 경우, 이 경우, TCP에서, 혼잡 회피 위상 대신 빠른 복구 위상이 최종적으로 진입된다. 일반적으로 빠른 재전송 및 빠른 복구 알고리즘이 동시에 사용된다. 빠른 복구의 아이디어는 "패킷 보존(conservation)", 즉, 동일한 순간에서 네트워크의 패킷의 수량은 일정하다는 원칙(principle)이다. "오래된" 패킷이 네트워크를 떠난 후에만 "새로운" 패킷이 네트워크로 송신될 수 있다. 송신자가 중복된 ACK를 수신하면, 이는 TCP의 ACK 메커니즘에 따라, 패킷이 네트워크를 벗어났음을 나타내며, Cwnd는 1씩 증가한다. 원칙이 엄격히 준수될 수 있으면, 네트워크 혼잡이 거의 발생하지 않는다.
빠른 복구 동안, SSThresh 및 혼잡 윈도의 크기 또한 리셋된다. 복구 프로세스가 종료된 후에, 혼잡 회피 상태(state)가 재진입된다.
빠른 복구의 프로세스에서, 빠른 복구 ACK 응답 빈도를 조정함으로써 혼잡 윈도를 증가시키는 속도가 제어될 수 있다.
본 실시 예에서, 제1 디바이스(예를 들어, 송신단)가 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 현재 데이터 스트림으로 운반되는 서비스에 대한 정보, 또는 네트워크 상태 정보를 사용하여 TCP의 빠른 복구 ACK 응답 빈도가 수정되야 하는 것으로 결정한 경우, TCP 파라미터는 빠른 복구 ACK 응답 빈도이다. 제1 디바이스는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여 데이터 스트림에 대응하는 빠른 복구 ACK 응답 빈도를 현재 서비스에 적합한 빠른 복구 ACK 응답 빈도, 즉 제1 빠른 복구 ACK 응답 빈도로 수정한다. 제1 빠른 복구 ACK 응답 빈도는 미리 설정된다. 구체적으로, 빠른 복구 ACK 응답 빈도는 일반적으로 송신될 파일의 크기, 전송 단의 능력, 네트워크 대역폭 등에 기초하여 결정된다.
제1 디바이스는 빠른 복구 ACK 응답 빈도 협상 요청 메시지를 제2 디바이스(예를 들어,수신단)으로 송신하며, 제1 빠른 복구 ACK 응답 빈도 협상 요청 메시지가 제1 빠른 복구 ACK 응답 빈도를 포함하므로, 제2 디바이스는 제1 빠른 복구 ACK 응답 빈도가 미리 설정된 수정 조건을 만족하는 지의 여부를 결정하며, 이 경우 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 구체적으로 빠른 복구 ACK 응답 빈도 협상 요청 메시지이다.
제1 디바이스는 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 피드백 메시지는 제1 빠른 복구 ACK 응답 빈도가 제2 디바이스의 미리 설정된 조건을 만족하는 지의 여부를 지시하는 메시지를 포함하며; 피드백 메시지가 제1 빠른 복구 ACK 응답 빈도가 제2 디바이스의 미리 설정된 조건을 만족함을 지시하면, 제1 디바이스는 제1 빠른 복구 ACK 응답 빈도가 성공적으로 수정되었음을 지시하는 수정 결과를 생성하거나; 또는 피드백 메시지가 제1 빠른 복구 ACK 응답 빈도가 제2 디바이스의 미리 설정된 조건을 만족시키지 못하는 것을 지시하면, 제1 디바이스는 제1 빠른 복구 ACK 응답 빈도가 수정되지 않음을 지시하는 수정 결과를 생성한다.
빠른 복구 ACK 응답 빈도 협상 요청 메시지 및 피드백 메시지의 구체적인 패킷 포맷은 슬로우 스타트 ACK 응답 빈도 협상 요청 메시지 및 피드백 메시지의 패킷 포맷과 유사하다. 세부 사항은 여기에서 다시 설명하지 않는다.
선택적으로, TCP 파라미터가 빠른 복구 ACK 응답 빈도인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 정상 전송 ACK 응답 빈도를 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 정상 전송 ACK 응답 빈도를 획득하는 단계를 포함하며, 제1 정상 전송 ACK 응답 빈도는 미리 설정되며,
상기 제1 디바이스가 데이터 트랜스퍼 프로토콜 협상 요청 메시지를 제2 디바이스로 송신하는 단계는,
상기 제1 디바이스가 정상 전송 ACK 응답 빈도 협상 요청 메시지를 제2 디바이스로 송신하는 단계를 포함하며, 정상 전송 ACK 응답 빈도 협상 요청 메시지는 제1 정상 전송 ACK 응답 빈도를 포함함으로써, 제2 디바이스는 제1 정상 전송 ACK 응답 빈도가 미리 설정된 수정 조건을 만족하는 지의 여부를 결정하며, 그리고,
상기 제1 디바이스가, 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 피드백 메시지에 따라 TCP 파라미터의 수정 결과를 생성하는 단계는,
상기 제1 디바이스가 제2 디바이스에 의해 송신된 피드백 메시지를 수신하는 단계 - 상기 피드백 메시지는 제1 정상 전송 ACK 응답 빈도가 제2 디바이스의 미리 설정된 수정 조건을 만족하는 지의 여부를 지시하는 메시지를 포함함 -; 및
상기 피드백 메시지가 제1 정상 전송 ACK 응답 빈도가 제2 디바이스의 미리 설정된 수정 조건을 만족하는 것을 지시하면, 제1 디바이스가 제1 정상 전송 ACK 응답 빈도가 성공적으로 수정되었음을 지시하는 수정 결과를 생성하거나, 또는, 상기 피드백 메시지가 제1 정상 전송 ACK 응답 빈도가 제2 디바이스의 미리 설정된 수정 조건을 만족하지 않음을 지시하면, 제1 디바이스가 제1 정상 전송 ACK 응답 빈도가 수정되지 않음을 지시하는 수정 결과를 생성하는 단계를 포함한다.
구체적으로, 트래픽을 제어하기 위해 가변 크기 슬라이딩 윈도(즉, 송신 윈도(transmit window))가 TCP에 사용되며, 윈도의 크기는 바이트로 측정된다.
연결이 성립되는 동안, 송신 윈도는 송신단과 수신단에 의해 협상되고, 혼잡 윈도와 수신 윈도 모두에 기초하여 결정된다. 송신 윈도의 상한(upper limit)은 Min[Rwnd, Cwnd]이다. Rwnd <Cwnd 인 경우, 송신 윈도의 최대값은 수신단의 수신 능력에 의해 제한된다. Cwnd <Rwnd 인 경우, 송신 윈도의 최대값은 네트워크 혼잡에 의해 제한된다.
송신 윈도가 500 바이트이고, 송신단이 400 바이트의 데이터를 송신하면, 최초 200 바이트의 데이터에 대한 확인응답만 수신되고, 윈도의 크기는 변하지 않는다. 송신 윈도는 500 바이트이기 때문에, 300 바이트의 데이터가 더 송신될 수 있다.
송신단이 수신단으로부터 최초 400 바이트의 데이터에 대한 확인응답을 수신하면, 수신단은 수신단 윈도가 400 바이트로 감소됨을 송신단에 통지한다. 현재, 송신단은 추가로 최대 400 바이트의 데이터를 송신할 수 있다.
정상 전송 ACK 응답 빈도가 조정되며, 즉, 수신단이 ACK를 송신하는 빈도가 조정된다. 일반적으로, 2개의 패킷이 수신될 때마다, 수신단은 하나의 ACK로 응답한다. 물론, 빈도가 수정될 수 있으므로 하나의 패킷이 수신될 때마다 수신단이 하나의 ACK로 응답하거나, 대량의 데이터를 전송하는 동안 ACK 응답 빈도가 감소될 수 있으므로 송신 윈도의 크기가 조정될 수 있다.
제1 디바이스(예를 들어, 송신단)가 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 데이터 스트림에 현재 운반되는 서비스에 대한 정보, 또는 네트워크 상태 정보 중 적어도 하나에 따라, TCP의 정상 전송 ACK 응답 빈도가 수정되어야 하는 것으로 결정한 경우, 이 경우 TCP 파라미터는 정상 전송 ACK 응답 빈도이다. 제1 디바이스는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여 데이터 스트림에 대응하는 정상 전송 ACK 응답 빈도를, 현재 서비스에 적합한 정상 전송 ACK 응답 빈도 즉, 제1 정상 전송 ACK 응답 빈도로 수정하며, 제1 정상 전송 ACK 응답 빈도는 미리 설정된다. 구체적으로, 정상 전송 ACK 응답 빈도는 일반적으로 송신될 파일의 크기, 송신단에서의 서버의 성능, 네트워크 대역폭 등에 기초하여 결정된다.
제1 디바이스는 정상 전송 ACK 응답 빈도 협상 요청 메시지를 제2 디바이스(예를 들어, 수신단)로 송신하고, 정상 전송 ACK 응답 빈도 협상 요청 메시지는 제1 정상 전송 ACK 응답 빈도를 포함하므로, 제2 디바이스는 제1 정상 전송 ACK 응답 빈도가 미리 설정된 수정 조건을 만족하는 지의 여부를 결정하며, 이 경우, 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 구체적으로는 정상 전송 ACK 응답 빈도 협상 요청 메시지이다.
제1 디바이스는 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 피드백 메시지는 제1 정상 전송 ACK 응답 빈도가 제2 디바이스의 미리 설정된 조건을 만족하는 지의 여부를 지시하는 메시지를 포함하며; 피드백 메시지가 제1 정상 전송 ACK 응답 빈도가 제2 디바이스의 미리 설정된 조건을 만족함을 지시하면, 제1 디바이스는 제1 정상 전송 ACK 응답 빈도가 성공적으로 수정되었음을 지시하는 수정 결과를 생성하거나; 또는 피드백 메시지가 제1 정상 전송 ACK 응답 빈도가 제2 디바이스의 미리 설정된 조건을 만족시키지 못하는 것을 지시하면, 제1 디바이스는 제1 혼잡 회피 ACK 응답 빈도가 수정되지 않음을 지시하는 수정 결과를 생성한다.
정상 전송 ACK 응답 빈도 협상 요청 메시지 및 피드백 메시지의 특정 패킷 포맷은 슬로우 스타트 ACK 응답 빈도 협상 요청 메시지 및 피드백 메시지의 것과 유사한 패킷 포맷이다. 세부 사항은 여기에서 다시 설명하지 않는다.
도 8은 본 발명에 따른 데이터 전송 방법의 일 실시 예의 구현 원리의 제7 도이다.
도 9는 본 발명에 따른 데이터 전송 방법의 일 실시 예의 패킷 포맷의 제4 개략도이다.
선택적으로, TCP 파라미터가 최대 패킷 길이인 경우, 상기 제1 디바이스가 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
데이터 스트림에 대응하는 최대 패킷 길이를 수정하기 위해 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여, 수정된 제1 최대 패킷 길이를 획득하는 단계를 포함하며, 제1 최대 패킷 길이는 미리 설정되며,
상기 제1 디바이스가 데이터 트랜스퍼 프로토콜 협상 요청 메시지를 제2 디바이스로 송신하는 단계는,
상기 제1 디바이스가 최대 패킷 길이 협상 요청 메시지를 제2 디바이스로 송신하는 단계를 포함하며, 최대 패킷 길이 협상 요청 메시지는 제1 최대 패킷 길이를 포함함으로써, 제2 디바이스는 제1 최대 패킷 길이가 미리 설정된 수정 조건을 만족하는 지의 여부를 결정하며, 그리고,
상기 제1 디바이스가, 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 피드백 메시지에 따라 TCP 파라미터의 수정 결과를 생성하는 단계는,
상기 제1 디바이스가 제2 디바이스에 의해 송신된 피드백 메시지를 수신하는 단계 - 상기 피드백 메시지는 제1 최대 패킷 길이가 제2 디바이스의 미리 설정된 수정 조건을 만족하는 지의 여부를 지시하는 메시지를 포함함 -; 및
상기 피드백 메시지가 제1 최대 패킷 길이가 제2 디바이스의 미리 설정된 수정 조건을 만족하는 것을 지시하면, 제1 디바이스가 제1 최대 패킷 길이가 성공적으로 수정되었음을 지시하는 수정 결과를 생성하거나, 또는, 상기 피드백 메시지가 제1 최대 패킷 길이가 제2 디바이스의 미리 설정된 수정 조건을 만족하지 않음을 지시하면, 제1 디바이스가 제1 최대 패킷 길이가 수정되지 않음을 지시하는 수정 결과를 생성하는 단계를 포함한다.
구체적으로, 현재 TCP의 최대 패킷 길이는 송신단과 수신단 사이의 링크의 최대 전송 단위(Maximum Transmission Unit, MTU)와 강하게 관련되어 있다. 이것은 중간 네트워크(intermediate network)의 링크의 MTU와 서비스 요구 사항을 무시한다.
MTU는 통신 프로토콜의 특정 계층에서 전달될 수 있는 최대 패킷의 크기(바이트 단위)를 지칭한다. 송신단의 MTU가 수신단의 MTU와 일치하지 않으면, 패킷 손실률이 증가하고 네트워크 속도가 감소된다.
본 실시 예에서, 도 8에 도시된 바와 같이, 제1 디바이스(예를 들어, 수신단)는 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 현재 데이터 스트림에서 운반된 서비스에 대한 정보, 또는 네트워크 상태 정보 중 적어도 하나에 따라, TCP의 최대 패킷 길이가 수정되어야 하는 것으로 결정한 경우, 이 경우 TCP 파라미터는 최대 패킷 길이이다. 제1 디바이스는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 호출하여 데이터 스트림에 대응하는 최대 패킷 길이를 현재 서비스에 적합한 최대 패킷 길이, 즉 제1 최대 패킷 길이로 수정하고, 제1 최대 패킷 길이는 미리 설정될 수 있다. 구체적으로, 최대 패킷 길이는 일반적으로 송신단 및 수신 단의 능력, 네트워크 대역폭 등에 기초하여 결정된다.
제1 디바이스는 최대 패킷 길이 협상 요청 메시지를 제2 디바이스(예를 들어, 송신단)로 송신하며, 최대 패킷 길이 협상 요청 메시지는 제1 최대 패킷 길이를 포함하므로, 제2 디바이스가 제1 최대 패킷 길이가 미리 설정된 수정 조건을 만족하는 지의 여부를 결정하며, 이 경우, 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 구체적으로 최대 패킷 길이 협상 요청 메시지이다.
제1 디바이스는 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 피드백 메시지는 제1 최대 패킷 길이가 제2 디바이스의 미리 설정된 조건을 만족하는 지의 여부를 지시하는 메시지를 포함하며; 피드백 메시지가 제1 최대 패킷 길이가 제2 디바이스의 미리 설정된 조건을 만족함을 지시하면, 제1 디바이스는 제1 최대 패킷 길이가 성공적으로 수정되었음을 지시하는 수정 결과를 생성하거나; 또는 피드백 메시지가 제1 최대 패킷 길이가 제2 디바이스의 미리 설정된 조건을 만족시키지 못하는 것을 지시하면, 제1 디바이스는 제1 최대 패킷 길이가 수정되지 않음을 지시하는 수정 결과를 생성한다.
최대 패킷 길이 협상 요청 메시지 및 피드백 메시지의 구체적인 패킷 포맷은 도 9에 도시된 패킷 포맷일 수 있다. 최대 패킷 길이 수정 옵션(Max Packet Length Modify)이 TCP 패킷에 추가된다. 물론, 최대 패킷 길이 수정 옵션은 TCP 패킷의 정식 콘텐츠로서 사용될 수 있다. 즉, 최대 패킷 길이 수정 옵션은 최대 패킷 길이를 나타내는 고정 필드로서 사용될 수 있다. 최대 패킷 길이 수정 옵션의 내용은 다음 표 4에 나와 있다.
최대 패킷 길이 수정 옵션 길이
최대 패킷 길이 협상 요청 메시지 xx xx
피드백 메시지 xx xx
전술한 표 4에서, 최대 패킷 길이 협상 요청 메시지의 값 "xx"는 실제로 요구되는 임의의 패킷 길이일 수 있고, 메시지의 길이는 실제 요구 사항에 따라 결정될 수 있다. 예를 들어, 32 비트일 수 있다. 이것은 본 발명에 한정되지 않는다.
피드백 메시지의 길이 및 값은 또한 실제 요구 사항에 따라 결정될 수 있다.
본 실시 예의 기술적인 효과는 전술한 실시 예와 유사하므로, 상세한 설명은 생략한다.
도 10은 본 발명에 따른 데이터 전송 방법의 다른 실시 예의 흐름도이다. 본 실시 예의 실행 주체(execution body)는 제2 디바이스이다. 제2 디바이스는 TCP의 송신단 또는 수신단일 수 있다. 즉, 제2 디바이스는 서버 또는 클라이언트 디바이스일 수 있다. 도 10에 도시된 바와 같이, 본 실시 예에서 제공되는 데이터 전송 방법은 다음의 단계들을 포함한다.
단계 1001 : 제2 디바이스가 제1 디바이스에 의해 송신된 데이터 트랜스퍼 프로토콜 협상 요청 메시지를 수신하고, 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 제1 디바이스에 의해 수정된 TCP 파라미터를 포함한다.
단계 1002 : 제2 디바이스가 수정된 TCP 파라미터가 미리 설정된 수정 조건을 만족하는지의 여부를 결정한다.
단계 1003 : 제2 디바이스가 피드백 메시지를 생성하고, 피드백 메시지를 제1 디바이스에 송신한다.
선택적으로, TCP 파라미터는,
초기 혼잡 윈도,
타임아웃 후의 재전송을 위한 혼잡 윈도,
빠른 복구를 위한 혼잡 윈도,
슬로우 스타트 문턱값,
타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값,
빠른 복구를 위한 혼잡 윈도 문턱값
슬로우 스타트 단계,
혼잡 회피 단계,
혼잡 제어 알고리즘,
수신기 윈도,
슬로우 스타트 ACK 응답 빈도,
혼잡 회피 ACK 응답 빈도,
빠른 복구 ACK 응답 빈도,
정상 전송 ACK 응답 빈도, 또는
최대 패킷 길이
의 항목 중 하나 이상을 포함한다.
실시 예의 구현 원리 및 기술적 효과는 도 1에 도시된 실시 예와 유사하며, 상세한 설명은 여기서 다시 기술되지 않는다.
도 11은 본 발명에 따른 제1 디바이스의 실시 예 1의 개략적인 구조도이다. 도 11에 도시된 바와 같이, 본 실시 예의 제1 디바이스는 결정 모듈(1101), 수정 모듈(1102) 및 생성 모듈(1103)을 포함할 수 있다. 결정 모듈(1101)은 데이터 스트림 정보에 따라, 데이터 스트림 정보에 대응하는 데이터 스트림의 데이터 트랜스퍼 프로토콜 TCP 파라미터가 수정되어야 하는지를 결정하도록 구성되며, 데이터 스트림 정보는 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 서비스 정보 또는 네트워크 상태 정보 중 적어도 하나를 포함한다.
수정 모듈(1102)은 결정 모듈이 TCP 파라미터가 수정되어야 하는 것으로 결정하면, TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하도록 구성된다.
생성 모듈(1103)은 TCP 파라미터의 수정 결과를 생성하도록 구성된다.
선택적으로, 제1 디바이스는,
데이터 트랜스퍼 프로토콜 협상 요청 메시지를 제2 디바이스로 송신하도록 구성된 송신 모듈(1104) -
제2 디바이스에 의해 송신된 피드백 메시지를 수신하도록 구성된 수신 모듈 (1105)을 더 포함하며,
데이터 트랜스퍼 프로토콜 협상 요청 메시지는 수정된 TCP 파라미터를 포함하고, 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 수정된 TCP 파라미터가 미리 설정된 수정 조건을 만족하는 지의 여부를 결정하도록 제2 디바이스에게 요청하는 데 사용되며,
생성 모듈(1103)은 구체적으로, 피드백 메시지에 따라 TCP 파라미터의 수정 결과를 생성하도록 구성된다.
선택적으로, 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 데이터 트랜스퍼 프로토콜 패킷이고, 수정된 TCP 파라미터는 데이터 트랜스퍼 프로토콜 패킷의 옵션으로 사용된다.
선택적으로, 수정 모듈(1102)은 구체적으로, 데이터 스트림에 대응하는 제1 소켓을 생성하고; 그리고 제1 소켓에 대응하는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 사용하여 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하도록 구성된다.
선택적으로, 데이터 트랜스퍼 프로토콜 수정 인터페이스는, 일반 소켓 소켓 프로그래밍 인터페이스와 새로운 애플리케이션 프로그래밍 인터페이스(API)를 포함한다.
선택적으로, TCP 파라미터는,
초기 혼잡 윈도,
타임아웃 후의 재전송을 위한 혼잡 윈도,
빠른 복구를 위한 혼잡 윈도,
슬로우 스타트 문턱값,
타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값,
빠른 복구를 위한 혼잡 윈도 문턱값
슬로우 스타트 단계,
혼잡 회피 단계,
혼잡 제어 알고리즘,
수신기 윈도,
슬로우 스타트 ACK 응답 빈도,
혼잡 회피 ACK 응답 빈도,
빠른 복구 ACK 응답 빈도,
정상 전송 ACK 응답 빈도, 또는
최대 패킷 길이
의 항목 중 하나 이상을 포함한다.
본 실시 예에서, 제1 디바이스는 도 1에 도시된 방법 실시 예의 기술적 해결 방안을 수행하도록 구성될 수 있다. 제1 디바이스의 구현 원리 및 기술적 효과는 도 1에 도시된 실시 예와 유사하며, 상세한 설명은 여기서 다시 기술되지 않는다.
도 12는 본 발명의 제2 디바이스의 제1 실시 예의 개략적인 구조도이다. 도 12에 도시된 바와 같이, 본 실시 예의 제2 디바이스는 수신 모듈(1201), 처리 모듈(1202), 및 송신 모듈(1203)을 포함할 수 있다. 수신 모듈(1201)은 제1 디바이스에 의해 송신된 데이터 트랜스퍼 프로토콜 협상 요청 메시지를 수신하도록 구성되며, 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 제1 디바이스에 의해 수정된 TCP 파라미터를 포함하고; 처리 모듈(1202)은 수정된 TCP 파라미터가 미리 설정된 수정 조건을 만족시키는지를 결정하도록 구성되며; 송신 모듈(1203)은 피드백 메시지를 생성하고, 피드백 메시지를 제1 디바이스로 송신하도록 구성된다.
선택적으로, 송신 모듈(1203)은 추가로, 제1 디바이스가 데이터 스트림 정보에 따라, 데이터 스트림 정보에 대응하는 데이터 스트림의 데이터 트랜스퍼 프로토콜 TCP 파라미터가 수정되어야 하는지를 결정하도록, 제2 디바이스에 대한 정보를 제1 디바이스에 미리 송신하도록 구성된다.
선택적으로, TCP 파라미터는,
초기 혼잡 윈도,
타임아웃 후의 재전송을 위한 혼잡 윈도,
빠른 복구를 위한 혼잡 윈도,
슬로우 스타트 문턱값,
타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값,
빠른 복구를 위한 혼잡 윈도 문턱값
슬로우 스타트 단계,
혼잡 회피 단계,
혼잡 제어 알고리즘,
수신기 윈도,
슬로우 스타트 ACK 응답 빈도,
혼잡 회피 ACK 응답 빈도,
빠른 복구 ACK 응답 빈도,
정상 전송 ACK 응답 빈도, 또는
최대 패킷 길이
의 항목 중 하나 이상을 포함한다.
본 실시 예에서, 제2 디바이스는 도 10에 도시된 방법 실시 예의 기술적 해결 방안을 수행하도록 구성될 수 있다. 제2 디바이스의 구현 원리 및 기술적 효과는 도 10에 도시된 실시 예와 유사하며, 상세한 설명은 생략한다.
당업자는 방법 실시 예의 모든 단계 또는 일부가 관련 하드웨어를 지시하는 프로그램에 의해 구현될 수 있다는 것을 이해할 수 있다. 프로그램은 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 프로그램이 실행될 때, 방법 실시 예들의 단계들이 수행된다. 전술한 기억 매체는, ROM, RAM, 자기 디스크, 광 디스크 등의 프로그램 코드를 기억할 수 있는 임의 매체를 포함한다.
마지막으로, 전술한 실시 예는 단지 본 발명의 기술적 해결방안을 설명하기 위한 것이며, 본 발명을 제한하기 위한 것이 아님을 주목해야 한다. 본 발명은 전술한 실시 예를 참조하여 상세하게 설명되었지만, 당업자는 본 발명의 실시 예의 기술적 해결 방안의 범위를 벗어나지 않고, 전술한 실시 예에서 기술된 기술적 해결방안을 수정하거나 또는 그 일부 또는 모든 기술적 특징을 균등하게 대체할 수 있음을 이해해야 한다.

Claims (14)

  1. 제1 디바이스가, 데이터 스트림 정보에 따라, 상기 데이터 스트림 정보에 대응하는 데이터 스트림의 데이터 트랜스퍼 프로토콜(transfer protocol) TCP 파리미터가 수정(modify)되어야 하는지를 결정하는 단계;
    상기 TCP 파라미터가 수정되어야 하는 것으로 결정되면, 상기 제1 디바이스가, 상기 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계; 및
    상기 제1 디바이스가, 상기 TCP 파라미터의 수정 결과를 생성하는 단계
    를 포함하며,
    상기 데이터 스트림 정보는 상기 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 서비스 정보, 또는 네트워크 상태(status) 정보 중 적어도 하나를 포함하는, 데이터 전송 방법.
  2. 제1항에서,
    상기 제1 디바이스가, 상기 TCP 파라미터의 수정 결과를 생성하는 단계 이전에,
    상기 제1 디바이스가, 데이터 트랜스퍼 프로토콜 협상 요청 메시지를 상기 제2 디바이스로 송신하는 단계
    를 더 포함하며,
    상기 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 상기 수정된 TCP 파라미터를 포함하고, 상기 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 상기 수정된 TCP 파라미터가 미리 설정된 수정 조건을 만족하는지를 결정하도록 상기 제2 디바이스에게 요청하는 데 사용되며,
    상기 제1 디바이스가, 상기 TCP 파라미터의 수정 결과를 생성하는 단계는,
    상기 제1 디바이스가, 상기 제2 디바이스에 의해 송신된 피드백 메시지를 수신하고, 상기 피드백 메시지에 따라 상기 TCP 파라미터의 수정 결과를 생성하는 단계
    를 포함하는, 데이터 전송 방법.
  3. 제2항에서,
    상기 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 데이터 트랜스퍼 프로토콜 패킷이고, 상기 수정된 TCP 파라미터는 상기 데이터 트랜스퍼 프로토콜 패킷의 옵션(option)으로 사용되는, 데이터 전송 방법.
  4. 제1항 내지 제3항 중 어느 한 항에서,
    상기 제1 디바이스가, 상기 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하는 단계는,
    상기 제1 디바이스가, 상기 데이터 스트림에 대응하는 제1 소켓(socket)을 생성하는 단계; 및
    상기 제1 디바이스가, 상기 제1 소켓에 대응하는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 사용하여 상기 TCP 파라미터를 수정하여 상기 수정된 TCP 파라미터를 획득하는 단계
    를 포함하는, 데이터 전송 방법.
  5. 제4항에서,
    상기 데이터 트랜스퍼 프로토콜 수정 인터페이스는,
    일반(general) 소켓 소켓 프로그래밍 인터페이스와 새로운 애플리케이션 프로그래밍 인터페이스(API)를 포함하는, 데이터 전송 방법.
  6. 제1항 내지 제5항 중 어느 한 항에서,
    상기 TCP 파라미터는,
    초기 혼잡(congestion) 윈도,
    타임아웃(timeout) 후의 재전송을 위한 혼잡 윈도,
    빠른(fast) 복구(recovery)를 위한 혼잡 윈도,
    슬로우 스타트 문턱값(start threshold),
    타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값,
    빠른 복구를 위한 혼잡 윈도 문턱값
    슬로우 스타트 단계(step),
    혼잡 회피(avoidance) 단계,
    혼잡 제어 알고리즘,
    수신기 윈도,
    슬로우 스타트 ACK 응답 빈도(frequency),
    혼잡 회피 ACK 응답 빈도,
    빠른 복구 ACK 응답 빈도,
    정상(normal) 전송 ACK 응답 빈도, 또는
    최대 패킷 길이
    의 항목(item)중 하나 이상을 포함하는, 데이터 전송 방법.
  7. 데이터 스트림 정보에 따라, 상기 데이터 스트림 정보에 대응하는 데이터 스트림의 데이터 트랜스퍼 프로토콜 TCP 파라미터가 수정되어야 하는지를 결정하도록 구성된, 결정 모듈;
    상기 TCP 파라미터가 수정되어야 하는 것으로 결정되면, 상기 TCP 파라미터를 수정하여 수정된 TCP 파라미터를 획득하도록 구성된, 수정 모듈; 및
    상기 TCP 파라미터의 수정 결과를 생성하도록 구성된, 생성 모듈
    을 포함하며,
    상기 데이터 스트림 정보는 상기 제1 디바이스에 대한 정보, 제2 디바이스에 대한 정보, 서비스 정보, 또는 네트워크 상태 정보 중 적어도 하나를 포함하는, 제1 디바이스.
  8. 제7항에서,
    데이터 트랜스퍼 프로토콜 협상 요청 메시지를 제2 단말로 송신하도록 구성된, 송신 모듈; 및
    상기 제2 단말에 의해 송신된 피드백 메시지를 수신하도록 구성된, 수신 모듈
    을 더 포함하고,
    상기 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 상기 수정된 TCP 파라미터를 포함하고, 상기 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 상기 수정된 TCP 파라미터가 미리 설정된 수정 조건을 만족하는지를 결정하도록 상기 제2 단말에게 요청하는 데 사용되며,
    상기 생성 모듈은 구체적으로,
    상기 피드백 메시지에 따라 상기 TCP 파라미터의 수정 결과를 생성하도록 구성되는, 제1 디바이스.
  9. 제8항에서,
    상기 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 데이터 트랜스퍼 프로토콜 패킷이고, 상기 수정된 TCP 파라미터는 상기 데이터 트랜스퍼 프로토콜 패킷의 옵션으로 사용되는, 제1 디바이스.
  10. 제7항 내지 제9항 중 어느 한 항에서,
    상기 수정 모듈은 구체적으로,
    상기 데이터 스트림에 대응하는 제1 소켓을 생성하고; 그리고
    상기 제1 소켓에 대응하는 데이터 트랜스퍼 프로토콜 수정 인터페이스를 사용하여 상기 TCP 파라미터를 수정하여 상기 수정된 TCP 파라미터를 획득하도록 구성되는, 제1 디바이스.
  11. 제10항에서,
    상기 데이터 트랜스퍼 프로토콜 수정 인터페이스는, 일반 소켓 소켓 프로그래밍 인터페이스와 새로운 애플리케이션 프로그래밍 인터페이스(API)를 포함하는, 제1 디바이스.
  12. 제9항 내지 제11항 중 어느 한 항에서,
    상기 TCP 파라미터는,
    초기 혼잡 윈도,
    타임아웃 후의 재전송을 위한 혼잡 윈도,
    빠른 복구를 위한 혼잡 윈도,
    슬로우 스타트 문턱값,
    타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값,
    빠른 복구를 위한 혼잡 윈도 문턱값
    슬로우 스타트 단계,
    혼잡 회피 단계,
    혼잡 제어 알고리즘,
    수신기 윈도,
    슬로우 스타트 ACK 응답 빈도,
    혼잡 회피 ACK 응답 빈도,
    빠른 복구 ACK 응답 빈도,
    정상 전송 ACK 응답 빈도, 또는
    최대 패킷 길이
    의 항목 중 하나 이상을 포함하는, 제1 디바이스.
  13. 제1 디바이스에 의해 송신된 데이터 트랜스퍼 프로토콜 협상 요청 메시지를 수신하도록 구성된, 수신 모듈 - 상기 데이터 트랜스퍼 프로토콜 협상 요청 메시지는 상기 제1 디바이스에 의해 수정된 TCP 파라미터를 포함함 -;
    상기 수정된 TCP 파라미터가 미리 설정된 수정 조건을 만족하는지를 결정하도록 구성된, 처리 모듈; 및
    피드백 메시지를 생성하고, 상기 피드백 메시지를 상기 제1 디바이스로 송신하도록 구성된, 송신 모듈
    을 포함하는 제2 디바이스.
  14. 제13항에서,
    상기 TCP 파라미터는,
    초기 혼잡 윈도,
    타임아웃 후의 재전송을 위한 혼잡 윈도,
    빠른 복구를 위한 혼잡 윈도,
    슬로우 스타트 문턱값,
    타임아웃 후의 재전송을 위한 슬로우 스타트 문턱값,
    빠른 복구를 위한 혼잡 윈도 문턱값
    슬로우 스타트 단계,
    혼잡 회피 단계,
    혼잡 제어 알고리즘,
    수신기 윈도,
    슬로우 스타트 ACK 응답 빈도,
    혼잡 회피 ACK 응답 빈도,
    빠른 복구 ACK 응답 빈도,
    정상 전송 ACK 응답 빈도, 또는
    최대 패킷 길이
    의 항목 중 하나 이상을 포함하는, 제2 디바이스.
KR1020177019590A 2014-12-19 2015-09-01 데이터 전송 방법 및 장치 KR102061772B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410799680.8A CN105763474B (zh) 2014-12-19 2014-12-19 数据传输方法和装置
CN201410799680.8 2014-12-19
PCT/CN2015/088794 WO2016095568A1 (zh) 2014-12-19 2015-09-01 数据传输方法和装置

Publications (2)

Publication Number Publication Date
KR20170097129A true KR20170097129A (ko) 2017-08-25
KR102061772B1 KR102061772B1 (ko) 2020-01-02

Family

ID=56125840

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177019590A KR102061772B1 (ko) 2014-12-19 2015-09-01 데이터 전송 방법 및 장치

Country Status (6)

Country Link
US (1) US10560382B2 (ko)
EP (1) EP3226507B1 (ko)
JP (1) JP6644791B2 (ko)
KR (1) KR102061772B1 (ko)
CN (1) CN105763474B (ko)
WO (1) WO2016095568A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10165530B2 (en) * 2016-03-22 2018-12-25 Christoph RULAND Verification of time information transmitted by time signals or time telegrams
US10848602B2 (en) * 2016-07-08 2020-11-24 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for implementing congestion control negotiation
CN106385376B (zh) * 2016-08-31 2019-06-07 孙广路 一种基于连续化模型的网络拥塞控制方法
US10419354B2 (en) * 2017-01-27 2019-09-17 Verizon Patent And Licensing Inc. Congestion avoidance over a transmission control protocol (TCP) flow that involves one or more devices using active queue management (AQM), based on one or more TCP state conditions
US11871265B2 (en) 2018-01-18 2024-01-09 Samsung Electronics Co., Ltd Method and an electronic device for dynamically controlling TCP congestion window
CN110912831B (zh) * 2018-09-17 2023-04-18 中兴通讯股份有限公司 Tcp传输方法、装置及存储介质
US11122019B2 (en) * 2019-09-13 2021-09-14 Oracle International Corporation Systems and methods for client collaborated migration of live TLS connection
CN112866133B (zh) * 2019-11-26 2023-07-28 华为技术有限公司 用于获取共用最大分段大小mss的方法及装置
US11329922B2 (en) * 2019-12-31 2022-05-10 Opanga Networks, Inc. System and method for real-time mobile networks monitoring
CN111817886B (zh) * 2020-06-29 2023-12-26 新华三信息安全技术有限公司 一种获取管理对象数据的方法及设备
CN113873571A (zh) * 2020-06-30 2021-12-31 华为技术有限公司 一种拥塞控制方法及相应设备
CN112822230B (zh) * 2020-12-28 2022-03-25 南京大学 一种基于概率的发送端初始速率设置方法和系统
CN115150307B (zh) * 2022-06-30 2023-12-22 珠海天融信网络安全技术有限公司 采集频率安全检测的方法、装置、存储介质及电子设备

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09214547A (ja) * 1996-01-30 1997-08-15 Nec Eng Ltd パケット通信方式及びそのウィンドウサイズ変更方式
US6381215B1 (en) * 1998-06-29 2002-04-30 Microsoft Corporation Method and computer program product for efficiently and reliably sending small data messages from a sending system to a large number of receiving systems
JP2001189754A (ja) * 1999-12-28 2001-07-10 Toshiba Corp QoS提供方式、ルータ装置、QoSサーバ、ユーザ端末及びQoS提供方法
JP4126928B2 (ja) 2002-02-28 2008-07-30 日本電気株式会社 プロキシサーバ及びプロキシ制御プログラム
US7310682B2 (en) * 2004-01-08 2007-12-18 Lsi Corporation Systems and methods for improving network performance
US7478160B2 (en) * 2004-04-30 2009-01-13 International Business Machines Corporation Method and apparatus for transparent negotiations
JP4642855B2 (ja) * 2004-10-29 2011-03-02 株式会社エヌ・ティ・ティ・ドコモ 異なるプロトコル実装間の切替えを行う方法および装置
CN1764184B (zh) * 2005-10-20 2010-07-07 中兴通讯股份有限公司 一种实时流媒体通讯传输方法
US20070226347A1 (en) * 2006-03-23 2007-09-27 Chu Hsiao-Keng J Method and apparatus for dynamically changing the TCP behavior of a network connection
US20070226375A1 (en) * 2006-03-23 2007-09-27 Chu Hsiao-Keng J Plug-in architecture for a network stack in an operating system
CN101102157B (zh) * 2006-07-03 2011-06-22 华为技术有限公司 发送终端和数据发送方法
JP4898822B2 (ja) * 2006-10-05 2012-03-21 株式会社エヌ・ティ・ティ・ドコモ 通信システム、通信装置、通信方法
JP2008118281A (ja) * 2006-11-01 2008-05-22 Fujitsu Ltd 通信装置
KR100846344B1 (ko) * 2007-01-05 2008-07-15 삼성전자주식회사 이동통신 시스템에서 전송 제어 프로토콜의 전송 지연을줄이기 위한 장치 및 방법
CN101146124B (zh) * 2007-08-30 2012-02-08 中兴通讯股份有限公司 基于服务质量的分组数据协议配置参数的选择装置和方法
JP2009152953A (ja) * 2007-12-21 2009-07-09 Nec Corp ゲートウェイ装置およびパケット転送方法
JP4969483B2 (ja) * 2008-02-22 2012-07-04 三菱電機株式会社 無線通信装置及び無線通信方法及びプログラム
JP5014281B2 (ja) 2008-07-30 2012-08-29 パナソニック株式会社 Tcp送信制御装置及びtcp送信制御方法
AU2009337511A1 (en) * 2009-01-16 2011-09-08 Mainline Net Holdings Limited Maximizing bandwidth utilization in networks with high latencies and packet drops using transmission control protocol
CN101662842B (zh) * 2009-10-09 2012-01-11 天津大学 一种应用于无线自组织网络的tcp参数调节方法
CN102404187A (zh) * 2010-09-13 2012-04-04 华为技术有限公司 拥塞控制方法和系统以及网络设备
US8873385B2 (en) * 2010-12-07 2014-10-28 Microsoft Corporation Incast congestion control in a network
EP2530898B1 (en) * 2011-06-03 2014-02-12 Alcatel Lucent Method and apparatus for mitigating buffering delay at a network edge
JP5923376B2 (ja) * 2012-04-27 2016-05-24 株式会社日立製作所 Tcp中継装置
US9300766B2 (en) * 2012-07-31 2016-03-29 At&T Intellectual Property I, L.P. Method and apparatus for initiating and maintaining sessions between endpoints
JP2014057149A (ja) * 2012-09-11 2014-03-27 Toshiba Corp 通信装置、中継装置および通信方法
US8711690B2 (en) * 2012-10-03 2014-04-29 LiveQoS Inc. System and method for a TCP mapper
KR101419437B1 (ko) 2012-11-15 2014-07-14 (주)씨디네트웍스 데이터 가속 알고리즘을 선택하여 콘텐츠를 제공하는 방법 및 장치
CN103079232A (zh) * 2013-01-16 2013-05-01 大唐移动通信设备有限公司 一种确定报文的最大容量的方法及装置
US20140281018A1 (en) * 2013-03-13 2014-09-18 Futurewei Technologies, Inc. Dynamic Optimization of TCP Connections
JP6015509B2 (ja) * 2013-03-19 2016-10-26 富士通株式会社 パケット解析プログラム、パケット解析方法、パケット解析装置、およびパケット解析システム
US20140355623A1 (en) * 2013-06-03 2014-12-04 Futurewei Technologies, Inc. Transmission Control Protocol (TCP) Connection Control Parameter In-Band Signaling
CN103647759B (zh) * 2013-11-26 2017-11-24 华为技术有限公司 一种mss的协商方法及装置
US9716667B2 (en) * 2014-08-29 2017-07-25 Intel IP Corporation Communication terminal and method for controlling a data transmission

Also Published As

Publication number Publication date
JP6644791B2 (ja) 2020-02-12
CN105763474B (zh) 2019-10-25
WO2016095568A1 (zh) 2016-06-23
KR102061772B1 (ko) 2020-01-02
EP3226507A1 (en) 2017-10-04
CN105763474A (zh) 2016-07-13
US20170289041A1 (en) 2017-10-05
EP3226507B1 (en) 2020-02-05
EP3226507A4 (en) 2017-10-25
US10560382B2 (en) 2020-02-11
JP2018500827A (ja) 2018-01-11

Similar Documents

Publication Publication Date Title
KR102061772B1 (ko) 데이터 전송 방법 및 장치
JP6526825B2 (ja) 伝送制御プロトコルtcpデータパケットを送信する方法及び装置、並びにシステム
JP5020076B2 (ja) 低頻度ackのシステムに適した高性能tcp
US11477130B2 (en) Transmission control method and apparatus
JP6319608B2 (ja) 伝送制御方法、装置およびシステム
US9641650B2 (en) TCP proxy server
US7035291B2 (en) TCP transmission acceleration
EP3075110B1 (en) Controlling a transmission control protocol window size
EP1568180B1 (en) A method for enhancing transmission quality of streaming media
US9167473B2 (en) Communication processing method, apparatus and gateway device
JP2006222960A (ja) マルチtcp確認応答を用いたtcp輻輳制御システム及びその方法
KR102352428B1 (ko) 단말 및 그 통신 방법
CN104580171B (zh) Tcp协议的传输方法、装置和系统
KR101231793B1 (ko) Tcp 세션 최적화 방법 및 네트워크 노드
Petrov et al. Novel Slow Start Algorithm
JP2019201249A (ja) 通信装置、通信装置の制御方法、およびプログラム

Legal Events

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