KR20220058576A - 데이터 송신을 제어하기 위한 방법 및 장치, 및 저장 매체 - Google Patents

데이터 송신을 제어하기 위한 방법 및 장치, 및 저장 매체 Download PDF

Info

Publication number
KR20220058576A
KR20220058576A KR1020227010617A KR20227010617A KR20220058576A KR 20220058576 A KR20220058576 A KR 20220058576A KR 1020227010617 A KR1020227010617 A KR 1020227010617A KR 20227010617 A KR20227010617 A KR 20227010617A KR 20220058576 A KR20220058576 A KR 20220058576A
Authority
KR
South Korea
Prior art keywords
data
node
packet
data flow
data packet
Prior art date
Application number
KR1020227010617A
Other languages
English (en)
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 KR20220058576A publication Critical patent/KR20220058576A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2458Modification of priorities while in transit
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • 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
    • 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/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25257Microcontroller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types

Abstract

데이터 송신 제어 방법, 장치, 및 저장 매체가 제공된다. 방법은 다음을 포함한다: 제1 노드는 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 결정하고(201); 송신될 데이터 패킷의 패킷 헤더를 획득하고(202); 데이터 흐름 식별자 및 획득된 패킷 헤더에 기초하여, 송신될 데이터 패킷으로부터 동일한 출구 포트에 대응하는 제1 데이터 패킷들을 결정하고(203); 메타 정보에 기초하여, 제1 데이터 패킷에 대응하는 메타 정보 값을 획득하고(204); 피드백 트리거 조건이 만족된다고 결정하면, 제1 데이터 패킷에 대응하는 메타 정보 값 및 제1 데이터 패킷의 패킷 헤더를 제2 데이터 패킷으로 캡슐화하고, 제2 노드에 제2 데이터 패킷 - 제2 데이터 패킷은 제2 노드가 제1 데이터 패킷에 대응하는 데이터 흐름들에서의 적어도 하나의 데이터 흐름의 송신 레이트를 감소시킬 수 있게 하기 위해 사용됨 - 을 전송하거나(205), 또는 제1 데이터 패킷에 대응하는 데이터 흐름들에서의 적어도 하나의 데이터 흐름의 송신 레이트를 감소시키기 위해 사용되는 지시 정보를 제3 노드에 전송한다. 이러한 방식으로, 혼잡이 미리 방지될 수 있고, 데이터 패킷의 포워딩 레이턴시가 감소될 수 있다.

Description

