KR20220007698A - 속도 최적화된 정체 관리 - Google Patents

속도 최적화된 정체 관리 Download PDF

Info

Publication number
KR20220007698A
KR20220007698A KR1020217041007A KR20217041007A KR20220007698A KR 20220007698 A KR20220007698 A KR 20220007698A KR 1020217041007 A KR1020217041007 A KR 1020217041007A KR 20217041007 A KR20217041007 A KR 20217041007A KR 20220007698 A KR20220007698 A KR 20220007698A
Authority
KR
South Korea
Prior art keywords
rate
congestion
initial
receiver
delay
Prior art date
Application number
KR1020217041007A
Other languages
English (en)
Other versions
KR102385762B1 (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 KR20220007698A publication Critical patent/KR20220007698A/ko
Application granted granted Critical
Publication of KR102385762B1 publication Critical patent/KR102385762B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/24Radio transmission systems, i.e. using radiation field for communication between two or more posts
    • H04B7/26Radio transmission systems, i.e. using radiation field for communication between two or more posts at least one of which is mobile
    • H04B7/2643Radio transmission systems, i.e. using radiation field for communication between two or more posts at least one of which is mobile using time-division multiple access [TDMA]
    • H04B7/2659Radio transmission systems, i.e. using radiation field for communication between two or more posts at least one of which is mobile using time-division multiple access [TDMA] for data rate control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0858One way delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • 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/11Identifying 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/12Avoiding congestion; Recovering from congestion
    • H04L47/127Avoiding congestion; Recovering from congestion by using congestion prediction
    • 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/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/16Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
    • H04W28/18Negotiating wireless communication parameters
    • H04W28/22Negotiating communication rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/04TPC
    • H04W52/18TPC being performed according to specific parameters
    • H04W52/26TPC being performed according to specific parameters using transmission rate or quality of service QoS [Quality of Service]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B5/00Near-field transmission systems, e.g. inductive or capacitive transmission systems
    • H04B5/70Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes
    • H04B5/72Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes for local intradevice communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/24Radio transmission systems, i.e. using radiation field for communication between two or more posts
    • H04B7/26Radio transmission systems, i.e. using radiation field for communication between two or more posts at least one of which is mobile
    • H04B7/2628Radio transmission systems, i.e. using radiation field for communication between two or more posts at least one of which is mobile using code-division multiple access [CDMA] or spread spectrum multiple access [SSMA]
    • H04B7/264Radio transmission systems, i.e. using radiation field for communication between two or more posts at least one of which is mobile using code-division multiple access [CDMA] or spread spectrum multiple access [SSMA] for data rate control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/26Systems using multi-frequency codes
    • H04L27/2601Multicarrier modulation systems
    • H04L27/2626Arrangements specific to the transmitter only
    • H04L27/2646Arrangements specific to the transmitter only using feedback from receiver for adjusting OFDM transmission parameters, e.g. transmission timing or guard interval length
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/021Terminal devices adapted for Wireless Local Loop operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

RoCEv2 네트워크에서 정체를 감소시키기 위한 방법 및 시스템이 제공된다. 이 방법은 송신기 노드에서 수신기 노드로 흐르는 트래픽에 대해 데이터 센터에서 대규모로 동작하도록 구성된다. 설명된 방법은 빠른 시작 단계, 전환 단계 및 조절 단계로 이루어진 3개의 단계를 갖는다. 빠른 시작 단계에서, 송신기는 빠른 초기 속도로 데이터를 수신기에게 송신한다. 이 송신은 수신기가 정체 이벤트를 관찰할 때까지 계속될 수 있다. 수신기가 정체 이벤트를 관찰한 경우, 송신기는 이 방법이 전환 단계에 진입할 때 데이터 송신 속도를 감소시킨다. 감소된 속도로부터, 이 방법은 피드백 제어 루프와 가산적 증가 승산적 감소(additive increase multiplicative decrease; AIMD) 알고리즘의 조합을 사용하여 속도가 증가되는 조절 단계에 진입한다.

Description

속도 최적화된 정체 관리
관련 출원들에 대한 상호참조
본 출원은 2019년 5월 17일에 출원된 "속도 최적화된 정체 관리(RATE-OPTIMIZED CONGESTION MANAGEMENT)"라는 발명의 명칭의 미국 출원 제16/415,609호의 이익을 주장하며, 그 내용은 모든 목적을 위해 참조로 여기에 포함된다.
데이터 센터 애플리케이션은 호스트의 네트워크 스택을 포함하여 네트워크로부터 높은 처리량과 매우 낮은 지연(latency)을 요구한다. 표준 TCP/IP의 높은 CPU 오버헤드로 인해, 대체 기술로서 이더넷을 통한 원격 직접 메모리 액세스(Remote Direct Memory Access; RDMA)(RDMA over Ethernet; RoCEv2)이 현대 데이터 센터에 배포되어 낮은 지연과 고성능을 달성한다. 부하가 많으면 데이터 센터 네트워크에 정체가 발생하고 패킷 드롭(drop)이 발생할 수 있다. 결과적으로 RDMA의 성능이 크게 저하되고 RoCEv2는 드롭 없는 네트워크를 달성하기 위해 PFC(Priority-based Flow Control)에 의존한다. PFC는 네트워크의 한 영역에서 트래픽이 느려지면 네트워크의 다른 영역에서 트래픽을 느려지게 하는 정체 확산을 일으킬 수 있다. 따라서 정체 확산을 회피하도록 정체 관리가 필요하다. 예를 들어, DCQCN(Data Center Quantized Congestion Notification)과 같은 RoCEv2 네트워크의 기존 정체 관리 방법은 대규모로 제대로 동작하지 않아 수천 개의 일시 중지(pause) 프레임을 생성하고 네트워크 활용도와 평균 처리량이 낮고 정체된 흐름이 매우 느리게 종료되게 할 수 있다.
대규모로 효과적인 데이터 센터 네트워크의 정체 관리가 필요하다. 이러한 방법은 높은 링크 활용도, 매우 낮은 지연 및 네트워크 공정성(network fairness)을 달성할 수 있다. 개시된 방법은 정체 이벤트에 응답하여 데이터 속도를 동적으로 변경하고 피드백 제어 알고리즘을 가산적 증가 승산적 감소(additive increase multiplicative decrease; AIMD) 알고리즘과 결합함으로써 이러한 목표를 달성한다.
일 양상에서, 네트워크 프로토콜에서 정체를 관리하는 컴퓨터 구현 방법(computer-implemented method)이 개시된다. 방법은 네트워크에서 정체 이벤트를 검출하는 단계를 포함한다. 그런 다음, 방법은 초기 속도로부터 최소 속도로 데이터 송신 속도를 늦추는 단계를 포함한다. 그런 다음, 방법은 데이터 송신 속도를 초기 속도의 절반으로 증가시키는 단계를 포함한다. 그런 다음, 방법은 네트워크의 단방향 지연(one-way latency)을 주기적으로 모니터링하는 단계를 포함한다. 마지막으로, 네트워크는 피드백 제어 알고리즘과 가산적 증가 승산적 감소(AIMD) 알고리즘을 사용하여 데이터 송신 속도를 조정하는 단계를 포함한다. 일부 실시예에서, 초기 데이터 송신 속도를 설정하는 단계는 대역폭 지연 곱(bandwidth delay product)과 동일한 초기 윈도우를 설정하는 단계와 초기 윈도우를 설정한 후에 정체가 검출되지 않으면 윈도우 크기를 증가(ramp up)시키는 단계를 더 포함한다. 일부 실시예에서, 초기 데이터 송신 속도는 네트워크의 회선 속도(line rate)와 동일하다. 일부 실시예에서, 문턱 지연(threshold latency)은 데이터 패킷의 송신을 위한 왕복 시간에 기초한다. 일부 실시예에서, 최소 데이터 송신 속도는 초기 데이터 송신 속도의 적어도 1퍼센트 미만이다. 일부 실시예에서, 피드백 제어 루프는 비례 적분 제어기를 포함한다. 일부 실시예에서, 최소 데이터 송신 속도로 송신기로부터 수신기로 데이터를 송신하는 단계는 수신기로부터 송신기로 정체 통지 패킷을 송신하는 단계, 및 송신기가 정체 통지 패킷을 수신할 때 속도를 갱신하는 단계를 포함한다. 일부 실시예에서, 단방향 지연을 지속적으로 모니터링하는 단계는 수신된 패킷의 총 바이트 수를 추적하는 단계를 포함한다. 일부 실시예에서, 관리되는 송신 속도는 최소 송신 속도에서의 한 기간 및 초기 속도의 절반에서의 한 기간 후에 계산된다. 일부 실시예에서, 기간은 송신된 패킷의 왕복 시간에 기초한다. 일부 실시예에서, 초기 송신 속도는 송신기와 수신기 간의 회선 속도에 기초한다. 일부 실시예에서, 초기 송신 속도는 송신기의 링크 속도와 수신기의 링크 속도 간의 최소 속도이다. 일부 실시예에서, AIMD 알고리즘은 관리되는 속도가 문턱값 미만인 경우 관리 속도에 대해 가산(addition)을 수행하고 관리되는 속도가 문턱값을 초과하는 경우 관리되는 속도에 대해 승산(multiplication)을 수행하는 단계를 포함한다. 일부 실시예에서, 가산은 양수에 의해 되어진다. 일부 실시예에서, 곱셈은 0과 1 사이의 수에 의해 되어진다. 일부 실시예에서, 컴퓨터 구현 방법은 문턱 수의 기간 동안 데이터 송신 속도를 조정하는 단계와 정체 이벤트에 대해 네트워크를 모니터링하는 단계로부터 적어도 초기 속도를 획득하는 단계를 더 포함한다.
또 다른 양상에서, 네트워크에서 네트워크 정체를 관리하기 위한 시스템이 개시된다. 시스템은 복수의 컴퓨팅 노드를 포함한다. 컴퓨팅 노드는 하나 이상의 프로세서에 추가하여 하나 이상의 이전에 획득된 지연 값 및 명령어 세트를 저장하기 위한 메모리를 포함한다. 프로세서는 일련의 명령을 실행하여 물리 계층 링크에서 정체 이벤트를 검출하고, 초기 속도로부터 최소 속도로 데이터 송신 속도를 늦추고, 데이터 송신 속도를 초기 속도의 절반으로 증가시키고, 주기적으로 네트워크의 단방향 지연을 모니터링하며, 피드백 제어 알고리즘 및 가산적 증가 승산적 감소(AIMD) 알고리즘을 사용하여 데이터 송신 속도를 조정하도록 구성된다. 일부 실시예에서, 네트워크는 적어도 하나의 이더넷 링크를 갖는다. 일부 실시예에서, 복수의 컴퓨팅 노드는 송신기 노드 및 수신기 노드를 포함한다. 일부 실시예에서, 초기 데이터 송신 속도를 설정하는 것은 대역폭 지연 곱과 동일한 초기 윈도우를 설정하는 것과 초기 윈도우를 설정한 후에 정체가 검출되지 않으면 윈도우 크기를 증가시키는 것을 더 포함한다. 일부 실시예에서, 초기 데이터 송신 속도는 이더넷 링크의 회선 속도와 동일하다. 일부 실시예에서, 문턱 지연은 데이터 패킷의 송신을 위한 왕복 시간에 기초한다. 일부 실시예에서, 최소 데이터 송신 속도는 초기 데이터 송신 속도의 적어도 1퍼센트 미만이다. 일부 실시예에서, 피드백 제어 루프는 비례 적분 제어기를 포함한다. 일부 실시예에서, 최소 데이터 송신 속도로 송신기로부터 수신기로 데이터를 송신하는 것은 수신기로부터 송신기로 정체 통지 패킷을 송신하는 것, 및 송신기가 정체 통지 패킷을 수신할 때 속도를 갱신하는 것을 포함한다. 일부 실시예에서, 단방향 지연을 지속적으로 모니터링하는 것은 수신된 패킷의 총 바이트 수를 추적하는 것을 포함한다. 일부 실시예에서, 관리되는 송신 속도는 최소 송신 속도에서의 한 기간 및 초기 속도의 절반에서의 한 기간 후에 계산된다. 일부 실시예에서, 기간은 송신된 패킷의 왕복 시간에 기초한다. 일부 실시예에서, 초기 송신 속도는 송신기와 수신기 간의 회선 속도에 기초한다. 일부 실시예에서, 초기 송신 속도는 송신기와 수신기 간의 최소 회선 속도이다. 일부 실시예에서, AIMD 알고리즘은 관리되는 속도가 문턱값 미만인 경우 관리되는 속도에 대해 가산을 수행하고 관리되는 속도가 문턱값을 초과하는 경우 관리되는 속도에 대해 승산을 수행하는 것을 포함한다. 일부 실시예에서, 가산은 양수에 의해 되어진다. 일부 실시예에서, 승산은 0과 1 사이의 수에 의해 되어진다.
또 다른 양상에서, 네트워크 프로토콜에서 정체를 관리하는 컴퓨터 구현 방법이 개시된다. 방법은 데이터 속도를 초기 데이터 속도로 설정하는 단계와, 수신기가 정체 이벤트를 검출할 때까지 송신기와 수신기 간에 데이터 송신을 수행하는 단계를 포함하는 빠른 시작 단계(fast start stage)를 포함한다. 방법은 또한 데이터 속도를 한 기간 동안 최소 데이터 속도로 감소시킨 다음 데이터 속도를 한 기간 동안 초기 속도의 절반으로 증가시키는 단계를 포함하는 전환 단계를 포함한다. 방법은 또한 데이터 속도를 수정하기 위해 피드백 제어 루프와 가산적 감소 승산적 증가 알고리즘의 조합을 사용하는 단계를 포함하는 조절 단계를 포함한다. 일부 실시예에서, 컴퓨터 구현 방법은 빠른 시작 단계 이전에, 송신기와 수신기 간에 클록 속도 및 회선 속도를 공유하는 단계를 포함하는 초기 설정 단계를 더 포함한다. 일부 실시예에서, 컴퓨터 구현 방법은 빠른 시작 단계 이전에, 데이터 패킷을 송신하기 위해 윈도우 크기를 초기 윈도우 크기로 설정하는 단계를 더 포함한다. 일부 실시예에서, 컴퓨터 구현 방법은 네트워크 내에서 정체 이벤트가 검출되지 않는 동안 윈도우 크기를 증가시키는 단계를 더 포함한다. 일부 실시예에서, 윈도우 크기는 기하급수적으로 증가된다. 일부 실시예에서, 전환 단계는 정체 이벤트의 검출 이후에 시작된다. 일부 실시예에서, 피드백 제어 알고리즘은 비례 적분 알고리즘이다. 일부 실시예에서, 피드백 제어 루프는 현재 속도, 비례항(proportional term), 및 적분항(integral term) 간의 차이로 설명될 수 있다. 일부 실시예에서, 비례항은 현재 지연과 문턱 지연 간의 차이를 설명하는 반면, 적분항은 현재 지연과 이전 지연 간의 차이를 설명한다. 일부 실시예에서, 승산적 증가는 확률적 이벤트에 응답하여 수행된다. 일부 실시예에서, 승산적 증가는 피드백 제어 루프보다 낮은 주파수에서 수행된다.
또 다른 양상에서, 네트워크에서 네트워크 정체를 관리하기 위한 시스템이 개시된다. 시스템은 복수의 컴퓨팅 노드를 포함한다. 컴퓨팅 노드는 하나 이상의 이전에 획득된 지연 값 및 명령어 세트를 저장하기 위한 메모리를 포함한다. 컴퓨팅 노드는 또한, 데이터 속도를 초기 데이터 속도로 설정하는 단계, 수신기가 정체 이벤트를 검출할 때까지 송신기와 수신기 간에 데이터 송신을 수행하는 단계를 포함하는 빠른 시작 단계, 한 기간 동안 데이터 속도를 최소 데이터 속도로 감소시킨 다음 한 기간 동안 초기 속도의 절반으로 데이터 속도를 증가시키는 단계를 포함하는 전환 단계, 및 데이터 속도를 수정하기 위해 피드백 제어 루프와 가산적 감소 승산적 증가 알고리즘의 조합을 사용하는 단계를 포함하는 조절 단계를 구현하기 위한 명령어들의 세트를 실행하도록 구성된 하나 이상의 프로세서를 포함한다. 일부 실시예에서, 시스템은 빠른 시작 단계 이전에, 송신기와 수신기 간에 클록 속도 및 회선 속도 속도를 공유하는 단계를 포함하는 초기 설정 단계를 더 포함한다. 일부 실시예에서, 시스템은 빠른 시작 단계 이전에 데이터 패킷을 송신하기 위해 윈도우 크기를 초기 윈도우 크기로 설정하는 것을 더 포함한다. 일부 실시예에서, 시스템은 네트워크 내에서 정체 이벤트가 검출되지 않는 동안 윈도우 크기를 증가시키는 것을 더 포함한다. 일부 실시예에서, 윈도우 크기는 기하급수적으로 증가된다. 일부 실시예에서, 전환 단계는 정체 이벤트의 검출 이후에 시작된다. 일부 실시예에서, 피드백 제어 알고리즘은 비례 적분 알고리즘이다. 일부 실시예에서, 피드백 제어 루프는 현재 속도, 비례항, 및 적분항 간의 차이로 설명될 수 있다. 일부 실시예에서, 비례항은 현재 지연과 문턱 지연 간의 차이를 설명하는 반면, 적분항은 현재 지연과 이전 지연 간의 차이를 설명한다. 일부 실시예에서, 승산적 증가는 확률적 이벤트에 응답하여 수행된다. 일부 실시예에서, 승산적 증가는 피드백 제어 루프보다 낮은 주파수에서 수행된다.
본 요지(subject matter)의 진보적 특징들은 첨부된 청구항들에 자세히 기재되어 있다. 본 요지의 특징 및 장점은 본 요지의 원리가 이용되는 예시적인 실시예를 기재하는 다음의 상세한 설명과, 그 첨부된 도안(본 명세서에서 "도면(figure)" 및 "도(FIG)"로 또한 지칭됨)을 참조함으로써 더 잘 이해가 될 것이다.
도 1은 링크를 통해 통신을 나타내는 예시적인 블록도이다.
도 2는 본 명세서에 설명된 실시예들에 따라 정체 관리 시스템에서 측정된 복수의 변수들을 개략적으로 도시한다.
도 3은 물리적 계층 링크에서의 정체 관리 방법에 대한 흐름도를 도시한다.
도 4는 통신을 위한 최적의 동작 포인트를 도시한다.
도 5는 두 방법으로 수행된 실험으로부터의 데이터를 사용하여 DCQCN과 개시된 방법의 지연 비교를 도시한다.
도 6a 및 6b는 도 5의 실험으로부터 네트워크에서의 데이터 흐름의 예시를 도시한다.
도 7a 및 도 7b는 개시된 방법과 DCQCN 간의 큐 점유(queue occupancy)의 비교를 도시한다.
개시된 방법은 링크 계층, 예를 들어, 이더넷 네트워크에서 RoCEv2 네트워크의 정체를 효과적으로 관리한다. 본 방법은 하나 이상의 네트워크 링크에 의해 접속될 수 있는 송신기 노드와 수신기 노드 간의 통신에서 구현될 수 있다. 송신기와 수신기는 다수의 사용자로부터의 데이터 흐름을 관리할 수 있으며 링크를 통해 데이터를 송신하는 다수의 사용자 간에 송신된 데이터에 대한 효율성과 공정성을 유지해야 할 수 있다.
개시된 방법은 빠른 시작 단계, 전환 단계 및 조절 단계로 이루어진 3개의 주요 단계를 가지고 있다. 빠른 시작 단계에서, 송신기와 수신기는 수신기가 정체 이벤트를 기록할 때까지 초기 속도로 서로 데이터를 송신할 수 있다. 정체 이벤트는 수신기의 관점에서 측정된 지연 시간의 급증(spike)으로서 검출될 수 있다. 정체 이벤트 이후에, 전환 단계가 시작된다. 전환 단계에서, 송신기는 정체를 관리하기 위해, 초기에 데이터 속도를 한 기간 동안 최소 속도로 감소시킨 다음, 데이터 속도를 초기 속도의 절반으로 증가시킨다. 전환 단계에 이어, 조절 단계는 피드백 제어와 가산적 증가 승산적 감소(additive increase multiplicative decrease; AIMD) 알고리즘의 조합을 사용하여 낮은 지연, 효율성 및 공정성을 유지하면서 속도를 증가시킨다.
피드백 제어 루프는 속도 증가 또는 감소가 예를 들어, 비례 적분 알고리즘을 사용하여 정밀하게 조정되는 조절 단계에서 주요 속도 계산을 안내한다. AIMD 알고리즘은 흐름이 장기간에 걸쳐 균형을 다시 맞추도록 하는 작은 섭동(perturbation)을 추가한다. 이것은 데이터 패킷의 정체된 큐로의 총 도착 속도에 대해 너무 많은 중단을 야기하지 않고 수행된다.
조절 단계에 이어서, 송신기와 수신기는 결국 초기 속도로 데이터 송신을 다시 시작할 수 있다. 또 다른 정체 이벤트가 검출되면 본 방법이 다시 시작될 수 있다.
일 양상에서, 지연의 변화의 측정에 기초하여 네트워크 정체 상태를 결정하기 위한 본 개시의 방법 및 시스템이 제공된다. 지연 측정은 순방향 경로 지연 또는 예를 들어, 왕복 시간(round-trip time; RTT) 지연과 같은 왕복 지연일 수 있다. 지연의 변화 또는 변경은 정체 신호로 사용될 수 있으므로 송신기는 정체 정도에 대해 적시에 통지될 수 있다.
도 1은 여기에 설명된 요지의 실시예에 따른 링크(103)를 통한 통신을 도시하는 예시적인 블록도이다. 송신기(101) 및 수신기(105)는 링크(103)를 통해 통신하고 있다. 여기에 설명된 예에서, 시스템은 특정 송신 및 수신 작업을 송신기 및 수신기에게 위임한다. 그러나 패킷은 송신기에서 수신기로 또는 수신기에서 송신기로 송신될 수 있다. 통신은 정체를 제어하기 위해 정체 관리 메커니즘을 사용할 수 있다. 일부 경우에, 링크를 따라 네트워크 정체 상태가 결정될 수 있다. 송신기와 수신기는 각각 소스 및 목적지라고 지칭될 수도 있다. 다른 경우에는, 왕복(송신기에서 수신기로 및 그 반대로)에 대한 네트워크 정체가 결정될 수 있다.
송신기(101) 및 수신기(105)는 예를 들어, 개인용 컴퓨터, 태블릿 컴퓨터, 스마트폰, 셋톱 박스, 데스크톱 컴퓨터, 랩톱, 게임 시스템, 서버, 데이터 센터 및 다양한 다른 디바이스 또는 시스템과 같은 다양한 유형의 컴퓨팅 디바이스일 수 있다. 복수의 다른 디바이스 또는 컴포넌트가 네트워크를 통해 접속을 확립할 수 있다. 하나 이상의 송신기는 하나 이상의 수신기와 접속할 수 있다. 송신기와 수신기는 유선 및/또는 무선 접속을 통해 네트워크에 접속할 수 있다. 송신기 또는 수신기는 네트워크에서 소스 노드 및 목적지 노드라고 지칭될 수 있다. 노드는 통신 능력을 갖춘 임의의 디바이스일 수 있다. 통신은 유선 통신 또는 무선 통신일 수 있다.
송신기와 수신기는 각각 메모리(120)와 CPU(130)를 갖는다. 수신기는 RDMA를 사용하여 송신기의 운영 체제를 우회하면서 송신기의 메모리에 저장된 항목에 액세스할 수 있다.
링크(103)는 무선 네트워크, 유선 네트워크 또는 이 둘의 조합으로부터 유래할 수 있다. 예를 들어, 네트워크는 ISP, 셀룰러 또는 광대역 케이블 제공자를 통한 인터넷, 인트라넷, 셀룰러 네트워크, 홈 네트워크, 개인 영역 네트워크 등 중 하나 이상을 포함할 수 있다. 링크(103)는 예를 들어, 하나 이상의 네트워크 컴포넌트, 데이터 서버, 접속 노드, 스위치 등과 같은 인터넷 프로토콜 인터페이스와 관련될 수 있다. 또 다른 양상에서, 송신기(101) 및 수신기(105)는 링크(103)의 일부로서 고려될 수 있다.
송신기(101) 및 수신기(105) 모두는 네트워크 인터페이스 카드(network interface card; NIC)일 수 있는 네트워크 인터페이스(140)를 포함한다. 네트워크 인터페이스를 통해 송신기 노드 및 수신기 노드가 링크(103)와 인터페이싱할 수 있다. 네트워크 인터페이스(140)는 스마트 능력(smart capabilities)을 가질 수 있으며, 이를 통해 네트워크의 노드에 대해 데이터 송신 속도를 제어하는 알고리즘을 구현할 수 있다.
소스 노드(예컨대, 송신기)로부터 목적지 노드(예컨대, 수신기)로 송신된 데이터 패킷(111)은 링크를 따라 지연을 경험할 수도 있고 경험하지 않을 수도 있다. 일부 실시예에서, 지연의 변동 또는 변화의 측정은 정체 정도의 즉각적인 신호를 제공할 수 있다. 지연은 데이터 패킷(111)의 도착 시간에서 데이터 패킷(111)의 송신 시간을 뺀 값으로 계산될 수 있다. 일부 실시예에서, 데이터 패킷의 송신 시간은 송신기의 클록(107)에 의해 제공되고 데이터 패킷의 도착/수신 시간은 수신기의 클록(109)에 의해 제공된다.
송신기 클록(107)과 수신기 클록(109)은 동기화될 필요가 없다. 일부 경우에, 송신기 클록(107) 및/또는 수신기 클록(109)은 동기화되지 않은 자유 실행 클록(free running clocks)일 수 있다. 일부 경우에, 송신기 클록(107) 및 수신기 클록(109)은 동일한 속도들 또는 주파수들에서 동작하고 있다. 대안적으로, 송신기 클록(107) 및 수신기 클록(109)은 상이한 속도 또는 주파수에서 실행될 수 있다. 일부 경우에, 접속 확립 시간에 공통 속도 또는 주파수가 설정될 수 있다. 예를 들어, 공통 속도 또는 주파수는 데이터 패킷을 송신하기 전에 접속 프로토콜에 의해 미리 결정된 주파수이다. 일부 경우에, 송신기 및 수신기 각각과 연관된 속도 또는 주파수가 접속 확립에서 교환될 수 있다. 일부 경우에, 수신기는 송신기의 속도나 주파수에 의해 통지될 수 있다. 대안적 경우에, 송신기와 수신기는 서로 승인되지 않은(unacknowledged) 상이한 주파수들에서 실행될 수 있다. 예를 들어, 송신기와 수신기는 모두 접속 설정에서 핸드셰이크 요청(예컨대, 핸드셰이크 유형을 갖는 제어 패킷)을 송신하며, 여기서 핸드셰이크 패킷은 송신기 및 수신기 모두가 각각 송신기 및 수신기와 연관된 주파수를 사용하여 통신하기로 동의하는 공통 주파수를 포함할 수 있다. 클록 주파수 또는 속도는 접속 확립 시간뿐만 아니라 언제든지 송신될 수 있다는 점에 유의해야 한다. 예를 들어, 클록의 주파수를 포함하는 핸드셰이크 패킷은, 통지 메시지가 생성되거나 타임아웃 타이머가 만료될 때 간격으로 한 번 송신될 수 있다. 클록은 예를 들어, NIC 하드웨어 시간 또는 호스트 디바이스(예컨대, CPU) 클록과 같은 임의의 유형의 로컬 하드웨어 또는 디바이스 클록을 포함할 수 있다. 송신기 클록과 수신기 클록은 동일한 유형일 수도 있고 아닐 수도 있다. 일부 상황에서, NIC 타임스탬프를 호스트 타임스탬프에 매핑하기 위해 교정 또는 매핑 체계가 사용될 수 있다. 일부 경우에, 송신기 클록과 수신기 클록 간에 클록 주파수 드리프트가 발생하여 지연이 변경되는 경향이 나타날 수 있다. 주파수 드리프트의 검출 및 정정은 본 명세서의 뒷부분에서 논의된다.
데이터 패킷(111)이 송신되는 현재 시간을 나타내는 타임스탬프가 데이터 패킷(111)에 포함될 수 있다. 타임스탬프는 송신기 클록에 의해 생성될 수 있다. 타임스탬프는 데이터 패킷의 임의의 필드에 임베드(embed)될 수 있다. 타임스탬프는 다중 비트일 수 있다. 타임스탬프는 예를 들어, 32비트 또는 64비트와 같은 임의의 수의 비트를 포함할 수 있다. 타임스탬프는 피코초, 밀리초 또는 마이크로초 규모의 시간 해상도를 제공할 수 있다.
일부 실시예에서, 각각의 데이터 패킷(111)은 타임스탬핑된다. 대안적으로, 일부 데이터 패킷은 타임스탬핑된다. 예를 들어, 송신 시간을 나타내는 타임스탬프는 X개의 패킷마다 포함될 수 있으며, 여기서 X는 임의의 정수일 수 있다.
타임스탬프를 포함하는 데이터 패킷을 수신하면, 수신기에 의해 지연이 계산될 수 있다. 지연은 수신기에서 로컬 클록의 현재 값에서 데이터 패킷의 타임스탬프 값을 빼거나 그 반대로 해서 결정될 수 있다. 수신기에서 로컬 클록의 현재 값이 송신기 클록과 동기화되지 않을 수 있으므로, 그 차이(differential)가 절대 지연을 나타내지 않을 수 있다. 따라서 시간 차이는 의사 지연(pseudo-latency)이라고 할 수 있다. 본 개시에서, "의사-지연" 및 "지연"이라는 용어들은 등가이며, "지연"이 절대 지연을 나타내는 것으로 해석되어서는 안 된다.
지연의 차이 또는 변화는 정체의 정도를 예측하는 데 사용될 수 있다. 지연 값들의 변화의 차이는 큐잉 지연(queuing delay)의 변화를 나타낼 수 있다. 예를 들어, 지연 값의 증가로 인한 지연의 양의 변화(positive change)는 상승하는 큐를 나타낼 수 있고, 지연의 음의 변화(negative change)는 하강하는 큐를 나타낼 수 있다. 양의 변화가 검출되는 상황에서, 대기 큐(standing queue)가 형성될 때까지 기다리지 않고 지연(delay)에 대응함으로써 저지연 방법을 달성하는 것이 유리하다. 음의 변화가 검출되는 상황에서, 대역폭을 최대한 활용하기 위해 송신 속도를 조정하는 것이 유리하다. 일부 경우에, 예를 들면, 지연 변화를 지연 차이 문턱값과 비교하는 것에 의해 지연 변화가 특정 범위를 초과하는 것으로 결정되면, 통지 메시지가 생성될 수 있다. 증가 변화 또는 감소 변화가 미리 결정된 지연 차이 문턱값을 초과할 때 통지 메시지가 생성될 수 있다. 정체 상태는 문턱값을 초과하는 지연의 변화를 검출하는 것을 포함할 수 있다. 정체 상태는 측정된 지연 변화를 포함할 수 있다. 정체 상태는 본 명세서에서 나중에 논의되는 바와 같이 지연과 관련된 임의의 다른 변수를 더 포함할 수 있다. 일부 실시예들에서, 정체 상태의 결정 시에, 통지 메시지가 수신기에 의해 생성될 수 있다. 통지 메시지는 지연과 관련된 복수의 변수를 포함할 수 있다.
도 2는 본 명세서에 설명된 요지의 실시예들에 따라 정체 관리 시스템에서 측정된 복수의 변수들을 개략적으로 도시한다. 송신기(201) 및 수신기(203)는 도 1에 설명된 바와 같이 각각 로컬 클록(205, 207)과 연관될 수 있다. 송신기 및 수신기는 예를 들어, 데이터 패킷, 제어 패킷, 통지 패킷 등과 같은 메시지를 송신하고 수신하도록 구성될 수 있다. 도 2에 도시된 바와 같이, 하나 이상의 데이터 패킷(211, 217, 219)이 송신기(201)로부터 수신기(203)로 송신될 수 있다. 일부 경우에, 하나 이상의 데이터 패킷은 송신기의 로컬 클록(205)에 의해 타임스탬팅될 수 있다. 송신기와 수신기는 통신 시스템에 묘사되지만 임의의 다른 컴포넌트도 시스템에 포함될 수 있다.
데이터 패킷은 제1 시간에 송신기 또는 수신기로부터 송신되고 제2 시간에 상대방에 의해 수신될 수 있다. 제1 시간(예컨대, T1) 및 제2 시간(예컨대, T2)은 각각 로컬 클록(205, 207)에 의해 결정될 수 있다. 예를 들어, T4 및 T5, 또는 T6 및 T7과 같은 다양한 시점은 동시에 그리고/또는 다양한 순서로 발생할 수 있다. 각 통신은 하나 이상의 패킷을 포함할 수 있다는 점에 유의해야 한다; 그러나 통신은 가독성을 위해 한 컴포넌트에서 다른 컴포넌트로 송신되는 단일 패킷으로서 설명된다. 또한, 통신은 가독성을 위해 겹치지 않고 다양한 시간에 묘사된다는 점에 또한 유의해야 한다. 또한, 문맥이 달리 제시하지 않는 한, 임의의 통신은 중첩될 수 있고, 다른 순서로 있을 수 있으며, 다양한 네트워크 컴포넌트(예컨대, 중간 노드, 스위치 등) 간에 전달될 수 있다. 송신기와 수신기 간에 임의의 다른 양의 메시지가 송신되고 수신될 수 있다는 점에 유의해야 한다; 마찬가지로, 송신기와 수신기는 다이어그램에 도시되지 않은 다양한 다른 컴포넌트에 메시지를 송신하고 그리고/또는 이 컴포넌트로부터 메시지를 수신할 수 있다.
전술한 바와 같이, 지연의 변화에 기초해 지연의 정도가 결정될 수 있다. 일부 실시예에서, 지연의 변화가 지연 차이 문턱값을 초과하는 것으로 결정될 때, 통지 메시지(215, 216)가 생성될 수 있다. 일부 경우에, 새로운 간격(227)은 통지 메시지의 생성에서 시작될 수 있다. 일부 경우에, 새로운 간격(227)은 정체 상태의 검출에서 시작될 수 있다. 일부 경우에, 새로운 간격은 이전 간격으로부터 마지막 데이터 패킷(211)의 수신 시간 또는 도착 시간(예컨대, T2)에서 시작될 수 있다. 간격은 예를 들어, 마이크로초, 밀리초, 초 등과 같은 임의의 시간 길이를 가질 수 있다.
이 도면에 도시된 바와 같이, 간격 내 제1 데이터 패킷의 지연(221)이 계산될 수 있다. 수신기(203)에 의해 제1 데이터 패킷을 수신하면, 수신기는 수신기에서의 로컬 클록의 현재 값 T4에서 데이터 패킷의 타임스탬프 값 T3을 뺄 수 있다. 지연 값은 송신기로부터 수신기로 송신된 하나 이상의 메시지 또는 데이터 패킷(217)에 대해 계산될 수 있다. 두 개 이상의 데이터 패킷 간에 지연의 차이 또는 변화가 계산될 수 있다.
일부 경우에, 지연의 변화는 현재 지연 값과 이전 지연 값의 차이로서 계산될 수 있다. 이전 지연 값은 단일 패킷의 지연 값 또는 이전에 획득된 다수의 패킷의 평균일 수 있다. 일부 경우에, 이전 지연 값은 간격(227)에서 제1 패킷(213)의 지연 값(221)일 수 있다. 일부 경우에, 이전 지연 값은 최소 지연 값일 수 있다. 일부 경우에, 이전 지연 값은 예를 들어, 제1 다수의 패킷과 같은 다수의 이전에 획득된 지연 값의 평균 또는 다수의 패킷의 이동 평균일 수 있다. 일부 경우에, 이전 간격으로부터의 데이터에 기초해 이전 지연 값이 생성될 수 있다. 이전 지연 값은 간격(227) 동안 고정되거나 변경될 수 있다. 예를 들어, 수신기(203)에 의해 추적된 최소 지연 값이 이전 지연 값으로서 취해지면, 최솟값이 갱신될 때 이전 지연 값이 변경될 수 있다. 예를 들어, 데이터 패킷(217)은 간격에서 최소 지연 값(223)을 가질 수 있고, 그러면, 후속 데이터 패킷에 대해, 지연의 변화는 각각의 지연 값과 최소 지연 값 간의 차이로서 계산될 수 있다. 유사하게, 제1 패킷의 지연 값(221)이 이전 지연 값으로 취해질 때, 간격 내의 모든 후속 데이터 패킷에 대해, 지연의 변화는 각각의 지연 값과 제1 패킷의 지연 값 간의 차이로서 계산될 수 있다.
일부 경우에, 지연의 변화가 현재 지연 값과 이전 지연 값 간의 차이로서 결정된다. 현재 지연 값은 단일 패킷의 지연 값일 수 있다. 현재 지연 값은 다수의 패킷의 이동 평균일 수 있다. 이는 지연 측정에서 순간적인 급증을 방지하는 이점을 제공할 수 있다. 다양한 다른 방법 또는 알고리즘을 사용하여 급증을 필터링할 수 있다. 일부 경우에, 지연의 변화는 현재 지연 값과 이전 지연 값으로부터 유도된 값일 수 있다. 예를 들어, 현재 지연 값과 이전 지연 값 간의 차이를 이전 지연 값(또는 현재 지연 값)으로 나눈 값인 지연의 변화는 무차원(dimensionless)일 수 있다.
일부 경우에, 간격의 마지막 패킷(219)은 지연 차이 문턱값을 초과하는 지연 변화를 갖는 패킷이다. 마지막 패킷의 현재 지연은 이동 평균일 수도 있고 아닐 수도 있다. 이 변화는 현재 지연 값과 이전 지연 값 간의 차이의 절댓값일 수 있다. 이 차이는 양수 또는 음수일 수 있다. 지연 차이 문턱값이 충족될 때, 통지 메시지(216)가 생성될 수 있다.
일부 실시예에서, 지연의 변화는 수신기에 의해 결정될 수 있다. 대안적으로, 지연의 변화는 송신기에 의해 결정될 수 있다. 일부 실시예에서, 네트워크 정체의 상태는 수신기에 의해 결정될 수 있다. 대안적으로, 네트워크 정체의 상태는 송신기에 의해 결정될 수 있다.
일부 실시예에서, 통지 메시지는 수신기에 의해 생성될 수 있다. 통지 메시지는 수신기로부터 송신기로 송신될 수 있다. 통지 메시지는 지연의 변화가 지연 차이 문턱값을 초과하는 것으로 결정될 때 즉시 송신될 수 있다(예컨대, T2에서 송신된 메시지(215)). 통지 메시지는 간격의 끝보다 늦은 시점에 송신될 수 있다(예컨대, T9에서 송신된 메시지(216)). 통지 메시지는 정체 상태 또는 큐잉 지연의 증가 또는 감소를 나타내는 복수의 변수를 포함할 수 있다. 일부 실시예에서, 통지 메시지에 포함된 정보의 적어도 일부는 추가 정체 관리를 위해 송신기에 의해 사용된다.
도 3은 예를 들어, 이더넷 링크와 같은 데이터 링크에서의 정체 관리 방법에 대한 흐름도를 도시한다. 이 흐름도는 초기 설정 단계, 빠른 시작 단계, 전환 단계, 및 조절 단계를 포함한다. 이 방법은 송신기(101)와 수신기(105) 간의 데이터 송신과 함께 도 1의 환경에서 구현될 수 있다.
초기 설정 단계(310)에서, 송신기와 수신기는 서로의 클록 속도 및 회선 속도에 관한 정보를 공유할 수 있다. 이 정보를 통해 송신기와 수신기는 허용 가능한 지연을 결정할 수 있으므로 비정상적으로 큰 지연 값(예컨대, 특정 송신기와 수신기 간의 데이터 흐름에 대해 특정 문턱값을 초과하는 값)을 등록하여 정체 이벤트를 검출할 수 있다.
빠른 시작 단계(320)에서, 송신기는 초기 속도로 데이터를 수신기에게 송신한다. 빠른 시작 단계(320)는 윈도우 성장 단계(window growth phase)가 선행될 수 있으며, 여기서 송신기는 데이터 패킷을 송신하기 위한 초기 윈도우 크기를 설정하고 네트워크 내에서 정체가 검출되지 않는 한 윈도우의 크기를 증가시킬 수 있다. 초기 윈도우 크기는 예를 들어, 회선 속도에 네트워크 내에서의 최소 전파 지연 시간을 곱한 대역폭 지연 곱으로 설정될 수 있다. 윈도우 크기가 증가함에 따라, 수신기는 예를 들어, 수신된 50 킬로바이트의 데이터마다 패킷을 송신기에게 송신함으로써 정체를 검출하지 않았음을 송신기에게 주기적으로 통지할 수 있다. 윈도우가 성장할 수 있는 최대 크기는 링크 속도에, 네트워크 내 전파 지연의 최댓값을 곱한 값에 의해 결정될 수 있다. 수신기는 송신기로부터 수신하는 데이터 패킷과 관련하여 단방향 지연의 급증을 관찰하여 정체 이벤트를 검출할 수 있다. 단방향 지연의 급증은 패킷의 왕복 시간보다 큰 지연에 대응할 수 있다. 예를 들어, 15 마이크로초 내지 25 마이크로초의 지연으로 인해 수신기가 정체 이벤트를 등록하게 할 수 있다. 일부 실시예에서, 수신기는 정체 이벤트를 등록하기 위해 최소 지연과 관련된 지연을 측정할 수 있다. 이들 실시예에서, 수신기는 문턱 지연을 구성할 수 있고, 문턱 지연을 초과하면 수신기는 검출된 지연을 정체 이벤트로서 등록할 수 있다.
송신기는 윈도우 크기를 기하급수적으로 증가시킬 수 있다. 송신기는 또한 선형적으로, 대수적으로, 또는 단계적으로 크기를 증가시킬 수 있다. 윈도우 크기는 문턱값 크기가 달성될 때까지 증가될 수 있다. 패킷은 비트를 사용하여 윈도우 크기를 증가시키도록 송신기에게 시그널링할 수 있다.
빠른 시작 단계(320) 내에서 윈도우 성장 후, 송신기는 초기 속도를 설정한다. 초기 속도는 예를 들어, 25 GBit/s 또는 100 GBit/s와 같은 회선 속도일 수 있다. 초기 속도는 예를 들어, 송신기와 수신기를 접속하는 물리적 네트워크의 유형, 송신기와 수신기 간의 물리적 거리, 그리고 송신기와 수신기의 동작 구성 등의 요인에 의해 영향을 받을 수 있다. 윈도우에 과부하가 걸리지 않는 한 송신기는 트래픽을 최고 속도로 송신할 수 있다. 수신기는 CNP 패킷을 사용하여 송신기와 통신할 수 있다. 예를 들어, 수신기는 수신기에게 패킷을 회선 속도로 계속 송신하게끔 알리도록 CNP-W 패킷을, 또는 정체 이벤트가 검출되면 CNP-R 패킷을 송신할 수 있다.
수신기가 정체 이벤트를 검출하면 시스템은 전환 단계(330)에 진입한다. 수신기는, 송신기가 데이터 송신 속도를 최소 속도로 낮추어야 함을 나타내는 비트를 가진 패킷을 송신기에게 송신할 수 있다. 최소 속도는 초기 속도보다 훨씬 작을 수 있다. 예를 들어, 최소 속도는 초기 속도보다 2 내지 4배(two to four orders) 더 작을 수 있다. 시스템은 하나 이상의 기간 동안 전환 상태를 유지할 수 있다. 기간(period)은 패킷의 왕복 시간(round trip time; RTT)에 기초할 수 있다. 예를 들어, 기간은 25 마이크로초일 수 있다. 이것은 시스템의 정체를 줄이기 위해 수행된다. 특정 수의 기간들 동안 최소 속도를 유지한 후, 시스템은 데이터 송신 속도를 초기 송신 속도의 절반으로 증가시킬 수 있다. 수신기는 또한 송신기와 수신기 간의 처리량을 측정할 수 있다. 처리량이 초기 속도의 절반의 일부(a portion of one-half) 미만인 경우, 수신기는 측정된 처리량의 절반으로 송신하도록 송신기에게 알리는 패킷을 송신기에게 송신할 수 있다. 송신기는 패킷을 수신할 때 송신 속도를 떨어뜨릴(drop) 수 있다.
시스템은 2개의 갱신 기간 동안 전환 단계에 머문 후 조절 단계(340)로 이동한다. 조절 단계는 피드백 제어 알고리즘과 가산적 증가 승산적 감소(AIMD)를 사용하여 데이터 송신 속도를 수정할 수 있다.
피드백 제어 알고리즘은 비례 적분(proportional integral; PI) 알고리즘일 수 있다. 피드백 제어 알고리즘은 또한 비례 알고리즘 또는 비례 적분 미분(proportional-integral-derivative; PID) 알고리즘을 사용하여 구현될 수 있다. PI 알고리즘은 효율성과 낮은 지연을 보장할 수 있다. 데이터 송신 속도의 계산은 현재 지연이 문턱값(예컨대, 최소 지연 값)으로부터 얼마나 멀리 떨어져 있는지 그리고 큐잉 지연이 현재 증가 또는 감소 추세인지에 기초하여 주기적으로 갱신될 수 있다. 알고리즘의 "비례적인" 양상은 지연이 길(high) 경우 알고리즘이 데이터 송신 속도를 감소시킬 가능성이 더 높은 반면, 알고리즘의 "적분" 양상은 큐잉 지연이 증가하는 추세인 경우 데이터 송신 속도를 감소시키도록 작용한다.
피드백 제어 루프는 다음 수학식을 사용하여 설명될 수 있다.
Figure pct00001
이 수학식에서, 갱신된 속도 R(n+1)은 현재 속도 R(n)에서 비례항
Figure pct00002
과 적분항
Figure pct00003
을 뺌으로써 계산된다. 비례항은 상수에 의해 곱해진 현재 지연
Figure pct00004
과 문턱 지연
Figure pct00005
간의 차이를 설명한다. 적분항은 증가 또는 감소 지연 추세를 이 수학식에 통합하기 위해, 다른 상수에 의해 곱해진 현재 지연
Figure pct00006
과 이전 지연
Figure pct00007
간의 차이를 설명한다.
AIMD 알고리즘은 피드백 제어 알고리즘과 함께 동작하여 시스템의 공정성을 보장한다. AIMD 알고리즘은, 지연이 감소하면 데이터 송신율에 대해 가산적 증가를 수행할 수 있고, 지연이 증가하면 승산적 감소를 수행할 수 있다. 이 프로세스는 데이터 흐름들 간의 링크에 공정성을 추가하고 지연을 제어하는 데 필요한 시간 규모(time scale)보다 더 긴 시간 규모에 걸쳐 수행될 수 있다. 예를 들어, 시스템은 정체 이벤트가 수신기에 의해 검출될 때까지 상이한 데이터 흐름들에 대한 속도들에 대해 가산적 증가를 수행할 수 있다. 이 시점에서, 이 시스템은 정체를 중지하기 위해 데이터 속도에 대해 승산적 감소를 수행할 수 있다. 이 프로세스는 흐름들이 동일한 데이터 속도를 가질 때까지 반복될 수 있다.
일부 실시예에서, 시스템이 조절 단계에 있는 동안 가산적 증가가 지속적으로 수행될 수 있다. 이것이 발생하는 동안 수신기는 예를 들어, CNP-R 패킷과 같은 패킷을 송신기에게 송신하여 속도를 가산적으로 증가시킬 수 있다. 승산적 감소는 주기적으로 수행될 수 있다. 일부 실시예에서, 시스템은 특정 수의 조절 주기 후에 승산적 감소를 수행할 수 있다. 다른 실시예에서, 승산적 증가는 예를 들어, "동전 던지기(coin toss)"와 같은 확률적 이벤트에 응답하여 수행될 수 있다. 시스템은 "동전"에 승산적 감소 확률을 할당하고 패킷이 도착할 때마다 "동전 던지기(flip the coin)"를 하여 해당 주기 동안 속도에 대해 승산적 감소를 수행할지 여부를 결정할 수 있다. 예를 들어, 승산적 감소 확률이 30%인 경우, 10개의 패킷 송신 중 3번의 승산적 감소가 수행될 것으로 예상될 수 있다.
시스템은 피드백 제어 루프와 AIMD 루프를 공동으로 수행할 수 있다. AIMD 프로세스는 장기간에 걸쳐 공정성이 달성될 수 있으므로 피드백 제어 루프보다 낮은 주파수에서 수행될 수 있다. 제어 루프를 수행하는 것보다 적은 빈도로 AIMD를 주기적으로 수행하면 큐에 도착하는 패킷에 대해 중단을 줄이면서 데이터 흐름의 균형이 다시 맞추어지게 한다.
조절 단계(340)는 데이터 송신이 초기 데이터 속도로 복귀될 때까지 계속될 수 있다. 시스템이 여러 기간 동안 초기 속도로 복귀하면, 시스템은 빠른 시작 프로세스(320)를 다시 시작할 수 있다.
도 4는 통신을 위한 효율 그래프(400)를 도시한다. 이 도면은 링크 계층에 대한 패킷 부하가 증가함에 따라 굿풋(goodput)(단위 시간당 전달되는 유용한 정보 비트 수)과 정체된 버퍼 크기(420)가 어떻게 증가하는지 보여준다. 이 도면은 데이터 부하가 0으로부터 증가함에 따라 굿풋(410)도 선형적으로 증가함을 보여준다. 패킷 부하(450)가 용량(440)을 초과하여 증가할 때, 곡선은 선형에서 평평하게 천이하여 그래프에서 무릎(knee)을 형성한다. 이것은 최대 굿풋과 무시할 수 있는(negligible) 큐를 갖는 시스템의 최적 동작 지점(430)이다. 하단 그래프는 이 지점 이후에 시스템에 의해 모든 패킷이 송신될 수는 없기 때문에 패킷 부하가 무릎을 지나 증가함에 따라 큐가 구축되는 것을 보여준다. 이 그래프는 큐가 구축됨에 따라 굿풋(410)이 큰 부하에서도 높게 유지됨을 보여준다. 이 시스템은 작은 대기 큐를 사용해 최적으로 동작될 수 있다. 새 패킷이 큐에 추가되기 전에, 큐잉되어 있는(enqueued) 패킷이 송신되지 않을 수 있으므로 큐는 부하가 증가함에 따라 크기가 기하급수적으로 증가할 수 있다. 특정 부하에서, 이 시스템이 이러한 큰 큐를 유지 관리할 수 없기 때문에 패킷이 드롭될 수 있다. 이 그래프는 개시된 방법에서, 이 시스템이 무릎 가까이에서 동작함을 보여준다.
도 5는 두 방법 모두를 사용해 수행된 실험의 데이터를 사용하여 DCQCN과 개시된 방법의 지연 비교(500)를 도시한다. 도 5의 실험에서, DCQCN 및 개시된 방법 모두에 대해, 20,000개의 데이터 흐름이 포아송 프로세스로서 수신기에 도달한다. 흐름들은 다양한 왕복 시간(RTT)을 가진 16개의 상이한 포트들로부터 오며 모두 수신기의 목적지를 갖는다. 패킷이 수신기에게 도달하는 속도를 제어하여 송신기와 수신기 간의 링크가 20%, 40%, 60%, 80%만큼 부하되는 실험을 수행한다. DCQCN과 이 방법 모두에서 이러한 16개 포트에 대해, 이더넷 프레임의 최소 일시 중지 기간, 평균 일시 중지 기간 및 최대 일시 중지 기간이 측정되었다. 이 그래프에서 볼 수 있는 바와 같이, 높은 부하에서 DCQCN은 개시된 방법에 비해 성능이 좋지 않다. 실제로 DCQCN의 일시 중지 기간은 고부하에서 기하급수적으로 더 나빠진다. 이에 비해, 고부하에서, 개시된 방법은 고부하에서도 일시 정지 프레임이 생성되지 않는다.
도 6a 및 6b는 도 5의 실험으로부터 네트워크에서 데이터 흐름의 예시를 도시한다. 도 6a의 예시(600)는 개시된 방법으로부터의 처리량을 보여주는 반면, 도 6b의 예시(650)는 DCQCN으로부터의 처리량을 보여준다. 예시(650)는 상당한 희생 흐름(victim flows)을 보여준다. 희생 흐름 즉, 감소된 처리량 흐름은 데이터 센터 네트워크에 걸쳐 확산된 정체를 나타낸다. 따라서, 도 6a 및 6b는 DCQCN이 사용될 때 상당한 정체 확산을 나타내지만 개시된 방법이 사용될 때는 무시할 수 있는 정체를 나타낸다.
도 7a 및 도 7b는 개시된 방법(700)과 DCQCN(750) 간의 큐 점유의 비교를 도시한다. 이 그래프는 DCQCN보다, 시스템을 위한 큐에 더 적은 데이터가 있음을 보여준다. 도 7a 및 도 7b의 차트는 실험 결과를 반영한다. 이 실험에서, 3-계층 데이터 센터 네트워크에 640개의 노드가 있다. 각 노드는 한 쌍의 랙 상단형(top-of-rack; ToR) 스위치에 접속된 2개의 25Gbps 링크를 갖는다. 노드들 간의 왕복 전파 지연은 12 마이크로초이다. PFC가 활성화된다. 640개의 노드는 한 쌍의 ToR 스위치 아래에 있는 32개 노드의 한 그룹에 데이터 패킷을 지속적으로 송신한다. 32개의 노드 각각은 다른 639개의 노드에도 데이터 패킷을 송신한다. 이 실험은 시뮬레이션 중간에 32개 노드 중 하나쪽으로의 하나의 링크를 제거하고 링크 제거가 다른 서버에 미치는 영향을 관찰한다. 도 7a 및 7b는 개시된 방법과 DCQCN 하에서 이 실험으로부터 정체된 링크의 큐 점유를 비교하고, 개시된 방법이 큐 점유를 DCQCN 하에서의 점유의 단지 10분의 1이 되게 감소시키는 것을 보여준다.

Claims (55)

  1. 네트워크 프로토콜에서 정체를 관리하는 컴퓨터 구현 방법(computer-implemented method)에 있어서,
    a) 네트워크에서 정체 이벤트를 검출하는 단계;
    b) 초기 속도(rate)로부터 최소 속도로 데이터 송신 속도를 늦추는 단계;
    c) 상기 데이터 송신 속도를 상기 초기 속도의 절반으로 증가시키는 단계;
    d) 상기 네트워크의 단방향 지연(one-way latency)을 주기적으로 모니터링하는 단계; 및
    e) 피드백 제어 알고리즘과 가산적 증가 승산적 감소(additive increase multiplicative decrease; AIMD) 알고리즘을 사용하여 상기 데이터 송신 속도를 조정하는 단계
    를 포함하는, 정체를 관리하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    초기 데이터 송신 속도를 설정하는 단계는 대역폭 지연 곱(bandwidth delay product)과 동일한 초기 윈도우를 설정하는 단계와, 상기 초기 윈도우를 설정하는 단계 후에 정체가 검출되지 않으면 윈도우 크기를 증가(ramp up)시키는 단계를 더 포함하는 것인, 정체를 관리하는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 초기 데이터 송신 속도는 상기 네트워크 링크의 회선 속도(line rate)와 동일한 것인, 정체를 관리하는 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 문턱 지연은 데이터 패킷의 송신을 위한 왕복 시간에 기초하는 것인, 정체를 관리하는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 최소 데이터 송신 속도는 상기 초기 데이터 송신 속도의 적어도 1% 미만인 것인, 정체를 관리하는 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 피드백 제어 루프는 비례 적분 제어기를 포함하는 것인, 정체를 관리하는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    최소 데이터 송신 속도로 상기 송신기로부터 상기 수신기로 데이터를 송신하는 단계는 상기 수신기로부터 상기 송신기로 정체 통지 패킷을 송신하는 단계, 및 송신기가 상기 정체 통지 패킷을 수신할 때 속도를 갱신하는 단계를 포함하는 것인, 정체를 관리하는 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    단방향 지연을 지속적으로 모니터링하는 단계는 수신된 패킷의 총 바이트 수를 추적하는 단계를 포함하는 것인, 정체를 관리하는 컴퓨터 구현 방법.
  9. 제1항에 있어서,
    상기 관리되는 송신 속도는 상기 최소 송신 속도에서의 한 기간 및 상기 초기 속도의 절반에서의 한 기간 후에 계산되는 것인, 정체를 관리하는 컴퓨터 구현 방법.
  10. 제9항에 있어서,
    기간은 송신된 패킷의 왕복 시간에 기초하는 것인, 정체를 관리하는 컴퓨터 구현 방법.
  11. 제1항에 있어서,
    상기 초기 송신 속도는 송신기와 수신기 간의 회선 속도에 기초하는 것인, 정체를 관리하는 컴퓨터 구현 방법.
  12. 제11항에 있어서,
    상기 초기 송신 속도는 상기 송신기의 링크 속도와 상기 수신기의 링크 속도 간의 최소 속도인 것인, 정체를 관리하는 컴퓨터 구현 방법.
  13. 제1항에 있어서,
    상기 AIMD 알고리즘은, 상기 관리되는 속도가 문턱값 미만인 경우 상기 관리되는 속도에 대해 가산을 그리고 상기 관리되는 속도가 상기 문턱값을 초과하는 경우 상기 관리되는 속도에 대해 승산을 수행하는 단계를 포함하는 것인, 정체를 관리하는 컴퓨터 구현 방법.
  14. 제13항에 있어서,
    상기 가산은 양수에 의한 것인, 정체를 관리하는 컴퓨터 구현 방법.
  15. 제13항에 있어서,
    상기 승산은 0과 1 사이의 수에 의한 것인, 정체를 관리하는 컴퓨터 구현 방법.
  16. 제1항에 있어서,
    a) 문턱 수의 기간 동안 상기 데이터 송신 속도를 조정함으로써 적어도 상기 초기 속도를 획득하는 단계; 및
    b) 정체 이벤트에 대해 상기 네트워크를 모니터링하는 단계
    를 더 포함하는, 정체를 관리하는 컴퓨터 구현 방법.
  17. 네트워크에서 네트워크 정체를 관리하기 위한 시스템에 있어서, 상기 시스템은 복수의 컴퓨팅 노드를 포함하고, 상기 컴퓨팅 노드는,
    a) 하나 이상의 이전에 획득된 지연 값 및 명령어의 세트를 저장하기 위한 메모리; 및
    b) 상기 명령어의 세트를 실행하도록 구성된 하나 이상의 프로세서
    를 포함하고, 상기 명령어의 세트는,
    i) 상기 네트워크에서 정체 이벤트를 검출하고,
    ii) 초기 속도로부터 최소 속도로 데이터 송신 속도를 늦추고;
    iii) 상기 데이터 송신 속도를 상기 초기 속도의 절반으로 증가시키고;
    iv) 상기 네트워크의 단방향 지연을 주기적으로 모니터링하며;
    v) 피드백 제어 알고리즘과 가산적 증가 승산적 감소(additive growth multiplicative reduction; AIMD) 알고리즘을 사용하여 상기 데이터 송신 속도를 조정하기 위한 것인, 네트워크 정체를 관리하기 위한 시스템.
  18. 제17항에 있어서,
    상기 네트워크는 적어도 하나의 링크를 갖는 것인, 네트워크 정체를 관리하기 위한 시스템.
  19. 제17항에 있어서,
    상기 복수의 컴퓨팅 노드는 송신기 노드 및 수신기 노드를 포함하는 것인, 네트워크 정체를 관리하기 위한 시스템.
  20. 제17항에 있어서,
    초기 데이터 송신 속도를 설정하는 것은 대역폭 지연 곱과 동일한 초기 윈도우를 설정하는 것과, 상기 초기 윈도우를 설정한 후에 정체가 검출되지 않으면 윈도우 크기를 증가시키는 것을 더 포함하는 것인, 네트워크 정체를 관리하기 위한 시스템.
  21. 제17항에 있어서,
    상기 초기 데이터 송신 속도는 상기 이더넷 링크의 회선 속도와 동일한 것인, 네트워크 정체를 관리하기 위한 시스템.
  22. 제17항에 있어서,
    상기 문턱 지연은 데이터 패킷의 송신을 위한 왕복 시간에 기초하는 것인, 네트워크 정체를 관리하기 위한 시스템.
  23. 제17항에 있어서,
    상기 최소 데이터 송신 속도는 상기 초기 데이터 송신 속도의 적어도 1% 미만인 것인, 네트워크 정체를 관리하기 위한 시스템.
  24. 제17항에 있어서,
    상기 피드백 제어 루프는 비례 적분 제어기를 포함하는 것인, 네트워크 정체를 관리하기 위한 시스템.
  25. 제17항에 있어서,
    최소 데이터 송신 속도로 상기 송신기로부터 상기 수신기로 데이터를 송신하는 것은 상기 수신기로부터 상기 송신기로 정체 통지 패킷을 송신하는 것, 및 송신기가 상기 정체 통지 패킷을 수신할 때 속도를 갱신하는 것을 포함하는 것인, 네트워크 정체를 관리하기 위한 시스템.
  26. 제17항에 있어서,
    단방향 지연을 지속적으로 모니터링하는 것은 수신된 패킷의 총 바이트 수를 추적하는 것을 포함하는 것인, 네트워크 정체를 관리하기 위한 시스템.
  27. 제17항에 있어서,
    상기 관리되는 송신 속도는 상기 최소 송신 속도에서의 한 기간 및 상기 초기 속도의 절반에서의 한 기간 후에 계산되는 것인, 네트워크 정체를 관리하기 위한 시스템.
  28. 제27항에 있어서,
    주기는 송신된 패킷의 왕복 시간에 기초하는 것인, 네트워크 정체를 관리하기 위한 시스템.
  29. 제17항에 있어서,
    상기 초기 송신 속도는 송신기와 수신기 간의 회선 속도에 기초하는 것인, 네트워크 정체를 관리하기 위한 시스템.
  30. 제29항에 있어서,
    상기 초기 송신 속도는 상기 송신기와 상기 수신기 간의 최소 회선 속도인 것인, 네트워크 정체를 관리하기 위한 시스템.
  31. 제17항에 있어서,
    상기 AIMD 알고리즘은 상기 관리되는 속도가 문턱값 미만인 경우 상기 관리되는 속도에 대해 가산을 그리고 상기 관리되는 속도가 상기 문턱값을 초과하는 경우 상기 관리되는 속도에 대해 승산을 수행하는 것을 포함하는 것인, 네트워크 정체를 관리하기 위한 시스템.
  32. 제31항에 있어서,
    상기 가산은 양수에 의한 것인, 네트워크 정체를 관리하기 위한 시스템.
  33. 제31항에 있어서,
    상기 승산은 0과 1 사이의 수에 의한 것인, 네트워크 정체를 관리하기 위한 시스템.
  34. 네트워크에서 네트워크 정체를 관리하기 위한 컴퓨터 구현 방법에 있어서,
    a) 데이터 속도를 초기 데이터 속도로 설정하는 단계와, 수신기가 정체 이벤트를 검출할 때까지 송신기와 상기 수신기 간에 데이터 송신을 수행하는 단계를 포함하는 빠른 시작 단계(fast start stage);
    b) 상기 데이터 속도를 한 기간 동안 최소 데이터 속도로 감소시킨 다음 상기 데이터 속도를 한 기간 동안 상기 초기 속도의 절반으로 증가시키는 단계를 포함하는 전환 단계; 및
    c) 상기 데이터 속도를 수정하기 위해 피드백 제어 루프와 가산적 감소 승산적 증가 알고리즘의 조합을 사용하는 단계를 포함하는 조절 단계
    를 포함하는, 네트워크 정체를 관리하기 위한 컴퓨터 구현 방법.
  35. 제34항에 있어서,
    상기 빠른 시작 단계 이전에, 상기 송신기와 상기 수신기 간에 클록 속도 및 회선 속도를 공유하는 단계를 포함하는 초기 설정 단계를 더 포함하는, 네트워크 정체를 관리하기 위한 컴퓨터 구현 방법.
  36. 제34항에 있어서,
    상기 빠른 시작 단계 이전에, 데이터 패킷을 송신하기 위해 윈도우 크기를 초기 윈도우 크기로 설정하는 단계를 더 포함하는, 네트워크 정체를 관리하기 위한 컴퓨터 구현 방법.
  37. 제36항에 있어서,
    상기 네트워크 내에서 정체 이벤트가 검출되지 않는 동안, 상기 윈도우 크기를 증가시키는 단계를 더 포함하는, 네트워크 정체를 관리하기 위한 컴퓨터 구현 방법.
  38. 제37항에 있어서,
    상기 윈도우 크기는 기하급수적으로 증가되는 것인, 네트워크 정체를 관리하기 위한 컴퓨터 구현 방법.
  39. 제34항에 있어서,
    상기 전환 단계는 상기 정체 이벤트의 검출에 이어서 시작되는 것인, 네트워크 정체를 관리하기 위한 컴퓨터 구현 방법.
  40. 제34항에 있어서,
    상기 피드백 제어 알고리즘은 비례 적분 알고리즘(proportional integral algorithm)인 것인, 네트워크 정체를 관리하기 위한 컴퓨터 구현 방법.
  41. 제40항에 있어서,
    상기 피드백 제어 루프는 현재 속도, 비례항 및 적분항 간의 차이로서 설명될 수 있는 것인, 네트워크 정체를 관리하기 위한 컴퓨터 구현 방법.
  42. 제41항에 있어서,
    상기 비례항은 현재 지연과 문턱 지연 간의 차이를 설명하며, 상기 적분항은 현재 지연과 이전 지연 간의 차이를 설명하는 것인, 네트워크 정체를 관리하기 위한 컴퓨터 구현 방법.
  43. 제34항에 있어서,
    상기 승산적 증가는 확률적 이벤트에 응답하여 수행되는 것인, 네트워크 정체를 관리하기 위한 컴퓨터 구현 방법.
  44. 제34항에 있어서,
    상기 승산적 증가는 상기 피드백 제어 루프보다 낮은 주파수에서 수행되는 것인, 네트워크 정체를 관리하기 위한 컴퓨터 구현 방법.
  45. 네트워크에서 네트워크 정체를 관리하기 위한 시스템에 있어서, 상기 시스템은 복수의 컴퓨팅 노드를 포함하고, 상기 컴퓨팅 노드는,
    a) 하나 이상의 이전에 획득된 지연 값 및 명령어의 세트를 저장하기 위한 메모리; 및
    b) 상기 명령어의 세트를 실행하도록 구성된 하나 이상의 프로세서
    를 포함하고, 상기 명령어 세트는,
    i) 데이터 속도를 초기 데이터 속도로 설정하는 단계와, 수신기가 정체 이벤트를 검출할 때까지 송신기와 상기 수신기 간에 데이터 송신을 수행하는 단계를 포함하는 빠른 시작 단계;
    ii) 상기 데이터 속도를 한 기간 동안 최소 데이터 속도로 감소시킨 다음 상기 데이터 속도를 한 기간 동안 상기 초기 속도의 절반으로 증가시키는 단계를 포함하는 전환 단계; 및
    iii) 상기 데이터 속도를 수정하기 위해 피드백 제어 루프와 가산적 감소 승산적 증가 알고리즘의 조합을 사용하는 단계를 포함하는 조절 단계
    를 구현하기 위한 것인, 네트워크 정체를 관리하기 위한 시스템.
  46. 제45항에 있어서,
    상기 빠른 시작 단계 이전에, 상기 송신기와 상기 수신기 간에 클록 속도 및 회선 속도를 공유하는 단계를 포함하는 초기 설정 단계를 더 포함하는, 네트워크 정체를 관리하기 위한 시스템.
  47. 제45항에 있어서,
    상기 빠른 시작 단계 이전에, 데이터 패킷을 송신하기 위해 윈도우 크기를 초기 윈도우 크기로 설정하는 것을 더 포함하는, 네트워크 정체를 관리하기 위한 시스템.
  48. 제47항에 있어서,
    상기 네트워크 내에서 정체 이벤트가 검출되지 않는 동안, 상기 윈도우 크기를 증가시키는 것을 더 포함하는, 네트워크 정체를 관리하기 위한 시스템.
  49. 제48항에 있어서,
    상기 윈도우 크기는 기하급수적으로 증가되는 것인, 네트워크 정체를 관리하기 위한 시스템.
  50. 제45항에 있어서,
    상기 전환 단계는 상기 정체 이벤트의 검출에 이어서 시작되는 것인, 네트워크 정체를 관리하기 위한 시스템.
  51. 제45항에 있어서,
    상기 피드백 제어 알고리즘은 비례 적분 알고리즘인 것인, 네트워크 정체를 관리하기 위한 시스템.
  52. 제51항에 있어서,
    상기 피드백 제어 루프는 현재 속도, 비례항, 및 적분항 간의 차이로서 설명될 수 있는 것인, 네트워크 정체를 관리하기 위한 시스템.
  53. 제52항에 있어서,
    상기 비례항은 현재 지연과 문턱 지연 간의 차이를 설명하며, 상기 적분항은 현재 지연과 이전 지연 간의 차이를 설명하는 것인, 네트워크 정체를 관리하기 위한 시스템.
  54. 제45항에 있어서,
    상기 승산적 증가는 확률적 이벤트에 응답하여 수행되는 것인, 네트워크 정체를 관리하기 위한 시스템.
  55. 제45항에 있어서,
    상기 승산적 증가는 상기 피드백 제어 루프보다 낮은 주파수에서 수행되는 것인, 네트워크 정체를 관리하기 위한 시스템.
