Chapter 3. 네트워크 코어

MoonLight·2021년 10월 23일
0

컴퓨터 네트워크

목록 보기
3/10

0x03 네트워크 코어

Network Core : network of networks, mesh of interconnected routers,

즉, 인터넷의 end system을 연결하는 packet switch(그중에서도 router)들과 link들의 연결망


메시지 교환: 경로를 미리 설정하지 않고 메시지의 헤더에 목적지 주소를 표시해 전송하는 방식
회선 교환: 통신을 원하는 호스트가 데이터를 전송하기 전 연결 경로를 미리 설정해놓는 방식
패킷 교환: 회선교환과 메시지교환의 장점은 살리고, 단점은 최소화.

3.1 패킷 교환(Packet switch)


  • 응용계층에서 end system들은 서로 message를 교환한다. 이 message제어기능(e.g., TCP연결요청,TCP연결응답)과 이미지,텍스트,오디오같은 데이터를 포함한다.

  • 이러한 긴 message를 송신 end system이 packet이라는 작은 데이터 조각으로 분할한다.

    • 이 packet들은 communication link와 packet switch를 거치게 된다.

    • 이 packet들은 link의 최대 전송 속도로 communication link을 통해 전송된다.

      • e.g., If, 송신 end system 혹은 packet switch가 R bits/sec속도로 link상에 L bits의 packet을 송신

        ➡ packet을 전송하는 데 걸리는 시간 : L/R 초

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

  • 기본적으로 router는 input communication link로 들어온 packet을 output communication link로 교환하는 기능을 한다.
  • router가 communication link로 packet을 전송하기 전에 적어도 하나의 packet의 전체를 받아야 한다.
    • 즉, 라우터가 packet의 파편이 날아오는 족족 bits를 계속 저장(store)후, 한 packet의 모든 비트를 수신한 후에만 출력 링크로 그 packet을 전송(forward)

  1. 위 그림에서 packet 1의 일부분을 전송하였고, 동시에 라우터에 도착하였다.

  2. 위 그림이 좀 더 진행되면 송신 시스템에서 라우터로 L/R초 에 packet 1개 전체를 송신, 같은 시간에 라우터에 수신되고 저장된다.

    • 단, 전파 지연(=bit가 빛의속도로 통신선을 거쳐가는 데 걸리는 시간, zero propagation delay)을 무시한다는 가정
  3. 이후, 라우터는 destination으로 저장된 전체 packet을 출력하기 시작, 2L/R 기간에 전체 packet을 전송하였고 수신시스템은 수신함. 따라서 전체 지연은 2L/R초이다. (만약 저장-후-전달 방식이 아닌, 라우터에서 바로 출력했다면 L/R초일 것)

  4. 단, 3번에서 L/R 지점에서 source는 1번째 packet을 완전히 송신했으므로 2번째 packet을 router로 송신하기 시작하며, router도 1번째 packet을 완전히 수신했으므로 destination으로 송신하기 시작한다. 그리고 2번째 packet이 라우터로 도착하는 순간, 라우터도 destination으로 전송한 1번째 packet이 동시에 도착한다.

    이때까지 걸리는 시간이 바로 2L/R 이다.

  5. 위 진행방식에 의해 3L/R 시간에 destination은 처음 2개의 packet을 수신하고 라우터는 3번째 packet을 수신한다.

  6. 마지막으로 4L/R 시간에 destination은 3개의 모든 packet을 수신한다.

여기서 식을 얻을 수가 있는데, source▶destination 까지 N개(라우터는 N-1개)의 Link로 구성되고, 각각은 R bits/sec 를 갖는 경로를 통해 1개의 packet(총 L bits)을 전송하는 경우 종단간 지연(end-end delay)을 d 라고하면

d=N(L/R)d = N*(L/R)

이다.


(2) 큐잉 지연과 패킷 손실(queueing delay, packet loss)

