개념 사전 · 프로토콜

IPv4

Internet Protocol version 4 · IP 버전 4

는 32비트 주소를 사용해 서로 다른 네트워크 사이로 데이터그램을 전달하는 인터넷 계층 프로토콜이다. 에 필요한 주소와 ·길이·단편 정보를 제공하지만 도착·순서·재전송을 보장하지 않는다.

밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.

01무엇이고, 어떤 일을 하나

  • 출발지와 목적지 주소를 이용해 라우터가 네트워크 경계를 넘어 전달하도록 한다.
  • 을 줄여 잘못된 경로에서 패킷이 무한히 순환하는 일을 제한한다.
  • · 조건에 따라 단편화하거나 오류를 알려 상위 통신의 크기 처리를 돕는다.

02어떤 순서로 동작하나

  1. 목적지

    목적지 주소를 경로표의 프리픽스와 비교하고 가장 구체적인 유효 경로를 고른다. 로컬 링크인지 게이트웨이 경유인지에 따라 다음 홉이 달라진다.

  2. 헤더 구성과 검증

    송신자는 ·Protocol··주소·체크섬을 구성한다. 수신 라우터는 지원하는 형식과 길이·헤더 체크섬을 검사하고 자신이 처리할 패킷인지 전달할 패킷인지 구분한다.

  3. 홉과 크기 처리

    전달할 때 을 줄이고 헤더 체크섬을 갱신한다. 출구 를 넘으면 ·단편화 규칙에 따라 조각을 만들거나 오류를 보낼 수 있다.

  4. 다음 링크와 최종 수신

    다음 홉의 링크 주소를 이용해 새 프레임을 만든다. 최종 수신지는 필요한 단편 재조립을 완료하고 Protocol 값에 맞는 상위 처리기로 넘긴다.

03먼저 알아둘 용어와 구성요소

Internet Header Length다. 헤더 길이를 32비트 단위로 나타내며 옵션이 없으면 값 5, 즉 20바이트다.
헤더와 데이터 전체 길이를 바이트 단위로 나타내는 필드다. 헤더는 포함하지 않는다.
Time To Live다. 라우터를 거칠 때 감소하는 값으로, 전달 루프가 무한히 지속되는 것을 제한한다.
원래 데이터에서 조각의 시작 위치를 8바이트 단위로 표시한다.
같은 원래 데이터그램의 조각을 재조립할 때 구별에 사용하는 식별 값이다. 사용 조건은 및 분할 가능성과 함께 해석한다.
Do not Fragment 플래그다. 분할하지 말라는 의미이며 를 넘는 패킷은 라우터에서 필요한 오류 통지와 함께 폐기될 수 있다.
More Fragments 플래그다. 뒤에 더 많은 조각이 있음을 나타내며 마지막 조각에서는 0이다.
헤더에 대한 16비트 오류 검출 값이다. 상위 계층 데이터 전체를 검사하는 값은 아니다.
Differentiated Services Code Point다. IP 헤더에서 서비스별 전달 처리를 구별하는 6비트 값이다.
Explicit Congestion Notification이다. 지원하는 종단과 장비가 혼잡을 신호할 때 쓰는 IP 헤더의 2비트 필드다.
목적지 주소와 일치하는 경로 중 프리픽스가 가장 긴 경로를 먼저 고르는 전달 원칙이다.
LEARN THROUGH PRACTICE

실습: /24 호스트 판단과 /25 인터페이스 설정 비교

마스크가 로컬·원격 판단을 바꾸는 이유를 show ip와 인터페이스 출력으로 계산한다.

실습 구성과 전제

  • 192.168.3.1/25 설정과 192.168.10.66/24 단말은 별도 사례다. 한 네트워크의 연속 실행으로 합치지 않는다.
  • 호스트와 라우터의 주소·마스크를 각각 기록한다.
  1. 호스트의 같은 네트워크 계산

    • 192.168.10.66/24를 AND하면 192.168.10.0이므로 .130도 같은 링크라고 판단한다. 물리적으로 라우터 너머라는 사실을 자동으로 알아내지는 못한다.
    • GATEWAY 0.0.0.0은 기본 게이트웨이가 설정되지 않은 상태다. 이 때문에 .130을 직접 하는 상황을 일반적인 기본 게이트웨이 동작과 구분한다.
    text
    PC1> show ip
    PC1> show arp

    실습 흐름을 재구성한 명령 예시. 장치·인터페이스 이름은 구성에 맞춰 사용한다.

    L3 · 실습·개념 참고 화면 7원본 크기로 보기 ↗
    • IP/MASK는 192.168.10.66/24다.
    • GATEWAY 0.0.0.0과 MTU 1500이 별도 항목으로 보인다.
    확인 기준

    PC가 .130의 MAC을 직접 찾는다면 /24 판단과 맞는다.

  2. 별도 /25 설정의 범위 계산

    • 255.255.255.128은 /25다. 192.168.3.1은 네트워크 .0, 호스트 .1~.126, 브로드캐스트 .127의 범위에 속한다.
    • ip address의 두 번째 값은 게이트웨이가 아닌 마스크다. no shutdown 뒤 LINK·LINEPROTO up은 원격 경로 성공까지 의미하지 않는다.
    text
    interface Ethernet2/0
     ip address 192.168.3.1 255.255.255.128
     no shutdown
    end
    show ip interface brief

    실제 설정에 맞춘 명령 정리

    L3 · 명령·상태 출력 1원본 크기로 보기 ↗
    • Ethernet2/0에 192.168.3.1 255.255.255.128이 설정된다.
    • no sh 뒤 LINK와 LINEPROTO의 up 메시지가 나타난다.
    확인 기준

    /25를 /24로 읽으면 범위가 두 배가 되어 설계와 달라진다.

  3. 로컬 판단의 패킷 결과 비교

    • .66↔.130 캡처에서 .66이 .130을 하고 라우터 쪽 MAC이 응답한다. 이는 Proxy 맥락으로 읽어야 한다.
    • Echo request의 64와 reply의 63은 반대 방향 패킷이다. 두 값만 빼서 한 요청의 홉 수를 확정하지 않는다.
    L3 · 실습·개념 참고 화면 4원본 크기로 보기 ↗
    • Who has 192.168.10.130? Tell 192.168.10.66이 보인다.
    • 이후 Echo request/reply에 TTL 64·63이 각각 나타난다.
    확인 기준

    감소는 같은 방향의 패킷을 다른 관측 지점에서 비교해야 입증된다.

실습에서 확인한 동작 원리

  • 주소 자체보다 마스크로 계산한 네트워크가 로컬 판단을 결정한다.
  • 인터페이스 up· 응답· 왕복은 서로 다른 성공 증거다.
관련 개념·전체 실습 화면 이어서 읽기 →
동작·명령 참고 문서

04예제로 따라가기

  • 다른 헤더 바이트는 고정이고 이전 체크섬 HC=0xb861, =64, Protocol=6인 유효 헤더를 가정한다. 전체 헤더를 다시 더하는 대신 변한 워드만 이용한다. ~HC=0x479e, m=0x4006, ~m=0xbff9, m′=0x3f06이다. 반전은 16비트 범위로 제한하며 일반 정수의 음수 연산으로 해석하지 않는다.
  • 0x479e+0xbff9+0x3f06=0x1469d다. 상위 캐리 1을 하위 0x469d에 더하면 0x469e가 된다. 0x469e를 반전하면 HC′=0xb961이다. 이 예에서는 이 1 감소하면서 체크섬이 0x0100 증가했지만 일반 변경에는 전체 증분 식을 사용한다.
  • 라우터 전후 캡처에서 주소·식별자·길이는 같고 과 체크섬만 이 값처럼 바뀌었다면 한 홉 전달과 일치한다. 옵션· 등 다른 변경이 있으면 그 필드도 계산에 포함한다.

05혼동하기 쉬운 점과 확인 기준

  • 수신지는 출발지·목적지 주소, Protocol, 을 함께 사용해 같은 데이터그램의 단편을 묶는다. 숫자 하나만 같다고 같은 원본 패킷으로 합치지 않는다.
  • 값에 8을 곱하면 원래 IP 데이터 안에서의 시작 바이트다. 각 단편의 실제 데이터 길이는 −×4로 계산한다.
  • =0인 마지막 단편은 최종 데이터 끝을 알려 준다. 앞부분이 빠졌다면 마지막 단편을 받았어도 전체 데이터그램은 완성되지 않는다.

06상세 노트 · 실습 자료

헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.

공식 문서 · 표준

기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.