본문 바로가기
네트워크

[네트워크] 네트워크 계층: IP

by Bokoo14 2025. 1. 27.
  • 물리 계층, 데이터 링크 계층: 대부분 LAN을 위한 기술
  • 네트워크 계층: IP(Internet Protocol)
    • LAN을 넘어서 다른 네트워크와 통신을 주고받아야 함

IP의 목적과 특징

목적

  • 주소 지정(addressing)
    • 네트워크 간 통신 과정에서 호스트를 특정하는 것
  • 단편화(fragment)
    • 데이터를 여러 IP 패킷으로 올바르게 쪼개 보내는 것

특징

  • 신뢰할 수 없는 통신
  • 비연결형 통신

IP의 목적

주소 지정

주소 지정은 IP주소를 통해 이루어짐

IP 패킷 해더를 통해 알 수 있음

하나의 IP 주소는 총 4바이트의 크기로 구성 (숫자당 8비트로 표현 -> 0~255범위의 10진수 4개로 표기)

점으로 구분된 하나의 10진수를 옥텟이라 함

 

택배로 빗대어 표현한다면?

MAC주소: 수신인, 발신인

IP주소: 수신 주소, 발신 주소

 

패킷을 올바르게 전송하기 위해서는 MAC주소와 IP주소 모두 필요함

  • 라우터(router)
    • 서로 다른 네트워크에 속한 두 호스트가 네트워크 간 통신을 수행할 때, IP주소를 바탕으로 목적지까지 IP 패킷을 전달하는 네트워크 장비
    • 전달받은 패킷을 목적지까지 전달하는 역할 수행
  • 라우팅(routing)
    • 라우터가 IP 패킷을 전달할 최적의 경로를 결정하고 해당 경로로 패킷을 보내는 과정

단편화

  • MTU(Maximum Transmission Unit)
    • 최대 전송 단위
    • 일반적으로 1500바이트
    • 프레임을 통해 주고받을 수 있는 최대 페이로드의 크기

전송하고자 하는 IP 패킷 (IP 헤더와 페이로드)의 크기가 MTU보다 클 경우 패킷을 MTU이하로 패킷을 쪼개 전송하고, 전송된 패킷은 수신지에서 재조합됨

IP 패킷 헤더에서 단편화와 관련된 필드는 식별자, 플래그, 단편화 오프셋이다.

식별자 (identifier)

특정 패킷이 어떤 데이터에서 쪼개진 패킷인지를 식별하기 위해 사용되는 필드

플래그 (flag)

3비트로 구성된 필드

  • 첫 번째 비트: 항상 0, 사용되고 있지 않음
  • 두 번째 비트: DF, IP 단편화를 수행하지 마라 (don't fragment)
  • 세 번째 비트: MF, 단편화된 패킷이 더 있다 (more fragment)

단편화 오프셋 (fragment offset)

특정 패킷이 초기 데이터에서 얼마나 떨어져 있는지 명시된 필드


IP의 특징

신뢰할 수 없는 통신 (= 최선형 전달, best effort)

패킷이 수신지까지 제대로 전송되었다고 보장하지 않는 프로토콜

유실되거나 목적지에 순서대로 전송되지 않아도 이에 대해 조치를 취하지 않음

비연결형 프로토콜

패킷을 주고받기 전에 사전 연결 과정을 거치지 않음

상대 호스트의 수신 가능 여부는 고려하지 않고, 수신지를 향해 그저 패킷을 전송함

 

참고) TCP는 송수신지 간의 연결 설정을 통해 패킷을 주고받을 호스트 간의 송수신 준비를 확인

 

 

IP의 특징인 신뢰할 수 없는 비연결형 프로토콜인 이유는 성능때문이다.


경로 MTU 발견(Path MTU Discovery): IP 단편화 피하기

단편화된 패킷이 많아지면 패킷을 재조립하는 과정에서 발생하는 부하로 인해 성능 저하로 이어진다.

IP 단편화를 피하려면 IP 패킷을 주고받는 경로에 존재하는 모든 호스트의 처리가능한 MTU를 고려하여, IP 단편화 없이 주고받을 수 있는 최대 크기만큼 전송해야 함

  • 경로 MTU (Path MTU): IP 단편화 없이 주고받을 수 있는 최대 크기
  • 경로 MTU 발견 (Path MTU Discovery): 주고받을 수 있는 MTU를 구하고 해당 크기만큼 송수신하여 IP 단편화를 회피하는 기술

IP 주소의 구조

하나의 IP 주소는 0~255범위의 10진수 4개 (32비트)로 표기

네트워크 주소, 호스트 주소로 구성

네트워크 주소와 호스트 주소의 크기는 유동적일 수 있음

클래스풀 주소 체계

클래스: 네트워크의 크기에 따라 유형별로 IP 주소를 분류하는 기준

어떤 클래스에 속한 IP 주소인지 알면 IP주소에서 네트워크 부분과 호스트 부분이 어느 정도 크기인지 알 수 있음

클래스는 A, B, C, D, E로, 총 5개임

  네트워크 주소 호스트 주소
A클래스 1 옥텟 3 옥텟
B클래스 2 옥텟 2 옥텟
C클래스 3 옥텟 1 옥텟
D클래스 멀티캐스트
E클래스 멀티캐스트

 

첫 옥텟의 주소만 보고 A, B, C 클래스 중 어떤 클래스에 속한 IP 주소인지 알 수 있음

고정된 크기 이외에 다른 크기의 네트워크를 구성할 수 없어 IP 주소가 낭비될 수 있다

클래스리스 주소 체계

클래스풀 주소 체계보다 정교하고 유동적으로 네트워크 영역을 나눔

클래스를 이용하지 않고 네트워크와 호스트를 구분