KR1020217041007A 2019-05-17 2020-05-15 속도 최적화된 정체 관리 KR102385762B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/415,609 2019-05-17
US16/415,609 US11212227B2 (en) 2019-05-17 2019-05-17 Rate-optimized congestion management
PCT/US2020/033154 WO2020236599A1 (en) 2019-05-17 2020-05-15 Rate-optimized congestion management

Publications (2)

Publication Number Publication Date
KR20220007698A true KR20220007698A (ko) 2022-01-18
KR102385762B1 KR102385762B1 (ko) 2022-04-11

Family

ID=73228300

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217041007A KR102385762B1 (ko) 2019-05-17 2020-05-15 속도 최적화된 정체 관리

Country Status (8)

Country Link
US (2) US11212227B2 (ko)
EP (2) EP3970322B1 (ko)
JP (1) JP2022533970A (ko)
KR (1) KR102385762B1 (ko)
CN (2) CN114145001B (ko)
CA (1) CA3139533C (ko)
IL (1) IL288030B2 (ko)
WO (1) WO2020236599A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019046603A1 (en) 2017-08-31 2019-03-07 Pensando Systems Inc. METHODS AND SYSTEMS FOR MANAGING NETWORK DIMENSIONS
US11212227B2 (en) 2019-05-17 2021-12-28 Pensando Systems, Inc. Rate-optimized congestion management
US11502932B2 (en) 2019-05-17 2022-11-15 Keysight Technologies, Inc. Indirect testing using impairment rules
US11153221B2 (en) 2019-08-28 2021-10-19 Pensando Systems Inc. Methods, systems, and devices for classifying layer 4-level data from data queues
JP7173058B2 (ja) * 2020-01-14 2022-11-16 株式会社デンソー 通信装置、及び通信装置に用いられるプログラム及び方法
US11444831B2 (en) 2020-01-17 2022-09-13 Keysight Technologies, Inc. Methods, systems, and computer readable media for measuring schedule update time for a time aware shaper implementation
US11394700B2 (en) 2020-01-31 2022-07-19 Pensando Systems Inc. Proxy service through hardware acceleration using an IO device
US11431681B2 (en) 2020-04-07 2022-08-30 Pensando Systems Inc. Application aware TCP performance tuning on hardware accelerated TCP proxy services
US11621908B2 (en) 2020-07-13 2023-04-04 Keysight Technologies, Inc. Methods, systems and computer readable media for stateless service traffic generation
US11258719B1 (en) * 2020-08-24 2022-02-22 Keysight Technologies, Inc. Methods, systems and computer readable media for network congestion control tuning
CN113141315B (zh) * 2021-04-20 2022-12-27 上海卓易科技股份有限公司 一种拥塞控制方法及设备
US11582128B1 (en) * 2021-08-12 2023-02-14 Allot Ltd. System, device, and method of measuring directional latency and congestion in a communication network
US11683250B2 (en) * 2021-10-22 2023-06-20 Palo Alto Networks, Inc. Managing proxy throughput between paired transport layer connections
US20230300671A1 (en) * 2022-03-18 2023-09-21 Qualcomm Incorporated Downlink congestion control optimization
CN115174477B (zh) * 2022-06-29 2024-04-05 无锡芯光互连技术研究院有限公司 一种基于优先级流量控制的拥塞控制方法及系统
US11962434B2 (en) 2022-07-08 2024-04-16 Keysight Technologies, Inc. Methods, systems, and computer readable media for capturing dropped packets at a switching fabric emulator
CN116847360B (zh) * 2022-12-30 2024-04-02 曲阜师范大学 一种非实时数据传输方法、装置及存储介质
CN117560528B (zh) * 2024-01-11 2024-05-24 腾讯科技(深圳)有限公司 音视频数据发送方法、装置、计算机设备及可读存储介质
CN118524065B (zh) * 2024-07-24 2024-10-01 苏州元脑智能科技有限公司 拥塞控制方法及装置、存储介质及电子设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070093077A (ko) * 2004-11-29 2007-09-17 밥 탕 거의 혼잡이 없는 보장된 서비스를 할 수 있는 네트워크의즉각적인 용이한 구현:외부 인터넷 차세대 tcp(정방형파형) tcp 유사 san
US20080037420A1 (en) * 2003-10-08 2008-02-14 Bob Tang Immediate ready implementation of virtually congestion free guaranteed service capable network: external internet nextgentcp (square waveform) TCP friendly san
US20130343191A1 (en) * 2012-06-21 2013-12-26 Microsoft Corporation Ensuring predictable and quantifiable networking performance
KR20140143355A (ko) * 2011-12-28 2014-12-16 씨디에프 케 유안 지연이 큰 네트워크들에 대한 tcp 혼잡 제어
US20150117218A1 (en) * 2012-05-08 2015-04-30 Telefonaktiebolaget L M Ericsson (Publ) Feedback-based Profiling for Transport Networks
KR20160144257A (ko) * 2015-06-08 2016-12-16 삼성전자주식회사 통신 시스템에서 tcp 기반의 전송 제어 방법 및 장치
US20160374094A1 (en) * 2015-06-16 2016-12-22 Avaya Inc. Channel bandwidth optimization for dynamic network conditions
US20170019803A1 (en) * 2015-07-17 2017-01-19 Altiostar Networks, Inc. Optimization of Downlink Throughput

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5264843A (en) * 1989-04-05 1993-11-23 Siemens Pacesetter, Inc. High speed reflected impedance telemetry system for implantable medical device
US7349994B2 (en) 2000-10-17 2008-03-25 Avaya Technology Corp. Method and apparatus for coordinating routing parameters via a back-channel communication medium
US7423972B2 (en) 2000-11-28 2008-09-09 Flash Networks Ltd. System and method for a transmission rate controller
US7782776B2 (en) 2002-03-15 2010-08-24 Broadcom Corporation Shared weighted fair queuing (WFQ) shaper
US7974195B2 (en) * 2003-06-12 2011-07-05 California Institute Of Technology Method and apparatus for network congestion control
WO2006023604A2 (en) 2004-08-17 2006-03-02 California Institute Of Technology Method and apparatus for network congestion control using queue control and one-way delay measurements
CN101023455A (zh) * 2004-08-17 2007-08-22 加州理工大学 使用排队控制和单向延迟测量实现网络拥塞控制的方法和设备
US7688968B1 (en) 2004-09-16 2010-03-30 Marvell International Ltd. Adaptive analog echo/next cancellation
US7583664B2 (en) 2004-12-28 2009-09-01 Michael Ho Techniques for transmitting and receiving traffic over advanced switching compatible switch fabrics
US7957276B2 (en) 2005-04-28 2011-06-07 Telcordia Licensing Company, Llc Call admission control and preemption control over a secure tactical network
US9154395B2 (en) 2006-10-05 2015-10-06 Cisco Technology, Inc. Method and system for optimizing a jitter buffer
US7729387B2 (en) 2007-01-31 2010-06-01 Agere Systems Inc. Methods and apparatus for controlling latency variation in a packet transfer network
US7940677B2 (en) 2007-06-05 2011-05-10 At&T Intellectual Property I, Lp Architecture for optical metro ethernet service level agreement (SLA) management
CN101094047A (zh) * 2007-07-06 2007-12-26 中国人民解放军国防科学技术大学 基于网络状态测量的分阶段慢启动传输控制方法
CA2703719C (en) 2007-10-26 2014-07-08 Telcordia Technologies, Inc. Method and system for secure session establishment using identity-based encryption (vdtls)
US8370622B1 (en) 2007-12-31 2013-02-05 Rockstar Consortium Us Lp Method and apparatus for increasing the output of a cryptographic system
CN101902295B (zh) * 2009-05-26 2013-08-21 国际商业机器公司 控制应用服务器的负载接收速率的方法及装置
GB201003206D0 (en) 2010-02-25 2010-04-14 Skype Ltd Method of estimating congestion
US8553540B2 (en) * 2010-03-05 2013-10-08 Microsoft Corporation Congestion control for delay sensitive applications
CN101860895B (zh) * 2010-06-11 2012-12-19 上海海维工业控制有限公司 一种改进的aimd拥塞控制方法
EP2413542A1 (en) * 2010-07-30 2012-02-01 Institut National De Recherche En Informatique Et En Automatique Flow aware congestion avoidance method and system
WO2012121635A1 (en) * 2011-03-10 2012-09-13 Telefonaktiebolaget L M Ericsson (Publ) Hybrid congestion control
US20130195123A1 (en) 2012-01-31 2013-08-01 Alon Stern Clock recovery over protected packet networks
US9031094B2 (en) 2012-02-03 2015-05-12 Apple Inc. System and method for local flow control and advisory using a fairness-based queue management algorithm
US9473974B2 (en) 2012-05-30 2016-10-18 The University Of Hong Kong Enhancing AQM to combat wireless losses
US8813225B1 (en) 2012-06-15 2014-08-19 Amazon Technologies, Inc. Provider-arbitrated mandatory access control policies in cloud computing environments
CN102882803B (zh) * 2012-10-11 2015-12-16 四川大学 一种基于丢包和时延的混合拥塞控制方法
US20140164641A1 (en) 2012-12-11 2014-06-12 The Hong Kong University Of Science And Technology Congestion control for data center traffic
US9294944B2 (en) 2012-12-21 2016-03-22 International Business Machines Corporation Method and apparatus to monitor and analyze end to end flow control in an Ethernet/enhanced Ethernet environment
US9509802B1 (en) 2013-03-15 2016-11-29 PME IP Pty Ltd Method and system FPOR transferring data to improve responsiveness when sending large data sets
US9436244B2 (en) * 2013-03-15 2016-09-06 Intel Corporation Adaptive control loop protection for fast and robust recovery from low-power states in high speed serial I/O applications
EP3000255A1 (en) * 2013-05-20 2016-03-30 Telefonaktiebolaget LM Ericsson (publ) Congestion control in a communications network
US20140348182A1 (en) 2013-05-22 2014-11-27 Iii Holdings 2, Llc Time synchronization between nodes of a switched interconnect fabric
US10708187B2 (en) 2014-05-22 2020-07-07 Intel Corporation Data center congestion management for non-TCP traffic
US9313270B2 (en) 2014-07-29 2016-04-12 Datadirect Networks, Inc. Adaptive asynchronous data replication in a data storage system
US9565167B2 (en) 2015-01-21 2017-02-07 Huawei Technologies Co., Ltd. Load balancing internet protocol security tunnels
US10505984B2 (en) 2015-12-08 2019-12-10 A10 Networks, Inc. Exchange of control information between secure socket layer gateways
US9912774B2 (en) 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
AU2017314831C1 (en) * 2016-08-26 2023-01-05 Akili Interactive Labs, Inc. Cognitive platform coupled with a physiological component
JP6697990B2 (ja) * 2016-09-16 2020-05-27 ルネサスエレクトロニクス株式会社 半導体装置
WO2018109531A1 (en) 2016-12-15 2018-06-21 Nokia Technologies Oy Method and apparatus for tunnel endpoint ip address selection in a network environment
US20180212885A1 (en) 2017-01-20 2018-07-26 Google Inc. Device and method for scalable traffic shaping at a receiver with a time-indexed data structure
US11381509B2 (en) 2017-03-17 2022-07-05 Citrix Systems, Inc. Increased packet scheduling throughput and efficiency using úber batching
US10268464B2 (en) 2017-07-07 2019-04-23 Intel Corporation Technologies for network application programming with field-programmable gate arrays
WO2019046603A1 (en) 2017-08-31 2019-03-07 Pensando Systems Inc. METHODS AND SYSTEMS FOR MANAGING NETWORK DIMENSIONS
US10104039B1 (en) 2017-09-28 2018-10-16 Cloudflare, Inc. Establishing and using a tunnel from an origin server in a distributed edge compute and routing service
US12015722B2 (en) 2017-12-29 2024-06-18 Pensando Systems, Inc. Methods and systems for cryptographic identity based network microsegmentation
CN112866127B (zh) * 2018-02-14 2022-12-30 华为技术有限公司 一种分组网络中控制流量的方法及装置
CA3091265A1 (en) 2018-02-22 2019-08-29 Michael Brian Galles Programmable computer io device interface
US11108855B2 (en) * 2018-04-09 2021-08-31 Clostra, Inc. Newnode: decentralized content distribution network
WO2019209181A1 (en) 2018-04-24 2019-10-31 Skylab Networks Pte. Ltd. System and method for accelerating data delivery
US10880206B2 (en) 2018-06-13 2020-12-29 Futurewei Technologies, Inc. Multipath selection system and method for datacenter-centric metro networks
CN108965322B (zh) * 2018-08-14 2020-07-17 清华大学 空间网络传输控制协议
US11212227B2 (en) 2019-05-17 2021-12-28 Pensando Systems, Inc. Rate-optimized congestion management
US11153221B2 (en) 2019-08-28 2021-10-19 Pensando Systems Inc. Methods, systems, and devices for classifying layer 4-level data from data queues
US11838222B2 (en) 2019-12-21 2023-12-05 Western Digital Technologies, Inc. In-line data identification on network
US11394700B2 (en) 2020-01-31 2022-07-19 Pensando Systems Inc. Proxy service through hardware acceleration using an IO device
US11431681B2 (en) 2020-04-07 2022-08-30 Pensando Systems Inc. Application aware TCP performance tuning on hardware accelerated TCP proxy services
US11588734B2 (en) 2020-04-28 2023-02-21 Pensando Systems Inc. Systems for providing an LPM implementation for a programmable data plane through a distributed algorithm

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080037420A1 (en) * 2003-10-08 2008-02-14 Bob Tang Immediate ready implementation of virtually congestion free guaranteed service capable network: external internet nextgentcp (square waveform) TCP friendly san
KR20070093077A (ko) * 2004-11-29 2007-09-17 밥 탕 거의 혼잡이 없는 보장된 서비스를 할 수 있는 네트워크의즉각적인 용이한 구현:외부 인터넷 차세대 tcp(정방형파형) tcp 유사 san
KR20140143355A (ko) * 2011-12-28 2014-12-16 씨디에프 케 유안 지연이 큰 네트워크들에 대한 tcp 혼잡 제어
US20150117218A1 (en) * 2012-05-08 2015-04-30 Telefonaktiebolaget L M Ericsson (Publ) Feedback-based Profiling for Transport Networks
US20130343191A1 (en) * 2012-06-21 2013-12-26 Microsoft Corporation Ensuring predictable and quantifiable networking performance
KR20160144257A (ko) * 2015-06-08 2016-12-16 삼성전자주식회사 통신 시스템에서 tcp 기반의 전송 제어 방법 및 장치
US20160374094A1 (en) * 2015-06-16 2016-12-22 Avaya Inc. Channel bandwidth optimization for dynamic network conditions
US20170019803A1 (en) * 2015-07-17 2017-01-19 Altiostar Networks, Inc. Optimization of Downlink Throughput

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
T. Kurp, Reconfigurable Sampling for Enhanced Energy Efficiency in Power-Constrained Wireless Systems(2011.) *

