Delay (지연) : 패킷이 출발지에서 목적지로 이동하는 동안 반드시 발생하는 문제이다. 주로 네 가지 유형의 지연이 발생한다.
Transmission Delay (전송 지연)
Propagation Delay (전파 지연)
Processing Delay (처리 지연)
Queuing Delay (대기 지연)
Queuing Delay (대기 지연) : 라우터에 도착한 패킷이 전송되기 전 라우터의 Queue에 대기하는 시간이다.
순간적으로 많은 양의 패킷이 라우터에 도착한다면 Queue에 대기하는 패킷이 많아지고, 이에 따라 대기 시간도 길어질 것이다.
패킷이 라우터에 도착하는 속도 > 링크의 용량 : Queue Length 증가라우터의 버퍼가 가득 찼다면, Queue에 더이상 패킷을 저장할 수 없기 때문에 패킷 손실이 발생한다.
No Free buffer : Packet loss패킷의 Queuing Delay는 일정하지 않아 이를 측정하고 조절하는 것은 매우 어렵다.
Queuing Delay는 일정하지 않기 때문에 Jitter의 주원인이 된다.Transmission Delay (전송 지연) : 패킷이 링크를 통해 전송되는 데 걸리는 시간이다. 이는 패킷의 크기와 링크의 전송 속도(용량)에 따라 결정된다.
: 패킷의 크기
: 링크의 전송 속도 (throughput)
예제
Propagation Delay (전파 지연) : 패킷이 매체(광섬유, 구리선 등)를 통해 물리적으로 이동하는 데 걸리는 시간이다. 이는 링크의 길이와 신호의 전파 속도에 따라 결정된다.
: 링크의 길이
: 전파 속도
예제
Throughput (처리량) : 네트워크의 특정 지점에서 1초동안 통과하는 비트 수로 정의된다.
단위는 를 사용한다.
데이터의 전송 속도와 같은 개념이다.
각 링크마다 다른 Throughput을 가질 수 있다.
데이터가 서로 처리량이 다른 세 개의 링크를 통과하는 상황을 가정해보자.
링크 1의 전송 속도는
링크 2의 전송 속도는
링크 3의 전송 속도는
위와 같은 상황에서 링크 전체의 전송 속도는 최소 처리량인 로 제한된다.
이는 가장 느린 링크가 병목 현상을 일으켜, 전체 경로가 허용할 수 있는 최대 데이터 전송량을 결정하기 때문이다.
Bottleneck (병목 현상) : 병목 현상은 여러 링크로 이루어진 네트워크의 데이터 전송 속도가 최소 전송 속도로 결정되는 현상인데, 이는 마치 좁은 목을 가진 병에서 물이 나오는 속도가 병 목의 크기에 따라 결정되는 것과 비슷한 이치이다.
Backbone Internet : 백본 인터넷처럼 양 끝단에 일반 링크가 위치하고 중간에는 매우 빠른 전송 속도를 가진 링크로 구성된 네트워크는 어떨까? 이 경우에도 마찬가지로 양 끝단 링크로 인해 병목 현상이 발생한다.
네트워크 구성
각 서버들은 의 전송 속도를 갖는다.
각 클라이언트들은 의 전송 속도를 갖는다.
서버와 클라이언트는 하나의 백본 링크 을 공유하며, 현재 10개의 연결이 이 백본 링크를 나눠 쓰고 있다.
각 연결의 End-to-End Throughput은 다음과 같이 계산된다.
실질적으로, 가 병목 링크가 되는 경우가 많다.
Packet loss (패킷 손실) : 패킷 손실은 네트워크 통신 과정에서 패킷이 목적지에 제대로 도착하지 못하거나, 중간에 버려지는 경우 발생한다.
라우터는 패킷을 처리하고 포워딩 하기 전, 버퍼에 각 패킷을 저장하여 대기시킨다.
패킷 손실은 네트워크 성능에 심각한 악영향을 미친다.
패킷 손실 발생 : 네트워크의 혼잡도가 크다는 뜻이므로, 패킷을 재전송 하더라도 여전히 손실 될 가능성이 존재한다.
재전송 패킷이 많아진다면, 이로 인해 네트워크 혼잡도가 증가하는 악순환이 발생할 것이다.
Congestion (혼잡) : 패킷이 전송되는 속도가 네트워크의 처리량을 넘어서서 네트워크가 과부화 된 상태이다. 네트워크가 혼잡 상태에 빠지게 되면, 처리량이 감소하고 지연이 커지는 문제가 발생한다.
a. load, Delay 관계 그래프
No-congestion area (비혼잡 구간) : 부하가 적은 구간에선 지연 그래프의 증가율이 낮지만, 부하가 네트워크 용량에 근접할수록 지연이 무한대로 발산한다.
Congestion area (혼잡 구간) : 패킷 손실이 발생하기 때문에, 부하에 따른 지연을 그래프로 나타낼 수 없다.
b. Throughput, load 관계 그래프
No-congestion area (비혼잡 구간) : 부하가 증가함에 따라 처리량도 함께 증가한다.
Congestion area (혼잡 구간) : 초기에는 처리량이 증가하지만, 부하가 증가함에 따라 처리량이 점차 감소한다.
Backpressure Method : 혼잡이 발생했을 때 데이터의 흐름을 역방향으로 제한하는 혼잡 제어 기법이다.
위 예시에서 라우터 3에 혼잡이 발생하였다.
혼잡이 발생한 라우터는 데이터 흐름 순서상 이전 라우터에게 신호를 보내 데이터 전송을 늦추거나 멈추도록 요청한다.
각 라우터들은 연쇄적으로 이전 라우터에 신호를 전달하며, 이 신호는 출발지까지 도달한다.
이 과정은 혼잡이 해결될 때까지 데이터 흐름이 느려지거나 중단되도록 하기 때문에, 혼잡 제어 효과가 있다.
Choke Packet : 혼잡이 발생한 라우터가 출발지로 패킷을 보내 데이터 전송 속도를 줄이도록 요청하는 방식이다.
위 예시에서 라우터 3에 혼잡이 발생하였다.
혼잡을 감지한 라우터는 출발지로 초크 패킷을 전송하고, 이 패킷을 받은 출발지는 데이터 전송 속도를 줄이거나 전송량을 조절한다.
이 방식은 백프레셔와 달리 혼잡이 발생한 지점에 직접 패킷을 보냄으로써 혼잡을 제어한다.