[컴퓨터 네트워크] 다양한 지연 그리고 패킷 스위칭

Pakxe·2023년 10월 13일
0

컴퓨터 네트워크

목록 보기
13/16
post-thumbnail

구성

  • 스위치
  • 라우터
  • 다양한 딜레이
  • 요약

이 정리는 23-2에 수강한 컴퓨터 네트워크 강의를 기반으로 하였습니다.

시작하기

네트워크에서 종단 시스템들은 서로 메세지(message)를 교환한다. 이 메세지를 목적지 종단 시스템으로 보내기 위해 출발지 종단 시스템은 긴 메세지를 패킷으로 분할한다. 그리고 이 패킷들은 링크와 패킷 스위치를 거쳐 목적지 종단 시스템에 도착한다.

패킷 스위치는 크게 라우터와 스위치로 나뉜다고 했다. 따라서 이 라우터와 스위치에 대해 알아볼 것이다.

그리고 이 네트워크 안에는 다양한 지연이 존재한다.

추석에 물류 대란이 일어나 택배가 늦게 도착하는 것처럼, 패킷도 많이 몰리면 지연되거나 패킷이 없어지기도 한다.
출발지 종단 시스템에서 목적지 종단 시스템까지 빛의 속도로 바로 메세지가 전송되는 것이 아니며 지연이 존재한다.

패킷은 손실시 다시 요청해서 받아올 수 있다(헤더의 패킷 번호로). 그렇다는건 패킷이 손실될 수도 있다는 뜻이다. 만약 금융 서비스에서 이런 패킷 손실이 일어나면 대혼란이 발생하기 때문에 패킷을 잃어버리지 않고 전달하는 방법에 대해서도 알아볼 것이다.

마지막으로 두 전달 방법에 대해서 예제를 통해 차이를 알아보고 마치려고 한다.

스위치

스위치는 보통 종단 시스템에 1차 연결되어있는 네트워크 장치이다. 하나의 네트워크 안에서의 전달을 수행한다. 또한 네트워크로 들어가는 입구라고도 할 수 있다.

스위치는 들어오는 링크와 나가는 링크가 연결되어있다. 이 링크들은 여러개일 수 있다. 1번 입력링크로부터 온 패킷을 2번 출력 링크로 보내기와 같은. 입출력을 연결해 다른 경로로 패킷을 보내주는 역할을 한다. 다리(bridge)같은 장치이다.

스위치는 자신과 1차 연결된 장치들만 기억한다. 그 이상 멀리 연결되어있는 장치에 대해서는 생각하지 못한다.

기차 선로의 방향을 바꾸는 장치(선로 전환기)를 생각하면 쉽다. 우리의 목적지는 서울 강북이며 기차를 타고 이동하고 있다. 그런데 서울과 인천으로 가는 두 갈래의 길이 있다고 가정해보자.

기차가 달려오면서 인천행이면 그대로, 서울행이면 선로전환기를 작동시켜 인천으로 보낸다. 자 선로 전환기를 작동시켜 기차를 서울로 보냈다. 그런데 만약 저 앞에 서울의 강남과 강북으로 갈리는 또 다른 갈래길이 있다고 해보자. 이곳에도 선로 전환기가 있다. 그런데 아까 처음 만났었던 1차 선로 전환기는 우리의 목적지가 서울 강남인걸 알고 서울로 보내준걸까?

아니다. 서울인지 인천인지만 보고 그 이상의 자세한 주소는 보지 않았다.

스위치도 이와 마찬가지로 멀리 연결되어있는 장치에 대해서 관심이 없다. 일단 큰 분류만 해줄 뿐이다.

라우터

라우터도 네트워크를 구성하는 네트워크 장치이다. 보통 네트워크와 네트워크 사이의 전달을 수행한다.

패킷이 목적지 종단 시스템에 도착하려면 많은 네트워크 장치들을 거쳐가야한다. 또한 목적지 종단 시스템까지의 경로는 하나가 아닐 수도 있다. 이런 상황에서 어떤 경로가 가장 최적이며, 어떤 경로가 혼잡이 없는지, 어떤 장치들을 거쳐야 하는지 결정해야한다. 이와같은 업무를 수행해주는 것이 라우터이다.

만약 목적지 종단 시스템이 이동 중이라 계속 위치가 바뀌는 경우, 빠르게 다른 경로를 찾아야 한다. 이런 기능은 라우터 내부의 라우팅 알고리즘이 담당한다.

저장-후-전달(store-and-forward)

패킷 스위치는 저장-후-전달 전송 방식을 사용한다.

저장-후-전달은 출력 링크로 첫번째 패킷의 첫 비트를 전송하기 전에 하나의 완전한 패킷을 다 받아야 함을 의미한다. 아래 그림처럼 패킷의 앞부분이 먼저 도착해도 바로 목적지로 전송하지 않고 이 패킷의 나머지 비트를 기다린다.

