전공/네트워크

[네트워크] #17 IP (개념, Datagram 형식, IPv4, IPv6, 주소 접근, NAT)

Campus Coder 2023. 12. 5. 14:37
728x90
반응형

목차

  1. IP(Internet Protocol)
  2. Datatgram format
  3. Fragmentation
  4. IPv4 addressing
  5. Network address translation (NAT)
  6. IPv6

 

1. IP (Internet Protocol)


2. Datagram format


3. Fragmentation

IP fragmentation, reassembly (조각화 및 재결합)

네트워크 링크에 MTU(max.transfer size)가 존재

  • 하나의 데이터그램이 여러 개의 데이터그램으로 쪼개짐
  • 최종 목적지에서 재조립
  • 데이터그램 조각을 식별, 순서를 지정하는 IP헤더가 있음

4. IPv4 addressing

Introduction

IP 주소: 호스트, 라우터 인터페이스의 32비트 식별자

interface: 호스트/라우터와 물리적 링크 간의 연결

  • 라우터는 일반적으로 여러 인터페이스가 있음
  • 호스트는 일반적으로 하나 또는 두 개의 인터페이스를 가짐

IP 주소는 각 인터페이스와 연관되어 있음

 

Subnets

IP 주소:

  • 서브넷 부분 - 앞부분의 비트
  • 호스트 부분 - 뒷부분의 비트

서브넷:

  • 네트워크의 부분 집합
  • IP 주소의 서브넷 부분이 동일한 장치 인터페이스
  • 라우터의 개입 없이 연결되어 있음

 

ex) 223.1.1.0/24

  • /24: 서브넷 마스크 - 상위 24비트까지 네트워크 주소임을 알려줌
  • 0: 네트워크 대역의 주소에서 대표되는 대역의 주소에 0을 붙임

 

classful addressing

8비트, 16비트, 24비트 서브넷 주소를 가진 서브넷은 각각 클래스 A, B, C 네트워크

클래스 C - 254개의 호스트 (256에서 주소 2개는 특정 용도로 이미 사용 중)

클래스 B - 65634개의 호스트

 

2000개의 호스트가 있는 조직의 경우, 클래스 B(65534개 주소 공간)를 사용해야 함

→ 63000개 이상의 주소 공간이 낭비됨

 

CIDR

Classless Inter Domain Routing

주소 형식: a.b.c.d/x

  • x는 주소의 서브넷 부분의 비트 개수
  • 200.23.16.0/23 - 앞의 23비트를 서브넷 주소로 활용

 

브로드 캐스팅 주소: 255.255.255.255

클라이언트 대상 주소가 255.255.255.255인 패킷을 전송하면 이 패킷은 서브넷의 모든 호스트로 브로드 캐스트 됨

 

IP 주소 구하기

호스트가 IP 주소를 얻는 법

  • 파일에서 시스템 관리자에 의해 하드 코딩됨
    • Windows: 제어판-> 네트워크-> 구성-> tcp/ip-> 속성
    • UNIX 유형: /etc/rc.config
  • DHCP: Dynamic Host Configuration Protocol: 서버에서 주소를 동적으로 가져옴
    • “플러그 앤 플레이”

 

네트워크가 IP 주소의 서브넷 부분을 얻는 법

  • 공급자 ISP의 주소 공간의 할당된 부분을 가져옴

 

ISP가 주소 블럭을 얻는 법

  • ICANN(할당된 이름과 번호에 대한 인터넷 회사)에서 구매

 

DHCP client-server scenario

  1. 호스트: DHCP 서버 탐색
  2. DHCP: 호스트에게 사용 가능한 IP 주소 제안
  3. 호스트: 사용할 IP 주소 요청
  4. DHCP: IP 주소 승인 및 할당

5. NAT (Network Address Translation)

용어 정리

공인 IP 주소

  • 전 세계적으로 공유한 주소
  • 예: 서울시 동작구 상도동 정보과학관 624호