네트워크와 호스트를 구분하는 수단으로 서브넷 마스트(subnet mask)를 이용

  • 서브넷 마스크(subnet mask): IP 주소상에서 네트워크 주소를 1로 표기, 호스트 주소를 0으로 표기
  • 서브네팅(subneting): 서브넷 마스크를 이용해 원하는 크기로 클래스를 잘게 쪼개 사용하는 것

서브넷 마스크와 IP주소의 비트 AND 연산을 수행하면 IP 주소 내의 네트워크 주소를 알아낼 수 있다.

 


공인 IP 주소와 사설 IP 주소

공인 IP 주소

전세계에서 고유한 IP 주소

인터넷을 비롯한 네트워크 간 통신에서 사용하는 IP 주소

사설 IP 주소

사설 네트워크에서 사용하기 위한 IP 주소

외부 네트워크에 공개되지 않는 네트워크

일반적으로 라우터(공유기)를 통해 할당되므로, 공유기(라우터)를 중심으로 구성된 LAN 대부분은 사설 네트워크임

사설 IP 주소는 해당 호스트가 속한 사설 네트워크상에서만 유효한 주소이므로 얼마든지 다른 네트워크 상의 사설 IP 주소와 중복될 수 있다.


IP 주소의 할당

정적 할당

수작업을 통해 IP 주소를 부여

게이트웨이

  • 서로 다른 네트워크를 연결해주는 하드웨어 또는 소프트웨어 장치
  • 데이터가 한 네트워크에서 다른 네트워크로 이동할 때 경로를 안내
    • 예시: 내부 네트워크에서 인터넷으로 접속할 때 게이트웨이가 데이터를 외부 네트워크로 전달

기본 게이트웨이(Default Gateway)

  • 특정 네트워크에서 외부로 데이터를 전달하기 위한 첫 번째 경로
  • IP 통신이 같은 서브넷 내에서 이루어지지 않을 때 기본 게이트웨이를 통해 데이터가 전달
    • 예시: 집에서 Wi-Fi에 연결된 기기가 외부 웹사이트(예: Google)에 접속할 때, 공유기의 IP가 기본 게이트웨이가 됨

DNS 주소 (Domain Name System Address)

  • 호스트가 도메인 네임을 토대로 IP 주소를 알아내기 위해 질의하는 서버 주소
  • 도메인 이름을 IP 주소로 변환해주는 서버의 IP 주소
  • 사람이 기억하기 쉬운 도메인(예: google.com)을 입력하면 해당 서버의 IP 주소로 매핑하여 연결을 도와줌
  • 도메인 이름은 DNS를 통해 해당 서버의 실제 IP 주소로 변환

도메인 네임(Domain Name)

  • 사람이 쉽게 기억할 수 있도록 만들어진 인터넷 주소
  • 예: google.com, facebook.com

동적 할당: DHCP

프로토콜을 통해 자동으로 IP 주소를 부여하는 방식

가장 많이 사용되는 프로토콜: DHCP

일반적으로 라우터(공유기)가 DHCP 서버 역할을 수행

  • 동적 IP 주소는 사용 가능한 기간(임대 기간)이 정해져 있다
  • 동적 IP 주소는 할당받을 때마다 다른 주소를 받을 수 있다

임대 갱신(lease renewal): IP 주소의 임대 기간이 끝나기 전에 임대 기간을 연장함

기본적으로 임대 갱신은 자동으로 두 차례 수행

두 번의 임대 갱신 모두 실패 시 IP 주소는 DHCP 서버로 반납됨


ICMP

ICMP는 IP의 전송 특징인 신뢰할 수 없는 프로토콜, 비연결형 프로토콜이라는 특징을 보완

신뢰할 수 없는 비연결형 통신을 보완하는 방법

  • TCP 
    • 신뢰할 수 있는 연결형 통신을 지원하는 상위 계층의 프로토콜 이용
  • ICMP (Internet Control Message Protocol)
    • 네트워크 계층의 프로토콜로 ICMP 이용
    • IP 패킷의 전송 과정에 대한 피드백 메시지(ICMP 메시지)를 얻기 위해 사용하는 프로토콜
    • ICMP 메시지를 통해 패킷이 상대방에게 어떻게 전송되었는지 알려줄 수 있어서 IP 전송의 결과를 알 수 있음

홉(hop): 패킷이 호스트 또는 라우터에 한 번 전달되는 것

홉 한번마다 TTL (time to live)는 1씩 감소한다.

TTL 필드는 무의미한 패킷이 네트워크 상에 지속적으로 남아 있는 것을 방지하기 위해 존재

 

ICMP 메세지는 네트워크 상의 간단한 문제를 진단하고 테스트하기 위해 사용되기도 함

ping 명령어를 통해 네트워크 상태를 점검할 수 있음


ARP(Address Resolution Protocol)

상대 호스트의 IP주소는 아는데, MAC 주소는 모르는 상황에서 사용되는 프로토콜

IP 주소와 MAC 주소를 함께 활용하는 통신 과정에서 동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC 주소를 알아내는 프로토콜

  • 주로 동일 네트워크(LAN) 내에서 사용됨
  • IP 주소를 기반으로 해당 장치의 MAC 주소를 알아내는 프로토콜
  • 네트워크 통신에서 IP 주소만으로는 물리적 장치를 식별할 수 없기 때문에 MAC 주소가 필요

[동작 과정]

  1. 송신 장치가 ARP 요청(상대 IP 주소 → MAC 주소 요청)을 네트워크에 브로드캐스트
  2. 해당 IP를 가진 장치가 ARP 응답으로 자신의 MAC 주소를 반환
  3. MAC 주소를 확보한 송신 장치는 데이터를 전달