본문 바로가기
네트워크

네트워크 계층 개요

by SpearZero 2024. 2. 23.

네트워크 계층 개요

포워딩과 라우팅: 데이터 평면과 제어 평면

네트워크 계층의 역할은 송신 호스트에서 수신 호스트로 패킷을 전달하는 것이다.

 

네트워크 계층의 중요한 두 가지 기능은 다음과 같다.

  • 포워딩(전달) : 패킷이 라우터의 입력 링크에 도달했을 때 라우터는 그패킷을 적절한 출력 링크로 이동시켜야 한다.
    • 포워딩은 매우 짧은 시간 단위를 갖기에, 대표적으로 하드웨어에서 실행한다.
  • 라우팅 : 송신자가 수신자에게 패킷을 전송할 때 네트워크 계층은 패킷 경로를 결정한다.
    • 네트워크 전반에 걸쳐 출발지에서 목적지까지 데이터그램의 종단간 경로를 결정하므로, 포워딩 보다 더 긴 시간(보통 초) 단위를 갖기에 소프트웨어에서 보통 실행된다.

라우터에서 필요한 요소는 포워딩 테이블(forwarding table)이다. 라우터는 도착하는 패킷 헤더의 필드값을 조사하여 패킷을 전달한다. 이 값을 라우터의 포워딩 테이블의 내부 색인으로 사용한다.

제어 평면: 전통적인 접근 방법

라우팅 알고리즘은 라우터의 포워딩 테이블의 내용을 결정한다. 한 라우터의 라우팅 알고리즘 기능은 다른 라우터의 라우팅 알고리즘과 소통하며 포워딩 테이블의 값을 결정한다.

제어 평면: SDN 접근 방법

라우터로부터 물리적으로 분리된 원격 컨트롤러 컴퓨터와 각각의 라우터에 의해 사용될 포워딩 테이블을 분배하는 접근법

 

포워딩 테이블을 계산하는 컨트롤러는 라우터와 상호작용을 하며 소프트웨어에서 실행된다.

네트워크 서비스 모델

네트워크 계층에서 제공할 수 있는 서비스

  • 보장된 전달
    • 패킷이 출발지 호스트에서부터 목적지 호스트까지 도착하는 것을 보장한다.
  • 지연 제한 이내의 보장된 전달
    • 특정 지연 제한 안에 전달한다
  • 순서화 패킷 전달
    • 패킷이 목적지에 송신된 순서로 도착하는 것을 보장한다.
  • 최소 대역폭 보장
  • 보안 서비스

인터넷 네트워크 계층은 최선형 서비스(best-effort serrvice)를 제공한다.

  • 패킷을 보내는 순서대로 수신됨을 보장할 수 없다.
  • 목적지 까지의 전송 자체도 보장할 수 없다.
  • 지연 그리고 대역폭도 보장하지 않음

라우터 내부에는 무엇이 있을까?

라우터의 네 가지 요소

  • 입력 포트 : 물리계층, 링크계층 기능을 수행하며, 뿐만 아니라 포워딩 테이블을 참조하여 도착된 패킷을 스위치 구조를 통해 라우터 출력 포트를 결정한다.
  • 스위치 구조 : 스위치 구조는 라우터의 입력 포트와 출력 포트를 연결한다.
  • 출력 포트 : 스위치 구조에서 수신한 패킷을 저장하고 필요한 링크 계층 및 물리 계층 기능을 수행하여 출력 링크로 패킷을 전송한다.
  • 라우팅 프로세서 : 제어 평면 기능을 수행한다.

입력 포트 처리 및 목적지 기반 전송

32비트 IP 주소의 경우, 포워딩 테이블을 억지로 구현한다면 모든 가능한 목적지 주소마다 하나의 엔트리가 필요할 것이다. 따라서 40억 개 이상의 가능한 주소가 있어야 하므로 이 방법은 불가능하다.

 

