[CS] 네트워크 - 네트워크 성능

두두·2023년 10월 30일
0
post-thumbnail

📌 네트워크 성능 지표

이상적으로,,! 인터넷 서비스는 데이터의 손실 없이 우리가 원하는 만큼의 많은 데이터를 이동시킬 수 있다.
하지만 이것은 현실에서는 불가능
➡️ 두 종단 시스템 간에 throughput을 제한하여 종단 시스템 간에 delay를 야기시키며 실제로 패킷을 잃어버리기도 한다.

Delay(지연)

개념

데이터를 발생시키는 소스(source)로부터 목적지까지 패킷을 전달하는데 걸리는 시간이 평균적으로 얼마나 되는가
→ 딜레이가 짧은 네트워크가 좋은 네트워크!
당연함~ 데이터가 목적지까지 빨리 도착할수록 좋은 것~


delay에는 Processing Delay, Queueing Delay, Transmission Delay, Propagation Delay 4가지가 있으며,
이 지연들이 쌓여서 total nodal delay를 일으킨다.


‼️ 각 딜레이에 대해 살펴보기 전에 그림과 함께 패킷의 이동 과정을 보자!

기본적으로 패킷이 한 호스트에서 시작하고, 라우터들을 통과하며
목적지 == 다른 호스트에서 끝난다는 것을 기억할 것.

그렇다면!
1️⃣ 호스트 A에서 나온 패킷이 왼쪽 라우터에 도착할 것임
2️⃣ 이 때 라우터는 해당 패킷에 대한 output link를 결정하기 위해서 "패킷 헤더"를 조사한다
3️⃣ 그리고 선택된 링크로 해당 패킷을 보낸다.
(사실 그림에서는 링크가 하나 밖에 없음)

📌 그런데 여기서 실제로! 패킷이 링크로 전송되려면!
1. 그 링크에 현재 전송되는 다른 패킷이 없고,
2. 큐에 자신보다 앞선 다른 패킷들이 없어야 한다

만약에 링크에 현재 전송되는 패킷이 있거나, 큐에 대기하는 다른 패킷이 있으면?
→ 새로 도착하는 패킷은 큐에 들어감!


오케이
그러면 이제 진짜 각 딜레이에 대해 알아보자고

종류

1. Nodal Processing Delay

패킷 헤더를 조사하고, 그 패킷을 어디로 보낼지 결정하는 시간

업스트림 노드에서 라우터로 패킷의 비트를 전송하면서 발생하는 패킷의 비트 수준 오류를 조사하는 데 필요한 시간과 같은 요소를 포함할 수 있음.

고속 라우터에서 처리 지연은 일반적으로 수 msec.(작다는 뜻)

이후에 라우터는 해당 패킷을 큐에 전송함!


2. Queueing Delay

패킷이 큐에서 링크로 전송되기 전까지 대기하는 시간

앞의(이전에 도착한) 패킷 수에 의해 결정됨!

if 큐가 비어있고 다른 패킷이 전송중이 아니라면 큐잉 딜레이 == 0
else if 트래픽이 많고, 많은 패킷이 전송 대기중이면 큐잉 딜레이는 매우 길어짐

수 msec에서 ms에 이름


3. Transmission Delay

링크로 패킷을 밀어넣는 시간
Transmission Delay == L/R

  • L = 패킷의 길이 (bits)
  • R = 링크의 전송률 (bps)
    여기서 R이 bandwidth에 의해 결정
    (그림에서는 왼쪽 라우터에서 오른쪽 라우터까지의 링크 전송률)

즉, 패킷의 사이즈와 링크의 속도(=bandwidth)에 따라 변동됨
msec ~ ms


4. Propagation Delay

링크의 처음부터 오른쪽 라우터까지의 전파에 필요한 시간
Propagation Delay == d/s

비트는 링크의 전파속도로 전파됨.
여기서 전파속도는 링크의 물리매체(광섬유, 꼬임쌍선 등)에 따라 다름!

속도는 빛의 속도와 같거나 약간 적음

  • d : 라우터 사이의 거리 (link of physical link)

  • s : 링크의 전파 속도 (propagation speed)

    패킷의 마지막 비트가 도착 라우터 노드에 전파되면,
    이 비트와 앞선 모든 비트들은 모두 도착 라우터에 저장된다.
    이 도착 라우터에서 이러한 과정이 다음 노드로 전달되기 위해 반복된다.

    수 초(s)에 이름!


Transmission delay와 Propagation delay 비교

  • Transmission delay : 라우터가 패킷을 내보내는 데 필요한 시간
    ➡️ 패킷 길이 & 링크 전송률의 함수
    ➡️ 두 라우터 간 거리 상관없음

  • Propagation delay : 비트가 한 라우터에서 다음 라우터로 전파되는데 걸리는 시간
    ➡️ 라우터 사이 거리에 대한 함수
    ➡️ 패킷 길이 & 링크 전송률 상관 없음


트랜스미션 딜레이와 프로파게이션 딜레이의 차이를 이해하고자
굉장히 흔한 비유를 들어보겠음. (사실 교재에 있는거)

  • 100km마다 요금계산소 있음
  • 자동차는 시속 100km로 고속도로를 달림 (속도는 항상 유지됨)
  • 연속으로 10대의 차가 들어오고 이들이 일정한 순서대로 줄을 맞추어 달린다고 가정
  • 자동차 == 비트
    자동차 10대 전체 == 패킷
    이라고 하자!
  • 각 요금계산소는 12초마다 한 대의 차를 전송함
  • 이외의 차는 고속도로에 존재하지 않음
  • 첫번째 차가 요금계산소에 도착할 때마다 입구에서 다른 9대의 차가 모두 도착할 때까지 기다려서 대기
    (전체 10대 차량이 '전송'되기 전에 요금계산소에 '저장'되어야 함!)

✅ 요금계산소가 전체 자동차를 밀어내는 데 걸리는 시간 == 2분
(12초*5=60초=2분)
→ 뭐랑 유사하겠음?! Transmission Delay

✅ 한 요금계산서에서 다음 요금계산서까지 이동 시간 == 1시간
(시속 100km로 100km 이동)
Propagation Delay

✅ 차량 대열이 한 요금계산서 앞에 저장되는 시간으로부터 다음 요금계산서 앞에 저장될 때까지의 시간은
두 딜레이의 합 == 62분



Loss(손실)

개념

보낸 패킷 중에서 얼마나 분실이 되는가

  • 보통 중간 라우터에서 발생
  • 라우터에서 버퍼가 저장할 수 있는 양이 정해져 있는데
    이것을 넘어서는 데이터가 한꺼번에 도착하게 되면 용량을 넘어서는 패킷들은 잃어버림(loss)

Throughput(처리량)

개념

위 시간 동안에 전달될 수 있는 트래픽의 총량

✅ instantaneous
순간 스루풋 == 패킷의 양이 최대일 때 어느 정도의 스루풋이냐

✅ average
평균 스루풋 == 전체 시간을 보고 평균을 가지고 계산

  • source와 destination 사이에 여러 링크들이 있을 경우 전송 용량이 낮은 링크에 맞추어 전체 패스의 용량을 결정하게 되는 것

➡️ bottleneck link(평균 스루풋으로부터 너무 전송 용량이 낮은)를 없애는 것이 스루풋을 높이는 방법!

profile
멋쟁이가 될테야

0개의 댓글