[Computer network] Chapter 1, 2 - Network layer : Performance

이한량·2024년 10월 7일

Computer Network

목록 보기
2/11

1. Network Performance

  • Delay (지연) : 패킷이 출발지에서 목적지로 이동하는 동안 반드시 발생하는 문제이다. 주로 네 가지 유형의 지연이 발생한다.

    • Transmission Delay (전송 지연)

    • Propagation Delay (전파 지연)

    • Processing Delay (처리 지연)

    • Queuing Delay (대기 지연)

1-1. Queuing Delay

  • Queuing Delay (대기 지연) : 라우터에 도착한 패킷이 전송되기 전 라우터의 Queue에 대기하는 시간이다.

    • 순간적으로 많은 양의 패킷이 라우터에 도착한다면 Queue에 대기하는 패킷이 많아지고, 이에 따라 대기 시간도 길어질 것이다.

      • `패킷이 라우터에 도착하는 속도 > 링크의 용량 : Queue Length 증가
    • 라우터의 버퍼가 가득 찼다면, Queue에 더이상 패킷을 저장할 수 없기 때문에 패킷 손실이 발생한다.

      • No Free buffer : Packet loss
    • 패킷의 Queuing Delay는 일정하지 않아 이를 측정하고 조절하는 것은 매우 어렵다.

      • Queuing Delay는 일정하지 않기 때문에 Jitter의 주원인이 된다.

1-2. Transmission Delay

  • Transmission Delay (전송 지연) : 패킷이 링크를 통해 전송되는 데 걸리는 시간이다. 이는 패킷의 크기와 링크의 전송 속도(용량)에 따라 결정된다.

    • LL : 패킷의 크기

    • RR : 링크의 전송 속도 (throughput)

    • dtrans=LRd_{trans} = \frac{L}{R}

  • 예제

    • L=10KbitsL = 10Kbits

    • R=100MbpsR = 100Mbps

    • dtrans=10103bits100106bps=1104=0.1msd_{trans} = \frac{10*10^3bits}{100*10^6bps} = \frac{1}{10^4} = 0.1ms

1-3. Propagation Delay

  • Propagation Delay (전파 지연) : 패킷이 매체(광섬유, 구리선 등)를 통해 물리적으로 이동하는 데 걸리는 시간이다. 이는 링크의 길이와 신호의 전파 속도에 따라 결정된다.

    • dd : 링크의 길이

    • ss : 전파 속도

    • dprop=dsd_{prop} = \frac{d}{s}

  • 예제

    • d=3000kmd = 3000km

    • s=2108m/ss = 2 * 10^8m/s

    • dprop=3106m2108m/s=32102=0.015s=15msd_{prop} = \frac{3 * 10^6m}{2 * 10^8m/s} = \frac{3}{2 * 10^2} = 0.015s = 15ms

1-4. Processing Delay

  • Processing Delay (처리 지연) : 라우터에 패킷이 도착했을 때 패킷 처리(예를 들면 오류 체크)에 걸리는 시간이다.

2. Throughput

  • Throughput (처리량) : 네트워크의 특정 지점에서 1초동안 통과하는 비트 수로 정의된다.

    • 단위는 bpsbps를 사용한다.

    • 데이터의 전송 속도와 같은 개념이다.

    • 링크마다 다른 Throughput을 가질 수 있다.

데이터가 서로 처리량이 다른 세 개의 링크를 통과하는 상황을 가정해보자.

  • 링크 1의 전송 속도는 200kbps200kbps

  • 링크 2의 전송 속도는 100kbps100kbps

  • 링크 3의 전송 속도는 150kbps150kbps

    • 위와 같은 상황에서 링크 전체의 전송 속도는 최소 처리량인 100kbps100kbps로 제한된다.

    • 이는 가장 느린 링크가 병목 현상을 일으켜, 전체 경로가 허용할 수 있는 최대 데이터 전송량을 결정하기 때문이다.

  • Bottleneck (병목 현상) : 병목 현상은 여러 링크로 이루어진 네트워크의 데이터 전송 속도가 최소 전송 속도로 결정되는 현상인데, 이는 마치 좁은 목을 가진 병에서 물이 나오는 속도가 병 목의 크기에 따라 결정되는 것과 비슷한 이치이다.

    • 병목 현상이 발생하도록 하는 링크를 병목 링크(Bottlenet link)라고 부르며, 이 링크는 처리량이 가장 낮은 링크이다.
  • Backbone Internet : 백본 인터넷처럼 양 끝단에 일반 링크가 위치하고 중간에는 매우 빠른 전송 속도를 가진 링크로 구성된 네트워크는 어떨까? 이 경우에도 마찬가지로 양 끝단 링크로 인해 병목 현상이 발생한다.

2-1. Network scenario

  • 네트워크 구성

    • 각 서버들은 RSR_S의 전송 속도를 갖는다.

    • 각 클라이언트들은 RCR_C의 전송 속도를 갖는다.

    • 서버와 클라이언트는 하나의 백본 링크 RR을 공유하며, 현재 10개의 연결이 이 백본 링크를 나눠 쓰고 있다.

    • 각 연결의 End-to-End Throughput은 다음과 같이 계산된다.

      • min(RC,RS,R10)min(R_C, R_S, \frac{R}{10})
    • 실질적으로, RC,RSR_C, R_S가 병목 링크가 되는 경우가 많다.

      • 즉, 대부분의 환경에서 클라이언트나 서버의 전송 속도는 백본 링크의 속도보다 느리므로, 병목 링크가 된다.

3. Congestion Control

  • Packet loss (패킷 손실) : 패킷 손실은 네트워크 통신 과정에서 패킷이 목적지에 제대로 도착하지 못하거나, 중간에 버려지는 경우 발생한다.

    • 라우터는 패킷을 처리하고 포워딩 하기 전, 버퍼에 각 패킷을 저장하여 대기시킨다.

      • 이 버퍼는 크기가 제한되어 있다. 따라서 버퍼가 가득 찬 상태라면(No free buffer) 새로 도착한 패킷은 버려진다.
    • 패킷 손실은 네트워크 성능에 심각한 악영향을 미친다.

      • 패킷 손실 발생 : 네트워크의 혼잡도가 크다는 뜻이므로, 패킷을 재전송 하더라도 여전히 손실 될 가능성이 존재한다.

      • 재전송 패킷이 많아진다면, 이로 인해 네트워크 혼잡도가 증가하는 악순환이 발생할 것이다.

  • Congestion (혼잡) : 패킷이 전송되는 속도가 네트워크의 처리량을 넘어서서 네트워크가 과부화 된 상태이다. 네트워크가 혼잡 상태에 빠지게 되면, 처리량이 감소하고 지연이 커지는 문제가 발생한다.

    a. load, Delay 관계 그래프

    • No-congestion area (비혼잡 구간) : 부하가 적은 구간에선 지연 그래프의 증가율이 낮지만, 부하가 네트워크 용량에 근접할수록 지연이 무한대로 발산한다.

    • Congestion area (혼잡 구간) : 패킷 손실이 발생하기 때문에, 부하에 따른 지연을 그래프로 나타낼 수 없다.

    b. Throughput, load 관계 그래프

    • No-congestion area (비혼잡 구간) : 부하가 증가함에 따라 처리량도 함께 증가한다.

    • Congestion area (혼잡 구간) : 초기에는 처리량이 증가하지만, 부하가 증가함에 따라 처리량이 점차 감소한다.

3-1. Backpressure Method

  • Backpressure Method : 혼잡이 발생했을 때 데이터의 흐름을 역방향으로 제한하는 혼잡 제어 기법이다.

    • 위 예시에서 라우터 3에 혼잡이 발생하였다.

    • 혼잡이 발생한 라우터는 데이터 흐름 순서상 이전 라우터에게 신호를 보내 데이터 전송을 늦추거나 멈추도록 요청한다.

    • 각 라우터들은 연쇄적으로 이전 라우터에 신호를 전달하며, 이 신호는 출발지까지 도달한다.

    • 이 과정은 혼잡이 해결될 때까지 데이터 흐름이 느려지거나 중단되도록 하기 때문에, 혼잡 제어 효과가 있다.

3-2. Choke Packet

  • Choke Packet : 혼잡이 발생한 라우터가 출발지로 패킷을 보내 데이터 전송 속도를 줄이도록 요청하는 방식이다.

    • 위 예시에서 라우터 3에 혼잡이 발생하였다.

    • 혼잡을 감지한 라우터는 출발지로 초크 패킷을 전송하고, 이 패킷을 받은 출발지는 데이터 전송 속도를 줄이거나 전송량을 조절한다.

    • 이 방식은 백프레셔와 달리 혼잡이 발생한 지점에 직접 패킷을 보냄으로써 혼잡을 제어한다.

profile
한량 극복 프로젝트

0개의 댓글