본문 바로가기
컴퓨터/네트워크

03 네트워크 계층 (LAN을 넘어서는 네트워크 계층)

by lacuca9 2024. 9. 14.

LAN을 넘어 네트워크와의 통신을 위한 네트워크 계층

- IP 주소를 통한 송수신지 대상을 지정

- 라우팅을 통한 다른 네트워크와 통신

 

데이터 링크 계층의 한계

- 물리 계층과 데이터 링크 계층만으로는 LAN을 넘어서 통신하기 어려운 이유

  • 다른 네트워크까지의 도달 경로파악하기 어려움
    • 라우팅(routing) : 패킷이 이동할 최적의 경로를 결정하는 것
    • 라우터(router) : 라우팅을 수행하는 대표적인 장비

  • 모든 네트워크에 속한 모든 호스트의 위치를 특정하기 어려움
    • MAC 주소와 IP 주소는 함께 사용되고, 기본적으로 IP 주소를 우선 활용

IP 주소 MAC 주소
택배의 수신지 역할 택배의 수신인 역할
논리 주소 물리 주소
유동적으로 할당
자동으로 할당 or 사용자가 직접 할당
NIC마다 할당되는 고정된 주소

 

 


 

인터넷 프로토콜(IP)

물리 계층 & 데이터 링크 계층의 한계를 극복하는 프로토콜

IP 버전 4(이하 IPv4)와 IP 버전 6(이하 IPv6)

 

IP의 공식적인 두 기능

- 주소 지정(IP addressing)

  • IPv4 주소를 바탕으로 송수신 대상을 지정하는 것을 의미
  • 4바이트(32비트)로 하나의 주소를 표현
  • 숫자당 8비트로 표현: 0 ~ 255 범위 안에 있는 네 개의 10진수로 표기
  • 각 숫자는 점(.)으로 구분
    • 점으로 구분된 8비트(0~255 범위의 10진수)를 옥텟(octet)이라 함
      ex) 192.168.1.1

- 단편화(IP fragmentation)

  • 전송하고자 하는 패킷의 크기를 MTU 이하의 복수의 패킷으로 나누는 것
    • MTU(Maximum Transmission Unit)
       - 한 번에 전송 가능한 IP 패킷의 최대 크기
       - IP 패킷의 헤더도 MTU 크기에 포함
       - 일반적인 MTU 크기는 1500바이트,
          MTU 크기 이하로 나누어진 패킷은 수신지에 도착하면 다시 재조합

- IPv4

  IPv4 패킷은 프레임의 페이로드로 데이터 필드에 명시

 

- IPv4 패킷의 핵심 필드

  • 식별자(identifier)
    - 패킷에 할당된 번호
    - 쪼개져서 도착한 IPv4 패킷들이 어떤 메시지에서 쪼개졌는지 알기 위해 사용
  • 플래그(flag) : 세 개의 비트로 구성
    - 번째 비트는 항상 0: 현재 사용되지 않음
    - DF비트(Don't Fragment) - IP 단편화를 수행하지 말라는 표시
        1이라면: "IP 단편화 수행하지 말라"
        0이라면: "IP 단편화 가능하다"
    - MF 비트(More Fragment) - 단편화
        1이라면: "쪼개진 패킷이 아직 더 있다"
        0이라면: "이 패킷이 마지막 패킷이다"

  • 단편화 오프셋(fragment offset)
    - 초기 데이터에서 몇 번째로 떨어진 패킷인지 나타냄
        단편화되어 전송되는 패킷들은 수신지에 순서대로 도착하지 않을 수 있음
        수신지가 패킷들을 순서대로 재조합하려면
        단편화된 패킷이 초기 데이터에서 몇 번째에 해당하는 패킷인지 알아야 함
  • TTL(Time To Live)
    - 패킷의 수명
    - 무의미한 패킷이 네트워크상에 지속적으로 남아있는 것을 방지하기 위해 존재
    - 패킷이 하나의 라우터를 거칠 때마다 TTL이 1씩 감소, TTL 값이 0으로 떨어진 패킷은 폐기
    (hop): 패킷이 호스트 또는 라우터에 한 번 전달되는 것
        즉, TTL 필드의 값은 홉마다 1씩 감소
  • 프로토콜 
    - 상위 계층의 포로토콜이 무엇인지를 나타내는 필드
    - ex) 전송 계층의 대표적인 프로토콜인 TCP는 6번, UDP는 17번
  • 송신지 IP 주소
    - 이름 그대로 송신지의 IPv4 주소
  • 수신지 IP 주소
    - 이름 그대로 수신지의 IPv4 주소

