관리 메뉴

코딩하는 락커

4. 네트워크 계층 1 본문

🌐 네트워크

4. 네트워크 계층 1

락꿈사 2022. 4. 11. 16:03

4.1 네트워크 계층: 데이터 평면 개요

 

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

  • 네트워크 계층은 서로 상호작용하는 데이터 평면과 제어 평면 두 부분으로 나뉨.
  • 네트워크 계층의 근본적 역할은 송신 호스트에서 수신 호스트로 패킷을 전달하는 것.
  • 네트워크 계층의 주요 기능 2가지
    1. 포워딩(전달)
      • 패킷이 라우터의 입력 링크에 도달했을 때 적절한 출력 링크로 이동시키는 것
      • 데이터 평면에 구현된 기능
      • 매우 짧은 시간(몇 나노초) 단위를 갖기에 하드웨어에서 실행됨
    2. 라우팅
      • 송신자가 수진자에게 패킷을 전송할 때 이 패킷의 경로를 결정하는 것
      • 라우팅 알고리즘: 경로를 계산하는 알고리즘
      • 제어 평면에 구현된 기능
      • 포워딩보다 더 긴 시간(보통 초)단위를 갖기에 소프트웨어에서 실행됨
  • 네트워크 라우터에서 필수 불가결한 요소는 포워딩 테이블(forwarding table)임.
    • 라우터는 도착하는 패킷 헤더의 필드 값을 조사하여 패킷을 포워딩 함.
    • 이 값은 라우터의 포워딩 테이블의 내부 색인으로 사용됨.
    • 포워딩 테이블 엔트리에 저장되어 있는 헤더의 값은 해당 패킷이 전달되어야 할 라우터의 외부 링크 인터페이스를 나타냄

 

 

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

  1. 입력 포트
  2. 스위칭 구조
  3. 출력 포트
  4. 라우팅 프로세스

 

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

 

  • 라우터는 이런 형식의 포워딩 테이블에서 패킷의 목적지 주소의 프리픽스를 테이블의 엔트리와 대응시킴.
  • 예시
    • 패킷의 목적지 주소가 1101000 00010111 00010110 10100001 이라고 할 때
      • 0번째 링크로 포워딩 함.
  • 최장 프리식스 매칭 규칙: 테이블에서 가장 긴 대응 엔트리를 찾고, 여기에 연관된 링크 인터페이스로 패킷을 보냄. 
  • 예시
    • 패킷의 목적지 주소가 1101000 00010111 00011000 10101010 이라고 할 때
      • 1번, 2번 둘 다 가능하나
      • 가장 긴 대응 엔트리가 1101000 00010111 00011000이므로 1번으로 포워딩 함.

 

 

4.3 인터넷 프로토콜(IP): IPv4, 주소지정, IPv6 등

 

IPv4 데이터그램 형식

  • 버전 번호: 4비트. 데이터그램의 IP 프로토콜 버전을 명시.
  • 헤더 길이: 대체로 IPv4 데이터그램의 헤더는 20바이트.
  • TTL(Time-to-live): 네트워크에서 데이터그램이 무한히 순환하지 않도록 함. 이 필드 값은 라우터가 데이터그램을 처리할 때마다 감소함. TTL 필드가 0이 되면 데이터그램을 폐기함
  • 포로토콜: 일반적으로 IP 데이터그램이 최종 목적지에 도착했을 때 사용. IP 데이터그램에서 데이터 부분이 전달될 목적지의 전송 계층의 특정 프로토콜을 명시함. 예를 들어 값 6은 데이터부분을 TCP로, 값 17은 UDP로 전달하라는 의미.
  • 헤더 체크섬: 라우터가 수신한 IP 데이터그램의 비트 오류를 탐지하는데 도움을 줌.
  • 출발지와 목적지 IP 주소: 출발지 데이터그램을 생성할 때 자신의 IP 주소를 출발지 IP주소 필드에 삽입하고, 목적지 IP주소를 목적지 IP주소 필드에 삽입함. 종종 출발지 호스트는 DNS 검색을 통해 목적지 주소를 결정함.

 

