CS/기타

(CS) 네트워크 - 네트워크 계층 IP

흰색텀블러 2025. 3. 22. 16:36

IP의 목적과 특징

  • 목적
    • 1. 주소지정 (addressing)
      • 네트워크 간의 통신 과정에서 호스트를 특정하는 것
    • 2. 단편화 (fragmentation)
      • 데이터를 여러 IP 패킷으로 올바르게 쪼개어 보내는 것
  • 특징
    • 1. 신뢰할 수 없는 통신
    • 2. 비연결형 통신

 

주소 지정과 단편화

IP 패킷 헤더와 페이로드 사진, 주소지정 관련 패킷(색깔)

  • 주소 지정 :  IP 주소(논리주소라고도 부르는 네트워크 계층의 주소 체계)를 통해 이루어지며, IP 패킷 헤더를 통해 알수 있음
    • 송신지 IP 주소 , 수신지 IP 주소
      • 송수신지를 식별할 수 있는 IP 주소 명시
      • 하나의 IP 주소는 총 4바이트 크기로 구성, 숫자당 8비트 → 0~255 범위의 10진수 4개로 표기
      • 10진수는 점으로 구분하며, 구분된 하나의 10진수를 옥텟(octet)이라고 함
        • ex ) 192.168.0.1 → '192' , '168', '0', '1' 각각 8비트로 표현가능한 옥텟임
MAC 주소 IP 주소
수신인 수신 주소
발신인  발신 주소
올바른 패킷 전송에서 모두 필요
  패킷 송수신 과정에서 IP주소가 우선적으로 활용됨

 

  • 라우터(router)
    • 서로 다른 네트워크에 속한 두 호스트가 네트워크 간 통신을 수행시, IP 주소를 바탕으로 목적지 까지 IP 패킷을 전달하는 네트워크 장비
    • 패킷을 목적지까지 전달하는 역할 수행시, IP 패킷을 전달할 최적의 경로를 결정하고 해당 경로로 패킷을 내보낼수 있어야함 → 해당 과정을 라우팅(routing) 이라함
    • 요컨데, IP 주소를 기반으로 패킷의 최적 경로를 결정하여 목적지까지 전달하는 네트워크 장비 (ex. 공유기!!)

라우팅 과정

 

IPv6 정리

 

 

 

