본문 바로가기
네트워크

[네트워크] Chap 1.3 - Loss, Delay, Throughput

by 개발 고양이 2024. 11. 9.

How do loss and delay occur?

 

1-hop delay (= nodal delay)
processing delay → queueing delay → transmission delay → propagation delay

end-to-end delay
hop 수 * (1-hop delay)

 

① processing delay

L-bit 패킷이 라우터의 input port에 모두 도착하여 2계층 프로토콜에 의해 처리된 후, 3계층에서 IP 헤더를 읽고 output port를 결정할 때 발생하는 delay

 

② queueing delay

Resource(link bandwidth) reservation을 하지 않기 때문에 중간 라우터의 output buffer에서 대기하느라 발생하는 delay

 

③ transmission delay

L-bit를 signal로 변환할 때 걸리는 시간

 

④ propagation delay

1-bit가 1-hop을 이동하는데 걸리는 시간 (tx에서 rx로, 즉 link의 one end에서 another end로)

 

// input buffer에서 output buffer로 L bit를 옮기는 일을 switching한다고 말한다(Switching technology가 해준다)

input buffer은 이론적으로는 overflow가 있을 수 있지만, 대부분의 라우터에는 input buffer overflow가 없다.


Four sources of packet delay

d_proc :  nodal processing
  • 비트 오류 확인 (at L2, L3)
  • output link 결정 
  • 일반적으로 < microsec → 매우 작다
    L-bit packet이 라우터의 input port에 모두 도착하여 L2 protocol에 의해 처리된 후, L3에서 packet의 IP header를 조사하고 output port를 결정할 때 소요되는 지연
d_queue : queueing delay
  • time waiting at output link for transmission
  • router의 congestion level에 dependent (TCP가 함)
    queue에서 기다리는 지연
    queue에 있는 패킷의 수에 의존 → 그때그때 다름
    transport layer에서 host속도를 제어하며 해결한다.
    output buffer을 아무리 크게 만들어도 발생할 수 있는 delay

d_trans : transmission delay 
  • L : packet length (bit)
  • R : link bandwidth (bps)
  • d_trans = L / R
    bit를 signal로 바꾸는데 걸리는 시간 (local하다)

d_prop : propagation delay
  • d : length of physical link
  • s : propagation speed(=전파 속도) (~ 2x108 m / sec) 
  • d_prop = d / s
    1-bit가 목적지까지 얼마나 빨리 가는지

d trans 와 d prop 는 엄연히 다름!

d trans = L/R

d prop = d/s


Caravan anology

 

car 1대 = 1 bit

caravan (10대의 car) = 1 packet

toll booth = router

 

 

d_trans  <  d_prop 

(1) car propagete at 100km/hr (자동차의 속도는 100km/hr)

(2) toll booth takes 12 sec to service car (bit transmission time) (한 대의 자동차가 톨게이트에서 정산하는데 12초)

 

Q : 10대의 자동차가 2번째 톨게이트까지 liend up 되려면 얼마나 걸릴까?

A : 1st 톨게이트에 총 10대의 차량이 줄서있으므로 12*10 = 120초

     마지막 자동차가 첫 번째 톨게이트에서 두 번째 톨게이트까지 이동하는 데 걸리는 시간 : 100km / (100km/hr) = 1hour

     => 120 sec + 1 hour = 62min

 

propagation이 transmission보다 길다 (위성통신 or Planet간의 통신이 이러하다!)

→ 내가 패킷 단위로 보내서 L bit를 signal로 다 바꿨는데 첫번째 bit는 아직도 가고 있음

 

d_trans  >  d_prop

(1) car propagete at 1000km/hr (자동차의 속도는 1000km/hr)

(2) toll booth takes 1 min to service car (bit transmission time) (한 대의 자동차가 톨게이트에서 정산하는데 1분)

 

Q : 10대의 자동차가 2번째 톨게이트까지 liend up 되려면 얼마나 걸릴까?

A : 1st 톨게이트에 총 10대의 차량이 줄서있으므로 1min*10 = 10분

     마지막 자동차가 첫 번째 톨게이트에서 두 번째 톨게이트까지 이동하는 데 걸리는 시간 : 100km / (1000km/hr) = 0.1hour

     => 1min + 0.1 hour = 16min


Traffic intensity (TI) at Output queue

 

Queueing delay in an output queue can be estimated by an index called "Traffic Intensity (TI)",

TI = L a / R

  1. TI = (arrival rate into output queue) / (departing rate from output queue)
  2. arrival rate into output queue = L-bits x a packets/sec. (초당 a개의 L-bit 패킷이 큐에 진입)
  3. departing rate from output queue = outgoing link의 transmission rate R bps
  4.  As a value of TI gets closer to 1, queueing delay rapidly increases. (0.8을 넘어가면 exponential하게 확 늘어난다)

ex) 초당 5개의 패킷(한 패킷당 100bit)이 큐에 도착(transmission rate는 1 kbps)한다. TI를 구하시오

A : L=100bit , a=5 , R=1kbps

     TI = La/R = 100*5 bps / 1000 bps = 0.5


"Real" Internet delays and routes

    How to measure a real delay to a host (A).
    - Type "tracert(A's IP address)" on your Window system. (cmd창에 tracert @@@.ac.kr)
    - Type "traceroute (A's IP address)" on your Linux or Unix systems.
    - This command uses TTL(Time-To-Live) field in an IP header and ICMP (Internet Control Management Protocol) messages.  (Linux-like OS에서는 UDP를 이용한 응용으로 작성되어있음)

     

    traceroute를 구현하는 방법 중 하나는 ICMP라는 프로토콜을 이용하는 것

    IP 헤더 안에 TTL (Time-To-Live) 필드를 둔다.


    Packet loss

    packet switching에서 resource reservation 안함 + buffer의 capacity는 한정적

    => 속도 차이 발생 → packet loss 발생

     

    output queue에 data가 지나치게 몰릴 때 (transmission rate, R값 보다 지나치게 많은 rate의 bps가 들어오면) queue가 넘쳐 loss가 생긴다.

     

    lost packet은 error recovery를 통해 retranasmissted되기도 한다. (previous node 또는 src end system 또는 not at all)

     


    Throughput

    end to end의 productivity

    초당 sender에서 receiver까지 보낼 수 있는 비트 수 (end to end 개념)

    거쳐가는 여러 link들의 capacity( = R)값에 의존 (queueing delay는 상황에 따라 다르므로)

    성능(link capacity)이 가장 떨어지는 link, 제일 느린 링크에 의해서 throughput이 결정된다! (bottleneck link라고 함)

    end-to-end path에서 거쳐가는 링크들의 transmission rate (R)이 가장 작은 link에 의해서 throughput이 결정됨

    (throughput에 문제가 있어 네트워크를 개선해야 한다면 bottleneck link를 찾아 throughput을 올려야 함)

     

    정리 : throughput은 real time의 end-to-end 개념이다!

     

    Throughput Transmission rate
    -  amount of bits delivered between two end hosts over a specific period of time

    - e2e path 중 bottleneck link의 성능에 의해 결정됨
    usually about link's capacity (amount of bits transmitted)
    (bit → signal)
    real-time measurement not real-time measurement
    단위는 bps로 똑같다.