KR102589955B1 - 패킷 스케줄링 방법, 관련 디바이스 및 컴퓨터 저장 매체 - Google Patents

패킷 스케줄링 방법, 관련 디바이스 및 컴퓨터 저장 매체 Download PDF

Info

Publication number
KR102589955B1
KR102589955B1 KR1020217020758A KR20217020758A KR102589955B1 KR 102589955 B1 KR102589955 B1 KR 102589955B1 KR 1020217020758 A KR1020217020758 A KR 1020217020758A KR 20217020758 A KR20217020758 A KR 20217020758A KR 102589955 B1 KR102589955 B1 KR 102589955B1
Authority
KR
South Korea
Prior art keywords
packet
target
token
scheduling
packet length
Prior art date
Application number
KR1020217020758A
Other languages
English (en)
Other versions
KR20210094083A (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 KR20210094083A publication Critical patent/KR20210094083A/ko
Application granted granted Critical
Publication of KR102589955B1 publication Critical patent/KR102589955B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2814Exchanging control software or macros for controlling appliance services in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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/215Flow control; Congestion control using token-bucket
    • 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/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/628Queue scheduling characterised by scheduling criteria for service slots or service orders based on packet size, e.g. shortest packet first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 출원은 패킷 스케줄링 방법 및 관련 디바이스를 제공한다. 상기 방법은: 액세스 디바이스가 스케줄링 대상 패킷을 수신하고, 스케줄링 대상 패킷의 실제 패킷 길이를 획득하며; 액세스 디바이스가 스케줄링 대상 패킷에 기반하여 제1 보상 값 및 제2 보상 값을 결정하고, 제1 패킷 길이 및 제2 패킷 길이를 결정하며; 액세스 디바이스가 제1 패킷 길이 및 제2 패킷 길이에 기반하여 스케줄링 대상 패킷을 스케줄링하는 것을 포함한다. 본 출원에서 상기 방법을 구현하는 것에 의해, 액세스 디바이스는 패킷 포워딩 경로 상의 각 디바이스가 수신한 패킷의 패킷 길이를 추정하고, 그 다음에 각 디바이스가 수신한 패킷의 추정된 패킷 길이에 기반하여 패킷을 스케줄링하므로, 액세스 디바이스는 네트워크 상의 각 디바이스의 대역폭을 보다 정확하게 관리할 수 있다.

Description

패킷 스케줄링 방법, 관련 디바이스 및 컴퓨터 저장 매체
삭제
본 발명은 통신 기술 분야에 관한 것으로, 특히 패킷 스케줄링 방법, 관련 디바이스 및 컴퓨터 저장 매체에 관한 것이다.
통신 서비스가 발전함에 따라, 네트워크 사업자(network operator)는 네트워크 품질을 개선하기 위해 네트워크 대역폭을 보다 정제된 방식으로 분석하고 관리해야 한다. 일반적인 광대역 액세스 네트워크에서, 사용자 장비(user equipment)는 네트워크 디바이스를 사용하여 대도시 백본(metropolitan area backbone) 네트워크의 에지 계층(edge layer)에서 액세스 디바이스에 연결될 수 있으며, 액세스 디바이스는 사용자 장비의 대역폭과 네트워크 디바이스의 대역폭을 관리한다. 네트워크 디바이스는 디지털 가입자 회선 액세스 멀티플렉서(digital subscriber line access multiplexer, DSLAM)일 수 있고, 액세스 디바이스는 광대역 원격 액세스 서버(broadband remote access server, BRAS)일 수 있다.
현재 액세스 디바이스가 사용자 장비의 대역폭과 네트워크 디바이스의 대역폭을 관리할 때, 네트워크 측에서 사용자 장비로 송신된 스케줄링 대상 패킷(to-be-scheduled packet)을 수신한 후, 액세스 디바이스는 단지 사용자 장비에 의해 수신된 패킷의 패킷 길이를 추정하고, 그리고 사용자 장비에 의해 수신된 패킷의 추정된 패킷 길이에 기반하여 스케줄링 대상 패킷을 스케줄링한다. 그러나, 패킷 전송 과정에서 각 디바이스가 수신하는 패킷의 길이가 상이할 수 있다. 액세스 디바이스는 사용자 장비가 수신한 스케줄링 대상 패킷의 추정된 패킷 길이에만 기반하여 스케줄링 대상 패킷을 스케줄링하여, 사용자 디바이스의 대역폭과 네트워크 디바이스의 대역폭을 관리한다. 이는 사용자 장비 상에서 대역폭 관리의 정확성을 보장할 수만 있고, 다른 네트워크 디바이스 상에서의 대역폭 관리의 정확성을 보장할 수는 없다.
본 발명의 실시 예는 패킷 스케줄링 방법 및 장치, 관련 디바이스 및 컴퓨터 저장 매체를 개시한다. 대역폭 관리를 수행하는 액세스 디바이스는 스케줄링 대상 패킷의 포워딩(forwarding) 경로 상에서 각 디바이스가 수신한 패킷의 패킷 길이를 추정하며, 그 다음에 각 디바이스가 수신한 패킷의 추정된 패킷 길이에 기반하여 스케줄링 대상 패킷을 스케줄링하므로, 액세스 디바이스가 네트워크에서 각 디바이스의 대역폭을 보다 정확하게 관리할 수 있다.
제1 측면에 따르면, 본 출원의 실시 예는 패킷 스케줄링 방법을 개시하고, 상기 패킷 스케줄링 방법은,
액세스 디바이스가, 스케줄링 대상 패킷(to-be-scheduled packet)을 수신하는 단계 - 상기 스케줄링 대상 패킷은 네트워크 측에 의해 사용자 장비로 송신된 패킷임 -;
상기 액세스 디바이스가, 상기 스케줄링 대상 패킷의 실제 패킷 길이를 획득하는 단계 - 상기 실제 패킷 길이는 상기 스케줄링 대상 패킷의 총(total) 길이를 지시함 -;
상기 액세스 디바이스가, 상기 스케줄링 대상 패킷에 기반하여 제1 보상 값 및 제2 보상 값을 결정하는 단계 - 상기 제1 보상 값은 상기 스케줄링 대상 패킷이 제1 네트워크 디바이스에 의해 포워딩된 후 상기 실제 패킷 길이에 대한 변동 추정치(estimate of a variation)를 지시하며, 상기 제2 보상 값은 상기 스케줄링 대상 패킷이 상기 액세스 디바이스에 의해 포워딩된 후 상기 실제 패킷 길이에 대한 변동 추정치를 지시하고, 상기 제1 네트워크 디바이스는 상기 스케줄링 대상 패킷의 포워딩 경로 상에서 상기 액세스 디바이스와 상기 사용자 장비 사이에 위치된 네트워크 디바이스임 -;
상기 액세스 디바이스가, 제1 패킷 길이 및 제2 패킷 길이를 결정하는 단계 - 상기 제1 패킷 길이의 값은 상기 실제 패킷 길이의 값과 상기 제1 보상 값의 합(sum)과 같으며(equal), 상기 제2 패킷 길이의 값은 상기 실제 패킷 길이의 값과 상기 제2 보상 값의 합과 같음 -;
상기 액세스 디바이스가, 상기 제1 패킷 길이 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 단계를 포함한다.
선택적으로, 상기 액세스 디바이스가, 상기 스케줄링 대상 패킷에 기반하여 제1 보상 값 및 제2 보상 값을 결정하는 단계는 구체적으로,
상기 액세스 디바이스가, 상기 스케줄링 대상 패킷에 기반하여 상기 스케줄링 대상 패킷의 포워딩 경로를 결정하는 단계 - 상기 포워딩 경로는 상기 액세스 디바이스의 식별자 및 상기 제1 네트워크 디바이스의 식별자를 포함함 -; 및
상기 액세스 디바이스가, 상기 제1 네트워크 디바이스의 식별자에 기반하여 상기 제1 보상 값을 결정하고, 상기 액세스 디바이스의 식별자에 기반하여 상기 제2 보상 값을 결정하는 단계를 포함한다.
선택적으로, 상기 액세스 디바이스가, 상기 제1 네트워크 디바이스의 식별자에 기반하여 상기 제1 보상 값을 결정하고, 상기 액세스 디바이스의 식별자에 기반하여 상기 제2 보상 값을 결정하는 단계는 구체적으로,
상기 액세스 디바이스가, 상기 제1 네트워크 디바이스의 식별자에 기반하여 제1 보상 알고리즘을 결정하고, 상기 액세스 디바이스의 식별자에 기반하여 제2 보상 알고리즘을 결정하는 단계 - 상기 제1 보상 알고리즘은 상기 제1 네트워크 디바이스에 의해 포워딩된 패킷의 패킷 길이를 보상하는 데 사용되고, 상기 제2 보상 알고리즘은 상기 액세스 디바이스에 의해 포워딩된 패킷의 패킷 길이를 보상하는 데 사용됨 -; 및
상기 액세스 디바이스가, 상기 실제 패킷 길이 및 상기 제1 보상 알고리즘에 기반하여 상기 제1 보상 값을 결정하고, 상기 실제 패킷 길이 및 상기 제2 보상 알고리즘에 기반하여 상기 제2 보상 값을 결정하는 단계를 포함한다.
선택적으로, 상기 액세스 디바이스가, 상기 제1 패킷 길이 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 단계는 구체적으로,
상기 액세스 디바이스가, 상기 사용자 장비에 대응하는 제1 토큰 버킷(token bucket)에서의 제1 나머지 토큰 수량(first quantity of remaining tokens)을 획득하는 단계 - 상기 제1 나머지 토큰 수량은 현재 시점(current moment)에 상기 제1 토큰 버킷에서의 토큰 수량과 같음 -;
상기 액세스 디바이스가, 상기 제1 네트워크 디바이스에 대응하는 제2 토큰 버킷에서의 제2 나머지 토큰 수량(second quantity of remaining tokens)을 획득하는 단계 - 상기 제2 나머지 토큰 수량은 현재 시점에 상기 제2 토큰 버킷에서의 토큰 수량과 같음 -;
상기 액세스 디바이스가, 상기 제1 토큰 버킷 및 상기 제1 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제1 타깃 토큰 수량(first quantity of target tokens)을 결정하고, 상기 제2 토큰 버킷 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제2 타깃 토큰 수량(second quantity of target tokens)을 결정하는 단계;
상기 액세스 디바이스가, 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 작거나 같은지를 판정하고, 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 작거나 같은지를 판정하는 단계; 및
상기 액세스 디바이스가 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 작거나 같고 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 작거나 같은 것으로 결정할 때, 상기 액세스 디바이스가, 제1 주기(period)에서 상기 스케줄링 대상 패킷을 포워딩하기로 결정하고, 상기 제1 토큰 버킷으로부터 상기 제1 타깃 토큰 수량과 동일한 수량의 토큰을 공제하고(deduct), 상기 제2 토큰 버킷으로부터 상기 제2 타깃 토큰 수량과 동일한 수량을 공제하는 단계를 포함한다.
선택적으로, 상기 패킷 스케줄링 방법은, 상기 액세스 디바이스가 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 크거나 또는 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 큰 것으로 결정할 때, 상기 액세스 디바이스가, 상기 제1 주기에서 상기 스케줄링 대상 패킷을 포워딩하지 않기로 결정하는 단계를 더 포함한다.
선택적으로, 상기 사용자 장비의 액세스 대역폭은 상기 사용자 장비에 액세스된 총 대역폭이며, 상기 사용자 장비의 액세스 대역폭은 제1 대역폭을 포함하고, 상기 제1 대역폭은 상기 사용자 장비의 타깃 네트워크 서비스에 액세스된 대역폭을 지시하는 데 사용되며, 상기 제1 대역폭의 값은 상기 사용자 장비의 액세스 대역폭의 값보다 작으며,
상기 패킷 스케줄링 방법은, 상기 액세스 디바이스가, 상기 사용자 장비의 식별자를 결정하고, 상기 사용자 장비의 식별자에 기반하여 제3 보상 값을 결정하는 단계 - 상기 제3 보상 값은 상기 스케줄링 대상 패킷이 상기 사용자 장비에 의해 상기 타깃 네트워크 서비스로 배포된 후 상기 실제 패킷 길이에 대한 변동 추정치를 지시함 - 를 더 포함하고,
상기 액세스 디바이스가, 상기 제1 패킷 길이 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 단계는 구체적으로,
상기 액세스 디바이스가, 상기 실제 패킷 길이 및 상기 제3 보상 값에 기반하여 제3 패킷 길이를 결정하는 단계 - 상기 제3 패킷 길이의 값은 상기 실제 패킷 길이와 상기 제3 보상 값의 합과 같음 -; 및
상기 액세스 디바이스가, 상기 제1 패킷 길이, 상기 제2 패킷 길이 및 상기 제3 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 단계를 포함한다.
선택적으로, 상기 액세스 디바이스가, 상기 제1 패킷 길이, 상기 제2 패킷 길이 및 상기 제3 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 단계는 구체적으로,
상기 액세스 디바이스가, 상기 사용자 장비에 대응하는 제1 토큰 버킷에서의 제1 나머지 토큰 수량을 획득하는 단계 - 상기 제1 나머지 토큰 수량은 현재 시점에 상기 제1 토큰 버킷에서의 토큰 수량과 같음 -;
상기 액세스 디바이스가, 상기 제1 네트워크 디바이스에 대응하는 제2 토큰 버킷에서의 제2 나머지 토큰 수량을 획득하는 단계 - 상기 제2 나머지 토큰 수량은 현재 시점에 상기 제2 토큰 버킷에서의 토큰 수량과 같음 -;
상기 액세스 디바이스가, 상기 타깃 네트워크 서비스에 대응하는 제3 토큰 버킷에서의 제3 나머지 토큰 수량을 획득하는 단계 - 상기 제3 나머지 토큰 수량은 현재 시점에 상기 제3 토큰 버킷에서의 토큰 수량과 같음 -;
상기 액세스 디바이스가, 상기 제1 토큰 버킷 및 상기 제1 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제1 타깃 토큰 수량을 결정하고, 상기 제2 토큰 버킷 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제2 타깃 토큰 수량을 결정하며, 그리고 상기 제3 토큰 버킷 및 상기 제3 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제3 타깃 토큰 수량을 결정하는 단계;
상기 액세스 디바이스가, 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 작거나 같은지를 판정하고, 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 작거나 같은지를 판정하며, 그리고 상기 제3 타깃 토큰 수량이 상기 제3 나머지 토큰 수량보다 작거나 같은지를 판정하는 단계; 및
상기 액세스 디바이스가 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 작거나 같고, 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 작거나 같으며, 상기 제3 타깃 토큰 수량이 상기 제3 나머지 토큰 수량보다 작거나 같은 것으로 결정할 때, 상기 액세스 디바이스가, 상기 스케줄링 대상 패킷을 포워딩하기로 결정하고, 상기 제1 토큰 버킷으로부터 상기 제1 타깃 토큰 수량과 동일한 수량의 토큰을 공제하며, 상기 제2 토큰 버킷으로부터 상기 제2 타깃 토큰 수량과 동일한 수량의 토큰을 공제하고, 상기 제3 토큰 버킷으로부터 상기 제3 타깃 토큰 수량과 동일한 수량의 토큰을 공제하는 단계를 포함한다.
선택적으로, 상기 사용자 장비의 식별자에 기반하여 제3 보상 값을 결정하는 단계는 구체적으로,
상기 액세스 디바이스가, 상기 사용자 장비의 식별자에 기반하여 제3 보상 알고리즘을 결정하고, 상기 실제 패킷 길이 및 상기 제3 보상 알고리즘에 기반하여 상기 제3 보상 값을 결정하는 단계를 포함한다.
선택적으로, 상기 제1 네트워크 디바이스가 비동기 전송 모드(asynchronous transfer mode, ATM)에 기반한 네트워크 디바이스일 때, 상기 제1 보상 값은 상기 실제 패킷 길이의 값과 ATM 셀 길이의 값의 몫(quotient)에 ATM 셀 길이 헤더의 길이 값을 곱한 값과 같다.
본 출원에서 제공되는 패킷 스케줄링 방법에 기반하여, 네트워크에서 대역폭을 관리해야 하는 각 디바이스에 대응하는 보상 값 또는 보상 알고리즘이 구성될 수 있고, 보상 값 또는 보상 알고리즘은 각 디바이스의 대역폭을 관리하는 액세스 디바이스에 저장될 수 있다. 스케줄링 대상 패킷을 수신한 후, 액세스 디바이스는 먼저 스케줄링 대상 패킷의 목적지 어드레스에 기반하여, 스케줄링 대상 패킷이 액세스 디바이스로부터 사용자 장비까지 통과해야 하는 하나 이상의 네트워크 디바이스를 결정하고, 그 다음에 하나 이상의 디바이스에서 각 네트워크 디바이스에 대응하는 보상 값을 검색하거나 계산하여, 각 네트워크 디바이스에 의해 수신되는 스케줄링 대상 패킷의 패킷 길이를 추정하고, 각 네트워크 디바이스에 의해 수신되는 스케줄링 대상 패킷의 패킷 길이 및 각 네트워크 디바이스에 대응하는 토큰 버킷에서의 토큰 수량에 기반하여, 스케줄링 대상 패킷을 포워딩할지를 판정한다. 패킷 길이 보상은 스케줄링 대상 패킷의 포워딩 경로 상의 각 네트워크 디바이스에 대해 개별적으로 수행되므로, 액세스 네트워크 디바이스는 각 네트워크 디바이스의 대역폭을 더 정확하게 관리할 수 있다.
제2 측면에 따르면, 본 출원의 실시 예는 패킷 보상 장치를 개시하며, 상기 패킷 보상 장치는,
스케줄링 대상 패킷을 수신하도록 - 상기 스케줄링 대상 패킷은 네트워크 측에 의해 사용자 장비로 송신된 패킷임 - 구성된 수신기; 및
상기 스케줄링 대상 패킷의 실제 패킷 길이를 획득하도록 - 상기 실제 패킷 길이는 상기 스케줄링 대상 패킷의 총 길이를 지시함 - 구성된 프로세서를 포함하고,
상기 프로세서는 추가로, 상기 스케줄링 대상 패킷에 기반하여 제1 보상 값 및 제2 보상 값을 결정하도록 - 상기 제1 보상 값은 상기 스케줄링 대상 패킷이 제1 네트워크 디바이스에 의해 포워딩된 후 상기 실제 패킷 길이에 대한 변동 추정치를 지시하며, 상기 제2 보상 값은 상기 스케줄링 대상 패킷이 상기 수신기에 의해 포워딩된 후 상기 실제 패킷 길이에 대한 변동 추정치를 지시하고, 상기 제1 네트워크 디바이스는 상기 스케줄링 대상 패킷의 포워딩 경로 상에서 상기 패킷 보상 장치와 상기 사용자 장비 사이에 위치된 네트워크 디바이스임 - 구성되며,
상기 프로세서는 추가로, 제1 패킷 길이 및 제2 패킷 길이를 결정하고 - 상기 제1 패킷 길이의 값은 상기 실제 패킷 길이의 값과 상기 제1 보상 값의 합과 같으며, 상기 제2 패킷 길이의 값은 상기 실제 패킷 길이의 값과 상기 제2 보상 값의 합과 같음 -, 그리고 상기 제1 패킷 길이 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하도록 구성된다.
선택적으로, 상기 프로세서가 상기 스케줄링 대상 패킷에 기반하여 제1 보상 값 및 제2 보상 값을 결정하는 것은 구체적으로,
상기 프로세서가, 상기 스케줄링 대상 패킷에 기반하여 상기 스케줄링 대상 패킷의 포워딩 경로를 결정하도록 - 상기 포워딩 경로는 상기 패킷 보상 장치의 식별자 및 상기 제1 네트워크 디바이스의 식별자를 포함함 - 구성되고, 그리고
상기 프로세서가 추가로, 상기 제1 네트워크 디바이스의 식별자에 기반하여 상기 제1 보상 값을 결정하고, 상기 패킷 보상 장치의 식별자에 기반하여 상기 제2 보상 값을 결정하도록 구성되는 것을 포함한다.
선택적으로, 상기 프로세서가 상기 제1 네트워크 디바이스의 식별자에 기반하여 상기 제1 보상 값을 결정하고, 상기 패킷 보상 장치의 식별자에 기반하여 상기 제2 보상 값을 결정하는 것은 구체적으로,
상기 프로세서가 상기 제1 네트워크 디바이스의 식별자에 기반하여 제1 보상 알고리즘을 결정하고, 상기 패킷 보상 장치의 식별자에 기반하여 제2 보상 알고리즘을 결정하도록 - 상기 제1 보상 알고리즘은 상기 제1 네트워크 디바이스에 의해 포워딩된 패킷의 패킷 길이를 보상하는 데 사용되고, 상기 제2 보상 알고리즘은 상기 패킷 보상 장치에 의해 포워딩된 패킷의 패킷 길이를 보상하는 데 사용됨 - 구성되고, 그리고
상기 프로세서가 추가로, 상기 실제 패킷 길이 및 상기 제1 보상 알고리즘에 기반하여 상기 제1 보상 값을 결정하고, 상기 실제 패킷 길이 및 상기 제2 보상 알고리즘에 기반하여 상기 제2 보상 값을 결정하도록 구성되는 것을 포함한다.
선택적으로, 상기 프로세서가 상기 제1 패킷 길이 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 것은 구체적으로,
상기 프로세서가 상기 사용자 장비에 대응하는 제1 토큰 버킷에서의 제1 나머지 토큰 수량을 획득하도록 - 상기 제1 나머지 토큰 수량은 현재 시점에 상기 제1 토큰 버킷에서의 토큰 수량과 같음 - 구성되고,
상기 프로세서가 추가로, 상기 제1 네트워크 디바이스에 대응하는 제2 토큰 버킷에서의 제2 나머지 토큰 수량을 획득하도록 - 상기 제2 나머지 토큰 수량은 현재 시점에 상기 제2 토큰 버킷에서의 토큰 수량과 같음 - 구성되며,
상기 프로세서가 추가로, 상기 제1 토큰 버킷 및 상기 제1 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제1 타깃 토큰 수량을 결정하고, 상기 제2 토큰 버킷 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제2 타깃 토큰 수량을 결정하도록 구성되고,
상기 프로세서가 추가로, 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 작거나 같은지를 판정하고, 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 작거나 같은지를 판정하도록 구성되며, 그리고
상기 프로세서가 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 작거나 같고 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 작거나 같은 것으로 결정할 때, 상기 프로세서가 추가로, 제1 주기에서 상기 스케줄링 대상 패킷을 포워딩하기로 결정하고, 상기 제1 토큰 버킷으로부터 상기 제1 타깃 토큰 수량과 동일한 수량의 토큰을 공제하고, 상기 제2 토큰 버킷으로부터 상기 제2 타깃 토큰 수량과 동일한 수량을 공제하도록 구성되는 것을 포함한다.
선택적으로, 상기 프로세서가 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 크거나 또는 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 큰 것으로 결정할 때, 상기 프로세서가 추가로, 상기 제1 주기에서 상기 스케줄링 대상 패킷을 포워딩하지 않기로 결정하도록 구성된다.
선택적으로, 상기 사용자 장비의 액세스 대역폭은 상기 사용자 장비에 액세스된 총 대역폭이며, 상기 사용자 장비의 액세스 대역폭은 제1 대역폭을 포함하고, 상기 제1 대역폭은 상기 사용자 장비의 타깃 네트워크 서비스에 액세스된 대역폭을 지시하는 데 사용되며, 상기 제1 대역폭의 값은 상기 사용자 장비의 액세스 대역폭의 값보다 작으며,
상기 프로세서는 추가로, 상기 사용자 장비의 식별자를 결정하고, 상기 사용자 장비의 식별자에 기반하여 제3 보상 값을 결정하도록 - 상기 제3 보상 값은 상기 스케줄링 대상 패킷이 상기 사용자 장비에 의해 상기 타깃 네트워크 서비스로 배포된 후 상기 실제 패킷 길이에 대한 변동 추정치를 지시함 - 구성되고,
상기 프로세서가 상기 제1 패킷 길이 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 것은 구체적으로,
상기 프로세서가 상기 실제 패킷 길이 및 상기 제3 보상 값에 기반하여 제3 패킷 길이를 결정하도록 - 상기 제3 패킷 길이의 값은 상기 실제 패킷 길이와 상기 제3 보상 값의 합과 같음 - 구성되고, 그리고 상기 프로세서가 상기 제1 패킷 길이, 상기 제2 패킷 길이 및 상기 제3 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하도록 구성되는 것을 포함한다.
선택적으로, 상기 프로세서가 상기 제1 패킷 길이, 상기 제2 패킷 길이 및 상기 제3 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 것은 구체적으로,
상기 프로세서가 상기 사용자 장비에 대응하는 제1 토큰 버킷에서의 제1 나머지 토큰 수량을 획득하도록 - 상기 제1 나머지 토큰 수량은 현재 시점에 상기 제1 토큰 버킷에서의 토큰 수량과 같음 - 구성되고,
상기 프로세서가 추가로, 상기 제1 네트워크 디바이스에 대응하는 제2 토큰 버킷에서의 제2 나머지 토큰 수량을 획득하도록 - 상기 제2 나머지 토큰 수량은 현재 시점에 상기 제2 토큰 버킷에서의 토큰 수량과 같음 - 구성되며,
상기 프로세서가 추가로, 상기 타깃 네트워크 서비스에 대응하는 제3 토큰 버킷에서의 제3 나머지 토큰 수량을 획득하도록 - 상기 제3 나머지 토큰 수량은 현재 시점에 상기 제3 토큰 버킷에서의 토큰 수량과 같음 - 구성되고,
상기 프로세서가 추가로, 상기 제1 토큰 버킷 및 상기 제1 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제1 타깃 토큰 수량을 결정하고, 상기 제2 토큰 버킷 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제2 타깃 토큰 수량을 결정하며, 그리고 상기 제3 토큰 버킷 및 상기 제3 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제3 타깃 토큰 수량을 결정하도록 구성되며,
상기 프로세서가 추가로, 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 작거나 같은지를 판정하고, 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 작거나 같은지를 판정하며, 그리고 상기 제3 타깃 토큰 수량이 상기 제3 나머지 토큰 수량보다 작거나 같은지를 판정하도록 구성되고, 그리고
상기 프로세서가 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 작거나 같고, 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 작거나 같으며, 상기 제3 타깃 토큰 수량이 상기 제3 나머지 토큰 수량보다 작거나 같은 것으로 결정할 때, 상기 프로세서가 추가로, 상기 스케줄링 대상 패킷을 포워딩하기로 결정하고, 상기 제1 토큰 버킷으로부터 상기 제1 타깃 토큰 수량과 동일한 수량의 토큰을 공제하며, 상기 제2 토큰 버킷으로부터 상기 제2 타깃 토큰 수량과 동일한 수량의 토큰을 공제하고, 상기 제3 토큰 버킷으로부터 상기 제3 타깃 토큰 수량과 동일한 수량의 토큰을 공제하도록 구성되는 것을 포함한다.
선택적으로, 상기 프로세서는 추가로, 상기 사용자 장비의 식별자에 기반하여 제3 보상 알고리즘을 결정하고, 상기 실제 패킷 길이 및 상기 제3 보상 알고리즘에 기반하여 상기 제3 보상 값을 결정하도록 구성된다.
선택적으로, 상기 제1 네트워크 디바이스가 비동기 전송 모드(asynchronous transfer mode, ATM)에 기반한 네트워크 디바이스일 때, 상기 제1 보상 값은 상기 실제 패킷 길이의 값과 ATM 셀 길이의 값의 몫에 ATM 셀 길이 헤더의 길이 값을 곱한 값과 같다.
제3 측면에 따르면, 본 출원은 네트워크 디바이스를 제공하며, 상기 네트워크 디바이스는, 프로세서; 통신 인터페이스; 및 메모리를 포함한다. 상기 메모리는 명령을 저장하도록 구성되며, 상기 프로세서는 상기 명령을 실행하도록 구성되고, 상기 통신 인터페이스는 데이터를 수신하거나 송신하도록 구성된다. 상기 명령을 실행할 때, 상기 프로세서는 제1 측면 또는 제1 측면의 임의의 가능한 구현에 설명된 방법을 수행한다.
제4 측면에 따르면, 본 출원은 비 일시적 컴퓨터 저장 매체를 제공하며, 상기 비 일시적 컴퓨터 저장 매체는 패킷 스케줄링에 사용되는 컴퓨터 프로그램을 저장하고, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 때, 제1 측면 또는 제1 측면의 임의의 가능한 구현에 설명된 방법이 구현된다.
본 발명의 실시 예의 기술적 솔루션을 보다 명확하게 설명하기 위해, 이하에서는 실시 예를 설명하기 위한 첨부된 도면을 간략하게 설명한다. 명백히, 이하의 설명에서 첨부된 도면은 본 발명의 실시 예의 일부를 도시하고, 당업자는 창의적인 노력없이 이러한 첨부된 도면으로부터 다른 도면을 여전히 도출할 수 있다.
도 1은 본 출원의 실시 예에 따른 광대역 액세스 네트워크의 개략적인 구조도이다.
도 2는 본 출원의 실시 예에 따른 패킷 스케줄링 방법의 개략적인 흐름도이다.
도 3은 본 출원의 실시 예에 따른 광대역 액세스 네트워크의 개략적인 구조도이다.
도 4는 본 출원의 실시 예에 따른 다른 광대역 액세스 네트워크의 개략적인 구조도이다.
도 5는 본 출원의 실시 예에 따른 패킷 스케줄링 장치의 개략적인 구조도이다.
도 6은 본 출원의 실시 예에 따른 패킷 스케줄링 디바이스의 개략적인 구조도이다.
다음은 첨부된 도면을 참조하여 본 출원의 실시 예를 설명한다.
대역폭은 단위 시간 내에 링크를 통과할 수 있는 데이터의 양이며, 단위는 초당 비트(bit per second, bit/s)이며, 일반적으로 초당 메가 비트(megabit per second, Mbps)로 표시된다. 실제 네트워크 대역폭 관리 중에, 사용자의 트래픽은 미리 설정된 대역폭으로 제한될 수 있으며, 네트워크 디바이스의 트래픽이 정격 대역폭(rated bandwidth)을 초과하는지를 판정하려면 토큰 버킷(token bucket) 알고리즘을 계산에 사용해야 한다. 토큰 버킷 알고리즘 메커니즘은 다음과 같다: 도 1은 광대역 액세스 네트워크의 개략적인 구조도이다. 사용자 장비는 제1 네트워크 디바이스를 사용하여 액세스 디바이스에 연결된다. 액세스 디바이스는 광대역 네트워크의 액세스 게이트웨이이며, 백본 네트워크의 에지 계층에 위치되고, 광대역 액세스 네트워크 디바이스를 백본 네트워크에 연결할 수 있으며, 액세스 네트워크 디바이스의 대역폭을 관리할 수 있다. 액세스 디바이스는 액세스 디바이스가 관리해야 하는 대역폭을 가지는 하나 이상의 디바이스 각각에 대응하는 토큰 버킷을 포함하며, 각 토큰 버킷에서의 하나의 토큰은 대응하는 디바이스의 인터페이스가 1 비트의 데이터 또는 1 바이트의 데이터를 송신 또는 수신할 수 있도록 한다. 본 출원의 이 실시 예에서, 하나의 토큰이 인터페이스가 1 바이트의 데이터를 수신하도록 하는 것이 설명을 위한 예로서 사용된다. 디바이스의 인터페이스가 1 바이트의 데이터를 수신할 때, 디바이스에 대응하는 토큰 버킷으로부터 하나의 토큰을 제거해야 한다. 디바이스에 대응하는 토큰 버킷의 토큰 수량이 데이터를 수신하기 위해 디바이스에 의해 제거되어야 하는 토큰 수량보다 작으면, 디바이스가 데이터를 수신하면 디바이스의 대역폭이 디바이스의 액세스 대역폭을 초과한다. 하나의 토큰이 인터페이스가 1 바이트의 데이터를 수신하도록 허용하면, 디바이스의 액세스 대역폭의 값이 디바이스에 대응하는 토큰 버킷에 매초 주입되는 토큰 수량의 8배이다.
구체적으로, 예를 들어, 액세스 디바이스는 사용자 장비의 액세스 대역폭에 대한 대역폭 관리를 수행한다. 액세스 디바이스는 사용자 장비에 대응하는 제1 토큰 버킷 및 제1 네트워크 디바이스에 대응하는 제2 토큰 버킷을 포함한다. 네트워크 측에서 사용자 장비로 송신된 스케줄링 대상 패킷을 수신할 때, 액세스 디바이스는 스케줄링 대상 패킷의 실제 패킷 길이를 획득하고, 제1 토큰 버킷과 실제 패킷 길이에 기반하여 스케줄링 대상 패킷을 포워딩하는 데 사용되어야 하는 제1 타깃 토큰 수량을 결정하며, 그 다음에 제1 토큰 버킷에서의 제1 나머지 토큰 수량을 획득한다. 제1 타깃 토큰 수량이 제1 토큰 버킷에서의 제1 나머지 토큰 수량보다 작거나 같으면, 이는 사용자 장비가 스케줄링 대상 패킷을 수신할 때 사용자 장비의 실제 대역폭이 사용자 장비의 액세스 대역폭을 초과하지 않음을 지시하며, 스케줄링 대상 패킷을 포워딩할 때, 액세스 디바이스는 제1 토큰 버킷으로부터, 실제 패킷 길이를 보내기 위해 소모되어야(consume) 하는 토큰의 수량을 공제한다(deduct). 토큰은 토큰 버킷에서 제거될 수 있을 뿐만 아니라 또한 토큰 버킷에 추가될 수 있으며, 토큰을 토큰 버킷에 추가하는 비율(rate)을 제어하는 것에 의해 사용자 장비의 액세스 대역폭이 제어된다는 것을 이해할 수 있다. 예를 들어, 사용자 장비의 액세스 대역폭은 8000bit/s이다. 사용자 장비에 대응하는 제1 토큰 버킷에 매초 1000개의 토큰이 추가되고 사용자 장비에 대응하는 제1 토큰 버킷의 최대 토큰 수량이 1000개를 초과하지 않는 것이 보장되면, 사용자 장비의 실제 대역폭이 사용자 장비의 액세스 대역폭을 초과하지 않는다는 것이 보장될 수 있다.
전술한 예에서, 액세스 디바이스는 액세스 디바이스가 수신한 스케줄링 대상 패킷의 실제 패킷 길이에 기반하여, 스케줄링 대상 패킷을 포워딩할 때 제1 토큰 버킷으로부터 공제되어야 하는 제1 타깃 토큰 수량을 결정한다. 예를 들어, 실제 패킷 길이가 240 바이트이면, 액세스 디바이스는 스케줄링 대상 패킷을 포워딩할 때 제1 토큰 버킷으로부터 240개의 토큰을 공제한다. 그러나, 패킷 전송 과정에서, 서로 다른 디바이스들은 네트워크 프로토콜에 기반하여 패킷에 대해 서로 다른 처리를 수행하므로 패킷 길이가 변경된다. 예를 들어, 도 1에 도시된 네트워크에서, 사용자 장비의 액세스 대역폭이 8000bit/s이면, 제1 네트워크 디바이스는 디지털 가입자 회선 액세스 멀티플렉서(digital subscriber line access multiplexer, DSLAM)이고, DSLAM은 비동기 전송 모드(asynchronous transfer mode, ATM)을 사용하며, 스케줄링 대상 패킷이 DSLAM으로 전송될 때, DSLAM은 스케줄링 대상 패킷을 5개의 48 바이트 ATM 셀로 분할(segment)하며, 그 다음에 길이가 5 바이트인 셀 헤더를 각 ATM 셀에 캡슐화하여(encapsulate), 53 바이트 셀을 획득한다. 앞서 언급한 240바이트 패킷이 DSLAM을 통과한 후, 240×5/48 = 25 바이트가 추가된다. 240 바이트의 스케줄링 대상 패킷이 DSLAM에 의해 포워딩된 후, 사용자 장비가 수신한 스케줄링 대상 패킷의 패킷 길이는 265 바이트이다. 사용자 장비의 대역폭은 사용자 장비가 수신한 데이터의 양에 기반하여 측정된다. 액세스 디바이스가 사용자 장비에 대응하는 액세스 대역폭에 기반하여 매초마다 8000 비트(다시 말해서, 1000 바이트)의 데이터를 포워딩하면, 사용자 장비가 매초마다 실제로 수신하는 데이터는 8000 비트를 초과하고, 사용자 장비에 대응하는 실제 대역폭은 사용자 장비의 액세스 대역폭을 초과한다.
전술한 문제를 해결하기 위해, 액세스 디바이스는 수신된 스케줄링 대상 패킷을 포워딩할 때 스케줄링 대상 패킷의 실제 패킷 길이를 보상하여 스케줄링 대상 패킷의 스케줄링 길이를 획득한다. 스케줄링 길이는 사용자 장비가 스케줄링 대상 패킷을 수신할 때 액세스 디바이스가 고려하는 패킷 길이이며, 구체적으로 액세스 디바이스는 수신된 스케줄링 대상 패킷의 실제 패킷 길이의 값에 기반하여 특정 바이트 길이를 더하거나 뺀다. 액세스 디바이스는 스케줄링 길이와 제1 토큰 버킷의 토큰 수량에 따라 스케줄링 대상 패킷을 포워딩할지를 판정하고, 스케줄링 대상 패킷을 포워딩하기로 결정할 때, 제1 토큰 버킷으로부터 제거해야 하는 제1 타깃 토큰 수량을 결정한다. 본 출원의 이 실시 예에서, 더해지거나 감산된 바이트 길이의 값을 보상 값(compensation value)이라고 한다. 스케줄링 대상 패킷을 포워딩할 때, 액세스 디바이스는 사용자 장비에 대응하는 스케줄링 길이에 기반하여, 사용자 장비에 대응하는 제1 토큰 버킷으로부터 토큰을 제거하여, 사용자 장비의 실제 대역폭이 액세스 대역폭을 초과하는 것을 방지한다. 예를 들어, 전술한 예에서, 액세스 디바이스가 길이가 240 바이트이면서 또한 사용자 장비로 포워딩되어야 하는 스케줄링 대상 패킷을 수신한 후, 액세스 디바이스는 스케줄링 대상 패킷의 실제 패킷 길이에 기반하여 25 바이트를 보상하고, 사용자 장비에 대응하는 스케줄링 길이로 265바이트를 사용한다. 스케줄링 대상 패킷을 포워딩할 때, 액세스 디바이스는 제1 토큰 버킷으로부터 265 바이트에 대응하는 토큰을 제거한다. 이러한 방식으로, 매초마다 액세스 디바이스가 송신하는 데이터가 8000 비트보다 작고, 사용자 장비가 수신하는 데이터가 8000 비트보다 큰 것이 보장될 수 있어서, 사용자 장비의 액세스 대역폭을 관리할 수 있다. 수신된 스케줄링 대상 패킷의 제1 패킷 길이에 대해 액세스 디바이스에 의해 수행되는 보상은 스케줄링 대상 패킷 또는 스케줄링 대상 패킷의 실제 패킷 길이를 변경하지 않는다는 점에 유의해야 한다. 보상 값은 수신된 제1 패킷 길이와 보상 값에 기반하여, 사용자 장비에 대응하는 스케줄링 길이를 획득하기 위해 액세스 디바이스에서만 사용되며, 스케줄링 대상 패킷의 실제 패킷 길이는 변경되지 않는다. 스케줄링 대상 패킷을 스케줄링할 때, 액세스 디바이스는 스케줄링 길이에 기반하여 실제 패킷 길이가 240 바이트인 패킷을 265 바이트 패킷으로 스케줄링하므로, 사용자 장비에 대응하는 제1 토큰 버킷으로부터 265개의 토큰을 제거할 수 있다.
현재, 네트워크에서 계층적 대역폭 관리를 수행할 때, 액세스 디바이스는 수신된 스케줄링 대상 패킷에 대해서만 통합 패킷 보상(unified packet compensation)을 수행할 수 있다. 사용자 장비에 대응하는 보상 값을 결정한 후, 액세스 디바이스는 사용자 장비에 대응하는 보상 값을, 스케줄링 대상 패킷의 포워딩 경로 상에서 액세스 디바이스와 사용자 장비 사이에 위치한 다른 디바이스의 보상 값으로 사용한다. 다시 말해서, 스케줄링 대상 패킷의 포워딩 경로 상에서 액세스 디바이스와 사용자 장비 사이에 위치한 다른 디바이스의 대역폭 관리 중에, 다른 디바이스의 대역폭은 사용자 장비에 대응하는 스케줄링 길이에 기반하여 균일하게 관리된다. 예를 들어, 액세스 디바이스가 240 바이트의 스케줄링 대상 패킷을 수신하는 경우, 액세스 디바이스는 사용자 장비에 대응하는 제1 토큰 버킷에 기반하여 스케줄링 대상 패킷을 스케줄링할 때 스케줄링 대상 패킷의 패킷 길이에 대해 25 바이트를 보상하며, 제1 네트워크 디바이스의 대역폭을 관리할 때, 액세스 디바이스는 또한 제1 네트워크 디바이스의 스케줄링 길이를 265 바이트로 설정한다. 이 경우, 스케줄링 대상 패킷을 포워딩할 때, 액세스 디바이스는 사용자 장비에 대응하는 제1 토큰 버킷과 제1 네트워크 디바이스에 대응하는 제2 토큰 버킷 각각으로부터 265개의 토큰을 제거한다.
그러나, 네트워크의 계층적 대역폭 관리 시스템에서, 액세스 디바이스와 사용자 장비 사이의 서로 다른 디바이스는 서로 다른 대역폭 요건을 갖는다. 따라서, 계층적 대역폭 관리 중에 액세스 디바이스와 사용자 장비 사이의 서로 다른 디바이스의 패킷 길이를 별도로 보상해야 한다. 그러나, 종래 기술에서는 서로 다른 디바이스에 대해 통합된 보상만을 수행할 수 있으며, 따라서 네트워크에서 서로 다른 디바이스의 대역폭을 별도로 관리해야 하는 요건을 충족할 수 없다. 예를 들어, 도 1에 도시된 시나리오에서, 사용자 장비의 대역폭의 정확성(correctness)을 보장하기 위해, 제1 네트워크 디바이스는 단지 사용자 장비에 대응하는 보상 값에 기반하여 보상될 수 있다. 결과적으로, 제1 네트워크 디바이스에 대한 대역폭 관리가 부정확하고, 제1 네트워크 디바이스의 대역폭이 제1 네트워크 디바이스의 액세스 대역폭을 초과하거나 또는 제1 네트워크 디바이스의 대역폭 활용이 감소된다. 예를 들어, 실제 네트워크에서, 액세스 디바이스가 포워딩하고 제1 네트워크 디바이스가 수신하는 스케줄링 대상 패킷의 패킷 길이는 265 바이트가 아니라 254 바이트이다. 스케줄링 대상 패킷을 포워딩할 때, 액세스 디바이스는 제1 네트워크 디바이스에 대응하는 제2 토큰 버킷으로부터 265개의 토큰을 제거한다. 액세스 디바이스에 의해 제2 토큰 버킷에서 제거된 토큰의 수량은 제1 네트워크 디바이스가 실제로 수신한 스케줄링 대상 패킷의 패킷 길이의 값보다 크다. 제1 네트워크 디바이스의 액세스 대역폭이 100Mbps이고, 제1 네트워크 디바이스가 254 바이트의 데이터를 수신할 때 제2 토큰 버킷으로부터 265개의 토큰이 제거되면, 제1 네트워크 디바이스가 1초에서 수신할 수 있는 최대 데이터 양은 100Mbit보다 작으며, 결과적으로 액세스 디바이스와 제1 네트워크 디바이스 사이의 링크 대역폭 활용이 감소하고, 제1 네트워크 디바이스의 실제 대역폭이 제1 네트워크 디바이스의 액세스 대역폭보다 작다. 실제 네트워크에서, 제1 네트워크 디바이스가 실제로 수신한 스케줄링 대상 패킷의 길이가 265 바이트보다 크고, 액세스 디바이스가 여전히 제1 네트워크 디바이스의 스케줄링 길이로 265 바이트를 사용하여 제2 토큰 버킷으로부터 265개의 토큰을 제거하면, 제2 토큰 버킷에서 액세스 디바이스에 의해 제거된 토큰의 수량은 제1 네트워크 디바이스가 데이터를 수신할 때 실제로 소모되어야 하는 토큰의 수량보다 작으며, 결과적으로 100Mbit에 대응하는 토큰을 사용하여 수신할 수 있는 데이터는 1000Mbit보다 크고, 제1 네트워크 디바이스의 실제 대역폭은 제1 네트워크 디바이스의 액세스 대역폭보다 크다는 것을 이해할 수 있다. 전술한 분석을 기반으로, 종래 기술에서는 사용자 장비의 대역폭의 정확성을 보장하기 위해 설정된 보상 값을 액세스 디바이스와 사용자 장비 사이의 다른 디바이스의 보상 값으로 사용하며, 결과적으로 다른 디바이스의 실제 대역폭이 대응하는 디바이스의 액세스 대역폭보다 작거나 이를 초과하여, 부정확한 대역폭 관리가 발생한다.
전술한 문제를 해결하기 위해 본 출원은 패킷 스케줄링 방법을 제공한다. 액세스 디바이스는 수신된 스케줄링 대상 패킷의 포워딩 경로를 결정하고, 포워딩 경로 상의 각 디바이스에 대응하는 보상 값을 획득하며, 각 디바이스에 대응하는 보상 값과 액세스 디바이스가 수신한 스케줄링 대상 패킷의 실제 패킷 길이에 기반하여, 각 디바이스에 대응하는 스케줄링 길이를 결정하며, 그리고 최종적으로 포워딩 경로 상의 각 디바이스에 대응하는 스케줄링 길이에 기반하여 스케줄링 대상 패킷을 스케줄링할 수 있다.
도 2는 본 출원의 실시 예에 따른 패킷 스케줄링 방법의 개략적인 흐름도이다. 이 방법은 다음 단계를 포함한다.
S102: 액세스 디바이스가 스케줄링 대상 패킷을 수신하며, 스케줄링 대상 패킷의 실제 패킷 길이를 획득한다.
본 출원의 이 실시 예에서, 스케줄링 대상 패킷은 네트워크 측에 의해 사용자 장비로 송신되는 패킷이다. 네트워크 측에서 송신한 스케줄링 대상 패킷을 수신한 후, 액세스 디바이스는 스케줄링 대상 패킷의 실제 패킷 길이를 획득해야 한다. 실제 패킷 길이는 스케줄링 대상 패킷의 총(total) 길이를 지시하며(indicate), 실제 패킷 길이는 사용자 데이터의 길이와 패킷 헤더의 길이를 포함한다.
S104: 액세스 디바이스는 스케줄링 대상 패킷에 기반하여 제1 보상 값 및 제2 보상 값을 결정한다.
본 출원의 이 실시 예에서, 패킷 스케줄링 방법은 도 1에 도시된 시나리오를 사용하여 계속 설명된다. 제1 보상 값은 스케줄링 대상 패킷이 제1 네트워크 디바이스에 의해 포워딩된 후 실제 패킷 길이에 대한 변동 추정치(estimate of a variation)를 지시하고, 제2 보상 값은 스케줄링 대상 패킷이 액세스 디바이스에 의해 포워딩된 후 실제 패킷 길이에 대한 변동 추정치를 지시하며, 제1 네트워크 디바이스는 스케줄링 대상 패킷의 포워딩 경로 상에서 액세스 디바이스와 사용자 장비 사이에 위치한 네트워크 디바이스이다. 스케줄링 대상 패킷이 제1 네트워크 디바이스에 의해 포워딩된 후, 스케줄링 대상 패킷은 사용자 장비에 의해 수신되며, 따라서, 제1 보상 값은 사용자 장비가 수신한 제1 스케줄링 패킷의 길이와 실제 패킷 길이 사이의 차이의 추정 값이며, 제2 보상 값은 제1 네트워크 디바이스가 수신한 제2 스케줄링 패킷의 길이와 실제 패킷 길이의 차이의 추정 값이다. 예를 들어, 액세스 디바이스가 수신한 스케줄링 대상 패킷의 실제 패킷 길이는 240 바이트이고, 액세스 디바이스는 스케줄링 대상 패킷의 포워딩 경로 상의 사용자 장비에 DSLAM이 연결되어 있는 것으로 결정한다. 이 경우, 액세스 디바이스는 실제 패킷 길이 및 DSLAM의 패킷 처리 방식에 기반한 추정을 통해, DSLAM에 의해 스케줄링 대상 패킷이 처리된 후 획득된 패킷 길이가 25 바이트 증가한 것으로 결정하고, 액세스 디바이스는 제1 보상 값으로 25를 사용한다.
본 출원의 이 실시 예에서, 액세스 디바이스는 사용자 장비에 의해 수신된 제1 스케줄링 패킷의 패킷 길이 및 제1 네트워크 디바이스에 의해 수신된 제2 스케줄링 패킷의 패킷 길이를 직접 획득할 수 없으며, 제1 보상 값 및 제2 보상 값을 획득하는 것에 의해서만, 사용자 장비 및 제1 네트워크 디바이스에 의해 수신된 패킷의 패킷 길이를 추정할 수 있음을 유의한다.
본 출원의 이 실시 예에서, 액세스 디바이스는 대역폭 관리 시스템에서 다양한 디바이스 식별자에 대응하는 보상 값 또는 보상 값을 계산하기 위한 보상 알고리즘을 저장한다. 스케줄링 대상 패킷을 수신한 후, 액세스 디바이스는 수신된 스케줄링 대상 패킷에 기반하여, 스케줄링 대상 패킷을 사용자 장비로 포워딩하기 위한 포워딩 경로를 획득하며 - 포워딩 경로는 액세스 디바이스의 식별자 및 제1 네트워크 디바이스의 식별자를 포함함 -, 그 다음에 제1 네트워크 디바이스의 식별자에 기반하여 제1 보상 값을 결정하고, 액세스 디바이스의 식별자에 기반하여 제2 보상 값을 결정한다. 네트워크에서 디바이스의 식별자에 기반하여 결정되는 보상 값은 포워딩 경로 상의 상기 디바이스의 다음 레벨에 있는 디바이스의 대역폭을 관리할 때 요구되는 보상 값이라는 점에 유의해야 한다. 예를 들어, 제1 네트워크 디바이스의 식별자에 기반하여 결정된 제1 보상 값은 사용자 장비의 대역폭을 관리할 때 필요한 보상 값이고, 액세스 디바이스의 식별자에 기반하여 결정된 제2 보상 값은 제1 네트워크 디바이스의 대역폭을 관리할 때 필요한 보상 값이다.
구체적으로, 제1 네트워크 디바이스의 식별자는 특정 보상 값에 대응할 수도 있고, 또는 보상 알고리즘에 대응할 수도 있으며, 또는 액세스 디바이스의 식별자는 특정 보상 값에 대응할 수도 있고, 또는 보상 알고리즘에 대응할 수도 있다. 제1 네트워크 디바이스의 식별자가 특정 보상 값에 대응하면, 액세스 디바이스는 보상 값을 제1 보상 값으로 직접 사용한다. 액세스 디바이스의 식별자가 특정 보상 값에 대응하면, 액세스 디바이스는 보상 값을 제2 보상 값으로 직접 사용한다. 액세스 디바이스의 식별자 및/또는 제1 네트워크 디바이스의 식별자가 보상 알고리즘에 대응하면, 액세스 디바이스는 보상 알고리즘에 기반하여 보상 값을 계산한다.
예를 들어, 도 3은 비대칭 디지털 가입자 회선(asymmetric digital subscriber line, ADSL)을 사용하는 광대역 액세스 네트워크의 개략도이다. 도 3에 도시된 시나리오에서, 액세스 디바이스는 광대역 원격 액세스 서버(broadband remote access server, BRAS)일 수 있고, 제1 네트워크 디바이스는 DSLAM일 수 있으며, DSLAM은 ADSL 액세스 네트워크에서 비동기 전송 모드(asynchronous transfer mode)를 사용한다. 240 바이트의 스케줄링 대상 패킷을 수신한 후, 액세스 디바이스는 액세스 디바이스에서 사용자 장비로 전송될 때 스케줄링 대상 패킷이 제1 네트워크 디바이스와 액세스 디바이스를 통과하는 것으로 결정하고, 액세스 디바이스는 DSLAM의 식별자에 기반하여 DSLAM이 보상 알고리즘에 대응하는 것으로 결정한다. DSLAM에 대응하는 보상 알고리즘은 실제 패킷 길이 × 5/ATM 셀 길이이다. 실제 패킷 길이가 240 바이트이고 ATM 셀 길이가 48 바이트이면, 제1 네트워크 디바이스의 식별자에 기반하여 결정된 제1 보상 값은 25이다. 보상 알고리즘의 원리는 앞의 예를 참조한다. 자세한 내용은 여기에서 설명하지 않는다. BRAS는 이더넷 전송 프로토콜을 사용한다. 스케줄링 대상 패킷을 포워딩하기 전에, BRAS는 20 바이트 인터프레임 갭(interframe gap)과 14 바이트 이더넷 프레임 헤더를 스케줄링 대상 패킷으로 캡슐화한다. 20 바이트 인터프레임 갭은 전송 중에 토큰을 소비하지 않는다. 따라서, 제1 네트워크 디바이스의 경우, BRAS가 포워딩하고 제1 네트워크 디바이스가 수신하는 스케줄링 대상 패킷의 길이는 254 바이트이고, 제1 네트워크 디바이스에 대응하는 보상 값은 14이며, 다시 말해서, 특정 보상 값 14는 액세스 디바이스의 식별자에 기반하여 결정된다. 이 경우, 14는 제2 보상 값으로 사용된다.
S106: 액세스 디바이스가 제1 패킷 길이 및 제2 패킷 길이를 결정한다.
제1 패킷 길이는 액세스 디바이스가 실제 패킷 길이와 제1 보상 값에 기반하여, 사용자 장비가 수신한 제1 스케줄링 패킷의 패킷 길이를 추정한 후에 획득되며, 제1 패킷 길이의 값은 실제 패킷 길이 값과 제1 보상 값의 합과 같다(equal). 제2 패킷 길이는 액세스 디바이스가 실제 패킷 길이와 제2 보상 값에 기반하여, 제1 네트워크 디바이스가 수신한 제2 스케줄링 패킷의 패킷 길이를 추정한 후에 획득되며, 제2 패킷 길이의 값은 실제 패킷 길이 값과 제2 보상 값의 합과 같다. 예를 들어, 단계(S104의) 예에서, 액세스 디바이스가 수신한 스케줄링 대상 패킷의 실제 패킷 길이는 240 바이트이고, 제1 보상 값은 25이며, 제2 보상 값은 14이다. 이 경우, 제1 패킷 길이는 265 바이트이고, 제2 패킷 길이는 254 바이트이다.
S108: 액세스 디바이스가 제1 패킷 길이와 제2 패킷 길이에 기반하여 스케줄링 대상 패킷을 스케줄링한다.
본 출원의 이 실시 예에서, 액세스 디바이스가 스케줄링 대상 패킷을 스케줄링한다는 것은, 액세스 디바이스가 제1 패킷 길이, 제1 토큰 버킷에서의 제1 나머지 토큰 수량, 제2 패킷 길이, 및 제2 토큰 버킷에서의 제2 나머지 토큰 수량에 기반하여, 스케줄링 대상 패킷을 포워딩할지를 판정하는 것을 의미한다.
구체적으로, 액세스 디바이스는 먼저 제1 패킷 길이에 기반하여, 스케줄링 대상 패킷을 포워딩하기 위해 제1 토큰 버킷에서 제1 타깃 토큰 수량이 소모되어야 한다고 결정하고, 스케줄링 대상 패킷을 포워딩하기 위해 제2 패킷 길이에 기반하여 제2 토큰 버킷에서 제2 타깃 토큰 수량이 소모되어야 한다고 결정한다. 예를 들어, 제1 패킷 길이가 265 바이트이고 제2 패킷 길이가 254 바이트이면, 액세스 디바이스는 제1 토큰 버킷에서의 265개의 토큰과 제2 토큰 버킷에서의 254개의 토큰이 스케줄링 대상 패킷을 포워딩하기 위해 소모되어야 한다고 결정한다.
그런 다음, 액세스 디바이스는 제1 토큰 버킷에서의 제1 나머지 토큰 수량과 제2 토큰 버킷에서의 제2 나머지 토큰 수량을 획득한다. 제1 나머지 토큰 수량은 현재 시점(current moment)에 제1 토큰 버킷에 있는 토큰의 수량과 같고, 제2 나머지 토큰 수량은 현재 시점에 제2 토큰 버킷에 있는 토큰의 수량과 같다.
마지막으로, 액세스 디바이스는 제1 타깃 토큰 수량이 제1 나머지 토큰 수량보다 작거나 같은지를 판정하고, 제2 타깃 토큰 수량이 제2 나머지 토큰 수량보다 작거나 같은지를 판정한다. 액세스 디바이스가 제1 타깃 토큰 수량이 제1 나머지 토큰 수량보다 작거나 같고 제2 타깃 토큰 수량이 제2 나머지 토큰 수량보다 작거나 같다고 결정할 때, 액세스 디바이스는 제1 주기(period)에서 스케줄링 대상 패킷을 포워딩하기로 결정하고, 제1 토큰 버킷으로부터 제1 타깃 토큰 수량과 동일한 수량의 토큰을 공제하며, 제2 토큰 버킷으로부터 제2 타깃 토큰 수량과 동일한 수량의 토큰을 공제한다. 액세스 디바이스가 제1 타깃 토큰 수량이 제1 나머지 토큰 수량보다 크거나 또는 제2 타깃 토큰 수량이 제2 나머지 토큰 수량보다 크다고 결정할 때, 액세스 디바이스는 제1 주기에서 스케줄링 대상 패킷을 포워딩하지 않기로 결정한다.
본 출원에서 제공되는 패킷 스케줄링 방법에 기반하여, 네트워크에서 대역폭 관리가 필요한 각 디바이스에 대응하는 보상 값 또는 보상 알고리즘을 구성할 수 있으며, 각 디바이스의 디바이스 식별자와 보상 값 또는 보상 알고리즘 사이의 대응 관계는 각 디바이스의 대역폭을 관리하는 액세스 디바이스에 저장될 수 있다. 스케줄링 대상 패킷을 수신한 후, 액세스 디바이스는 먼저 스케줄링 대상 패킷의 목적지 어드레스에 기반하여, 스케줄링 대상 패킷이 액세스 디바이스에서 사용자 장비까지 통과하여야 하는 하나 이상의 네트워크 디바이스를 결정하고, 그 다음에 하나 이상의 디바이스에서 각 네트워크 디바이스에 대응하는 보상 값을 검색하거나 계산하여, 각 네트워크 디바이스가 수신하는 스케줄링 대상 패킷의 패킷 길이를 추정하며, 액세스 디바이스는 각 네트워크 디바이스가 수신한 스케줄링 대상 패킷의 패킷 길이의 추정 값과 각 네트워크 디바이스에 대응하는 토큰 버킷의 토큰 수량에 기반하여, 스케줄링 대상 패킷을 포워딩할 것인지를 판정한다. 패킷 길이 보상이 스케줄링 대상 패킷의 포워딩 경로 상의 각 네트워크 디바이스에 대해 별도로 수행되므로, 액세스 디바이스가 각 네트워크 디바이스의 대역폭을 보다 정확하게 관리할 수 있다.
본 출원의 이 실시 예에서, 사용자 장비의 액세스 대역폭에 대해 대역폭 관리가 수행될 때, 사용자 장비의 액세스 대역폭은 사용자 장비에 액세스된 총 대역폭이고, 총 대역폭은 사용자가 구독하는 음성 서비스 및 비디오 서비스와 같은 복수의 네트워크 서비스의 총 대역폭이다. 사용자 장비의 액세스 대역폭은 제1 대역폭을 포함하고, 제1 대역폭은 사용자 장비에 액세스된 타깃 네트워크 서비스의 대역폭을 지시하는 데 사용되며, 제1 대역폭의 값은 사용자 장비의 액세스 대역폭의 값보다 작다. 액세스 디바이스가 수신한 모든 스케줄링 대상 패킷은 사용자의 타깃 네트워크 서비스의 패킷이다. 따라서 스케줄링 대상 패킷을 수신한 후, 액세스 디바이스는 추가로, 타깃 네트워크 서비스의 대역폭을 관리해야 한다. 제1 보상 값 및 제2 보상 값을 결정하고, 제1 보상 값 및 실제 패킷 길이에 기반하여 제1 패킷 길이를 결정하며, 제2 보상 값 및 실제 패킷 길이에 기반하여 제2 보상 값을 결정하는 것 이외에, 액세스 디바이스는 추가로, 사용자 장비의 식별자를 결정하고, 사용자 장비의 식별자에 기반하여 제3 보상 값을 결정할 필요가 있다. 제3 보상 값은 사용자 장비가 타깃 네트워크 서비스로 스케줄링 대상 패킷을 배포한 후 실제 패킷 길이에 대한 변동 추정치를 지시한다. 그 다음에, 액세스 디바이스는 실제 패킷 길이와 제3 보상 값에 기반하여 제3 패킷 길이를 결정하며, 제3 패킷 길이의 값은 실제 패킷 길이와 제3 보상 값의 합과 같다. 그 다음에, 액세스 디바이스는 타깃 네트워크 서비스에 대응하는 제3 토큰 버킷에서의 제3 나머지 토큰 수량을 결정하고, 제3 토큰 버킷과 제3 패킷 길이에 기반하여 스케줄링 대상 패킷이 스케줄링될 때 사용되는 제3 타깃 토큰 수량을 결정한다. 제3 나머지 토큰 수량은 현재 시점에 제3 토큰 버킷에서의 토큰 수량과 같다. 최종적으로, 액세스 디바이스가 제1 타깃 토큰 수량이 제1 나머지 토큰 수량보다 작거나 같고, 제2 타깃 토큰 수량은 제2 나머지 토큰 수량보다 작거나 같으며, 제3 타깃 토큰 수량이 제3 나머지 토큰 수량보다 작거나 같다고 결정할 때, 액세스 디바이스는 스케줄링 대상 패킷을 포워딩하기로 결정하고, 제1 토큰 버킷으로부터 제1 타깃 토큰 수량과 동일한 수량의 토큰을 공제하며, 제2 토큰 버킷으로부터 제2 타깃 토큰 수량과 동일한 수량의 토큰을 공제하고, 제3 토큰 버킷으로부터 제3 타깃 토큰 수량과 동일한 수량의 토큰을 공제한다.
가능한 구현에서, 도 4는 광섬유 액세스(optical fiber access)를 사용하는 광대역 액세스 네트워크의 개략도이다. 도 4에서, 사용자 장비는 제1 네트워크 디바이스에 연결되고, 제1 네트워크 디바이스는 제2 네트워크 디바이스에 연결되며, 제2 네트워크 디바이스는 액세스 디바이스에 연결된다. 따라서, 도 4에 도시된 광섬유 액세스 네트워크에서, 사용자 장비로 포워딩해야 하는 스케줄링 대상 패킷을 수신한 후, 액세스 디바이스는 제1 네트워크 디바이스의 식별자에 기반하여 제1 보상 값을 결정하고, 액세스 디바이스의 식별자에 기반하여 제2 보상 값을 결정하며, 사용자 장비의 식별자에 기반하여 제3 보상 값을 결정하고, 제2 네트워크 디바이스의 식별자에 기반하여 제4 보상 값을 결정한다. 제1 보상 값은 스케줄링 대상 패킷이 제1 네트워크 디바이스에 의해 포워딩된 후 사용자 장비에 의해 수신된 제1 스케줄링 패킷의 패킷 길이의 실제 패킷 길이에 대한 변동 추정치를 지시하고, 제2 보상 값은 스케줄링 대상 패킷이 액세스 디바이스에 의해 포워딩된 후 제2 네트워크 디바이스에 의해 수신된 제2 스케줄링 패킷의 패킷 길이의 실제 패킷 길이에 대한 변동 추정치를 지시하며, 제3 보상 값은 스케줄링 대상 패킷이 사용자 장비에 의해 타깃 네트워크 서비스에 배포될 때 획득된 제3 스케줄링 패킷의 패킷 길이의 실제 패킷 길이에 대한 변동 추정치를 지시하고, 제4 보상 값은 스케줄링 대상 패킷이 제2 네트워크 디바이스에 의해 포워딩된 후 제1 네트워크 디바이스에 의해 수신된 제4 스케줄링 패킷의 패킷 길이의 실제 패킷 길이에 대한 변동 추정치를 지시한다.
가능한 실시 예에서, 도 4의 액세스 디바이스는 BRAS일 수 있고, 제1 네트워크 디바이스는 DSLAM일 수 있고, DSLAM 디바이스는 광섬유 액세스 네트워크에서 인터넷 프로토콜(Internet Protocol, IP)을 사용해야 하며 그리고 이더넷 상향링크 인터페이스를 제공한다. IP 프로토콜을 사용하고 이더넷 상향링크 인터페이스를 제공하는 DSLAM 디바이스를 IP-DSLAM이라고 한다. 제2 네트워크 디바이스는 애그리게이션 스위치와 같은 애그리게이션 디바이스이다. 도 4에 도시된 시나리오에서, 액세스 디바이스가 결정한 제1 보상 값은 0이고, 제2 보상 값은 8이며, 제3 보상 값은 0이고, 제4 보상 값은 4이다. 이는 광섬유 액세스 시나리오에서 애그리게이션(aggregation) 스위치가 액세스 디바이스의 802.1Q(802.1Q에서 802.1Q, QINQ) 인터페이스에서 802.1Q(여기서 802.1Q는 전기 및 전자 엔지니어 협회(Institute of Electrical and Electronics Engineers, IEEE) 802.1Q 프로토콜)에 액세스하기 때문이다. BRAS가 스케줄링 대상 패킷을 수신하고 스케줄링 대상 패킷을 포워딩할 수 있다고 결정할 때, 액세스 디바이스는 두 계층의 가상 근거리 통신망(virtual local area network, VLAN) 태그(tag)를 스케줄링 대상 패킷에 추가하고, 그 다음에 스케줄링 대상 패킷을 애그리게이션 스위치로 포워딩한다. 두 계층의 VLAN 태그에서의 내부 계층 태그(inner-layer tag)와 외부 계층 태그(outer-layer tag)는 각각 4 바이트이다. BRAS가 수신한 스케줄링 대상 패킷의 실제 패킷 길이가 240 바이트이면, BRAS가 스케줄링 대상 패킷을 포워딩한 후 애그리게이션 스위치가 수신한 제2 스케줄링 패킷의 패킷 길이는 248 바이트이고, 실제 패킷 길이에 대한 변동 추정치는 8이다. 다시 말해서, 제2 보상 값은 8이다. BRAS가 포워딩한 스케줄링 대상 패킷을 수신한 후, 애그리게이션 스위치는 4 바이트 외부 계층 VLAN 태그를 완전히 제거한다(strips out). 따라서, 스케줄링 대상 패킷이 애그리게이션 스위치에 의해 포워딩된 후 IP-DSLAM이 수신한 제4 스케줄링 패킷의 패킷 길이는 244 바이트이고, 실제 패킷 길이에 대한 변동 추정치는 4이다. 다시 말해서, 제4 보상 값은 4이다. 애그리게이션 스위치에 의해 포워딩된 스케줄링 대상 패킷을 수신한 후, IP-DSLAM은 4 바이트 내부 계층 VLAN 태그를 완전히 제거한다. 따라서, IP-DSLAM에 의해 스케줄링 대상 패킷이 포워딩된 후 사용자 장비가 수신한 제1 스케줄링 패킷의 패킷 길이는 240 바이트이고, 실제 패킷 길이에 대한 변동 추정치는 0이다. 다시 말해서, 제2 보상 값은 0이다. 스케줄링 대상 패킷을 수신한 후, 사용자 장비는 패킷 처리를 중지하고 패킷을 대응하는 타깃 네트워크 서비스에 직접 배포한다. 따라서, 제3 보상 값도 0이다. 전술한 제1 네트워크 디바이스, 제2 네트워크 디바이스 및 액세스 디바이스의 유형은 단지 예시일 뿐이며 특정 제한으로 이해될 수 없음을 이해할 수 있다. 예를 들어, IP-DSLAM은 다르게는, 광선 단말(optical line terminal, OLT)일 수 있다.
본 출원의 이 실시 예에서, 보상 값은 네트워크 내의 각 디바이스의 전송 프로토콜에 기반하여 결정되고, 보상 값은 양수, 음수 또는 0일 수 있다. 예를 들어, 도 4에 도시된 시나리오에서, BRAS는 802.ad 프로토콜을 사용하기 때문에, BRAS는 두 계층의 VLAN 태그를 스케줄링 대상 패킷에 추가해야 하며, 따라서, BRAS의 식별자에 기반하여 결정되는 제2 보상 값은 4이다. 또 다른 예로, 네트워크에서 터널 기술을 사용하여 데이터를 전송하면, 터널의 시작 노드는 터널 프로토콜에 기반하여 18 바이트 프레임 헤더를 사용자 데이터로 캡슐화하며, 그 다음에 사용자 데이터를 터널을 사용하여 사용자 장비로 송신한다. 터널 기술을 사용하여 송신되고 BRAS가 수신한 스케줄링 대상 패킷의 실제 패킷 길이가 240 바이트이고 터널의 끝(end) 노드가 사용자 장비이면, 사용자 장비는 터널 프로토콜에 기반하여 캡슐화된 18 바이트 프레임 헤더를 삭제하고, 사용자 데이터를 대응하는 타깃 네트워크 서비스에 배포한다. 다시 말해서, 타깃 네트워크 서비스가 수신하는 패킷의 길이는 222 바이트이고, 사용자 장비의 식별자에 기반하여 결정되는 대응하는 보상 값은 -18이다. 패킷이 전송 과정에서 각 네트워크 디바이스를 통과할 때, 각 네트워크 디바이스에 의한 패킷 수정은 완전히 동일하지 않음을 이해할 수 있다. 각 네트워크 디바이스에 의한 패킷 수정은, 인터프레임 갭 추가, 패킷 헤더 추가, 패킷 프리앰블 추가, 가상 근거리 통신망 태그 추가, 인터프레임 갭 삭제, 패킷 헤더 삭제, 패킷 프리앰블 삭제 또는 가상 근거리 통신망 태그 삭제 중 하나 이상을 포함하며, 이에 제한되지 않는다. 따라서 네트워크 디바이스에 대응하는 보상 값이 완전히 동일하지는 않다. 전술한 실시 예에서의 보상 값은 단지 예시로서 사용된 것이며, 특정 제한으로 이해될 수 없다.
선택적으로, 보상 값은 네트워크의 각 디바이스에서 사용하는 전송 프로토콜에 기반하여 결정된다. 그러나, 특정 광대역 액세스 네트워크의 경우, 각 디바이스는 특정 전송 프로토콜을 사용한다. 따라서, 각 디바이스에 대응하여 보상 값 또는 보상 알고리즘이 결정된다. 광대역 액세스 네트워크를 구축한 후, 네트워크 관리자는 각 디바이스의 식별자와 각 디바이스의 식별자에 대응하는 보상 값 또는 보상 알고리즘을 액세스 디바이스에 구성할 수 있다. 스케줄링 대상 패킷을 수신한 후, 액세스 디바이스는 포워딩 경로 상의 각 디바이스에 대응하는 보상 값 또는 보상 알고리즘을 결정하기 위해, 스케줄링 대상 패킷의 포워딩 경로 상에서 각 디바이스의 식별자만 획득하여야 하며, 포워딩 경로 상의 각 디바이스에 대응하는 전송 프로토콜을 획득할 필요가 없다.
본 출원의 실시 예에서의 관련 네트워크 디바이스는 도 1 내지 도 4에 도시된 관련 실시 예를 참조하여 후술된다. 도 5는 본 출원의 실시 예에 따른 계층적 대역폭 관리 시스템에서의 패킷 스케줄링 장치를 나타낸다. 장치(300)는 통신 모듈(310), 처리 모듈(320) 및 저장 모듈(330)을 포함한다.
처리 모듈(320)은 장치(300)의 동작(action)을 제어하고 관리하도록 구성될 수 있다. 예를 들어, 처리 모듈(320)은 도 2의 단계(S104) 및 단계(S106) 및/또는 본 출원의 방법 실시 예에 설명된 기술의 다른 내용(content)을 수행하도록 구성된다. 통신 모듈(310)은 다른 디바이스에 의해 송신된 패킷을 수신하거나 다른 디바이스에 패킷을 송신하도록 구성된다. 예를 들어, 단계(S108)에서, 제1 타깃 토큰 수량이 제1 나머지 토큰 수량보다 작거나 같고, 제2 타깃 토큰 수량이 제2 나머지 토큰 수량보다 작거나 같다고 결정될 때, 수신된 패킷은 제1 네트워크 디바이스로 포워딩된다.
저장 모듈(330)은 프로그램 코드 및 데이터를 저장하도록 구성되며, 예를 들어, 전술한 방법 실시 예에서 각 디바이스의 디바이스 식별자와 보상 값 또는 보상 알고리즘 사이의 대응 관계를 저장한다. 처리 모듈(320)은 대응 관계에 기반하여, 각 디바이스 식별자에 대응하는 보상 값 또는 보상 알고리즘을 찾고, 보상 알고리즘에 기반하여 저장 모듈(330)에 저장된 대응하는 프로그램 코드를 호출하여, 각 디바이스에 대응하는 보상 값을 계산한다.
처리 모듈(320)은 프로세서 또는 컨트롤러일 수 있으며, 예를 들어 중앙 처리 유닛(central processing unit, CPU), 범용 프로세서, 디지털 신호 프로세서(digital signal processing, DSP), 애플리케이션-특정 집적 회로(application-specific integrated circuit, ASIC), 필드 프로그래밍 가능 게이트 어레이(field programmable gate array, FPGA) 또는 다른 프로그래밍 가능 로직 디바이스, 트랜지스터 로직 디바이스, 하드웨어 구성 요소 또는 이들의 조합일 수 있다. 처리 모듈은 본 출원에 개시된 내용을 참조하여 설명된 다양한 예시적인 로직 블록, 모듈 및 회로를 구현하거나 실행할 수 있다. 프로세서는 다르게는, 컴퓨팅 기능을 구현하는 프로세서의 조합, 예를 들어 하나 이상의 마이크로 프로세서의 조합, 또는 DSP와 마이크로 프로세서의 조합일 수 있다. 통신 모듈(310)은 통신 인터페이스, 트랜시버, 트랜시버 회로 등일 수 있다. 통신 인터페이스는 일반적인 이름이며, 하나 이상의 인터페이스를 포함할 수 있다. 저장 모듈(330)은 메모리, 또는 저장 기능을 제공하도록 구성된 다른 서비스 또는 모듈일 수 있다.
구체적으로, 장치(300)가 다양한 작동(operation)을 수행하는 특정 구현에 대해서는 전술한 방법 실시 예의 특정 작동을 참조한다. 자세한 내용은 여기에서 설명하지 않는다.
도 6은 본 출원의 실시 예에 따른 네트워크 디바이스의 개략적인 구조도이다. 네트워크 디바이스(400)는 적어도 프로세서(410), 통신 인터페이스(420) 및 메모리(430)를 포함한다. 프로세서(410), 통신 인터페이스(420) 및 메모리(430)는 버스(440)를 사용하여 서로 연결된다.
프로세서(410)는 중앙 처리 유닛(central processing unit, CPU) 또는 CPU와 하드웨어 칩의 조합과 같은 하나 이상의 범용 프로세서를 포함할 수 있다. 하드웨어 칩은 애플리케이션 특정 집적 회로(application-specific integrated circuit, ASIC), 프로그램 가능 로직 디바이스(programmable logic device, PLD) 또는 이들의 조합일 수 있다. PLD는 복합 프로그램 가능 로직 디바이스(complex programmable logic device, CPLD), 필드 프로그램 가능 게이트 어레이(field-programmable gate array, FPGA), 일반 어레이 로직(generic array logic, GAL) 또는 이들의 임의의 조합일 수 있다.
메모리(430)는 랜덤 액세스 메모리(random access memory, RAM)와 같은 휘발성 메모리(volatile memory)를 포함할 수 있다. 메모리는 또한 읽기 전용 메모리(read-only memory, ROM), 플래시 메모리(flash memory), 하드 디스크 드라이브(hard disk drive, HDD) 또는 솔리드 스테이트 드라이브(solid-state drive, SSD)와 같은 비 휘발성 메모리(non-volatile memory)를 포함할 수 있다. 메모리(430)는 전술한 유형의 메모리의 조합을 더 포함할 수 있다. 메모리(430)는 프로그램 코드 및 데이터를 저장하도록 구성될 수 있으므로, 프로세서(410)는 메모리(430)에 저장된 프로그램 코드 및 데이터를 호출하여 본 출원의 실시 예에서의 통신 모듈 및/또는 처리 모듈의 기능을 구현한다.
프로세서(410)는 다음 작동을 수행하기 위해 메모리(430)에서 관련 명령을 판독하도록 구성된다.
프로세서(410)는 통신 인터페이스를 제어하여 스케줄링 대상 패킷을 수신하며, 여기서 스케줄링 대상 패킷은 네트워크 측에 의해 사용자 장비로 송신되는 패킷이다.
프로세서(410)는 스케줄링 대상 패킷의 실제 패킷 길이를 획득하며, 실제 패킷 길이는 스케줄링 대상 패킷의 총 길이를 지시한다.
프로세서(410)는 스케줄링 대상 패킷에 기반하여 제1 보상 값 및 제2 보상 값을 결정하며, 여기서 제1 보상 값은 스케줄링 대상 패킷이 제1 네트워크 디바이스에 의해 포워딩된 후 실제 패킷 길이에 대한 변동 추정치를 지시하며, 제2 보상 값은 스케줄링 대상 패킷이 액세스 디바이스에 의해 포워딩된 후 실제 패킷 길이에 대한 변동 추정치를 지시하고, 제1 네트워크 디바이스는 스케줄링 대상 패킷의 포워딩 경로 상에서 액세스 디바이스와 사용자 장비 사이에 위치된 네트워크 디바이스이다.
프로세서(410)는 제1 패킷 길이 및 제2 패킷 길이를 결정하며, 여기서 제1 패킷 길이의 값은 실제 패킷 길이와 제1 보상 값의 합과 같고, 제2 패킷 길이의 값은 실제 패킷 길이 값과 제2 보상 값의 합과 같다.
프로세서(410)는 제1 패킷 길이 및 제2 패킷 길이에 기반하여 스케줄링 대상 패킷을 스케줄링한다.
구체적으로, 네트워크 디바이스가 다양한 작동을 수행하는 특정 구현에 대해서는 전술한 방법 실시 예의 특정 작동을 참조한다. 자세한 내용은 여기에서 설명하지 않는다.
본 발명의 실시 예는 비 일시적 컴퓨터 저장 매체를 더 제공한다. 비 일시적 컴퓨터 저장 매체는 명령을 저장한다. 명령이 프로세서 상에서 실행될 때, 전술한 방법 실시 예의 방법 단계가 구현될 수 있다. 비 일시적 컴퓨터 저장 매체의 프로세서에 의해 방법 단계를 수행하는 특정 구현에 대해서는 전술한 방법 실시 예의 특정 작동을 참조한다. 자세한 내용은 여기에서 설명하지 않는다.
전술한 실시 예의 전부 또는 일부는 소프트웨어, 하드웨어 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 구현을 위해 소프트웨어가 사용될 때, 실시 예의 전부 또는 일부는 컴퓨터 프로그램 제품의 형태로 구현될 수 있다. 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 명령을 포함한다. 컴퓨터 프로그램 명령이 컴퓨터에 로드되어 실행될 때, 본 출원의 실시 예에 따른 절차 또는 기능이 전부 또는 부분적으로 생성된다. 컴퓨터는 범용 컴퓨터, 전용 컴퓨터, 컴퓨터 네트워크 또는 기타 프로그램 가능한 장치일 수 있다. 컴퓨터 명령은 컴퓨터가 판독 가능한 저장 매체에 저장되거나 또는 컴퓨터가 판독 가능한 저장 매체로부터 다른 컴퓨터가 판독 가능한 저장 매체로 전송될 수 있다. 예를 들어, 컴퓨터 명령은 웹 사이트, 컴퓨터, 서버 또는 데이터 센터에서 유선(예: 동축 케이블, 광섬유 또는 디지털 가입자 회선(digital subscriber line, DSL)) 또는 무선(예: 적외선, 라디오 또는 마이크로웨이브) 방식으로 다른 웹 사이트, 컴퓨터, 서버 또는 데이터 센터로 전송될 수 있다. 컴퓨터가 판독 가능한 저장 매체는 컴퓨터 또는 하나 이상의 사용 가능한 매체를 통합하는 서버 또는 데이터 센터와 같은 데이터 저장 디바이스에 의해 액세스 가능한 임의의 사용 가능한 매체일 수 있다. 사용 가능한 매체는 자기 매체(예를 들어, 플로피 디스크, 하드 디스크, 또는 자기 테이프), 광학 매체(예를 들어, DVD) 또는 반도체 매체(예를 들어, SSD)일 수 있다.
시퀀스 조정, 조합 또는 삭제는 실제 요건에 기반하여 본 출원의 실시 예에서 방법의 단계에서 수행될 수 있다. 본 출원의 실시 예에서 장치의 모듈은 실제 요건에 따라 분할, 조합 또는 삭제될 수 있다.
본 출원의 실시 예는 위에서 상세히 설명된다. 본 출원의 원리와 구현은 특정 예를 사용하여 이 명세서에 설명되어 있다. 본 출원의 실시 예에 대한 설명은 단지 본 출원의 방법과 핵심 아이디어를 이해하는 데 도움이 되도록 제공된다. 또한, 당업자는 본 출원의 아이디어에 기반하여 특정 구현 및 응용 범위의 관점에서 본 출원에 대한 변경 및 수정을 할 수 있다. 따라서 이 명세서의 내용은 본 출원에 대한 제한으로 해석되지 않는다.

Claims (20)

  1. 패킷 스케줄링 방법으로서,
    액세스 디바이스가, 스케줄링 대상 패킷(to-be-scheduled packet)을 수신하는 단계(S102) - 상기 스케줄링 대상 패킷은 네트워크 측에 의해 사용자 장비로 송신된 패킷임 -;
    상기 액세스 디바이스가, 상기 스케줄링 대상 패킷의 실제 패킷 길이를 획득하는 단계(S102) - 상기 실제 패킷 길이는 상기 스케줄링 대상 패킷의 총(total) 길이를 지시함 -;
    상기 액세스 디바이스가, 상기 스케줄링 대상 패킷에 기반하여 제1 보상 값 및 제2 보상 값을 결정하는 단계(S104) - 상기 제1 보상 값은 상기 스케줄링 대상 패킷이 제1 네트워크 디바이스에 의해 포워딩된 후 상기 실제 패킷 길이에 대한 변동 추정치(estimate of a variation)를 지시하며, 상기 제2 보상 값은 상기 스케줄링 대상 패킷이 상기 액세스 디바이스에 의해 포워딩된 후 상기 실제 패킷 길이에 대한 변동 추정치를 지시하고, 상기 제1 네트워크 디바이스는 상기 스케줄링 대상 패킷의 포워딩 경로 상에서 상기 액세스 디바이스와 상기 사용자 장비 사이에 위치된 네트워크 디바이스임 -;
    상기 액세스 디바이스가, 제1 패킷 길이 및 제2 패킷 길이를 결정하는 단계(S106) - 상기 제1 패킷 길이의 값은 상기 실제 패킷 길이의 값과 상기 제1 보상 값의 합(sum)과 같으며(equal), 상기 제2 패킷 길이의 값은 상기 실제 패킷 길이의 값과 상기 제2 보상 값의 합과 같음 -; 및
    상기 액세스 디바이스가, 상기 제1 패킷 길이 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 단계(S108)
    를 포함하고,
    상기 제1 네트워크 디바이스가 비동기 전송 모드(asynchronous transfer mode, ATM)에 기반한 네트워크 디바이스일 때, 상기 제1 보상 값은 상기 실제 패킷 길이의 값과 ATM 셀 길이의 값의 몫(quotient)에 ATM 셀 헤더의 길이 값을 곱한 값과 같은, 패킷 스케줄링 방법.
  2. 제1항에 있어서,
    상기 액세스 디바이스가, 상기 스케줄링 대상 패킷에 기반하여 제1 보상 값 및 제2 보상 값을 결정하는 단계(S104)는 구체적으로,
    상기 액세스 디바이스가, 상기 스케줄링 대상 패킷에 기반하여 상기 스케줄링 대상 패킷의 포워딩 경로를 결정하는 단계 - 상기 포워딩 경로는 상기 액세스 디바이스의 식별자 및 상기 제1 네트워크 디바이스의 식별자를 포함함 -; 및
    상기 액세스 디바이스가, 상기 제1 네트워크 디바이스의 식별자에 기반하여 상기 제1 보상 값을 결정하고, 상기 액세스 디바이스의 식별자에 기반하여 상기 제2 보상 값을 결정하는 단계
    를 포함하는, 패킷 스케줄링 방법.
  3. 제2항에 있어서,
    상기 액세스 디바이스가, 상기 제1 네트워크 디바이스의 식별자에 기반하여 상기 제1 보상 값을 결정하고, 상기 액세스 디바이스의 식별자에 기반하여 상기 제2 보상 값을 결정하는 단계는 구체적으로,
    상기 액세스 디바이스가, 상기 제1 네트워크 디바이스의 식별자에 기반하여 제1 보상 알고리즘을 결정하고, 상기 액세스 디바이스의 식별자에 기반하여 제2 보상 알고리즘을 결정하는 단계 - 상기 제1 보상 알고리즘은 상기 제1 네트워크 디바이스에 의해 포워딩된 패킷의 패킷 길이를 보상하는 데 사용되고, 상기 제2 보상 알고리즘은 상기 액세스 디바이스에 의해 포워딩된 패킷의 패킷 길이를 보상하는 데 사용됨 -; 및
    상기 액세스 디바이스가, 상기 실제 패킷 길이 및 상기 제1 보상 알고리즘에 기반하여 상기 제1 보상 값을 결정하고, 상기 실제 패킷 길이 및 상기 제2 보상 알고리즘에 기반하여 상기 제2 보상 값을 결정하는 단계
    를 포함하는, 패킷 스케줄링 방법.
  4. 제1항에 있어서,
    상기 액세스 디바이스가, 상기 제1 패킷 길이 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 단계(S108)는 구체적으로,
    상기 액세스 디바이스가, 상기 사용자 장비에 대응하는 제1 토큰 버킷(token bucket)에서의 제1 나머지 토큰 수량(first quantity of remaining tokens)을 획득하는 단계 - 상기 제1 나머지 토큰 수량은 현재 시점(current moment)에 상기 제1 토큰 버킷에서의 토큰 수량과 같음 -;
    상기 액세스 디바이스가, 상기 제1 네트워크 디바이스에 대응하는 제2 토큰 버킷에서의 제2 나머지 토큰 수량(second quantity of remaining tokens)을 획득하는 단계 - 상기 제2 나머지 토큰 수량은 현재 시점에 상기 제2 토큰 버킷에서의 토큰 수량과 같음 -;
    상기 액세스 디바이스가, 상기 제1 토큰 버킷 및 상기 제1 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제1 타깃 토큰 수량(first quantity of target tokens)을 결정하고, 상기 제2 토큰 버킷 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제2 타깃 토큰 수량(second quantity of target tokens)을 결정하는 단계;
    상기 액세스 디바이스가, 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 작거나 같은지를 판정하고, 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 작거나 같은지를 판정하는 단계; 및
    상기 액세스 디바이스가 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 작거나 같고 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 작거나 같은 것으로 결정할 때, 상기 액세스 디바이스가, 제1 주기(period)에서 상기 스케줄링 대상 패킷을 포워딩하기로 결정하고, 상기 제1 토큰 버킷으로부터 상기 제1 타깃 토큰 수량과 동일한 수량의 토큰을 공제하고(deduct), 상기 제2 토큰 버킷으로부터 상기 제2 타깃 토큰 수량과 동일한 수량의 토큰을 공제하는 단계
    를 포함하는, 패킷 스케줄링 방법.
  5. 제4항에 있어서,
    상기 패킷 스케줄링 방법은,
    상기 액세스 디바이스가 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 크거나 또는 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 큰 것으로 결정할 때, 상기 액세스 디바이스가, 상기 제1 주기에서 상기 스케줄링 대상 패킷을 포워딩하지 않기로 결정하는 단계
    를 더 포함하는 패킷 스케줄링 방법.
  6. 제1항에 있어서,
    상기 사용자 장비의 액세스 대역폭은 상기 사용자 장비에 액세스된 총 대역폭이며, 상기 사용자 장비의 액세스 대역폭은 제1 대역폭을 포함하고, 상기 제1 대역폭은 상기 사용자 장비의 타깃 네트워크 서비스에 액세스된 대역폭을 지시하는 데 사용되며, 상기 제1 대역폭의 값은 상기 사용자 장비의 액세스 대역폭의 값보다 작으며,
    상기 패킷 스케줄링 방법은,
    상기 액세스 디바이스가, 상기 사용자 장비의 식별자를 결정하고, 상기 사용자 장비의 식별자에 기반하여 제3 보상 값을 결정하는 단계 - 상기 제3 보상 값은 상기 스케줄링 대상 패킷이 상기 사용자 장비에 의해 상기 타깃 네트워크 서비스로 배포된 후 상기 실제 패킷 길이에 대한 변동 추정치를 지시함 -
    를 더 포함하고,
    상기 액세스 디바이스가, 상기 제1 패킷 길이 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 단계(S108)는 구체적으로,
    상기 액세스 디바이스가, 상기 실제 패킷 길이 및 상기 제3 보상 값에 기반하여 제3 패킷 길이를 결정하는 단계 - 상기 제3 패킷 길이의 값은 상기 실제 패킷 길이의 값과 상기 제3 보상 값의 합과 같음 -; 및
    상기 액세스 디바이스가, 상기 제1 패킷 길이, 상기 제2 패킷 길이 및 상기 제3 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 단계
    를 포함하는, 패킷 스케줄링 방법.
  7. 제6항에 있어서,
    상기 액세스 디바이스가, 상기 제1 패킷 길이, 상기 제2 패킷 길이 및 상기 제3 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 단계는 구체적으로,
    상기 액세스 디바이스가, 상기 사용자 장비에 대응하는 제1 토큰 버킷에서의 제1 나머지 토큰 수량을 획득하는 단계 - 상기 제1 나머지 토큰 수량은 현재 시점에 상기 제1 토큰 버킷에서의 토큰 수량과 같음 -;
    상기 액세스 디바이스가, 상기 제1 네트워크 디바이스에 대응하는 제2 토큰 버킷에서의 제2 나머지 토큰 수량을 획득하는 단계 - 상기 제2 나머지 토큰 수량은 현재 시점에 상기 제2 토큰 버킷에서의 토큰 수량과 같음 -;
    상기 액세스 디바이스가, 상기 타깃 네트워크 서비스에 대응하는 제3 토큰 버킷에서의 제3 나머지 토큰 수량을 획득하는 단계 - 상기 제3 나머지 토큰 수량은 현재 시점에 상기 제3 토큰 버킷에서의 토큰 수량과 같음 -;
    상기 액세스 디바이스가, 상기 제1 토큰 버킷 및 상기 제1 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제1 타깃 토큰 수량을 결정하고, 상기 제2 토큰 버킷 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제2 타깃 토큰 수량을 결정하며, 그리고 상기 제3 토큰 버킷 및 상기 제3 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제3 타깃 토큰 수량을 결정하는 단계;
    상기 액세스 디바이스가, 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 작거나 같은지를 판정하고, 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 작거나 같은지를 판정하며, 그리고 상기 제3 타깃 토큰 수량이 상기 제3 나머지 토큰 수량보다 작거나 같은지를 판정하는 단계; 및
    상기 액세스 디바이스가 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 작거나 같고, 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 작거나 같으며, 상기 제3 타깃 토큰 수량이 상기 제3 나머지 토큰 수량보다 작거나 같은 것으로 결정할 때, 상기 액세스 디바이스가, 상기 스케줄링 대상 패킷을 포워딩하기로 결정하고, 상기 제1 토큰 버킷으로부터 상기 제1 타깃 토큰 수량과 동일한 수량의 토큰을 공제하며, 상기 제2 토큰 버킷으로부터 상기 제2 타깃 토큰 수량과 동일한 수량의 토큰을 공제하고, 상기 제3 토큰 버킷으로부터 상기 제3 타깃 토큰 수량과 동일한 수량의 토큰을 공제하는 단계
    를 포함하는, 패킷 스케줄링 방법.
  8. 제6항에 있어서,
    상기 사용자 장비의 식별자에 기반하여 제3 보상 값을 결정하는 단계는 구체적으로,
    상기 액세스 디바이스가, 상기 사용자 장비의 식별자에 기반하여 제3 보상 알고리즘을 결정하고, 상기 실제 패킷 길이 및 상기 제3 보상 알고리즘에 기반하여 상기 제3 보상 값을 결정하는 단계
    를 포함하는, 패킷 스케줄링 방법.
  9. 패킷 보상 장치로서,
    스케줄링 대상 패킷을 수신하도록 - 상기 스케줄링 대상 패킷은 네트워크 측에 의해 사용자 장비로 송신된 패킷임 - 구성된 수신기; 및
    상기 스케줄링 대상 패킷의 실제 패킷 길이를 획득하도록 - 상기 실제 패킷 길이는 상기 스케줄링 대상 패킷의 총 길이를 지시함 - 구성된 프로세서
    를 포함하고,
    상기 프로세서는 추가로, 상기 스케줄링 대상 패킷에 기반하여 제1 보상 값 및 제2 보상 값을 결정하도록 - 상기 제1 보상 값은 상기 스케줄링 대상 패킷이 제1 네트워크 디바이스에 의해 포워딩된 후 상기 실제 패킷 길이에 대한 변동 추정치를 지시하며, 상기 제2 보상 값은 상기 스케줄링 대상 패킷이 상기 수신기에 의해 포워딩된 후 상기 실제 패킷 길이에 대한 변동 추정치를 지시하고, 상기 제1 네트워크 디바이스는 상기 스케줄링 대상 패킷의 포워딩 경로 상에서 상기 패킷 보상 장치와 상기 사용자 장비 사이에 위치된 네트워크 디바이스임 - 구성되며,
    상기 프로세서는 추가로, 제1 패킷 길이 및 제2 패킷 길이를 결정하고 - 상기 제1 패킷 길이의 값은 상기 실제 패킷 길이의 값과 상기 제1 보상 값의 합과 같으며, 상기 제2 패킷 길이의 값은 상기 실제 패킷 길이의 값과 상기 제2 보상 값의 합과 같음 -, 그리고 상기 제1 패킷 길이 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하도록 구성되고,
    상기 제1 네트워크 디바이스가 비동기 전송 모드(asynchronous transfer mode, ATM)에 기반한 네트워크 디바이스일 때, 상기 제1 보상 값은 상기 실제 패킷 길이의 값과 ATM 셀 길이의 값의 몫(quotient)에 ATM 셀 헤더의 길이 값을 곱한 값과 같은, 패킷 보상 장치.
  10. 제9항에 있어서,
    상기 프로세서가 상기 스케줄링 대상 패킷에 기반하여 제1 보상 값 및 제2 보상 값을 결정하는 것은 구체적으로,
    상기 프로세서가, 상기 스케줄링 대상 패킷에 기반하여 상기 스케줄링 대상 패킷의 포워딩 경로를 결정하도록 - 상기 포워딩 경로는 상기 패킷 보상 장치의 식별자 및 상기 제1 네트워크 디바이스의 식별자를 포함함 - 구성되고, 그리고
    상기 프로세서가 추가로, 상기 제1 네트워크 디바이스의 식별자에 기반하여 상기 제1 보상 값을 결정하고, 상기 패킷 보상 장치의 식별자에 기반하여 상기 제2 보상 값을 결정하도록 구성되는 것을 포함하는, 패킷 보상 장치.
  11. 제10항에 있어서,
    상기 프로세서가 상기 제1 네트워크 디바이스의 식별자에 기반하여 상기 제1 보상 값을 결정하고, 상기 패킷 보상 장치의 식별자에 기반하여 상기 제2 보상 값을 결정하는 것은 구체적으로,
    상기 프로세서가 상기 제1 네트워크 디바이스의 식별자에 기반하여 제1 보상 알고리즘을 결정하고, 상기 패킷 보상 장치의 식별자에 기반하여 제2 보상 알고리즘을 결정하도록 - 상기 제1 보상 알고리즘은 상기 제1 네트워크 디바이스에 의해 포워딩된 패킷의 패킷 길이를 보상하는 데 사용되고, 상기 제2 보상 알고리즘은 상기 패킷 보상 장치에 의해 포워딩된 패킷의 패킷 길이를 보상하는 데 사용됨 - 구성되고, 그리고
    상기 프로세서가 추가로, 상기 실제 패킷 길이 및 상기 제1 보상 알고리즘에 기반하여 상기 제1 보상 값을 결정하고, 상기 실제 패킷 길이 및 상기 제2 보상 알고리즘에 기반하여 상기 제2 보상 값을 결정하도록 구성되는 것을 포함하는, 패킷 보상 장치.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 프로세서가 상기 제1 패킷 길이 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 것은 구체적으로,
    상기 프로세서가 상기 사용자 장비에 대응하는 제1 토큰 버킷에서의 제1 나머지 토큰 수량을 획득하도록 - 상기 제1 나머지 토큰 수량은 현재 시점에 상기 제1 토큰 버킷에서의 토큰 수량과 같음 - 구성되고,
    상기 프로세서가 추가로, 상기 제1 네트워크 디바이스에 대응하는 제2 토큰 버킷에서의 제2 나머지 토큰 수량을 획득하도록 - 상기 제2 나머지 토큰 수량은 현재 시점에 상기 제2 토큰 버킷에서의 토큰 수량과 같음 - 구성되며,
    상기 프로세서가 추가로, 상기 제1 토큰 버킷 및 상기 제1 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제1 타깃 토큰 수량을 결정하고, 상기 제2 토큰 버킷 및 상기 제2 패킷 길이에 기반하여 상기 스케줄링 대상 패킷을 스케줄링하는 데 사용되는 제2 타깃 토큰 수량을 결정하도록 구성되고,
    상기 프로세서가 추가로, 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 작거나 같은지를 판정하고, 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 작거나 같은지를 판정하도록 구성되며, 그리고
    상기 프로세서가 상기 제1 타깃 토큰 수량이 상기 제1 나머지 토큰 수량보다 작거나 같고 상기 제2 타깃 토큰 수량이 상기 제2 나머지 토큰 수량보다 작거나 같은 것으로 결정할 때, 상기 프로세서가 추가로, 제1 주기에서 상기 스케줄링 대상 패킷을 포워딩하기로 결정하고, 상기 제1 토큰 버킷으로부터 상기 제1 타깃 토큰 수량과 동일한 수량의 토큰을 공제하고, 상기 제2 토큰 버킷으로부터 상기 제2 타깃 토큰 수량과 동일한 수량의 토큰을 공제하도록 구성되는 것을 포함하는, 패킷 보상 장치.
  13. 네트워크 디바이스로서,
    프로세서;
    통신 인터페이스; 및
    메모리
    를 포함하고,
    상기 메모리는 명령을 저장하도록 구성되며, 상기 프로세서는 상기 명령을 실행하도록 구성되고, 상기 통신 인터페이스는 데이터를 수신하거나 송신하도록 구성되며, 상기 명령을 실행할 때, 상기 프로세서는 제1항 내지 제8항 중 어느 한 항에 따른 방법을 수행하는, 네트워크 디바이스.
  14. 컴퓨터 판독 가능 비 일시적 저장 매체로서,
    상기 저장 매체는 컴퓨터 프로그램을 저장하고, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 때, 제1항 내지 제8항 중 어느 한 항에 따른 방법이 구현되는, 컴퓨터 판독 가능 비 일시적 저장 매체.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020217020758A 2019-01-31 2019-12-24 패킷 스케줄링 방법, 관련 디바이스 및 컴퓨터 저장 매체 KR102589955B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910104686.1 2019-01-31
CN201910104686.1A CN111510394B (zh) 2019-01-31 2019-01-31 一种报文调度方法、相关设备及计算机存储介质
PCT/CN2019/127827 WO2020155941A1 (zh) 2019-01-31 2019-12-24 一种报文调度方法、相关设备及计算机存储介质

Publications (2)

Publication Number Publication Date
KR20210094083A KR20210094083A (ko) 2021-07-28
KR102589955B1 true KR102589955B1 (ko) 2023-10-13

Family

ID=71839939

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217020758A KR102589955B1 (ko) 2019-01-31 2019-12-24 패킷 스케줄링 방법, 관련 디바이스 및 컴퓨터 저장 매체

Country Status (5)

Country Link
US (1) US11689465B2 (ko)
JP (1) JP7135217B2 (ko)
KR (1) KR102589955B1 (ko)
CN (1) CN111510394B (ko)
WO (1) WO2020155941A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114006862B (zh) * 2021-10-29 2023-10-20 锐捷网络股份有限公司 报文转发方法、装置和设备及计算机存储介质
CN115314446B (zh) * 2022-07-22 2024-05-28 烽火通信科技股份有限公司 一种报文带宽补偿方法、装置及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070195820A1 (en) * 2004-09-10 2007-08-23 Tricci So System and Method for Adaptive Frame Size Management in a Wireless Multihop Network
US20080109559A1 (en) * 2006-11-03 2008-05-08 Cisco Technology, Inc. Automatically controlling operation of a BRAS device based on encapsulation information

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758089A (en) * 1995-11-02 1998-05-26 Sun Microsystems, Inc. Method and apparatus for burst transferring ATM packet header and data to a host computer system
JP2946462B1 (ja) * 1998-03-10 1999-09-06 株式会社超高速ネットワーク・コンピュータ技術研究所 パケット・スケジューリング制御方法
US7010607B1 (en) * 1999-09-15 2006-03-07 Hewlett-Packard Development Company, L.P. Method for training a communication link between ports to correct for errors
US7110411B2 (en) * 2002-03-25 2006-09-19 Erlang Technology, Inc. Method and apparatus for WFQ scheduling using a plurality of scheduling queues to provide fairness, high scalability, and low computation complexity
WO2004107671A1 (ja) 2003-05-27 2004-12-09 Fujitsu Limited 通信装置
JP4027955B2 (ja) 2003-06-03 2007-12-26 富士通株式会社 流量制御装置
US7765300B2 (en) * 2003-10-06 2010-07-27 Ericsson Ab Protocol for messaging between a centralized broadband remote aggregation server and other devices
JP2006262337A (ja) 2005-03-18 2006-09-28 Fujitsu Ltd 帯域制御装置及び帯域制御方法
JP3961000B2 (ja) 2005-05-26 2007-08-15 株式会社日立コミュニケーションテクノロジー パケット転送装置及びネットワークシステム
CN100421403C (zh) * 2005-06-29 2008-09-24 华为技术有限公司 一种认证接入系统及其认证接入方法
KR20080068690A (ko) 2005-10-07 2008-07-23 에이저 시스템즈 인크 상보적 지정 파일을 이용하여 실시간전송프로토콜 출구스트리밍을 위한 방법 및 장치
CN100433718C (zh) * 2005-10-31 2008-11-12 华为技术有限公司 保障数据分组业务服务等级的方法及速率限制方法
WO2008097167A1 (en) 2007-02-09 2008-08-14 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for discriminating between control messages and speech payload
CN101447912B (zh) * 2007-11-27 2012-02-29 华为技术有限公司 一种报文调度方法和装置
US8000235B2 (en) * 2008-10-05 2011-08-16 Contextream Ltd. Bandwidth allocation method and apparatus
US8483194B1 (en) * 2009-01-21 2013-07-09 Aerohive Networks, Inc. Airtime-based scheduling
US20110075562A1 (en) * 2009-09-25 2011-03-31 Isaksson Martin Rate Shaping For Wireless Communication Using Token Bucket That Allows Token Debt
CN101873634B (zh) * 2010-06-18 2013-06-05 杭州华三通信技术有限公司 一种基于无线局域网的带宽调度方法和设备
CN102843775B (zh) * 2012-09-11 2015-04-22 福建星网锐捷网络有限公司 调度方法、装置及网络设备
CN103888372B (zh) * 2012-12-21 2017-05-17 中兴通讯股份有限公司 一种流量整形方法和数据处理设备
US10470019B2 (en) * 2015-05-26 2019-11-05 Huawei Technologies Co., Ltd. Method, device, and system for adjusting packet length in near field communication (NFC)
KR102207467B1 (ko) 2016-05-20 2021-01-25 후아웨이 테크놀러지 컴퍼니 리미티드 패킷 도메인에서 음성 서비스를 스케줄링하는 방법 및 장치
CN109218215B (zh) * 2017-06-29 2021-11-19 华为技术有限公司 一种报文传输的方法和网络设备
CN107896197A (zh) * 2017-10-23 2018-04-10 深圳市楠菲微电子有限公司 通信设备中测量转发速率的方法和装置、存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070195820A1 (en) * 2004-09-10 2007-08-23 Tricci So System and Method for Adaptive Frame Size Management in a Wireless Multihop Network
US20080109559A1 (en) * 2006-11-03 2008-05-08 Cisco Technology, Inc. Automatically controlling operation of a BRAS device based on encapsulation information

Also Published As

Publication number Publication date
CN111510394B (zh) 2022-04-12
KR20210094083A (ko) 2021-07-28
WO2020155941A1 (zh) 2020-08-06
EP3883191A4 (en) 2022-03-16
US20210359949A1 (en) 2021-11-18
JP2022518227A (ja) 2022-03-14
US11689465B2 (en) 2023-06-27
EP3883191A1 (en) 2021-09-22
CN111510394A (zh) 2020-08-07
JP7135217B2 (ja) 2022-09-12

Similar Documents

Publication Publication Date Title
US10958555B2 (en) Real-time application-driven synthetic probing
CN110266578B (zh) 用于传输和接收包的方法和系统
US6434118B1 (en) Method for determining round trip time utilizing ATM traffic management mechanism
KR101445470B1 (ko) L2 이더넷 노드로의 통신 가용 전송 네트워크 대역폭
CN110896371B (zh) 一种虚拟网络设备及相关方法
RU2554543C2 (ru) Блок связи, система связи, способ связи и носитель записи
US20080192773A1 (en) Methods and apparatus to manage bandwidth utilization in an access network
CN114125924B (zh) Tsn业务的处理方法、装置及计算机可读存储介质
US11689465B2 (en) Packet scheduling method, related device, and computer storage medium
CN114128228B (zh) 通过SRv6头传输MTNC-ID以实现5G传输
CN111371634B (zh) 一种通信方法、装置及系统
KR101990235B1 (ko) 패킷 교환 네트워크 내의 네트워크 노드에 있어서의 트래픽 관리를 위한 방법 및 네트워크 노드
FI123302B (fi) Menetelmä ja laitteisto tietoliikennevuon lähetysnopeuden muokkaamiseksi
JP2018500851A5 (ko)
CN113055293B (zh) 软件定义广域网中的选路方法及装置、通信系统
JP2009027400A (ja) 過大フロー検出装置、過大フロー検出回路、端末装置及びネットワークノード
CN114128227B (zh) 在支持SRv6的数据面上传输MTNC-ID以实现5G传输
EP3883191B1 (en) Message scheduling method, related device, and computer storage medium
US11870707B2 (en) Bandwidth management and configuration method for cloud service, and related apparatus
US20160315787A1 (en) Network system, control devices, control method, and program
CN114765582B (zh) 数据传输方法、设备及系统
Ha et al. Real-Time In-Band Network Link Loss Detection With Programmable Data Plane
CN117527668A (zh) 数据传输方法、装置、网络设备及存储介质
WO2012114328A1 (en) System and method for active queue management per flow over a packet switched network
Popov et al. Integration of QoS provisioning in home and access networks

Legal Events

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