[네트워크] Packet Switching에서의 4가지 지연 원인
먼저 읽으면 좋은 글
- Packet Switching 방식
Packet Switching에서의 4가지 지연 원인
앞서 설명하였듯, Packet Switching(패킷 교환)은 store-and-forward(저장 후 전달 방식)을 채택한다. store-and-forward 방식은 '전송될 모든 패킷이 라우터에 도착해야(store), 패킷의 첫 비트가 next link로 전송된다(forward)'는 개념인데, 이 때문에 queueing delay가 발생된다.
Packet Switching에는 queueing delay 이외에도 여러가지 요인들로 지연이 발생되는데, Packet Switching에서의 지연 원인을 크게 4가지로 정리해보면 아래와 같다.
-
- Processing delay (처리 지연)
- Queueing delay (큐잉 지연)
- Transmission delay (전송 지연)
- Propagation delay (전파 지연)
따라서 전체 노드 지연은 d(nodal, 전체) = d(proc, 처리) + d(queue, 큐잉) + d(trans, 전송) + d(prop, 전파)으로 표현한다.
위 4종류의 지연에 대해 자세히 살펴 보자.
(1) Processing delay (처리 지연)
Processing 과정은 라우터 내에서 패킷이 진행하는 과정이다. 이 과정에서 패킷 데이터의 bit error를 검사하고, 그 패킷을 어디로 보낼지를 결정하는데에 발생하는 지연을 Processing delay라고 한다.
비유 1 : 소총 사격 시, 탄약 관리 간부들이 탄약의 이상 여부를 검사하고(우상탄 10발 이상무), 탄알집을 병사들에게 인계하는 시간.
비유 2 : 놀이공원에 갔는데 롤러코스터를 타려면 어디로 어떻게 갈지 결정하는 시간.
Processing delay는 매우 짧은 시간동안만 발생하며, 라우터 내의 하드웨어의 성능, 혹은 라우터의 알고리즘에 따라 좌지우지되므로 가변적이지 않다는 특징이 있다. 고속 라우터에서의 Processing delay는 일반적으로 수 msec이다.
(2) Queueing delay (큐잉 지연)
라우터로 패킷들이 한번에 많이 들어올 경우, 라우터는 패킷들을 queue 형태로 보관하여 차례대로 처리한다. 이때, 전송을 위해 output link의 queue에서 기다리면서 발생하는 지연을 Queueing delay라 한다.
비유 1 : (특정 탄약의 입장에서) 탄알집 결합 후, 탄약이 탄알집에서 발사되기까지 순서를 기다리는 시간.
비유 2 : 롤러코스터를 타러 갔는데 앞서 도착한 사람들이 있어 대기하는 시간.
Queueing delay는 라우터의 congestion(혼잡) 정도, 즉 앞서 도착하여 기다리는 다른 패킷들의 수에 의해 결정된다.
만일 queue가 비어있고 다른 패킷이 전송 중인 상태가 아니라면 패킷의 Queueing delay은 0이다. 반면 트래픽이 많고 다른 많은 패킷이 전송 대기 중이면, Queueing delay는 매우 길어진다.
이렇듯, Queueing delay는 상황에 따라 가변적이라 예측이 어렵다는 특징이 있다.
(3) Transmission delay (전송 지연)
- d_trans: transmission delay:
- L: packet length (bits)
- R: link bandwidth (bps)
- d_trans = L/R
queue를 빠져나가 라우터의 output link를 통해 빠져나가기 전까지 발생하는 delay이다. 즉, 전송하려는 패킷을 output link로 밀어내는데 걸리는 시간이다.
비유 1 : '노리쇠 전진', '조정간 단발'에 걸리는 시간.
비유 2 : 롤러코스터에 탑승할 차례가 되어 자리에 앉기까지 걸리는 시간.
Transmission delay는 link의 bandwidth (link가 최대로 전송할 수 있는 데이터 양) 에 따라 결정되며, link bandwidth는 불변값이고 패킷의 길이도 대부분 비슷하므로 Transmission delay도 비교적 가변적이지 않다는 특징이 있다.
참고로, 여기서 가변적이지 않다는 말은 1개의 패킷을 기준으로 계산했을 때 가변적이지 않다는 뜻이다. 실제 상황에서 Transmission delay는 보내는 데이터의 양에 따라서 매우 가변적으로 변한다.
Transmission delay = (Packet Length) / (link bandwidth) 로 계산한다.
(4) Propagation delay (전파 지연)
실제 link를 타고 데이터가 전송될 때, link의 처음부터 라우터까지의 전파에 필요한 시간(delay)이다.
비유 1 : 탄알이 격발되어, 목표물을 타격하는 데까지 소요되는 시간.
비유 2 : 롤러코스터가 출발해서 한 코스를 도는 시간.
Propagation delay는 거리와 link의 매체가 결정하는 delay로, 다른 delay에 비해 매우 짧은 시간이 걸린다. 특히나 요즘같이 광통신을 하는 경우에는 거의 없다고 봐도 될 정도로 짧다.
Propagation delay = (distance) / (Propagation speed) 로 계산한다. 출발지와 목적지 라우터 사이의 거리가 d이고 s가 link의 전파속도라면, 전파 지연은 d/s이다.
Transmission delay vs. Propagation delay
- Transmission delay는 라우터가 패킷을 내보내는데 필요한 시간으로, 두 라우터 사이의 거리와 상관없다.
- Propagation delay는 패킷이 한 라우터에서 다음 라우터까지 이동(전파)하는데 필요한 시간이다. 패킷 길이나 전송률과 상관이 없다.
함께 읽으면 좋은 글
https://oneonlee.tistory.com/96
참고자료
- Computer Networking: A Top Down Approach 6th edition - Jim Kurose, Keith Ross Addison-Wesley March 2012
- https://snoop-study.tistory.com/60
- https://ddongwon.tistory.com/70
- https://dkswnkk.tistory.com/485