라우터 버퍼 안에 패킷 대기열을 생각해보자.
- 패킷들이 링크에 도착하는 속도가 출력 링크 용량보다 클 경우 지연이 발생한다.
- 대기열에 있는 패킷들은 자신의 순서를 기다린다.
전체 노드 지연은
1) 노드 처리 지연(nodal processing delay)
2) 큐 지연(queueing delay)
3) 전송 지연(transmission delay)
4) 전파 지연(propagation delay)
이 네 요소의 합으로 이루어진다.
R: 링크 대역폭 (bits/sec)
L: 패킷 길이 (bits)
a: 평균 패킷 도착 속도 (packets/sec)
La/R: traffic intensity(큐가 무한하다고 가정할 때)
- La/R이 0에 가까울 경우, 큐 지연이 작다.
- La/R이 1에 가까울 경우, 큐 지연이 크다.
- La/R > 1, 평균 지연이 무한대이다.
실제로 링크 앞에 있는 대기열은 용량이 유한하다.
그래서 패킷 딜레이는 무한대까지 도달하지 않는다.
대신 패킷 손실이 발생한다!
큐가 꽉차있는 곳에 패킷이 도착할 경우, 라우터는 패킷을 버린다.
이때, 패킷이 손실되는 것이다.
정의: 송신자/수신자 간에 비트가 전송된 속도(bits/time unit)
네트워크의 각 link의 capacity가 다를 수 있다! 이런 상황에서 자기가 가지고 있는 capacity를 낭비하거나 패킷이 버려지게 된다.
그렇다면 어떻게 해결해야 할까?
가장 좁은 길을 파악해서 그 좁은 길의 용량만큼 보내야 한다. 가장 좁은 길(가장 성능 낮은 link)을 bottleneck이라고 한다.
결국 이 bottleneck link가 전체 성능을 좌지우지한다.
위 그림에서는 각각 순서대로 Rs link와 Rc link가 bottleneck이다.
보통 R이 Rc와 Rs보다 큰 경우가 많기 때문에, Rc나 Rs가 주로 bottleneck이 된다.