Also Published As

Publication number Publication date
EP3970322A4 (en) 2022-09-14
US11212227B2 (en) 2021-12-28
EP3970322A1 (en) 2022-03-23
CN115208828A (zh) 2022-10-18
IL288030A (en) 2022-01-01
CN114145001B (zh) 2022-08-09
US20220070097A1 (en) 2022-03-03
CA3139533C (en) 2023-08-01
JP2022533970A (ja) 2022-07-27
CN114145001A (zh) 2022-03-04
EP3970322B1 (en) 2024-07-24
KR102385762B1 (ko) 2022-04-11
CA3139533A1 (en) 2020-11-26
WO2020236599A1 (en) 2020-11-26
US20200366608A1 (en) 2020-11-19
US11936561B2 (en) 2024-03-19
IL288030B (en) 2022-10-01
IL288030B2 (en) 2023-02-01
EP4415332A3 (en) 2024-10-23
EP4415332A2 (en) 2024-08-14

Similar Documents

Publication Publication Date Title
KR102385762B1 (ko) 속도 최적화된 정체 관리
Al-Saadi et al. A survey of delay-based and hybrid TCP congestion control algorithms
Devkota et al. Performance of quantized congestion notification in TCP incast scenarios of data centers
EP1779347A2 (en) Method and apparatus for network congestion control using queue control and one-way delay measurements
Zhang et al. Tuning the aggressive TCP behavior for highly concurrent HTTP connections in intra-datacenter
JPH03174848A (ja) コンピュータ回路網における遅延ベース混雑回避方法及び装置
WO2018112877A1 (zh) 路径计算和访问请求分发方法、装置及系统
WO2013178076A1 (en) Enhancing aqm to combat wireless losses
Lu et al. Dynamic ECN marking threshold algorithm for TCP congestion control in data center networks
Lu et al. FAMD: A Flow-Aware Marking and Delay-based TCP algorithm for datacenter networks
US9769695B2 (en) Adaptive quality of service for wide area network transport
CN109787861B (zh) 网络数据延迟控制方法
Chen et al. Fluid-flow Analysis of TCP Westwood with RED
Lu et al. EQF: An explicit queue-length feedback for TCP congestion control in datacenter networks
Huang et al. An adaptive active queue management algorithm
US20230336490A1 (en) Network Congestion Control In Sub-Round Trip Time
Jaiswal et al. A comparative performance analysis of TCP congestion control algorithm: elastic TCP vs. e-Elastic TCP
Sup et al. Simultaneous TCP and NCS flows in a UPPAAL framework with a new AQM technique
Pawar et al. A survey on congestion notification algorithm in data centers
Cao et al. Switching congestion control for satellite TCP/AQM networks
Manikandan et al. Active queue management based congestion control protocol for wireless networks
Goudru et al. Performance Analysis and Enhancement of TCP in Presence of Jitter in Wireless Networks
Zhang et al. Fast fairness convergence through fair rate estimation in Variable-structure congestion Control Protocol
Borisov et al. Controllable Markov Jump Processes. II. Monitoring and Optimization of TCP Connections
Joglekar et al. Managing congestion in data center network using congestion notification algorithms

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant