네트워크/QoS

QoS 지연 발생 원인 4가지 (Propagation, Processing, Serialization, Delay variation)

고미-고미 2022. 4. 15. 15:25
728x90

● QoS 지연 발생 원인 4가지

 

일반적으로 지연이 발생하는 4가지 요소는 Propagation delay(고정), Serialization delay(고정), Processing delay(고정), Delay variation(가변) 가 있습니다.  지연에 대한 이해가 중요한 이유는 발생의 원인과 해결을 통해 성능 개선을 하기 위함 입니다. 

 

 

1. Propagation delay(고정)

 

출발지에서 목적지까지 패킷 이동에 소요되는 시간이며 전송매체에 따라 차이가 발생합니다. 전송매체란 UTP 또는 광 케이블을 의미하며 전송매체에 의한 지연은 고정된 값을 가집니다. 

 

예) 싱글 광 케이블의 지연 값

진공 상태에서 빛의 속도는 299,792,458m/s 이나 케이블은 진공 상태가 아니기 때문에 광 케이블 또는 구리 선은 진공 상태보다 전송 속도의 지연이 발생 합니다. 지연의 발생은 refractive index(굴절값) 만큼 감소하며 해당 값의 크기가 커질 수록 속도는 더 느려집니다. 

 

광 케이블의 평균적인 굴절값은 1.5이며 매체를 통해 이동하는 빛의 속도 v 는 진공 상태의 빛의 속도 c / 굴절 값 n 과 같습니다.

∴ v = c / n  (v = 300,000,000 / 1.5) 계산의 편의성을 위해 3억으로 변경

∴ v = 200,000,000m/s

 

광 케이블을 통해 지구를 한바귀 돌때의 Propagation delay는 약 200ms가 발생 합니다. 지구의 둘레가 약 40,075Km 이고 광케이블의 초당 이동거리는 200,000Km/s

∴ x = 40,075 / 200,000

∴ x = 0.2s = 200ms

 

해당 지연값의 산출은 단순히 Propagation Delay에 대한 부분이고 Delay에 영향을 줄 수 있는 변수는 제외된 값 입니다.

 

 

2. Serialization Delay (고정)

 

패킷의 전체 bit가 링크에 위치하는 시간이며 링크 속도에 영향을 받기 때문에 고정값 입니다. 링크의 속도를 높이면 지연값이 개선 됩니다. Serialization Delay 값을 구하는 공식은 패킷의 전체 bit / 링크 스피드로 구할 수 있습니다. 

 

예) 1Gbps 인터페이스에 1500 byte를 위치시킬 때 지연 값

∴ s = 1500 byte / 1,000,000,000 bps == 12,000 bit / 1,000,000,000

∴ s = 0.000012 == 12us

1Gbps 인터페이스에 1500 Byte를 전체를 올리는데 소요되는 시간은 12us가 소요 됨 

 

3. Processing Delay (고정)

 

네트워크 장비가 Input Interface에서 패킷을 받아 Output Queue까지 이동에 소요되는 시간이며 여기에 영향을 미치는 요소는 5가지가 있습니다.

  • CPU Speed (For Software-Base Platform). 
  • CPU 사용률
  • IP Packet Switching Mode (Processing Switching, Software CEF Switching, Hardware CEF Switching)
  • Router Architecture (Centrailzed or Distributed)
  • Input / Output Interface 설정

참조: https://white-polarbear.tistory.com/6?category=1009517 

Chassis Type의 장비는 Hardware 기반인 ASIC Chip으로 처리하기 때문에  CPU 속도나 상태에 영향을 받지 않습니다. CEF 방식 또한 Hardware Switching으로 수행되기 때문에 일반 스위치보다 성능면에서 우수 합니다.

 

4. Delay Variation (변동)

 

Delay Variation은 Jitter(지터)라고 하며 패킷 사이의 간격 차이를 의미합니다.  첫 번째 패킷이 출발지에서 목적지까지 전송에 50ms가 소요되고 그 다음 패킷 전송에 70ms가 소요되면 jitter값은 20ms가 됩니다. 

 

Queuing Delay, Dejitter Buffer 그리고 가변적인 패킷 사이즈가 Jitter 값에 영향을 주게 됩니다. 이중에서 Jitter에 가장 많은 영향을 주는 것은 Queuing Delay 입니다. 그리고 Queuing Delay는 Queue에 있는 패킷 사이즈, 인터페이스 속도, Queueing Mechanism 입니다. 

 

Egree Interface Queue에 이미 많은 패킷이 존재하여 Queue가 꽉 차게 되면 이후에 Egress Interface Queue에 오는 패킷들은 모두 유실이 발생하게 됩니다. UDP 라면 트래픽 유실로 인해 정상적인 서비스를 제공 할 수 없고, TCP를 사용할 경우 재전송이 발생하여 속도가 느려지게 됩니다. (Tail Drop 발생)

 

인터페이스 속도는 Serialization Delay와 연관이 있고, Queuing Mechanism은 Queue에 적재하는 알고리즘에 따라 Jitter값에 변화를 줄 수 있습니다. 일반적으로 사용하는 FIFO (First In First Out)의 경우 먼저 들어오는 패킷을 먼저 처리하는 방식으로 중요한 트래픽이 뒤에 있을 경우 처리가 늦어서 Jitter값이 증가하게 되고 RED (Random Early Detect) 방식을 사용하여 무작위로 패킷을 폐기할 경우 중요한 패킷의 폐기가 발생 할 수 있어 효율적이지 못합니다. 

 

그래서 실시간 트래픽과 같이 우선순위가 높은 트래픽이 Jitter의 방해를 받지 않기 위해 Low-Latency Queuing (LLQ)과 같은 Queuing Mechanism을 사용 할 수 있습니다.

 

 


지연이 발생하는 4가지 요소 중 3가지는 하드웨어와 밀접한 지연 입니다. 하드웨어의 비약적인 발전으로 하드웨어로 발생하는 지연은 마이크로세컨드 단위까지 감소하였습니다. 나머지 하나는 변동성을 가지는 부분으로 QoS를 통한 서비스 품질을 보장하기 위해 Queuing 쪽을 집중적으로 관리해야 하는 이유 입니다.

728x90