데이터 송신을 제어하기 위한 방법 및 장치, 및 저장 매체
관련 출원들에 대한 교차-참조
본 출원은 2019년 9월 5일자로 출원되고 발명의 명칭이 "DATA TRANSMISSION CONTROL METHOD, APPARATUS, AND STORAGE MEDIUM"인 중국 특허 출원 제201910838564.5호에 대한 우선권을 주장하며, 그 전체가 본 명세서에 참조로 포함된다.
기술분야
본 출원은 데이터 송신 기술 분야에 관한 것으로, 특히, 데이터 송신 제어 방법, 장치, 및 저장 매체에 관한 것이다.
자동차 전자 장치의 급속한 발전에 따라, 자동차 이더넷 내에 점점 더 많은 차량 장착형 센서가 있고, 점점 더 많은 수집된 데이터가 있다. 현재, 진보된 운전자 보조 시스템(advanced driver assistant system, ADAS)에서는 대량의 데이터가 처리될 수 있지만, ADAS 내의 전자 제어 유닛(electronic control unit, ECU)은 실시간 데이터 처리에 대한 높은 요건을 갖는다. 따라서, 자동차 이더넷의 낮은 레이턴시 요건을 보장하는 방법이 초점이 된다.
종래 기술에서는, 오디오 비디오 브리지(audio video bridge, AVB) 트래픽 스케줄링 메커니즘 또는 시간 민감 네트워크(time sensitive network, TSN) 트래픽 스케줄링 메커니즘이 일반적으로 자동차 이더넷의 낮은 레이턴시 요건을 보장하기 위해 사용된다. AVB 트래픽 스케줄링 메커니즘은 802.1Qav 프로토콜에 기초한다. 구체적으로, 스위치 칩은 AVB 프레임(AVB 데이터 패킷)에 더 높은 우선순위를 할당하고, 공통 프레임에 공통 우선순위를 할당하고, 크레딧 기반 셰이퍼(credited based shaper, CBS) 스케줄링 알고리즘을 사용하여 2가지 타입의 데이터 패킷들을 개별적으로 스케줄링한다. AVB 프레임의 레이턴시는 트래픽이 버스트될 때 별개의 스케줄링을 통해 감소된다. TSN 트래픽 스케줄링 메커니즘은 802.1Qbv 프로토콜에 기초한다. 구체적으로, 스위치 칩은 각각의 시간 슬라이스 내의 각각의 큐에 대한 스위칭 상태를 정의함으로써 데이터 패킷의 전송을 제어한다. 높은 우선순위 데이터 패킷에 대해 적절한 시간 시퀀스가 배열되고 프레임 선점 스케줄링이 수행되어, 높은 우선순위 데이터 패킷이 우선적으로 스케줄링된다.
그러나, AVB 트래픽 스케줄링 메커니즘은 데이터 패킷의 우선순위에 기초한 스케줄링 메커니즘이고, 데이터 패킷은 혼잡했을 수 있다. 혼잡이 미리 방지될 수 없다면, 데이터 패킷의 포워딩 레이턴시(forwarding latency)가 높을 수 있다. TSN 트래픽 스케줄링 메커니즘에서, 프레임 선점이 발생하여, 혼잡이 발생했을 수 있고, 데이터 패킷의 포워딩 레이턴시가 증가했음을 지시한다. 따라서, 현재의 자동차 이더넷 내의 노드가 데이터 패킷을 포워딩할 때, 높은 레이턴시가 여전히 존재할 수 있다.
본 출원은 데이터 패킷의 포워딩 레이턴시를 감소시키기 위한 데이터 송신 제어 방법, 장치, 및 저장 매체를 제공한다.
제1 양태에 따르면, 본 출원은 데이터 송신 제어 방법을 제공한다. 방법은 다음을 포함한다: 제1 노드는 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 획득하고; 송신될 데이터 패킷의 패킷 헤더를 획득하고; 데이터 흐름 식별자 및 획득된 패킷 헤더에 기초하여, 송신될 데이터 패킷으로부터 동일한 출구 포트에 대응하는 제1 데이터 패킷들을 결정하고; 메타 정보에 기초하여, 제1 데이터 패킷에 대응하는 메타 정보 값을 획득하고; 피드백 트리거 조건이 만족된다고 결정하면, 제1 데이터 패킷에 대응하는 메타 정보 값 및 제1 데이터 패킷의 패킷 헤더를 제2 데이터 패킷으로 캡슐화하고, 제2 노드에 제2 데이터 패킷 - 제2 데이터 패킷은 제2 노드가 제1 데이터 패킷에 대응하는 데이터 흐름들에서의 적어도 하나의 데이터 흐름의 송신 레이트를 감소시킬 수 있게 하기 위해 사용됨 - 을 전송하거나, 또는 제3 노드에 지시 정보 - 지시 정보는 제1 데이터 패킷에 대응하는 데이터 흐름들에서의 적어도 하나의 데이터 흐름의 송신 레이트를 감소시키도록 제3 노드에 지시하기 위해 사용됨 - 를 전송한다.
이러한 해결책에 기초하여, 제1 노드는, 요건에 기초하여, 동일한 출구 포트에 대응하는 제1 데이터 패킷에 대응하는 패킷 헤더 및 메타 정보 값들을 제2 데이터 패킷으로 캡슐화하고, 제2 데이터 패킷을 제2 노드에 전송할 수 있다. 제2 노드는, 제2 데이터 패킷에 기초하여, 레이트 감소 처리가 수행될 필요가 있는 데이터 흐름이 있는지를 결정하고, 레이트 감소 처리가 수행될 필요가 있는 데이터 흐름이 있으면, 제2 노드는 소스 단(예를 들어, 제1 노드 또는 제3 노드)에 레이트 감소 처리가 수행될 필요가 있는 데이터 흐름에 대한 레이트 감소 처리를 수행하도록 통지한다. 이러한 방식으로, 혼잡이 미리 방지되어, 데이터 패킷의 포워딩 레이턴시를 감소시키는 것을 돕고, 추가로 출구 포트의 패킷 손실률을 감소시키는 것을 도울 수 있다. 특히, 복수의 입구 포트들이 단일 출구 포트에 대응하는 트래픽 버스트 시나리오에서, 높은 우선순위 데이터 패킷들이 적시에 포워딩되는 것이 보장될 수 있다.
가능한 구현에서, 제1 노드는 하나의 제1 데이터 패킷에 대응하는 메타 정보 값 및 제1 데이터 패킷의 패킷 헤더를 하나의 제2 데이터 패킷으로 캡슐화할 수 있다. 다른 가능한 구현에서, 제1 노드는 복수의 제1 데이터 패킷들에 각각 대응하는 메타 정보 값들 및 패킷 헤더를 하나의 제2 데이터 패킷으로 캡슐화할 수 있다.
본 출원에서, 구체적으로, 제1 노드는 제1 데이터 패킷의 패킷 헤더 이전에 제1 데이터 패킷에 대응하는 메타 정보 값을 추가하고; 제1 데이터 패킷에 대응하는 메타 정보 값 이전에 새로운 패킷 헤더를 추가하여, 제2 데이터 패킷을 획득하며, 새로운 패킷 헤더에서의 목적지 어드레스는 제2 노드의 어드레스이다. 구체적으로, 제2 데이터 패킷의 포맷은: 새로운 패킷 헤더 + 제1 데이터 패킷에 대응하는 메타 정보 값 + 제1 데이터 패킷의 패킷 헤더이다. 이러한 방식으로, 제1 노드는, 새로운 패킷 헤더를 사용하여, 제2 데이터 패킷이 제2 노드에 전송될 필요가 있다고 결정할 수 있고, 메타 정보 값에 기초하여, 레이트 감소 처리가 수행될 필요가 있는지를 결정할 수 있고, 추가로, 제1 데이터 패킷의 패킷 헤더에 기초하여, 제1 데이터 패킷에 대응하는 특정 데이터 흐름을 결정할 수 있는데, 즉, 레이트 감소 처리가 수행될 필요가 있는 데이터 흐름을 결정할 수 있다.
제1 노드는 제2 데이터 패킷의 우선순위를 우선순위 임계값보다 크도록 수정하여, 제2 데이터 패킷이 적시에 제2 노드에 포워딩될 수 있게 하므로, 제2 노드는 혼잡이 발생할 수 있는지를 적시에 결정한다. 예를 들어, 제1 노드는 제2 데이터 패킷의 우선순위를 7로 수정할 수 있다.
본 출원에서, 메타 정보는 노드 식별자, 입구 포트 식별자, 출구 포트 식별자, 큐 식별자, 데이터 패킷의 포워딩 레이턴시, 단일 패킷의 최대 허용가능 레이턴시, 데이터 패킷에 대응하는 데이터 흐름 식별자, 및 데이터 패킷에 대응하는 데이터 타입 중 적어도 하나를 포함하고, 데이터 타입은 제어 평면 데이터, 관리 평면 데이터, 및 데이터 평면 데이터를 포함한다.
또한, 선택적으로, 메타 정보는 큐 깊이, 큐에 대한 출구 대역폭의 이용률, 흐름의 큐 점유 깊이, 사용자-정의 정보 등을 추가로 포함할 수 있다.
가능한 구현에서, 피드백 트리거 조건은: 제1 데이터 패킷의 포워딩 레이턴시가 단일 패킷의 최대 허용가능 레이턴시보다 큰 것; 수신된 제1 데이터 패킷들의 수량이 미리 설정된 수량보다 많은 것; 매번 하나의 제1 데이터 패킷이 수신된다; 큐 깊이가 미리 설정된 큐 깊이보다 큰 것; 및 큐에 대한 출구 대역폭의 이용률이 미리 설정된 대역폭 이용률보다 큰 것 중 임의의 하나 이상을 포함하며, 큐 깊이는 큐를 위한 총 버퍼에 대한 큐에서의 모든 데이터 패킷에 의해 점유된 버퍼의 비율이다.
가능한 구현에서, 제1 노드는, 다음의 3개의 구현 중 어느 하나에 기초하여, 피드백 트리거 조건이 만족되는지를 결정할 수 있다.
구현 1: 제1 노드는, 제1 데이터 패킷에 대응하는 메타 정보 값에 기초하여, 피드백 트리거 조건이 만족되는지를 결정할 수 있다. 예를 들어, 제1 데이터 패킷에 대응하는 메타 정보 값에서의 포워딩 레이턴시가 단일 패킷의 최대 허용가능 레이턴시보다 크다고 결정하면, 제1 노드는 피드백 트리거 조건이 만족된다고 결정한다. 다른 예로서, 제1 데이터 패킷에 대응하는 메타 정보 값에서의 큐 깊이가 미리 설정된 큐 깊이보다 크다고 결정하면, 제1 노드는 피드백 트리거 조건이 만족된다고 결정한다. 다른 예로서, 제1 데이터 패킷에 대응하는 메타 정보 값에서의 큐에 대한 출구 대역폭의 이용률이 미리 설정된 대역폭 이용률보다 크다고 결정하면, 제1 노드는 피드백 트리거 조건이 만족된다고 결정한다.
구현 2: 제1 노드는 제1 데이터 패킷들에 관한 통계 정보에 기초하여, 피드백 트리거 조건이 만족되는지를 결정할 수 있다. 예를 들어, 제1 노드는 미리 설정된 지속기간 내에 수신되는 제1 데이터 패킷들의 수량에 관한 통계를 수집하고, 수량이 미리 설정된 수량보다 크면, 피드백 트리거 조건이 만족된다고 결정할 수 있다.
구현 3: 제1 데이터 패킷이 수신될 때마다, 제1 노드는 피드백 트리거 조건이 만족된다고 결정한다.
가능한 구현에서, 송신될 데이터 패킷은 제3 노드 및/또는 제2 노드로부터의 것일 수 있다.
가능한 구현에서, 제1 노드는 제2 노드에 의해 구성되는 메타 정보, 데이터 흐름 식별자, 및 피드백 트리거 조건을 수신할 수 있다.
다른 가능한 구현에서, 제1 노드는 시스템 디폴트 설정에 기초하여 메타 정보, 데이터 흐름 식별자, 및 피드백 트리거 조건을 결정할 수 있다.
또 다른 가능한 구현에서, 제1 노드는 시스템 디폴트 설정에 기초하여 메타 정보를 결정하고, 제2 노드에 의해 구성되는 데이터 흐름 식별자 및 피드백 트리거 조건을 수신할 수 있다. 대안적으로, 제1 노드는 시스템 디폴트 설정에 기초하여 피드백 트리거 조건을 결정하고, 제2 노드에 의해 구성되는 데이터 흐름 식별자 및 메타 정보를 수신할 수 있다. 대안적으로, 제1 노드는 시스템 디폴트 설정에 기초하여 데이터 흐름 식별자를 결정하고, 제2 노드에 의해 구성되는 피드백 트리거 조건 및 메타 정보를 수신할 수 있다. 대안적으로, 제1 노드는 시스템 디폴트 설정에 기초하여 메타 정보 및 피드백 트리거 조건을 결정하고, 제2 노드에 의해 구성되는 데이터 흐름 식별자를 수신할 수 있다. 대안적으로, 제1 노드는 시스템 디폴트 설정에 기초하여 데이터 흐름 식별자 및 피드백 트리거 조건을 결정하고, 제2 노드에 의해 구성되는 메타 정보를 수신할 수 있다. 대안적으로, 제1 노드는 시스템 디폴트 설정에 기초하여 데이터 흐름 식별자 및 메타 정보를 결정하고, 제2 노드에 의해 구성되는 피드백 트리거 조건을 수신할 수 있다.
제2 양태에 따르면, 본 출원은 데이터 송신 제어 방법을 제공한다. 방법은 다음을 포함한다: 제2 노드는 제1 노드로부터 M개의 제2 데이터 패킷을 수신하고; M개의 제2 데이터 패킷 및 레이트 감소 조건에 기초하여 목표 데이터 흐름을 결정하고; 레이트 감소 방식으로 목표 데이터 흐름의 송신 레이트를 감소시키거나, 또는 제3 노드에 지시 정보를 전송하며, 지시 정보는 레이트 감소 방식으로 목표 데이터 흐름의 송신 레이트를 감소시키도록 제3 노드에 지시하기 위해 사용된다. 목표 데이터 흐름은 M개의 제2 데이터 패킷에 대응하는 데이터 흐름들 중 적어도 하나이다. 제1 노드가 피드백 트리거 조건이 만족된다고 결정하면 제2 데이터 패킷은 제1 노드에 의해 제2 노드에 전송되고, 제2 데이터 패킷은 제1 데이터 패킷의 패킷 헤더 및 제1 데이터 패킷에 대응하는 메타 정보 값을 운반하고, 제1 데이터 패킷은 데이터 흐름 식별자에 기초하여 송신될 데이터 패킷으로부터 제1 노드에 의해 결정된다. M은 1 이상의 정수이다.
이러한 해결책에 기초하여, 제2 노드는 요건에 기초하여 제1 노드에 의해 전송된 제2 데이터 패킷을 수신할 수 있다. 제2 데이터 패킷은 제1 데이터 패킷의 패킷 헤더 및 제1 데이터 패킷에 대응하는 메타 정보 값을 운반하기 때문에, 제2 노드는, 제2 데이터 패킷에서 운반되는 제1 데이터 패킷의 패킷 헤더 및 제1 데이터 패킷에 대응하는 메타 정보 값에 기초하여, 레이트 감소 처리가 수행될 필요가 있는 데이터 흐름이 있는지를 결정할 수 있고, 레이트 감소 처리가 수행될 필요가 있는 데이터 흐름이 있으면, 제2 노드는 소스 단(예를 들어, 제1 노드 또는 제3 노드)에 레이트 감소 처리가 수행될 필요가 있는 데이터 흐름에 대한 레이트 감소 처리를 수행하도록 통지한다. 이러한 방식으로, 혼잡이 미리 방지되어, 데이터 패킷의 포워딩 레이턴시를 감소시키는 것을 돕고, 추가로 출구 포트의 패킷 손실률을 감소시키는 것을 도울 수 있다. 특히, 복수의 입구 포트들이 단일 출구 포트에 대응하는 트래픽 버스트 시나리오에서, 높은 우선순위 데이터 패킷들이 적시에 포워딩되는 것이 보장될 수 있다.
가능한 구현에서, 제2 노드는 구성되는 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 제1 노드에 전송할 수 있다.
본 출원에서, 메타 정보는 노드 식별자, 입구 포트 식별자, 출구 포트 식별자, 큐 식별자, 데이터 패킷의 포워딩 레이턴시, 단일 패킷의 최대 허용가능 레이턴시, 데이터 패킷에 대응하는 데이터 흐름 식별자, 및 데이터 패킷에 대응하는 데이터 타입 중 적어도 하나를 포함하고, 데이터 타입은 제어 평면 데이터, 관리 평면 데이터, 및 데이터 평면 데이터를 포함한다.
가능한 구현에서, 제어 평면 데이터, 관리 평면 데이터, 및 데이터 평면 데이터 사이의 우선순위 관계는 대응하는 데이터 흐름들이 목표 데이터 흐름들로서 결정되는 시퀀스, 즉, 제어 평면 데이터 > 관리 평면 데이터 > 데이터 평면 데이터이다. 이러한 방식으로, 데이터 평면 상의 데이터 흐름의 송신 레이트가 우선적으로 감소되므로, 제어 평면 상의 중요한 데이터가 적시에 포워딩될 수 있다고 결정될 수 있어, ADAS의 핵심 제어 평면 정보가 적시에 처리되는 것을 보장하는 것을 돕는다.
또한, 선택적으로, 메타 정보는 제1 데이터 패킷에 대응하는 데이터 흐름의 큐 점유 깊이 및 큐 깊이를 추가로 포함할 수 있다.
가능한 구현에서, 레이트 감소 조건은 제1 조건, 제2 조건, 및 제3 조건 중 어느 하나를 포함할 수 있다. 제1 조건은, 샘플링 주기에서, 동일한 데이터 흐름에 속하는 k개의 제1 데이터 패킷에 각각 대응하는 메타 정보 값들에서의 포워딩 레이턴시들의 평균 값이 제1 미리 설정된 값보다 크다는 것이며, k는 M 이하의 정수이다. 제2 조건은, 샘플링 주기에서, 동일한 데이터 흐름에 속하는 k개의 제1 데이터 패킷에 각각 대응하는 메타 정보 값들에서의 데이터 흐름들의 큐 점유 깊이들의 평균 값이 제2 미리 설정된 값보다 크다는 것이다. 제3 조건은, 샘플링 주기에서, 동일한 데이터 흐름에 속하는 k개의 제1 데이터 패킷에 각각 대응하는 메타 정보 값들에서의 큐 깊이들의 평균 값이 제3 미리 설정된 값보다 크다는 것이다.
가능한 구현에서, 제1 노드는, 제2 데이터 패킷에서 운반되는 제1 데이터 패킷의 패킷 헤더에 기초하여, M개의 제2 데이터 패킷에서의 어느 제2 데이터 패킷들이 동일한 데이터 흐름에 대응하는지를 결정할 수 있다. M개의 제2 데이터 패킷과 데이터 흐름 사이의 결정된 대응에 기초하여, 목표 데이터 흐름을 결정하는 구현 프로세스가 다음의 2가지 사례에서 상세히 설명될 수 있다.
사례 1: M개의 제2 데이터 패킷은 하나의 데이터 흐름에 대응한다
사례 1에 기초하여, 제2 노드가 제1 데이터 패킷들에 대응하고 M개의 제2 데이터 패킷에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 포워딩 레이턴시들의 평균 값이 제1 미리 설정된 값보다 크다고 결정하면, 제2 노드는 M개의 제2 데이터 패킷에 대응하는 데이터 흐름을 목표 데이터 흐름으로서 결정하거나; 제2 노드가 제1 데이터 패킷들에 대응하고 M개의 제2 데이터 패킷에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 데이터 흐름들의 큐 점유 깊이들의 평균 값이 제2 미리 설정된 값보다 크다고 결정하면, 제2 노드는 M개의 제2 데이터 패킷에 대응하는 데이터 흐름을 목표 데이터 흐름으로서 결정하거나; 또는 제2 노드가 제1 데이터 패킷들에 대응하고 M개의 제2 데이터 패킷에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 큐 깊이들의 평균 값이 제3 미리 설정된 값보다 크다고 결정하면, 제2 노드는 M개의 제2 데이터 패킷에 대응하는 데이터 흐름을 목표 데이터 흐름으로서 결정한다.
사례 2: M개의 제2 데이터 패킷은 복수의 데이터 흐름들에 대응하고, k는 M 미만의 정수이다.
사례 2에서, 각각의 데이터 흐름은 적어도 k개의 제2 데이터 패킷을 포함한다.
사례 2에 기초하여, 제2 노드는 제1 데이터 패킷들에 대응하고 각각의 데이터 흐름에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 포워딩 레이턴시들의 평균 값을 결정하고, 포워딩 레이턴시들의 평균 값이 제1 미리 설정된 값보다 크고 우선순위가 가장 낮은 데이터 흐름을 목표 데이터 흐름으로서 결정한다. 대안적으로, 제2 노드는 제1 데이터 패킷들에 대응하고 각각의 데이터 흐름에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 데이터 흐름들의 큐 점유 깊이들의 평균 값을 결정하고, 데이터 흐름들의 큐 점유 깊이들의 평균 값이 제2 미리 설정된 값보다 크고 우선순위가 가장 낮은 데이터 흐름을 목표 데이터 흐름으로서 결정한다. 대안적으로, 제2 노드는 제1 데이터 패킷들에 대응하고 각각의 데이터 흐름에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 큐 깊이들의 평균 값을 결정하고, 큐 깊이들의 평균 값이 제3 미리 설정된 값보다 크고 우선순위가 가장 낮은 데이터 흐름을 목표 데이터 흐름으로서 결정한다.
가능한 구현에서, 레이트 감소 방식은 다음을 포함한다: 제1 조건에 기초하여 목표 데이터 흐름이 결정되면, 목표 데이터 흐름의 송신 레이트를 제1 백분율만큼 감소시키는 것; 또는 제2 조건에 기초하여 목표 데이터 흐름이 결정되면, 목표 데이터 흐름의 송신 레이트를 제2 백분율만큼 감소시키는 것; 또는 제3 조건에 기초하여 목표 데이터 흐름이 결정되면, 목표 데이터 흐름의 송신 레이트를 제3 백분율만큼 감소시키는 것.
제3 양태에 따르면, 본 출원의 실시예는 장치를 제공한다. 장치는 프로세서 및 통신 인터페이스를 포함한다. 선택적으로, 장치는 메모리를 추가로 포함한다. 장치가 메모리를 포함할 때, 메모리는 명령어들을 저장하도록 구성된다. 프로세서는 메모리에 저장된 명령어들을 실행하도록 구성된다. 프로세서가 메모리에 저장된 명령어들을 실행할 때, 장치는 제1 양태 또는 제1 양태의 가능한 구현들 중 어느 하나에 따른 방법을 수행하도록 구성되거나, 제2 양태 또는 제2 양태의 가능한 구현들 중 어느 하나에 따른 방법을 수행하도록 구성된다.
제4 양태에 따르면, 본 출원의 실시예는 제1 양태 또는 제1 양태의 가능한 구현들 중 어느 하나에 따른 방법을 구현하도록 구성되거나, 제2 양태 또는 제2 양태의 가능한 구현들 중 어느 하나에 따른 방법을 구현하도록 구성되는 장치를 제공한다. 장치는 전술한 방법들에서의 단계들을 구현하도록 각각 구성되는 대응하는 기능 모듈들을 포함한다. 기능들은 하드웨어에 의해 구현될 수 있거나, 또는 대응하는 소프트웨어를 실행하는 하드웨어에 의해 구현될 수 있다. 하드웨어 또는 소프트웨어는 기능들에 대응하는 하나 이상의 모듈을 포함한다.
가능한 구현에서, 장치의 구조는 처리 유닛 및 송수신기 유닛을 포함한다. 선택적으로, 장치는 저장 유닛을 추가로 포함한다. 이러한 유닛들은 전술한 방법 예들에서 대응하는 기능들을 수행할 수 있다. 상세사항들에 대해서는, 방법 예들에서의 상세한 설명들을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
제5 양태에 따르면, 본 출원은 시스템을 제공한다. 시스템은 제1 노드 및 제2 노드를 포함한다. 제1 노드는 제1 양태 또는 제1 양태의 가능한 구현들 중 어느 하나에 따른 방법을 수행하도록 구성될 수 있고, 제2 노드는 제2 양태 또는 제2 양태의 가능한 구현들 중 어느 하나에 따른 방법을 수행하도록 구성될 수 있다.
제6 양태에 따르면, 본 출원의 실시예는 컴퓨터 저장 매체를 제공한다. 컴퓨터 저장 매체는 명령어들을 저장한다. 명령어들이 컴퓨터 상에서 실행될 때, 컴퓨터는 제1 양태 또는 제1 양태의 가능한 구현들 중 어느 하나에 따른 방법을 수행할 수 있게 되거나, 컴퓨터는 제2 양태 또는 제2 양태의 가능한 구현들 중 어느 하나에 따른 방법을 수행할 수 있게 된다.
제7 양태에 따르면, 본 출원의 실시예는 명령어들을 포함하는 컴퓨터 프로그램 제품을 제공한다. 컴퓨터 프로그램 제품이 컴퓨터 상에서 실행될 때, 컴퓨터는 제1 양태 또는 제1 양태의 가능한 구현들 중 어느 하나에 따른 방법을 수행할 수 있게 되거나, 컴퓨터는 제2 양태 또는 제2 양태의 가능한 구현들 중 어느 하나에 따른 방법을 수행할 수 있게 된다.
도 1a는 본 출원에 따른 MDC 시스템의 아키텍처의 개략도이다.
도 1b는 본 출원에 따른 MDC-AB 시스템의 아키텍처의 개략도이다.
도 1c는 본 출원에 따른 MDC-ABC 시스템의 아키텍처의 개략도이다.
도 2는 본 출원에 따른 데이터 송신 제어 방법의 개략적인 흐름도이다.
도 3a는 본 출원에 따른 비트맵 형태의 메타 정보의 구조의 개략도이다.
도 3b는 본 출원에 따른 비트맵 형태의 메타 정보의 다른 구조의 개략도이다.
도 4는 본 출원에 따른 LSW의 구조의 개략도이다.
도 5a 및 도 5b는 본 출원에 따른 다른 데이터 송신 제어 방법의 개략적인 흐름도이다.
도 6은 본 출원에 따른 장치의 구조의 개략도이다.
도 7은 본 출원에 따른 장치의 구조의 개략도이다.
본 출원의 목적들, 기술적 해결책들, 및 이점들을 더 명확하게 하기 위해, 이하에서는 본 출원을 첨부 도면들을 참조하여 상세히 추가로 설명한다.
본 출원에서, "적어도 하나"는 하나 이상을 의미하고, "복수의"는 둘 이상을 의미한다는 것을 이해해야 한다. 용어 "및/또는"은 연관된 객체들 사이의 연관 관계를 설명하는데 사용되며, 3가지 관계가 존재할 수 있음을 나타낸다. 예를 들어, "A 및/또는 B"는 다음의 3가지 경우: A만 존재하는 경우, B만 존재하는 경우, 및 A와 B 양자 모두가 존재하는 경우를 나타낼 수 있고, 여기서 A와 B는 단수 또는 복수일 수 있다. 문자 "/"는 연관된 객체들 사이의 "또는(or)" 관계를 일반적으로 나타낸다. 용어 "다음의 항목들(피스들) 중 적어도 하나" 또는 그의 유사한 표현은 단일 항목(피스) 또는 복수의 항목들(피스들)의 임의의 조합을 포함하는 이러한 항목들의 임의의 조합을 나타낸다. 예를 들어, a, b, 또는 c 중 적어도 하나는 a, b, c, "a와 b", "a와 c", "b와 c", 또는 "a, b, 및 c"를 나타낼 수 있고, 여기서 a, b, 및 c는 단수 또는 복수일 수 있다. 용어들 "제1", "제2" 등은 유사한 객체들을 구별하려는 것이며, 반드시 특정 순서 또는 시퀀스를 나타내지는 않는다. 또한, 용어들 "포함하다", "갖다", 및 이들의 임의의 변형은 비배타적 포함(non-exclusive inclusion), 예를 들어, 일련의 모듈들 또는 유닛들을 커버하려는 것이다. 시스템, 제품, 또는 디바이스는 명확하게 열거되는 모듈들 또는 유닛들로 반드시 제한되는 것은 아니며, 명확하게 열거되지 않거나 이러한 시스템들, 모듈들, 또는 유닛들에 고유한 다른 모듈들 또는 유닛들을 포함할 수 있다.
본 출원은 다음의 3가지 적용가능한 자동차 이더넷 시나리오를 제공한다.
시나리오 1: 자동차 이더넷 시스템은 단일 모바일 데이터 센터(mobile data center, MDC) 시스템이다.
도 1a는 본 출원에 따른 MDC 시스템의 아키텍처의 개략도이다. MDC 시스템은 센서, 이더넷 스위치(local area network switch, LSW) 칩, 칩, 및 마이크로컨트롤러 유닛(microcontroller unit, MCU)을 포함할 수 있다. 예를 들어, 도 1a는 센서 1 내지 센서 6, LSW, 칩, 및 MCU를 포함한다. 각각의 센서는 LSW 내의 하나의 포트를 통해 LSW에 접속될 수 있고, 칩은 LSW 내의 하나의 포트를 통해 LSW에 접속될 수 있고, MCU는 또한 LSW 내의 하나의 포트를 통해 LSW에 접속될 수 있다.
센서들(예를 들어, 도 1a에 도시된 센서 1 내지 센서 6)은, 예를 들어, ADAS, 레이저 레이더들(light detection and ranging, LiDAR), 또는 카메라들에 외부적으로 접속된 다양한 센서들일 수 있다. 센서들은 데이터 흐름들을 전송 또는 수신할 수 있고, 각각의 센서는 임의의 수량의 데이터 흐름들을 전송 또는 수신할 수 있다. 도 1a에서, 해결책의 설명을 용이하게 하기 위해, 센서가 하나의 데이터 흐름을 전송하는 예를 사용하여 설명들이 제공된다.
LSW는 복수의 기가비트 이더넷(gigabit Ethernet, GE) 포트들 또는 10 기가비트 이더넷(10-gigabit Ethernet, XGE) 포트들을 지원할 수 있다. 센서, MCU, LSW, 및 칩은 GE 포트들 또는 XGE 포트들을 통해 서로 접속될 수 있다. LSW는 주로 데이터를 교환하고 포워딩하도록 구성된다. 또한, 선택적으로, 본 출원에서는, 데이터 흐름의 흐름 방향에 기초하여, 데이터 흐름이 LSW 내로 흐르는 포트를 입구 포트(ingress port)라고 지칭할 수 있고, 데이터 흐름이 LSW 밖으로 흐르는 포트를 출구 포트(egress port)라고 지칭할 수 있다. 도 1a에 도시된 바와 같이, 센서 및 MCU에 접속된 포트들은 입구 포트들로서 지칭될 수 있는데, 즉, 센서 및 MCU의 데이터 흐름들은 LSW 내로 흐른다. LSW에 있고 칩에 접속되는 포트는 출구 포트라고 지칭될 수 있는데, 즉, LSW의 데이터 흐름은 칩 내로 흐른다. 구체적으로, 시나리오 1에서, 복수의 입구 포트들은 동일한 출구 포트에 대응한다. 다시 말해서, 많은 수량의 데이터 흐름들이 동일한 출구 포트를 통과할 수 있다.
칩, 예를 들어, 인공 지능(artificial intelligence, AI) 칩은 AI 가속기 또는 컴퓨팅 카드라고도 지칭된다. AI 칩은 많은 수량의 컴퓨팅 태스크들을 다루고, 예를 들어, 데이터 패킷에서 운반되는 정보를 획득하고, 데이터 패킷에서의 정보에 기초하여 관련 동작을 수행하도록 구성될 수 있다. AI 칩은, 예를 들어, 그래픽 처리 유닛(graphics processing unit, GPU), 디지털 신호 처리(digital signal processing, DSP) 회로, 필드 프로그램가능 게이트 어레이(field programmable gate array, FPGA), 주문형 집적 회로(application-specific integrated circuit, ASIC), 또는 다른 프로그램가능 로직 디바이스를 포함한다.
단일 칩 마이크로컴퓨터(single chip microcomputer) 또는 단일-칩 마이크로컴퓨터라고도 지칭되는 MCU는 단일 칩 상에 메모리(memory) 및 타이머(Timer)와 같은 주변 인터페이스들을 통합하여 칩-레벨 컴퓨터를 형성한다. MCU는 임의의 수량의 데이터 흐름을 전송 또는 수신할 수 있다. 도 1a에서, 해결책의 설명을 용이하게 하기 위해, MCU가 하나의 데이터 흐름을 전송하는 예를 사용하여 설명들이 제공된다.
시나리오 2: 자동차 이더넷 시스템은 MDC-AB 시스템이다.
MDC-AB 시스템은 2개의 단일 MDC 시스템을 포함하는 시스템이라는 점이 또한 이해될 수 있다. 도 1b는 본 출원에 따른 MDC-AB 시스템의 아키텍처의 개략도이다. MDC-AB 시스템은 MDC-A 시스템 및 MDC-B 시스템을 포함할 수 있고, MDC-A 시스템 및 MDC-B 시스템은 A/B 시스템 상호접속 포트들을 통해 접속될 수 있다. MDC-A 시스템 및 MDC-B 시스템에 포함된 구조들은 동일하거나 상이할 수 있다. 이는 본 출원에서 제한되지 않는다. 도 1b에서, 예를 들어, MDC-A 시스템과 MDC-B 시스템은 동일하다. MDC-A 시스템과 MDC-B 시스템 양자 모두에 대해서는, 도 1a의 설명들을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
시나리오 2에서, MDC-A 시스템은 A/B 시스템 상호접속 포트를 통해 MDC-B 시스템에 데이터 흐름을 전송할 수 있거나, A/B 시스템 상호접속 포트를 통해 MDC-B 시스템으로부터 데이터 흐름을 수신할 수 있다. MDC-A 시스템이 A/B 시스템 상호접속 포트를 통해 MDC-B 시스템에 데이터 흐름을 전송하는 경우, MDC-A 시스템은 MDC-B 시스템의 소스 단으로서 사용된다. MDC-A 시스템이 MDC-B 시스템으로부터 데이터 흐름을 수신하는 경우, MDC-B 시스템은 MDC-A 시스템의 소스 단으로서 사용된다.
시나리오 3: 자동차 이더넷 시스템은 MDC-ABC 시스템이다.
MDC-ABC 시스템은 3개의 단일 MDC 시스템을 포함하는 시스템이라는 점이 또한 이해될 수 있다. 도 1c는 본 출원에 따른 MDC-ABC 시스템의 아키텍처의 개략도이다. MDC-ABC 시스템은 MDC-A 시스템, MDC-B 시스템, 및 MDC-C 시스템을 포함할 수 있다. MDC-A 시스템, MDC-B 시스템, 및 MDC-C 시스템은 MDC-A 시스템, MDC-B 시스템, 및 MDC-C 시스템 사이의 접속을 구현하기 위해, 시스템들 내의 A/B/C 시스템 상호접속 포트들을 통해 외부 이더넷 스위치 칩(예를 들어, 자동차 이더넷 스위치 칩)에 접속될 수 있다. 외부 이더넷 스위치 칩은 복수의 포트들을 제공할 수 있다. MDC-A 시스템, MDC-B 시스템, 및 MDC-C 시스템에 대해서는, 도 1a의 설명들을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
시나리오 3에서, MDC-A 시스템과 MDC-C 시스템 양자 모두는 각자의 A/B/C 시스템 상호접속 포트들 및 외부 이더넷 스위치 칩을 통해 MDC-B 시스템에 데이터 흐름들을 전송할 수 있거나, A/B/C 시스템 상호접속 포트들 및 외부 이더넷 스위치 칩을 통해 MDC-B 시스템으로부터 데이터 흐름들을 수신할 수 있다. MDC-A 시스템과 MDC-C 시스템 양자 모두가 A/B/C 시스템 상호접속 포트들 및 외부 이더넷 스위치 칩을 통해 MDC-B 시스템에 데이터 흐름들을 전송하는 경우, MDC-A 시스템과 MDC-C 시스템 양자 모두는 MDC-B 시스템의 소스 단들로서 사용된다.
전술한 3가지 시나리오에서, 데이터 흐름은 출구 포트를 통해 칩 내로 흐른다는 점에 유의해야 한다. 본 출원에서, 출구 포트는 대안적으로 LSW의 데이터 흐름이 다른 디바이스 내로 흐르는 포트일 수 있고, 출구 포트는 데이터 흐름이 칩 내로 흐르는 포트에 제한되지 않는다. 또한, 본 출원에서, 칩은 또한 LSW에 데이터 흐름을 송신할 수 있는데, 즉, 칩은 또한 소스 단으로서 사용될 수 있다.
전술한 설명들은 단지 예들이라는 점이 이해되어야 한다. 본 출원에서 제공되는 방법은 복수의 시나리오들에 추가로 적용될 수 있지만, 전술한 3가지 시나리오로 제한되지 않는다.
전술한 내용에 기초하여, LSW에 데이터 흐름을 저장하는데 사용되는 버퍼 공간은 작고, 일반적으로 1 Mbit이다. LSW에 저장되는 데이터 흐름이 적시에 스케줄링될 수 없으면, 혼잡이 발생할 가능성이 있다. 또한, LSW에 의해 데이터 패킷을 포워딩하는 레이턴시는 혼잡으로 인해 급격히 증가할 수 있고, 심지어 패킷 손실도 LSW에서의 출구 포트의 방향으로 발생할 수 있다. 특히, 다중-MDC 상호접속 확장 시나리오(예를 들어, 시나리오 2 및 시나리오 3)에서, 많은 양의 버스트 트래픽이 발생할 가능성이 있는데, 즉, 복수의 데이터 흐름들은 복수의 포트들로부터 LSW 내로 흐르고 하나의 포트로부터 흐른다. 다중-MDC 상호접속 확장 시나리오에서, 많은 수량의 데이터 흐름이 버스트될 때, 혼잡이 발생할 가능성이 더 크다.
전술한 문제를 고려하여, 본 출원은 데이터 흐름의 혼잡을 미리 방지하는 데이터 송신 제어 방법을 제공하여, 데이터 패킷이 적시에 포워딩되어, 데이터 패킷의 포워딩 레이턴시를 감소시키는 것을 돕는다.
이하에서는, 도 2 내지 도 5a 및 도 5b를 참조하여, 본 출원에서 제안된 데이터 송신 제어 방법을 상세히 설명한다.
도 2는 본 출원에 따른 데이터 송신 제어 방법의 개략적인 흐름도의 예를 도시한다. 다음의 설명 프로세스에서, 방법은 시나리오 1, 시나리오 2, 또는 시나리오 3에 적용될 수 있다. 이 방법은 3가지 타입의 노드에 의해 수행될 수 있다. 3가지 타입의 노드는, 예를 들어, 제1 노드, 제2 노드 및 제3 노드이다. 방법이 시나리오 1에 적용될 때, 제1 노드는 LSW일 수 있고, 제2 노드는 칩일 수 있고, 제3 노드는 센서 및 MCU일 수 있다. 방법이 시나리오 2에 적용될 때, 이 방법은 MDC-A 시스템 및 MDC-B 시스템 각각에서 수행될 수 있다. 구체적으로, MDC-A 시스템에서, 제1 노드는 MDC-A 시스템에서의 LSW일 수 있고, 제2 노드는 MDC-A 시스템에서의 칩일 수 있고, 제3 노드는 MDC-A 시스템 및 MDC-B 시스템에서의 센서 및 MCU일 수 있다. MDC-B 시스템에서, 제1 노드는 MDC-B 시스템에서의 LSW일 수 있고, 제2 노드는 MDC-B 시스템에서의 칩일 수 있고, 제3 노드는 MDC-B 시스템에서의 센서 및 MCU일 수 있다. 방법이 시나리오 3에 적용될 때, 이 방법은 MDC-A 시스템, MDC-B 시스템, 및 MDC-C 시스템 각각에서 수행될 수 있다. MDC-A 시스템에서, 제1 노드는 MDC-A 시스템에서의 LSW일 수 있고, 제2 노드는 MDC-A 시스템에서의 칩일 수 있고, 제3 노드는 MDC-A 시스템, MDC-B 시스템, 및 MDC-C 시스템에서의 센서 및 MCU일 수 있다. MDC-B 시스템에서, 제1 노드는 MDC-B 시스템에서의 LSW일 수 있고, 제2 노드는 MDC-B 시스템에서의 칩일 수 있고, 제3 노드는 MDC-B 시스템, MDC-A 시스템, 및 MDC-C 시스템에서의 센서 및 MCU일 수 있다. MDC-C 시스템에서, 제1 노드는 MDC-C 시스템에서의 LSW일 수 있고, 제2 노드는 MDC-C 시스템에서의 칩일 수 있고, 제3 노드는 MDC-C 시스템, MDC-B 시스템, 및 MDC-A 시스템에서의 센서 및 MCU일 수 있다. 도 2에 도시된 바와 같이, 그 방법은 다음의 단계들을 포함한다.
단계 201: 제1 노드는 메타 정보, 데이터 흐름 식별자, 및 피드백 트리거 조건을 결정한다.
가능한 구현에서, 제2 노드는 구성되는 메타 정보, 데이터 흐름 식별자, 및 피드백 트리거 조건을 제1 노드에 전송할 수 있다. 대응하여, 제1 노드는 제2 노드에 의해 구성되는 메타 정보, 데이터 흐름 식별자, 및 피드백 트리거 조건을 수신한다.
다른 가능한 구현에서, 제1 노드는 시스템 디폴트 설정에 기초하여 메타 정보, 데이터 흐름 식별자, 및 피드백 트리거 조건을 결정할 수 있다.
또 다른 가능한 구현에서, 제1 노드는 시스템 디폴트 설정에 기초하여 메타 정보를 결정하고, 제2 노드에 의해 구성되는 데이터 흐름 식별자 및 피드백 트리거 조건을 수신할 수 있다. 대안적으로, 제1 노드는 시스템 디폴트 설정에 기초하여 피드백 트리거 조건을 결정하고, 제2 노드에 의해 구성되는 데이터 흐름 식별자 및 메타 정보를 수신할 수 있다. 대안적으로, 제1 노드는 시스템 디폴트 설정에 기초하여 데이터 흐름 식별자를 결정하고, 제2 노드에 의해 구성되는 피드백 트리거 조건 및 메타 정보를 수신할 수 있다. 대안적으로, 제1 노드는 시스템 디폴트 설정에 기초하여 메타 정보 및 피드백 트리거 조건을 결정하고, 제2 노드에 의해 구성되는 데이터 흐름 식별자를 수신할 수 있다. 대안적으로, 제1 노드는 시스템 디폴트 설정에 기초하여 데이터 흐름 식별자 및 피드백 트리거 조건을 결정하고, 제2 노드에 의해 구성되는 메타 정보를 수신할 수 있다. 대안적으로, 제1 노드는 시스템 디폴트 설정에 기초하여 데이터 흐름 식별자 및 메타 정보를 결정하고, 제2 노드에 의해 구성되는 피드백 트리거 조건을 수신할 수 있다.
이하에서는, 메타 정보, 데이터 흐름 식별자, 및 피드백 트리거 조건을 상세히 개별적으로 설명한다.
메타 정보는 노드 식별자(node id), 입구 포트 식별자(iport id), 출구 포트 식별자(eport id), 큐 식별자(queue id), 데이터 패킷의 포워딩 레이턴시(forwarding latency), 단일 패킷의 최대 허용가능 레이턴시(flow max latency), 데이터 패킷에 대응하는 데이터 흐름 식별자(flow id), 및 데이터 패킷에 대응하는 데이터 타입(flow info type) 중 적어도 하나를 포함할 수 있고, 데이터 타입은 제어 평면 데이터, 관리 평면 데이터, 및 데이터 평면 데이터를 포함한다. 노드 식별자는 데이터 패킷을 송신(또는 포워딩)하는 제1 노드의 식별자, 예를 들어, LSW의 식별자이다. 노드 식별자는 데이터 흐름이 나오는 제1 노드를 결정하기 위해 제2 노드에 의해 사용된다. 입구 포트 식별자는 데이터 패킷이 제1 노드 내로 흐르는 포트의 식별자이다. 출구 포트 식별자는 데이터 패킷이 제1 노드 밖으로 흐르는 포트의 식별자이다. 큐는, 큐 알고리즘을 사용하여 수신된 데이터 흐름들을 분류한 다음 큐 스케줄링 메커니즘에 따라 큐에서 데이터 흐름들을 전송한다는 것을 의미한다. 상이한 데이터 흐름들은 상이한 큐들에 대응할 수 있다. 큐 깊이는 큐를 위한 총 버퍼에 대한 큐에서의 모든 데이터 패킷에 의해 점유된 버퍼의 비율이다. 예를 들어, 제1 노드의 포트의 큐 A에 할당된 버퍼 유닛들의 총 수량 N이 1000이고, 버퍼 큐 A 내의 모든 데이터 패킷에 의해 점유된 버퍼 유닛들의 수량이 360이라고 가정하면, 제1 노드의 큐 A의 깊이는 360/1000=36%이다. 큐에 대한 출구 대역폭의 이용률은 총 출구 대역폭에 대한 큐에서의 출구 데이터 패킷들에 의해 점유된 대역폭의 비율이다. 예를 들어, 큐 1에서의 출구 데이터 패킷들에 의해 점유된 대역폭이 1G이고, 총 출구 대역폭이 10G이면, 큐 1에 대한 출구 대역폭의 이용률은 1G/10G=10%이다. 데이터 패킷의 포워딩 레이턴시는 포워딩될 필요가 있는 데이터 패킷의 마지막 비트가 제1 노드의 입구 포트에 진입하는 시점으로부터 데이터 패킷의 첫 번째 비트가 출구 포트에 나타나는 시점까지의 시간 간격이다. 데이터 흐름의 큐 점유 깊이는 큐에서의 데이터 흐름에 의해 점유된 길이이다. 예를 들어, 큐 깊이는 10K이고, 데이터 흐름 1의 길이는 1K이고, 즉, 데이터 흐름 1의 큐 점유 깊이는 1K이다. 데이터 흐름 식별자는 데이터 흐름을 고유하게 식별할 수 있다. 예를 들어, 데이터 흐름 식별자는 5-튜플, 3-튜플, 또는 데이터 흐름을 고유하게 식별할 수 있는 다른 식별자일 수 있다. 5-튜플은 보통 소스 인터넷 프로토콜(internet protocol, IP) 어드레스, 소스 포트, 목적지 IP 어드레스, 목적지 포트, 및 전송 계층 프로토콜, 즉, 5개의 파라미터의 세트: 소스 IP 어드레스, 소스 포트, 목적지 IP 어드레스, 목적지 포트, 및 전송 계층 프로토콜을 포함한다. 예를 들어, 5-튜플은 192.168.1.1, 10000, TCP, 121.14.88.76, 및 80을 포함한다. 5-튜플은, IP 어드레스가 192.168.1.1이고 포트가 10000인 단말기가 TCP 프로토콜을 사용하여 IP 어드레스가 121.14.88.76이고 포트가 80인 단말기에 접속되는 것을 의미한다. 데이터 흐름 식별자는 데이터 패킷이 속하는 데이터 흐름을 결정하기 위해 제2 노드에 의해 사용된다. 사용자-정의 정보는, 예를 들어, 차량 제어 키 데이터 및 심장박동 메시지를 포함한다. 데이터 패킷에 대응하는 데이터 타입은 데이터 패킷의 우선순위를 결정하기 위해 제2 노드에 의해 사용된다.
표 1은 본 출원에서 제공되는 정의된 메타 정보(metainfo)를 나타낸다. Y는 "필수"를 나타내고, N은 "선택적(optional)"을 나타낸다.
표 1 정의된 메타 정보
Figure pct00001
사용자는 표 1의 메타 정보에서 선택적 항목들(예를 들어, 큐 깊이, 큐에 대한 출구 대역폭의 이용률, 데이터 흐름의 큐 점유 깊이, 및 사용자-정의 정보)을 구성할지를 선택할 수 있거나, 또는 선택적 항목들은 시스템 디폴트 항목에 기초하여 구성될 수 있다는 점에 유의해야 한다. 예를 들어, 큐 깊이, 큐에 대한 출구 대역폭의 이용률, 및 데이터 흐름의 큐 점유 깊이가 선택적 항목들에서 구성될 필요가 있다는 것이 시스템에 의해 디폴트로 설정될 수 있다.
가능한 구현에서, 표 1의 메타 정보는 LSW에 의해 정의될 수 있고, 구성될 필요가 있는 메타 정보에서의 선택적 항목들은 시스템에 의해 디폴트로 설정될 수 있거나, 또는 제2 노드에서 사용자에 의해 구성될 수 있다. 이는 본 출원에서 제한되지 않는다. 메타 정보에서의 선택적 항목들은 비트맵 형태로 제1 노드에 전송될 수 있다. 예를 들어, 도 3a는 본 출원에 따른 비트맵 형태의 메타 정보의 구조의 개략도이다. 메타데이터 정보의 구조의 길이는 고정될 수 있고, 예를 들어, 16 비트일 수 있다. 사용자-정의 정보 이외의 항목(Item)은 1 비트에 대응한다. "1"은 "추가"를 나타내는데 사용될 수 있고, "0"은 "추가 없음"을 나타내는데 사용될 수 있다. 사용자-정의 정보는 5 비트에 대응할 수 있다. 메타 정보에서의 필수 항목에 대응하는 비트맵의 비트는 1이라는 것을 이해해야 한다. 본 출원에서의 메타 정보의 구조는 또한 다른 비트 수량일 수 있다는 점에 유의해야 한다. 또한, 다른 식별자들이 또한 "추가" 및 "추가 없음"을 나타내는데 사용될 수 있다. 이는 본 출원에서 제한되지 않는다. 예를 들어, 메타 정보에서의 선택적 항목들이 데이터 흐름의 큐 점유 깊이 및 큐 깊이를 포함하는 경우, 비트맵 형태의 메타 정보의 구조가 도 3b에 도시된다.
전체 제1 노드에 대해 하나의 메타 정보가 구성될 수 있거나, 각각의 데이터 흐름에 대해 하나의 메타 정보가 구성될 수 있거나, 각각의 큐에 대해 하나의 메타 정보가 구성될 수 있다는 점에 유의해야 한다. 이는 본 출원에서 제한되지 않는다. 제1 노드의 처리 효율을 향상시키는 것을 돕기 위해, 전체 제1 노드에 대해 하나의 메타 정보가 구성될 수 있다.
또한, 가능한 구현에서, 사용자는 제2 노드에서 데이터 흐름 식별자를 구성할 수 있다. 데이터 흐름 식별자에 대응하는 데이터 흐름은 제1 노드에 의해 모니터링될 필요가 있는 데이터 흐름이다. 예를 들어, 제1 노드는 데이터 흐름 식별자에 대응하는 데이터 흐름에서의 각각의 데이터 패킷의 메타 정보를 획득할 수 있다.
또한, 가능한 구현에서, 사용자는 제2 노드에서 피드백 트리거 조건을 구성할 수 있다. 다음은 2가지 사례에 기초하여 가능한 피드백 트리거 조건들의 예들을 제공한다.
사례 1: 데이터 흐름-기반 피드백 트리거 조건. 다음의 3개의 피드백 트리거 조건이 구체적으로 포함될 수 있다.
피드백 트리거 조건 1: 데이터 패킷의 포워딩 레이턴시가 단일 패킷의 최대 허용가능 레이턴시보다 크다. 단일 패킷의 최대 허용가능 레이턴시는 3㎲일 수 있다.
피드백 트리거 조건 2: 수신된 데이터 패킷들의 수량이 미리 설정된 수량보다 크다.
피드백 트리거 조건 3: 매번 하나의 데이터 패킷이 수신된다(피드백 트리거 조건 3은 시스템에 의해 디폴트로 설정될 수 있다).
사례 2: 큐-기반 피드백 트리거 조건.
피드백 트리거 조건 4: 큐 깊이가 미리 설정된 큐 깊이보다 크다.
피드백 트리거 조건 5: 큐에 대한 출구 대역폭의 이용률이 미리 설정된 대역폭 이용률보다 크다.
본 출원에서, 피드백 트리거 조건은 대안적으로 피드백 트리거 조건 1과 피드백 트리거 조건 2의 조합일 수 있거나, 피드백 트리거 조건 4와 피드백 트리거 조건 5의 조합일 수 있거나, 피드백 트리거 조건 1과 피드백 트리거 조건 4의 조합일 수 있거나, 피드백 트리거 조건 1과 피드백 트리거 조건 5의 조합일 수 있거나, 피드백 트리거 조건 2와 피드백 트리거 조건 4의 조합일 수 있거나, 피드백 트리거 조건 2와 피드백 트리거 조건 5의 조합일 수 있거나, 피드백 트리거 조건 1, 피드백 트리거 조건 2, 및 피드백 트리거 조건 4의 조합일 수 있거나, 피드백 트리거 조건 1, 피드백 트리거 조건 2, 및 피드백 트리거 조건 5의 조합일 수 있거나, 피드백 트리거 조건 2, 피드백 트리거 조건 4, 및 피드백 트리거 조건 5의 조합일 수 있거나, 또는 피드백 트리거 조건 1, 피드백 트리거 조건 2, 피드백 트리거 조건 4, 및 피드백 트리거 조건 5의 조합일 수 있다는 점에 유의해야 한다.
단계 201에서, 제2 노드는 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 제1 노드에 함께 전송할 수 있다는 것을 이해해야 한다. 대안적으로, 제2 노드는 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 제1 노드에 개별적으로 전송할 수 있다. 대안적으로, 제2 노드는 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자 중 임의의 2개를 제1 노드에 함께 전송하고 다른 하나를 제1 노드에 개별적으로 전송할 수 있다.
단계 202: 제1 노드는 송신될 데이터 패킷의 패킷 헤더를 획득한다.
여기서, 제1 노드에서의 송신될 데이터 패킷은 제3 노드 및/또는 제2 노드로부터의 것일 수 있다.
시나리오 1을 참조하면, 제1 노드가 LSW이면, 제3 노드는 센서 1 내지 센서 6 중 임의의 하나 이상 및/또는 마이크로컨트롤러 유닛일 수 있고, 제2 노드는 칩일 수 있다. 시나리오 1에 기초하여, 제1 노드에서의 송신될 데이터 패킷은 센서 1 내지 센서 6 중 임의의 하나 이상, 마이크로컨트롤러 유닛, 및/또는 칩으로부터의 것일 수 있다.
시나리오 2를 참조하면, 제1 노드가 MDC-A 시스템에서의 LSW이면, 제3 노드는 MDC-A 시스템에서의 센서 1 내지 센서 6 중 임의의 하나 이상, MDC-A 시스템에서의 마이크로컨트롤러 유닛, MDC-B 시스템에서의 센서 1 내지 센서 6 중 임의의 하나 이상, MDC-B 시스템에서의 마이크로컨트롤러 유닛, 및/또는 MDC-B 시스템에서의 칩일 수 있고, 제2 노드는 MDC-A 시스템에서의 칩일 수 있다. 시나리오 2에 기초하여, 제1 노드에서의 송신될 데이터 패킷은 MDC-A 시스템에서의 센서 1 내지 센서 6 중 임의의 하나 이상, MDC-A 시스템에서의 마이크로컨트롤러 유닛, MDC-A 시스템에서의 칩, MDC-B 시스템에서의 센서 1 내지 센서 6 중 임의의 하나 이상, MDC-B 시스템에서의 마이크로컨트롤러 유닛, 및/또는 MDC-B 시스템에서의 칩으로부터의 것일 수 있다. 제1 노드는 대안적으로 MDC-B 시스템에서의 LSW일 수 있다는 것을 이해해야 한다. 대응하는 제3 노드 및 대응하는 제2 노드에 대해서는, 제1 노드가 MDC-A 시스템에서의 LSW라는 전술한 설명들을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
시나리오 3을 참조하면, 제1 노드가 MDC-B 시스템에서의 LSW일 수 있다면, 제3 노드는 MDC-B 시스템에서의 센서 1 내지 센서 6 중 임의의 하나 이상, MDC-B 시스템에서의 마이크로컨트롤러 유닛, MDC-A 시스템에서의 센서 1 내지 센서 6 중 임의의 하나 이상, MDC-A 시스템에서의 마이크로컨트롤러 유닛, MDC-A 시스템에서의 칩, MDC-C 시스템에서의 센서 1 내지 센서 6 중 임의의 하나 이상, MDC-C 시스템에서의 마이크로컨트롤러 유닛, 및/또는 MDC-C 시스템에서의 칩일 수 있고, 제2 노드는 MDC-B 시스템에서의 칩이다. 시나리오 3에 기초하여, 제1 노드에서의 송신될 데이터 패킷은 MDC-B 시스템에서의 센서 1 내지 센서 6 중 임의의 하나 이상, MDC-B 시스템에서의 마이크로컨트롤러 유닛, MDC-B 시스템에서의 칩, MDC-A 시스템에서의 센서 1 내지 센서 6 중 임의의 하나 이상, MDC-A 시스템에서의 마이크로컨트롤러 유닛, MDC-A 시스템에서의 칩, MDC-C 시스템에서의 센서 1 내지 센서 6 중 임의의 하나 이상, MDC-C 시스템에서의 마이크로컨트롤러 유닛, 및/또는 MDC-C 시스템에서의 칩으로부터의 것일 수 있다. 제1 노드는 대안적으로 MDC-A 시스템에서의 LSW 또는 MDC-C 시스템에서의 LSW일 수 있다는 것을 이해해야 한다. 대응하는 제2 노드 및 대응하는 제3 노드에 대해서는, 제1 노드가 MDC-B 시스템에서의 LSW라는 전술한 설명들을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
가능한 구현에서, 제1 노드는 데이터 패킷의 패킷 헤더를 수집하는 미리 설정된 주기(또는 빈도)에 기초하여 송신될 데이터 패킷의 패킷 헤더를 획득할 수 있다. 데이터 패킷의 패킷 헤더를 수집하는 주기(또는 빈도)는 사용자에 의해 지정된 주기 또는 시스템의 디폴트 주기일 수 있다. 보통, 시스템의 디폴트 주기는 각각의 데이터 패킷에 대해 획득된다. 또한, 선택적으로, 수집된 데이터 패킷의 패킷 헤더의 길이는 사용자에 의해 지정된 길이 또는 시스템의 디폴트 길이일 수 있다. 보통, 시스템의 디폴트 길이는 64 바이트이다. 데이터 패킷의 패킷 헤더는 소스 IP 어드레스, 목적지 IP 어드레스, 소스 포트, 목적지 포트, 및 프로토콜 타입을 포함한다.
단계 203: 제1 노드는, 데이터 흐름 식별자 및 획득된 패킷 헤더에 기초하여, 송신될 데이터 패킷으로부터 동일한 출구 포트에 대응하는 제1 데이터 패킷을 결정할 수 있다.
여기서, 예를 들어, 데이터 흐름 식별자는 5-튜플이다. 5-튜플은 보통 소스 IP 어드레스, 목적지 IP 어드레스, 소스 포트, 목적지 포트, 및 전송 계층 프로토콜을 포함한다. 패킷 헤더는 또한 소스 IP 어드레스, 목적지 IP 어드레스, 소스 포트, 및 목적지 포트를 포함한다. 이어서, 획득된 패킷 헤더가 5-튜플과 매칭되어, 모니터링될 필요가 있는 데이터 패킷들(즉, 메타 정보가 획득될 필요가 있는 데이터 패킷들)을 결정할 수 있다. 또한, 모니터링되는 것으로 결정된 데이터 패킷들의 패킷 헤더 내의 목적지 IP 어드레스들에 기초하여, 목적지 IP 어드레스와 출구 포트 사이의 맵핑 관계의 테이블을 질의하여 모니터링될 필요가 있는 데이터 패킷들로부터 동일한 출구 포트에 대응하는 제1 데이터 패킷을 결정할 수 있다. 복수의 결정된 제1 데이터 패킷들이 있을 수 있다는 것을 이해해야 한다.
시나리오 1을 참조하면, 흐름 1 내지 흐름 5에 대응하는 데이터 패킷들은 모두 제1 노드의 동일한 출구 포트에 대응한다. 시나리오 2를 참조하면, 흐름 1 내지 흐름 6에 대응하는 데이터 패킷들은 모두 제1 노드의 동일한 출구 포트에 대응한다. 시나리오 3을 참조하면, 흐름 1 내지 흐름 4에 대응하는 데이터 패킷들은 모두 제1 노드의 동일한 출구 포트에 대응한다.
단계 204: 제1 노드는, 메타 정보에 기초하여, 제1 데이터 패킷에 대응하는 메타 정보 값을 획득할 수 있다.
복수의 제1 데이터 패킷들 각각에 대해, 제1 노드는, 메타 정보에 기초하여, 각각의 제1 데이터 패킷에 대응하는 메타 정보 값을 획득할 수 있다.
예를 들어, 메타 정보가 큐 깊이, 큐에 대한 출구 대역폭의 이용률, 제1 데이터 패킷이 속하는 데이터 흐름의 큐 점유 깊이, 노드 식별자, 입구 포트 식별자, 출구 포트 식별자, 큐 식별자, 데이터 패킷의 포워딩 레이턴시, 단일 패킷의 최대 허용가능 레이턴시, 데이터 패킷에 대응하는 데이터 흐름 식별자, 및 데이터 패킷에 대응하는 데이터 타입을 포함하는 경우, 각각의 제1 데이터 패킷에 대해, 제1 노드는 각각의 제1 데이터 패킷에 대응하는 메타 정보의 메타 정보 값을 획득할 필요가 있다. 다음은 제1 데이터 패킷에 대응하는 메타 정보 값을 획득하는 가능한 방식을 제공한다.
예를 들어, 제1 데이터 패킷의 포워딩 레이턴시에 대해, 제1 데이터 패킷의 마지막 비트가 제1 노드의 포트에 진입할 때, 제1 노드는 제1 순간을 기록하고, 제1 데이터 패킷의 첫 번째 비트가 제1 노드의 출구 포트에 나타날 때, 제1 노드는 제2 순간을 기록한다. 이 경우, 제1 데이터 패킷의 포워딩 레이턴시는 제2 순간과 제1 순간 사이의 차이와 동일하다. 다른 예로서, 제1 데이터 패킷에 대응하는 데이터 흐름 식별자에 대해, 제1 노드는, 제1 데이터 패킷의 패킷 헤더에 기초하여, 제1 데이터 패킷에 대응하는 데이터 흐름을 결정할 수 있다. 다른 예로서, 제1 데이터 패킷에 대응하는 큐 깊이에 대해, 제1 노드는 제1 데이터 패킷에 대응하는 데이터 흐름이 위치되는 큐의 큐 깊이를 결정할 수 있다. 다른 예로서, 제1 데이터 패킷에 대응하는 큐에 대한 출구 대역폭의 이용률에 대해, 제1 노드는 제1 데이터 패킷에 대응하는 데이터 흐름이 위치되는 큐를 결정하고, 큐에서의 출구 데이터 패킷에 의해 점유된 대역폭을 결정하고, 총 출구 대역폭에 대한 대역폭의 비율을 결정할 수 있다. 다른 예로서, 제1 데이터 패킷에 대응하는 데이터 흐름의 큐 점유 깊이에 대해, 제1 노드는 제1 데이터 패킷에 대응하는 데이터 흐름의 길이를 결정할 수 있다. 다른 예로서, 제1 데이터 패킷에 대응하는 데이터 타입에 대해, 제1 노드는, 프로토콜 계층 헤더 이후의 커스터마이즈된 필드에 기초하여, 제1 데이터 패킷에 대응하는 데이터 타입을 결정할 수 있다.
단계 205: 피드백 트리거 조건이 만족된다고 결정하면, 제1 노드는 제1 데이터 패킷에 대응하는 메타 정보 값 및 제1 데이터 패킷의 패킷 헤더를 제2 데이터 패킷으로 캡슐화하고, 제2 데이터 패킷을 제2 노드에 전송한다. 대응하여, 제2 노드는 제1 노드로부터 제2 데이터 패킷을 수신한다.
본 출원에서는, 사례 1 및 사례 2에서의 피드백 트리거 조건들에 기초하여, 피드백 트리거 조건이 만족되는지를 결정하는 다음의 3가지 구현이 제공될 수 있다.
구현 1: 제1 노드는, 제1 데이터 패킷에 대응하는 메타 정보 값에 기초하여, 피드백 트리거 조건이 만족되는지를 결정한다.
구현 1에서, 피드백 트리거 조건이 피드백 트리거 조건 1, 피드백 트리거 조건 4, 및 피드백 트리거 조건 5 중 임의의 하나 이상일 때, 제1 노드는, 제1 데이터 패킷에 대응하는 메타 정보 값에 기초하여, 피드백 트리거 조건이 만족되는지를 결정할 수 있다. 예를 들어, 피드백 트리거 조건은 피드백 트리거 조건 1이다. 제1 데이터 패킷에 대응하는 메타 정보 값에서의 포워딩 레이턴시가 단일 패킷의 최대 허용가능 레이턴시보다 크다고 결정하면, 제1 노드는 피드백 트리거 조건이 만족된다고 결정한다. 다른 예로서, 피드백 트리거 조건은 피드백 트리거 조건 4이다. 제1 데이터 패킷에 대응하는 메타 정보 값에서의 큐 깊이가 미리 설정된 큐 깊이보다 크다고 결정하면, 제1 노드는 피드백 트리거 조건이 만족된다고 결정한다. 다른 예로서, 피드백 트리거 조건은 피드백 트리거 조건 9이다. 제1 데이터 패킷에 대응하는 메타 정보 값에서의 큐에 대한 출구 대역폭의 이용률이 미리 설정된 대역폭 이용률보다 크다고 결정하면, 제1 노드는 피드백 트리거 조건이 만족된다고 결정한다.
구현 2: 제1 노드는 제1 데이터 패킷들에 관한 통계 정보에 기초하여, 피드백 트리거 조건이 만족되는지를 결정한다.
구현 2에서, 피드백 트리거 조건이 피드백 트리거 조건 2일 때, 제1 노드는 미리 설정된 지속기간 내에 수신되는 제1 데이터 패킷들의 수량에 관한 통계를 수집하고, 수량이 미리 설정된 수량보다 크면, 피드백 트리거 조건이 만족된다고 결정할 수 있다.
구현 3: 제1 데이터 패킷이 수신될 때마다, 제1 노드는 피드백 트리거 조건이 만족된다고 결정한다.
구현 3에서, 피드백 트리거 조건이 피드백 트리거 조건 3일 때, 하나의 제1 데이터 패킷이 수신될 때마다, 제1 노드는 피드백 트리거 조건이 만족된다고 결정한다. 피드백 트리거 조건은 시스템에 의해 디폴트로 설정될 수 있다는 점에 유의해야 한다.
본 출원에서, 피드백 트리거 조건이 만족된다고 결정한 후에, 제1 노드는 제1 데이터 패킷에 대응하는 메타 정보 값 및 제1 데이터 패킷의 패킷 헤더를 제2 데이터 패킷으로 캡슐화할 수 있다. 다음은 제2 데이터 패킷의 2가지 가능한 캡슐화 방식을 제공한다.
방식 1: 제1 노드는 하나의 제1 데이터 패킷에 대응하는 메타 정보 값 및 제1 데이터 패킷의 패킷 헤더를 하나의 제2 데이터 패킷으로 캡슐화한다.
가능한 구현에서, 제1 노드는 제1 데이터 패킷의 패킷 헤더 이전에 제1 데이터 패킷에 대응하는 메타 정보 값을 추가하고, 제1 데이터 패킷에 대응하는 메타 정보 값 이전에 새로운 패킷 헤더를 추가하여, 제2 데이터 패킷을 획득할 수 있으며, 새로운 패킷 헤더에서의 목적지 어드레스는 제2 노드의 어드레스이다. 예를 들어, 제2 데이터 패킷의 포맷은: OuterL3 + UDP/TCP/Others + metainfo Header + Inner L2 + Inner L3 + Inner L4일 수 있다. Inner L2 + Inner L3 + Inner L4는 제1 데이터 패킷의 획득된 패킷 헤더이고, UDP 및 TCP는 전송 계층 프로토콜들의 패킷 헤더들이고, Others는 다른 프로토콜 타입의 패킷 헤더이고, OuterL3은 새롭게 추가된 패킷 헤더인데, 즉, 제2 노드의 IP 어드레스는 OuterL3에 설정된다. 이러한 방식으로, 제1 노드는, 새로운 패킷 헤더를 사용하여, 제2 데이터 패킷이 제2 노드에 전송될 필요가 있다고 결정할 수 있고, 메타 정보 값에 기초하여, 레이트 감소 처리가 수행될 필요가 있는지를 결정할 수 있고, 추가로, 제1 데이터 패킷의 패킷 헤더에 기초하여, 제1 데이터 패킷에 대응하는 특정 데이터 흐름을 결정할 수 있는데, 즉, 레이트 감소 처리가 수행될 필요가 있는 데이터 흐름을 결정할 수 있다.
방식 2: 제1 노드는 복수의 제1 데이터 패킷들에 각각 대응하는 메타 정보 값들 및 패킷 헤더를 하나의 제2 데이터 패킷으로 캡슐화한다.
예를 들어, 복수의 제1 데이터 패킷들은 제1 데이터 패킷 A 및 제1 데이터 패킷 B이다. 제1 노드는 제1 데이터 패킷 A에 대응하는 메타 정보 값 A 및 패킷 헤더 A와 제1 데이터 패킷 B에 대응하는 메타 정보 값 B 및 패킷 헤더 B를 하나의 제2 데이터 패킷으로 캡슐화할 수 있다. 구체적으로, 제1 노드는 패킷 헤더 A 이전에 제1 데이터 패킷 A에 대응하는 메타 정보 값 A를 추가하고, 패킷 헤더 B 이전에 제1 데이터 패킷 B에 대응하는 메타 정보 값 B를 추가할 수 있다. 메타 정보 값 A, 패킷 헤더 A, 메타 정보 값 B, 및 패킷 헤더 B는 새로운 패킷 헤더를 공유할 수 있고, 새로운 패킷 헤더에서의 목적지 어드레스는 제2 노드의 어드레스이다. 예를 들어, 제2 데이터 패킷의 포맷은: OuterL3 + UDP/TCP/Others + (metainfo A Header + Inner L2 + Inner L3 + Inner L4) + (metainfo B Header + Inner L2 + Inner L3 + Inner L4)이다.
제2 데이터 패킷이 제2 노드에 적시에 전송될 수 있게 하기 위해, 제1 노드는 제2 데이터 패킷의 우선순위를 우선순위 임계값보다 크도록 수정할 수 있다. 예를 들어, 제1 노드는 제2 데이터 패킷의 우선순위를 7로 수정할 수 있다.
단계 203 이후에 그리고 단계 204 이전에, 제1 노드는 제1 데이터 패킷의 패킷 헤더를 제1 데이터 패킷에 대응하는 출구 포트에 추가로 복사(예를 들어, 미러링)할 수 있어, 제1 노드는 획득된 패킷 헤더에 기초하여 후속 단계들을 수행한다는 점에 유의해야 한다. 또한, 원래의 제1 데이터 패킷의 정상적인 포워딩은 영향을 받지 않을 수 있다.
단계 206: 제2 노드는 제1 노드로부터 M개의 제2 데이터 패킷을 수신하며, M은 1 이상의 정수이다.
여기서, 제2 데이터 패킷은 제1 데이터 패킷의 패킷 헤더 및 제1 데이터 패킷에 대응하는 메타 정보 값을 운반한다. 방식 1에 기초하여, M은 1보다 큰 정수이다. 구체적으로, 샘플링 주기에서, 제2 노드는 제1 노드로부터 복수의 제2 데이터 패킷들을 수신할 수 있고, 각각의 제2 데이터 패킷은 하나의 제1 데이터 패킷의 패킷 헤더 및 제1 데이터 패킷에 대응하는 메타 정보 값을 운반한다. 방식 2에 기초하여, M은 1과 동일한 정수일 수 있다. 구체적으로, 샘플링 주기에서, 제2 노드는 제1 노드로부터 하나의 제2 데이터 패킷을 수신할 수 있고, 제2 데이터 패킷은 복수의 제1 데이터 패킷들에 각각 대응하는 패킷 헤더들 및 메타 정보 값들을 운반할 수 있다. 구현 2에 기초하여, M은 또한 1보다 큰 정수일 수 있다는 것을 이해해야 한다.
단계 207: 제2 노드는 M개의 제2 데이터 패킷 및 레이트 감소 조건에 기초하여 목표 데이터 흐름을 결정할 수 있고, 목표 데이터 흐름은 M개의 제2 데이터 패킷에 대응하는 데이터 흐름들 중 적어도 하나이다.
가능한 구현에서, 레이트 감소 조건은 제1 조건, 제2 조건, 및 제3 조건 중 어느 하나를 포함할 수 있다. 예 1: 제1 조건은 데이터 흐름에 기초한다. 구체적으로, 샘플링 주기에서, 동일한 데이터 흐름에 속하는 k개의 제1 데이터 패킷에 각각 대응하는 메타 정보 값들에서의 포워딩 레이턴시들의 평균 값이 제1 미리 설정된 값보다 크며, k는 M 이하의 정수이다. 예 2: 제2 조건은 큐에 기초한다. 구체적으로, 샘플링 주기에서, 동일한 데이터 흐름에 속하는 k개의 제1 데이터 패킷에 각각 대응하는 메타 정보 값들에서의 데이터 흐름들의 큐 점유 깊이의 평균 값이 제2 미리 설정된 값보다 크다. 예 3: 제3 조건은 큐에 기초한다. 구체적으로, 샘플링 주기에서, 동일한 데이터 흐름에 속하는 k개의 제1 데이터 패킷에 각각 대응하는 메타 정보 값들에서의 큐 깊이들의 평균 값이 제3 미리 설정된 값보다 크다.
가능한 구현에서, 제2 노드에 의해 수신되는 M개의 제2 데이터 패킷은 하나의 데이터 흐름에 대응할 수 있거나, 또는 복수의 데이터 흐름들에 대응할 수 있고, 각각의 데이터 흐름은 k개의 제2 데이터 패킷을 포함할 수 있다. M개의 제2 데이터 패킷이 하나의 데이터 흐름에 대응할 때, k는 M 이하의 정수이다. M개의 제2 데이터 패킷이 복수의 데이터 흐름들에 대응할 때, k는 M 미만의 정수이다.
가능한 구현에서, 제1 노드는, 제2 데이터 패킷에서 운반되는 제1 데이터 패킷의 패킷 헤더에 기초하여, M개의 제2 데이터 패킷에서의 어느 제2 데이터 패킷들이 동일한 데이터 흐름에 대응하는지를 결정할 수 있다. M개의 제2 데이터 패킷과 데이터 흐름 사이의 결정된 대응에 기초하여, 목표 데이터 흐름을 결정하는 구현 프로세스가 다음의 2가지 사례에서 상세히 설명될 수 있다.
사례 1: M개의 제2 데이터 패킷은 하나의 데이터 흐름에 대응한다
레이트 감소 조건이 제1 조건인 시나리오에 기초하여, 제2 노드가 제1 데이터 패킷들에 대응하고 M개의 제2 데이터 패킷에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 포워딩 레이턴시들의 평균 값(average_flow_latency)이 제1 미리 설정된 값보다 크다고 결정하면, 제2 노드는 M개의 제2 데이터 패킷에 대응하는 데이터 흐름을 목표 데이터 흐름으로서 결정한다. 예를 들어, 포워딩 레이턴시들의 평균 값 = (포워딩 레이턴시 1 + 포워딩 레이턴시 2 + ..., + 포워딩 레이턴시 k)/k.
레이트 감소 조건이 제2 조건인 시나리오에 기초하여, 제2 노드가 제1 데이터 패킷들에 대응하고 M개의 제2 데이터 패킷에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 데이터 흐름들의 큐 점유 깊이들의 평균 값(average_flow_depth)이 제2 미리 설정된 값보다 크다고 결정하면, 제2 노드는 M개의 제2 데이터 패킷에 대응하는 데이터 흐름을 목표 데이터 흐름으로서 결정한다. 예를 들어, 데이터 흐름들의 큐 점유 깊이들의 평균 값 = (데이터 흐름의 큐 점유 깊이 1 + 데이터 흐름의 큐 점유 깊이 2 + ..., + 데이터 흐름의 큐 점유 깊이 k)/k.
레이트 감소 조건이 제3 조건인 시나리오에 기초하여, 제2 노드가 제1 데이터 패킷들에 대응하고 M개의 제2 데이터 패킷에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 큐 깊이들의 평균 값(average_queue_depth)이 제3 미리 설정된 값보다 크다고 결정하면, 제2 노드는 M개의 제2 데이터 패킷에 대응하는 데이터 흐름을 목표 데이터 흐름으로서 결정한다. 예를 들어, 큐 깊이들의 평균 값 = (큐 깊이 1 + 큐 깊이 2 + ..., + 큐 깊이 k)/k.
사례 2: M개의 제2 데이터 패킷은 복수의 데이터 흐름들에 대응한다.
레이트 감소 조건이 제1 조건인 시나리오에 기초하여, 제2 노드는 제1 데이터 패킷들에 대응하고 각각의 데이터 흐름에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 포워딩 레이턴시들의 평균 값을 결정하고, 포워딩 레이턴시들의 평균 값이 제1 미리 설정된 값보다 크고 우선순위가 가장 낮은 데이터 흐름을 목표 데이터 흐름으로서 결정한다.
가능한 구현에서, 큐 식별자와 큐의 우선순위 사이에 맵핑 관계가 있다. 구체적으로, 큐 식별자와 큐에서의 데이터 흐름의 우선순위 사이에 맵핑 관계가 있다. 따라서, 제2 노드는, 제1 데이터 패킷에 대응하고 k개의 제2 데이터 패킷에서 운반되는 메타 정보 값들에서의 큐 식별자들에 기초하여, k개의 제2 데이터 패킷에 대응하는 데이터 흐름의 우선순위를 결정할 수 있다. 예를 들어, 메타 정보 값에서의 큐 식별자가 1인 경우, 그것은 데이터 흐름의 우선순위가 1인 것을 지시할 수 있다. 메타 정보 값에서의 큐 식별자가 2인 경우, 그것은 데이터 흐름의 우선순위가 2인 것을 지시할 수 있다.
레이트 감소 조건이 제2 조건인 시나리오에 기초하여, 제2 노드는 제1 데이터 패킷들에 대응하고 각각의 데이터 흐름에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 데이터 흐름들의 큐 점유 깊이들의 평균 값을 결정하고, 데이터 흐름들의 큐 점유 깊이들의 평균 값이 제2 미리 설정된 값보다 크고 우선순위가 가장 낮은 데이터 흐름을 목표 데이터 흐름으로서 결정한다. 데이터 흐름의 우선순위를 결정하기 위해, 전술한 설명들을 참조한다는 점에 유의해야 한다. 상세사항들은 여기서 다시 설명되지 않는다.
레이트 감소 조건이 제3 조건인 시나리오에 기초하여, 제2 노드는 제1 데이터 패킷들에 대응하고 각각의 데이터 흐름에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 큐 깊이들의 평균 값을 결정하고, 큐 깊이들의 평균 값이 제3 미리 설정된 값보다 크고 우선순위가 가장 낮은 데이터 흐름을 목표 데이터 흐름으로서 결정한다. 데이터 흐름의 우선순위를 결정하기 위해, 전술한 설명들을 참조한다는 점에 유의해야 한다. 상세사항들은 여기서 다시 설명되지 않는다.
예를 들어, 복수의 데이터 흐름들이 데이터 흐름 a 및 데이터 흐름 b이고, 데이터 흐름 a의 우선순위가 1이며, 데이터 흐름 b의 우선순위가 2인 예를 사용하여 설명들이 제공된다. 데이터 흐름 a에 대응하는 제1 데이터 패킷들의 포워딩 레이턴시들의 평균 값이 제1 미리 설정된 값보다 크고, 데이터 흐름 b에 대응하는 제1 데이터 패킷들의 포워딩 레이턴시들의 평균 값이 제1 미리 설정된 값보다 크지 않고, 데이터 흐름 b의 우선순위가 데이터 흐름 a의 우선순위보다 높은 경우, 데이터 흐름 a가 목표 데이터 흐름이라고 결정될 수 있다. 데이터 흐름 a의 포워딩 레이턴시들의 평균 값이 제1 미리 설정된 값보다 크지 않고, 데이터 흐름 b의 포워딩 레이턴시들의 평균 값이 제1 미리 설정된 값보다 크지 않은 경우, 레이트 감소 처리가 수행되지 않을 수 있다.
또한, 선택적으로, 동일한 우선순위를 갖는 데이터 흐름들에 대해, 타깃 데이터 흐름은 데이터 패킷에 대응하는 데이터 타입에 기초하여 결정될 수 있다. 제어 평면 데이터, 관리 평면 데이터, 및 데이터 평면 데이터에 대응하는 데이터 흐름들이 목표 데이터 흐름들로서 결정되는 시퀀스는: 데이터 평면 상의 데이터 흐름 > 관리 평면 상의 데이터 흐름 > 제어 평면 상의 데이터 평면, 즉, 데이터 평면 > 관리 평면 > 제어 평면이다.
사례 2의 구현에서, 낮은 우선순위를 갖는 데이터 흐름에 대해 수행될 레이트 감소가 통지되어, 혼잡을 미리 방지하는 것을 돕는다. 또한, 동일한 우선순위를 갖는 데이터 흐름들에 대해, 데이터 평면 상의 데이터 흐름의 송신 레이트가 우선적으로 감소되므로, 제어 평면 상의 중요한 데이터가 적시에 포워딩될 수 있다고 결정될 수 있어, ADAS의 핵심 제어 평면 정보가 적시에 처리되는 것을 보장하는 것을 돕는다.
단계 208: 제2 노드는 레이트 감소 방식으로 목표 데이터 흐름의 송신 레이트를 감소시키거나, 또는 지시 정보를 제3 노드에 전송할 수 있으며, 지시 정보는 레이트 감소 방식으로 목표 데이터 흐름의 송신 레이트를 감소시키도록 제3 노드에 지시하기 위해 사용된다.
여기서, 레이트 감소 방식은 제2 노드에 의해 미리 정의될 수 있다. 제2 노드가 하나의 데이터 흐름만을 수신하고 데이터 흐름이 레이트 감소 조건을 만족한다고 결정하면, 제2 노드는 레이트 감소 조건에 기초하여 미리 설정된 레이트 감소 방식으로 데이터 흐름에 대한 레이트 감소 처리를 수행할 수 있다. 제2 노드가 복수의 데이터 흐름들을 수신하면, 레이트 감소 처리는 레이트 감소 조건을 만족하는 데이터 흐름에 대해 수행될 수 있다. 또한, 레이트 감소 조건을 만족하는 2개 이상의 데이터 흐름이 있다면, 가장 낮은 우선순위를 갖는 데이터 흐름에 대해 레이트 감소가 수행될 수 있다. 우선순위들이 동일하면, 데이터 평면 데이터 > 관리 평면 데이터 > 제어 평면 데이터인 원리에 따라 레이트 감소를 수행하도록 데이터 흐름의 소스 단에 통지할 수 있다.
예를 들어, 제1 조건에 기초하여 목표 데이터 흐름이 결정되면, 레이트 감소 방식은 목표 데이터 흐름의 송신 레이트를 제1 백분율(X%)만큼 감소시키는 것이다. 제2 조건에 기초하여 목표 데이터 흐름이 결정되면, 레이트 감소 방식은 목표 데이터 흐름의 송신 레이트를 제2 백분율(Y%)만큼 감소시키는 것이다. 제3 조건에 기초하여 목표 데이터 흐름이 결정되면, 레이트 감소 방식은 목표 데이터 흐름의 송신 레이트를 제3 백분율(Z%)만큼 감소시키는 것이다. 제1 백분율, 제2 백분율, 및 제3 백분율은 동일하거나 상이할 수 있다는 점에 유의해야 한다. 이는 본 출원에서 제한되지 않는다.
가능한 구현에서, 지시 정보는 하나 이상의 비트 정보를 사용하여 레이트 감소 방식을 지시할 수 있다. 예를 들어, 비트 정보가 "00"이면, 대응하는 레이트 감소 방식은 목표 데이터 흐름의 송신 레이트를 제1 백분율만큼 감소시키는 것이다. 비트 정보가 "01"이면, 대응하는 레이트 감소 방식은 목표 데이터 흐름의 송신 레이트를 제2 백분율만큼 감소시키는 것이다. 비트 정보가 "10"이면, 대응하는 레이트 감소 방식은 목표 데이터 흐름의 송신 레이트를 제3 백분율만큼 감소시키는 것이다. 다른 가능한 구현에서, 지시 정보는 식별자 정보를 사용하여 레이트 감소 방식을 지시한다. 예를 들어, 지시 정보에서의 식별자 정보가 1이면, 대응하는 레이트 감소 방식은 목표 데이터 흐름의 송신 레이트를 제1 백분율만큼 감소시키는 것이다. 지시 정보에서의 식별자 정보가 2이면, 대응하는 레이트 감소 방식은 목표 데이터 흐름의 송신 레이트를 제2 백분율만큼 감소시키는 것이다. 지시 정보에서의 식별자 정보가 3이면, 대응하는 레이트 감소 방식은 목표 데이터 흐름의 송신 레이트를 제3 백분율만큼 감소시키는 것이다.
비트 정보 또는 식별자 정보는 단지 예라는 점에 유의해야 한다. 지시 정보는 대안적으로 다른 형태의 비트 정보 또는 식별자 정보를 사용하여 레이트 감소 방식을 지시할 수 있다. 이는 본 출원에서 제한되지 않는다.
시나리오 2에서, MDC-A 시스템 및 MDC-B 시스템은 도 2에 도시된 방법을 독립적으로 수행할 수 있다는 점에 더 유의해야 한다. 구체적으로, MDC-A 시스템에서의 제1 노드 및 제2 노드는 동일한 출구 포트에 대응하는 흐름 1 내지 흐름 6에 대응하는 데이터 패킷들에 대해 도 2에 도시된 해결책을 수행할 수 있다. MDC-B 시스템에서의 제1 노드 및 제2 노드는 흐름 6에 대응하는 데이터 패킷에 대해 도 2에 도시된 해결책을 수행할 수 있다. 시나리오 3에서, MDC-A 시스템, MDC-B 시스템, 및 MDC-C 시스템은 도 2에 도시된 방법을 독립적으로 수행할 수 있다. 구체적으로, MDC-A 시스템에서의 제1 노드 및 제2 노드는 흐름 3에 대응하는 데이터 패킷에 대해 도 2에 도시된 해결책을 수행할 수 있다. MDC-B 시스템에서의 제1 노드 및 제2 노드는 동일한 출구 포트에 대응하는 흐름 1 내지 흐름 4에 대응하는 데이터 패킷들에 대해 도 2에 도시된 해결책을 수행할 수 있다. MDC-C 시스템에서의 제1 노드 및 제2 노드는 흐름 1 및 흐름 4에 대응하는 데이터 패킷들에 대해 도 2에 도시된 해결책을 수행할 수 있다. 각각의 MDC 시스템은 도 2에 도시된 방법을 독립적으로 수행하여, 멀티-시스템 상호접속 시나리오에서 혼잡의 가능성을 더 감소시키는 것을 돕는다.
단계 201 내지 단계 208로부터, 제1 노드는, 요건에 기초하여, 동일한 출구 포트에 대응하는 제1 데이터 패킷에 대응하는 패킷 헤더 및 메타 정보 값들을 제2 데이터 패킷으로 캡슐화하고, 제2 데이터 패킷을 제2 노드에 피드백할 수 있다는 것을 알 수 있다. 제2 노드는, 제2 데이터 패킷에 기초하여, 레이트 감소 처리가 수행될 필요가 있는 데이터 흐름이 있는지를 결정하고, 레이트 감소 처리가 수행될 필요가 있는 데이터 흐름이 있으면, 제2 노드는 소스 단(예를 들어, 제1 노드 또는 제3 노드)에 레이트 감소 처리가 수행될 필요가 있는 데이터 흐름에 대한 레이트 감소 처리를 수행하도록 통지한다. 이러한 방식으로, 혼잡이 미리 방지되어, 데이터 패킷의 포워딩 레이턴시를 감소시키는 것을 돕고, 추가로 출구 포트의 패킷 손실률을 감소시키는 것을 도울 수 있다. 특히, 복수의 입구 포트들이 단일 출구 포트에 대응하는 트래픽 버스트 시나리오에서, 높은 우선순위 데이터 패킷들이 적시에 포워딩되는 것이 보장될 수 있다.
도 4는 본 출원에 따른 LSW의 구조의 개략도이다. LSW는 입구 파이프라인(ingress pipeline), 헤더 파싱 모듈, 메모리, 트래픽 관리자(traffic monitor, TM), 출구 파이프라인(egress pipeline), 및 패킷 조립 모듈을 포함한다. 입구 파이프라인은 데이터 패킷을 수신하고, 수신된 데이터 패킷을 LSW의 버퍼에 배치하도록 구성된다. 헤더 파싱 모듈은, 데이터 패킷의 패킷 헤더를 파싱하여 데이터 패킷의 일부 정보(예컨대 소스 MAC 어드레스, 목적지 MAC 어드레스, 패킷 타입, 소스 IP 어드레스, 및 목적지 IP 어드레스)를 획득하도록 구성된다. 획득된 정보에 기초하여, 수신된 데이터 패킷들은 상이한 데이터 흐름들로 분할될 수 있고, 상이한 데이터 흐름들에 대해 상이한 처리가 수행될 수 있다. TM은 입구 포트 및 출구 포트 상의 트래픽(즉, 데이터 흐름들)을 관리하는 것을 담당한다. 예를 들어, TM은 착신 데이터 패킷들의 트래픽을 측정하고, 그 후 미리 설정된 정보에 기초하여, 트래픽 제한을 초과하는 데이터 패킷을 처리하는 것을 담당할 수 있다. 메모리는 포워딩 테이블을 저장하도록 구성될 수 있으며, 포워딩 테이블은 목적지 어드레스와 출구 포트 사이의 맵핑 관계의 테이블, 메타 정보 등을 포함한다. 출구 파이프라인은, 포워딩될 데이터 패킷을 패킷 조립을 위한 패킷 조립 모듈에 송신하고, 그 후 데이터 패킷을 목적지에 포워딩하도록 구성된다. 구체적으로, LSW에 의해 수신 또는 전송되는 데이터 흐름들은 주로 입구 파이프라인, 출구 파이프라인, TM, 및 메모리에 의해 협력을 통해 완료된다.
설명을 용이하게 하기 위해, 본 출원에서, 제1 노드가 LSW이고, 제2 노드가 AI 칩이고, 제3 노드가 센서 1 및 센서 2인 예가 아래에 사용된다. 다시 말해서, 본 출원의 이하의 설명들에서, LSW는 제1 노드로 대체될 수 있고, AI 칩은 제2 노드로 대체될 수 있고, 센서 1과 센서 2 양자 모두는 제3 노드로 대체될 수 있다.
이하에서는 시나리오 1 및 도 4에 도시된 LSW를 참조하여 데이터 송신 제어 방법을 상세히 더 설명하여, 데이터 송신 방법의 구현 프로세스를 더 이해한다. 도 5a 및 도 5b는 본 출원에 따른 다른 데이터 송신 제어 방법의 개략적인 흐름도이다. 본 실시예에서는, 제2 노드가 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 제1 노드에 전송하는 경우를 예로서 사용하여 설명들이 제공된다. 그 방법은 다음의 단계들을 포함한다.
단계 500: AI 칩은 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 구성한다.
단계 500은 선택적이다.
여기서, 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자의 상세한 설명들에 대해서는, 단계 201에서의 설명들을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다. 해결책의 설명을 용이하게 하기 위해, 데이터 흐름 식별자들이 1 및 2인 예가 아래에 사용된다. 데이터 흐름 식별자가 1인 데이터 흐름(데이터 흐름 1로 지칭될 수 있음)은 데이터 패킷 A를 포함하고, 데이터 흐름 식별자가 2인 데이터 흐름(데이터 흐름 2로 지칭될 수 있음)은 데이터 패킷 B를 포함한다.
단계 501: AI 칩은 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 LSW에 전송한다. 대응하여, LSW는 AI 칩으로부터 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 수신한다.
또한, 선택적으로, LSW는 수신된 피드백 트리거 조건, 수신된 메타 정보, 및 수신된 데이터 흐름 식별자를 LSW의 메모리에 저장할 수 있다.
여기서, AI 칩은 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 LSW에 함께 전송할 수 있다. 대안적으로, AI 칩은 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 LSW에 개별적으로 전송할 수 있다. 대안적으로, AI 칩은 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자 중 임의의 2개를 LSW에 함께 전송하고 다른 하나를 LSW에 개별적으로 전송할 수 있다.
단계 502: LSW는 센서 1로부터 데이터 패킷 A를, 그리고 센서 2로부터 데이터 패킷 B 및 데이터 패킷 C를 수신한다.
도 4를 참조하면, LSW는 입구 파이프라인(ingress pipeline)을 사용하여 센서 1로부터 데이터 패킷 A를, 그리고 센서 2로부터 데이터 패킷 B 및 데이터 패킷 C를 수신할 수 있다. 구체적으로, 데이터 패킷 A, 데이터 패킷 B, 및 데이터 패킷 C는 LSW의 송신될 데이터 패킷들이다.
단계 503: LSW는 데이터 패킷 A, 데이터 패킷 B, 및 데이터 패킷 C의 패킷 헤더들을 개별적으로 획득한다.
여기서, 데이터 패킷 A, 데이터 패킷 B, 및 데이터 패킷 C의 패킷 헤더 각각은, 소스 IP 어드레스, 목적지 IP 어드레스, 소스 포트, 목적지 포트, 및 프로토콜 타입을 포함한다.
단계 504: LSW는, 데이터 흐름 식별자 및 획득된 패킷 헤더들에 기초하여, 송신될 데이터 패킷으로부터 동일한 출구 포트에 대응하는 제1 데이터 패킷을 결정할 수 있다.
여기서, LSW는 수신된 데이터 패킷 A, 수신된 데이터 패킷 B, 및 수신된 데이터 패킷 C의 패킷 헤더를 데이터 흐름 1 및 데이터 흐름 2와 개별적으로 매칭시켜, 데이터 패킷 A가 데이터 흐름 1에 대응하고, 데이터 패킷 B가 데이터 흐름 2에 대응한다고 결정할 수 있다. 또한, LSW는 목적지 IP 어드레스와 출구 포트 사이의 맵핑 관계의 테이블을 질의하여 데이터 패킷 A 및 데이터 패킷 B가 LSW의 동일한 출구 포트에 대응한다고 결정할 수 있다. 구체적으로, 데이터 패킷 A와 데이터 패킷 B 양자 모두는 제1 데이터 패킷이다. 목적지 IP 어드레스와 출구 포트 사이의 맵핑 관계의 테이블은 LSW의 메모리에 저장될 수 있다는 점이 이해되어야 한다. 예를 들어, 데이터 패킷 A와 데이터 패킷 B가 동일한 출구 포트 H에 대응하는 예를 사용하여 이하에서 설명들이 제공된다.
단계 505: LSW는 데이터 패킷 A의 패킷 헤더와 데이터 패킷 B의 패킷 헤더 양자 모두를 출구 포트 H에 복사한다.
가능한 구현에서, 데이터 패킷 A의 패킷 헤더와 데이터 패킷 B의 패킷 헤더는 출구 포트 H에 미러링될 수 있다.
단계 506: LSW는 데이터 패킷 A 및 데이터 패킷 B에 대응하는 메타 정보 값들을 개별적으로 획득한다.
단계 506에 대해서는, 단계 204의 설명들을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
단계 507: LSW는 피드백 트리거 조건이 만족되는지를 결정하고, 피드백 트리거 조건이 만족되지 않으면 단계 508을 수행하거나; 또는 피드백 트리거 조건이 만족되면 단계 509를 수행한다.
여기서, LSW가 피드백 트리거 조건이 만족되는지를 결정하는 상세사항들에 대해서는, 단계 205에서의 구현 1, 구현 2, 및 구현 3의 설명들을 참조한다.
단계 508: 레이트 감소 처리의 수행을 스킵한다.
단계 509: LSW는 데이터 패킷 A에 대응하는 메타 정보 값 및 데이터 패킷 A의 패킷 헤더를 제2 데이터 패킷 A로 캡슐화하고, 데이터 패킷 B에 대응하는 메타 정보 값 및 데이터 패킷 B의 패킷 헤더를 제2 데이터 패킷 B로 캡슐화한다.
예를 들어, 데이터 패킷 A에 대응하는 메타 정보 값은 데이터 패킷 A의 패킷 헤더 이전에 추가되고, 데이터 패킷 A에 대응하는 메타 정보 값 이전에 새로운 패킷 헤더가 추가되어, 제2 데이터 패킷 A로 캡슐화된다. 데이터 패킷 B에 대응하는 메타 정보 값은 데이터 패킷 B의 패킷 헤더 이전에 추가되고, 데이터 패킷 B에 대응하는 메타 정보 값 이전에 새로운 패킷 헤더가 추가되어, 제2 데이터 패킷 B로 캡슐화된다. 여기서, LSW에 의해 추가되는 새로운 패킷 헤더에서의 목적지 IP 어드레스는 AI 칩의 IP 어드레스이다.
단계 510: LSW는 제2 데이터 패킷 A 및 제2 데이터 패킷 B의 우선순위들을 우선순위 임계값보다 크도록 수정한다.
여기서, LSW에서의 출구 파이프라인은 제2 데이터 패킷 A 및 제2 데이터 패킷 B를 특별한 입구 포트에 제출할 수 있다. 특별한 입구 포트는 출구 파이프라인(egress pipeline) 방향에서 제2 데이터 패킷의 우선순위의 임의의 수정을 지원하고, 출구 포트는 제2 데이터 패킷의 포워딩 절차를 완료하기 위해 다시 검색될 수 있다.
단계 511: LSW는 제2 데이터 패킷 A 및 제2 데이터 패킷 B를 AI 칩에 전송한다. 대응하여, AI 칩은 LSW로부터 제2 데이터 패킷 A 및 제2 데이터 패킷 B를 수신한다.
단계 511에서, LSW는 제2 데이터 패킷 A 및 제2 데이터 패킷 B의 수정된 우선순위들에 기초하여 제2 데이터 패킷 A 및 제2 데이터 패킷 B를 AI 칩에 전송할 수 있다.
단계 500 내지 단계 510에 기초하여, 샘플링 주기에서, AI 칩은 LSW로부터 M개의 제2 데이터 패킷을 수신할 수 있고, 그 후 AI 칩은 단계 512 및 단계 512를 수행할 수 있다.
단계 512: AI 칩은 제2 데이터 패킷 A에서 운반된 데이터 패킷 A, 제2 데이터 패킷 B에서 운반된 데이터 패킷 B, 데이터 패킷 A 및 데이터 패킷 B에 각각 대응하는 메타 정보 값들, 및 레이트 감소 조건에 기초하여 목표 데이터 흐름을 결정할 수 있다.
목표 데이터 흐름을 결정하는 방식에 대해서는, 단계 207에서의 설명들을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
단계 513: AI 칩은 레이트 감소 방식으로 제3 노드에 지시 정보를 전송할 수 있고, 지시 정보는 레이트 감소 방식으로 목표 데이터 흐름의 송신 레이트를 감소시키도록 센서 1 또는 센서 2에 지시하기 위해 사용된다.
예를 들어, 단계 512에서 결정된 목표 데이터 흐름이 데이터 패킷 A에 대응하는 데이터 흐름이면, AI 칩은 센서 1에 지시 정보를 전송한다. 단계 512에서 결정된 목표 데이터 흐름이 데이터 패킷 B에 대응하는 데이터 흐름이면, AI 칩은 센서 2에 지시 정보를 전송한다.
단계 500 내지 단계 513으로부터, 시스템에서 혼잡이 발생하기 전에, LSW는 요건에 기초하여 AI 칩에, 동일한 출구 포트에 대응하는 제1 데이터 패킷에 대응하는 패킷 헤더 및 메타 정보를 피드백할 수 있다는 것을 알 수 있다. AI 칩은, 제2 데이터 패킷에 기초하여, 레이트 감소 처리가 수행될 필요가 있는 데이터 흐름이 있는지를 결정하고, AI 칩이 레이트 감소 처리가 수행될 필요가 있는 데이터 흐름이 있다고 결정하면, AI 칩은 소스 단(센서 또는 LSW)에 결정된 데이터 흐름에 대한 레이트 감소 처리를 수행하도록 통지한다. 이러한 방식으로, 혼잡이 미리 방지되어, 데이터 패킷의 포워딩 레이턴시를 감소시키는 것을 돕고, 추가로 출구 포트의 패킷 손실률을 감소시키는 것을 도울 수 있다. 특히, 복수의 입구 포트들이 단일 출구 포트에 대응하는 트래픽 버스트 시나리오에서, 높은 우선순위 데이터 패킷들이 적시에 포워딩되는 것이 보장될 수 있다.
전술한 내용 및 동일한 개념에 기초하여, 본 출원은 전술한 방법에서 제1 노드 측 상의 임의의 해결책 또는 제2 노드 측 상의 임의의 해결책을 수행하도록 구성되는 장치(600)를 제공한다. 도 6은 본 출원에 따른 장치의 구조의 개략도의 예를 도시한다. 도 6에 도시된 바와 같이, 장치(600)는 프로세서(601) 및 통신 인터페이스(602)를 포함한다. 선택적으로, 장치(600)는 메모리(603)를 추가로 포함할 수 있다. 프로세서(601), 통신 인터페이스(602), 및 메모리(603)는 버스를 통해 서로 접속된다. 이 예에서 장치(600)는 도 2의 해결책을 실행할 수 있거나, 도 5a 및 도 5b의 해결책을 실행할 수 있다.
메모리(603)는 휘발성 메모리(volatile memory), 예를 들어, 랜덤 액세스 메모리(random access memory, RAM)를 포함할 수 있다. 대안적으로, 메모리는 비휘발성 메모리(non-volatile memory), 예를 들어, 플래시 메모리(flash memory), 하드 디스크 드라이브(hard disk drive, HDD), 또는 솔리드 스테이트 드라이브(solid-state drive, SSD)를 포함할 수 있다. 대안적으로, 메모리(603)는 전술한 타입들의 메모리들의 조합을 포함할 수 있다.
통신 인터페이스(602)는 유선 통신 인터페이스, 무선 통신 인터페이스, 또는 이들의 조합일 수 있다. 유선 통신 인터페이스는, 예를 들어, 이더넷 인터페이스일 수 있다. 이더넷 인터페이스는 광학 인터페이스, 전기 인터페이스, 또는 이들의 조합일 수 있다. 무선 통신 인터페이스는 WLAN 인터페이스일 수 있다.
프로세서(601)는 중앙 처리 유닛(central processing unit, CPU), 네트워크 프로세서(network processor, NP), 또는 CPU와 NP의 조합일 수 있다. 프로세서(601)는 하드웨어 칩을 추가로 포함할 수 있다. 하드웨어 칩은 주문형 집적 회로(application-specific integrated circuit, ASIC), 프로그램가능 로직 디바이스(programmable logic device, PLD), 또는 이들의 조합일 수 있다. PLD는 복합 프로그램가능 로직 디바이스(complex programmable logic device, CPLD), 필드 프로그램가능 게이트 어레이(field-programmable gate array, FPGA), 일반 어레이 로직(generic array logic, GAL), 또는 이들의 임의의 조합일 수 있다.
선택적으로, 메모리(603)는 프로그램 명령어들을 저장하도록 추가로 구성될 수 있고, 프로세서(601)는 메모리(603)에 저장된 프로그램 명령어들을 호출하여, 전술한 해결책 또는 선택적 구현에서 도시된 실시예들에서의 단계들 중 하나 이상을 수행할 수 있어, 장치(600)가 전술한 방법을 구현한다.
애플리케이션에서, 프로세서(601)는: 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 결정하고; 송신될 데이터 패킷의 패킷 헤더를 획득하고; 데이터 흐름 식별자 및 획득된 패킷 헤더에 기초하여, 송신될 데이터 패킷으로부터 동일한 출구 포트에 대응하는 제1 데이터 패킷들을 결정하고; 메타 정보에 기초하여, 제1 데이터 패킷에 대응하는 메타 정보 값을 획득하고; 피드백 트리거 조건이 만족된다고 결정하면, 제1 데이터 패킷에 대응하는 메타 정보 값 및 제1 데이터 패킷의 패킷 헤더를 제2 데이터 패킷으로 캡슐화하고, 통신 인터페이스(602)를 통해 제2 노드에 제2 데이터 패킷 - 제2 데이터 패킷은 제2 노드가 제1 데이터 패킷에 대응하는 데이터 흐름들에서의 적어도 하나의 데이터 흐름의 송신 레이트를 감소시킬 수 있게 하기 위해 사용됨 - 을 전송하거나, 또는 제3 노드에 지시 정보 - 지시 정보는 제1 데이터 패킷에 대응하는 데이터 흐름들에서의 적어도 하나의 데이터 흐름의 송신 레이트를 감소시키도록 제3 노드에 지시하기 위해 사용됨 - 를 전송하도록 구성된다.
가능한 구현에서, 프로세서(601)는: 제1 데이터 패킷의 패킷 헤더 이전에 제1 데이터 패킷에 대응하는 메타 정보 값을 추가하고; 제1 데이터 패킷에 대응하는 메타 정보 값 이전에 새로운 패킷 헤더를 추가하여, 제2 데이터 패킷을 획득하도록 구체적으로 구성되며, 새로운 패킷 헤더에서의 목적지 어드레스는 제2 노드의 어드레스이다.
가능한 구현에서, 프로세서(601)는 제2 데이터 패킷의 우선순위를 우선순위 임계값보다 크도록 수정하도록 추가로 구성된다.
가능한 구현에서, 메타 정보는 노드 식별자, 입구 포트 식별자, 출구 포트 식별자, 큐 식별자, 데이터 패킷의 포워딩 레이턴시, 단일 패킷의 최대 허용가능 레이턴시, 데이터 패킷에 대응하는 데이터 흐름 식별자, 및 데이터 패킷에 대응하는 데이터 타입 중 적어도 하나를 포함하고, 데이터 타입은 제어 평면 데이터, 관리 평면 데이터, 및 데이터 평면 데이터를 포함한다.
가능한 구현에서, 피드백 트리거 조건은: 제1 데이터 패킷의 포워딩 레이턴시가 단일 패킷의 최대 허용가능 레이턴시보다 큰 것; 수신된 제1 데이터 패킷들의 수량이 미리 설정된 수량보다 많은 것; 큐 깊이가 미리 설정된 큐 깊이보다 큰 것; 및 큐에 대한 출구 대역폭의 이용률이 미리 설정된 대역폭 이용률보다 큰 것 중 임의의 하나 이상을 포함하며, 큐 깊이는 큐를 위한 총 버퍼에 대한 큐에서의 모든 데이터 패킷에 의해 점유된 버퍼의 비율이다.
가능한 구현에서, 메타 정보는 큐 깊이 및/또는 큐에 대한 출구 대역폭의 이용률을 추가로 포함한다. 프로세서(601)는, 제1 데이터 패킷에 대응하는 메타 정보 값에 기초하여, 피드백 트리거 조건이 만족되는 것을 결정하도록 구체적으로 구성된다.
가능한 구현에서, 송신될 데이터 패킷은 제3 노드 및/또는 제2 노드로부터의 것이다.
가능한 구현에서, 통신 인터페이스(602)는 제2 노드에 의해 구성되는 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 수신하도록 추가로 구성된다.
다른 애플리케이션에서, 통신 인터페이스(602)는 제1 노드로부터 M개의 제2 데이터 패킷을 수신하도록 구성되고, M은 1 이상의 정수이고; 제1 노드가 피드백 트리거 조건이 만족된다고 결정하면 제2 데이터 패킷은 제1 노드에 의해 제2 노드에 전송되고, 제2 데이터 패킷은 제1 데이터 패킷의 패킷 헤더 및 제1 데이터 패킷에 대응하는 메타 정보 값을 운반하고, 제1 데이터 패킷은 데이터 흐름 식별자에 기초하여 송신될 데이터 패킷으로부터 제1 노드에 의해 결정된다. 프로세서(601)는: 제1 데이터 패킷들에 대응하고 M개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들 및 레이트 감소 조건에 기초하여 목표 데이터 흐름을 결정하고 - 목표 데이터 흐름은 M개의 제2 데이터 패킷에 대응하는 데이터 흐름들 중 적어도 하나임 - ; 레이트 감소 방식으로 목표 데이터 흐름의 송신 레이트를 감소시키거나, 또는 통신 인터페이스(602)를 통해 제3 노드에 지시 정보 - 지시 정보는 레이트 감소 방식으로 목표 데이터 흐름의 송신 레이트를 감소시키도록 제3 노드에 지시하기 위해 사용됨 - 를 전송하도록 구성된다.
가능한 구현에서, 통신 인터페이스(602)는 구성되는 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 제1 노드에 전송하도록 추가로 구성된다.
가능한 구현에서, 메타 정보는 제1 데이터 패킷에 대응하는 데이터 흐름의 큐 점유 깊이 및 큐 깊이를 추가로 포함한다. 레이트 감소 조건은 제1 조건, 제2 조건, 및 제3 조건 중 어느 하나를 포함한다. 제1 조건은, 샘플링 주기에서, 동일한 데이터 흐름에 속하는 k개의 제1 데이터 패킷에 각각 대응하는 메타 정보 값들에서의 포워딩 레이턴시들의 평균 값이 제1 미리 설정된 값보다 크다는 것이며, k는 M 이하의 정수이다. 제2 조건은, 샘플링 주기에서, 동일한 데이터 흐름에 속하는 k개의 제1 데이터 패킷에 각각 대응하는 메타 정보 값들에서의 데이터 흐름들의 큐 점유 깊이들의 평균 값이 제2 미리 설정된 값보다 크다는 것이다. 제3 조건은, 샘플링 주기에서, 동일한 데이터 흐름에 속하는 k개의 제1 데이터 패킷에 각각 대응하는 메타 정보 값들에서의 큐 깊이들의 평균 값이 제3 미리 설정된 값보다 크다는 것이다.
가능한 구현에서, M개의 제2 데이터 패킷은 하나의 데이터 흐름에 대응한다. 프로세서(601)는: 제1 데이터 패킷들에 대응하고 M개의 제2 데이터 패킷에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 포워딩 레이턴시들의 평균 값이 제1 미리 설정된 값보다 크다고 결정하면, M개의 제2 데이터 패킷에 대응하는 데이터 흐름을 목표 데이터 흐름으로서 결정하거나; 또는 제1 데이터 패킷들에 대응하고 M개의 제2 데이터 패킷에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 데이터 흐름들의 큐 점유 깊이들의 평균 값이 제2 미리 설정된 값보다 크다고 결정하면, M개의 제2 데이터 패킷에 대응하는 데이터 흐름을 목표 데이터 흐름으로서 결정하거나; 또는 제1 데이터 패킷들에 대응하고 M개의 제2 데이터 패킷에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 큐 깊이들의 평균 값이 제3 미리 설정된 값보다 크다고 결정하면, M개의 제2 데이터 패킷에 대응하는 데이터 흐름을 목표 데이터 흐름으로서 결정하도록 구체적으로 구성된다.
가능한 구현에서, k는 M 미만의 정수이고, M개의 제2 데이터 패킷은 복수의 데이터 흐름들에 대응하고, 각각의 데이터 흐름은 적어도 k개의 제2 데이터 패킷을 포함한다. 프로세서(601)는: 제1 데이터 패킷들에 대응하고 각각의 데이터 흐름에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 포워딩 레이턴시들의 평균 값을 결정하고, 포워딩 레이턴시들의 평균 값이 제1 미리 설정된 값보다 크고 우선순위가 가장 낮은 데이터 흐름을 목표 데이터 흐름으로서 결정하거나; 또는 제1 데이터 패킷들에 대응하고 각각의 데이터 흐름에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 데이터 흐름들의 큐 점유 깊이들의 평균 값을 결정하고, 데이터 흐름들의 큐 점유 깊이들의 평균 값이 제2 미리 설정된 값보다 크고 우선순위가 가장 낮은 데이터 흐름을 목표 데이터 흐름으로서 결정하거나; 또는 제1 데이터 패킷들에 대응하고 각각의 데이터 흐름에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 큐 깊이들의 평균 값을 결정하고, 큐 깊이들의 평균 값이 제3 미리 설정된 값보다 크고 우선순위가 가장 낮은 데이터 흐름을 목표 데이터 흐름으로서 결정하도록 구체적으로 구성된다.
가능한 구현에서, 레이트 감소 방식은 다음 중 어느 하나를 포함한다: 제1 조건에 기초하여 목표 데이터 흐름이 결정되면, 목표 데이터 흐름의 송신 레이트를 제1 백분율만큼 감소시키는 것; 제2 조건에 기초하여 목표 데이터 흐름이 결정되면, 목표 데이터 흐름의 송신 레이트를 제2 백분율만큼 감소시키는 것; 또는 제3 조건에 기초하여 목표 데이터 흐름이 결정되면, 목표 데이터 흐름의 송신 레이트를 제3 백분율만큼 감소시키는 것.
전술한 내용 및 동일한 개념에 기초하여, 본 출원은 도 2의 해결책 또는 도 5a 및 도 5b의 해결책을 수행하도록 구성되는 장치(700)를 제공한다. 도 7은 본 출원에 따른 장치의 구조의 개략도의 예를 도시한다. 도 7에 도시된 바와 같이, 장치(700)는 처리 유닛(701) 및 송수신기 유닛(702)을 포함한다. 선택적으로, 장치(700)는 저장 유닛(703)을 추가로 포함한다. 처리 유닛(701)은: 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 결정하고; 송신될 데이터 패킷의 패킷 헤더를 획득하고; 데이터 흐름 식별자 및 획득된 패킷 헤더에 기초하여, 송신될 데이터 패킷으로부터 동일한 출구 포트에 대응하는 제1 데이터 패킷들을 결정하고; 메타 정보에 기초하여, 제1 데이터 패킷에 대응하는 메타 정보 값을 획득하고; 피드백 트리거 조건이 만족된다고 결정하면, 제1 데이터 패킷에 대응하는 메타 정보 값 및 제1 데이터 패킷의 패킷 헤더를 제2 데이터 패킷으로 캡슐화하고, 송수신기 유닛(702)을 사용하여 제2 노드에 제2 데이터 패킷 - 제2 데이터 패킷은 제2 노드가 제1 데이터 패킷에 대응하는 데이터 흐름들에서의 적어도 하나의 데이터 흐름의 송신 레이트를 감소시킬 수 있게 하기 위해 사용됨 - 을 전송하거나, 또는 제3 노드에 지시 정보 - 지시 정보는 제1 데이터 패킷에 대응하는 데이터 흐름들에서의 적어도 하나의 데이터 흐름의 송신 레이트를 감소시키도록 제3 노드에 지시하기 위해 사용됨 - 를 전송하도록 구성된다.
본 출원의 이 실시예에서의 전술한 선택적 구현들의 관련 내용에 대해서는, 전술한 실시예들을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
전술한 장치의 유닛들로의 분할은 단지 논리적 기능 분할이고, 실제 구현 동안, 유닛들의 전부 또는 일부는 물리적 엔티티로 통합될 수 있거나, 유닛들은 물리적으로 분리될 수 있다는 것을 이해해야 한다. 본 출원의 이 실시예에서, 도 7의 처리 유닛(701)은 도 6의 프로세서(601)에 의해 구현될 수 있다. 도 7의 송수신기 유닛(702)은 도 6의 통신 인터페이스(602)에 의해 구현될 수 있다. 구체적으로, 본 출원의 이 실시예에서, 처리 유닛(701)은 도 6의 프로세서(601)에 의해 수행되는 해결책을 수행할 수 있고, 송수신기 유닛(702)은 도 6의 통신 인터페이스(602)에 의해 수행되는 해결책을 수행할 수 있다. 다른 내용에 대해서는, 전술한 내용을 참조한다. 상세사항들은 여기서 다시 설명되지 않는다.
전술한 실시예들은 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합을 사용하여 전부 또는 부분적으로 구현될 수 있다. 소프트웨어 프로그램이 구현을 위해 사용될 때, 실시예들은 컴퓨터 프로그램 제품의 형태로 전부 또는 부분적으로 구현될 수 있다. 컴퓨터 프로그램 제품은 하나 이상의 명령어를 포함한다. 컴퓨터 프로그램 명령어들이 컴퓨터 상에서 로딩되고 실행될 때, 본 출원의 실시예들에 따른 절차들 또는 기능들은 모두 또는 부분적으로 생성된다. 컴퓨터는 범용 컴퓨터, 전용 컴퓨터, 컴퓨터 네트워크, 또는 다른 프로그램가능 장치일 수 있다. 명령어들은 컴퓨터 저장 매체에 저장될 수 있거나 한 컴퓨터 저장 매체로부터 다른 컴퓨터 저장 매체로 송신될 수 있다. 예를 들어, 명령어들은 웹사이트, 컴퓨터, 서버, 또는 데이터 센터로부터 다른 웹사이트, 컴퓨터, 서버, 또는 데이터 센터에 유선(예를 들어, 동축 케이블, 광섬유, 또는 디지털 가입자 회선(DSL)) 또는 무선(예를 들어, 적외선, 라디오, 또는 마이크로파) 방식으로 전송될 수 있다. 컴퓨터 저장 매체는 컴퓨터에 액세스 가능한 임의의 사용가능 매체, 또는 하나 이상의 사용가능 매체를 통합하는, 서버 또는 데이터 센터와 같은 데이터 저장 디바이스일 수 있다. 사용가능 매체는 자기 매체(예를 들어, 플로피 디스크, 하드 디스크 드라이브, 자기 테이프, 자기-광학 디스크(MO)), 광학 매체(예를 들어, CD, DVD, BD, HVD), 반도체 매체(예를 들어, ROM, EPROM, EEPROM, 비휘발성 메모리(NAND FLASH), 솔리드 스테이트 드라이브(Solid-State Drive, SSD)) 등일 수 있다.
본 기술분야의 통상의 기술자는 본 출원의 실시예들이 방법, 시스템, 또는 컴퓨터 프로그램 제품으로서 제공될 수 있다는 점을 이해해야 한다. 따라서, 본 출원의 실시예들은 하드웨어 전용 실시예들, 소프트웨어 전용 실시예들, 또는 소프트웨어와 하드웨어의 조합을 갖는 실시예들의 형태를 사용할 수 있다. 또한, 본 출원의 실시예들은 컴퓨터 사용가능 프로그램 코드를 포함하는 하나 이상의 컴퓨터 사용가능 저장 매체(디스크 메모리, CD-ROM, 광학 메모리 등을 포함하지만 이에 제한되지는 않음) 상에 구현되는 컴퓨터 프로그램 제품의 형태를 사용할 수 있다.
본 출원의 실시예들은 본 출원의 실시예들에 따른 방법, 디바이스(시스템), 및 컴퓨터 프로그램 제품의 흐름도들 및/또는 블록도들을 참조하여 설명된다. 명령어들은 흐름도들 및/또는 블록도들 내의 각각의 프로세스 및/또는 각각의 블록 및 흐름도들 및/또는 블록도들 내의 프로세스 및/또는 블록의 조합을 구현하기 위해 사용될 수 있다는 점이 이해되어야 한다. 이러한 명령어들은 범용 컴퓨터, 전용 컴퓨터, 임베디드 프로세서, 또는 머신을 생성하기 위한 다른 프로그램가능 데이터 처리 디바이스의 프로세서에 대해 제공되어, 컴퓨터 또는 다른 프로그램가능 데이터 처리 디바이스의 프로세서에 의해 실행되는 명령어들은 흐름도들 내의 하나 이상의 프로세스 및/또는 블록도들 내의 하나 이상의 블록에서 특정한 기능을 구현하기 위한 장치를 생성한다.
이러한 컴퓨터 프로그램 명령어들은 컴퓨터 또는 다른 프로그램가능 데이터 처리 디바이스에게 특정 방식으로 작동하도록 명령할 수 있는 컴퓨터 판독가능 메모리에 저장될 수 있어, 컴퓨터 판독가능 메모리에 저장된 명령어들이 명령어 장치를 포함하는 가공품(artifact)을 생성하게 한다. 명령어 장치는 흐름도들 내의 하나 이상의 프로세스 및/또는 블록도들 내의 하나 이상의 블록에서 특정한 기능을 구현한다.
이러한 명령어들은 컴퓨터 또는 다른 프로그램가능 데이터 처리 디바이스 상에 로딩될 수 있어, 일련의 동작들 및 단계들이 컴퓨터 또는 다른 프로그램가능 디바이스 상에서 수행되게 하여, 컴퓨터-구현 처리(computer-implemented processing)를 생성한다. 따라서, 컴퓨터 또는 다른 프로그램가능 디바이스 상에서 실행되는 명령어들은 흐름도들 내의 하나 이상의 프로세스 및/또는 블록도들 내의 하나 이상의 블록에서 특정된 기능을 구현하기 위한 단계들을 제공한다.
본 기술분야의 통상의 기술자는 본 출원의 사상 및 범위를 벗어남이 없이 본 출원의 실시예들에 대한 다양한 수정들 및 변형들을 만들 수 있다는 것이 명확하다. 본 출원은 본 출원의 실시예들에 대한 이러한 수정들 및 변형들이 다음의 청구항들 및 이들과 등가인 기술들에 의해 규정되는 보호의 범위 내에 있는 한 이러한 수정들 및 변형들을 커버하도록 의도된다.

