이번 포스팅은 4-1과 연결됩니다.
새로운 파트인 네트워크의 성능을 평가하는 요소들에 대해
자세하게 알아보겠습니다!
1. 4-1 복습 : 패킷 스위칭 네트워크에서 발생하는 4가지 지연
1-1. transmission delay(=데이터 처리 시간)을 계산하는 방법
위 그림에서 데이터 처리에 걸리는 시간은 2*L/R 입니다.
즉, hop(링크)의 수 * 패킷의 크기 / 초당 hop의 처리 속도 입니다.
물론 hop마다 속도가 다르면, transmission delay의 결과는 다르겠죠 ^^
3hop의 경우는 3*L/R이 되겠네요!
1-2. queuing delay
arrival rate 속도가 output link 밀어넣는 속도보다 빠르면, 패킷은 큐잉되어있고, 앞에 큐잉되어 있는 패킷이 처리될 때까지 딜레이가 발생하게 됩니다. 이 때 라우터의 메모리가 가득차게 되면 packet loss가 발생하게 됩니다.
만약 10개의 메모리가 구비된 라우터에 있는 10개의 패킷이 있다면, 1번 패킷은 대기시간 없이 다음 노드로 전달될 겁니다.
하지만 10번째 패킷은 앞에 9개 패킷이 모두 전달된 후에 갈 수 있어 queuing delay가 발생됩니다. 만약 라우터 버퍼가 꽉찼다면 packet loss가 일어나는 것입니다. 마치 놀이기구를 타기 위해 줄서있는 것과 같은 모양세네요.
트래픽 intensity가 늘어남에 따라서 딜레이와 로스 발생 빈도수가 늘어납니다.
트래픽 intensity : 전체 네트워크 용량 대비해서 트래픽이 얼마나 많느냐를 나타내는 척도입니다.
1-2. delay 총정리
1) processing delay : 패킷이 도착을 했을 때 버퍼가 ip헤더를 보고 어느 링크로 fowading할지 결정합니다. 일반적으로 processing delay는 몇 마이크로 정도로 작다고 합니다.
2) queuing delay : 패킷이 포워딩까지 된 상태에서 링크로 전달되기 전 줄서있는 상태 즉, transmission되기 위해서 output link에서 기다리는 상태입니다. 앞에 몇 개의 패킷이 대기되어 있냐에 따라 가변적입니다. 마이크로세컨드~밀리세컨드를 오갑니다.
3) transmission delay : 링크로 패킷을 밀어넣는 시간입니다. 패킷의 사이즈와 링크의 속도(=bandwidth)에 따라 변동됩니다.
4) propagation delay : 전파가 빛의 속도로 빨리 전달되긴하지만, 전달 거리에 따라 지연되는 시간이 있습니다. 전파속도와 링크의 길이에 따라 딜레이 시간이 변동됩니다.
즉, transmission delay는 거리와 관련 없는 딜레이이고, propagation delay는 거리와 관련된 딜레이이고, 패킷 사이즈와는 관련이 없습니다.
1-3. 구식 톨게이트로 예시를 들어보자!
1대의 자동차는 bit이고, 자동차 10대를 하나의 패킷으로 봅니다.
톨게이트에서 한 대의 자동차를 처리하는 시간이 12초라고 가정을 합니다.
하나의 bit를 transmission하는데 12초가 걸린다는 소리입니다. (톨게이트로 자동차 10대 저장 후 1번 자동차 출발)
그렇다면, 2번째 부스에 라인업하기까지 얼마의 시간이 걸릴까요?
자동차가 고속도로를 달리는 시간을 100km/h라고 가정합니다.
10대의 차를 고속도로로 내보내는 시간인 transmission delay는 12초 x 10대 = 120초가 걸립니다.
마지막 차 1대가 걸리는 시간만 계산하면, propagation delay를 계산할 수 있습니다.
100km/100(km/hr) = 1시간이 걸립니다.
즉, 2번째 부스에 라인업 하기 까지 1시간 2분이 걸립니다.
자동차가 시속 1000km/hr로 달리며, 톨부스가 차 1대 처리하는 데 1분 걸린다고 가정해봅시다.
transmission delay = 1분 x 10대 = 10분이 걸리고,
propagation delay = 100km / 1000(km/h) = 1km / 10(km/hr)
즉, 1km / 10(km/hr) x 60 = 6분 걸립니다.
즉, 2번째 부스에 라인업하기까지 총 16분이 걸립니다.
이 결과로 propagation하는 전파 속도와 거리에 많은 영향을 미친다는 것을 알 수 있습니다.
그럼, 모든 차가 1번 부스에서 서비스 받는 것을 끝내기 전에 1번차는 2번 부스에 도착할 수 있을까요?
정답은 네 입니다!
1번차는 톨부스까지 가는데 transmission delay = 1분, propagation delay = 6분으로 총 7분이 소요됩니다.
모든 차가 톨게이트에 서비스 되는 것이 10분이기 때문에 7분 걸려 2번째 부스에 1번차가 도착했을 때도 1번 부스는 남은 3대의 차를 서비스 중입니다 : )
1-4. 표로 한번 더 이해해보자!
특히 마지막 3번 delay는 라우터 버퍼링 딜레이 입니다.
그리고 라우터 버퍼링 딜레이는 processing delay와 queuing delay를 아우르는 용어입니다.
queuing delay는 마치 명절 고속도로와 같습니다.
네트워크 혼잡에 따라서 큐잉 딜레이는 발생할 수도 있고 없을 수도 있습니다.
2. 실제 인터넷에서 발생하는 지연 측정
실제 인터넷에서 발생하는 지연은 리눅스나 윈도우에서 traceroute라는 명령어를 커맨드 창에서 써볼 수가 있습니다.
자신의 PC에서 네이버로 traceroute 명령어를 친다 가정한다면, 네이버로 갈 때까지 여러 라우터를 거치게 됩니다. 각 라우터를 거칠 때마다 3개의 probes 패킷을 보내고, 다시 반환받습니다. 이것을 통해 이 라우터까지 가는 시간을 측정할 수 있게 됩니다.
내가 목적지까지 가는데 몇 가지의 라우터를 거쳐가는지 시간은 얼마나 걸리는지 중간에 네트워크가 끊어지거나 네트워크가 혼잡이되서 목적지까지 도착 못할 때가 있다면 어디서 막혀서 못간것인지를 알아낼 때 traceroute 명령어를 사용하게 됩니다.
예시로 4번째 라우터에 문제가 있다면 반환이 없기 때문에 추론할 수 있는 것입니다.
이런 식으로 1번에서 19번 라우터까지 거치는데 3개의 probes와 걸리는 시간을 찍어줍니다.
8번 라우터와 같은 경우 걸리는 시간이 확 증가한 것을 볼 수 있는데요.
이는 바다에 링크가 묻혀있어 그 곳을 지나가는 것이라고 판단해볼 수 있습니다.
응답이 안온다면 리스폰스를 받을 수 없습니다. 라우터가 죽거나 트래픽이 혼잡상태여서 리스폰스를 못 보낸다거나로 추측해볼 수 있습니다.
3. packet loss
queue 또는 버퍼는 유한한 메모리를 가지고 있습니다. 패킷이 도착하면 이 메모리에 잠시 저장되었다가 다시 링크로 보내지게 되는데요.
만약 링크로 보내지는 속도보다 더 많은 패킷이 오게된다면 메모리에서 기다리는 패킷들이 쌓이게 됩니다.
어느 순간에는 메모리가 가득차게 되고 가득 찬 버퍼로 오는 패킷은 loss가 됩니다.
loss 된 패킷은 재전송을 통해 복구하고 있습니다.
4. Throughput
bit/sec 단위로 링크 속도와 비슷합니다.
sender와 receiver 사이에서 어느 정도 속도로 데이터를 보낼 수 있느냐를 판단하는 척도입니다.
'내가 몇 메가 bps 속도로 다운받을 수 있느냐', '내가 몇 bps로 데이터를 보낼 수 있느냐' 입니다.
4-1. instantaneous VS average
instantaneous : 자동차 순간속도와 같이 임의의 시간에서 나타나는 네트워크 속도로 초당 몇 bps를 받고 보낼 수 있느냐를 나타냅니다.
average : 긴 시간동안 관측을 했을 때 data rate의 평균을 나타냅니다.
4-2. 위의 그림에서 Rc의 링크 속도가 더 빠르다면 end to end throughput은 몇일까요?
링크에 종류에 따라서 링크 속도가 다릅니다.
가장 적은 속도가 end to end throughput이 됩니다. 즉, Rs가 됩니다.
아무리 빨라봤자 느린 쪽이 목을 쥐고 있기 때문입니다.
빠른 쪽의 링크 속도를 늘려봤자 throught은 늘지 않기 때문에 느린 쪽의 링크 속도를 늘려야 합니다.
4-3. bottleneck link
end to end link에서 end to end throughput을 결정짓는 link를 말합니다.
가장 작은 속도의 링크가 이 링크에 포함됩니다.
공채 자소서를 쓰다보니 약속된 일요일이 지나서야 올리네요 ㅠㅠ
그래도 열심히 기록을 남깁니다!!!
화이팅!!!
'CS > 컴퓨터 네트워크' 카테고리의 다른 글
컴퓨터 네트워크 6일차 : 어플리케이션 구조, 소켓, 어플리케이션 레이어 프로토콜, HTTP connection (0) | 2021.09.22 |
---|---|
컴퓨터 네트워크 5일차 : Throughput, Layering, ISP, Network Security (0) | 2021.09.14 |
컴퓨터 네트워크 4-1일차 : 네트워크의 4가지 지연 현상 총정리 : transmission delay / propagation delay / processing delay / queuing delay (0) | 2021.09.11 |
컴퓨터 네트워크 3일차 : 네트워크 계층, circuit vs packet 스위칭 (1) | 2021.09.07 |
컴퓨터 네트워크 2일차 : 라우터, 네트워크, 프로토콜 전반적인 이해 (0) | 2021.09.01 |