[네트워크] 네트워크 코어(Network Core)

참고도서: 컴퓨터 네트워킹 : 하향식 접근. 7판. James F. Kurose , Keith W.Ross 지음

데이터를 이동시키는 방식

링크와 스위치를 통해서 데이터를 이동시키는 방법은 Circuit Switching(회선 교환)Packet Switching(패킷 교환)으로 나뉜다.

Packet Switching(패킷 교환)

  • 어떤 두 end system이 정보를 서로 송수신하게 되면 해당 데이터들은 패킷 이라는 작은 세그먼트로 나뉘어서 전달되게 된다. 그리고 전달되는 과정에서 앞서 공부했던 Communication LinkPacket Switch 를 거쳐서 데이터는 이동된다.
  • 패킷 교환은 여러 사용자들이 네트워크 자원을 공유하고 이 자원들은 요청이 들어올 때마다 할당된다. 이런 자원할당 방식을 on demand 방식이라고 한다.
  • 페킷 교환은 회선 교환처럼 미리 자원을 예약하거나 연결을 설정하지 않아도 되기 때문에 효율적이지만 여러 리소스들이 한번에 들어왔을 때, 감당을 못할 수도 있다. 이런 현상을 conjestion 이라고 한다.
  • 패킷은 링크의 bandwidth를 하나의 패킷에 대해 모두 사용하기 때문에 링크의 최대 전송 속도와 같은 속도로 전송된다. 이 때문에 패킷을 수신하는 목적지가 R bit/sec 의 속도로 L bits의 패킷을 송신한다면, 해당 패킷을 전송하는데 걸리는 시간은 L/R 이 된다.

Store-and-Forward Transmission(저장-후-전달)

  • 대부분의 패킷 스위치에서 사용하는 방식이다.
  • 스위치가 패킷의 첫 비트를 링크로 전송하기 전에 해당 패킷의 비트를 모두 다 가지고 있어야 한다.
  • 따라서 만약 어떤 두 end system 사이에 하나의 패킷 스위치가 있고, 링크의 전송속도가 R bit/sec 이며, L 비트로 이루어진 3개의 패킷이 있다면, 스위치에 패킷이 전달되는 시간은 L/R 이 될 것이다. 그리고 첫 패킷이 완전히 도착한 시점부터는 스위치가 목적지로 패킷을 보내기 시작하기 때문에, 전체 지연 시간은 첫 패킷을 저장하는 시간 L/R + 목적지로 보내는 시간 L/R = 2L/R이 된다.
  • 위와 같은 상황에서 3개의 패킷이 모두 전달되는 데에 걸리는 시간을 계산해보면, 첫 패킷이 목적지에 전달되기 까지는 2L/R의 시간이 걸리지만, 스위치에서 목적지로 패킷이 전달되는 동안 소스에서 스위치로 두번째 패킷이 동시에 전달되기 때문에 두번째 패킷부터 는 L/R의 지연시간으로 패킷을 전달할 수 있게된다. 따라서 전체 지연시간은 첫번째 패킷의 지연시간 2L/R + 두번째 패킷의 지연시간 L/R + 세번째 패킷의 지연시간 L/R = 4L/R 이 된다.
  • 정리해보면, end system 간 패킷 전달에 사용되는 지연시간은 다음과 같이 표현할 수 있다: 링크의 개수 X L/R

Queing Delay and Packet Loss(큐잉 지연과 패킷 손실)

  • 앞서 본 것 처럼 스위치는 패킷을 전달받아서 목적지로 보내주는 역할을 해야하는데, 스위치에 많은 패킷들이 몰릴 경우에 스위치는 이 패킷들을 무한히 받아들일 수는 없다. 이렇게 사용 가능한 리소스 이상의 패킷이 들어오는 경우를 conjestion 이라고 한다.
  • 따라서 스위치는 출력 버퍼라는 대기열을 만들어두고 현재 어떤 패킷을 전송중이라면, 새로 들어온 패킷을 버퍼에 넣어 대기시킨다. 이때 큐에서 패킷이 대기하면서 발생하는 지연시간을 Queing Delay(큐잉 지연)이라고 한다.
  • 만약 출력버퍼가 가득 차서 더 이상 새로운 패킷을 스위치에 대기시킬 수 없는 상황을 packet loss 라고 한다. 이때는 방금 들어온 새로운 패킷이나 대기열에서 대기중이던 패킷을 하나 지워주어야 한다.