Claims (31)

  1. 데이터 송신 제어 방법으로서,
    제1 노드에 의해, 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 결정하는 단계;
    상기 제1 노드에 의해, 송신될 데이터 패킷의 패킷 헤더를 획득하는 단계;
    상기 제1 노드에 의해, 상기 데이터 흐름 식별자 및 상기 획득된 패킷 헤더에 기초하여, 상기 송신될 데이터 패킷으로부터 동일한 출구 포트에 대응하는 제1 데이터 패킷을 결정하는 단계;
    상기 제1 노드에 의해, 상기 메타 정보에 기초하여, 상기 제1 데이터 패킷에 대응하는 메타 정보 값을 획득하는 단계; 및
    상기 피드백 트리거 조건이 만족된다고 결정하면, 상기 제1 노드에 의해, 상기 제1 데이터 패킷에 대응하는 메타 정보 값 및 상기 제1 데이터 패킷의 패킷 헤더를 제2 데이터 패킷으로 캡슐화하고, 제2 노드에 상기 제2 데이터 패킷 - 상기 제2 데이터 패킷은 상기 제2 노드가 상기 제1 데이터 패킷에 대응하는 데이터 흐름들에서의 적어도 하나의 데이터 흐름의 송신 레이트(transmission rate)를 감소시킬 수 있게 하기 위해 사용됨 - 을 전송하거나, 또는 제3 노드에 지시 정보 - 상기 지시 정보는 상기 제1 데이터 패킷에 대응하는 데이터 흐름들에서의 적어도 하나의 데이터 흐름의 송신 레이트를 감소시키도록 상기 제3 노드에 지시하기 위해 사용됨 - 를 전송하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 제1 노드에 의해, 상기 제1 데이터 패킷에 대응하는 메타 정보 값 및 상기 제1 데이터 패킷의 패킷 헤더를 제2 데이터 패킷으로 캡슐화하는 것은:
    상기 제1 노드에 의해, 상기 제1 데이터 패킷의 패킷 헤더 이전에 상기 제1 데이터 패킷에 대응하는 메타 정보 값을 추가하는 것; 및
    상기 제1 노드에 의해, 상기 제1 데이터 패킷에 대응하는 메타 정보 값 이전에 새로운 패킷 헤더를 추가하여, 상기 제2 데이터 패킷을 획득하는 것을 포함하고, 상기 새로운 패킷 헤더에서의 목적지 어드레스는 상기 제2 노드의 어드레스인, 방법.
  3. 제1항 또는 제2항에 있어서, 상기 방법은:
    상기 제1 노드에 의해, 상기 제2 데이터 패킷의 우선순위를 우선순위 임계값보다 크도록 수정하는 단계를 추가로 포함하는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 메타 정보는 노드 식별자, 입구 포트 식별자, 출구 포트 식별자, 큐 식별자, 데이터 패킷의 포워딩 레이턴시, 단일 패킷의 최대 허용가능 레이턴시, 상기 데이터 패킷에 대응하는 데이터 흐름 식별자, 및 상기 데이터 패킷에 대응하는 데이터 타입 중 적어도 하나를 포함하고, 상기 데이터 타입은 제어 평면 데이터, 관리 평면 데이터, 및 데이터 평면 데이터를 포함하는, 방법.
  5. 제4항에 있어서, 상기 피드백 트리거 조건은:
    상기 제1 데이터 패킷의 포워딩 레이턴시가 상기 단일 패킷의 최대 허용가능 레이턴시보다 큰 것;
    수신된 제1 데이터 패킷들의 수량이 미리 설정된 수량보다 많은 것;
    큐 깊이가 미리 설정된 큐 깊이보다 큰 것 - 상기 큐 깊이는 큐를 위한 총 버퍼에 대한 상기 큐에서의 모든 데이터 패킷에 의해 점유된 버퍼의 비율임 - ; 및
    상기 큐에 대한 출구 대역폭의 이용률이 미리 설정된 대역폭 이용률보다 큰 것 중 임의의 하나 이상을 포함하는, 방법.
  6. 제5항에 있어서, 상기 메타 정보는 상기 큐 깊이 및/또는 상기 큐에 대한 출구 대역폭의 이용률을 추가로 포함하고;
    상기 제1 노드에 의해, 상기 피드백 트리거 조건이 만족된다고 결정하는 것은:
    상기 제1 노드에 의해, 상기 제1 데이터 패킷에 대응하는 메타 정보 값에 기초하여, 상기 피드백 트리거 조건이 만족된다고 결정하는 것을 포함하는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 송신될 데이터 패킷은 상기 제3 노드 및/또는 상기 제2 노드로부터의 것인, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 제1 노드에 의해, 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 결정하는 상기 단계는:
    상기 제1 노드에 의해, 상기 제2 노드에 의해 구성되는 상기 피드백 트리거 조건, 상기 메타 정보, 및 상기 데이터 흐름 식별자를 수신하는 단계를 포함하는, 방법.
  9. 데이터 송신 제어 방법으로서,
    제2 노드에 의해, 제1 노드로부터 M개의 제2 데이터 패킷을 수신하는 단계 - M은 1 이상의 정수이고; 상기 제1 노드가 피드백 트리거 조건이 만족된다고 결정하면 상기 제2 데이터 패킷은 상기 제1 노드에 의해 상기 제2 노드에 전송되고, 상기 제2 데이터 패킷은 제1 데이터 패킷의 패킷 헤더 및 상기 제1 데이터 패킷에 대응하는 메타 정보 값을 운반하고, 상기 제1 데이터 패킷은 송신될 데이터 패킷으로부터 상기 제1 노드에 의해 결정됨 - ;
    상기 제2 노드에 의해, 상기 M개의 제2 데이터 패킷 및 레이트 감소 조건(rate reduction condition)에 기초하여 목표 데이터 흐름을 결정하는 단계 - 상기 목표 데이터 흐름은 상기 M개의 제2 데이터 패킷에 대응하는 데이터 흐름들 중 적어도 하나임 - ; 및
    상기 제2 노드에 의해, 레이트 감소 방식으로 상기 목표 데이터 흐름의 송신 레이트를 감소시키거나, 지시 정보를 제3 노드에 전송하는 단계 - 상기 지시 정보는 상기 레이트 감소 방식으로 상기 목표 데이터 흐름의 송신 레이트를 감소시키도록 상기 제3 노드에 지시하기 위해 사용됨 -
    를 포함하는, 방법.
  10. 제9항에 있어서, 상기 방법은:
    상기 제2 노드에 의해, 상기 제1 노드에, 구성되는 상기 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 전송하는 단계를 추가로 포함하는, 방법.
  11. 제10항에 있어서, 상기 메타 정보는 노드 식별자, 입구 포트 식별자, 출구 포트 식별자, 큐 식별자, 데이터 패킷의 포워딩 레이턴시, 단일 패킷의 최대 허용가능 레이턴시, 상기 데이터 패킷에 대응하는 데이터 흐름 식별자, 및 상기 데이터 패킷에 대응하는 데이터 타입 중 적어도 하나를 포함하고, 상기 데이터 타입은 제어 평면 데이터, 관리 평면 데이터, 및 데이터 평면 데이터를 포함하는, 방법.
  12. 제11항에 있어서, 상기 메타 정보는 상기 제1 데이터 패킷에 대응하는 데이터 흐름의 큐 점유 깊이 및 큐 깊이를 추가로 포함하고;
    상기 레이트 감소 조건은 제1 조건, 제2 조건, 및 제3 조건 중 어느 하나를 포함하고,
    상기 제1 조건은, 샘플링 주기에서, 동일한 데이터 흐름에 속하는 k개의 제1 데이터 패킷에 각각 대응하는 메타 정보 값들에서의 포워딩 레이턴시들의 평균 값이 제1 미리 설정된 값보다 크다 - k는 M 이하의 정수임 - 는 것이고;
    상기 제2 조건은, 상기 샘플링 주기에서, 상기 동일한 데이터 흐름에 속하는 상기 k개의 제1 데이터 패킷에 각각 대응하는 상기 메타 정보 값들에서의 데이터 흐름들의 큐 점유 깊이들의 평균 값이 제2 미리 설정된 값보다 크다는 것이고;
    상기 제3 조건은, 상기 샘플링 주기에서, 상기 동일한 데이터 흐름에 속하는 상기 k개의 제1 데이터 패킷에 각각 대응하는 상기 메타 정보 값들에서의 큐 깊이들의 평균 값이 제3 미리 설정된 값보다 크다는 것인, 방법.
  13. 제12항에 있어서, 상기 M개의 제2 데이터 패킷은 하나의 데이터 흐름에 대응하고;
    상기 제2 노드에 의해, 상기 M개의 제2 데이터 패킷 및 레이트 감소 조건에 기초하여 목표 데이터 흐름을 결정하는 상기 단계는:
    상기 제2 노드가 제1 데이터 패킷들에 대응하고 상기 M개의 제2 데이터 패킷에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 포워딩 레이턴시들의 평균 값이 상기 제1 미리 설정된 값보다 크다고 결정하면, 상기 제2 노드에 의해, 상기 M개의 제2 데이터 패킷에 대응하는 데이터 흐름을 상기 목표 데이터 흐름으로서 결정하는 단계; 또는
    상기 제2 노드가 제1 데이터 패킷들에 대응하고 상기 M개의 제2 데이터 패킷에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 데이터 흐름들의 큐 점유 깊이들의 평균 값이 제2 미리 설정된 값보다 크다고 결정하면, 상기 제2 노드에 의해, 상기 M개의 제2 데이터 패킷에 대응하는 데이터 흐름을 상기 목표 데이터 흐름으로서 결정하는 단계; 또는
    상기 제2 노드가 제1 데이터 패킷들에 대응하고 상기 M개의 제2 데이터 패킷에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 큐 깊이들의 평균 값이 제3 미리 설정된 값보다 크다고 결정하면, 상기 제2 노드에 의해, 상기 M개의 제2 데이터 패킷에 대응하는 데이터 흐름을 상기 목표 데이터 흐름으로서 결정하는 단계를 포함하는, 방법.
  14. 제12항에 있어서, k는 M 미만의 정수이고, 상기 M개의 제2 데이터 패킷은 복수의 데이터 흐름들에 대응하고, 각각의 데이터 흐름은 k개의 제2 데이터 패킷을 포함하고;
    상기 제2 노드에 의해, 상기 M개의 제2 데이터 패킷 및 레이트 감소 조건에 기초하여 목표 데이터 흐름을 결정하는 상기 단계는:
    상기 제2 노드에 의해, 제1 데이터 패킷들에 대응하고 각각의 데이터 흐름에서의 상기 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 포워딩 레이턴시들의 평균 값을 결정하고, 상기 포워딩 레이턴시들의 평균 값이 상기 제1 미리 설정된 값보다 크고 우선순위가 가장 낮은 데이터 흐름을 상기 목표 데이터 흐름으로서 결정하는 단계; 또는
    상기 제2 노드에 의해, 제1 데이터 패킷들에 대응하고 각각의 데이터 흐름에서의 상기 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 데이터 흐름들의 큐 점유 깊이들의 평균 값을 결정하고, 상기 데이터 흐름들의 큐 점유 깊이들의 평균 값이 상기 제2 미리 설정된 값보다 크고 우선순위가 가장 낮은 데이터 흐름을 상기 목표 데이터 흐름으로서 결정하는 단계; 또는
    상기 제2 노드에 의해, 제1 데이터 패킷들에 대응하고 각각의 데이터 흐름에서의 상기 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 큐 깊이들의 평균 값을 결정하고, 상기 큐 깊이들의 평균 값이 상기 제3 미리 설정된 값보다 크고 우선순위가 가장 낮은 데이터 흐름을 상기 목표 데이터 흐름으로서 결정하는 단계를 포함하는, 방법.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서, 상기 레이트 감소 방식은:
    상기 제1 조건에 기초하여 상기 목표 데이터 흐름이 결정되면, 상기 목표 데이터 흐름의 송신 레이트를 제1 백분율만큼 감소시키는 것;
    상기 제2 조건에 기초하여 상기 목표 데이터 흐름이 결정되면, 상기 목표 데이터 흐름의 송신 레이트를 제2 백분율만큼 감소시키는 것; 또는
    상기 제3 조건에 기초하여 상기 목표 데이터 흐름이 결정되면, 상기 목표 데이터 흐름의 송신 레이트를 제3 백분율만큼 감소시키는 것 중 어느 하나를 포함하는, 방법.
  16. 장치로서, 통신 인터페이스 및 프로세서를 포함하고,
    상기 프로세서는: 피드백 트리거 조건, 메타 정보, 및 데이터 흐름 식별자를 결정하고; 송신될 데이터 패킷의 패킷 헤더를 획득하고; 상기 데이터 흐름 식별자 및 상기 획득된 패킷 헤더에 기초하여, 상기 송신될 데이터 패킷으로부터 동일한 출구 포트에 대응하는 제1 데이터 패킷을 결정하고; 상기 메타 정보에 기초하여, 상기 제1 데이터 패킷에 대응하는 메타 정보 값을 획득하고; 상기 피드백 트리거 조건이 만족된다고 결정하면, 상기 제1 데이터 패킷에 대응하는 메타 정보 값 및 상기 제1 데이터 패킷의 패킷 헤더를 제2 데이터 패킷으로 캡슐화하고, 통신 인터페이스를 통해 제2 노드에 상기 제2 데이터 패킷 - 상기 제2 데이터 패킷은 상기 제2 노드가 상기 제1 데이터 패킷에 대응하는 데이터 흐름들에서의 적어도 하나의 데이터 흐름의 송신 레이트를 감소시킬 수 있게 하기 위해 사용됨 - 을 전송하거나, 또는 제3 노드에 지시 정보 - 상기 지시 정보는 상기 제1 데이터 패킷에 대응하는 데이터 흐름들에서의 적어도 하나의 데이터 흐름의 송신 레이트를 감소시키도록 상기 제3 노드에 지시하기 위해 사용됨 - 를 전송하도록 구성되는, 장치.
  17. 제16항에 있어서, 상기 프로세서는:
    상기 제1 데이터 패킷의 패킷 헤더 이전에 상기 제1 데이터 패킷에 대응하는 메타 정보 값을 추가하고; 상기 제1 데이터 패킷에 대응하는 메타 정보 값 이전에 새로운 패킷 헤더를 추가하여, 상기 제2 데이터 패킷을 획득하도록 구체적으로 구성되고, 상기 새로운 패킷 헤더에서의 목적지 어드레스는 상기 제2 노드의 어드레스인, 장치.
  18. 제16항 또는 제17항에 있어서, 상기 프로세서는:
    상기 제2 데이터 패킷의 우선순위를 우선순위 임계값보다 크도록 수정하도록 구체적으로 구성되는, 장치.
  19. 제16항 내지 제18항 중 어느 한 항에 있어서, 상기 메타 정보는 노드 식별자, 입구 포트 식별자, 출구 포트 식별자, 큐 식별자, 데이터 패킷의 포워딩 레이턴시, 단일 패킷의 최대 허용가능 레이턴시, 상기 데이터 패킷에 대응하는 데이터 흐름 식별자, 및 상기 데이터 패킷에 대응하는 데이터 타입 중 적어도 하나를 포함하고, 상기 데이터 타입은 제어 평면 데이터, 관리 평면 데이터, 및 데이터 평면 데이터를 포함하는, 장치.
  20. 제19항에 있어서, 상기 피드백 트리거 조건은:
    상기 제1 데이터 패킷의 포워딩 레이턴시가 상기 단일 패킷의 최대 허용가능 레이턴시보다 큰 것;
    수신된 제1 데이터 패킷들의 수량이 미리 설정된 수량보다 많은 것;
    큐 깊이가 미리 설정된 큐 깊이보다 큰 것 - 상기 큐 깊이는 큐를 위한 총 버퍼에 대한 상기 큐에서의 모든 데이터 패킷에 의해 점유된 버퍼의 비율임 - ; 및
    상기 큐에 대한 출구 대역폭의 이용률이 미리 설정된 대역폭 이용률보다 큰 것 중 임의의 하나 이상을 포함하는, 장치.
  21. 제20항에 있어서, 상기 메타 정보는 상기 큐 깊이 및/또는 상기 큐에 대한 출구 대역폭의 이용률을 추가로 포함하고;
    상기 프로세서는:
    상기 제1 데이터 패킷에 대응하는 메타 정보 값에 기초하여, 상기 피드백 트리거 조건이 만족된다고 결정하도록 구체적으로 구성되는, 장치.
  22. 제16항 내지 제21항 중 어느 한 항에 있어서, 상기 송신될 데이터 패킷은 상기 제3 노드 및/또는 상기 제2 노드로부터의 것인, 장치.
  23. 제16항 내지 제22항 중 어느 한 항에 있어서, 상기 통신 인터페이스는:
    상기 제2 노드에 의해 구성되는 상기 피드백 트리거 조건, 상기 메타 정보, 및 상기 데이터 흐름 식별자를 수신하도록 추가로 구성되는, 장치.
  24. 장치로서, 프로세서 및 통신 인터페이스를 포함하고,
    상기 통신 인터페이스는: 제1 노드로부터 M개의 제2 데이터 패킷을 수신하도록 구성되고, M은 1 이상의 정수이고; 상기 제1 노드가 피드백 트리거 조건이 만족된다고 결정하면 상기 제2 데이터 패킷은 상기 제1 노드에 의해 제2 노드에 전송되고, 상기 제2 데이터 패킷은 제1 데이터 패킷의 패킷 헤더 및 상기 제1 데이터 패킷에 대응하는 메타 정보 값을 운반하고, 상기 제1 데이터 패킷은 데이터 흐름 식별자에 기초하여 송신될 데이터 패킷으로부터 상기 제1 노드에 의해 결정되고;
    상기 프로세서는: 상기 M개의 제2 데이터 패킷 및 레이트 감소 조건에 기초하여 목표 데이터 흐름을 결정하고 - 상기 목표 데이터 흐름은 상기 M개의 제2 데이터 패킷에 대응하는 데이터 흐름들 중 적어도 하나임 - ; 레이트 감소 방식으로 상기 목표 데이터 흐름의 송신 레이트를 감소시키거나, 또는 상기 통신 인터페이스를 통해 제3 노드에 지시 정보 - 상기 지시 정보는 상기 레이트 감소 방식으로 상기 목표 데이터 흐름의 송신 레이트를 감소시키도록 상기 제3 노드에 지시하기 위해 사용됨 - 를 전송하도록 구성되는, 장치.
  25. 제24항에 있어서, 상기 통신 인터페이스는:
    상기 제1 노드에, 구성되는 상기 피드백 트리거 조건, 메타 정보, 및 상기 데이터 흐름 식별자를 전송하도록 추가로 구성되는, 장치.
  26. 제25항에 있어서, 상기 메타 정보는 상기 제1 데이터 패킷에 대응하는 데이터 흐름의 큐 점유 깊이 및 큐 깊이를 추가로 포함하고;
    상기 레이트 감소 조건은 제1 조건, 제2 조건, 및 제3 조건 중 어느 하나를 포함하고,
    상기 제1 조건은, 샘플링 주기에서, 동일한 데이터 흐름에 속하는 k개의 제1 데이터 패킷에 각각 대응하는 메타 정보 값들에서의 포워딩 레이턴시들의 평균 값이 제1 미리 설정된 값보다 크다 - k는 M 이하의 정수임 - 는 것이고;
    상기 제2 조건은, 상기 샘플링 주기에서, 상기 동일한 데이터 흐름에 속하는 상기 k개의 제1 데이터 패킷에 각각 대응하는 상기 메타 정보 값들에서의 데이터 흐름들의 큐 점유 깊이들의 평균 값이 제2 미리 설정된 값보다 크다는 것이고;
    상기 제3 조건은, 상기 샘플링 주기에서, 상기 동일한 데이터 흐름에 속하는 상기 k개의 제1 데이터 패킷에 각각 대응하는 상기 메타 정보 값들에서의 큐 깊이들의 평균 값이 제3 미리 설정된 값보다 크다는 것인, 장치.
  27. 제26항에 있어서, 상기 M개의 제2 데이터 패킷은 하나의 데이터 흐름에 대응하고;
    상기 프로세서는:
    제1 데이터 패킷들에 대응하고 상기 M개의 제2 데이터 패킷에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 포워딩 레이턴시들의 평균 값이 제1 미리 설정된 값보다 크다고 결정하면, 상기 M개의 제2 데이터 패킷에 대응하는 데이터 흐름을 상기 목표 데이터 흐름으로서 결정하거나; 또는
    제1 데이터 패킷들에 대응하고 상기 M개의 제2 데이터 패킷에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 데이터 흐름들의 큐 점유 깊이들의 평균 값이 제2 미리 설정된 값보다 크다고 결정하면, 상기 M개의 제2 데이터 패킷에 대응하는 데이터 흐름을 상기 목표 데이터 흐름으로서 결정하거나; 또는
    제1 데이터 패킷들에 대응하고 상기 M개의 제2 데이터 패킷에서의 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 큐 깊이들의 평균 값이 제3 미리 설정된 값보다 크다고 결정하면, 상기 M개의 제2 데이터 패킷에 대응하는 데이터 흐름을 상기 목표 데이터 흐름으로서 결정하도록 구체적으로 구성되는, 장치.
  28. 제26항에 있어서, k는 M 미만의 정수이고, 상기 M개의 제2 데이터 패킷은 복수의 데이터 흐름들에 대응하고, 각각의 데이터 흐름은 k개의 제2 데이터 패킷을 포함하고;
    상기 프로세서는:
    제1 데이터 패킷들에 대응하고 각각의 데이터 흐름에서의 상기 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 포워딩 레이턴시들의 평균 값을 결정하고, 상기 포워딩 레이턴시들의 평균 값이 상기 제1 미리 설정된 값보다 크고 우선순위가 가장 낮은 데이터 흐름을 상기 목표 데이터 흐름으로서 결정하거나; 또는
    제1 데이터 패킷들에 대응하고 각각의 데이터 흐름에서의 상기 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 데이터 흐름들의 큐 점유 깊이들의 평균 값을 결정하고, 상기 데이터 흐름들의 큐 점유 깊이들의 평균 값이 상기 제2 미리 설정된 값보다 크고 우선순위가 가장 낮은 데이터 흐름을 상기 목표 데이터 흐름으로서 결정하거나; 또는
    제1 데이터 패킷들에 대응하고 각각의 데이터 흐름에서의 상기 k개의 제2 데이터 패킷에서 각각 운반되는 메타 정보 값들에서의 큐 깊이들의 평균 값을 결정하고, 상기 큐 깊이들의 평균 값이 상기 제3 미리 설정된 값보다 크고 우선순위가 가장 낮은 데이터 흐름을 상기 목표 데이터 흐름으로서 결정하도록 구성되는, 장치.
  29. 제26항 내지 제28항 중 어느 한 항에 있어서, 상기 레이트 감소 방식은:
    상기 제1 조건에 기초하여 상기 목표 데이터 흐름이 결정되면, 상기 목표 데이터 흐름의 송신 레이트를 제1 백분율만큼 감소시키는 것;
    상기 제2 조건에 기초하여 상기 목표 데이터 흐름이 결정되면, 상기 목표 데이터 흐름의 송신 레이트를 제2 백분율만큼 감소시키는 것; 또는
    상기 제3 조건에 기초하여 상기 목표 데이터 흐름이 결정되면, 상기 목표 데이터 흐름의 송신 레이트를 제3 백분율만큼 감소시키는 것 중 임의의 것을 포함하는, 장치.
  30. 컴퓨터 명령어들을 포함하는 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 명령어들이 프로세서 상에서 실행될 때, 장치가 제1항 내지 제15항 중 어느 한 항에 따른 방법을 수행할 수 있게 되는, 컴퓨터 판독가능 저장 매체.
  31. 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 제품이 프로세서 상에서 실행될 때, 장치가 제1항 내지 제15항 중 어느 한 항에 따른 방법을 수행할 수 있게 되는, 컴퓨터 프로그램 제품.