IP 패킷 단편화 관련 필드 (색칠된 부분)

 

  • 단편화 기능
    • MTU(Maximum Transmission Unit) : 최대 전송 단위
      • 전송하고자 하는 IP 패킷의 크기가 MTU 단위보다 클경우 패킷을 여러 패킷으로 쪼개서 전송 → 수신지에서 재조합
      • 일반적으로 1500 바이트
    • 식별자 (Identifier)
      • 특정 패킷이 어떤 데이터에서 쪼개진 패킷인지 식별하기 위해 사용되는 필드
      • 같은 정보에서 쪼개진 패킷은 같은 식별자를 공유 → 식별자를 통해 단편화되어 전송되는 패킷 구분 가능
    • 플래그 (flag)
      • 3비트로 구성된 필드
      • 첫번째 비트를 제외한 나머지 2개의 비트는 각각 DF, MF라는 이름이 있음
      • 첫번째 비트는 항상 0으로 설정되어 사용X
      • DF : IP 단편화를 하지마라 (Don't Fragment)
      • MF : 단편화된 패킷이 더있다. (More Fragment)

    • 단편화 오프셋(fragment offset)
      • 특정 패킷이 초기 데이터에서 얼마나 떨어져 있는지 명시된 필드
      • 목적지에서 재조합하기 위해 패킷의 올바른 순서를 나타내는 데 사용

 

신뢰할 수 없는 통신과 비연결형 통신 (IP 특징)

  • IP의 특징 → 전송 계층의 TCP, UDP의 존재 목적과 직결됨
  • 신뢰할수 없는 통신 (unreliable protocol) : 패킷이 수신지가지 제대로 전송되었다고 보장하지 않는 프로토콜을 의미
    • 패킷이 유실되거나 목적지에 순서대로 전송되지 않더라도 이에 대한 조치를 취하지 않는 것을 의미함
    • 최선형 전달(best effort delivery)라고도 함. 어떠한 보장도 하지 않는 전송 특징임.
  • 비연결형 프로토콜(connectionless protocol)
    • 패킷을 주고받기 전에 사전 연결 과정을 거치지 않는다는 것을 의미 → 상대 호스트의 수신 가능 여부를 고려하지 않고, 수신지를 향해 패킷을 전송만 한다는 뜻

IP 단편화 피하기

 

IP 주소의 구조

  • 네트워크 계층은 LAN간의 통신을 가능하게 함 → IP 주소를 기반으로 이루어짐
  • 하나의 IP 주소는 0 ~ 255 범위의 10진수 4개(32비트)로 표기되며, 네트워크 주소, 호스트 주소로 이루어짐
  • 네트워크 주소는 네트워크 ID, 네트워크 식별자 등으로 불리며, 호스트가 속한 네트워크를 특정하기 위해 사용
  • 호스트 주소는 호스트ID, 호스트 식별자 등으로 불리며, 네트워크에 속한 호스트를 특정하기 위해 사용
  • 하나의 IP 주소에서 네트워크 주소를 표현하는 크기와 호스트를 표현하는 크기가 유동적일 수 있음!!!!
    • A~C 클래스 및 클래스별 IP 주소 표현의 가능 범위

 

클래스풀 주소 체계

  • 클래스 : 네트워크의 크기에 따라 유형별로 IP 주소를 분류하는 기준 → 네트워크 주소 & 호스트 주소의 크기에 대한 고민을 해결하기 위해 생겨남
  • A ~ E 까지 총 5개의 종류가 있음
  • D, E 클래스는 멀티캐스트를 위한 클래스로, 특수한 목적을 위해 예약된 클래스임
  • A, B, C : 네트워크의 크기별로 IP 주소를 분류하는데 실질적으로 사용되는 클래스
  • 클래스풀 주소 체계 : 클래스를 기반으로 IP 주소를 관리하는 주소 체계
  • 첫 옥텟의 주소를 보고, A,B,C 클래스 중 어떤 클래스인지 파악이 가능함

첫 옥텟의 주소 확인 후, 클래스 확인하는 방법

 

네트워크 / 브로드캐스트 주소 & 예약 주소

 

클래스리스 주소 체계와 서브넷 마스크

  • 클래스풀 주소 체계의 한계 : A, B, C 클래스는 각각 8, 16, 24비트로 크기가 고정 → IP 주소 낭비
  • 클래스리스 주소 체계 (classless addressing)
    • 클래스를 이용하지 않고, 네트워크와 호스트를 구분하는 방식
  • 서브넷 마스크 (subnet mask)
    • IP 주소상에서 네트워크 주소를 1로 표기하고, 호스트 주소를 0으로 표기한 비트열
    • 즉, 서브넷을 구분하는 비트열 == 서브넷 마스크
  • 서브네트워크 (subnetwork)
    • IP주소에서 네트워크 주소로 구분할 수 있는 네트워크의 부분집합
    • 서브넷이라고 줄여부르기도함
  • 서브네팅
    • 서브넷 마스크를 이용해, 원하는 크기로 클래스를더 잘게 쪼개어 사용하는 것
  • A, B, C 클래스의 기본 서브넷 마스크 표현 방법
  • 서브넷 마스크와 IP 주소간의 AND 비트 연산 수행 → IP 주소 내의 네트워크 주소를 알아낼 수 있음

and 연산 결과

 

공인 IP 주소와 사설 IP 주소

  • 공인 IP 주소 (public IP address)
    • 전 세계에서 고유한 IP 주소
    • 인터넷을 비롯, 네트워크 간 통신에서 사용되는 IP 주소
    • ISP나, 공인 IP 주소 할당 기관을 통해 할당 받을 수 있음
  • 사설 IP 주소 (private IP address)
    • 사설 네트워크에서 사용하기 위한 IP 주소
    • 외부 네트워크에 공개되지 않은 네트워크
    • 라우터(공유기)를 통해 할당 → 공유기를 중심으로 구성된 LAN 대부분이 여기에 해당

 

IP 주소의 할당

정적 할당

  • 직접 수작업으로 IP 주소를 부여하는 방식
  • 해당 IP 주소를 정적 IP 주소(static IP address)라고 함
  • IP 주소, 서브넷 마스크, 게이트웨이(라우터) 주소, DNS 주소가 필요 → OS에 관계없이 유사
    • 게이트웨이 : 서로 다른 네트워크를 연결하는 하드웨어적/소프트웨어적 수단
    • 기본 게이트웨이 : 호스트가 속한 네트워크의 외부로 나가기 위한 첫 기본 경로 → 네트워크 외부와 연결된 라우터의 주소를 의미하는 경우가 많음
    • DNS 주소 : 호스트가 도메인 네임을 토대로 IP 주소를 알아내기 위해 질의하는 서버의 주소 (google.com 같은걸 도메인 네임이라고 함)


동적 할당 : DHCP(Dynamic Host Configuration Protocol)

  • 프로토콜을 통해 자동으로 IP 주소를 부여하는 방식
  • IP 주소를 동적으로 할당받고자 하는 호스트는 DHCP 서버와 메시지를 주고받으며 동적 IP 주소를 할당 받을 수 있음
  • DHCP 서버 : 호스트에 할당 가능한 IP 주소 목록 관리 → IP 주소 할당 요청 받을시 → IP 주소를 할당해주는 호스트
  • 일반적으로 라우터가 DHCP 서버 역할을 수행함
    • 동적 IP 주소는 사용가능한 기간이 정해져 있음
    • 동적 IP 주소는 할당받을 때마다 다른 주소를 받을 수 있음

 

IP 전송 특징의 보완 : ICMP

  • IP : 신뢰할수 없는 프로토콜이자, 비연결형 프로토콜의 특징을 가짐
  • IP의 두가지 특징을 보완하는 방법
    • 1. 신뢰할 수 있는 연결형 통신을 지원하는 상위 계층의 프로토콜을 이용 (ex. TCP)
    • 2. ICMP 이용하기 (Internet Control Message Protocol) 
      • IP 패킷의 전송 과정에 대한 피드백 메시지 (ICMP 메시지)를 얻기 위해 사용하는 프로토콜
      • ICMP 메시지를 통해, 패킷이 상대방에게 어떻게 전송되었는지 알려줄 수 있음 → IP 전송의 결과 미리보기가능
      • 물론, 완전한 신뢰성을 보장하지는 않음.
    • ICMP 오류 유형 및 메시지
    • TTL(Time To Live) : IP 헤더에 있는 패킷의 수명 →무의미한 패킷이 네트워크상에 지속적으로 남아있는것 방지하기 위해 존재
    • 홉 : 패킷이 호스트 or 라우터에 한번 전달되는 것
    • ICMP 메시지는 네트워크상의 간단한 문제를 진단하고 테스트하기 위해 사용되기도 함.

 

IP 주소와 MAC 주소의 대응 : ARP

ARP(Address Resolution Protocol)

  • 상대 호스트의 IP 주소는 알고, MAC 주소는 모르는 상황에서 사용되는 프로토콜
  • IP 주소와 MAC 주소를 함께 활용하는 통신 과정에서, 동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC 주소를 알아내는 프로토콜
  • 동작 과정
    • ARP 요청 메시지, ARP 응답 메시지를 통해 이루어짐.
    • ARP 요청은 브로드캐스트 메시지 : 알고 싶은 MAC 주소에 대응되는 IP 주소가 포함되어 있음
    • ARP 응답 메시지에는 응답 메시지를 보내는 호스트의 MAC 주소가 포함되어 있음. (자신의 IP가 아닐경우 응답 무시)
    • ARP 활용 호스트는 ARP 테이블 정보 유지 : ( <IP 주소, MAC 주소>) 로 구성된 표 형태의 정보