네트워크

모두의 네트워크 - 5장. 네트워크 계층: 목적지에 데이터 전달하기

토리쟁이 2023. 1. 22. 23:59

이전까지 물리계층, 데이터 링크 계층에서 데이터를 전송하기 위해 어떠한 일들이 발생되는지 살펴보았다.

이번 포스팅에서는 네트워크 계층에서 일어나는 일들에 대해 다루어보고자 한다.


<네트워크 계층의 역할>

 

네트워크 계층

  • OSI 7계층 중 3계층
  • 데이터 링크에서는 같은 네트워크 안에서만 데이터 전송이 가능하지만, 네트워크 계층은 달라도 가능
  • 다른 네트워크와 통신을 가능하게 하는 역할
  • 다른 네트워크에 데이터를 보내기 위해서는 네트워크를 식별할 수 있는 IP 주소 필요
    • IP 주소
      • 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신하기 위해 사용하는 주소
      • 어떤 네트워크의 어떤 컴퓨터인지 구분할 수 있게 하는 주소
      • 인터넷 서비스 제공자(ISP)로부터 제공받음
      • 버전에는 IPv4(32비트), IPv6(128비트) 존재
      • 종류로는 공인 IP 주소와 사설 IP 주소가 존재
  • 경로 설정을 위해 라우터를 통한 라우팅을 하며 패킷 전송 담당
    • 라우터
      • 서로 다른 네트워크를 연결해주는 장치
      • 현재의 네트워크에서 다른 네트워크로 패킷 전송
      • 데이터가 해당 목적지까지 가기 위한 가장 빠른 경로를 알려줌
    • 라우팅
      • 경로를 선택하고 목적지 IP 주소까지 어떻게 데이터를 전달할지 결정하는 것
      • 네트워크에서 패킷을 목적지로 보낼 때 목적지까지 갈 수 있는 여러 경로 중 1가지 경로를 설정해주는 과정
    • 라우팅 테이블
      • 목적지 주소를 목적지에 도달하기 위한 네트워크 노선으로 변환시킬 목적으로 사용됨
      • 다른 네트워크로 가기 위한 가장 좋은 라우터의 정보를 가지고 있음
      • 경로 정보

 

 

IP (Internet Protocol)

  • 네트워크 계층의 대표적인 프로토콜
  • 인터넷에 있는 한 컴퓨터에서 다른 컴퓨터로 데이터를 보내는데 사용되는 네트워크 계층 프로토콜

 

 

IP 패킷

 

IP 패킷

 

  • IP 헤더 + 데이터의 구조
  • 네트워크 계층에서 캡슐화한 결과물
  • 데이터 링크 계층에서는 프레임, 네트워크 계층에서는 IP 패킷 (용어 다름 주의!)
  • IP 헤더
    • 버전, 헤더 길이, 서비스 유형, 전체 패킷 길이, ID, 조각 상태, 조각 위치, TTL, 프로토콜, 헤더 체크섬, 출발지 IP 주소, 목적지 IP 주소 순서로 구성됨 
      • TTL(Time To Live): 데이터의 유효 기간을 나타내기 위한 방법
      • 헤더 체크섬: 검사합으로 간단하게 오류를 검출하는 방법

 

 

 

 

 

<IP 주소의 구조>

 

 

공인 IP 주소와 사설 IP 주소

 

 

 

IP 주소

  • 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신하기 위해 사용하는 주소
  • 어떤 네트워크의 어떤 컴퓨터인지 구분할 수 있게 하는 주소
  • 인터넷 서비스 제공자(ISP)로부터 제공받음
  • 버전에는 IPv4(32비트=> 주소 43억개), IPv6(128비트=> 주소 340간) 존재
    • 현재, 두 버전이 공존해 쓰이고 있지만, 앞으로는 IPv6가 더 많이 차지하게 될 것
  • 종류로는 공인 IP 주소와 사설 IP 주소가 존재
    • 공인 IP 주소 - 인터넷에 직접 연결되는 컴퓨터나 라우터가 사용
    • 사설 IP 주소 - 랜(근거리 통신망)에 있는 컴퓨터가 사용
      • 랜의 네트워크 관리자가 자유롭게 사설 IP 주소 할당
      • 라우터의 DHCP 기능을 사용하여 주소를 자동으로 할당 (더 편리)
      • DHCP(Dynamic Host Configuration Protocol)
        • IP 주소를 자동으로 할당하는 프로토콜
  • 공인 IP 주소와 사설 IP 주소로 구분하여 공인 IP 주소의 갯수를 절약할 수 O
  • 사설 IP 주소는 절대로 공인 IP 주소로 사용 불가!
  • 32비트로 구성되고 10진수로 표현 (MAC - 48비트로 구성, 16진수로 표현)
  • 총 32비트를 8비트 단위(옥텟)로 나눠서 표시
  • 8비트의 범위: 00000000 ~ 11111111
  • 10진수의 범위: 0 ~ 255
  • IP 주소 = 네트워크 ID + 호스트 ID
    • 네트워크 ID (네트워크 주소) - 어떤 네트워크인지-
    • 호스트 ID (호스트 주소) - 해당 네트워크의 어느 컴퓨터인지-

 