KR1020227010617A 2019-09-05 2020-06-24 데이터 송신을 제어하기 위한 방법 및 장치, 및 저장 매체 KR20220058576A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910838564.5 2019-09-05
CN201910838564.5A CN110647071B (zh) 2019-09-05 2019-09-05 一种控制数据传输的方法、装置及存储介质
PCT/CN2020/098288 WO2021042831A1 (zh) 2019-09-05 2020-06-24 一种控制数据传输的方法、装置及存储介质

Publications (1)

Publication Number Publication Date
KR20220058576A true KR20220058576A (ko) 2022-05-09

Family

ID=68991565

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227010617A KR20220058576A (ko) 2019-09-05 2020-06-24 데이터 송신을 제어하기 위한 방법 및 장치, 및 저장 매체

Country Status (6)

Country Link
US (1) US20220191140A1 (ko)
EP (1) EP4024146A4 (ko)
JP (1) JP2022547143A (ko)
KR (1) KR20220058576A (ko)
CN (1) CN110647071B (ko)
WO (1) WO2021042831A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110647071B (zh) * 2019-09-05 2021-08-27 华为技术有限公司 一种控制数据传输的方法、装置及存储介质
CN114095445A (zh) * 2020-07-29 2022-02-25 华人运通(上海)自动驾驶科技有限公司 车载以太网的数据传输控制方法、装置、电子设备及存储介质
CN112134809B (zh) * 2020-09-16 2024-04-23 山东云海国创云计算装备产业创新中心有限公司 一种流量控制方法、装置、设备及可读存储介质
CN112637073B (zh) * 2020-12-18 2022-02-25 深圳市东晟数据有限公司 一种可扩展规则空间的实现方法
WO2023065283A1 (en) * 2021-10-22 2023-04-27 Nokia Shanghai Bell Co., Ltd. Ran enhancement taking into account cbs behaviour in tsc
US11956188B1 (en) * 2022-12-13 2024-04-09 Infineon Technologies Ag Security aware routing in an in-vehicle communication network

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6324742A (ja) * 1986-07-17 1988-02-02 Fujitsu Ltd パケツト交換輻輳抑止方式
JP3715934B2 (ja) * 2002-02-13 2005-11-16 日本電信電話株式会社 輻輳制御方法、エッジ型パケット転送装置及びネットワーク
US7961621B2 (en) * 2005-10-11 2011-06-14 Cisco Technology, Inc. Methods and devices for backward congestion notification
US20080298248A1 (en) * 2007-05-28 2008-12-04 Guenter Roeck Method and Apparatus For Computer Network Bandwidth Control and Congestion Management
CN102611620A (zh) * 2012-02-23 2012-07-25 福建星网锐捷网络有限公司 拥塞控制方法和报文处理设备
GB2524958A (en) * 2014-04-03 2015-10-14 Orbital Multi Media Holdings Corp Data flow control method
KR102195069B1 (ko) * 2014-08-06 2020-12-24 삼성전자주식회사 패킷 송신기 및 이를 포함하는 인터페이스 장치
CN106134138B (zh) * 2014-12-04 2020-02-21 华为技术有限公司 一种拥塞控制的方法、设备和系统
CN107493238A (zh) * 2016-06-13 2017-12-19 华为技术有限公司 一种网络拥塞控制方法、设备及系统
US10833998B2 (en) * 2017-01-12 2020-11-10 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for flow control
CN108667739B (zh) * 2017-03-27 2020-12-08 华为技术有限公司 拥塞控制方法、装置及系统
CN109981471B (zh) * 2017-12-27 2023-04-18 华为技术有限公司 一种缓解拥塞的方法、设备和系统
CN109995664B (zh) * 2017-12-29 2022-04-05 华为技术有限公司 一种发送数据流的方法、设备和系统
WO2019140556A1 (zh) * 2018-01-16 2019-07-25 华为技术有限公司 一种报文传输的方法及装置
CN108418767B (zh) * 2018-02-09 2021-12-21 华为技术有限公司 数据传输方法、设备及计算机存储介质
US11616723B2 (en) * 2018-12-05 2023-03-28 Intel Corporation Techniques to reduce network congestion
CN109861999B (zh) * 2019-01-21 2022-04-26 深圳市敢为软件技术有限公司 数据传输的控制方法、装置及存储介质
CN110647071B (zh) * 2019-09-05 2021-08-27 华为技术有限公司 一种控制数据传输的方法、装置及存储介质

Also Published As

Publication number Publication date
JP2022547143A (ja) 2022-11-10
CN110647071B (zh) 2021-08-27
CN110647071A (zh) 2020-01-03
EP4024146A1 (en) 2022-07-06
EP4024146A4 (en) 2022-10-26
US20220191140A1 (en) 2022-06-16
WO2021042831A1 (zh) 2021-03-11

Similar Documents

Publication Publication Date Title
KR20220058576A (ko) 데이터 송신을 제어하기 위한 방법 및 장치, 및 저장 매체
US11646967B2 (en) Packet control method and network apparatus
US10129151B2 (en) Traffic management implementation method and apparatus, and network device
US10122623B2 (en) Control device and control method in SDN network
US10841230B1 (en) Intelligent controller and sensor network bus, system and method
KR102239717B1 (ko) 패킷 처리 방법 및 장치
US11089140B2 (en) Intelligent controller and sensor network bus, system and method including generic encapsulation mode
CN112737914B (zh) 报文处理方法、装置、网络设备及可读存储介质
EP2670085B1 (en) System for performing Data Cut-Through
US20130088959A1 (en) Credit-based network congestion management
EP3534571A1 (en) Service packet transmission method, and node apparatus
US11258723B2 (en) Data processing method and apparatus, and switching device using footprint queues
US20220166721A1 (en) Traffic balancing method, network device, and electronic device
WO2017219950A1 (en) System and method for mtu size reduction in a packet network
US9621487B2 (en) Method and apparatus for protection switching based on memory control in packet transport system
WO2021055205A1 (en) Intelligent controller and sensor network bus, system and method including generic encapsulation mode
CN117014384A (zh) 一种报文传输方法以及报文转发设备
WO2016014044A1 (en) Node-based compute device with protocol-based priority

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal