IP (Internet Protocol)


IP 의 역할

  • Packet 이라는 통신 단위로 지정한 IP Address 에 데이터를 전달하는 역할을 가지고 있다.
  • Packet 에는 출발지 IP, 목적지 IP, 등이 포함된다.

IP Protocol 의 한계

  • 비연결성 - 패킷을 받을 대상이 없거나, 서비스 불능 상태여도 패킷이 전송된다.
  • 비신뢰성 - 중간에 패킷이 사라지거나, 순서가 꼬일 수 있다.
  • 프로그램 구분 - 같은 IP 의 어떤 애플리케이션이 요청했는지 구분하지 못한다.

PORT

  • IP - 목적지 서버를 구분한다. (아파트)
  • PORT - 같은 IP 내에서 프로세스를 구분한다. (몇동 몇호)
    • 0 ~ 1023: 잘 알려진 포트로 사용하지 않는 것이 좋다.

IPv4 와 IPv6


IPv4 의 역사

  • 1981년 본격적으로 사용
  • 1985년 전체 주소 1/16 사용
  • 1991년 WWW 출시
  • 1993년 웹 브라우저 Mosaic 출시
  • 1995년 전체 주소 1/3 사용
  • 2000년 전체 주소 1/2 사용
  • 2011년 IPv4 할당 중지 선언

IPv4 개요

  • 32비트 주소 체계 = 43억개의 주소
  • 사설(Private)용 주소, 연구용 클래스 E 주소 등등 제외 시 배정 가능한 IPv4 주소 = 2억5천만개 정도

IPv4 의 주소 절약법

  • NAT(Network Address Translation)
    • 내부망에서 사설 IP 주소를 사용하고, 인터넷으로 나갈 때만 공인 IP 주소 사용
    • 인터넷 공유기의 원리
    • 단점: 시간이 더 걸림, E2E 기능을 지원하느 프로그램 호환성 문제
  • 서브넷팅
  • DHCP(Dynamic Host Configuration Protocol)
    • 사용하지 않는 주소를 자동으로 회수하고 주소가 필요한 PC에 그때그때 배분
  • CIDR(Classless InterDomain Routing)
    • 클래스 A, B, C 와 같은 기존의 약속을 무시하고 뒤에 붙은 서브넷 마스크만으로 클래스를 지정하는 방식
    • 서브넷팅의 반대개념인 수퍼넷팅, 즉 여러 개의 작은 네트워크를 한 개로 모아 라우팅 테이블을 줄여줌으로써 라우터의 메모리를 절약하고 라우팅 속도를 올려주기 위해 사용

CIDR


  • CIDR (Classless Inter-Domain Routing) consists of 2 components
    • Base IP - Represents an IP contained in the range
      • e.g. 10.0.0.0
    • Subnet Mask - Defines how many bits can change in the IP range
      • e.g.
        • /8 = 255.0.0.0
        • /16 = 255.255.0.0

Subnet Mask

  • 192.168.0.0/32 = 192.168.0.0
  • 192.168.0.0/24 = 192.168.0.0 ~ 192.168.0.255
  • 192.168.0.0/16 = 192.168.0.0 ~ 192.168.255.255

Private IP


  • IANA (Internet Assigned Numbers Authority) established certain blocks for private IPv4 addresses
    • 10.0.0.0 ~ 10.255.255.255 (10.0.0.0/8)
    • 172.16.0.0 ~ 172.31.255.255 (172.16.0.0/12) <- e.g. AWS default VPC range
    • 192.168.0.0 ~ 192.168.255.255 (192.168.0.0/16) <- e.g. home networks

0.0.0.0 과 127.0.0.1


127.0.0.1

  • 루프백 주소(loopback address), 로컬호스트(localhost)
  • 자기 자신을 가리키는 예약 주소

0.0.0.0/8

  • 호스트가 IP 주소를 할당받기 전에 임시로 할당되는 IP 주소다.
    • 예를 들어, DHCP Discover 메시지를 전송하는 시점의 클라이언트 IP 주소
  • 특별히 지칭할 IP 주소가 없을 때 사용되는 IP 주소다.
    • 호스트 입장에서 마땅히 자신을 지칭할 IP 주소가 없을 때

0.0.0.0/0

  • 모슨 임의의 IP 주소를 뜻한다.
  • 주로 라우팅에서 디폴트 라우트(default route)를 나타내기 위해 사용한다.
    • default route: 패킷을 어떤 IP 주소로 전달할지 결정하기 어려울 경우 기본적으로 패킷을 전달할 경로
    • 04. Amazon VPC > Route Table 에서 0.0.0.0/0 를 IGW 로 보내는 이유.