IP 주소

 

 

 

<IP 주소의 클래스 구조>

 

IP 주소 클래스

 

 

IP 주소 클래스(IP address class)

  • IPv4에서 사용하는 주소 그룹 => 5개 존재(A, B, C, D, E)
  • 일반적으로 A ~ C 클래스 사용
  • A, B, C 클래스 => 네트워크 ID + 호스트 ID 로 구성됨
    • 클래스에 따라 네트워크 ID와 호스트 ID 크기가 다름(총 32비트)
    • 클래스별 호스트 수: A > B > C
    • A : 대규모 네트워크 주소(네트워크8, 호스트24)
    • B : 중형 네트워크 주소(네트워크16, 호스트16)
    • C : 소규모 네트워크 주소(네트워크24, 호스트8)
  • D: 멀티캐스트(multicast) 주소
    • 멀티캐스트 - 한 컴퓨터에서 패킷을 여러 컴퓨터로 동시에 전송하는 것
  • E: 연구 및 특수용도 주소 (필요에 따라 사용하기 위해 확보)
  • 32비트를 네트워크 ID, 호스트 ID로 나누어 크기를 조정하여 클래스로 사용
  • 클래스에 따라 주소 범위가 다름

 

 

<네트워크 주소와 브로드캐스트의 주소>

 

IP 주소에는 네트워크 주소브로트캐스트 주소가 있고,

이 두 주소는 특별한 주소로써 컴퓨터나 라우터가 자신의 IP로 사용 불가

 

 

네트워크 주소

  • 전체 네트워크에서 작은 네트워크를 식별하는데 사용되는 주소
  • 전체 네트워크의 대표 주소
  • 호스트 ID가 10진수로 0인 주소
  • 호스트 ID가 2진수로 00000000 인 주소

 

브로드캐스트 주소

  • 네트워크에 있는 컴퓨터나 장비 모두에게 한 번에 데이터를 전송하는데 사용되는 전용 IP 주소
  • 호스트 ID가 10진수로 255인 주소
  • 호스트 ID가 2진수로 11111111 인 주소

 

 

<서브넷의 구조>

 

서브넷

 

서브넷(Subnet)

  • 큰 네트워크를 분할해서 만든 작은 네트워크
  • 서브넷팅(subneting)
    • 네트워크를 분할하기 위해 IP 주소의 구성을 변경하는 작업
    • IP 주소 = 네트워크 ID + 호스트 ID  (기존 구성)
    • IP 주소 = 네트워크 ID +서브넷 ID+ 호스트 ID (변경된 구성)
      • 서브넷 ID
        • IP 주소의 네트워크 부분을 늘리기 위해 서브넷 마스크로 사용되는 비트
        • 서브넷 비트(subnet bits)라고도 함

 

 

서브넷 마스크

  • IP 주소 서브넷팅시, 어디까지가 네트워크 ID고 어디부터가 호스트 ID인지 판단하기 어려울 때 사용
  • 즉, 네트워크 ID 와 호스트 ID를 식별하기 위한 값
  • IP 주소의 네트워크 부분만 나타나게 하여 같은 네트워크인지를 판별하게 하는 마스크
  • A클래스: 255.0.0.0 (/8)
  • B클래스: 255.255.0.0 (/16)
  • C클래스: 255.255.255.0 (/24)
  • 프리픽스(prefix) 표기법 사용 가능
    • 서브넷 마스크를 슬래시(/비트 수)로 나타내는 것

 

 

 

<라우터의 구조>

 

 

라우터의 구조

 

 

 

라우터(router)

  • 서로 다른 네트워크와 통신하기 위해 필요한 장치
  • 네트워크 분리 가능 (허브와 스위치는 네트워크 분리 불가능)
  • 다른 네트워크에 데이터를 전송하기 위해서는 기본 게이트웨이를 설정해야함 
    • 기본 게이트웨이(default gateway)
      • 라우터의 IP 주소
      • 네트워크의 출입구
  • 기본 게이트웨이 설정 후, 라우터의 라우팅 기능을 통해 다른 네트워크와 통신 가능

 

 

기본 게이트웨이 설정

 

 

 

 

라우팅(routing)

  • 패킷을 목적지로 보낼 때 목적지까지 갈 수 있는 여러 가지 경로 중 한 가지 경로를 설정해주는 과정
  • 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터 전송
  • 라우팅 테이블
    • 경로 정보가 등록되어 있는 테이블
    • 수동 등록 방법 - 소규모 네트워크에 적합
    • 자동 등록 방법 - 대규모 네트워크에 적합
      • 라우터 간에 경로 정보를 서로 교환하여 라우팅 테이블 정보를 자동으로 수정
      • => 라우팅 프로토콜
        • 라우터 간에 라우팅 정보를 교환하기 위한 프로토콜
        • 대표적으로 RIP, OSPF, BGP 등 존재