본문 바로가기
ITinIT

[TCP/IP 기본 개념 잡기] IP 주소의 구조(IP version 4)

by itinit 2023. 7. 5.

 

이 블로그의 [TCP/IP 기본 개념 잡기] 시리즈

  1...... [TCP/IP 기본 개념 잡기] OSI 모델/TCP IP 모델

  2..... [TCP/IP 기본 개념 잡기] OSI 7 layer 상세

  3..... [TCP/IP 기본 개념 잡기] TCP/IP 주소 종류

  4..... [TCP/IP 기본 개념 잡기] IP 주소의 구조(IP version 4)

  5..... [TCP/IP 기본 개념 잡기] IP주소 표기

  6..... [TCP/IP 기본 개념 잡기] IP주소 효율적으로 사용하기

 

... 목 차 ...

     

    [TCP/IP 기본 개념 잡기] IP 주소의 구조(IP version 4)

    TCP/IP에 대한 기본개념을 잡기 위한 기획입니다. TCP/IP는 인터넷, 클라우드, 사내망, 사설망 등의 통신을 이해하는데 필수적인 요소입니다. 통신을 이해하기 위한 모델(여기서는 기능별(Layer)로 여러 조각으로 나누는 것으로 이해)이나, 이 자체를 이해하는데도 어려움이 있는 것이 사실입니다. 짧고 간결하게하여 이해하기 쉽도록 하였습니다. 조금 딱딱한 얘기 일 수 있어 TIP 부분으로 보완해봤습니다.   

     

    용어

    • 옥텟(Octet): 컴퓨팅에서 8개의 비트가 한데 모인 것. 8bit는 1Byte를 구성하지만 반드시 8비트를 의미하는 것이 아니었을 때 구분하기 위해 사용한 용어임. 

     

    IP주소의 구조

    • 네트워크 계층에서는 모든 장치들 간에 전 세계적으로 통신할 수 있도록 인터넷에 연결된 모든 장치들을 유일하게 구분할 수 있는 방법 필요
    • IPv4는 32bit로 구성됨, 따라서 한 비트(0 혹은 1)가 32개로 되어 있으므로, 2의 32 승(4,294,967,296)개의 주소가 이론적으로 가능함
    • 가독성을 높이기 위해 8비트(1 옥텟, octet) 단위 당 점(.)으로 구분하되 10진수로 표기함
    • 한 옥텟당 8비트로 2의 8 승개(256개)의 주소가 이론적으로 가능하며 10진수로 0~255까지의 숫자로 표현 가능함
    • IP주소는 0~255.0~255.0~255.0~255로 한 주소를 사용할 수 있음(점 10진 표기법)
      • TIP: 이해를 돕기 위한 이론적인 IP 0.0.0.0 ~ 255.255.255.255

     

    클래스 기반 주소 지정(Classful Addressing)

    • IP주소는 초기에는 클래스 기반 주소 지정(Classful addressing) 구조로 설계되었으나, 현재는 '클래스 없는 주소 지정(Classless Addressing)'이 사용됨
      • TIP: Classful Addressing을 이해하면 Classless Addressing를 조금 더 쉽게 이해할 수 있습니다.
    • 점 10진 표기법으로 본 클래스 기반 주소의 범위
      • CLASS A: 0~255.0~255.0~255.1~254
      • CLASS B: 128~191.0~255.0~255.0~255
      • CLASS C: 192~223.0~255.0~255.0~255
      • CLASS D: 224~239.0~255.0~255.0~255
      • CLASS E: 240~255.0~255.0~255.0~255

     

    NetID와 HostID

    • 클래스 A, B, C의 IP주소는 netid와 hostid로 구성
    • netid는 네트워크 구분을 위해 사용되며 보통 한 회사, 회사 내 조직, 그룹 등에 해당 네트워크를 사용(할당) 되었음을 알 수 있음
      • CLASS A: 0~127.0~255.0~255.0~255 중 첫 번째 옥텟
      • CLASS B: 128~191.0~255.0~255.0~255 중 첫 번째, 두 번째 옥텟
      • CLASS C: 192~223.0~255.0~255.0~255 중 첫 번째, 두 번째, 세 번째 옥텟
    • hostid는 동일한 netid에서 host에 할당 가능한 번호이며 네트워크에서 host를 식별함
      • CLASS A: 0~127.0~255.0~255.0~255 중 두 번째, 세 번째, 네 번째 옥텟
      • CLASS B: 128~191.0~255.0~255.0~255 중 세 번째, 네 번째 옥텟
      • CLASS C: 192~223.0~255.0~255.0~255 중 네 번째 옥텟

     

    CLASS A 특징

    • 128개(8bit, 2의 8승)의 netid가 있으며, netid 1개당 hostid 16,777,216개 할당 가능(8+8+8 = 24bit, 2의 24승)
    • 첫 번째와 마지막 netid는 특별한 목적을 위해 예약됨(0., 127.)
    • netid 10(10.0.0.0~10.255.255.255)은 사설 주소로 인터넷에서는 통신할 수 없으나 회사/조직/그룹 내에서는 자유로이 사용 가능함
      • RFC 1918과 RFC 4193 표준

    CLASS B 특징

    • 16,384개(8+8 = 16bit, 2의 16승)의 netid가 있으며, netid 1개당 hostid 65,535개(8+8 = 16bit, 2의 16승) 할당 가능
    • netid 172.16 ~ 172.31(172.16.0.0 ~ 172.31.255.255)는 주소로 인터넷에서는 통신할 수 없으나 회사/조직/그룹 내에서는 자유로이 사용 가능함
      • RFC 1918과 RFC 4193 표준

    CLASS C 특징

    • 16,777,216개(8+8+8 = 24bit, 2의 24승)의 netid가 있으며, netid 1개당 hostid 256개(8bit, 2의 8승) 할당 가능
    • netid 192.168(192.168.0.0 ~ 192.168.255.255)는 주소로 인터넷에서는 통신할 수 없으나 회사/조직/그룹 내에서는 자유로이 사용 가능함
      • RFC 1918과 RFC 4193 표준

     

     

    IP주소의 특징

    • 네트워크 상에서는 호스트는 하나의 유일한 IP 주소를 가져야 함
    • 하나의 호스트는 네트워크 상에서 복수개의 유일한 IP를 가질 수 있음 => 멀티홈드(multihomed) 호스트
    • 인터넷 주소는 이름이 아니고 장치에 대한 네트워크 상의 위치를 나타냄
    • netid와 hostid로 구성되어 있기 때문에 특정 네트워크에 대한 장치의 연결만 나타냄
      • TIP: OSI Layer 3이기 때문임

     

    특수주소

    • 네트워크 주소:  
      • hostid가 모두 0으로 되어 있음
      • 예) 10.0.0.0 172.31.0.0 192.168.11.0
      • TIP: IP주소 하나이지만, netid가 아니라 해당 네트워크 자체를 구분하기 위해 필요한 주소라고 이해하면 됩니다. 외부에서 구분하기 위해 해당 IP 주소를 그룹으로 묶고 이름을 붙였다고 생각하시면 됩니다. 반드시 1개는 필요합니다.
    • 직접 브로드케스트 주소:
      • 라우터가 특정 네트워크 내에 있는 모든 호스트에 패킷을 보낼 때 목적지 주소로 사용
      • 발신자 주소: 라우터 주소
      • 목적지 주소: hostid 가 모두 1로 되어 있음
        • 예) 발신자 주소(라우터 주소) 192.168.11.1 직접 브로드케스트 주소: 192.168.11.255
      • TIP: 반드시 1개는 필요합니다. 
    • 제한된 브로드캐스트 주소
      • 특정 호스트가 다른 모든 호스트에게 메시지를 전송
      • 라우터는 기본적으로 이 유형의 주소를 막음
      • CLASS E 주소 유형
      • 발신자 주소: 자기 자신의 주소
      • 목적지 주소: netid와 hostid가 모두 1로 되어 있음
      • 예) 호스트 주소 192.168.11.100 제한된 브로드캐스트 주소: 255.255.255.255 
    • 현재 네트워크에 있는 호스트
      • IP주소가 모두 0(0.0.0.0)
      • 자신의 IP를 모르는 호스트가 부트스트랩(컴퓨터나 시스템이 처음 시작) 자신의 주소를 찾기 위해 사용하는 발신지 주소로 사용하고 자신의 주소는 제한된 브로드캐스트 주소로 설정
      • 항상 클래스 A 주소임
      • 발신자 주소: 0.0.0.0
      • 목적지 주소: 255.255.255.255
    • 현재 네트워크에 있는 특정 호스트
      • netid가 모두 0인 IP주소는 현재 네트워크에 있는 특정 호스트를 의미
      • 동일 네트워크에 있는 다른 호스트에게 메시지를 보낼 때 목적지 주소로 사용
      • 패킷이 라우터에 의해 차단되기 때문에 패킷을 로컬네트워크에 제한
      • 클래스 A 주소
      • 예)
        • 발신자 주소: 192.168.30.100
        • 수신자 주소: 0.0.0.200
    • 루프백 주소
      • 첫 번째 옥텟이 127인 IP는 루프백(loopback) 주소로 목적지 주소로 사용
      • 패킷은 시스템 밖으로 나가지 않고 단순히 프로토콜 소프트웨어에 반환
      • 클래스 A 주소
      • 예) 
        • 발신자 주소: 192.168.40.100
        • 수신자 주소: 127.0.0.1
    • 유니캐스트 주소 
      • 일대일 통신
        • 하나의 패킷이 개별적인 발신지로부터 하나의 목적지로 전송 
        • 클래스 A, B, C
    • 멀티캐스트 주소 
      • 일대다 통신
        • 패킷이 개별적인 발신자로부터 복수의 목적지(그룹)에 보냄
        • 클래스 D 
        • 전체주소는 Group ID를 나타냄 
        • 목적지 주소로만 사용
        • netid 224.0.0 주소는 특별한 용도(라우팅 프로토콜 통신 등) 
        • netid 244.0.1 주소는 회의/원격회의용
    • 브로드캐스트 주소
      • 일대모두 통신 
      • 인터넷은 로컬 네트워크에서만 사용, 송신자가 인터넷상의 모든 호스트와 라우터에게 하나의 메시지를 보낼 수 없음

     

    정리

    예전 개념이지만 클래스 기반 주소 지정(Classful Addressing)의 개념을 완전히 이해하고 있어야 클래스 없는 주소 지정(Classless Addressing)이해시에 헤갈리지 않습니다. 특수 주소 중 네트워크 주소, 직접 브로드캐스트 주소, 루프백 주소의 개념은 실무에서 상당히 많이 만나는 개념입니다.

     

    참조

     

     

    댓글