IPv6

  • IPv6 패킷의 핵심 필드
    - 다음 헤더 (next header)
        상위 계층의 프로토콜 or 확장 헤더를 가리키는 필
        - IPv6는 기본 헤더와 더불어 확장 헤더(extension header) 를 가질 수 있음
        - 확장 헤더는 기본 헤더와 페이로드 데이터 사이에 위치
        - 마치 꼬리를 물듯 또 다른 확장 헤더를 가질 수도 있음
        - 대표적인 확장 헤더
    • 홉 간 옵션(Hop-by-Hop Options)
    • 수신지 옵션(Destination Options)
    • 라우팅(Routing)
    • 단편(Fragment)
      - 단편화 확장 헤더에도 다음 헤더 필드가 있음
      - 단편화 오프셋(fragment offset)과 M 플래그(M flag), 식별자(Identification) 필드
    • ESP(Encapsulating Security Payload), AH(Authentication Header)


  • - 홉 제한(hop limit)
        IPv4 패킷의 TTL 필드와 비슷
        패킷의 수명을 나타내는 필드
    - 송신지 IP주소(source address), 수신지 IP 주소(destination address)
        IPv6 주소를 통한 송수신지 지정

ARP (Address Resolution Protocol)

IP 주소를 통해 MAC 주소를 알아내는 프로토콜
- 동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC 주소를 알아낼 수 있음

ARP 동작
- ARP 요청 (ARP Request)

  • 브로드캐스트 메시지 전송
  • 브로드캐스트 메시지 = ARP 요청이라는 ARP 패킷

- ARP 응답 (ARP Reply)

  • 수신자의 MAC 주소를 담은 유니캐스트 메시지를 송신자에게 전송
  • 유니캐스트 메시지 = ARP 응답 이라는 ARP 패킷

- ARP 테이블(ARP Table) 갱신

  • ARP 테이블: ARP 요청-응답을 통해 알게 된 IP 주소와 MAC 주소의 연관 관계
    - ARP 테이블 항목은 일정 시간이 지나면 삭제, 임의 삭제도 가능
    - ARP 테이블에 등록된 호스트에 대해선 ARP 요청을 보낼 필요 없음

 

# IP 단편화를 피하는 방법

단편화 : 전송하고자 하는 패킷의 크기를 MTU 이하의 복수의 패킷으로 나누는 것

- 단편화는 되도록 하지 않는 것이 좋다

- 불필요한 트래픽 증가대역폭 낭비

- 쪼개진 IP 패킷들을 하나로 합치는 과정에서 발생하는 부하성능 저하 요소

 

IP 단편화 피하는 법 :

- IP 패킷을 주고받는 모든 노드가 'IP 단편화 없이 주고 받을 수 있는 최대 크기' 만큼만 전송해야 함

- 'IP 단편화 없이 주고 받을 수 있는 최대 크기' = 경로 MTU(Path MTU)

    즉, 단편화를 피하는 방법은 경로 MTU만큼의 데이터를 전송하는 것

    경로 MTU 발견(Path MTU discovery): 경로 MTU를 구하고 해당 크기만큼만 송수신하여 IP 단편화 회피

 

 

 

사진 출처
혼자공부하는 네트워크

https://www.youtube.com/watch?v=c62qssA4hYI&list=PLYH7OjNUOWLVwdRF6_QmJVR4cQdMp0SU1