이상적으로,,! 인터넷 서비스는 데이터의 손실 없이 우리가 원하는 만큼의 많은 데이터를 이동시킬 수 있다.
하지만 이것은 현실에서는 불가능
➡️ 두 종단 시스템 간에 throughput을 제한하여 종단 시스템 간에 delay를 야기시키며 실제로 패킷을 잃어버리기도 한다.
데이터를 발생시키는 소스(source)로부터 목적지까지 패킷을 전달하는데 걸리는 시간이 평균적으로 얼마나 되는가
→ 딜레이가 짧은 네트워크가 좋은 네트워크!
당연함~ 데이터가 목적지까지 빨리 도착할수록 좋은 것~
delay에는 Processing Delay, Queueing Delay, Transmission Delay, Propagation Delay 4가지가 있으며,
이 지연들이 쌓여서 total nodal delay를 일으킨다.
‼️ 각 딜레이에 대해 살펴보기 전에 그림과 함께 패킷의 이동 과정을 보자!
기본적으로 패킷이 한 호스트에서 시작하고, 라우터들을 통과하며
목적지 == 다른 호스트에서 끝난다는 것을 기억할 것.
그렇다면!
1️⃣ 호스트 A에서 나온 패킷이 왼쪽 라우터에 도착할 것임
2️⃣ 이 때 라우터는 해당 패킷에 대한 output link를 결정하기 위해서 "패킷 헤더"를 조사한다
3️⃣ 그리고 선택된 링크로 해당 패킷을 보낸다.
(사실 그림에서는 링크가 하나 밖에 없음)
📌 그런데 여기서 실제로! 패킷이 링크로 전송되려면!
1. 그 링크에 현재 전송되는 다른 패킷이 없고,
2. 큐에 자신보다 앞선 다른 패킷들이 없어야 한다
만약에 링크에 현재 전송되는 패킷이 있거나, 큐에 대기하는 다른 패킷이 있으면?
→ 새로 도착하는 패킷은 큐에 들어감!
오케이
그러면 이제 진짜 각 딜레이에 대해 알아보자고
패킷 헤더를 조사하고, 그 패킷을 어디로 보낼지 결정하는 시간
업스트림 노드에서 라우터로 패킷의 비트를 전송하면서 발생하는 패킷의 비트 수준 오류를 조사하는 데 필요한 시간과 같은 요소를 포함할 수 있음.
고속 라우터에서 처리 지연은 일반적으로 수 msec.(작다는 뜻)
이후에 라우터는 해당 패킷을 큐에 전송함!
패킷이 큐에서 링크로 전송되기 전까지 대기하는 시간
앞의(이전에 도착한) 패킷 수에 의해 결정됨!
if
큐가 비어있고 다른 패킷이 전송중이 아니라면 큐잉 딜레이 == 0
else if
트래픽이 많고, 많은 패킷이 전송 대기중이면 큐잉 딜레이는 매우 길어짐
수 msec에서 ms에 이름
링크로 패킷을 밀어넣는 시간
Transmission Delay
==L
/R
L
= 패킷의 길이 (bits)R
= 링크의 전송률 (bps)R
이 bandwidth에 의해 결정즉, 패킷의 사이즈와 링크의 속도(=bandwidth)에 따라 변동됨
msec ~ ms
링크의 처음부터 오른쪽 라우터까지의 전파에 필요한 시간
Propagation Delay
==d
/s
비트는 링크의 전파속도로 전파됨.
여기서 전파속도는 링크의 물리매체(광섬유, 꼬임쌍선 등)에 따라 다름!
속도는 빛의 속도와 같거나 약간 적음
d
: 라우터 사이의 거리 (link of physical link)
s
: 링크의 전파 속도 (propagation speed)
패킷의 마지막 비트가 도착 라우터 노드에 전파되면,
이 비트와 앞선 모든 비트들은 모두 도착 라우터에 저장된다.
이 도착 라우터에서 이러한 과정이 다음 노드로 전달되기 위해 반복된다.
수 초(s)에 이름!
Transmission delay : 라우터가 패킷을 내보내는 데 필요한 시간
➡️ 패킷 길이 & 링크 전송률의 함수
➡️ 두 라우터 간 거리 상관없음
Propagation delay : 비트가 한 라우터에서 다음 라우터로 전파되는데 걸리는 시간
➡️ 라우터 사이 거리에 대한 함수
➡️ 패킷 길이 & 링크 전송률 상관 없음
트랜스미션 딜레이와 프로파게이션 딜레이의 차이를 이해하고자
굉장히 흔한 비유를 들어보겠음. (사실 교재에 있는거)
✅ 요금계산소가 전체 자동차를 밀어내는 데 걸리는 시간 == 2분
(12초*5=60초=2분)
→ 뭐랑 유사하겠음?! Transmission Delay
✅ 한 요금계산서에서 다음 요금계산서까지 이동 시간 == 1시간
(시속 100km로 100km 이동)
→ Propagation Delay
✅ 차량 대열이 한 요금계산서 앞에 저장되는 시간으로부터 다음 요금계산서 앞에 저장될 때까지의 시간은
두 딜레이의 합 == 62분
보낸 패킷 중에서 얼마나 분실이 되는가
위 시간 동안에 전달될 수 있는 트래픽의 총량
✅ instantaneous
순간 스루풋 == 패킷의 양이 최대일 때 어느 정도의 스루풋이냐
✅ average
평균 스루풋 == 전체 시간을 보고 평균을 가지고 계산
➡️ bottleneck link(평균 스루풋으로부터 너무 전송 용량이 낮은)를 없애는 것이 스루풋을 높이는 방법!