IPv4 주소체계

  • 인터페이스
    • 호스트와 물리적 링크 사이의 경계
    • 라우터와 물리적 링크 사이의 경계
      • 각 링크마다 하나의 인터페이스를 가짐
      • 하나의 라우터는 여러 개의 인터페이스를 가짐
  • IP주소는 호스트보다는 호스트 안에 있는 네트워크 인터페이스를 지칭하는 주소임.
  • 각 IP 주소는 32비트(4바이트)이므로 2^32(대략 40억개) 주소가 사용 가능.
  • 이 주소는 일반적으로 주소의 각 바이트를 십진수로 표현하고 주소의 달느 바이트와 점(.)으로 구분하는 십진 표기법dotted-decimal-notaion을 사용함.
  • 모든 호스트와 라우터의 각 인터페이스는 고유한 IP주소를 가짐.
  • 인터페이스의 IP주소 일부는 연결된 서브넷이 결정함.

 

  • 서브넷은
    • 같은 프리픽스를 가진 인터넷 집합을 의미.
    • 라우터를 거치지 않고 접근 가능한 호스트 집합을 의미.
  •  서브넷 223.1.1.0/24는 위 그림에서 세 호스트 인터페이스(223.1.1.1, 223.1.1.2, 223.1.1.3)와 하나의 라우터 인터페이스(223.1.1.4)를 구성함.
  • 223.1.1.0./24에서 /24는 서브넷 마스크라고 불리며, 32비트 중 왼쪽 24비트가 서브넷 주소라는 것을 가리킴.

  • 서브넷은 고립된 네트워크 각각을 지칭함.
  • 위 그림에서 6개의 고립된 서브넷을 가짐.
  • 글로벌 인터넷에서 CIDR(Classless Interdomain Routing-사이다)를 통해 서브넷 주소 체계를 일반화 함.
    • 32비트 IP주소를 두 부분으로 나눔.
    • 이것은 다시 a.b.c.d/x형식의 십진수 형태를 띔.
    • 여기서 x는 주소 첫 부분의 비트 수.
    • a.b.c.d/x 형식 주소에서 최상위 비트MSB(most significant bit)를 의미하는 x는 IP 주소의 네트워크 부분을 구성하며 이것을 프리픽스Prefix라고 부름.
    • 한 기관은 통상적으로 연속적인(공통 프리픽스를 갖는 주소 범위) 주소의 블록을 할당받음.
      • 이 경우 기관 장비들의 IP 주소는 공통 프리픽스를 공유함.
    • 주소의 나머지 32-x 비트들은 기관 내부에 같은 네트워크 프리픽스를 갖는 모든 장비들을 구별함.
  • CIDR이 채택되기 전에는 IP 주소의 네트워크 부분을 8,16,24 비트로 제한했고, 8,16,24비트 서브넷 주소를 갖는 서브넷을 각각 A,B,C 클래스 네트워크로 분류하는 클래스 주소체계를 사용함.

 

네트워크 주소 변환NAT

  • 위 그림에서 4개 인터페이스  모두 같은 네트워크 주소 10.0.0.0/24를 가짐.
  • 주소 공간 10.0.0.0/8은 사설망 또는 사설 개인 주소를 갖는 권역을 위해 예약된 IP 주소 공간 세부분 중의 하나임.
  • 그러나 10.0.0.0/24 주소체계는 홈 네트워크를 벗어나 글로벌 인터넷으로 가는 패킷 전달은 이 주소들을 사용할 수 없음.
  • 때문에 홈 라우터를 떠나 인터넷으로 가는 트래픽은 출발지 주소 IP 주소 138.76.29.7을 가지며 홈으로 들어오는 트래픽은 목적지 주소 138.76.29.7을 가져야 함. 
  • 홈 라우터는 포트넘버로 패킷을 호스트를 구분함.
  • NAT의 문제점
    1. 포트번호는 호스트 주소 지정이 아닌 프로세스 주소 지정에 사용되나, NAT는 포트번호를 호스트 주소 지정에 사용하고 있음.
    2. NAT는 IP를 수정하는 노드를 간섭하지 않고 호스트끼리 서로 직접 소통해야 하는 원칙을 위반함.

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

4. 네트워크 계층 3  (0) 2022.04.18
4. 네트워크 계층 2  (0) 2022.04.12
3. 전송 계층 6  (0) 2022.04.05
3. 전송 계층 5  (0) 2022.04.04
3. 전송 계층 4  (0) 2022.04.04
Comments