각 router는 여러개의 링크를 갖고 있는데, 각 링크에 대해 router는 packet을 저장하고 있는 출력 버퍼(출력 큐)를 갖고 있다. 그런데 만약에, 여러 링크에서 라우터로 packet들이 도착하고 있다면, 출력링크는 그 packet이 도착하는 속도를 따라잡지 못할 것이므로 도착하는 packet은 출력버퍼에서 대기를 타야된다. 이를 큐잉 지연이라고 한다.
또한, 큐잉 지연이 지속되다보면 공간이 한정적인 버퍼에 packet들이 꽉 차있을 수가 있다. 이 때도 만약 계속 라우터로 packet들을 보낸다면 그 packet들은 버려(drop)지는데 이를 패킷 손실이라고 한다.
  • ex) 호스트 A와 B가 호스트 E로 packet을 전송한다고 가정
  • 각 호스트는 먼저 첫번째 라우터로 100 Mbps 이더넷 링크를 통해 packet을 전송한다.
  • 라우터는 다음에 이들 packet을 15Mbps의 링크로 전달한다.
    • 만약 짧은 기간 동안에 라우터에 도착하는 packet의 전송속도가(bps로 변환했을 때) 15 Mbps를 초과하면 라우터에서 혼잡 발생, 링크로 전송되기 전에 링크의 출력 버퍼에 큐잉된다.
    • 예를들어 호스트A와 B가 각각 동시에 연속해서 5개의 packet을 송신하면 이들 packet은 대부분 큐에서 대기하는데 시간을 보내게 됨

(3) 전달 테이블과 라우팅 프로토콜

라우터는 packet을 받아서 접속된 여러개의 통신 링크 중 하나로 전달하는데, 그렇다면 어떤 기준으로 전달하게 될까?
  • 인터넷에서 모든 end system은 IP주소를 가지는데 source end systemdestination end system으로 보내려고 할 때, source는 packet의 헤더에 목적지의 IP주소를 포함시킨다. (우편 주소와 마찬가지로 이 IP주소도 계층적 구조를 가짐)
  • packet이 네트워크상 한 router에 도착하면 router는 올바른 출력 링크를 찾기 위해 packet내 목적지 주소를 조사하고 이 목적지 주소를 이용하여 목적지 주소(혹은 목적지 주소의 일부)를 라우터의 출력 링크로 맵핑하는 전달 테이블(forwarding table)을 검색한다.
  • 그런 다음 router는 그 packet을 출력 링크로 보낸다.
  • 위 과정을 반복한다.

전달 테이블(forwarding table)는 여러 특별한 라우팅 프로토콜(최단경로를 설정하는)에 의거해 만들어진다.(추후 5장에서 설명)

3.2 회선 교환(Circuit switching)


  1. 패킷 교환(Packet switching)

  2. 회선 교환(Circuit switching)

패킷교환은 이전에 했으니 회선교환을 알아보고 또한 패킷 교환과 회선 교환의 차이를 비교하면서 공부하자.

(1) 회선 교환

  • 전통적인 전화망 방식(패킷교환방식보다 훨씬 옛날에 나왔다.)

  • 케이블 내의 회선을 이용한다.

  • 종단 시스템 간에 통신을 제공하기 위해 경로상에 필요한 자원(버퍼, 링크 전송률)은 통신 세션(session) 동안에 확보 또는 예약(reserve, dedicated)된다.

  • 송신자와 수신자 간의 경로에 있는 스위치들이 해당 연결 상태를 유지해야만 하는 연결

  • 연결이 이루어지는 동안 네트워크 링크에 일정한 전송률을 예약

  • 주어진 전송속도(bandwidth)가 연결을 위해 예약(reserve)되므로 송신자는 수신자에게 보장된(guaranteed) 일정 전송률로 데이터를 보낼 수 있음

  • e.g., 만약 이웃한 스위치 간의 링크가 1Mbps의 전송속도를 갖는데, 4개의 회선스위치를 갖는다면 각 연결은 지정된 전송속도의 250kbps를 얻게됨

  • 즉, 한번 회선을 받으면 독점적으로 사용한다(dedicated)

