본문 바로가기

네트워크/QoS

QoS Token Bucket Algorithms

728x90

● QoS Token Bucket Algorithms 이란?

 

Cisco IOS Policer와 Shaper는 token bucket algorithm을 기반으로 합니다. 아래 항목은 알고리즘 동작에 사용하는 용어 입니다. 

용어 약어 설명
Committed Information Rate CIR Policed Traffic Rate (정책에 적용받는 트래픽 비율) 이고 단위는 bps 입니다.
즉, 10Mbps를 보장받기로 했다면 CIR은 10Mbps 입니다.
Committed Time Interval Tc 시간 간격동안 전달할 수 있는 Bc 이고 단위는 ms 입니다.
산출공식: Tc = (Bc[bit] / CIR[bps]) * 1000 
Committed Burst Size
Bc Tc 시간 동안에 보낼 수 있는 최대 트래픽의 총량입니다. 해당 값은 전송 중인 트래픽에 포함된 가장 큰 사이즈의 패킷보다 같거나 커야 합니다.
산출공식: Bc = CIR * (Tc / 1000)
Token - Single Token은 1 byte 또는 8 bit를 의미합니다.
Token Bucket - Bucket은 토큰이 가득 담긴 양동이와 같습니다. 토큰은 사전에 정의된 숫자에 도달할 때 까지 계속 누적되며, 누적되는 속도는 CIR과 동일 합니다. 

패킷의 크기만큼 버킷에서 토큰을 가져오며 토큰이 충분하지 않을 경우 아래 3가지 행위중 하나로 동작 합니다. 
  - token bucket에 충분한 token이 누적 될 때 까지 패킷을 버퍼에 담아둠 (Shaping)
  - 패킷을 드랍 시킴 (Policing)
  - 패킷의 우선순위를 떨어뜨림 (Policing)

 

● Single Token Bucket Algorithms

 

Single Token Bucket 동작 알고리즘 

 - 인터페이스 속도는 1G Interface를 사용하고 1500 Byte 연속적 트래픽 처리하는 상황 입니다. 해당 트래픽 클래스의 최대보장 대역폭은(CIR) 120Mbps 이고, 순간 최대로 전송할 수 있는 트래픽의 양(Bc)은 12Mbps 입니다.

Tc 산출 공식 Tc 시간에 처리 가능한 패킷 수량 산출 공식
∴ Tc = Bc[bit] / CIR [bps] * 1000
∴ Tc = 12Mbps / 120Mbps * 1000
∴ Tc =  1/10 * 1000 = 100ms
∴ X = Bc / Packet Size in bits
∴ X = 12,000,000 bps / 1500 byte * 8 (12,000 bit)
∴ X = 1000 packets
1초에 처리 가능한 패킷 수량 산출 공식 CIR 산출 공식
∴ Packet Per Second = Tc 시간에 처리 되는 패킷 수량 * Tcs 
∴ Tcs = 1000ms (1초) / Tc = 10 Tcs
∴ PPS  = 1,000 packet * 10 Interval = 10,000 pps
 CIR = Packet Per Second * Packet size in bits
 CIR = 10,000 * 12,000 bit = 120,000,000 bit = 120Mbps
Bc's Serialization Delay 산출 공식   
Delay = Bc[bits] / Interface Speed [bps] * 1000
Delay = 12 Mbps / 1000Mbps * 1000
Delay = 12,000,000 bps / 1000,000,000 * 1000
Delay = 12 ms

 

 

Tc 시간 동안 1000개의 패킷 처리가 가능하고 1000개의 패킷을 초과할 경우 패킷 드랍 또는 마크다운 (우선순위 변경)이 발생하고 계산공식에 따라 1초 동안 처리가능한 패킷의 수량은 10,000개 처리가 가능 합니다. 

 

Bc (1000 packet * 1500 byte 또는 12Mbps)가 Tc (100ms) 마다 전송되고, Bc 전송 이후 88ms (Tc 시간 - Serialization Delay, 100ms - 12ms) 패킷 사이의 지연이 존재합니다.

권장되는 Tc값의 범위는 8ms 부터 125ms 사이 입니다. 실시간 트래픽 전송을 위해서 Tc는 8ms ~ 10ms 사이가 되어야하며 Tc값이 125ms를 초과하게 되면 패킷사이 지연이 많이 발생하기 때문에 권장되지 않습니다.

728x90