Blog
스터디
CS Study with SON
13주차
IP 주소

출처 - https://github.com/jmxx219/CS-Study (opens in a new tab)

IP Address


IP 주소

  • 개념
    • 네트워크 환경에서 컴퓨터(노드)간 통신하기 위해 각 컴퓨터에 부여된 네트워크상의 주소
    • TCP/IP 프로토콜을 사용하는 네트워크와 연결된 모든 장치에 할당된 고유 식별자
  • 표현
    • 기본적으로 IP는 IPv4 형태
    • IP는 32비트 2진수로 표현 가능하며, 0 ~ 2^32개가 IP가 가질 수 있는 최대 갯수
    • IP의 8비트의 각각의 영역을 옥텟으로 지칭하여 구분하며 4개의 옥텟을 dot(.)로 구분함
    • IP 주소 = 네트워크 주소 + 호스트 주소
      • IP는 네트워크 주소와 호스트 주소로 구분되며, 하나의 네트워크 상에 여러 호스트 주소가 있을 수 있음
      • 네트워크 주소: 호스트들을 모은 네트워크를 칭함. 네트워크 주소가 동일한 네트워크를 로컬 네트워크라고 함
      • 호스트 주소: 하나의 네트워크에 존재하는 호스트를 구분하기 위한 주소
      • ex) 192.168.0.103에서 192.168.0은 네트워크 주소, 103은 호스트 주소
  • 유형
    • 공인 IP(Public IP) 주소
      • 인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소로, 공용 IP라고도 불림
      • 공인 IP는 전세계에서 유일한 IP 주소를 가짐
      • 외부에 공개되어 있어 인터넷에 연결된 다른 PC로부터 접근이 가능함
        • 공인 IP 주소를 사용하는 경우, 방화벽 등 보안 프로그램을 설치할 필요가 있음
    • 사설(Private IP) IP 주소
      • 일반 가정이나 회사 내 등에 할당된 네트워크의 IP 주소로, 로컬 IP 또는 가상 IP라고도 불림
      • 공인되지 않은 주소로, 외부에 공개되지 않아 원칙적으로 외부에서 검색과 접근이 불가능함
      • 사설 IP 주소만으로는 인터넷 연결 불가능
        • 라우터를 통해 1개의 공인 IP만 할당하고, 라우터에 연결된 개인 PC는 사설 IP를 각각 할당받아 인터넷에 접속 가능
        • ex) 공인 IP가 건물 주소라면, 사설 IP는 각 호실로 생각할 수 있음
  • IP 주소 설정 방식
    • 고정 IP 주소
      • 사용자가 직접 IP 주소를 입력해 주소를 설정하는 방식(수동)
      • 컴퓨터에 고정적으로 부여된 IP로, IP를 반납하기 전까지 다른 장비에 부여할 수 없음
    • 유동 IP 주소
      • IP 주소를 할당하는 서버나 공유기가 보여주는 정보 그대로 컴퓨터에 자동 설정되는 방식(자동)으로, DHCP (opens in a new tab) 서비스라고도 함
      • 고정적으로 IP를 부여하지 않고, 컴퓨터를 사용할 때 남아있는 IP 중에서 돌아가면서 부여하는 IP
    • ex) 인터넷 공유기는 사설 IP 주소를 생성하고 각 컴퓨터 등에 주소를 자동 할당(DHCP 서비스)하는 역할을 함

MAC 주소

  • IP 주소는 네트워크 상에서 단말을 구분하기 위해 부여된 논리적 주소(네트워크 주소)
  • MAC 주소는 48비트 식별자로, 제조업체를 식별하는 OUI와 각 장치를 고유하게 식별하는 NIC 부분으로 구성됨
  • MAC 주소는 NIC에 부여된 고유한 물리적 주소(하드웨어 주소)로, 48bit로 이루어져 있음
    • 컴퓨터간 데이터를 전송하기 위해 있는 컴퓨터의 물리적 주소
  • IP 주소간의 통신은 각 라우터 hop에서 일어나는 MAC 주소와 MAC 주소 통신의 연속적인 과정임
    • IP 주소는 변동가능성이 있지만, 하드웨어의 식별번호(기계의 고유 주소번호)인 MAC 주소는 변하지 않음

IP 주소 클래스(A, B, C class)

  • 개념
    • IP 주소를 네트워크 주소와 호스트 주소로 구분하는 방법(IP 주소 = 네트워크 주소 + 호스트 주소)
    • 하나의 네트워크에서 몇 개의 호스트 주소를 가질 수 있느야에 따라 클래스를 나눌 수 있음
  • 클래스 도입 이전
    • 예전에 IPv4 주소는 단순한 8비트의 네트워크 영역과 해등 네트워크 내의 호스트 주소를 가리키는 영역으로 단순하게 구분되어 있었음
    • 이 당시에는 대규모 네트워크가 적었기 때문에 나눌 필요가 없었음
  • 클래스 도입
    • 시대가 바뀌면서 대규모 네트워크가 늘어나는 상황에서 IP 주소 클래스가 등장함
    • 한정된 자원인 IP 주소를 체계적으로 나눠 쓸 필요가 있음
    • 대표적으로 A, B, C 클래스들이 가장 많이 사용됨
