KR102030574B1 - 전송 제어 프로토콜(tcp) 데이터 패킷을 송신하는 방법 및 장치 그리고 시스템 - Google Patents
전송 제어 프로토콜(tcp) 데이터 패킷을 송신하는 방법 및 장치 그리고 시스템 Download PDFInfo
- Publication number
- KR102030574B1 KR102030574B1 KR1020177027525A KR20177027525A KR102030574B1 KR 102030574 B1 KR102030574 B1 KR 102030574B1 KR 1020177027525 A KR1020177027525 A KR 1020177027525A KR 20177027525 A KR20177027525 A KR 20177027525A KR 102030574 B1 KR102030574 B1 KR 102030574B1
- Authority
- KR
- South Korea
- Prior art keywords
- congestion window
- data packet
- tcp
- round trip
- trip time
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 109
- 230000005540 biological transmission Effects 0.000 title claims abstract description 73
- 230000000875 corresponding effect Effects 0.000 claims description 31
- 230000008569 process Effects 0.000 claims description 27
- 238000011084 recovery Methods 0.000 claims description 25
- 238000004891 communication Methods 0.000 claims description 17
- 230000009467 reduction Effects 0.000 claims description 8
- 230000002596 correlated effect Effects 0.000 claims description 7
- 230000001419 dependent effect Effects 0.000 claims description 2
- 239000003795 chemical substances by application Substances 0.000 description 172
- 230000004048 modification Effects 0.000 description 16
- 238000012986 modification Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 11
- 230000007423 decrease Effects 0.000 description 10
- 238000001514 detection method Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000001276 controlling effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003556 assay Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003090 exacerbative effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
본 발명의 실시예는 전송 제어 프로토콜(Transmission Control Protocol, TCP) 데이터 패킷을 송신하는 방법 및 장치 그리고 시스템을 개시한다. 상기 송신하는 방법은: TCP 데이터 패킷을 송신하는 제1 왕복 시간(round-trip time)을 획득하는 단계; 제2 왕복 시간을 결정하는 단계; 제1 왕복 시간이 제2 왕복 시간보다 길면, 제1 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하거나, 또는 제1 왕복 시간이 제2 왕복 시간보다 짧으면, 제2 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하는 단계; 및 제1 혼잡 윈도를 사용해서 TCP 데이터 패킷을 송신하는 단계를 포함한다. 본 발명에서 개시된 기술적 솔루선에서, 제1 왕복 시간이 획득될 때 존재하는 현재의 혼잡 윈도는 한 번에 제1 혼잡 윈도로 성장하므로, 처리량에 대한 서비스의 요구가 더 잘 충족될 수 있으며, 네트워크 대역폭은 더 효과적으로 활용될 수 있다.
Description
이 출원은 2015년 3월 2일에 중국특허청에 출원되고 발명의 명칭이 "METHOD AND APPARATUS FOR SENDING TRANSMISSION CONTROL PROTOCOL TCP DATA PACKET AND SYSTEM"인 중국특허출원 No. 201510093011.3에 대한 우선권을 주장하는 바이며, 상기 문헌은 본 명세서에 참조로서 원용되어 포함된다.
본 발명의 실시예는 네트워크 기술 분야에 관한 것이며, 특히 전송 제어 프로토콜(Transmission Control Protocol, TCP) 데이터 패킷을 송신하는 방법 및 장치 그리고 시스템에 관한 것이다.
네트워크 혼잡(congestion)은 지나치게 많은 양의 패킷이 네트워크에서 전송되지만 그 네트워크에 포워딩 노드를 저장하기 위한 자원은 제한되어 있어 네트워크 전송 성능이 저하된다는 것을 의미한다. 네트워크 혼잡이 발생하면, 데이터 손실, 지연 증가, 또는 처리량 감소와 같은 현상이 일어난다. 네트워크 혼잡이 심하면, 혼잡 붕괴가 야기된다. 고속 처리 속도의 응용 프로그램(예를 들어, 온라인 오디오 및 비디오 재생 응용 프로그램)의 트래픽 양이 급격히 증가함에 따라 네트워크를 사용하여 전송해야 하는 데이터 양도 급격히 증가하고, 따라서 네트워크는 높은 처리량을 유지해야 한다. 네트워크 자원을 조정하는 데 사용되는 혼잡 제어 수단이 부적절한 경우, 네트워크 대역폭이 충분하더라도 높은 처리 속도의 응용 프로그램을 효과적으로 활용할 수 없다.
전송 제어 프로토콜(Transmission Control Protocol, TCP)은 신뢰할 수 있는 연결-지향 및 바이트-스트림-기반 전송 계층 통신 프로토콜이며 IETF의 RFC 793에 정의되어 있다. TCP가 등장한 이래로 많은 연구자들이 부하가 네트워크의 최대 성능을 초과할 수 없도록 자가-조정 및 복구 메커니즘을 설정할 목적으로 일련의 TCP 혼잡 제어 메커니즘을 제안하여 왔다. TCP 혼잡 제어에는 혼잡 회피 및 혼잡 복구가 포함된다. 혼잡 회피는 가능한 한 네트워크가 혼잡 상태에 들어가는 것을 방지하고 네트워크가 고 처리량 및 저 지연 상태에서 계속 작동할 수 있게 하는 방지 메커니즘이다. 혼잡 복구는 혼잡 상태의 네트워크를 복구하고 혼잡이 이미 발생하였더라도 네트워크가 고 처리량 및 저 지연 상태로 다시 들어가도록 하는 복구 메커니즘이다.
지금까지, TCP 혼잡 제어의 성숙한 구현 방식에서, TCP 패킷의 처리량을 제어하기 위해 혼잡 윈도(congestion window, CWND로 약칭)의 크기가 조정된다. 혼잡 윈도의 크기는 하나의 왕복 시간(Round Trip Time, RTT) 내에 송신될 수 있는 TCP 데이터 패킷의 최대량을 말한다. 혼잡 윈도의 크기가 클수록 데이터 전송률이 높아지고 처리량이 높아지지만 네트워크 혼잡이 발생할 가능성도 높아진다. 반대로, 혼잡 윈도의 크기가 작을수록 데이터 전송 속도가 낮고 처리량이 낮으며 네트워크 혼잡이 발생할 가능성도 낮다. 예를 들어, 혼잡 윈도가 1 최대 세그먼트 크기(Maximum Segment Size, MSS로 약칭)인 경우, 하나의 패킷이 전송될 때마다 수신자가 확인 응답을 보내야 하고 그런 다음 두 번째 패킷을 보낼 수 있다. 이것은 네트워크 혼잡을 확실히 방지하지만 처리량은 매우 낮다. TCP 혼잡 제어는 혼잡을 야기하지 않고 처리량을 최대화하기 위해 조정을 통해 최적의 혼잡 윈도 값을 얻는 것이다. 현재, 처리량에 대한 요구가 증가함에 따라 이미 Reno 알고리즘, CUBIC 알고리즘 등 여러 가지 성숙한 윈도 조정 알고리즘이 있다.
예를 들어, Reno 알고리즘은 가장 널리 사용되고 성숙한 TCP 혼잡 제어 알고리즘이다. 이 알고리즘에 포함되어 있는 느린 시작 메커니즘, 혼잡 회피 메커니즘, 빠른 재전송 메커니즘 및 빠른 복구 메커니즘은 많은 기존 알고리즘의 기반이다. Reno 알고리즘의 연산 메커니즘에서는 동적 균형을 유지하기 위해 TCP 데이터 패킷의 특정 양의 손실을 주기적으로 생성해야 하며 AIMD(전체 명칭: Additive Increase Multiplicative Decrease) 메커니즘(즉, 가산성 증가, 승수 감소)도 제공된다. 하나의 TCP 데이터 패킷의 손실로 인한 혼잡 윈도의 감소는 비교적 오랜 시간 동안 복구되어야 하고, 대역폭 이용률은 높지 않다. 특히, 혼잡 윈도가 큰 경우, 이러한 단점이 더욱 부각된다. Reno 알고리즘의 경우, 하나의 TCP 데이터 패킷의 손실이 감지되면 혼잡 윈도가 즉시 크기가 절반으로 줄어든다. 혼잡 복구 단계에서, 각 혼잡 윈도에서 데이터 전송의 RTT 이후에, 혼잡 윈도는 1 MSS만큼 증가하고(즉, 증가는 1 MSS이다), 그리고 TCP 데이터 패킷이 손실되었을 때 존재하는 혼잡 윈도의 크기의 절반에서 복구를 수행하는 데 비교적 오랜 시간이 걸린다. 예를 들어, 네트워크 대역폭이 100 Mbit/s이고 지연 시간이 100 밀리초이면, 처리량이 네트워크 대역폭에 가까워질 때 혼잡 윈도 값은 약 863 MSS이며 Reno 알고리즘을 사용하면 431 라운드의 RTT가 필요하므로, TCP 데이터 패킷이 손실되었을 때 존재하는 혼잡 윈도를 그 크기의 절반에서 복구할 수 있으며 약 43.1초가 소요된다. CUBIC 알고리즘은 Reno 알고리즘과 비교하여 혼잡 윈도의 성장 면에서 개선이 이루어졌다. CUBIC 알고리즘에서는 TCP 데이터 패킷이 손실되었을 때 존재하는 혼잡 윈도가 기록된다. 기록된 혼잡 윈도에 도달하지 않으면, 윈도는 느린 시작 시의 것과 유사한 지수 방식으로 성장한다. 기록된 혼잡 윈도에 도달하려 할 때, 혼잡 윈도의 증가 단계 크기는 크게 감소한다. 혼잡 윈도의 감소 이후에 획득된 증가 단계 크기가 일정 기간 동안 유지된 후, 혼잡 윈도의 증가 단계 크기는 거의 지수 급성장으로 재조정된다. 가끔 일정 기간만 지속되는 경우, CUBIC 알고리즘에서, 혼잡 윈도가 여전히 일정 기간 후에도 급성장할 때, 네트워크 혼잡이 다시 발생하면서 더 많은 TCP 데이터 패킷이 필연적으로 손실되어 네트워크 상태가 더욱 악화됩니다.
그러므로 TCP 혼잡 제어를 위한 (Reno 알고리즘 및 CUBIC 알고리즘을 포함하는) 2개의 알고리즘은 다음과 같은 동일한 단점을 가진다: 혼잡 윈도는 미리 설정된 고정 값에 따라 성장하고, 현재의 바람직한 네트워크 대역폭은 효과적으로 활용될 수 없으며, 실제의 네트워크 상태에 모순되는 조정 정책조차도 혼잡 윈도 조정 중에 사용될 수 있으며, 이에 의해 처리량에 대한 애플리케이션의 요구 사항에 영향을 미친다.
이를 감안하여, 본 발명의 실시예는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법, 장치 및 시스템을 제공하여, TCP 데이터 패킷을 송신하는 왕복 시간 및 서비스에 대해 획득될 것으로 예상되는 처리량에 따라 혼잡 윈도를 조정하고, 그 조정된 혼잡 윈도를 사용해서 TCP 데이터 패킷의 송신을 제어하며, 이에 의해 서비스의 처리량을 가능한 한 충족시킨다.
제1 관점에 따라, 본 발명의 실시예는 전송 제어 프로토콜(Transmission Control Protocol, TCP) 데이터 패킷을 송신하는 방법을 제공하며, 상기 방법은:
네트워크에서 TCP 데이터 패킷을 송신하는 제1 왕복 시간(round-trip time)을 획득하는 단계;
제2 왕복 시간을 결정하는 단계 - 제2 왕복 시간은 제1 알고리즘에 따라 결정되는 혼잡 윈도와 제2 알고리즘에 따라 결정되는 혼잡 윈도가 동일한 크기를 가질 때 존재하는 왕복 시간이며, 제1 알고리즘에서 혼잡 윈도의 증가 단계 크기는 제1 왕복 시간에 따라 결정되고, 제2 알고리즘에서 혼잡 윈도의 증가 단계 크기는 제1 왕복 시간 및 목표 처리량에 따라 결정되며, 상기 목표 처리량은 TCP 데이터 패킷에 대응하는 서비스에 대해 획득될 것으로 예상되는 처리량임 - ;
제1 왕복 시간이 제2 왕복 시간보다 길면, 제1 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하거나, 또는 제1 왕복 시간이 제2 왕복 시간보다 짧으면, 제2 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하는 단계; 및
제1 혼잡 윈도를 사용해서 TCP 데이터 패킷을 송신하는 단계
를 포함한다.
제1 관점을 참조해서, 제1 가능한 실시 방식에서, 제2 알고리즘에서 결정되는 혼잡 윈도의 증가 단계 크기는 목표 처리량과 양의 상관관계를 가지고 제1 왕복 시간과 음의 상관관계를 가지며, 제1 알고리즘에서 결정되는 혼잡 윈도의 증가 단계 크기는 제1 왕복 시간과 음의 상관관계를 가진다.
제1 관점 또는 제1 관점의 임의의 전술한 가능한 실시 방식을 참조해서, 제2 가능한 실시 방식에서, 상기 목표 처리량은 TCP 데이터 패킷 중 하나의 패킷을 분석하여 획득되는, 서비스의 비트 레이트에 따라 결정된다.
제1 관점의 제2 가능한 실시 방식을 참조해서, 제3 가능한 실시 방식에서, 상기 TCP 데이터 패킷 중 하나의 패킷을 분석하여 획득되는, 서비스의 비트 레이트에 따라 결정되는 목표 처리량을 결정하는 알고리즘은: 상기 목표 처리량이 상기 서비스의 비트 레이트와 확장 계수의 적(product)과 같다는 것이며, 상기 확장 계수는 1보다 크다.
제1 관점 또는 제1 관점의 임의의 전술한 가능한 실시 방식을 참조해서, 제4 가능한 실시 방식에서, 상기 TCP 데이터 패킷을 송신하는 프로세스에서 패킷 손실이 발생하면, 상기 TCP 데이터 패킷을 전송하는 혼잡 윈도를 제3 알고리즘에 따라 제2 혼잡 윈도에 조정하는 단계 - 제2 혼잡 윈도는 TCP 데이터 패킷 상에서 패킷 손실이 발생할 때 존재하는 제3 왕복 시간에 따라 결정되며, TCP 데이터 패킷을 전송하는 혼잡 윈도를 제2 혼잡 윈도로 조정하는 감소 단계 크기는 제3 왕복 시간과 음의 상관관계를 가짐 - ; 및
제2 혼잡 윈도를 사용해서 TCP 데이터 패킷을 송신하는 단계
를 더 포함한다.
제1 관점의 제4 가능한 실시 방식을 참조해서, 제5 가능한 실시 방식에서, 상기 TCP 데이터 패킷을 전송하는 혼잡 윈도를 제3 알고리즘에 따라 제2 혼잡 윈도에 조정하는 단계는 구체적으로:
제3 왕복 시간이 지연 구간의 하한과 같으면, TCP 데이터 패킷 상에서 패킷 손실이 발생할 때 존재하는 혼잡 윈도를 제2 혼잡 윈도로 사용하거나, 또는 제3 왕복 시간이 지연 구간의 상한과 같으면, 미리 설정된 혼잡 윈도를 제2 혼잡 윈도로 사용하는 단계
를 포함하며, 상기 지연 구간의 상한은 네트워크에서 TCP의 재전송 타임아웃(RTO)이며, 상기 지연 구간의 하한은 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간이다.
제1 관점 또는 제1 관점의 임의의 전술한 가능한 실시 방식을 참조해서, 제6 가능한 실시 방식에서, 상기 제1 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하는 것은 구체적으로:
제1 왕복 시간이 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간과 같으면, 혼잡 윈도의 증가 단계 크기의 값으로 고속 복원 값을 사용하여 제1 혼잡 윈도를 획득하는 단계 - 상기 고속 복원 값은 느린 시작의 것과 같은 자릿수(order of magnitude)를 가짐 - ;
제1 왕복 시간이 네트워크에서의 TCP의 재전송 타임아웃(RTO)과 같으면, 혼잡 윈도의 증가 단계 크기의 값으로 하나의 최대 세그먼트 크기(maximum segment size, MSS)를 사용하여 제1 혼잡 윈도를 획득하는 단계; 또는
제1 왕복 시간이 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간과 네트워크에서의 TCP의 재전송 타임아웃(RTO) 간의 구간 내에서 변하면, 혼잡 윈도의 증가 단계 크기의 값을 하나의 MSS와 고속 복원 값 사이에 있도록 하면서 제1 왕복 시간과 음의 상관관계를 가지도록 설정하여 제1 혼잡 윈도를 획득하는 단계
를 포함한다.
제1 관점 또는 제1 관점의 임의의 전술한 가능한 실시 방식을 참조해서, 제7 가능한 실시 방식에서, 상기 제2 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하는 단계는 구체적으로:
상기 목표 처리량 및 제1 왕복 시간에 따라 목표 윈도를 계산하고, 상기 목표 윈도와 네트워크에서의 TCP의 현재의 혼잡 윈도 간의 차이를 혼잡 윈도의 증가 단계 크기의 값으로 사용하여 제1 혼잡 윈도를 결정하는 단계
를 포함한다.
제1 관점 또는 제1 관점의 임의의 전술한 가능한 실시 방식을 참조해서, 제8 가능한 실시 방식에서, 상기 방법은:
상기 네트워크에서 TCP 데이터 패킷을 송신하는 실제 처리량을 검출하는 단계; 및
상기 목표 처리량에 대한 실제 처리량의 비율이 제1 임계값보다 크고, 네트워크에서 TCP 데이터 패킷을 송신하는 제4 왕복 시간과 네트워크가 경량을 부하를 가질 때 검출된 왕복 시간 간의 차이가 제2 임계값보다 작으면, 상기 목표 처리량을 증가시키거나, 또는 상기 목표 처리량에 대한 실제 처리량의 비율이 제3 임계값보다 작고, 제4 왕복 시간과 네트워크가 경량을 부하를 가질 때 검출된 왕복 시간 간의 차이가 제4 임계값보다 크면, 상기 목표 처리량을 감소시키는 단계
를 더 포함한다.
제1 관점 또는 제1 관점의 임의의 전술한 가능한 실시 방식을 참조해서, 제9 가능한 실시 방식에서, 상기 목표 처리량은 목표 처리량 파라미터를 사용해서 TCP 프로토콜 스택에 전달된다.
제2 관점에 따라, 본 발명의 실시예는 전송 제어 프로토콜(Transmission Control Protocol, TCP) 데이터 패킷을 송신하는 장치를 제공하며, 상기 장치는:
네트워크에서 TCP 데이터 패킷을 송신하는 제1 왕복 시간을 획득하고, 제2 왕복 시간을 결정하도록 구성되어 있는 지연 결정 유닛 - 상기 제2 왕복 시간은 제1 알고리즘에 따라 결정되는 혼잡 윈도와 제2 알고리즘에 따라 결정되는 혼잡 윈도가 동일한 크기를 가질 때 존재하는 왕복 시간이며, 제1 알고리즘에서 혼잡 윈도의 증가 단계 크기는 제1 왕복 시간에 따라 결정되고, 제2 알고리즘에서 혼잡 윈도의 증가 단계 크기는 제1 왕복 시간 및 목표 처리량에 따라 결정되며, 상기 목표 처리량은 TCP 데이터 패킷에 대응하는 서비스에 대해 획득될 것으로 예상되는 처리량임 - ;
제1 왕복 시간이 제2 왕복 시간보다 길면, 제1 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하거나, 또는 제1 왕복 시간이 제2 왕복 시간보다 짧으면, 제2 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하도록 구성되어 있는 윈도 조정 유닛; 및
제1 혼잡 윈도를 사용해서 TCP 데이터 패킷을 송신하도록 구성되어 있는 데이터 패킷 송신 유닛
을 포함한다.
제2 관점을 참조해서, 제1 가능한 실시 방식에서, 제2 알고리즘에서 결정되는 혼잡 윈도의 증가 단계 크기는 목표 처리량과 양의 상관관계를 가지고 제1 왕복 시간과 음의 상관관계를 가지며, 제1 알고리즘에서 결정되는 혼잡 윈도의 증가 단계 크기는 제1 왕복 시간과 음의 상관관계를 가진다.
제2 관점 또는 제2 관점의 임의의 전술한 가능한 실시 방식을 참조해서, 제2 가능한 실시 방식에서, 상기 목표 처리량은 TCP 데이터 패킷 중 하나의 패킷을 분석하여 획득되는, 서비스의 비트 레이트에 따라 결정된다.
제2 관점의 제2 가능한 실시 방식을 참조해서, 제3 가능한 실시 방식에서, 상기 TCP 데이터 패킷 중 하나의 패킷을 분석하여 획득되는, 서비스의 비트 레이트에 따라 결정되는 목표 처리량을 결정하는 알고리즘은: 상기 목표 처리량이 상기 서비스의 비트 레이트와 확장 계수의 적(product)과 같다는 것이며, 상기 확장 계수는 1보다 크다.
제2 관점 또는 제2 관점의 임의의 전술한 가능한 실시 방식을 참조해서, 제4 가능한 실시 방식에서, 상기 윈도 조정 유닛은 상기 TCP 데이터 패킷을 송신하는 프로세스에서 패킷 손실이 발생하면, 상기 TCP 데이터 패킷을 전송하는 혼잡 윈도를 제3 알고리즘에 따라 제2 혼잡 윈도에 조정하도록 추가로 구성되어 있으며, 제2 혼잡 윈도는 TCP 데이터 패킷 상에서 패킷 손실이 발생할 때 존재하는 제3 왕복 시간에 따라 결정되며, TCP 데이터 패킷을 전송하는 혼잡 윈도를 제2 혼잡 윈도로 조정하는 감소 단계 크기는 제3 왕복 시간과 음의 상관관계를 가지며,
상기 데이터 패킷 송신 유닛은 제2 혼잡 윈도를 사용해서 TCP 데이터 패킷을 송신하도록 추가로 구성되어 있다.
제2 관점의 제4 가능한 실시 방식을 참조해서, 제5 가능한 실시 방식에서, 상기 윈도 조정 유닛이 TCP 데이터 패킷을 전송하는 혼잡 윈도를 제3 알고리즘에 따라 제2 혼잡 윈도에 조정하도록 추가로 구성되어 있는 것은:
상기 윈도 조정 유닛이, 제3 왕복 시간이 지연 구간의 하한과 같으면, TCP 데이터 패킷 상에서 패킷 손실이 발생할 때 존재하는 혼잡 윈도를 제2 혼잡 윈도로 사용하거나, 또는 제3 왕복 시간이 지연 구간의 상한과 같으면, 미리 설정된 혼잡 윈도를 제2 혼잡 윈도로 사용하도록 추가로 구성되어 있는 것이며, 상기 지연 구간의 상한은 네트워크에서 TCP의 재전송 타임아웃(RTO)이며, 상기 지연 구간의 하한은 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간이다.
제2 관점 또는 제2 관점의 임의의 전술한 가능한 실시 방식을 참조해서, 제6 가능한 실시 방식에서, 상기 윈도 조정 유닛이 제1 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하도록 구성되어 있는 것은 구체적으로:
상기 윈도 조정 유닛이, 제1 왕복 시간이 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간과 같으면, 혼잡 윈도의 증가 단계 크기의 값으로 고속 복원 값을 사용하여 제1 혼잡 윈도를 획득하도록 구성되어 있는 것 - 상기 고속 복원 값은 느린 시작의 것과 같은 자릿수를 가짐 - ;
상기 윈도 조정 유닛이, 제1 왕복 시간이 네트워크에서의 TCP의 재전송 타임아웃(RTO)과 같으면, 혼잡 윈도의 증가 단계 크기의 값으로 하나의 최대 세그먼트 크기(MSS)를 사용하여 제1 혼잡 윈도를 획득하도록 구성되어 있는 것; 또는
상기 윈도 조정 유닛이, 제1 왕복 시간이 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간과 네트워크에서의 TCP의 재전송 타임아웃(RTO) 간의 구간 내에서 변하면, 혼잡 윈도의 증가 단계 크기의 값을 하나의 MSS와 고속 복원 값 사이에 있도록 하면서 제1 왕복 시간과 음의 상관관계를 가지도록 설정하여 제1 혼잡 윈도를 획득하도록 구성되어 있는 것
을 포함한다.
제2 관점 또는 제2 관점의 임의의 전술한 가능한 실시 방식을 참조해서, 제7 가능한 실시 방식에서, 상기 윈도 조정 유닛이 제2 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하도록 구성되어 있는 것은 구체적으로:
상기 윈도 조정 유닛이 상기 목표 처리량 및 제1 왕복 시간에 따라 목표 윈도를 계산하고, 상기 목표 윈도와 네트워크에서의 TCP의 현재의 혼잡 윈도 간의 차이를 혼잡 윈도의 증가 단계 크기의 값으로 사용하여 제1 혼잡 윈도를 결정하도록 구성되어 있는 것이다.
제2 관점 또는 제2 관점의 임의의 전술한 가능한 실시 방식을 참조해서, 제8 가능한 실시 방식에서, 상기 장치는:
상기 네트워크에서 TCP 데이터 패킷을 송신하는 실제 처리량을 검출하도록 구성되어 있는 처리량 검출 유닛; 및
상기 목표 처리량에 대한 실제 처리량의 비율이 제1 임계값보다 크고, 네트워크에서 TCP 데이터 패킷을 송신하는 제4 왕복 시간과 네트워크가 경량을 부하를 가질 때 검출된 왕복 시간 간의 차이가 제2 임계값보다 작으면, 상기 목표 처리량을 증가시키거나, 또는 상기 목표 처리량에 대한 실제 처리량의 비율이 제3 임계값보다 작고, 제4 왕복 시간과 네트워크가 경량을 부하를 가질 때 검출된 왕복 시간 간의 차이가 제4 임계값보다 크면, 상기 목표 처리량을 감소시키도록 구성되어 있는 목표 처리량 조정 유닛
을 더 포함한다.
제2 관점 또는 제2 관점의 임의의 전술한 가능한 실시 방식을 참조해서, 제9 가능한 실시 방식에서, 상기 목표 처리량은 목표 처리량 파라미터를 사용해서 TCP 프로토콜 스택에 전달된다.
제3 관점에 따라, 본 발명의 실시예는 전송 제어 프로토콜(Transmission Control Protocol, TCP) 데이터 패킷을 송신하는 장치를 제공하며, 상기 TCP 데이터 패킷을 송신하는 장치는 프로세서, 메모리 및 네트워크 인터페이스를 포함하고, 상기 프로세서는 버스를 사용해서 상기 메모리 및 상기 네트워크 인터페이스 모두에 연결되며,
상기 메모리는 컴퓨터 실행 명령을 저장하도록 구성되어 있으며, 상기 프로세서는 상기 메모리에 저장되어 있는 컴퓨터 실행 명령을 읽어내어, 제1항 내지 제10항 중 어느 한 항에 따른 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법을 수행한다.
제4 관점에 따라, 본 발명의 실시예는 시스템을 제공하며, 상기 시스템은 서버 및 단말을 포함하며, 상기 서버는 네트워크를 사용해서 상기 단말과 통신 접속 상태에 있으며, 상기 서버는 제2 관점 또는 제2 관점에 기초하는 임의의 전술한 가능한 실시 방식 또는 제3 관점에서 제공하는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 장치이며, 상기 네트워크를 사용해서 상기 단말에 TCP 데이터 패킷을 송신한다.
제5 관점에 따라, 본 발명의 실시예는 시스템을 제공하며, 상기 시스템은 서버, 제1 에이전트 장치 및 단말을 포함하며, 상기 제1 에이전트 장치는 상기 서버 및 상기 단말 모두와 통신 접속 상태에 있으며,
상기 서버는 에이전트로서 작동하는 상기 제1 에이전트 장치를 사용해서 상기 단말에 TCP 데이터 패킷을 송신하도록 구성되어 있으며,
상기 제1 에이전트 장치는 제11항 내지 제21항 중 어느 한 항에 따른 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 장치이며, 상기 서버에 의해 상기 단말에 송신된 TCP 데이터 패킷을 수신하고 상기 서버의 에이전트로서 작동하여 상기 TCP 데이터 패킷을 상기 단말에 송신하도록 구성되어 있다.
제5 관점을 참조해서, 제1 가능한 실시 방식에서, 상기 단말은 목표 처리량 파라미터를 사용해서 단말의 TCP 프로토콜 스택으로부터 제1 에이전트 장치의 TCP 프로토콜 스택에 목표 처리량을 전달하도록 구성되어 있다.
제6 관점에 따라, 본 발명의 실시예는 시스템을 제공하며, 상기 시스템은 서버, 제1 에이전트 장치, 제2 에이전트 장치 및 단말을 포함하며, 상기 제1 에이전트 장치는 상기 서버 및 상기 제2 에이전트 장치 모두와 통신 접속 상태에 있으며,
상기 서버는 에이전트로서 작동하는 상기 제1 에이전트 장치를 사용해서 상기 단말에 TCP 데이터 패킷을 송신하도록 구성되어 있으며,
상기 제1 에이전트 장치는 제2 관점 또는 제2 관점에 기초하는 임의의 전술한 가능한 실시 방식 또는 제3 관점에서 제공하는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 장치이며, 상기 서버에 의해 상기 단말에 송신된 TCP 데이터 패킷을 수신하고 상기 서버의 에이전트로서 작동하여 상기 TCP 데이터 패킷을 상기 제2 에이전트 장치에 송신하도록 구성되어 있으며,
상기 제2 에이전트 장치는 TCP 데이터 패킷을 수신하고 상기 TCP 데이터 패킷을 상기 단말에 포워딩하도록 구성되어 있다.
제6 관점을 참조해서, 제1 가능한 실시 방식에서, 상기 단말은 목표 처리량 파라미터를 사용해서 단말의 TCP 프로토콜 스택으로부터 제2 에이전트 장치의 TCP 프로토콜 스택에 목표 처리량을 전달하도록 구성되어 있으며,
상기 제2 에이전트 장치는 목표 처리량 파라미터를 사용해서 제2 에이전트 장치의 TCP 프로토콜 스택으로부터 제1 에이전트 장치의 TCP 프로토콜 스택에 목표 처리량을 전달하도록 추가로 구성되어 있다.
전술한 솔루션에 의하면, 현재의 네트워크 상태를 반영하는 제1 왕복 시간과 목표 처리량에 따라 제1 혼잡 윈도가 결정되며, 제1 혼잡 윈도는 현재의 혼잡 윈도를 갱신하는 데 사용되며, 제1 혼잡 윈도는 TCP 데이터 패킷의 송신을 제어하도록 현재의 네트워크 상태에서 사용되므로, 서비스에 대해 획득될 것으로 예상되는 처리량은 가능한 한 많이 충족될 수 있다. 목표 처리량 및 네트워크 상태에 따르면, 현재의 혼잡 윈도는 제1 혼잡 윈도로 한 번에 바로 성장하므로, 처리량에 대한 서비스의 요구가 더 잘 충족될 수 있으며, 네트워크 대역폭은 더 효과적으로 활용될 수 있다.
도 1a는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법의 애플리케이션 시나리오의 시스템 논리 구조에 대한 개략도이다.
도 1b는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법의 애플리케이션 시나리오의 다른 시스템 논리 구조에 대한 개략도이다.
도 1c는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법의 애플리케이션 시나리오의 다른 시스템 논리 구조에 대한 개략도이다.
도 2는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법에 대한 흐름도이다.
도 3은 데이터 패킷이 손실된 후 TCP 데이터 패킷을 송신하는 방법에 기초해서 작업 흐름도이다.
도 4는 도 2에 도시된 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법에 기초하여 선택적으로 최적화된 흐름도이다.
도 5는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법에서 목표 처리량을 갱신하는 흐름도이다.
도 6은 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 장치(600)의 논리적 구조에 대한 개략도이다.
도 7은 도 6에 도시된 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 장치(600)의 최적화된 논리적 구조에 대한 개략도이다.
도 8은 본 발명의 실시예에 따른 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 장치(600)의 하드웨어 구조에 대한 개략도이다.
도 1b는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법의 애플리케이션 시나리오의 다른 시스템 논리 구조에 대한 개략도이다.
도 1c는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법의 애플리케이션 시나리오의 다른 시스템 논리 구조에 대한 개략도이다.
도 2는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법에 대한 흐름도이다.
도 3은 데이터 패킷이 손실된 후 TCP 데이터 패킷을 송신하는 방법에 기초해서 작업 흐름도이다.
도 4는 도 2에 도시된 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법에 기초하여 선택적으로 최적화된 흐름도이다.
도 5는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법에서 목표 처리량을 갱신하는 흐름도이다.
도 6은 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 장치(600)의 논리적 구조에 대한 개략도이다.
도 7은 도 6에 도시된 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 장치(600)의 최적화된 논리적 구조에 대한 개략도이다.
도 8은 본 발명의 실시예에 따른 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 장치(600)의 하드웨어 구조에 대한 개략도이다.
이하에서는 본 발명의 실시예에 첨부된 도면을 참조하여 본 발명의 실시예의 기술적 솔루션에 대해 명확하고 완전하게 설명한다. 당연히, 설명된 실시예는 본 발명의 모든 실시예가 아닌 일부에 지나지 않는다. 당업자가 창조적 노력 없이 본 발명의 실시예에 기초하여 획득하는 모든 다른 실시예는 본 발명의 보호 범위 내에 있게 된다.
도 1a는 본 발명에 따른 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법의 애플리케이션 시나리오의 시스템 논리 구조에 대한 개략도이다. 설명을 쉽게 하기 위해, 본 발명의 이 실시예와 관련된 부분만을 제공한다. 도 1a에 도시된 바와 같이, 도 1a에 제공된 시스템을 참조하면, 시스템(100)은 서버(101), 단말(102) 및 네트워크(103)를 포함한다. 서버(101) 및 단말(102)은 네트워크(103)를 사용해서 연결되고, 네트워크(103)를 사용해서 서버(101)와 단말(102) 사이에서 데이터가 교환된다. 서버(101)는 네트워크(103)를 사용해서 단말(102)에 TCP 데이터 패킷을 송신할 수 있고, 단말(102) 역시 네트워크(103)를 사용해서 서버(101)에 TCP 데이터 패킷을 송신할 수 있다. 네트워크(103)는 전송 제어 프로토콜/인터넷 프로토콜(Transmission Control Protocol/Internet Protocol, TCP/IP 프로토콜로 약칭)을 기반으로 구축되며, 전송 제어 프로토콜/인터넷 프로토콜은 네트워크 통신 프로토콜이라고도 한다.
선택적으로, 네트워크(103)는 스위치 또는 라우터와 같이, TCP 데이터 패킷을 포워딩하기 위한 포워딩 장치를 포함한다. 서버(101)와 단말(102) 사이에서 교환되는 TCP 데이터 패킷은 포워딩 장치를 사용해서 포워딩된다.
선택적으로, 본 발명의 이 실시예에서 언급하는 서버는 전자 구성요소를 포함하면서 데이터 처리 기능을 가진 전자 장치이다. 전자 장치는 집적회로, 트랜지스터 및 전자관과 같은 전자 소자로 이루어져 있다. 프로그램 명령으로 이루어진 소프트웨어는 이 전자 장치에서 실행되어 다른 장치의 데이터 처리 및 제어와 같은 기능을 실행할 수 있다. 예를 들어, 전자 장치에 운영체제가 설치된 후, 전자 장치에 네트워크 인터페이스 카드가 장착되어 네트워크 구성이 완료되면, 전자 장치는 TCP/IP 프로토콜을 기반으로 구축된 네트워크에 액세스할 수 있으며, 다른 전자 장치(예를 들어, 단말)와 TCP 데이터 패킷을 교환하여 데이터를 교환한다.
선택적으로, 서버와 마찬가지로, 본 발명의 이 실시예에서 언급하는 단말은 전자 구성요소를 포함하면서 데이터 처리 기능을 가진 전자 장치이다. 단말은 TCP/IP 프로토콜을 기반으로 구축된 네트워크에 액세스할 수 있으며, 다른 전자 장치(예를 들어, 서버)와 TCP 데이터 패킷을 교환하여 데이터를 교환한다.
선택적으로, 서버(101)는 단말(102)과 직접적인 통신 상태에 있다. 네트워크(103)에서 포워딩 장치(예를 들어, 라우터)에 의한 TCP 데이터 패킷의 포워딩은 네트워크(103)를 사용해서 서버(101)와 단말(102) 사이에서 교환되는 TCP 데이터 패킷에 대해 수행되지 않아도 된다.
선택적으로, 서버(101)는 단말(102)과의 TCP 데이터 패킷의 피어 인터랙션을 수행할 수 있다. 서버(101)는 단말(102)에 TCP 데이터 패킷을 송신할 수 있고, 이에 상응해서 단말(102) 역시 서버(101)에 TCP 데이터 패킷을 송신할 수 있다.
선택적으로, 도 1a에 제공된 시스템(100)의 경우, 시스템(100)에서, 서버(101)는 네트워크(103)를 사용해서 단말(102)과의 TCP 데이터 패킷의 서버-클라이언트 인터랙션을 수행한다. 서버(101)는 서빙 엔드로서 작동하고, 단말(102)은 서버-클라이언트 통신에서 서빙 엔드에 대응하는 클라이언트로서 작동한다. 서버(101)는 단말(102)에 TCP 데이터 패킷을 송신할 수 있다. 예를 들어, 단말(102)이 서버(101)로부터 오디오 파일 및 비디오 파일을 다운로드할 때, 서버(101)는 오디오 파일 및 비디오 파일을 반송하는 TCP 데이터 패킷을 단말(102)에 송신한다. 이에 상응해서, 단말(102) 역시 서버(101)에 TCP 데이터 패킷을 송신할 수 있다. 예를 들어, 단말(102)이 서버(101)에 텍스트 파일을 업로드하면, 단말(102)은 텍스트 파일을 반송하는 TCP 데이터 패킷을 서버(101)에 송신한다.
도 1b는 본 발명의 실시예에 따른 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법의 애플리케이션 시나리오의 다른 시스템 논리 구조에 대한 개략도이다. 설명을 쉽게 하기 위해, 본 발명의 이 실시예와 관련된 부분만을 제공한다. 도 1b에 제공된 시스템(200)을 참조하면, 시스템(200)은 서버(201), 단말(202), 네트워크(203) 및 제1 에이전트 장치(204)를 포함한다. 서버(201)가 네트워크(203)를 사용해서 단말(202)과 TCP 데이터 패킷을 교환하는 프로세스에서, 서버(201)의 TCP 프로토콜 스택의 수정이 지원되지 않는 경우, 제1 에이전트 장치(204)가 부가된다. 제1 에이전트 장치(204)는 자신의 TCP 프로토콜 스택의 수정을 지원한다. 제1 에이전트 장치(204)는 서버(201)의 에이전트로서 작동하여 단말(202)과 TCP 데이터 패킷을 교환한다. 도 1b에서의 제1 에이전트 장치(204)와 단말(202) 간의 TCP 데이터 패킷의 인터랙션은 도 1a에서의 서버(101)와 단말(102) 간의 TCP 데이터 패킷의 인터랙션과 유사하다. 당연히, 제1 에이전트 장치(204) 역시 다른 요인으로 인해 부가될 수 있다. 예를 들어, 제1 에이전트 장치(204)는 서버(201)에 의한 TCP 데이터 패킷를 송신함으로써 생기는 부하를 감소하기 위해 부가된다. 바람직하게, 제1 에이전트 장치(204)는 프록시 서버를 사용해서 구현된다. 바람직하게, 제1 에이전트 장치(204)는 라우터 상의 서비스 카드이고, 전술한 기능은 서비스 카드 상에서 논리 프로그래밍을 수행함으로써 실행된다.
도 1c는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법의 애플리케이션 시나리오의 다른 시스템 논리 구조에 대한 개략도이다. 설명을 쉽게 하기 위해, 본 발명의 이 실시예와 관련된 부분만을 제공한다. 도 1c에 제공된 시스템(300)을 참조하면, 시스템(300)은 서버(301), 단말(302), 네트워크(303) 및 제1 에이전트 장치(304)를 포함한다. 서버(301)가 네트워크(303)를 사용해서 단말(302)과 TCP 데이터 패킷를 교환하고, 서버(301)의 TCP 프로토콜 스택의 수정이 지원되지 않는 경우, 제1 에이전트 장치(304)가 부가된다. 제1 에이전트 장치(304)는 자신의 TCP 프로토콜 스택의 수정을 지원한다. 제1 에이전트 장치(304)는 서버(301)의 에이전트로서 작동하여 TCP 데이터 패킷을 교환한다. 또한, 제2 에이전트 장치(305)가 추가로 부가된다. 제2 에이전트 장치(305)는 단말(302)의 에이전트로서 작동해서 TCP 데이터 패킷을 교환하므로, 제1 에이전트 장치(304)와 제2 에이전트 장치(305) 사이에서 TCP 데이터 패킷이 교환된다. 도 1c에서의 제1 에이전트 장치(304)와 제2 에이전트 장치(305) 간의 TCP 데이터 패킷의 인터랙션은 도 1c에서의 서버(101)와 단말(102) 간의 TCP 데이터 패킷과 유사하다. 당연히, 제1 에이전트 장치(304)와 제2 에이전트 장치(305)는 다른 요인으로 인해 부가될 수도 있다. 전술한 설명을 참조하면 되므로 이에 대해서는 여기서 다시 설명하지 않는다. 제2 에이전트 장치(305)를 부가하는 이유는: 단말(302)의 TCP 프로토콜 스택의 수정이 지원되지 않고, 제2 에이전트 장치(305)는 자신의 TCP 프로토콜 스택의 수정을 지원한다는 것이다. 제2 에이전트 장치(305)는 단말(302)의 에이전트로서 작동해서 TCP 데이터 패킷을 교환하므로, 제1 에이전트 장치(304)와 제2 에이전트 장치(305) 사이에서 TCP 데이터 패킷이 교환된다. 바람직하게, 제1 에이전트 장치(304)는 프록시 서버를 사용해서 구현된다. 바람직하게, 제1 에이전트 장치(304)는 라우터 상의 서비스 카드이고, 전술한 기능은 서비스 카드 상에서 논리 프로그래밍을 수행함으로써 실행된다. 바람직하게, 제2 에이전트 장치(305)는 프록시 서버를 사용해서 구현된다. 바람직하게, 제2 에이전트 장치(305)는 라우터 상의 서비스 카드이고, 전술한 기능은 서비스 카드 상에서 논리 프로그래밍을 수행함으로써 실행된다.
본 발명의 이 실시예에서, 서버가 네트워크 내의 단말에 TCP 데이터 패킷을 송신하는 프로세스에서, 서비스에 대해 획득될 것으로 예상되는 처리량을 가능한 한 많이 충족하기 위해, TCP의 TCP 데이터 패킷를 송신하는 방법이 설계된다. 도 1a에서, 본 발명의 이 실시예에서 제공하는 방법은 서버(101)에 적용된다. 도 1b에서, 본 발명의 이 실시예에서 제공하는 방법은 제1 에이전트 장치(204)에 적용된다. 도 1c에서, 본 발명의 이 실시예에서 제공하는 방법은 제1 에이전트 장치(304)에 적용된다.
이하에서는 본 발명의 이 실시예에서 제공하는 방법이 서버(101)에 적용되는 예를 사용해서, 본 발명의 이 실시예에서 제공하는 TCP의 TCP 데이터 패킷을 송신하는 방법을 설명한다. 도 2는 방법에 대한 기본적인 실시 과정을 도시한다. 그렇지만, 설명을 쉽게 하기 위해, 도 2는 본 발명의 이 실시예와 관련된 부분만을 도시한다.
도 2에 도시된 TCP의 TCP 데이터 패킷을 송신하는 방법은: 단계 A201, 단계 A202, 단계 A203, 단계 A204 및 단계 A205를 포함한다.
단계 A201: 네트워크에서 TCP 데이터 패킷을 송신하는 제1 왕복 시간(Round Trip Time, RTT)을 획득한다.
본 발명의 이 실시예에서 제공하는 방법이 도 1a에서의 서버(101)에 적용되는 예를 사용해서 단계 A201을 상세히 설명한다:
서버가 단말에 서비스를 제공할 때, TCP 흐름은 각각의 제공된 서비스에 대해 개별적으로 구축된다. 대응하는 서비스를 반송하는 TCP 데이터 패킷이 각각의 TCP 흐름에서 송신된다. TCP 데이터 패킷을 송신하는 프로세스에서, 단계 A201에서, TCP 데이터 패킷의 하나의 수신확인(ACK)이 수신될 때마다, TCP 데이터 패킷을 송신하는 데 필요한 RTT가 계산된다. 계산된 RTT는 제1 왕복 시간으로 사용된다. 선택적으로, RFC6289에서 제공하는 알고리즘(제이콥슨/카렐스 알고리즘(Jacobson/Karels algorithm))을 사용해서 TCP 데이터 패킷에 대한 RTT를 계산한다.
단계 A202: 제2 왕복 시간을 결정하며, 제2 왕복 시간은 제1 알고리즘에 따라 결정되는 혼잡 윈도와 제2 알고리즘에 따라 결정되는 혼잡 윈도가 동일한 크기를 가질 때 존재하는 왕복 시간이며, 제1 알고리즘에서 혼잡 윈도의 증가 단계 크기는 제1 왕복 시간에 따라 결정되고, 제2 알고리즘에서 혼잡 윈도의 증가 단계 크기는 제1 왕복 시간 및 목표 처리량에 따라 결정되며, 상기 목표 처리량은 TCP 데이터 패킷에 대응하는 서비스에 대해 획득될 것으로 예상되는 처리량이다.
본 발명의 이 실시예에서 특정한 형태의 서비스로 제한되지 않으며, 서비스는 오디오 서비스, 비디오 서비스, 오디오 및 비디오 서비스, 바이러스를 온라인으로 스캐닝하고 제거하는 서비스, 인스턴트 메시징 서비스 및 온라인 애플리케이션 서비스와 같은 다양한 애플리케이션 서비스를 포함한다는 것에 유의해야 한다.
서버가 단말에 서비스를 제공하는 프로세스에서, 서비스를 정상적으로 제공할 것으로 예상되는 경우, 서버가 서비스를 반송하는 TCP 데이터 패킷을 송신할 때 특별한 처리량이 필요하다. 본 발명의 이 실시예에서는 그 처리량을 목표 처리량이라 정의한다. 서버가 단말에 서비스를 제공하는 프로세스에서, 그 서비스에 대해 TCP 흐름이 구축되며, 그 TCP 흐름에 대해 혼잡 윈도가 구축된다. 서비스를 반송하는 TCP 데이터 패킷은 혼잡 윈도의 제어하에 TCP 흐름을 사용해서 송신되며, 서버가 제공할 수 있는 처리량은 혼잡 윈도를 사용해서 결정된다. 그러므로 네트워크의 현재의 네트워크 상태에서 서비스가 필요로 하는 처리량에 가능한 한 많이 도달하기 위해, 혼잡 윈도는 조정되어야 한다. 서버가 단말에 다중 서비스를 동시에 제공하는 경우, 서버에 의해 단말에 제공되는 서비스마다 개별적으로 필요로 하는 목표 처리량이 개별적으로 결정된다. TCP 흐름은 서비스마다 개별적으로 구축되며, TCP 흐름마다 하나의 혼잡 윈도가 개별적으로 설정되고, 서비스마다 대응하는 혼잡 윈도가 개별적으로 추가로 조정되어 서비스에 대해 획득될 것으로 예상되는 처리량을 제공한다.
본 발명의 이 실시예에서는 제1 알고리즘 및 제2 알고리즘이 제공된다. 혼잡 윈도의 크기는 제1 알고리즘 또는 제2 알고리즘을 사용해서 그리고 네트워크의 네트워크 상태 및 서비스가 필요로 하는 목표 처리량에 따라 혼잡 윈도의 크기가 조정된다. 조정에 의해 획득된 혼잡 윈도는 TCP 데이터 패킷의 송신을 제어하는 데 사용되어 단말이 예상 처리량을 획득할 수 있게 한다. 구체적으로, 단계 A202에서, 혼잡 윈도의 증가 단계 크기는 제1 알고리즘 또는 제2 알고리즘에 따라 결정되어 혼잡 윈도의 크기가 조정된다.
또한, 구체적으로, 제1 알고리즘 또는 제2 알고리즘이 혼잡 윈도를 조정하는 데 사용되는지는 네트워크 상태를 반영하는 RTT에 따라 결정된다. 단계 A202에서, 제2 왕복 시간이 결정된다. 네트워크 상태를 반영하는 RTT가 제2 왕복 시간보다 짧거나 같으면, 즉 네트워크 상태를 반영하는 RTT가 비교적 짧으면, 현재의 네트워크 상태가 바람직하며, 제2 알고리즘을 사용하여 혼잡 윈도의 증가 단계 크기를 결정한다. 제2 알고리즘을 사용하여 혼잡 윈도의 증가 단계 크기를 결정할 때, 증가 단계 크기는 네트워크 상태를 반영하는 RTT 및 목표 처리량 모두에 따라 결정되어야 한다. 즉, 제2 알고리즘에서는 네트워크 상태 및 목표 처리량 모두가 고려된다. 일반적으로, 제2 알고리즘에 따라 결정된 혼잡 윈도를 사용하여 TCP 데이터 패킷의 송신을 제어할 때, 서버는 서비스가 필요로 하는 목표 처리량을 제공할 수 있다. 네트워크 상태를 반영하는 RTT가 제2 왕복 시간보다 길면, 즉 네트워크 상태를 반영하는 RTT가 비교적 길면, 현재의 네트워크 상태에 어느 정도의 혼잡이 존재하며, 제1 알고리즘을 사용하여 혼잡 윈도의 증가 단계 크기를 결정한다. 제1 알고리즘을 사용하여 혼잡 윈도의 증가 단계 크기를 결정할 때, 증가 단계 크기는 네트워크 상태를 반영하는 RTT에 따라 결정된다. 즉, 네트워크 상태는 제1 알고리즘에서 더 많이 고려된다. 일반적으로, 제2 알고리즘에 따라 결정된 혼잡 윈도를 사용해서 TCP 데이터 패킷의 송신을 제어할 때, 서버에서 제공하는 처리량은 서비스가 필요로 하는 목표 처리량에 도달할 수 없다.
단계 A203: 제1 왕복 시간이 제2 왕복 시간보다 길면, 제1 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용한다.
단계 A204: 제1 왕복 시간이 제2 왕복 시간보다 짧으면, 제2 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용한다.
단계 A205: 제1 혼잡 윈도를 사용해서 TCP 데이터 패킷을 송신한다.
구체적으로, 네트워크에서 서비스를 반송하는 TCP 데이터 패킷을 송신하는 프로세스에서, 혼잡 윈도가 현재의 네트워크 상태를 반영하는 RTT 및 목표 처리량에 따라 현재 조정되어야 하면, 서버가 서비스를 만족하는 처리량을 가능한 한 많이 제공할 수 있게 하기 위해, 단계 A201을 먼저 수행하여 현재의 네트워크 상태를 반영하는 RTT를 계산하고, 그 계산된 RTT를 제1 왕복 시간으로 사용한다.
현재의 네트워크 상태를 반영하는 제1 왕복 시간이 비교적 길고, 제1 왕복 시간이 제2 왕복 시간보다 길면, 현재의 네트워크 상태에 어느 정도 혼잡이 존재한다는 것을 나타내고, 제1 알고리즘을 사용하여 그리고 제1 왕복 시간에 따라 단계 A203를 수행하여 혼잡 윈도의 증가 단계 크기를 결정한다. 제1 왕복 시간의 검출 중에 대응하는 혼잡 윈도에 기초해서, 제1 알고리즘에 따라 결정되는 증가 단계 크기를 증가시켜 제1 혼잡 윈도를 획득한다.
현재의 네트워크 상태를 반영하는 제1 왕복 시간이 비교적 짧고, 제1 왕복 시간이 제2 왕복 시간보다 길면, 현재의 네트워크 상태가 바람직하다는 것을 나타내고, 제2 알고리즘을 사용하여 그리고 제1 왕복 시간 및 목표 처리량 모두에 따라 단계 A204를 수행하여 혼잡 윈도의 증가 단계 크기를 결정한다. 제1 왕복 시간의 검출 중에 대응하는 혼잡 윈도에 기초해서, 제2 알고리즘에 따라 결정되는 증가 단계 크기를 증가시켜 제1 혼잡 윈도를 획득한다.
서비스의 TCP 흐름에서, 서비스의 TCP 데이터 패킷의 송신을 제어하는 혼잡 윈도에 대해서, 단계 A204 및 단계 A205가 수행될 때마다, 제1 혼잡 윈도가 다시 한 번 결정되므로, 제1 혼잡 윈도는 서비스에 대응하는 혼잡 윈도를 한 번 갱신하는 데 사용되고, 제1 혼잡 윈도는 갱신 전에 혼잡 윈도를 대체하는 데 사용된다. 서비스의 TCP 흐름에서는, 제1 혼잡 윈도가 송신될 TCP 데이터 패킷의 수량을 제어하는 데 사용되는 것으로 갱신된다.
서비스의 TCP 흐름에서, 서비스의 TCP 데이터 패킷의 송신을 제어하는 데 사용되는 혼잡 윈도에 대해서, 제1 왕복 시간 및 목표 처리량에 따라 제1 혼잡 윈도의 결정을 트리거링하고 제1 혼잡 윈도를 사용해서 현재의 혼잡 윈도의 갱신하는 시점 또는 조건은 본 발명의 이 실시예에서 제한되지 않는다. 예를 들어, 제1 혼잡 윈도는 제1 왕복 시간 및 목표 처리량에 따라 실시간으로 결정될 수 있으며, 제1 혼잡 윈도는 서비스의 TCP 흐름의 현재의 혼잡 윈도를 갱신하는 데 사용된다. 다른 예에서, 제1 혼잡 윈도는 제1 왕복 시간 및 목표 처리량에 따라 지정된 시간의 간격에서 결정될 수 있으며, 제1 혼잡 윈도는 현재의 혼잡 윈도를 갱신하는 데 사용된다. 다른 예에서, TCP 데이터 패킷 상에서 패킷 손실이 발생하고 혼잡 윈도가 제2 혼잡 윈도로 감소한 후, 제1 라운드에서 제2 혼잡 윈도를 사용해서 TCP 데이터 패킷의 송신을 제어하는 수신확인(ACK)이 정상적으로 수신되면, 제1 혼잡 윈도는 제1 왕복 시간 및 목표 처리량에 따라 결정되며, 제1 혼잡 윈도는 현재의 혼잡 윈도를 갱신하는 데 사용된다.
그러므로 제1 왕복 시간만큼 반영되는 현재의 네트워크 상태에서, 본 발명의 이 실시예에서, 목표 처리량을 가능한 한 많이 충족하는 제1 혼잡 윈도는 서비스에 대해 획득될 것으로 예상되는 목표 처리량에 따른 조정에 의해 획득될 수 있으며, 제1 혼잡 윈도는 TCP 데이터 패킷의 송신을 제어하는 데 사용되므로, 서비스에 대해 획득될 것으로 예상되는 목표 처리량은 가능한 한 많이 제공될 수 있다.
이하에서는 도 1a의 서버(101)에 기초해서 그리고 서버에 의해 단말에 제공되는 서비스의 TCP 흐름에서 패킷 손실이 발생한 후, 본 발명의 이 실시예에서 제공하는 방법을 사용해서 혼잡 윈도가 조정되는 예를 사용해서, 본 발명의 이 실시예에서 제공하는 방법을 상세히 설명한다:
첫째, 네트워크에서 서비스의 TCP 데이터 패킷을 송신하는 데 필요한 목표 처리량이 획득되고, 목표 처리량은 TCP 데이터 패킷에 부가된다.
구체적으로, 서버가 단말에 서비스를 정상적으로 제공하면, 서버가 서비스를 반송하는 TCP 데이터 패킷을 송신하는 데 특별한 처리량이 필요하다. 서비스가 필요로 하는 처리량은 목표 처리량으로 정의된다.
서버가 단말에 서비스를 제공할 때, 그 서비스에 대해 TCP 흐름을 구축하며, 그러므로 서버는 TCP 흐름에서 서비스를 반송하는 TCP 데이터 패킷을 송신한다. 또한, 서버가 단말에 서비스를 제공하는 프로세스에서, 하나의 혼잡 윈도가 TCP 흐름에 추가로 구축된다. 혼잡 윈도는 TCP 흐름에서 서비스를 반송하는 TCP 데이터 패킷의 송신을 제어하는 데 사용된다. 송신될 수 있는 TCP 데이터 패킷의 최대량은 혼잡 윈도에 의해 결정되며, 그러므로 서비스에 대해 서버가 제공하는 처리량은 혼잡 윈도의 크기를 조정함으로써 조정될 수 있다.
파라미터, 즉 목표 처리량은 기존의 TCP 프로토콜 스택에서는 제공되지 않는다. 그러므로 목표 처리량에 따라 혼잡 윈도를 제공하기 위해, 서버의 TCP 프로토콜 스택은 파라미터, 즉 목표 처리량을 부가함으로써 수정되어야 한다. 도 1a의 서버(101)는 자신의 TCP 프로토콜 스택의 수정을 지원한다. 또한, 서버가 단말에 서비스를 제공하는 프로세스에서, 서버는 도 1b에 도시된 바와 같이, 제1 에이전트 장치를 서버의 에이전트로서 사용하여 서비스를 반송하는 TCP 데이터 패킷을 단말에 송신하는 대신, 서비스를 반송하는 TCP 데이터 패킷을 단말에 직접 송신한다. 이 방법에서, 서버가 단말에만 서비스를 제공할 때, 서버는 TCP 프로토콜 스택에서의 목표 처리량 및 현재의 네트워크 상태를 반영하는 제1 왕복 시간에 따라 혼잡 윈도를 조정한다.
선택적으로, 도 1a에서 서버(101)의 TCP 데이터 패킷에 목표 처리량을 부가하는 선택적 실시 방식에서, 파라미터, 즉 목표 처리량 파라미터를 부가하여 소켓이 수정된다. 서버가 자신이 필요로 하는 목표 처리량을 단말에 제공한 후, 그 결정된 목표 처리량은 목표 처리량 파라미터의 값에 할당하는 데 사용되며, 목표 처리량 파라미터 및 목표 처리량 파라미터에 대응하는 할당된 값(즉, 서비스에 대해 획득될 것으로 예상되는 목표 처리량)은 소켓을 사용해서 서버의 TCP 프로토콜 스택에 전송되며, 목표 처리량 파라미터 및 목표 처리량 파라미터에 대응하는 할당된 값은 그런 다음 TCP 프로토콜 스택에 부가된다.
예를 들어, 목표 처리량 파라미터 "target_throughput"는 소켓 함수 "setsockopt ()"에 부가된다. 서비스에 대해 획득될 것으로 예상되는 목표 처리량이 서버가 단말에 서비스를 제공하는 데 필요한 처리량에 따라 결정된 후, 그 결정된 목표 처리량은 "target_throughput"의 값을 할당하는 데 사용된다. "target_throughput" 및 "target_throughput"의 할당된 값은 "setsockopt ()"을 사용해서 서버의 TCP 프로토콜 스택에 전송되며, 목표 처리량 파라미터 "target_throughput" 및 목표 처리량 파라미터 "target_throughput"의 할당된 값은 그런 다음 TCP 프로토콜 스택에 부가된다.
이어서, 네트워크에서 TCP 데이터 패킷을 송신하는 프로세스에서, TCP 데이터 패킷의 손실이 발생하면, 단계 B301, 단계 B302, 단계 B303, 단계 B304는 도 3에 도시된 바와 같이, 순서대로 수행된다.
단계 B301: 네트워크에서 TCP 데이터 패킷을 송신하는 프로세스에서, TCP 데이터 패킷이 손실되면, TCP 데이터 패킷이 손실될 때 존재하는 혼잡 윈도를 제2 혼잡 윈도로 조정하고, 제2 혼잡 윈도를 사용해서 네트워크에서 송신될 TCP 데이터 패킷을 제어한다.
구체적으로, 서버에 의해 단말에 제공되는 서비스의 TCP 흐름에서, 서비스를 반송하는 TCP 데이터 패킷을 송신하는 프로세스에서, 단말이 TCP 데이터 패킷을 정확하게 순서대로 수신하면, 단말은 TCP 데이터 패킷에 대응하는 수신확인(Acknowledgement, ACK)을 서버에 피드백한다. TCP 데이터 패킷의 수신확인을 수신한 후, 그런 다음 서버는 TCP 데이터 패킷을 캐시에서 삭제하고, 그 캐시에 다른 송신될 TCP 데이터 패킷을 부가한다. 본 발명의 이 실시예에서, 그 캐시에 기초해서 혼잡 윈도가 추가로 설정되고, 그 혼잡 윈도는 혼잡 제어를 수행하는 데 사용된다. 서비스의 TCP 흐름에서, 혼잡 윈도 내의 TCP 데이터 패킷을 송신하는 프로세스에서, 혼잡 윈도 내의 TCP 데이터 패킷이 손실되면, TCP 흐름의 혼잡 윈도가 감소하고, 그 혼잡 윈도는 제2 혼잡 윈도로 조정된다. 제2 혼잡 윈도는 TCP 데이터 패킷이 손실될 때 존재하는 혼잡 윈도보다 작다. 제2 혼잡 윈도를 설정하는 데 사용되는 특정한 알고리즘은 제한되지 않으며, 예를 들어, 기존의 Reno 알고리즘 및 CUBIC 알고리즘이다. 또한, 혼잡 윈도 내의 TCP 데이터 패킷이 손실되었다는 것을 서버가 결정하는 방법은 제한되지 않으며, TCP 데이터 패킷의 손실이 트리거링되는 시나리오도 제한되지 않는다. 예를 들어, TCP 데이터 패킷을 송신한 후, 서버는 미리 설정된 시간 후에도 여전히 단말로부터 TCP 데이터 패킷의 수신확인을 수신한다. 다른 예에서, 서버가 TCP 데이터 패킷을 송신한 후, TCP 데이터 패킷은 네트워크에서 TCP 데이터 패킷의 전송 동안 손실되며, 여기서 TCP 데이터 패킷은 예를 들어, 무선 네트워크에서 TCP 데이터 패킷의 전송 동안 무작위로 손실되는 TCP 데이터 패킷이다. 다른 예에서, 서버가 TCP 데이터 패킷을 송신한 후, 단말은 TCP 데이터 패킷의 수신확인을 제때 피드백하지 않는다. 다른 예에서, 서버는 복수의 TCP 데이터 패킷을 단말에 순서대로 송신하며, TCP 데이터 패킷은 무작위 시간 순서로 단말에 도달하며, 단말은 엔드에 배열되는 복수의 TCP 데이터 패킷(예를 들어, 엔드에 배열되는 3개의 TCP 데이터 패킷)을 수신하였으나 프론트에 배열되는 TCP 데이터 패킷은 수신하지 못하였다. 이 경우, 엔드에 배열되는 각각의 TCP 데이터 패킷을 수신할 때마다, 단말은 프론트에 배열되는 TCP 데이터 패킷을 요구하는 수신확인(ACK)을 서버에 송신한다. 서버가 수신확인을 여러 번(예를 들어 3번) 계속해서 수신한 후, 서버는 프론트에 배열되는 TCP 데이터 패킷이 손실된 것으로 결정한다.
TCP 데이터 패킷의 손실이 발생한 후, 단계 B301에서, TCP 데이터 패킷이 손실될 때 존재하는 혼잡 윈도는 제2 혼잡 윈도에 따라 조정되고, 제2 혼잡 윈도는 TCP 데이터 패킷의 송신을 제어하는 데 사용된다. 네트워크에서 서버에 의해 송신될 수 있는 TCP 데이터 패킷의 최대량은 제2 혼잡 윈도에 의해 결정된다.
네트워크 상태가 계속 저하되거나(예를 들어, 네트워크 대역폭이 계속 저하되거나) 단말에 문제가 생겨 TCP 데이터 패킷이 계속 손실되면, 단계 B301은 여러 번 순서대로 수행될 수 있다. 당연히, 네트워크 상태가 변하지 않거나 최적화되어 있으면(예를 들어, 네트워크 대역폭이 불변이거나 증가하면), 단말에 문제가 생기지 않으며, B302가 수행된다.
단계 B302: 제2 혼잡 윈도를 사용해서 송신되는 TCP 데이터 패킷의 수신확인이 수신되면, 제2 혼잡 윈도에 대응하는 제1 왕복 시간을 결정한다.
"제1 혼잡 윈도"에서의 "제1" 및 "제2 혼잡 윈도"에서의 "제2"는 모두 서로를 구별하기 위해서만 사용되는 표시이다.
구체적으로, 단계 B301에서 TCP 데이터 패킷이 손실될 때 존재하는 TCP의 혼잡 윈도가 제2 혼잡 윈도로 조정된 후, 서버는 제2 혼잡 윈도를 사용해서 서비스의 TCP 흐름에서, 서비스의 TCP 데이터 패킷을 단말에 송신하는 것을 제어한다. 서버가 제1 라운드에서 제2 혼잡 윈도 내의 TCP 데이터 패킷을 단말에 송신하는 것을 완료하고 제1 라운드에서 송신된 모든 TCP 데이터 패킷의 수신확인을 수신하면, 서버는 제1 라운드에서 제2 혼잡 윈도 내의 마지막 TCP 데이터 패킷의 RTT를 계산하고, 그 계산된 RTT를 제1 왕복 시간으로 정의한다.
예를 들어, 서버가 제1 라운드에서 제2 혼잡 윈도 내의 TCP 데이터 패킷을 단말에 송신하는 것을 완료하고 제1 라운드에서 송신된 모든 TCP 데이터 패킷의 수신확인을 수신한 후, RFC6289에서 제공하는 알고리즘(Jacobson/Karels 알고리즘)은 마지막으로 수신되는 수신확인(제1 라운드에서 송신된 모든 TCP 데이터 패킷의 수신확인 중 마지막으로 수신된 수신확인)의 RTT를 계산하는 데 사용되고, 그 계산된 RTT는 제1 왕복 시간으로 사용된다.
단계 B303: 목표 처리량 및 제1 왕복 시간에 기초해서 그리고 제1 알고리즘 또는 제2 알고리즘에 따라 제1 혼잡 윈도를 결정한다.
구체적으로, 네트워크가 경량의 부하를 가지지 않고 특정한 부하를 가지는 경우, 제1 왕복 시간은 반영된 현재의 네트워크 상태(예를 들어, 네트워크에서 TCP 데이터 패킷을 포워딩하는 네트워크 경로 길이)와 강한 상관관계를 가진다. 네트워크 상태가 좋을수록 제1 왕복 시간을 짧다. 극단적인 경우, 네트워크가 극심하게 오버로딩되면, 제1 왕복 시간은 네트워크의 재전송 타임아웃(Retransmission TimeOut, RTO로 약칭) 메커니즘과 같고, 네트워크는 심각한 혼잡을 가진다.
제1 라운드에서 제2 혼잡 윈도 내의 TCP 데이터 패킷의 수신확인이 단계 B392에서 수신되면, 그것은 네트워크가 더 많은 TCP 데이터 패킷을 전송할 수 있다는 것을 나타낸다. 이 경우, 제2 혼잡 윈도는 적절하게 증가할 수 있고, 제2 혼잡 윈도는 제1 혼잡 윈도로 증가한다.
본 발명의 이 실시예에서, 제1 알고리즘 또는 제2 알고리즘은 제1 혼잡 윈도를 결정하는 사용된다. 특히, 제2 알고리즘에서, 파라미터, 즉 목표 처리량이 도입되고, 파라미터, 즉 제1 왕복 시간이 동시에 도입된다. 제1 왕복 시간에 따라 결정되는 현재의 네트워크 상태는 비교적 바람직하다. 그러므로 제2 알고리즘에 따라 결정된 제1 혼잡 윈도에 있어서, 제1 혼잡 윈도는 TCP 데이터 패킷의 송신을 제어하는 데 사용되므로, 서버가 서비스를 반송하는 TCP 데이터 패킷을 송신할 때 단말은 예상된 목표 처리량을 획득할 수 있다. 또한, 제1 알고리즘에 따라 결정된 제1 혼잡 윈도가 TCP 데이터 패킷의 송신을 제어하는 데 사용될 때, 서버가 서비스를 제공할 때 존재하는 처리량 역시 현재의 네트워크 상태에서 가능한 한 많이 향상될 수 있으므로 단말은 현재이 네트워크 상태에서 최대 처리량을 획득한다.
단계 B304: 제2 혼잡 윈도를 제1 혼잡 윈도로 조정하고, 제1 혼잡 윈도를 사용해서 네트워크에서 송신될 TCP 데이터 패킷을 제어한다.
구체적으로, 단계 B303에서 제1 혼잡 윈도가 제2 혼잡 윈도를 대체하는 데 사용된 후, 단계 B304에서, 서버는 제1 혼잡 윈도를 사용해서, 서비스를 반송하고 단말에 송신될 TCP 데이터 패킷을 제어한다. 즉, 한 시점에서, 서버는 제1 혼잡 윈도에 최대로 포함되어 있는 모든 TCP 데이터 패킷(서비스를 반송하는 TCP 데이터 패킷)을 단말에 송신한다.
이 실시예에서, 서버가 서비스를 반송하는 TCP 데이터 패킷을 송신하는 데 필요한 목표 처리량이 결정되고, 그 목표 처리량은 TCP 프로토콜 스택에 부가된다. 또한, 서버가 TCP 데이터 패킷을 단말에 송신하는 TCP 흐름에서, TCP 데이터 패킷의 손실이 발생하면, TCP의 혼잡 윈도는 제2 혼잡 윈도로 조정된다. 제1 라운드에서 제2 혼잡 윈도 내의 TCP 데이터 패킷이 단말에 성공적으로 송신되면(즉, 제1 라운드에서 제2 혼잡 윈도 내의 TCP 데이터 패킷의 수신확인이 단말로부터 수신된다), 제1 라운드에서 제2 혼잡 윈도에 대응하는 제1 왕복 시간이 결정된다. 그러므로 단계 B303에서, 네트워크 상태(제1 라운드에서 제2 혼잡 윈도 내의 TCP 데이터 패킷을 송신하는 네트워크 상태)는 제1 왕복 시간에 따라 결정될 수 있으며, 목표 처리량을 가능한 한 많이 충족하는 제1 혼잡 윈도가 그 네트워크 상태에서 결정된다. 그러므로 네트워크 상태가 제1 왕복 시간에 따라 결정된 후, 단계 B304에서, 제2 혼잡 윈도가 제1 혼잡 윈도로 증가할 때까지 기존의 알고리즘(예를 들어, Reno 알고리즘 및 CUBIC 알고리즘)에 따라 제2 혼잡 윈도를 점차 증가시키는 대신, 제2 혼잡 윈도는 목표 처리량을 가능한 한 많이 충족하는 제1 혼잡 윈도로 한 번에 조정될 수 있다.
이 방법은 특히 넓은 네트워크 대역폭의 경우에 적용 가능하다는 것에 유의해야 한다. 네트워크 대역폭이 증가할수록, 기존의 알고리즘과 비교해 보면, 이 방법은 서비스를 더 잘 충족할 수 있으며, 네트워크 대역폭 활용도가 더 개선된다. 상세한 비교는 다음과 같다:
Reno 알고리즘 및 CUBIC 알고리즘과 같은 기존의 윈도 조정 알고리즘에서는 TCP 데이터 패킷의 손실이 발생하면, TCP의 혼잡 윈도가 크게 감소된다. 예를 들어, Reno 알고리즘에서는 TCP 데이터 패킷이 손실되면, 혼잡 윈도가 절반으로 감소된다. 다른 예에서, CUBIC 알고리즘에서는 TCP 데이터 패킷이 손실되면, 혼잡 윈도가 717/1024로 감소된다(거의 1/3로 감소된다). 그렇지만, 혼잡 윈도가 감소된 후, 서버가 기존의 윈도 조정 알고리즘을 사용해서 혼잡 윈도를 조정하면, TCP 데이터 패킷은 시험적으로 라운드마다 송신되어야 한다. 라운드마다 TCP 데이터 패킷이 송신된 후, 라운드에서 송신된 TCP 데이터 패킷이 또한 손실되면, 혼잡 윈도가 다시 한 번 크게 감소된다. 단말에 의해 피드백된 수신확인이 성공적으로 수신되면, 혼잡 윈도가 한 번 증가한다. 그렇지만, 단말에 의해 피드백된 수신확인이 라운드마다 성공적으로 수신된 후, 서비스에 대해 획득될 것으로 예상되는 목표 처리량은 기존의 알고리즘에서는 고려되지 않으나, 대신, 혼잡 윈도가 알고리즘에 따라 라운드마다 점차 증가하며, 현재의 네트워크 상태에서 서버에 대해 제공될 수 있는 최대 혼잡 윈도(제1 혼잡 윈도)에 점차 도달한다.
이에 상응해서, 서비스에 대해 획득될 것으로 예상되는 목표 처리량이 미리 결정된다. 서버가 TCP 데이터 패킷을 단말에 송신하는 프로세스에서 TCP 데이터 패킷의 손실이 발생하고, TCP의 혼잡 윈도가 제2 혼잡 윈도로 조정되더라도, 제1 라운드에서 제2 혼잡 윈도 내의 TCP 데이터 패킷이 단말에 성공적으로 송신되면, 제1 라운드에서 제2 혼잡 윈도에 대응하는 제1 왕복 시간이 결정되고, 네트워크 상태가 제2 왕복 시간에 따라 결정되며, 그런 다음 목표 처리량을 가능한 한 많이 충족하는 제1 혼잡 윈도가 그 네트워크 상태에서 결정된다. 서비스에 대응하는 목표 처리량을 가능한 한 많이 충족시키기 위해 혼잡 윈도는 제2 혼잡 윈도로부터 제1 혼잡 윈도로 한 번에 증가한다. 제1 라운드에서 제2 혼잡 윈도 내의 TCP 데이터 패킷을 송신하는 네트워크 상태가 바람직하면, 네트워크 대역폭이 목표 처리량을 충족할 때, 제1 혼잡 윈도를 사용해서 TCP 데이터 패킷의 송신은 목표 처리량을 충족할 수 있다. 네트워크 상태가 바람직하지 않더라도, 제1 왕복 시간 및 목표 처리량에 따라 결정되는 제1 혼잡 윈도는 또한 그 네트워크 상태에서 서비스의 비트 레이트를 최대한 만족하는 혼잡 윈도가다.
선택적으로, 이 방법은 특히 큰 네트워크 대역폭을 가지는 무선 네트워크에 적용 가능하다. 유선 네트워크와 비교해 보면, 무선 네트워크에서 랜덤 패킷 손실이 발생할 확률이 비교적 높다. 랜덤 패킷 손실이 발생할 때마다, 기존의 알고리즘에서는 혼잡 윈도가 감소한다. 그렇지만, 혼잡 윈도가 감소할 때마다, 그 혼잡 윈도는 제1 혼잡 윈도로 서서히 점진적으로 증가할 수 있을 뿐이다. 결론적으로, 단말에 서비스를 정상적으로 제공할 수 있는 혼잡 윈도로 복구하기 위한 시간 지연이 상대적으로 길고, 서버가 단말에 대해 정상적으로 제공하는 서비스는 악영향을 받는다. 반대로, 무선 네트워크에서 랜덤 패킷 손실이 발생하더라도, 랜덤 패킷 손실이 발생할 때마다, 본 발명의 이 실시예에서 서비스를 지원하기 위해, 패킷 손실이 발생할 때 존재하는 혼잡 윈도는 2단계만을 사용해서 제1 혼잡 윈도로 조정된다. 2단계는: 랜덤 패킷 손실이 발생할 때 존재하는 혼잡 윈도를 제2 혼잡 윈도로 조정하고, 제2 혼잡 윈도를 제1 혼잡 윈도로 조정하는 단계를 포함하며, 이에 따라 네트워크 대역폭이 효과적으로 활용될 수 있으며 서비스는 가능한 한 빨리 지원된다.
도 4는 도 2에 도시된 전송 제어 프로토콜(TCP) 기반으로 데이터 패킷을 송신하는 방법에 기초하여 선택적으로 최적화된 흐름도를 도시한다.
본 발명의 실시예에서는, 전술한 실시예 및 본 발명의 실시예에 기초해서, 네트워크 내의 TCP 데이터 패킷을 송신하는 프로세스에서 패킷 손실이 발생할 때 혼잡 윈도의 조정을 위한 상세한 선택사항이 제공된다.
단계 C401: TCP 데이터 패킷을 송신하는 프로세스에서 패킷 손실이 발생하면, 제3 알고리즘에 따라 TCP 데이터 패킷을 전송하는 혼잡 윈도를 제2 혼잡 윈도로 조정하고, 여기서 제2 혼잡 윈도는 TCP 데이터 패킷 상에서 패킷 손실이 발생할 때 존재하는 제3 왕복 시간에 따라 결정되며, TCP 데이터 패킷을 전송하는 혼잡 윈도를 제2 혼잡 윈도로 조정하는 감소 단계 크기는 제3 왕복 시간과 음의 상관관계를 가진다.
구체적으로, TCP 데이터 패킷의 손실을 인식하는 방법에 대해서는 전술한 단계 B301에서의 대응하는 설명을 참조하면 된다. 서버가 복수의 TCP 데이터 패킷을 단말에 송신하고, TCP 데이터 패킷은 무작위 시간 순서로 단말에 도달하고, 단말은 엔드에 배열되는 복수의 TCP 데이터 패킷(예를 들어, 엔드에 배열되는 3개의 TCP 데이터 패킷)을 수신하였으나 프론트에 배열되는 TCP 데이터 패킷은 수신하지 못하였다. 이 경우, 엔드에 배열되는 각각의 TCP 데이터 패킷을 수신할 때마다, 단말은 프론트에 배열되는 TCP 데이터 패킷을 요구하는 수신확인(ACK)을 서버에 송신한다. 서버가 수신확인을 여러 번(예를 들어 3번) 계속해서 수신한 후, 서버는 프론트에 배열되는 TCP 데이터 패킷이 손실된 것으로 결정한다. 이 실시예에서, 서버가 TCP 데이터 패킷을 송신한 후, TCP 데이터 패킷의 수신확인이 RTO(이것은 전술한 미리 설정된 시간에 속한다) 후에도 단말로부터 여전히 수신되지 않으면, TCP 데이터 패킷이 손실된 것으로 결정된다는 것에 유의해야 한다.
이 실시예에서, TCP 데이터 패킷의 손실이 발생한 후, TCP 데이터 패킷이 손실될 때 존재하는 RTT는 제3 왕복 시간으로 사용된다. 그러므로 제3 왕복 시간은 TCP 데이터 패킷이 손실된 때 존재하는 네트워크 상태를 반영한다. TCP 데이터 패킷이 무작위로 손실되면, 검출된 제3 왕복 시간은 네트워크가 경량의 부하를 가질 때 존재하는 RTT와 같다는 것에 유의해야 한다.
단계 B401에서 송신된 데이터 패킷이 손실되면, 제3 왕복 시간에 기초해서 그리고 제3 알고리즘에 따라 제2 혼잡 윈도가 결정된다. 제3 알고리즘에서 결정되는 제2 혼잡 윈도는 제3 왕복 시간과 부적으로 상관관계를 가진다는 것에 유의해야 한다. 구체적으로, 제3 왕복 시간은 제3 알고리즘의 입력으로 사용된다. 제3 왕복 시간이 증가할수록, 제3 알고리즘에 따라 결정되는 제2 혼잡 윈도는 감소한다. 제3 알고리즘이 전술한 기능을 가진다는 것에 기초해서, 특정한 실시 형태도 제3 알고리즘의 단계도 이 실시예에서 제한되지 않는다. 예를 들어, TCP 데이터 패킷의 손실이 발생할 때 혼잡 윈도가 감소되어야 하는 크기는 제3 알고리즘을 설계하기 위해 서비스의 요구에 따라 결정될 수 있다. 다른 예에서, 기존의 알고리즘(예를 들어, Reno 알고리즘 및 CUBIC 알고리즘)은 제3 알고리즘으로 사용될 수 있다.
선택적으로, 단계 B401에서, TCP 데이터 패킷을 전송하는 혼잡 윈도를 제3 알고리즘에 따라 제2 혼잡 윈도에 조정하는 단계는:
제3 왕복 시간이 지연 구간의 하한과 같으면, TCP 데이터 패킷 상에서 패킷 손실이 발생할 때 존재하는 혼잡 윈도를 제2 혼잡 윈도로 사용하거나, 또는 제3 왕복 시간이 지연 구간의 상한과 같으면, 미리 설정된 혼잡 윈도를 제2 혼잡 윈도로 사용하는 단계
를 포함하며,
상기 지연 구간의 상한은 네트워크에서 TCP의 재전송 타임아웃(retransmission timeout, RTO)이며, 상기 지연 구간의 하한은 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간이며, 미리 설정된 혼잡 윈도는 사용자에 의해 미리 설정된 혼잡 윈도를 말한다.
구체적으로, 서비스를 반송하는 TCP 흐름에 있어서, TCP 프로토콜에서 TCP 흐름에 대해 하나의 RTO가 정의된다. 선택적으로, RTO는 수동으로 수정될 수도 있고, RTO는 현재의 네트워크의 경험 데이터에 따라 설정되기도 한다. 이 실시예에서, RTO는 지연 구간의 상위 경계로서 결정된다. 서버가 서비스를 반송하는 TCP 데이터 패킷을 단말에 송신한 후, 서버가 특정한 시간 후에 단말로부터 TCP 데이터 패킷의 수신확인을 수신하지 못하면, 이것도 패킷 손실이 발생한 것으로 결정된다.
또한, 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간은, 네트워크가 네트워크 혼잡을 가지지 않는 경우에(즉, 경량의 네트워크 부하인 경우에) 서버가 단말에 TCP 데이터 패킷을 송신한 후 TCP 데이터 패킷의 수신확인이 단말로부터 수신될 때 계산되는, 서비스를 반송하는 TCP 데이터 패킷의 RTT이다. 선택적으로, 특정한 실시에서, 네트워크가 경량의 네트워크 부하에 있을 때, 서버는 서비스를 반송하는 TCP 데이터 패킷를 단말에 송신하고, 각각의 TCP 데이터 패킷의 RTT를 검출하며, 그 검출된 RTT 중에서 최소 RTT를 선택한다. 이 실시예에서, 지연 구간의 하위 경계는 그 검출된 RTT 중에서 선택된 최소 RTT로 결정된다.
서비스를 반송하는 TCP 데이터 패킷을 TCP의 혼잡 윈도를 사용해서 단말에 송신하는 것을 서버가 제어하는 프로세스에서 TCP 데이터 패킷의 손실이 발생한다. TCP 데이터 패킷의 손실이 발생할 때 존재하는 제3 왕복 시간이 지연 구간의 하위 경계와 같으면, 그것은 네트워크 상태가 바람직하다는 것을 나타내며, TCP 데이터 패킷의 손실은 가끔 발생한다(예를 들어, 무작위 패킷 손실). 이 경우, TCP 데이터 패킷이 손실될 때 존재하는 혼잡 윈도는 감소하지 않으며, 즉 TCP 데이터 패킷이 손실될 때 존재하는 혼잡 윈도는 제2 혼잡 윈도로 사용되며, 손실된 TCP 데이터 패킷만이 다시 송신되어야 한다. 이 방법에서, 네트워크 상태가 바람직할 때, 패킷 손실이 가끔 발생하면(예를 들어, 무작위 패킷 손실), 혼잡 윈도는 감소하지 않아도 된다. TCP 데이터 패킷의 손실이 검출되면 혼잡 윈도가 크게 감소하는 종래기술과 비교해 보면, 이 실시예에서는 네트워크 대역폭이 더 효과적으로 활용될 수 있고 서비스가 가능한 한 많이 지원된다.
서비스를 반송하는 TCP 데이터 패킷을 TCP의 혼잡 윈도를 사용해서 단말에 송신하는 것을 서버가 제어하는 프로세스에서 TCP 데이터 패킷의 손실이 발생한다. TCP 데이터 패킷의 손실이 발생할 때 존재하는 제3 왕복 시간이 지연 구간의 상위 경계와 같은 것으로 검출되면, 즉 제3 왕복 시간이 RTO와 같으면, 그것은 네트워크가 심각한 혼잡을 가진다는 것을 나타낸다. 이 경우, 혼잡 윈도는 감소되어야 한다. TCP 데이터 패킷이 손실될 때 존재하는 혼잡 윈도는 미리 설정된 혼잡 윈도로 감소된다. 제3 왕복 시간이 RTO에 도달할 때, TCP 데이터 패킷이 손실되는 것으로 결정되고, TCP 데이터 패킷의 제3 왕복 시간의 검출이 종료된다는 것에 유의해야 한다. 그러므로 제3 왕복 시간은 최대한으로 RTO일 수 있다.
선택적으로, 제3 왕복 시간이 지연 구간의 하위 경계와 상위 경계 사이에 있으면, 제3 알고리즘에 따라, 제2 혼잡 윈도는 미리 설정된 혼잡 윈도보다 크고 TCP 데이터 패킷이 손실될 때 존재하는 혼잡 윈도보다 작은 것으로 결정된다. 제3 왕복 시간이 증가할수록, 제3 알고리즘에 따라 결정된 제2 혼잡 윈도는 감소한다.
단계 C402: 제2 혼잡 윈도를 사용해서 TCP 데이터 패킷을 송신한다.
구체적으로, 서비스의 TCP 흐름에서, TCP 데이터 패킷의 손실이 발생하면, 제2 혼잡 윈도는 단계 C401에서 결정되고, 단계 C402에서, 제2 혼잡 윈도는 TCP 데이터 패킷이 손실될 때 존재하는 혼잡 윈도로 대체하는 데 사용되며, 이에 따라 혼잡 윈도의 갱신 및 대체가 수행되며, 그런 다음 제2 혼잡 윈도는 서비스의 TCP 데이터 패킷의 송신을 제어하는 데 사용된다.
본 발명의 실시예에서는 전술한 실시예 및 본 발명의 실시예에 기초해서, 제2 알고리즘의 선택적 상세를 추가로 제공하기 위해, 제2 알고리즘에서 결정되는 혼잡 윈도의 증가 단계 크기가 목표 처리량과 양의 상관관계를 가지고 제1 왕복 시간과 음의 상관관계를 가지며, 제1 알고리즘에서 결정되는 혼잡 윈도의 증가 단계 크기가 제1 왕복 시간과 음의 상관관계를 가진다.
구체적으로, 네트워크 상태를 반영하는 제1 왕복 시간이 제2 왕복 시간보다 짧거나 같으면, 그것은 네트워크 혼잡이 네트워크에서 발생하지 않으며 TCP 데이터 패킷이 손실될 때 존재하는 네트워크 대역폭이 목표 처리량을 충족할 수 있으며, 혼잡 윈도는 제2 알고리즘에 따라 증가될 수 있다는 것을 나타낸다. 구체적으로, 제1 혼잡 윈도가 제2 알고리즘에 따라 결정될 때, 목표 처리량이 증가할수록, 제2 알고리즘에 따라 결정되는 제1 혼잡 윈도 역시 증가한다. 제1 왕복 시간이 증가할수록, 제2 알고리즘에 따라 결정되는 제2 혼잡 윈도가 증가한다. 선택적으로, 제1 왕복 시간이 제2 왕복 시간보다 짧거나 같으면, 그것은 네트워크 혼잡이 발생하지 않는다는 것을 나타내며, 제1 혼잡 윈도가 제2 알고리즘에 따라 결정될 때 존재하는 목표 처리량은 제1 왕복 시간의 가중치(weight)보다 더 큰 가중치를 가진다. 서버가 서비스를 반송하는 TCP 데이터 패킷를 그 결정된 제1 혼잡 윈도를 사용해서 단말에 송신할 때, 목표 처리량에 도달할 수 있다. 그러므로 TCP 데이터 패킷을 분석하여 단말에 의해 획득되는 서비스의 비트 레이트는 서비스가 필요로 하는 비트 레이트를 만족하며, 서버는 단말에 서비스를 정상적으로 제공할 수 있다.
네트워크 상태를 반영하는 제1 왕복 시간이 제2 왕복 시간보다 길면, 그것은 TCP 데이터 패킷이 손실될 때 존재하는 네트워크 대역폭이 더 이상 목표 처리량을 만족할 수 없고, 그 네트워크에서 네트워크 혼잡이 발생한다는 것을 나타낸다. 이 경우, 제1 혼잡 윈도는 제1 알고리즘을 사용해서 결정된다. 제1 혼잡 윈도가 제1 알고리즘에서 제1 왕복 시간에 따라 결정될 때, 제1 왕복 시간이 증가할수록, 제1 알고리즘에 따라 결정되는 제1 혼잡 윈도는 감소한다. 서버가 제1 알고리즘에 따라 결정되는 제1 혼잡 윈도를 사용해서, 단말에 송신되는 TCP 데이터 패킷을 제어할 때, 제1 알고리즘에 따라 결정되는 제1 혼잡 윈도에 의해 제공되는 처리량은 목표 처리량에 도달할 수 없고, 목표 처리량과의 차이가 최소화될 수 있을 뿐이다. 그러므로 TCP 데이터 패킷의 분석하여 단말에 의해 획득되는 서비스의 비트 레이트는 서비스가 필요로 하는 비트 레이트를 만족할 수 없지만, 서비스는 현재의 네트워크 상태에서 최대로 지원될 수 있으며, 목표 처리량과의 차이가 감소하며, 서버는 단말에 서비스를 제공하기 위해 가능한 한 많이 지원된다.
본 발명의 실시예에서는 전술한 실시예 및 본 발명의 실시예에 기초해서, 제2 알고리즘의 선택적 상세를 추가로 제공하기 위해, 상기 제1 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하는 것은 구체적으로:
제1 왕복 시간이 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간과 같으면, 혼잡 윈도의 증가 단계 크기의 값으로 고속 복원 값을 사용하여 제1 혼잡 윈도를 획득하는 단계 - 상기 고속 복원 값은 느린 시작의 것과 같은 자릿수(order of magnitude)를 가짐 - ;
제1 왕복 시간이 네트워크에서의 TCP의 재전송 타임아웃(RTO)과 같으면, 혼잡 윈도의 증가 단계 크기의 값으로 하나의 최대 세그먼트 크기(maximum segment size, MSS)를 사용하여 제1 혼잡 윈도를 획득하는 단계; 또는
제1 왕복 시간이 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간과 네트워크에서의 TCP의 재전송 타임아웃(RTO) 간의 구간 내에서 변하면, 혼잡 윈도의 증가 단계 크기의 값을 하나의 MSS와 고속 복원 값 사이에 있도록 하면서 제1 왕복 시간과 음의 상관관계를 가지도록 설정하여 제1 혼잡 윈도를 획득하는 단계
를 포함한다.
구체적으로, 느린 시작 임계값(slow start threshold, ssthresh로 약칭)이 혼잡 윈도에 대해 미리 설정된다. 제1 왕복 시간이 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간과 같으면, 그것은 네트워크 상태가 바람직하다는 것을 나타낸다. 이 경우, 제1 왕복 시간의 혼잡 윈도가 느린 시작 임계값보다 짧으면, 혼잡 윈도의 증가 단계 크기가 제1 알고리즘에 따라 결정되고, 제1 알고리즘에 따라 결정되는 고속 복원 값(제1 알고리즘에 따라 결정되는 증가 단계 크기) 및 느린 시작 알고리즘에 따라 결정되는 증가 단계 크기는 동일한 자릿수에 속하며, 제1 왕복 시간의 검출된 혼잡 윈도는 고속 복원 갓을 증가시키는 데 사용되어 제1 혼잡 윈도를 획득한다. 이 실시예에서는 느린 시작도 대응하는 느린 시작 알고리즘도 제한되지 않으며, 기존의 느린 시작 및 대응하는 느린 시작 알고리즘이 사용되어 구현될 수 있다는 것에 유의해야 한다.
검출된 제1 왕복 시간이 RTO에 도달하였으면, 그것은 제1 왕복 시간에 의해 반영되는 현재의 네트워크 상태에서 심각한 혼잡이 발생하였다는 것을 나타낸다. 이 경우, 제1 알고리즘에서, 혼잡 윈도의 증가 단계 크기의 값은 하나의 MSS이다. 이 경우, 한 라운드에서 혼잡 윈도의 TCP 데이터 패킷이 성공적으로 송신되더라도, 현재의 혼잡 윈도는 하나의 MSS만큼 증가하여 제1 혼잡 윈도를 획득하며, 제1 혼잡 윈도는 현재의 혼잡 윈도를 갱신하고 대체하는 데 사용된다.
검출된 제1 왕복 시간이 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간과 네트워크 내의 TCP의 재전송 타임아웃(RTO) 간의 구간에 있으면, 제1 알고리즘에서, 혼잡 윈도의 증가 단계 크기의 값은 그에 상응해서 하나의 MSS와 고속 복원 값 사이에 있도록 설정되지만, 제1 알고리즘에 따라 결정되는 증가 단계 크기는 제1 왕복 시간과 음의 상관관계를 가진다. 이 경우, 한 라운드에서 혼잡 윈도의 TCP 데이터 패킷이 성공적으로 송신되더라도, 증가 단계 크기는 현재의 혼잡 윈도에 대해 증가되어 제1 혼잡 윈도를 획득한다.
본 발명의 실시예에서는 전술한 실시예 및 본 발명의 실시예에 기초해서, 제2 알고리즘의 선택적 상세를 추가로 제공하기 위해, 제2 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하는 단계는 구체적으로,
목표 처리량 및 제1 왕복 시간에 따라 목표 윈도를 계산하고, 목표 윈도와 네트워크에서의 TCP의 현재의 혼잡 윈도 간의 차이를 혼잡 윈도의 증가 단계 크기의 값으로 사용하여 제1 혼잡 윈도를 결정하는 단계
를 포함한다.
구체적으로, 제1 왕복 시간이 제2 왕복 시간보다 짧거나 같으면, 그것은 제1 왕복 시간에 의해 반영되는 네트워크 상태가 바람직하며, 네트워크 대역폭은 목표 처리량보다 크거나 같으며, 혼잡 윈도는 서비스에 제공되는 처리량을 향상시키도록 증가될 수 있다는 것을 나타낸다. 현재의 혼잡 윈도를 현재의 네트워크 상태에서의 목표 처리량을 제공할 수 있는 목표 윈도로 한 번에 증가시키기 위해, 혼잡 윈도의 증가 단계 크기의 값은 네트워크 내의 TCP의 현재의 혼잡 윈도와 목표 처리량 간의 차이로 설정된다. 이 방식에서, 증가 단계 크기에 의해 제1 왕복 시간의 검출 동안 존재하는 혼잡 윈도를 증가시킴으로써 획득되는 제1 혼잡 윈도는 바로 목표 윈도에 같아진다. 그러므로 서비스의 목표 처리량을 가능한 한 많이 충족하는 목표 윈도는 TCP 데이터 패킷의 송신을 제어하도록 현재의 네트워크 상태에서 바로 사용될 수 있으며, 이에 의해 서비스를 가능한 한 많이 제공할 수 있다.
본 발명의 실시예에서는, 전술한 실시예 및 본 발명의 실시예에 기초해서, 선택적 상세를 추가로 제공하기 위해, TCP 데이터 패킷 중 하나의 패킷을 분석하여 획득되는 서비스의 비트 레이트에 따라 목표 처리량이 결정된다.
구체적으로, 도 1b를 예로 사용한다. 서버가 단말에 서비스를 제고하는 프로세스에서, 서버는 단말에 각각의 서비스를 제공하는 데 개별적으로 필요한 비트 레이트를 분석에 의해 획득하며, 서버가 단말에 각각의 서비스를 제공하는 데 개별적으로 필요한 목표 처리량은 분석에 의해 획득되는 비트 레이트에 따라 계산된다. 분석의 특정한 실시 방식은 본 발명의 이 실시예에서 제한되지 않는다. 예를 들어, 각각의 서비스는 일반적으로 대응하는 표준 비트 레이트를 가지며, 서비스를 반송하는 TCP 데이터 패킷을 송신하는 데 필요한 목표 처리량은 그에 상응해서 비트 레이트에 따라 결정되며, 여기서 서비스에 대응하는 목표 처리량의 값은 서비스의 비트 레이트의 값보다 크다. 이 방식에서, 서버가 목표 처리량을 사용해서 단말에 서비스를 제공할 때, TCP 데이터 패킷을 분석함으로써 단말에 의해 획득되는 비트 레이트는 서비스가 필요로 하는 비트 레이트를 충족하며, 즉 분석에 의해 단말에 의해 획득되는 서비스의 비트 레이트는 그 서비스에 대응하는 표준 비트 레이트보다 크거나 같다.
선택적으로, TCP 데이터 패킷 중 그 패킷을 분석함으로써 획득되는 서비스의 비트 레이트에 따라 목표 처리량을 결정하는 알고리즘은: 목표 처리량이 서비스의 비트 레이트와 확장 계수의 적(product)과 같다는 것이며, 여기서 확장 계수는 1보다 크다.
도 5는 목표 처리량을 갱신하는 작업 공정도이다. 그렇지만, 설명을 쉽게 하기 위해, 도 5는 이 실시예와 관련된 부분만을 도시한다.
본 발명의 실시예에서는, 전술한 실시예 및 본 발명의 실시예에 기초해서, 현재의 네트워크 상태에 따라 목표 처리량을 갱신하는 관점에서 선택적 상세를 추가로 제공한다. 도 5를 참조하면, 방법은 단계 D501, 단계 D502, 단계 D503를 더 포함한다.
단계 D501: 네트워크에서 TCP 데이터 패킷을 송신하는 실제의 처리량을 검출한다.
단계 D502: 목표 처리량에 대한 실제 처리량의 비율이 제1 임계값보다 크고, 그 네트워크에서 TCP 데이터 패킷을 송신하는 제4 왕복 시간과 네트워크가 경량의 부하를 가질 때 검출되는 왕복 시간 간의 차이가 제2 임계값보다 작으면, 목표 처리량을 증가시킨다.
단계 D503: 목표 처리량에 대한 실제 처리량의 비율이 제3 임계값보다 작고, 제4 왕복 시간과 네트워크가 경량의 부하를 가질 때 검출되는 왕복 시간 간의 차이가 제4 임계값보다 크면, 목표 처리량을 감소시킨다.
제3 임계값은 제1 임계값보다 작고, 제2 임계값은 제4 임계값보다 작다는 것에 유의해야 한다.
구체적으로, 네트워크에서 TCP 데이터 패킷을 송신하는 프로세스에서, 서비스에 대응하는 TCP 흐름의 혼잡 윈도는 목표 처리량에 따라 조정될 수 있으므로, 그 조정된 혼잡 윈도가 서비스의 TCP 데이터 패킷을 송신하는 데 사용되면, 서비스가 필요로 하는 목표 처리량은 가능한 한 많이 충족될 수 있다. 그렇지만, 전술한 실시예에서, 서비스의 비트 레이트는 목표 처리량을 결정하는 동안 도입되는 유일한 파라미터이며, 네트워크 상태의 요인은 고려되지 않는다. 이 실시예에서, 목표 처리량을 결정하는 동안, 서비스의 비트 레이트 및 현재의 네트워크 상태 모두가 고려된다.
구체적으로, 네트워크에서 TCP 데이터 패킷을 송신하는 프로세스에서, TCP 데이터 패킷을 송신하는 현재의 RTT가 검출되고, 그 검출된 현재의 RTT는 제3 왕복 시간으로 사용된다. 네트워크에서 TCP 데이터 패킷을 송신하는 현재의 처리량이 검출된다. 검출된 현재의 처리량은 실제 처리량이다. 실제 처리량을 결정하는 요인은 네트워크 상태, 전송단의 처리량 및 수신단의 처리량을 포함한다. 도 1a에 도시된 시스템을 예로 사용하면, 실제 처리량을 결정하는 요인은 네트워크(103)의 네트워크 상태, 서버(101)의 처리량 및 단말(102)의 처리량을 포함한다. 도 1b에 도시된 시스템을 예로 사용하면, 실제 처리량을 결정하는 요인은 네트워크(203)의 네트워크 상태, 제1 에이전트 장치(204)의 처리량 및 단말(202)의 처리량을 포함한다. 도 1c에 도시된 시스템을 예로 사용하면, 실제 처리량을 결정하는 요인은 네트워크(303)의 네트워크 상태, 제1 에이전트 장치(304)의 처리량 및 제2 에이전트 장치(305)의 처리량을 포함한다. 이 실시예에서는 제4 왕복 시간 및 실제 처리량을 동시에 검출하는 빈도 및 횟수는 제한되지 않는다는 것에 추가로 유의해야 한다. 예를 들어, 제4 왕복 시간 및 실제 처리량은 특정한 시구간에서 한 번에 동시에 검출될 수 있다.
목표 처리량에 대한 실제 처리량의 비율이 계산되고, 제4 왕복 시간과 참조 왕복 시간(즉, 네트워크가 경량의 네트워크 부하의 네트워크 상태에 있는 경우 TCP 데이터 패킷이 송신될 때 검출되는 RTT) 간의 차이가 계산된다.
비율이 제1 임계값보다 크고, 그 차이가 제2 임계값보다 작으면, 그것은 네트워크 상태가 바람직하고, 네트워크의 물리적 대역폭이 목표 처리량보다 크다는 것을 나타낸다. 단계 D502는 목표 처리량을 증가시키도록 수행될 수 있으며, 목표 처리량의 할당된 값은 TCP 프로토콜 스택에서 갱신된다. 선택적으로, 제1 임계값은 1에 근사하는 값이다. 예를 들어, 제1 임계값은 90%이다. 선택적으로, 제2 임계값은 0에 근사하는 값이다. 선택적으로, 단계 D502가 수행된 후에 증가된 목표 처리량이 네트워크 대역폭보다 작게 되는 것이 보장될 때, 단계 D502에서 목표 처리량을 증가시키는 단계 길이 크기는 제한되지 않는다.
비율이 제3 임계값보다 작고, 그 차이가 제4 임계값보다 크면, 그것은 네트워크 상태가 열악하고, 네트워크의 물리적 대역폭이 목표 처리량보다 작다는 것을 나타낸다. 단계 D503은 목표 처리량을 감소시키도록 수행될 수 있으며, 목표 처리량의 할당된 값은 TCP 프로토콜 스택에서 갱신된다. 선택적으로, 제3 임계값은 50%보다 작거나 같다. 예를 들어, 제1 임계값은 20%이다. 선택적으로, 제2 임계값은 비교적 큰 지연 값이다. 선택적으로, 단계 D502가 수행된 후에 감소된 목표 처리량이 네트워크 대역폭보다 작게 되는 것이 보장될 때, 단계 D503에서 목표 처리량을 감소시키는 단계 길이 크기는 제한되지 않는다.
이 실시예에서, 서비스가 필요로 하는 비트 레이트에 따라, 서비스의 TCP 데이터 패킷을 송신하는 데 필요한 목표 처리량을 결정하는 단계에 기초해서, 현재의 네트워크 상태가 추가로 고려된다. 프로토콜 스택에서 목표 처리량의 값은 현재의 네트워크 상태에 따라 실시간으로 조정된다. 그러므로 TCP 데이터 패킷이 손실될 확률이 지나치게 큰 목표 처리량에 따라 결정된 혼잡 윈도로 인해 높아지는 것이 회피될 수 있고, 혼잡 윈도는 지나치게 작은 목표 처리량을 증가시킴으로써 증가할 수 있으며, 이에 의해 네트워크의 물리적 대역폭을 효과적으로 활용할 수 있다.
본 발명의 실시예에서는, 전술한 실시예 및 본 발명의 실시예에 기초해서, 선택적 실시 방식에서, 목표 처리량이 목표 처리량 파라미터를 사용해서 TCP 프로토콜 스택에 전달된다. 구체적으로, 도 1a에 기초하여 제공되는 시스템에서, 목표 처리량 파라미터는 도 1a에서의 서버(101)의 TCP 프로토콜 스택에 부가되며, 목표 처리량은 목표 처리량 파라미터의 값을 할당하는 데 사용된다. 도 1b에 제공된 시스템의 경우, 목표 처리량 파라미터는 제1 프록시 서버(204)의 TCP 프로토콜 스택에 부가되고, 목표 처리량은 목표 처리량 파라미터의 값을 할당하는 데 사용된다. 도 1c에 제공된 시스템의 경우, 목표 처리량 파라미터가 제1 프록시 서버(304)의 TCP 프로토콜 스택에 부가되고, 목표 처리량은 목표 처리량 파라미터의 값을 할당하는 데 사용된다.
전술한 실시예 및 본 발명의 실시예는 모두 도 1a에 기초해서 제공된 시스템을 예로서 설명되며, 여기서 전술한 실시예 및 본 발명의 실시예는 도 1a의 서버(101)에 적용 가능하다는 것에 유의해야 한다. 도 1b에 제공된 시스템의 경우, 전술한 실시예 및 본 발명의 실시예는 제1 프록시 서버(204)에 적용 가능하다는 것에 유의해야 한다. 도 1c에 제공된 시스템의 경우, 전술한 실시예 및 본 발명의 실시예는 제1 프록시 서버(304)에 적용 가능하다는 것에 유의해야 한다.
본 발명의 실시예에서, 이 실시예는 방법을 도 1a의 서버(101)에 적용하는 것에 기초해서 전술한 실시예 및 본 발명의 실시예에 대한 선택적 상세를 추가로 제공한다. 방법은 이하를 포함한다:
서버는 TCP 데이터 패킷 중 하나의 패킷을 분석하여 서비스의 비트 레이트를 획득하고, 그 비트 레이트에 확장 계수를 곱하여 목표 처리량를 획득한다.
구체적으로, 서버가 단말에 서비스를 제공하는 프로세스에서 서비스를 반송하면 서버에 의해 단말에 송신되는 TCP 데이터 패킷의 경우, 서버는 TCP 데이터 패킷에 포함되어 있는 패킷의 필드를 결정하고, 그 필드에 서비스가 필요로 하는 비트 레이트를 기록한다. 단말이 TCP 데이터 패킷을 분석하여 획득하는 서비스가 그 서비스가 필요로 하는 비트 레이트를 충족할 수 있으면, 그것은 서버가 서비스를 정상적으로 그리고 성공적으로 단말에 제공한다는 것을 나타낸다.
TCP 데이터 패킷에 포함되어 있는 패킷에 서비스가 부가되고, 구체적으로, 서비스와 관련된 데이터가 패킷에 부가된다는 것에 유의해야 한다. 그러므로 수치와 관련해서, 제3 알고리즘에 따라 계산되는 목표 처리량의 값은 서비스가 필요로 하는 비트 레이트의 값보다 크다.
본 발명의 실시예에서, 도 1a의 서버(101)가 자신의 TCP 데이터 패킷의 수정을 지원하지 않으면(서버(101)가 TCP 데이터 패킷에 목표 처리량의 부가를 지원하지 않는 것이 포함된다), 도 1b에서, 제1 에이전트 장치(204)는 서버(201)의 에이전트로서 사용되고, 제1 에이전트 장치(204)는 자신의 TCP 프로토콜 스택의 수정을 지원한다(제1 에이전트 장치(204)가 TCP 프로토콜 스택에 목표 처리량의 부가를 지원하는 것이 포함된다). 도 1b에 도시된 바와 같이, 제1 에이전트 장치(204)는 네트워크에 부가되고, 제1 에이전트 장치(204)는 서비스를 반송하는 TCP 데이터 패킷을 단말(202)에 송신하는 서버(201)의 에이전트로서 작동한다. 이 경우, 도 1b에서, 방법이 도 1a의 서버(101)에 적용되는 예에 기초해서 설명되는 전술한 실시예 및 본 발명의 실시예는 더 이상 도 1b의 서버(201)에 적용되지 않지만 대신 도 1b의 제1 에이전트 장치(204)에 적용된다.
방법이 도 1a의 서버(101)에 적용되는 예를 사용해서 설명되는 전술한 실시예 및 본 발명의 실시예가 도 1b의 제1 에이전트 장치(204)에 적용될 때, 단말(202)이 목표 처리량을 계산하는 차이가 존재한다. 다른 단계에서의 서버가 제1 에이전트 장치(204)로 대체된 후, 전술한 실시예 및 본 발명의 실시예는 제1 에이전트 장치(204)에 적용될 수 있다. 차이는 구체적으로 다음과 같이 상세히 설명된다:
전술한 실시예 및 본 발명의 실시예에서 제공하는 TCP 데이터 패킷을 송신하는 방법은 제1 에이전트 장치에 적용된다. 제1 에이전트 장치는 TCP 데이터 패킷를 단말에 송신하는 서비스의 에이전트로서 작동한다. 목표 처리량은 단말에 의해 결정된다. 결정 방법은: TCP 데이터 패킷 중 하나의 패킷을 분석하여 서비스의 비트 레이트를 획득하고, 그 비트 레이트에 확장 계수를 곱하여 목표 처리량을 획득하는 단계를 포함한다. 제1 에이전트 장치는 단말로부터 목표 처리량을 획득한다.
구체적으로, 서버는 수정되는 것을 지원하지 않는 TCP 프로토콜 스택을 가지며, 제1 에이전트 장치는 수정되는 것을 지원하는 TCP 프로토콜 스택을 가지며, 단말은 TCP 프로토콜 스택을 가진다. 서버는 자신의 TCP 프로토콜 스택에 따라, 서비스를 반송하는 TCP 데이터 패킷을 생성하고, TCP 데이터 패킷은 TCP/IP 프로토콜에 기초해서 서버와 제1 에이전트 장치 사이에서 교환된다. 서비스를 반송하면서 제1 에이전트 장치에 의해 서버로부터 수신되는 TCP 데이터 패킷의 경우, 제1 에이전트 장치는 자신의 TCP 프로토콜 스택에 기초해서 TCP 데이터 패킷을 수정하고(TCP 데이터 패킷에 포함되어 있는 패킷에 반송되는 서비스는 수정될 수 없다), 그 수정된 TCP 데이터 패킷을 단말에 송신한다. 단말은 자신의 TCP 프로토콜 스택에 기초해서 TCP 데이터 패킷을 분석하고, 서비스를 반송하는 패킷을 분석해 내며, 패킷을 분석함으로써 서비스와 관련된 데이터를 획득한다.
패킷은 서비스가 필요로 하는 비트 레이트를 추가로 기록한다. TCP 데이터 패킷을 분석하여 패킷을 획득한 후, 단말은 그 패킷을 분석하여 서비스가 필요로 하는 비트 레이트를 획득하고, 그 비트 레이트에 확장 계수를 곱하여 목표 처리량을 획득한다.
이어서, 단말은 TCP의 소켓을 수정하고, 파라미터, 즉 목표 처리량 파라미터를 부가하고, 목표 처리량을 사용해서 목표 처리량 파라미터의 값을 할당하며, 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값(목표 처리량)을 소켓을 사용해서 단말의 TCP 프로토콜 스택에 전송한다. 예를 들어, 목표 처리량 파라미터 "target_throughput"는 소켓 함수 "setsockopt ()"에 부가된다. 비트 레이트 및 확장 계수에 따라 목표 처리량이 계산된 후, 계산된 목표 처리량은 "target_throughput"의 값을 할당하는 데 사용된다. "target_throughput" 및 "target_throughput"의 할당된 값은 "setsockopt ()"을 사용해서 단말의 TCP 프로토콜 스택에 전송된다.
단말은 패킷을 생성하고, 그 패킷의 TCP 옵션을 확장하고, 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값(소켓을 사용해서 TCP 프로토콜 스택에 전송되는 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값)을 TCP 옵션에 부가한다. 단말은 TCP 데이터 패킷(TCP 데이터 패킷은 (목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값을 가지는) TCP 옵션을 가지는 패킷을 포함한다)을 제1 에이전트 장치에 송신한다. 제1 에이전트 장치는 TCP 데이터 패킷을 분석하여, 패킷의 TCP 옵션에 포함되어 있는 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값을 획득할 수 있다. 또한, 제1 프록시 서버는 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값을 제1 프록시 서버의 TCP 프로토콜 스택에 부가할 수 있다.
선택적으로, 단말의 TCP 데이터 패킷이 수정되는 것을 지원하면, 이 실시예에서, 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값이 소켓을 사용해서 수신된 후, "목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값"은 단말의 TCP 프로토콜 스택에 부가된다. 당연히, 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값이 소켓을 사용해서 수신되면, 이 실시예에서, 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값은 단말의 TCP 프로토콜 스택에 부가될 수 없으나, 대신 패킷(목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값은 패킷의 TCP 옵션에 부가된다)이 직접적으로 생성된다. 단말은 패킷을 반송하는 TCP 데이터 패킷을 제1 에이전트 장치에 송신하여, 제1 에이전트 장치가 자신의 TCP 프로토콜 스택에 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값을 부가할 수 있게 한다.
본 발명의 실시예에서, 방법이 도 1a의 서버(101)에 적용되는 예에 기초해서 설명되는 전술한 실시예 및 본 발명의 실시예는 선택적으로 최적화된다. 도 1a의 서버(101)가 자신의 TCP 프로토콜 스택의 수정을 지원하지 않으면(서버(101)가 목표 처리량을 TCP 데이터 패킷에 부가하는 것을 지원하지 않는 것이 포함된다), 도 1c에서, 제1 에이전트 장치(304)는 서버(101)의 에이전트로서 작동한다. 제1 에이전트 장치(304)는 자신의 TCP 프로토콜 스택의 수정을 지원한다(제1 에이전트 장치(304)가 목표 처리량을 TCP 프로토콜 스택에 부가하는 것을 지원하는 것이 포함된다). 또한, 제1 에이전트 장치(305)는 네트워크에 추가로 포함될 수 있다. 도 1c에 도시된 바와 같이, 제2 에이전트 장치(305)는 단(302)의 에이전트로서 작동하여 제1 에이전트 장치(304)와 TCP 데이터 패킷을 교환한다. 제2 에이전트 장치(305)를 부가하는 한 가지 이유는, TCP 프로토콜 스택이 제1 에이전트 장치(304)와 제2 에이전트 장치(305) 사이에서 공유되어, 제2 에이전트 장치(305)가 TCP 데이터 패킷의 방법을 사용해서 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값을 반송하는 패킷을 제1 에이전트 장치(304)에 송신하는 것을 포함하는 것이다. 제2 에이전트 장치(305)를 부가하는 다른 이유는, 동일한 제2 에이전트 장치(305)가 복수의 단말(302)의 에이전트로서 작동하고, 제2 에이전트 장치(305)가 각각의 단말(302)의 에이전트로서 작동하여 제1 에이전트 장치(304)와 TCP 데이터 패킷을 교환하는 것이다.
이 경우, 도 1c에서, 방법이 도 1a의 서버(101)에 적용되는 예에 기초해서 설명되는 전술한 실시예 및 본 발명의 실시예는 더 이상 도 1a의 서버(101)에 적용되지 않으나 대신 도 1c의 제1 에이전트 장치(304)에 적용된다. 방법이 도 1a의 서버(101)에 적용되는 예를 사용해서 설명되는 전술한 실시예 및 본 발명의 실시예가 도 1c의 제1 에이전트 장치(304)에 적용될 때, 단말(302)이 목표 처리량을 계산하는 차이가 존재한다. 다른 단계에서의 서버가 제1 에이전트 장치(304)로 대체된 후, 전술한 실시예 및 본 발명의 실시예는 제1 에이전트 장치(304)에 적용될 수 있다. 차이는 구체적으로 다음과 같이 상세히 설명된다:
전술한 실시예 및 본 발명의 실시예에서 제공하는 TCP 데이터 패킷을 송신하는 방법은 제1 에이전트 장치에 적용된다. 제1 에이전트 장치는 서버의 에이전트로서 작동하여 제2 에이전트 장치에 TCP 데이터 패킷을 송신하므로, 제2 에이전트 장치는 단말에 TCP 데이터 패킷을 포워딩한다. 이어서, 단말은 목표 처리량을 결정하고 그 목표 처리량을 제2 에이전트 장치에 송신한다. 목표 처리량을 결정하는 방법은: TCP 데이터 패킷 중 하나의 패킷을 분석하여 서비스의 비트 레이트를 획득하고, 그 비트 레이트에 확장 계수를 곱하여 목표 처리량을 획득한다. 또한, 제1 에이전트 장치는 제2 에이전트 장치로부터 목표 처리량을 획득한다.
구체적으로, 서버는 수정되는 것을 지원하지 않는 TCP 프로토콜 스택을 가지며, 제1 에이전트 장치는 수정되는 것을 지원하는 TCP 프로토콜 스택을 가지며, 제2 에이전트 장치는 TCP 프로토콜 스택을 가지며, 단말은 TCP 프로토콜 스택을 가진다. 서버는 자신의 TCP 프로토콜 스택에 따라, 서비스를 반송하는 TCP 데이터 패킷을 생성하고, TCP 데이터 패킷은 TCP/IP 프로토콜에 기초해서 서버와 제1 에이전트 장치 사이에서 교환된다. 서비스를 반송하면서 제1 에이전트 장치에 의해 서버로부터 수신되는 TCP 데이터 패킷의 경우, 제1 에이전트 장치는 자신의 TCP 프로토콜 스택에 기초해서 TCP 데이터 패킷을 수정하고(TCP 데이터 패킷에 포함되어 있는 패킷에 반송되는 서비스는 수정될 수 없다), 그 수정된 TCP 데이터 패킷을 제2 에이전트 장치에 송신한다. 제2 에이전트 장치는 자신의 TCP 프로토콜 스택에 기초해서 TCP 데이터 패킷을 수정하고, 다시 수정되는 TCP 데이터 패킷을 단말에 송신한다. 단말은 다시 수정되는 TCP 데이터 패킷을 분석하고, 서비스를 반송하는 패킷을 분석해 내며, 그런 다음 패킷을 분석함으로써 서비스와 관련된 데이터를 획득한다.
패킷은 서비스가 필요로 하는 비트 레이트를 추가로 기록한다. TCP 데이터 패킷을 분석하여 패킷을 획득한 후, 단말은 그 패킷을 분석하여 서비스가 필요로 하는 비트 레이트를 획득하고, 그 비트 레이트에 확장 계수를 곱하여 목표 처리량을 획득한다.
이어서, 단말은 TCP의 소켓을 수정하고, 파라미터, 즉 목표 처리량 파라미터를 부가하고, 서비스가 필요로 하는 비트 레이트에 따라 계산되는 목표 처리량을 사용해서 목표 처리량 파라미터의 값을 할당하며, 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값(목표 처리량)을 소켓을 사용해서 단말의 TCP 프로토콜 스택에 전송한다. 예를 들어, 목표 처리량 파라미터 "target_throughput"는 소켓 함수 "setsockopt ()"에 부가된다. 단말이 서비스가 필요로 하는 비트 레이트에 따라 목표 처리량을 계산한 후, 그 계산된 목표 처리량은 "target_throughput"의 값을 할당하는 데 사용된다. "target_throughput" 및 "target_throughput"의 할당된 값은 "setsockopt ()"을 사용해서 단말의 TCP 프로토콜 스택에 전송된다.
단말은 제1 패킷을 생성하고, 제1 패킷의 TCP 옵션을 확장하고, 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값(소켓을 사용해서 TCP 프로토콜 스택에 전송되는 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값)을 TCP 옵션에 부가한다. 단말은 TCP 데이터 패킷(TCP 데이터 패킷은 (목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값을 가지는) TCP 옵션을 가지는 제1 패킷을 포함한다)을 제2 에이전트 장치에 송신한다.
제2 에이전트 장치는 TCP 데이터 패킷을 분석하여, 제1 패킷의 TCP 옵션에 포함되어 있는 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값을 획득한다. 제2 에이전트 장치는 제2 패킷을 생성하고, 제2 패킷의 TCP 옵션을 확장하고, 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값(제1 패킷에 있는 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값)을 TCP 옵션에 부가한다. 제2 에이전트 장치는 TCP 데이터 패킷(TCP 데이터 패킷은 (목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값을 가지는) TCP 옵션을 가지는 제2 패킷을 포함한다)을 제1 에이전트 장치에 송신한다.
제1 에이전트 장치는 제2 패킷을 분석해 내기 위해 제2 에이전트 장치로부터 수신된 TCP 데이터 패킷을 분석하여, 제2 소켓으로부터 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값을 획득하며, 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값을 제1 에이전트 장치의 TCP 프로토콜 스택에 부가한다.
선택적으로, 제1 소켓으로부터 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값을 획득한 후, 제2 에이전트 장치는 자신의 TCP 프로토콜 스택에 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값을 부가할 수 있다. 당연히, 제2 에이전트 장치가 제1 소켓으로부터 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값을 획득한 후, 이 실시예에서는, 제2 에이전트 장치의 TCP 데이터 패킷이 수정될 수 없으나(즉, 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값은 제2 에이전트 장치의 TCP 프로토콜 스택에 부가된다), 대신 제2 패킷(목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값은 제2 패킷의 TCP 옵션에 부가된다)이 직접적으로 생성된다. 제2 에이전트 장치는 패킷을 반송하는 TCP 데이터 패킷을 제1 에이전트 장치에 송신하여, 제1 에이전트 장치가 자신의 TCP 프로토콜 스택에 목표 처리량 파라미터 및 목표 처리량 파라미터의 할당된 값을 할당할 수 있게 한다.
제2 에이전트 장치가 부가된다는 것에 유의해야 한다. 제1 에이전트 장치 및 제2 에이전트 장치는 고정 라우팅 경로를 가지고 있으므로, 네트워크가 경량의 부하를 가질 때, 제1 에이전트 장치로부터 제2 에이전트 장치로의 TCP 데이터 패킷의 RTT는 기본적으로 변하지 않는다. 그러므로 제2 에이전트 장치가 하나 이상의 단말의 에이전트로서 작동할 때, 제2 에이전트 장치와 제1 에이전트 장치 간의 기존의 TCP 흐름의 RTT는 네트워크가 경량의 부하를 가질 때 이미 결정된 후, 기존의 TCP 흐름에 대응하는 지연 구간의 하위 경계(네트워크가 경량의 부하를 가질 때 존재하는 기존의 TCP 흐름의 RTT)가 결정된다. 서비스의 TCP 흐름이 제2 에이전트 장치와 제1 에이전트 장치 사이에 새로 부가되면, 하나의 라운드에서 대응하는 윈도의 RTT 중 최소 RTT를 그 새로 부가된 TCP 흐름에 대응하는 지연 구간의 하위 경계로서 선택할 필요가 없으나, 대신 기존의 TCP 흐름에 대응하는 지연 구간의 하위 경계가 서비스의 그 새로 부가된 TCP 흐름에 대응하는 지연 구간의 하위 경계로서 직접 사용된다. 즉, 네트워크가 경량의 부하를 가질 때 존재하는 기존의 TCP 흐름의 RTT는 네트워크가 경량의 부하를 가질 때 존재하는 서비스의 그 새로 부가된 TCP 흐름의 RTT로서 직접 사용된다.
본 발명의 실시예에서, 전술한 실시예 및 본 발명의 실시예에 기초해서, 방법이 도 1a의 서버(101), 도 1b의 제1 에이전트 장치(204), 또는 도 1c의 제2 에이전트 장치(304)에 적용되는지에 관계없이, 목표 처리량은 서비스의 비트 레이트에 기초해서 계산되며(비트 레이트에 확장 계수를 곱하여 목표 처리량을 획득한다), 이 실시예에서, 서비스는 다음과 같이 상세히 설명된다:
서비스가 오디오 서비스이면, 서비스의 비트 레이트는 오디오 서비스의 오디오 비트 레이트이고,
서비스가 비디오 서비스이면, 서비스의 비트 레이트는 비디오 서비스의 비디오 비트 레이트이거나, 또는
서비스가 오디오 및 비디오 서비스이면, 서비스의 비트 레이트는 오디오 및 비디오 서비스의 오디오 및 비디오 비트 레이트이다.
구체적으로, 단말에 서비스를 제공할 때, 서버는 서비스를 반송하는 패킷을 생성한다. 동시에, 그 패킷에서 필드가 결정되며, 서비스가 필요로 하는 비트 레이트는 그 필드에 기록된다. 서비스가 오디오 서비스이면, 오디오 서비스가 필요로 하는 비트 레이트가 그 패킷의 필드에 기록된다. 서비스가 비디오 서비스이면, 비디오 서비스가 필요로 하는 비트 레이트가 그 패킷의 필드에 기록된다. 서비스가 오디오 및 비디오 서비스이면, 오디오 및 비디오 서비스가 필요로 하는 비트 레이트가 그 패킷의 필드에 기록된다.
본 발명의 실시예에서, 도 6은 본 발명의 실시예에 따라 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 장치(600)의 논리적 구조에 대한 개략도이다. 도 6에 도시된 바와 같이, 장치(600)는 적어도: 지연 결정 유닛(601), 윈도 조정 유닛(602) 및 데이터 패킷 송신 유닛(603)을 포함한다.
지연 결정 유닛(601)은 TCP 데이터 패킷을 송신하는 제1 왕복 시간을 획득하고, 제2 왕복 시간을 결정하도록 구성되어 있으며, 상기 제2 왕복 시간은 제1 알고리즘에 따라 결정되는 혼잡 윈도와 제2 알고리즘에 따라 결정되는 혼잡 윈도가 동일한 크기를 가질 때 존재하는 왕복 시간이며, 제1 알고리즘에서 혼잡 윈도의 증가 단계 크기는 제1 왕복 시간에 따라 결정되고, 제2 알고리즘에서 혼잡 윈도의 증가 단계 크기는 제1 왕복 시간 및 목표 처리량에 따라 결정되며, 상기 목표 처리량은 TCP 데이터 패킷에 대응하는 서비스에 대해 획득될 것으로 예상되는 처리량이다.
윈도 조정 유닛(602)은 제1 왕복 시간이 제2 왕복 시간보다 길면, 제1 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하거나, 또는 제1 왕복 시간이 제2 왕복 시간보다 짧으면, 제2 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하도록 구성되어 있다.
데이터 패킷 송신 유닛(603)은 제1 혼잡 윈도를 사용해서 TCP 데이터 패킷을 송신하도록 구성되어 있다.
선택적으로, 제2 알고리즘에서 결정되는 혼잡 윈도의 증가 단계 크기는 목표 처리량과 양의 상관관계를 가지고 제1 왕복 시간과 음의 상관관계를 가지며, 제1 알고리즘에서 결정되는 혼잡 윈도의 증가 단계 크기는 제1 왕복 시간과 음의 상관관계를 가진다.
선택적으로, 목표 처리량은 TCP 데이터 패킷 중 하나의 패킷을 분석하여 획득되는, 서비스의 비트 레이트에 따라 결정된다.
선택적으로, TCP 데이터 패킷 중 하나의 패킷을 분석하여 획득되는, 서비스의 비트 레이트에 따라 결정되는 목표 처리량을 결정하는 알고리즘은: 상기 목표 처리량이 상기 서비스의 비트 레이트와 확장 계수의 적(product)과 같다는 것이며, 상기 확장 계수는 1보다 크다.
선택적으로, 윈도 조정 유닛(602)은 TCP 데이터 패킷을 송신하는 프로세스에서 패킷 손실이 발생하면, 상기 TCP 데이터 패킷을 전송하는 혼잡 윈도를 제3 알고리즘에 따라 제2 혼잡 윈도에 조정하도록 추가로 구성되어 있으며, 제2 혼잡 윈도는 TCP 데이터 패킷 상에서 패킷 손실이 발생할 때 존재하는 제3 왕복 시간에 따라 결정되며, TCP 데이터 패킷을 전송하는 혼잡 윈도를 제2 혼잡 윈도로 조정하는 감소 단계 크기는 제3 왕복 시간과 음의 상관관계를 가지며,
데이터 패킷 송신 유닛(603)은 제2 혼잡 윈도를 사용해서 TCP 데이터 패킷을 송신하도록 추가로 구성되어 있다.
선택적으로, 윈도 조정 유닛(602)이 TCP 데이터 패킷을 전송하는 혼잡 윈도를 제3 알고리즘에 따라 제2 혼잡 윈도에 조정하도록 추가로 구성되어 있는 것은 구체적으로:
윈도 조정 유닛(602)이, 제3 왕복 시간이 지연 구간의 하한과 같으면, TCP 데이터 패킷 상에서 패킷 손실이 발생할 때 존재하는 혼잡 윈도를 제2 혼잡 윈도로 사용하거나, 또는 제3 왕복 시간이 지연 구간의 상한과 같으면, 미리 설정된 혼잡 윈도를 제2 혼잡 윈도로 사용하도록 추가로 구성되어 있는 것이며, 상기 지연 구간의 상한은 네트워크에서 TCP의 재전송 타임아웃(RTO)이며, 상기 지연 구간의 하한은 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간이다.
선택적으로, 윈도 조정 유닛(602)이 제1 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하도록 구성되어 있는 것은 구체적으로:
윈도 조정 유닛(602)이, 제1 왕복 시간이 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간과 같으면, 혼잡 윈도의 증가 단계 크기의 값으로 고속 복원 값을 사용하여 제1 혼잡 윈도를 획득하도록 구성되어 있는 것 - 상기 고속 복원 값은 느린 시작의 것과 같은 자릿수(order of magnitude)를 가짐 - ;
윈도 조정 유닛(602)이, 제1 왕복 시간이 네트워크에서의 TCP의 재전송 타임아웃(RTO)과 같으면, 혼잡 윈도의 증가 단계 크기의 값으로 하나의 최대 세그먼트 크기(MSS)를 사용하여 제1 혼잡 윈도를 획득하도록 구성되어 있는 것; 또는
윈도 조정 유닛(602)이, 제1 왕복 시간이 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간과 네트워크에서의 TCP의 재전송 타임아웃(RTO) 간의 구간 내에서 변하면, 혼잡 윈도의 증가 단계 크기의 값을 하나의 MSS와 고속 복원 값 사이에 있도록 하면서 제1 왕복 시간과 음의 상관관계를 가지도록 설정하여 제1 혼잡 윈도를 획득하도록 구성되어 있는 것
을 포함한다.
선택적으로, 윈도 조정 유닛(602)이 제2 알고리즘에 따라 결정되는 혼잡 윈도를 제1 혼잡 윈도로 사용하도록 구성되어 있는 것은 구체적으로:
윈도 조정 유닛(602)이 목표 처리량 및 제1 왕복 시간에 따라 목표 윈도를 계산하고, 상기 목표 윈도와 네트워크에서의 TCP의 현재의 혼잡 윈도 간의 차이를 혼잡 윈도의 증가 단계 크기의 값으로 사용하여 제1 혼잡 윈도를 결정하도록 구성되어 있는 것이다.
선택적으로, 장치는 네트워크 상태에 따라 목표 처리량을 갱신하는 관점에서 최적화된다. 도 7을 참조하면, 장치는 처리량 검출 유닛(604) 및 목표 처리량 조정 유닛(605)을 포함한다.
처리량 검출 유닛(604)은 네트워크에서 TCP 데이터 패킷을 송신하는 실제 처리량을 검출하도록 구성되어 있다.
목표 처리량 조정 유닛(605)은 목표 처리량에 대한 실제 처리량의 비율이 제1 임계값보다 크고, 네트워크에서 TCP 데이터 패킷을 송신하는 제4 왕복 시간과 네트워크가 경량을 부하를 가질 때 검출된 왕복 시간 간의 차이가 제2 임계값보다 작으면, 상기 목표 처리량을 증가시키거나, 또는 상기 목표 처리량에 대한 실제 처리량의 비율이 제3 임계값보다 작고, 제4 왕복 시간과 네트워크가 경량을 부하를 가질 때 검출된 왕복 시간 간의 차이가 제4 임계값보다 크면, 상기 목표 처리량을 감소시키도록 구성되어 있다.
선택적으로, 목표 처리량은 목표 처리량 파라미터를 사용해서 TCP 프로토콜 스택에 전달된다.
본 발명의 실시예에서, 도 8은 본 발명의 실시예에 따른 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 장치(600)의 하드웨어 구조에 대한 개략도이고, 송신 장치(800)의 하드웨어 구조를 도시한다. 도 8에 도시된 바와 같이, 송신 장치(800)는 프로세서(801), 메모리(802) 및 네트워크 인터페이스(804)를 포함한다. 프로세서(801)는 버스(803)를 사용해서 메모리(802) 및 네트워크 인터페이스(804) 모두에 연결된다. 송신 장치(800)는 네트워크 인터페이스(804)를 사용해서 네트워크(103)에 연결되어 TCP 데이터 패킷을 송신/수신한다.
메모리(802)는 컴퓨터 실행 명령을 저장하도록 구성되어 있다. 송신 장치(800)가 실행될 때, 프로세서(801)는 메모리(802)에 저장되어 있는 컴퓨터 실행 명령을 읽어내어, 송신 장치(800)에 적용되면서 전술한 실시예 및 본 발명의 실시예에서 제공되는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법을 수행한다.
프로세서(801)는 범용 중앙처리장치(Central Processing Unit, CPU), 마이크로프로세서, 주문형 집적회로(Application Specific Integrated Circuit, ASIC), 또는 하나의 집적회로일 수 있으며, 관련 프로그램을 실행하여 본 발명의 실시예에서 제공하는 기술적 솔루션을 실시하도록 구성되어 있다. 기술적 솔루션은 전술한 실시예 및 본 발명의 실시예에서 제공하는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법을 포함한다.
메모리(802)는 리드-온리 메모리(Read Only Memory, ROM), 정적 저장 장치, 동적 저장 장치, 또는 랜덤 액세스 메모리(random access memory, RAM)일 수 있다. 메모리(802)는 운영체제 및 다른 응용 프로그램을 저장할 수 있다. 본 발명의 실시예에서 제공하는 기술적 솔루션이 소프트웨어 또는 펌웨어를 사용해서 구현될 때, 본 발명의 실시예에서 제공하는 기술적 솔루션을 구현하는 데 사용되는 프로그램 코드는 메모리(802)에 세이브되어, 송신 장치(800)에 적용되면서 전술한 실시예 및 본 발명의 실시예에서 제공하는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법의 프로그램 코드가 메모리(802)에 세이브되어, 프로세서(801)에 의해 실행되는 것을 포함한다.
네트워크 인터페이스(804)는 송수신기 장치에서 사용되는데, 이것은 예를 들어, 송신 장치(800)와 다른 장치 또는 통신 네트워크 간의 네트워크 통신을 구현하기 위한 송수신기이되, 이에 제한되지 않는다. 선택적으로, 네트워크 인터페이스(804)는 네트워크에 접속하도록 구성되어 있는 인터페이스 중 하나일 수 있는데, 예를 들어, 이더넷에 접속하도록 구성되어 있는 이더넷 인터페이스일 수 있다. 이더넷 인터페이스는 RJ-45 인터페이스, RJ-11 인터페이스, SC 섬유 인터페이스, FDDI 인터페이스, AUI 인터페이스, BNC 인터페이스, 및 콘솔 인터페이스를 포함하되 이에 제한되지 않는다.
버스(803)는 송신 장치(800)의 멤버(예를 들어, 프로세서(801), 메모리(802), 네트워크 인터페이스(804)) 간에 정보를 전달하는 데 사용되는 경로를 포함할 수 있다.
선택적으로, 송신 장치(800)는 입력/출력 인터페이스(805)를 더 포함한다. 입력/출력 인터페이스(805)는: 입력되는 데이터 및 정보를 수신하고, 연산 결과와 같은 데이터를 출력하도록 구성되어 있다.
도 8의 송신 장치(800)에는 프로세서(801), 메모리(802), 네트워크 인터페이스(804) 및 버스(803)만이 도시되어 있으나, 특정한 실시 프로세스에서 당업자는 송신 장치(800)가 정상적인 동작에 필요한 다른 장치를 더 포함한다는 것을 이해한다는 것에 유의해야 한다. 한편, 특정한 요구사항에 따라, 당업자라면 송신 장치(800)는 다른 추가의 기능을 실시하는 하드웨어 장치를 더 포함할 수 있다는 것을 이해할 수 있을 것이다. 또한, 당업자라면 송신 장치(800)가 도 8에 도시된 장치 모두를 반드시 포함하는 것이 아니라 대안으로 본 발명의 이 실시예를 실시하는 데 필요한 장치만을 포함할 수 있다는 것에 유의해야 한다.
본 발명의 실시예에서, 시스템(100)이 제공된다. 도 1a를 참조하면, 시스템(100)은 서버(101) 및 단말(102)을 포함한다. 서버(101)는 네트워크(103)를 사용해서 단말(102)과 통신 접속 상태에 있다. 서버(101)는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 전술한 장치(800)이며, 네트워크(103)를 사용해서 단말(102)에 TCP 데이터 패킷을 송신한다.
본 발명의 실시예에서, 시스템(200)이 제공된다. 도 1b를 참조하면, 시스템(200)은 서버(201), 제1 에이전트 장치(204) 및 단말(202)을 포함한다. 제1 에이전트 장치(204)는 서버(201) 및 단말(202) 모두와 통신 접속 상태에 있다. 서버(201)는 제1 에이전트 장치(204)를 에이전트로서 사용해서 단말(202)에 TCP 데이터 패킷을 송신하도록 구성되어 있다.
제1 에이전트 장치(204)는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 전술한 장치(800)이며, 서버(201)에 의해 단말(202)에 송신된 TCP 데이터 패킷을 수신하고 서버(201)의 에이전트로서 작동하여 TCP 데이터 패킷을 단말(202)에 송신하도록 구성되어 있다.
선택적으로, 단말(202)은 목표 처리량 파라미터를 사용해서 단말(202)의 TCP 프로토콜 스택으로부터 제1 에이전트 장치(204)의 TCP 프로토콜 스택에 목표 처리량을 전달하도록 구성되어 있다.
본 발명의 실시예에서, 시스템(300)이 제공된다. 도 1c를 참조하면, 시스템(300)은 서버(301), 제1 에이전트 장치(304), 제2 에이전트 장치(305) 및 단말(302)을 포함한다. 제1 에이전트 장치(304)는 서버(301) 및 제2 에이전트 장치(305) 모두와 통신 접속 상태에 있다. 서버(301)는 제1 에이전트 장치(304)를 에이전트로서 사용해서 단말(302)에 TCP 데이터 패킷을 송신하도록 구성되어 있다.
제1 에이전트 장치(304)는 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 전술한 장치(800)이며, 서버(301)에 의해 단말(302)에 송신된 TCP 데이터 패킷을 수신하고 서버(301)의 에이전트로서 작동하여 TCP 데이터 패킷을 제2 에이전트 장치(305)에 송신하도록 구성되어 있다.
제2 에이전트 장치(305)는 TCP 데이터 패킷을 수신하고 상기 TCP 데이터 패킷을 단말(302)에 포워딩하도록 구성되어 있다.
선택적으로, 단말(302)은 목표 처리량 파라미터를 사용해서 단말(302)의 TCP 프로토콜 스택으로부터 제2 에이전트 장치(305)의 TCP 프로토콜 스택에 목표 처리량을 전달하도록 구성되어 있다.
제2 에이전트 장치(305)는 목표 처리량 파라미터를 사용해서 제2 에이전트 장치(305)의 TCP 프로토콜 스택으로부터 제1 에이전트 장치(304)의 TCP 프로토콜 스택에 목표 처리량을 전달하도록 추가로 구성되어 있다.
본 출원에서 제공하는 수 개의 실시예에서, 전술한 시스템, 장치, 및 방법은 다른 방식으로도 실현될 수 있다는 것은 물론이다. 예를 들어, 설명된 장치 실시예는 단지 예시에 불과하다. 예를 들어, 유닛의 분할은 단지 일종의 논리적 기능 분할일 뿐이며, 실제의 실행 동안 다른 분할 방식으로 있을 수 있다. 예를 들어, 복수의 유닛 또는 구성요소를 다른 시스템에 결합 또는 통합할 수 있거나, 또는 일부의 특징은 무시하거나 수행하지 않을 수도 있다. 또한, 도시되거나 논의된 상호 커플링 또는 직접 결합 또는 통신 접속은 일부의 인터페이스를 통해 실현될 수 있다. 장치 또는 유닛 간의 간접 결합 또는 통신 접속은 전자식, 기계식 또는 다른 형태로 실현될 수 있다.
별도의 부분으로 설명된 유닛들은 물리적으로 별개일 수 있고 아닐 수도 있으며, 유닛으로 도시된 부분은 물리적 유닛일 수도 있고 아닐 수도 있으며, 한 위치에 위치할 수도 있고, 복수의 네트워크 유닛에 분산될 수도 있다. 유닛 중 일부 또는 전부는 실제의 필요에 따라 선택되어 실시예의 솔루션의 목적을 달성할 수 있다.
또한, 본 발명의 실시예에서의 기능 유닛은 하나의 프로세싱 유닛으로 통합될 수 있거나, 각각의 유닛이 물리적으로 단독으로 존재할 수도 있거나, 2개 이상의 유닛이 하나의 유닛으로 통합될 수도 있다. 통합 유닛은 하드웨어의 형태로 실현될 수도 있고, 소프트웨어 기능 유닛의 형태로 실현될 수도 있다.
소프트웨어 기능 모듈의 형태로 실현된 전술한 집적 모듈은 저장 매체에 저장되어 있고 본 발명의 실시예에 설명된 방법의 단계 중 일부 또는 전부를 수행하도록 컴퓨터 장치(이것은 퍼스널 컴퓨터, 서버, 또는 네트워크 장치 등이 될 수 있다)에 명령하는 수개의 명령어를 포함한다. 전술한 저장 매체는: 프로그램 코드를 저장할 수 있는 임의의 저장 매체, 예를 들어, USB 플래시 디스크, 휴대형 하드디스크, 리드-온리 메모리(Read-Only Memory, ROM으로 약칭), 랜덤 액세스 메모리(Random Access Memory, RAM으로 약칭), 자기디스크 또는 광디스크를 포함한다.
마지막으로, 전술한 실시예는 본 발명의 기술적 솔루션을 설명하기 위한 것에 지나지 않으며, 본 발명을 제한하려는 것이 아님에 유의해야 한다. 본 발명을 전술한 실시예를 참조하여 설명하였으나, 당업자라면 전술한 실시예에 설명된 기술적 솔루션에 대한 수정, 또는 기술적 특징 중 일부 또는 전부에 대한 등가의 대체는 대응하는 기술적 솔루션의 본질이 본 발명의 실시예의 기술적 솔루션의 범위를 벗어나지 않는 한, 이러한 변형 또는 대체를 수행할 수 있다는 것을 이해할 수 있을 것이다.
Claims (26)
- 전송 제어 프로토콜(Transmission Control Protocol, TCP) 데이터 패킷을 송신하는 방법으로서,
네트워크에서 TCP 데이터 패킷을 송신하는 제1 왕복 시간(round-trip time)을 획득하는 단계;
제2 왕복 시간을 결정하는 단계 - 제2 왕복 시간은 제1 알고리즘에 따라 결정되는 혼잡 윈도우와 제2 알고리즘에 따라 결정되는 혼잡 윈도우가 동일한 크기를 가질 때 존재하는 왕복 시간이며, 제1 알고리즘에서 혼잡 윈도우의 증가 단계 크기는 제1 왕복 시간에 따라 결정되고, 제2 알고리즘에서 혼잡 윈도우의 증가 단계 크기는 제1 왕복 시간 및 목표 처리량에 따라 결정되며, 상기 목표 처리량은 TCP 데이터 패킷에 대응하는 서비스에 대해 획득될 것으로 예상되는 처리량임 - ;
제1 왕복 시간이 제2 왕복 시간보다 길면, 제1 알고리즘에 따라 결정되는 혼잡 윈도우를 제1 혼잡 윈도우로 사용하거나, 또는 제1 왕복 시간이 제2 왕복 시간보다 짧으면, 제2 알고리즘에 따라 결정되는 혼잡 윈도우를 제1 혼잡 윈도우로 사용하는 단계; 및
제1 혼잡 윈도우를 사용해서 TCP 데이터 패킷을 송신하는 단계
를 포함하는 TCP 데이터 패킷을 송신하는 방법. - 제1항에 있어서,
제2 알고리즘에서 결정되는 혼잡 윈도우의 증가 단계 크기는 목표 처리량과 양의(positive) 상관관계를 가지고 제1 왕복 시간과 음의(negative) 상관관계를 가지며, 제1 알고리즘에서 결정되는 혼잡 윈도우의 증가 단계 크기는 제1 왕복 시간과 음의 상관관계를 가지는, TCP 데이터 패킷을 송신하는 방법. - 제1항 또는 제2항에 있어서,
상기 목표 처리량은 TCP 데이터 패킷 중 하나의 패킷을 분석하여 획득되는, 서비스의 비트 레이트에 따라 결정되는, TCP 데이터 패킷을 송신하는 방법. - 제3항에 있어서,
상기 TCP 데이터 패킷 중 하나의 패킷을 분석하여 획득되는, 서비스의 비트 레이트에 따라 결정되는 목표 처리량을 결정하는 알고리즘은: 상기 목표 처리량이 상기 서비스의 비트 레이트와 확장 계수의 적(product)과 같다는 것이며, 상기 확장 계수는 1보다 큰, TCP 데이터 패킷을 송신하는 방법. - 제1항 또는 제2항에 있어서,
상기 TCP 데이터 패킷을 송신하는 프로세스에서 패킷 손실이 발생하면, 상기 TCP 데이터 패킷을 전송하는 혼잡 윈도우를 제3 알고리즘에 따라 제2 혼잡 윈도우로 조정하는 단계 - 제2 혼잡 윈도우는 TCP 데이터 패킷 상에서 패킷 손실이 발생할 때 존재하는 제3 왕복 시간에 따라 결정되며, TCP 데이터 패킷을 전송하는 혼잡 윈도우를 제2 혼잡 윈도우로 조정하는 감소 단계 크기는 제3 왕복 시간과 음의 상관관계를 가짐 - ; 및
제2 혼잡 윈도우를 사용해서 TCP 데이터 패킷을 송신하는 단계
를 더 포함하는 TCP 데이터 패킷을 송신하는 방법. - 제5항에 있어서,
상기 TCP 데이터 패킷을 전송하는 혼잡 윈도우를 제3 알고리즘에 따라 제2 혼잡 윈도우로 조정하는 단계는 구체적으로,
제3 왕복 시간이 지연 구간의 하한과 같으면, TCP 데이터 패킷 상에서 패킷 손실이 발생할 때 존재하는 혼잡 윈도우를 제2 혼잡 윈도우로 사용하거나, 또는 제3 왕복 시간이 지연 구간의 상한과 같으면, 미리 설정된 혼잡 윈도우를 제2 혼잡 윈도우로 사용하는 단계
를 포함하며,
상기 지연 구간의 상한은 네트워크에서 TCP의 재전송 타임아웃(retransmission timeout, RTO)이며, 상기 지연 구간의 하한은 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간인, TCP 데이터 패킷을 송신하는 방법. - 제1항 또는 제2항에 있어서,
상기 제1 알고리즘에 따라 결정되는 혼잡 윈도우를 제1 혼잡 윈도우로 사용하는 것은 구체적으로,
제1 왕복 시간이 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간과 같으면, 혼잡 윈도우의 증가 단계 크기의 값으로 고속 복원 값을 사용하여 제1 혼잡 윈도우를 획득하는 단계 - 상기 고속 복원 값은 느린 시작의 자릿수(order of magnitude)와 같은 자릿수를 가짐 - ;
제1 왕복 시간이 네트워크에서의 TCP의 재전송 타임아웃(RTO)과 같으면, 혼잡 윈도우의 증가 단계 크기의 값으로 하나의 최대 세그먼트 크기(maximum segment size, MSS)를 사용하여 제1 혼잡 윈도우를 획득하는 단계; 또는
제1 왕복 시간이 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간과 네트워크에서의 TCP의 재전송 타임아웃(RTO) 간의 구간 내에서 변하면, 혼잡 윈도우의 증가 단계 크기의 값을 하나의 MSS와 고속 복원 값 사이에 있도록 하면서 제1 왕복 시간과 음의 상관관계를 가지도록 설정하여 제1 혼잡 윈도우를 획득하는 단계
를 포함하는, TCP 데이터 패킷을 송신하는 방법. - 제1항 또는 제2항에 있어서,
상기 제2 알고리즘에 따라 결정되는 혼잡 윈도우를 제1 혼잡 윈도우로 사용하는 단계는 구체적으로,
상기 목표 처리량 및 제1 왕복 시간에 따라 목표 윈도우를 계산하고, 상기 목표 윈도우와 네트워크에서의 TCP의 현재의 혼잡 윈도우 간의 차이를 혼잡 윈도우의 증가 단계 크기의 값으로 사용하여 제1 혼잡 윈도우를 결정하는 단계
를 포함하는, TCP 데이터 패킷을 송신하는 방법. - 제1항 또는 제2항에 있어서,
상기 네트워크에서 TCP 데이터 패킷을 송신하는 실제 처리량을 검출하는 단계; 및
상기 목표 처리량에 대한 실제 처리량의 비율이 제1 임계값보다 크고, 네트워크에서 TCP 데이터 패킷을 송신하는 제4 왕복 시간과 네트워크가 경량의 부하를 가질 때 검출된 왕복 시간 간의 차이가 제2 임계값보다 작으면, 상기 목표 처리량을 증가시키거나, 또는 상기 목표 처리량에 대한 실제 처리량의 비율이 제3 임계값보다 작고, 제4 왕복 시간과 네트워크가 경량의 부하를 가질 때 검출된 왕복 시간 간의 차이가 제4 임계값보다 크면, 상기 목표 처리량을 감소시키는 단계
를 더 포함하는 TCP 데이터 패킷을 송신하는 방법. - 제1항 또는 제2항에 있어서,
상기 목표 처리량은 목표 처리량 파라미터를 사용해서 TCP 프로토콜 스택에 전달되는, TCP 데이터 패킷을 송신하는 방법. - 전송 제어 프로토콜(Transmission Control Protocol, TCP) 데이터 패킷을 송신하는 장치로서,
네트워크에서 TCP 데이터 패킷을 송신하는 제1 왕복 시간을 획득하고, 제2 왕복 시간을 결정하도록 구성되어 있는 지연 결정 유닛 - 상기 제2 왕복 시간은 제1 알고리즘에 따라 결정되는 혼잡 윈도우와 제2 알고리즘에 따라 결정되는 혼잡 윈도우가 동일한 크기를 가질 때 존재하는 왕복 시간이며, 제1 알고리즘에서 혼잡 윈도우의 증가 단계 크기는 제1 왕복 시간에 따라 결정되고, 제2 알고리즘에서 혼잡 윈도우의 증가 단계 크기는 제1 왕복 시간 및 목표 처리량에 따라 결정되며, 상기 목표 처리량은 TCP 데이터 패킷에 대응하는 서비스에 대해 획득될 것으로 예상되는 처리량임 - ;
제1 왕복 시간이 제2 왕복 시간보다 길면, 제1 알고리즘에 따라 결정되는 혼잡 윈도우를 제1 혼잡 윈도우로 사용하거나, 또는 제1 왕복 시간이 제2 왕복 시간보다 짧으면, 제2 알고리즘에 따라 결정되는 혼잡 윈도우를 제1 혼잡 윈도우로 사용하도록 구성되어 있는 윈도우 조정 유닛; 및
제1 혼잡 윈도우를 사용해서 TCP 데이터 패킷을 송신하도록 구성되어 있는 데이터 패킷 송신 유닛
을 포함하는 TCP 데이터 패킷을 송신하는 장치. - 제11항에 있어서,
제2 알고리즘에서 결정되는 혼잡 윈도우의 증가 단계 크기는 목표 처리량과 양의 상관관계를 가지고 제1 왕복 시간과 음의 상관관계를 가지며, 제1 알고리즘에서 결정되는 혼잡 윈도우의 증가 단계 크기는 제1 왕복 시간과 음의 상관관계를 가지는, TCP 데이터 패킷을 송신하는 장치. - 제11항 또는 제12항에 있어서,
상기 목표 처리량은 TCP 데이터 패킷 중 하나의 패킷을 분석하여 획득되는, 서비스의 비트 레이트에 따라 결정되는, TCP 데이터 패킷을 송신하는 장치. - 제13항에 있어서,
상기 TCP 데이터 패킷 중 하나의 패킷을 분석하여 획득되는, 서비스의 비트 레이트에 따라 결정되는 목표 처리량을 결정하는 알고리즘은: 상기 목표 처리량이 상기 서비스의 비트 레이트와 확장 계수의 적(product)과 같다는 것이며, 상기 확장 계수는 1보다 큰, TCP 데이터 패킷을 송신하는 장치. - 제11항 또는 제12항에 있어서,
상기 윈도우 조정 유닛은 상기 TCP 데이터 패킷을 송신하는 프로세스에서 패킷 손실이 발생하면, 상기 TCP 데이터 패킷을 전송하는 혼잡 윈도우를 제3 알고리즘에 따라 제2 혼잡 윈도우로 조정하도록 추가로 구성되어 있으며, 제2 혼잡 윈도우는 TCP 데이터 패킷 상에서 패킷 손실이 발생할 때 존재하는 제3 왕복 시간에 따라 결정되며, TCP 데이터 패킷을 전송하는 혼잡 윈도우를 제2 혼잡 윈도우로 조정하는 감소 단계 크기는 제3 왕복 시간과 음의 상관관계를 가지며,
상기 데이터 패킷 송신 유닛은 제2 혼잡 윈도우를 사용해서 TCP 데이터 패킷을 송신하도록 추가로 구성되어 있는, TCP 데이터 패킷을 송신하는 장치. - 제15항에 있어서,
상기 윈도우 조정 유닛이 TCP 데이터 패킷을 전송하는 혼잡 윈도우를 제3 알고리즘에 따라 제2 혼잡 윈도우로 조정하도록 추가로 구성되어 있는 것은 구체적으로,
상기 윈도우 조정 유닛이, 제3 왕복 시간이 지연 구간의 하한과 같으면, TCP 데이터 패킷 상에서 패킷 손실이 발생할 때 존재하는 혼잡 윈도우를 제2 혼잡 윈도우로 사용하거나, 또는 제3 왕복 시간이 지연 구간의 상한과 같으면, 미리 설정된 혼잡 윈도우를 제2 혼잡 윈도우로 사용하도록 추가로 구성되어 있는 것이며,
상기 지연 구간의 상한은 네트워크에서 TCP의 재전송 타임아웃(RTO)이며, 상기 지연 구간의 하한은 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간인, TCP 데이터 패킷을 송신하는 장치. - 제11항 또는 제12항에 있어서,
상기 윈도우 조정 유닛이 제1 알고리즘에 따라 결정되는 혼잡 윈도우를 제1 혼잡 윈도우로 사용하도록 구성되어 있는 것은 구체적으로,
상기 윈도우 조정 유닛이, 제1 왕복 시간이 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간과 같으면, 혼잡 윈도우의 증가 단계 크기의 값으로 고속 복원 값을 사용하여 제1 혼잡 윈도우를 획득하도록 구성되어 있는 것 - 상기 고속 복원 값은 느린 시작의 자릿수(order of magnitude)와 같은 자릿수를 가짐 - ; 또는
상기 윈도우 조정 유닛이, 제1 왕복 시간이 네트워크에서의 TCP의 재전송 타임아웃(RTO)과 같으면, 혼잡 윈도우의 증가 단계 크기의 값으로 하나의 최대 세그먼트 크기(MSS)를 사용하여 제1 혼잡 윈도우를 획득하도록 구성되어 있는 것; 또는
상기 윈도우 조정 유닛이, 제1 왕복 시간이 네트워크가 경량의 부하를 가질 때 존재하는 왕복 시간과 네트워크에서의 TCP의 재전송 타임아웃(RTO) 간의 구간 내에서 변하면, 혼잡 윈도우의 증가 단계 크기의 값을 하나의 MSS와 고속 복원 값 사이에 있도록 하면서 제1 왕복 시간과 음의 상관관계를 가지도록 설정하여 제1 혼잡 윈도우를 획득하도록 구성되어 있는 것
을 포함하는, TCP 데이터 패킷을 송신하는 장치. - 제11항 또는 제12항에 있어서,
상기 윈도우 조정 유닛이 제2 알고리즘에 따라 결정되는 혼잡 윈도우를 제1 혼잡 윈도우로 사용하도록 구성되어 있는 것은 구체적으로,
상기 윈도우 조정 유닛이 상기 목표 처리량 및 제1 왕복 시간에 따라 목표 윈도우를 계산하고, 상기 목표 윈도우와 네트워크에서의 TCP의 현재의 혼잡 윈도우 간의 차이를 혼잡 윈도우의 증가 단계 크기의 값으로 사용하여 제1 혼잡 윈도우를 결정하도록 구성되어 있는 것인, TCP 데이터 패킷을 송신하는 장치. - 제11항 또는 제12항에 있어서,
상기 네트워크에서 TCP 데이터 패킷을 송신하는 실제 처리량을 검출하도록 구성되어 있는 처리량 검출 유닛; 및
상기 목표 처리량에 대한 실제 처리량의 비율이 제1 임계값보다 크고, 네트워크에서 TCP 데이터 패킷을 송신하는 제4 왕복 시간과 네트워크가 경량의 부하를 가질 때 검출된 왕복 시간 간의 차이가 제2 임계값보다 작으면, 상기 목표 처리량을 증가시키거나, 또는 상기 목표 처리량에 대한 실제 처리량의 비율이 제3 임계값보다 작고, 제4 왕복 시간과 네트워크가 경량의 부하를 가질 때 검출된 왕복 시간 간의 차이가 제4 임계값보다 크면, 상기 목표 처리량을 감소시키도록 구성되어 있는 목표 처리량 조정 유닛
을 더 포함하는 TCP 데이터 패킷을 송신하는 장치. - 제11항 또는 제12항에 있어서,
상기 목표 처리량은 목표 처리량 파라미터를 사용해서 TCP 프로토콜 스택에 전달되는, TCP 데이터 패킷을 송신하는 장치. - 프로그램이 기록되어 있는 컴퓨터-판독 가능형 저장 매체로서,
상기 프로그램은 실행될 때 컴퓨터가 제1항 또는 제2항에 따른 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 방법을 수행할 수 있게 하는, 컴퓨터-판독 가능형 저장 매체. - 시스템으로서,
상기 시스템은 서버 및 단말을 포함하며, 상기 서버는 네트워크를 사용해서 상기 단말과 통신 접속 상태에 있으며,
상기 서버는 제11항 또는 제12항에 따른 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 장치이며, 상기 네트워크를 사용해서 상기 단말에 TCP 데이터 패킷을 송신하는, 시스템. - 시스템으로서,
상기 시스템은 서버, 제1 에이전트 장치 및 단말을 포함하며, 상기 제1 에이전트 장치는 상기 서버 및 상기 단말 모두와 통신 접속 상태에 있으며,
상기 서버는 에이전트로서 작동하는 상기 제1 에이전트 장치를 사용해서 상기 단말에 TCP 데이터 패킷을 송신하도록 구성되어 있으며,
상기 제1 에이전트 장치는 제11항 또는 제12항에 따른 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 장치이며, 상기 서버에 의해 상기 단말에 송신된 TCP 데이터 패킷을 수신하고 상기 서버의 에이전트로서 작동하여 상기 TCP 데이터 패킷을 상기 단말에 송신하도록 구성되어 있는, 시스템. - 제23항에 있어서,
상기 단말은 목표 처리량 파라미터를 사용해서 단말의 TCP 프로토콜 스택으로부터 제1 에이전트 장치의 TCP 프로토콜 스택에 목표 처리량을 전달하도록 구성되어 있는, 시스템. - 시스템으로서,
상기 시스템은 서버, 제1 에이전트 장치, 제2 에이전트 장치 및 단말을 포함하며, 상기 제1 에이전트 장치는 상기 서버 및 상기 제2 에이전트 장치 모두와 통신 접속 상태에 있으며,
상기 서버는 에이전트로서 작동하는 상기 제1 에이전트 장치를 사용해서 상기 단말에 TCP 데이터 패킷을 송신하도록 구성되어 있으며,
상기 제1 에이전트 장치는 제11항 또는 제12항에 따른 전송 제어 프로토콜(TCP) 데이터 패킷을 송신하는 장치이며, 상기 서버에 의해 상기 단말에 송신된 TCP 데이터 패킷을 수신하고 상기 서버의 에이전트로서 작동하여 상기 TCP 데이터 패킷을 상기 제2 에이전트 장치에 송신하도록 구성되어 있으며,
상기 제2 에이전트 장치는 TCP 데이터 패킷을 수신하고 상기 TCP 데이터 패킷을 상기 단말에 포워딩하도록 구성되어 있는, 시스템. - 제25항에 있어서,
상기 단말은 목표 처리량 파라미터를 사용해서 단말의 TCP 프로토콜 스택으로부터 제2 에이전트 장치의 TCP 프로토콜 스택에 목표 처리량을 전달하도록 구성되어 있으며,
상기 제2 에이전트 장치는 목표 처리량 파라미터를 사용해서 제2 에이전트 장치의 TCP 프로토콜 스택으로부터 제1 에이전트 장치의 TCP 프로토콜 스택에 목표 처리량을 전달하도록 추가로 구성되어 있는, 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510093011.3A CN105991462B (zh) | 2015-03-02 | 2015-03-02 | 传输控制协议tcp数据包的发送方法、发送装置和系统 |
CN201510093011.3 | 2015-03-02 | ||
PCT/CN2015/099278 WO2016138786A1 (zh) | 2015-03-02 | 2015-12-28 | 传输控制协议tcp数据包的发送方法、发送装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170121269A KR20170121269A (ko) | 2017-11-01 |
KR102030574B1 true KR102030574B1 (ko) | 2019-10-10 |
Family
ID=56849185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177027525A KR102030574B1 (ko) | 2015-03-02 | 2015-12-28 | 전송 제어 프로토콜(tcp) 데이터 패킷을 송신하는 방법 및 장치 그리고 시스템 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10367922B2 (ko) |
EP (1) | EP3255847B1 (ko) |
JP (1) | JP6526825B2 (ko) |
KR (1) | KR102030574B1 (ko) |
CN (1) | CN105991462B (ko) |
WO (1) | WO2016138786A1 (ko) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102363534B1 (ko) * | 2015-06-08 | 2022-02-17 | 삼성전자주식회사 | 통신 시스템에서 tcp 기반의 전송 제어 방법 및 장치 |
CN105827537B (zh) * | 2016-06-01 | 2018-12-07 | 四川大学 | 一种基于quic协议的拥塞改进方法 |
EP3507957B1 (en) * | 2016-09-02 | 2020-12-09 | Telefonaktiebolaget LM Ericsson (PUBL) | Tcp proxy using a communication distance indicator |
CN108023686B (zh) * | 2016-11-02 | 2022-03-25 | 中兴通讯股份有限公司 | 一种tcp延时处理方法、装置及系统 |
CN106713432B (zh) * | 2016-12-13 | 2019-11-05 | 深信服科技股份有限公司 | 数据缓存方法及网络代理设备 |
CN109274704B (zh) * | 2017-07-17 | 2021-06-29 | 中国电信股份有限公司 | Tcp加速方法和装置、加速效果判断控制器和网关 |
CN109510801B (zh) * | 2017-09-15 | 2021-08-31 | 北京华耀科技有限公司 | 显式正向代理与ssl侦听集成系统及其运行方法 |
CN108075988A (zh) * | 2017-11-16 | 2018-05-25 | 华为技术有限公司 | 数据传输方法和装置 |
CN111010261A (zh) * | 2018-10-08 | 2020-04-14 | 西安旌旗电子股份有限公司 | 智能远控水表系统及其方法 |
US11082883B2 (en) * | 2018-12-20 | 2021-08-03 | Verizon Patent And Licensing Inc. | Providing passive bandwidth estimation of a wireless link in a transmission control protocol (TCP) slow start state |
CN110138608B (zh) * | 2019-05-09 | 2022-08-30 | 网宿科技股份有限公司 | 网络业务服务质量管理的方法及服务器 |
CN110120921B (zh) * | 2019-05-13 | 2022-07-01 | 深圳市赛为智能股份有限公司 | 拥塞避免方法、装置、计算机设备及存储介质 |
US10999206B2 (en) * | 2019-06-27 | 2021-05-04 | Google Llc | Congestion control for low latency datacenter networks |
US11329922B2 (en) * | 2019-12-31 | 2022-05-10 | Opanga Networks, Inc. | System and method for real-time mobile networks monitoring |
CN111314961A (zh) * | 2020-02-19 | 2020-06-19 | 航天恒星科技有限公司 | Tcp传输方法、装置和系统 |
CN111404783B (zh) * | 2020-03-20 | 2021-11-16 | 南京大学 | 一种网络状态数据采集方法及其系统 |
CN113556213B (zh) * | 2020-04-23 | 2022-12-06 | 华为技术有限公司 | 超时重传时间rto确定方法及相关装置 |
EP3907943B1 (en) * | 2020-05-05 | 2022-04-27 | Axis AB | Round-trip estimation |
US11483249B2 (en) * | 2020-09-29 | 2022-10-25 | Edgecast Inc. | Systems and methods for dynamic optimization of network congestion control |
CN112511451B (zh) * | 2020-11-24 | 2022-11-08 | 南京邮电大学 | 控制bbr收敛周期长度的方法及服务器 |
CN112702362B (zh) * | 2021-03-24 | 2021-06-08 | 北京翼辉信息技术有限公司 | Tcp/ip协议栈的增强方法、装置、电子设备及存储介质 |
CN113271316B (zh) * | 2021-06-09 | 2022-09-13 | 腾讯科技(深圳)有限公司 | 多媒体数据的传输控制方法和装置、存储介质及电子设备 |
CN114268988B (zh) * | 2021-12-30 | 2022-10-21 | 广州爱浦路网络技术有限公司 | 基于5g的低轨卫星拥塞控制方法、系统、装置及介质 |
CN114401224B (zh) * | 2022-01-19 | 2023-07-11 | 平安科技(深圳)有限公司 | 一种数据限流方法、装置、电子设备以及存储介质 |
CN115022247B (zh) * | 2022-06-02 | 2023-10-20 | 成都卫士通信息产业股份有限公司 | 流控制传输方法、装置、设备及介质 |
CN115766519A (zh) * | 2022-10-24 | 2023-03-07 | 株洲华通科技有限责任公司 | 便携通信设备的数据传输方法及系统 |
CN115514710B (zh) * | 2022-11-08 | 2023-03-10 | 中国电子科技集团公司第二十八研究所 | 一种基于自适应滑动窗的弱连接流量管控方法 |
CN116055402A (zh) * | 2023-01-05 | 2023-05-02 | 果子(青岛)数字技术有限公司 | 用于大数据和边缘计算的高速通信网络优化方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120213069A1 (en) | 2011-02-23 | 2012-08-23 | Fujitsu Limited | Transmission control method, transmission control system, communication device and recording medium of transmission control program |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7385923B2 (en) | 2003-08-14 | 2008-06-10 | International Business Machines Corporation | Method, system and article for improved TCP performance during packet reordering |
US7423977B1 (en) * | 2004-08-23 | 2008-09-09 | Foundry Networks Inc. | Smoothing algorithm for round trip time (RTT) measurements |
US7760633B2 (en) * | 2005-11-30 | 2010-07-20 | Cisco Technology, Inc. | Transmission control protocol (TCP) congestion control using transmission delay components |
JP5146725B2 (ja) * | 2007-09-19 | 2013-02-20 | 日本電気株式会社 | 通信装置および通信方法 |
US8837279B2 (en) * | 2008-06-06 | 2014-09-16 | Optis Wireless Technology, Llc | Technique for improving congestion control |
CA2737107C (en) | 2010-04-13 | 2019-08-27 | Jingyuan Wang | Tcp congestion control for heterogeneous networks |
US8877880B2 (en) * | 2010-11-17 | 2014-11-04 | Exxonmobil Chemical Patents Inc. | Method for controlling polyolefin properties |
KR102016446B1 (ko) * | 2011-12-28 | 2019-10-21 | 씨디에프 케 유안 | 지연이 큰 네트워크들에 대한 tcp 혼잡 제어 |
JP5867160B2 (ja) * | 2012-02-28 | 2016-02-24 | 富士通株式会社 | 通信制御装置、通信制御方法および通信制御プログラム |
US8711690B2 (en) * | 2012-10-03 | 2014-04-29 | LiveQoS Inc. | System and method for a TCP mapper |
JP6173826B2 (ja) | 2013-08-07 | 2017-08-02 | 日本放送協会 | パケット送信装置およびそのプログラム |
CN104158760B (zh) | 2014-08-29 | 2018-08-03 | 中国科学技术大学 | 一种广域网tcp单边加速的方法及系统 |
-
2015
- 2015-03-02 CN CN201510093011.3A patent/CN105991462B/zh active Active
- 2015-12-28 EP EP15883836.7A patent/EP3255847B1/en active Active
- 2015-12-28 WO PCT/CN2015/099278 patent/WO2016138786A1/zh active Application Filing
- 2015-12-28 JP JP2017546188A patent/JP6526825B2/ja active Active
- 2015-12-28 KR KR1020177027525A patent/KR102030574B1/ko active IP Right Grant
-
2017
- 2017-09-01 US US15/694,581 patent/US10367922B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120213069A1 (en) | 2011-02-23 | 2012-08-23 | Fujitsu Limited | Transmission control method, transmission control system, communication device and recording medium of transmission control program |
Also Published As
Publication number | Publication date |
---|---|
EP3255847B1 (en) | 2020-08-05 |
KR20170121269A (ko) | 2017-11-01 |
EP3255847A4 (en) | 2018-02-28 |
CN105991462B (zh) | 2019-05-28 |
JP2018508151A (ja) | 2018-03-22 |
WO2016138786A1 (zh) | 2016-09-09 |
JP6526825B2 (ja) | 2019-06-05 |
US10367922B2 (en) | 2019-07-30 |
CN105991462A (zh) | 2016-10-05 |
EP3255847A1 (en) | 2017-12-13 |
US20170366650A1 (en) | 2017-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102030574B1 (ko) | 전송 제어 프로토콜(tcp) 데이터 패킷을 송신하는 방법 및 장치 그리고 시스템 | |
US11876714B2 (en) | Method and apparatus for network congestion control based on transmission rate gradients | |
US9325628B2 (en) | Packet handling method, forwarding device and system | |
US10560382B2 (en) | Data transmission method and apparatus | |
JP5020076B2 (ja) | 低頻度ackのシステムに適した高性能tcp | |
US10951530B2 (en) | Systems and methods for adjusting a congestion window value of a content delivery network | |
US20050213507A1 (en) | Dynamically provisioning computer system resources | |
US11937123B2 (en) | Systems and methods for congestion control on mobile edge networks | |
CN102468941A (zh) | 网络丢包处理方法及装置 | |
WO2017114231A1 (zh) | 一种报文发送方法、tcp代理以及tcp客户端 | |
CN104683259A (zh) | Tcp拥塞控制方法及装置 | |
US10868839B2 (en) | Method and system for upload optimization | |
Kumar et al. | TCP BBR for ultra-low latency networking: challenges, analysis, and solutions | |
KR20160071832A (ko) | 무선 통신 시스템에서 자원 분배 방법 및 장치 | |
Tahiliani et al. | TCP variants for data center networks: A comparative study | |
Guo et al. | Stateful-TCP—A new approach to accelerate TCP slow-start | |
JP2007013449A (ja) | シェーパー制御方法、データ通信システム、ネットワークインタフェース装置及びネットワーク中継装置 | |
Ku et al. | Improving end-to-end performance by active queue management | |
Tekala et al. | Dynamic adjustment of Scalable TCP congestion control parameters | |
CN116389480A (zh) | 面向多节点的数据请求方法以及相关设备 | |
Wang et al. | On the scalable fairness and efficient active queue management of RED | |
Prasanna | Improving Throughput In Mobile Ad Hoc Networks Using Receiver Assisted Congestion Control |
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 |