대신 다음과 같이 포워딩 테이블을 구성할 수 있다.

이러한 방식을 사용하면 40억개의 엔트리가 아닌 4개의 엔트리를 갖는 포워딩 테이블을 만들 수 있다.

 

라우터는 이러한 포워딩 테이블에서 패킷의 목적지 주소의 프리픽스(prefix)를 테이블의 엔트리와 매치한다. 다수의 엔트리와 목적지 주소가 매치되면, 라우터는 최장 프리픽스 매치 규칙(longest prefix matching rule)을 사용한다. 테이블에서 가장 긴 매치 엔트리를 찾고, 여기에 연관된 링크 인터페이스로 패킷을 보낸다.

 

11001000 00010111 00010110 10100001은 첫 번째 엔트리와 매치된다.

 

11001000 00010111 00011000 10101010은 두 번째, 세 번째 엔트리와 매치되지만, 두 번쨰 엔트리와 더 길게 매치되므로 세 번째 엔트리의 링크 인터페이스로 패킷을 보낸다.

스위칭

스위칭의 수행 방법

  • 메모리를 통한 교환
    • CPU(라우팅 프로세서)를 직접 제어해서 입력 포트와 출력 포트 사이에서 패킷을 스위칭
  • 버스를 통한 교환
    • 입력 포트는 라우팅 프로세서의 개입 없이 공유 버스를 통해 직접 풀력 포트로 패킷을 전송한다.
  • 상호연결 네트워크를 통한 교환
    • N개의 입력포트와 N개의 출력 포트에 연결하는 2N 버스로 구성된 상호연결 네트워크를 이용한 스위칭 방법, 메모리, 버스를 통한 스위칭 방식과 달리 크로스바 스위치는 여러 패킷을 병렬로 전달할 수 있다.

어디에서 큐잉이 일어날까?

입력 큐잉

지연 없이 구조를 통해 도착하는 모든 패킷을 전송하기에 스위치 구조가 충분히 빠르지 않으면 입력 큐잉이 발생한다.

 

큐잉이 발생하는 경우

  • 두 개의 입력 큐에 있는 패킷들이 동일한 출력포트로 보내지는 경우에 하나의 입력 큐에 있는 패킷은 대기 해야 한다.
  • HOL(head-of-the-line)이 발생하는 경우
    • 좌측 하단의 뒤쪽 패킷은 이동하려는 출력 포트가 사용중이지 않더라도, 앞의 패킷에 의해 가로막혀져 있어서 앞의 패킷이 전송되기를 기다려야 한다.

출력 큐잉

스위치를 통한 도착 속도가 출력 라인 속도를 초과할 때 버퍼링이 발생할 수 있음

 

큐잉과 손실은 출력 포트의 버퍼 오버플로로 인해 발생함

패킷 스케줄링

  • FIFO(FCFS)
    • 출력 링크 큐에 도착한 순서와 동일한 순서로 출력 링크에서 전송할 패킷을 선택한다.
  • 우선순위 큐잉
    • 우선순위에 따라 큐가 여러 클래스로 분류된다.
    • 버퍼된 패킷들 중에서 높은 우선순위 클래스에 있는 패킷이 우선적으로 전송된다.
  • 라운드 로빈
    • 패킷은 우선수위 큐잉과 같이 클래스로 분류된다. 그러나 클래스 간에 엄격한 서비스 우선 순위가 존재하지 않으며, 라운드 로빈 스케줄러가 클래스 간에 서비스를 번갈아서 제공한다.

'네트워크' 카테고리의 다른 글

네트워크 계층 : 제어 평면  (1) 2024.03.07
인터넷 프로토콜(IP) : IPv4, 주소체계, IPv6  (0) 2024.03.04
혼잡 제어  (1) 2024.02.19
연결지향형 트랜스포트 : TCP  (1) 2024.02.14
신뢰적인 데이터 전송의 원리  (0) 2024.02.01