클래스최상위 비트주소 범위호스트 수(개)주소 영역 구분 (네트워크 + 호스트)네트워크 / 호스트 ID
A00.0.0.0 ~ 127.255.255.25516,777,216네트워크.호스트.호스트.호스트8/24 bit
B10128.0.0.0 ~ 191.255.255.25565,536네트워크.네트워크.호스트.호스트16/16 bit
C110192.0.0.0 ~ 223.255.255.255256네트워크.네트워크.네트워크.호스트24/8 bit
D1110224.0.0.0 ~ 239.255.255.255N/A멀티 캐스트 용-
E1111240.0.0.0 ~ 255.255.255.255N/A특수용도 예약주소-

Classful vs Classless

  • Classful addressing
    • 클래스 기반의 IP 주소 체계로, 기존 Class 별로 분류되어 있는 네트워크 범위를 사용하여 네트워크를 분류하고 주소를 지정하는 방식
    • 클래스 기반으로 네트워크를 분할하는 기법은 현재 사용하지 않음
    • 인터넷의 상용화로 네트워크 사용량이 폭발적으로 증가하여 IP 주소 부족 문제 발생
      • 해결 방법: Classless, IPv6, NAT 등
  • Classless addressing
    • 클래스 개념 자체를 버리는 클래스리스 기반의 주소 체계로, 관리자가 임의로 네트워크를 분류하고 주소를 지정하는 방식
    • 클래스 기반보다 네트워크 주소를 세밀하게 분할하고 할당하기 위해 네트워크 크기에 맞춰 1bit 단위로 네트워크를 상세히 분할하는 방법을 사용함
    • Classless 기반 주소 체계를 사용하기 위해 도입된 것이 서브넷 마스크(Subnet Mask)임
      • 관리자가 임의로 네트워크를 분류하기 때문에 컴퓨터입장에서는 어디까지가 네트워크 범위인지 구분할 수 없음
      • 서브넷 마스크(Subnet Mask): 네트워크 ID와 호스트 ID를 식별(구분)하기 위해 사용하는 Mask(네트워크 ID - 1bit, 호스트 ID - 0 bit)
      • 서브넷팅(Subnetting): 네트워크-호스트 기준을 사용자가 정해 원래 클래스풀 단위의 네트워크보다 더 조개 사용하는 것으로, 클래스리스 네트워크의 가장 큰 특징

Network ID : Host들을 모은 네트워크를 지칭하는 주소
Host ID : 하나의 네트워크 내에 존재하는 Host를 구분하기 위한 주소


IPv4 vs IPv6

구분IPv4IPv6
주소 길이32bit128bit
표시 방법8bit씩 4부분 10진수 표시16bit 8부분 16진수로 표시
주소 개수약 43억개거의 무한대(2^128)
주소 할당 방식클래스 기반 비순차 할당네트워크 규모, 단말기 수에 따라 순차할당
헤더 크기가변고정
Qos 제공미흡제공
보안IPSec 프로토콜 별도 설치IPSec 자체 지원
서비스 품질제한적 품질 보장확장된 품질 보장

IPv4(Internet Protocol version 4)

  • 기본적으로 IP는 IPv4 형태
  • 주소 체계
    • 8bit 씩 4개의 필드로 구성되어 32bit의 숫자로 표현함
    • IP address = Network ID + Host ID
    • Class 기반 주소 체계(A ~ E)
  • Checksum
    • IPv4에서 수행하는 체크섬
      • 전달된 IP 패킷의 헤더에서 체크섬 값을 제외한 모든 값을 더해 전달된 체크섬 값과 비교해 같으면 정상, 다르면 비정상으로 판단이 진행됨
    • TCP에서 수행하는 체크섬
      • IPv4와 같이 헤더만 필요한 것이 아님
      • IP 헤더에서 뽑아낸 출발지의 주소와 도착지의 주소 등을 포함하고 있는 의사 헤더(Pseudo Header)를 만들어낸 다음, 의사 헤더와 TCP 세그먼트의 값을 16비트 단위로 끊은 뒤 모두 더해 하나의 값을 만들어냄
      • 만들어진 값이 전달된 체크섬과 더해 모두 1이라면 정상, 아니라면 비정상으로 판단
      • 정상일 경우 1의 보수를 취한 뒤 체크섬 값으로 보내게 됨
  • 한계
    • IPv4의 클래스 기반 주소 체계는 네트워크와 호스트 ID 길이가 고정적이므로 비효율적이며 주소 부족 문제 발생

