+) 1 bps = 1000bit/set
- R bps : link bandwidth
- L bits: packet length
- a : average packet arrival rate
Delay
packet switch에서 delay에 순서가 존재
- 1. (nodal) processing delay : packet의 오류가 없는지 어디로 보내야하는지 결정하기 위한 시간
- 한 hop(이전 노드로부터 링크를 거쳐 전송되면서)을 거치면서 비트 오류가 발생했는지 목적지로 가기 위해 어느 output port로 내보내야 하는지 등을 결정하는데 소요되는 delay
- 2. queueing delay : 자신의 차례가 될 때까지 buffer에서 기다리는 시간
-
- router의 혼잡도에 따라 delay가 달라짐
- 다른 패킷이 링크를 사용중이어서 바로 전송될수 없는 경우 차례가 될 때까지 기다는 delay
- traffic intensity (TI) = L*a/R
-
- = (bit가 queue에 도착하는 평균 속도) / (queue에서 나간 속도)
-
- 서비스할 수 있는 양보다 일이 더 많으면 delay 무한정 증가
- 두 선이 교차하는 지점 이후로 급격히 증가
- 저 지점이 대충 0.7
- traffic intensity가 커질 수록 delay 증가, packet loss 발생
- 예제
- transmission rate가 1 kbps인 링크에 전송하기 위해
- 5개의 packet들 (개당 100bit)이 초당 큐에 도착.
- 이 때의 TI == (100 bits/packet * 5 packet/second) / 1kbps
- == 500 bps / 100 bps = 0.5
-
- 3. transmission delay : 차례가 되어 link에 packet이 실리는 데 걸린 시간
- 패킷의 비트들을 링크로 내보내는데 소요되는 delay
- == (L bits) / (R bps)
- 예제
- 4000bit 길이의 packet을 link bandwidth가 1000Mbps인 link에 실을 때 걸리는 시간
- = 4000bit / 1000*10^6 bit/s = 4/10^6 sec = 0.000004 sec
- 초당 몇 개의 packet을 실을 수 있는가?
- 1000 * 10^6 bits / 4000 bits = 10^6 / 4 = 25*10^4개
- 4000bit 길이의 packet을 link bandwidth가 1000Mbps인 link에 실을 때 걸리는 시간
- 4. propagation delay : 전송하는데 걸린 시간
- 링크의 한 끝에서 다른 끝에 도달하는데 걸리는 delay
- == d / s
-
- d : link의 길이, s : 링크 위를 움직여가는 속도 (~2*10^8 m/sec)
- 전선이 길 수록 오래 걸림 ( 위성 통신이 오래 걸리는 이유)
-
Free (available) buffer
buffer가 꽉 차면 packet loss 발생
d_nodal : 한 노드를 거치는 데 걸린 시간
- packet이 한 hop을 건너오면서 에러가 발생했는지, 다음 link는 어디로 해야하는지 등등에 따라 달라짐
- 현대는 msec 이하의 delay를 가짐
Caravan에 빗대어 설명
차 한 대를 1bit로 고려
10대의 차가 전부 다 첫 번째 톨게이트를 통과하기 위해서 개당 12초씩 소요
- == (transmission time)
- 모든 차가 톨게이트를 통과하려면 120초가 걸림
마지막 차가 첫번째 톨게이트 통과 후 두 번째 톨게이트를 나오는 데 까지 걸린 시간은 1hr
- == (propagation time)
- 차의 속도가 (100km/hr) 이므로
- 100km / (100km/hr) = 1hr
모든 차가 두번째 톨게이트까지 오는 데 총 걸린 시간 == 1hr + 120초
<변형>
차의 속도가 (1000km/hr)로 더 빠르게 propagate 중이라면,
첫번째 톨게이트를 통과하는데 1분이 걸린다면
첫번째 차는 모든 차가 첫번째 톨게이트를 빠져나오기 전에 도착
100km를 달리면서 (100km / (1000km/h) == 1/10h == 6분) 소요
총 1+6 == 7분 소요
그럼 마지막 차 중 3대의 차는 첫번째 톨게이트를 기다리고 있음
즉, 링크 길이보다 패킷 하나의 크기가 더 크다면,
패킷의 앞부분은 이미 링크의 끝에 도달했지만
끝부분은 아직 링크에 올라오지 못한 경우도 존재할 수 있음
Real World Internet delays
traceroute program
패킷이 인터넷에서 목적지까지 전달되면서 실제로 각 hop에서 발생하는 delay를 보여주는 application program
- source부터 destination까지 가는 길에 3개의 probe packet을 보냄.
- 이를 받은 router는 이에 대한 응답을 보냄.
- 그래서 probe를 보낸 시점과 응답 받은 시점의 차이를 계산하여 네트워크의 delay를 측정
- 한 라우터 당 3 probes 씩 순차적으로
-
- 19 개의 router를 지남
- 다음 번 router로 넘어갈 수록 delay가 점점 길어짐
- 7-8 router 사이에 delay가 급격히 증가
- 이는 미국 -> 유럽 이라 trans-oceanic link를 지났음을 추측
- * : 값이 측정되지 않음
-
Packet Loss
- buffer가 꽉 찬 상태에서 packet 들어오면 packet loss 발생
- loss된 packet이 바로 이전 노드에 의해 다시 전송되기도 하고,
- 아예 source부터 다시 해야할 수 있음
Throughput
- 단위 시간당 처리할 수 있는 일의 양
- 단위 : bit/time
- 종류
-
- instantaneous : 특정 순간에 있어 속도
- average : 전체 시간에 대한 속도
-
- server끼리 파일을 주고받음. 중간에 하나의 packet switch를 거치게 됨
- packet switch를 기준으로 앞뒤로 link capacity가 Rs bit/sec, Rc bit/sec이다
- 이 때 source server가 파일을 보내는 것은, 파이프에 액체를 흐르게 하는 것과 유사
- 1초당 Rs bit 만큼 흘릴 수 있는 파이프라고 생각하면 된다
- BottleNeck link : 초당 bit 전송 량이 적은 쪽에 맞추어 흐르게 된다
- Rs < Rc : 만약 서버에 연결된 파이프가, 데스크탑에 연결된 파이프보다 더 많은 bit를 나른다면?
- Rs > Rc
- Internet에 Throughput 보기
- 가운데 R이 인터넷이라고 하면, 거기에 10개의 파이프가 연결 되어 있다고 가정하자
- 이 때의 end-to-end throughput == min(Rc, Rs, R/10)
- 여기서 Rc, Rs로 인해 종종 bottleneck이 발생
- R link 자체의 대역폭(bandwidth)가 크더라도,
- 그 link를 여러 connection이 공유하면
- intervening traffic으로 인해
- 그 대역폭이 큰 R link에 bottleNeck이 발생할 수 있음.
예제
- 두 라우터 사이를 연결한 인터넷 R에는 4개의 커넥션이 지나고 있음.
- 이 때의 throughput == min( 20Mbps, 40Mbps, 400Mbps/4) == 20Mbps
정리
그림 속 첫번째 link에서 가용할 수 있는 bandwidth = (10-3) = 7Mbps
이것이 가장 작은 throughput이기 때문에 전체 네트워크의 throughput도 7Mbps가 된다.
'CS > Network' 카테고리의 다른 글
Application layer (0) | 2021.10.15 |
---|---|
Networks Under Attack : Security (0) | 2021.10.15 |
Protocol Layers, Service Models (0) | 2021.10.15 |
Network Core - Switching, ISP (0) | 2021.10.15 |
Internet & Network Edge (0) | 2021.10.15 |