Forwarding Table and Routing Protocol(전달 테이블과 라우팅 프로토콜)

  • 라우터에 들어온 패킷을 다른 링크로 전달하려고 할 때, 라우터는 해당 패킷의 목적지가 어디인지 알고 있어야 어느 링크로 전달할지를 판단할 수 있다. 이렇게 목적지를 결정하는 것을 routing 이라고 한다.
  • 이를 위해서 각 패킷들은 header에 목적지 정보를 포함하고 있는데, 이 정보는 우리가 잘 알고있는 IP 주소 이다.
  • 라우터는 이 header 정보와 목적지 주소를 맵핑하는 Forwarding Table(전달 테이블)을 가진다. 이 전달 테이블에 따라 다음 라우터로 패킷을 전달하는 과정을 forwarding이라고 한다.
  • 뒤에서 더 자세히 다루겠지만, 이 전달 테이블은 라우팅 프로토콜을 통해 자동적으로 만들어지고, 항상 데이터를 전달할 수 있는 최단 거리를 가지려고 노력하게 된다.

Datagram Networks

  • 데이터그램 네트워크는 stateless switch 방식의 패킷 스위칭이다. stateless switch 방식은 스위치(라우터) 내에서 상태를 가지는지에 따라 결정된다.
  • 각 패킷은 라우팅 테이블에 따라 독립적으로 전달되고 이 때문에 각 패킷은 목적지 주소에 대한 정보를 항상 가지고 있어야한다. 여기서 독립적으로 전달된다는 것의 의미는 각 패킷이 목적지 주소가 같다고 해서 반드시 같은 경로로 이동할 필요가 없다는 것이다. 라우팅 테이블은 주기적으로 최단거리를 파악해서 테이블을 업데이트하기 때문에 경로는 언제든지 달라질 수 있다.
  • 경로가 달라진다는 것은 또 패킷이 목적지에 도착하는 순서 또한 달라질 수 있다는 것을 의미한다.
  • 데이터그램 네트워크는 Connectionless Model 이라고 부르기도 한다.

Virtual Circuit Networks

  • Virtual Circuit Networks는 데이터가 전송되기 전에 송신자와 목적지 사이에 가상의 연결을 설정한다.
  • 따라서 circuit switching 처럼 자원을 예약할 수 있지만 해당 자원을 완전하게 보장받지는 못한다.
  • Circuit Switching 처럼 빠른 패킷교환과 QoS 가 가능하지만 동시에 회선교환의 단점처럼 연결을 설정하기 위해 생기는 지연시간이 발생한다.

Circuit Switching (회선 교환)

  • Circuit Switching 방식은 end system 간의 통신에 필요한 모든 자원을 미리 예약한다. 이렇게 미리 자원을 요청해 예약해서 사용하는 방식을 예약(Reserve) 방식이라고 한다.
  • 어떤 정보가 전달되기 전에 송신자와 수신자 간에는 연결(circuit)이 먼저 설정되어야 한다. 그리고 동시에 송수진자 사이에 일정한 전송률(transmission rate)를 예약한다. 따라서 송신자와 수신자는 보장된 속도로 데이터를 주고받을 수 있게된다.
  • Circuit Switching 에서 링크 내의 한 회선은 Frequency-Division Multiplexing(FDM) 혹은 Time-Division Multiplexing(TDM) 방식으로 구현된다.

Frequency-Division Multiplexing(FDM)

  • FDM 방식은 주파수 대역을 나누어서 한 채널에 여러 정보들을 담아 전달할 수 있게 한다.
  • Link layer Switch에서 전화선을 통해 전달된 정보들의 주파수 대역을 서로 겹치지 않게 설정하고 해당 정보들을 합쳐서 링크로 보낸다.

Time-Division Multiplexing(TDM)

  • 동일한 대역폭 하나를 시간 슬롯으로 나눠서 채널에 할당한다.

Packet Switching vs. Circuit Switching

  • 패킷 교환은 회선 교환과는 다르게 예약을 하지 않고 필요할 때만 자원을 사용하기 때문에 처리할 수 있는 데이터의 양이 훨썬 더 많다.
  • 반면에 회선교환은 정보교환에 사용되는 자원들이 모두 예약되어야 하기 때문에 자원을 최대로 활용할 수 있고 QoS(Quality of Service) 가 보장된다는 장점이 있다.

Written by@전여훈 (Click Me!)
고민이 담긴 코드를 만들자, 고민하기 위해 공부하자.