(2) 회선 교환의 다중화(FDM, TDM)

  • 주파수 분할 다중화(FDM, Frequency-division-multiplexing)
    • 각 회선을 지속적으로 사용하며 대역폭의 일부를 얻음
  • 시-분할 다중화(TDM, Time-divison-multiplexing)
    • 시간을 일정 주기의 프레임으로 구분하고 각 프레임은 고정된 수의 시간 슬롯으로 나뉨.
    • 네트워크가 링크를 통해 하나의 연결을 설정할 때, 네트워크는 모든 프레임에서 시간 슬롯 오직 1개만을 그 연결에 할당
    • 이들 슬롯은 그 연결을 위해 사용되도록 할당되고, 그 연결의 데이터를 전송하기 위해 모든 프레임에 하나의 시간 슬롯을 갖게 됨.

(3) 회선 교환, 패킷 교환과의 차이?

  • 패킷 교환자원을 shared
    • on-demand방식으로 자원을 요청하여 사용하므로 communication link에 대한 접속을 위해 큐에서 기다릴 수 있다.
    • e.g., 예를들어 한 호스트가 인터넷과 같은 패킷 교환 네트워크를 통해 패킷을 보내고자 할 때. 패킷은 회선이 아닌 네트워크를 보내지는데 그 시간에 링크 하나가 혼잡하다면 그 패킷은 버퍼에서 기다려야 하고 지연이 발생함. 인터넷은 최대한 빠르게 패킷을 전송하려하지만 일정 시간 내에 전달하는 것을 보장하지 않음

그럼에도 패킷 교환이 더 우월하다. WHY???

  • 회선 교환의 경우 회선을 사용하지 않을 때 할당된 회선이 비활용 기간(silent period)에 놀게 되므로 낭비
  • 하지만, 패킷 교환의 경우 자원을 공유하므로 낭비발생 x

근데, 사용자가 많아지면 큐잉지연 때메 패킷교환이 느리지 않을까?

  • NO, 패킷 교환에서 한 시점에서 특정 사용자가 활동하고 있을 확률은 10%이다. 만약 35명의 사용자가 있다고 할 때 10명 이상의 사용자가 동시에 활동할 확률은 약 0.0004(0.04%)이다.
  • 하지만, 회선 교환의 경우 100 kbps가 항상 각각의 사용자에게 독점되어야 한다.
    • e.g., 회선 교환의 TDM에서 1초 프레임이 100 msec마다 10개 시간 슬롯으로 나뉜다면 각 사용자는 한 프레임에 한 번의 시간 슬롯이 할당됨. 10명만 지원할 수 있음

마지막으로,

  • 패킷교환은 회선 설정(call setup)이 필요없으므로 구현하기도 간단

  • 하지만, 회선 교환은 종단간 회선을 설정하고 대역폭을 보존하는 것이 복잡하고, 경로에 있는 스위치들 사이의 운영을 조절하는 복잡한 신호 소프트 웨어가 필요

3.3 network of network


  • end system은 access ISP를 통해 인터넷에 접속하게 된다.
  • 따라서, end system간에 서로 패킷을 주고받기 위해서는 ISP가 서로 연결되어있어야한다.

만약 아래처럼 연결되어있으면??

  • 매우 비효율적이다. 각각의 모든 ISP와 연결하려면 비용이 어마어마하다.

따라서, 아래 그림의 global ISP를 사용해야한다.

  • 각 access ISP마다 하나의 global transit ISP에 연결되어있는 모습이다.
    • 이렇게 되면, ISP의 갯수만큼만 O(N) 연결하면된다.
  • Global ISP (A, B, C)가 있을 때 이들 간에도 연결이 필요하다.
    • 그것을 IXP(Internet eXchange Point)라고 한다.
    • IXP는 다중의 ISP들이 서로 peering할 수 있는 만남의 장소라고 볼 수 있다.
  • 또한, Content provider network도 있는데 Google이나 Microsoft 같은 것들이다.
    • 이들은 그들 자신만의 네트워크를 가지고 서비스를 가져와 end system과 content를 주고받는다.
  • Global ISPContent provider network가 지역 ISP와 연결되었으면 마지막으로지역 ISP와 각 access ISP업체들과 연결한다.

<정리>

profile
hello world :)

0개의 댓글