주소 고갈 문제해결

  • 논리적 확장 방안
    • 서브넷팅(Subnetting)
      • Subnet Mask를 이용하여 IP 주소 중 host 주소 일부분을 필요한 만큼의 서브 network로 분할하여 사용하는 방법
      • 한 네트워크의 브로드캐스팅이 다른 네트워크로 전송되지 않으므로 네트워크 상의 불필요한 트래픽을 줄일 수 있음
    • NAT(Network Address Translation)
      • 공인 IP와 사설 IP를 서로 변환시켜줌
        • 사설 IP는 공인 IP와는 달리 동일 네트워크 내부에서만 인식이 되고 타 네트워크에서는 접속할 수 없기 때문에 방화벽의 일부로 사용함
      • 소수의 공인 IP를 통해 수 많은 사설 IP가 인터넷에 연결될 수 있게 하는 기술을 말함
        • 통신사업자들이 개인에게 대부분 한 개의 유동 IP만 제공하고 있어, 한 개의 IP로 여러 단말들이 공유하여 사용할 수 있음
      • 사설 IP 주소를 사용하면서 공인 IP 주소는 한정되어 있기 때문에 이를 공유하는 것
    • DHCP (opens in a new tab)
      • IP 주소를 관리하고 할당하며 컴퓨터가 네트워크의 다른 장소에 접속되었을 때 자동으로 새로운 IP 주소를 할당함
      • 사용 가능한 IP 주소의 개수보다 더 많은 컴퓨터가 있는 경우에도 IP 주소의 임대시간을 짧게 함으로써 네트워크를 동적으로 재구성할 수 있음
  • 물리적 확장 방안
    • IPv6 적용
      • 32bit 주소공간체계를 쓰던 IPv4에 비하여 128bit로 이를 확장하여 이론적으로 무한대의 주소공간을 확보하게 됨
      • IPv4와 달리 비클래스 주소체계를 적용하여 효율성을 높임

브로드캐스팅(broadcasting): 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식


IPv6(Internet Protocol version 6)

  • IPv4의 주소 부족과 보안성 취약, 성능 부족 등의 문제점을 해결하기 위한 Internet Protocol
  • 특징
    • 확장된 주소 공간
      • 128 bit 주소 체계를 사용하여 IPv4의 주소 부족 문제 해결
      • IP 주소를 절약하기 위해 사용되는 NAT와 같은 주소 변환 기술도 불필요
    • 새로운 헤더 포맷
      • 헤더를 고정 길이로 변경 (40 byte)
      • 패킷 단편화(fragmentation) 관련 필드 삭제
      • 체크섬(checkSum) 필드 삭제
    • 향상된 서비스의 지원
      • 트래픽을 효과적으로 분류할 수 있는 기능 제공
      • 이를 위해 IPv6 헤더 내에 플로우 레이블(Flow Label) 필드 이용
    • 보안 기능
      • IPv4에서의 보안은 IPSec라는 보안 관련 프로토콜을 별도로 설치해주어야 함
      • IPv6에서는 프로토콜 내에 보안관련 기능을 탑재할 수 있도록 설계
      • 확장 헤더를 통하여 네트워크 계층에서의 종단감 암호화 제공
    • 주소 자동 설정
      • 로컬 IPv6 주소를 LAN 상의 MAC 주소와 라우터가 제공하는 네트워크 프리픽스(prefix)에 결합하여 IP 주소를 자동 생성함
      • 이동형 컴퓨터의 경우, 어느 곳에서든 네트워크 연결을 설정하면 자동으로 포워딩 주소를 설정할 수 있게 함
  • 주소 체계
    • 128bit = Network ID(64bits)+ Host ID(64bits)
    • 128bit를 16bit로 나누어 16진수로 표시하여 :으로 구분함

IPv4과 IPv6의 통신

  • 듀얼 스택
    • 하나의 시스템에서 IPv4와 IPv6 두 프로토콜을 처리하는 기술
    • 시스템은 물리적으로 하나지만 논리적으로는 둘 다 지원
  • 터널링(tunneling)
    • 패킷을 캡슐화하여 가상의 터널을 이용하여 통신
    • IPv4 지역에 들어서면 IPV6 패킷은 IPv4 패킷으로 캡슐화되고, 이 지역을 벗어날 때 역캡슐화됨
  • 헤더 변환
    • 인터넷의 대부분이 IPv6로 변경되고, 일부만이 IPv4를 사용할 때 필요한 방법
    • 헤더를 제외하면 동일하기 때문에 헤더 변환을 통해 헤더의 형태를 완전히 변경하여 데이터를 전송

참조

https://velog.io/@naeson/IPV6-IPV4-%EC%97%B0%EB%8F%99#dual-stack (opens in a new tab)


IP(Internet Protocol)

  • 개념
    • 네트워크 통신을 할 때 쓰는 프로토콜로, IP 기기의 주소를 나타내는 것이 IP 주소
  • 특징
    • IP는 비신뢰성, 비연결성 특징을 갖고 있어 IP 자체만으로는 정확하게 전송되는 것을 보장할 수 없음
    • 따라서 TCP와 같은 상위 계층의 프로토콜을 함께 사용해야 함
  • TTL(Hop Limit)
    • IP 패킷이 무한정으로 네트워크를 떠돌지 않도록 하기 위해서 설정한 거칠 수 있는 라우터의 최대 개수
    • 하나의 라우터를 거칠 때 마다 1씩 감소하며 TTL이 0인 패킷을 받은 라우터는 해당 패킷을 버리게 됨