라우팅 테이블

라우터는 라우팅 테이블을 갖고있다. 이 테이블은 목적지와 출력 링크 쌍으로 구성되어있다. 목적지로 서울이 들어오면 1번 링크로 나가고, 인천이라면 2번 링크로 나가는 형태라고 생각하면 된다.

이 라우팅 테이블을 구성하고 업데이트하기 위해 라우팅 알고리즘이 사용된다.

지연들

패킷이 경로를 따라 한 노드(라우터 등)에서 다음 노드(라우터 등)으로 전달된다. 이 과정의 각 노드에서 패킷은 다양한 지연을 겪는다.

중요한 지연으로는 노드 처리 지연(nodal processing delay), 큐잉 지연(queuing delay), 전송 지연(transmission delay), 전파 지연(propagation delay)이 있으며 이런 지연들이 쌓여 전체 노드 지연(total nodal delay)을 일으킨다.

패킷 스위치의 추가적인 특징

각 패킷 스위치는 접속(연결)된 여러 개의 링크를 갖고 있다. 각 링크에 대해 패킷스위치는 출력 버퍼(큐)를 갖고 있으며 그 링크로 송신하려고하는 패킷을 저장하고 있다. 아래 그림에서 가운데에 투명한 병같은 곳이 출력 버퍼이다.

(출처: https://medium.com/@ioseunggi/%EC%BB%B4%ED%93%A8%ED%84%B0%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-computer-networks-and-the-internet-d2e207a53db7)

노드 처리 지연

패킷 헤더를 조사하고 그 패킷을 어떤 출력 링크로 보낼지 결정하는 데에 걸리는 시간이다.

병원의 접수처에서 내 증상을 말하고 접수 인력이 관련 과로 연결해주는 시간을 노드 처리 지연이라고 할 수 있다.

큐잉 지연

앞에서 출력 버퍼에 그 링크로 송신하려고하는 패킷을 저장하고 있다고 했다. 만약 해당 링크가 이미 다른 패킷을 전송하고 있다면, 이 패킷 스위치에 방금 도착한 패킷은 출력 버퍼에서 대기한다. 이때 걸리는 대기 시간을 큐잉 지연이라고 한다.

병원가서 접수하고 의자에 앉아 진료를 기다리는 시간이 큐잉 지연이라고 생각할 수 있다.

패킷 손실
출력 버퍼는 무한 크기가 아니다. 유한한 크기를 가지고 있는데, 만약 이 크기보다 많은 양의 패킷이 버퍼에 쌓인다면 라우터는 버퍼에 있던 패킷 또는 막 도착한 패킷을 버린다. 이걸 패킷 손실이라고 한다.

전송 지연

전송 지연은 패킷의 모든 비트를 링크로 밀어내는 데 필요한 시간이다.

저장-후-전달 방식에 의해 수신 링크에서 라우터까지 하나의 패킷이 완전히 도착했다면, 이제 이 완전한 하나의 패킷을 라우터가 출력 링크로 밀어내기 시작한다. 이 패킷을 밀어내는데 걸리는 시간이 전송 지연이다.

아이가 아파 병원에 와서 진료를 기다리고 있고 차례가 되었다면, 내려놓았던 가방을 챙기고 아이를 업고 걸어서 이동하기 위한 준비를 마치는데 걸리는 시간을 전송 지연이라고 할 수 있다.

전파 지연

한 라우터에서 다음 라우터로 전파되는데 걸리는 시간이다. 이 전파 지연을 구하는 공식이 d/s(거리/전파속도)거리에 대한 함수이므로, 거리가 멀어질 수록 전파 지연이 크다.

병원 접수처의 의자에서 진료실까지 도착하는데 걸리는 시간이라고 할 수 있다.

이렇게 예시를 들어 전파 지연이 커보이지만 s(전파속도)는 거의 빛의 속력에 가까우므로 전체 지연에서 전파 지연이 차지하는 비율은 크지 않다.

전송 지연과 전파 지연의 차이

전송지연은 하나의 장치에서 링크를 타기 전까지의 지연 시간이며, 전파지연은 목적지까지 패킷이 도달하는데에 걸리는 시간이다.

요약

  • 스위치: 선로 전환기
  • 라우터: 경로찾기 알고리즘을 갖고 있음
  • 저장 후 전달: 완전한 패킷을 받을 때까지 일단 대기
  • 처리 지연: 알고리즘 동작 시간
  • 큐잉 지연: 대기줄 없어지는데 걸리는 시간
  • 전송 지연: 출력 링크로 밀어내는데 걸리는 시간
  • 전파 지연: 링크로 다른 라우터로 이동하는데 걸리는 시간

참고

https://dkswnkk.tistory.com/486

잘못된 내용이 있으면 pigkill40@naver.com 으로 연락주시기 바랍니다

profile
내가 꿈을 이루면 나는 또 누군가의 꿈이 된다.

0개의 댓글