사설 IP 주소

  • 주소가 고유하지 않음 (예: 624호)
  • 사용 예: 공유기에 공인 IP 할당 후, 공유기에 연결된 다수의 컴퓨터에 사설 IP 를 할당
  • RFC 1918에 의해 정의된 사설 IP 주소 범위
    • 10.0.0.0 ~ 10.255.255.255: 주소 개수 16,777,216개
    • 172.16.0.0 ~ 172.31.255.255: 주소 개수 1,048,576개
    • 192.168.0.0 ~ 192.168.255.255: 주소 개수 65,536개

 

공인 IP 주소 vs. 사설 IP 주소

네이버에서 IP주소가 같은 컴퓨터 A, B로 데이터를 어떻게 보낼 것인가?

 

NAT (Network Address Translation)

Motivation: 로컬 네트워크는 외부 환경에 대해 하나의 IP 주소만 사용

  • ISP에서 필요 없는 주소 범위
    • 모든 장치에 대한 하나의 IP 주소
  • 외부에 알리지 않고 로컬 네트워크에 있는 장치의 주소 변경 가능
  • 로컬 네트워크에 있는 장치의 주소를 변경하지 않고 ISP 변경 가능
  • 로컬 네트워크 내부의 장치는 명시적으로 주소 지정이 불가능하며, 외부에서 볼 수 있음(보안 증가)

 

  1. 호스트 10.0.0.1이 128.119.40.186, 80으로 데이터그램을 보냄
  2. NAT 라우터가 데이터그램 소스 주소를 10.0.0.1, 3345에서 138.76.29.7, 5001으로 바꿔서 보냄
  3. 답장의 목적지 주소가 138.76.29.8, 5001인 데이터그램이 도착
  4. NAT 라우터가 데이터그램의 목적지를 138.76.29.7, 5001에서 10.0.0.1, 3345으로 바꿔서 보냄

 

implementation

  • 발신 데이터그램: 모든 발신 데이터그램을 **(NAT IP 주소, 새 포트 번호)**로 바꿈. 원격 클라이언트/서버는 (NAT IP 주소, 새 포트 번호)를 대상 주소로 사용하여 응답.
  • 수신 데이터그램: 모든 수신 데이터그램의 대상 필드에 있는 (NAT IP 주소, 새 포트 번호)를 NAT 테이블에 저장된 해당**(소스 IP 주소, 포트 번호)**로 바꿈.

6. IPv6

Motivation

Initial motivation

  • 32비트 주소 공간이 곧 완전히 할당됨

 

Additional motivation

  • 헤더 형식은 처리/포워딩 속도 향상에 도움이 됨
  • QoS를 지원하기 위한 헤더 변경

 

datagram format

  • Traffic class: 흐름 내의 특정 데이터그램에 우선 순위를 부여하거나 데이터그램에 우선 순위를 부여하는 데 사용할 수 있음
  • Flow Label: 동일한 “Flow”에서 데이터그램을 식별
    • “흐름”의 개념이 잘 정의되지 않았음
  • Next header: 데이터에 대한 상위 계층 프로토콜 식별

 

IPv4 vs. IPv6

체크섬

  • 처리 시간을 줄이기 위해 완전히 제거됨

 

옵션

  • 허용되지만 헤더 외부(”Next Header” 필드로 표시됨)

 

ICMPv6: ICMP의 새로운 버전

  • 추가 메시지 유형(예: “Packet Too Big”)
  • 멀티캐스트 그룹 관리 기능

 

IPv4에서 IPv6으로의 전송

모든 라우터를 동시에 업그레이드 할 수 없음

네트워크는 IPv4와 IPv6 혼합 라우터에서 어떻게 작동할까?

 

tunneling: IPv4 라우터 사이에 IPv6 데이터그램이 IPv4 데이터그램의 payload로서 운반됨

 

728x90
반응형