2013년 10월 7일 월요일

인터넷 프로토콜 데이터그램 캡슐화와 포매팅

IP 데이터그램 캡슐화

  • 상위 계층 메시지는 TCP나 UDP 메시지로 패키징되고 그것은 다시 IP 데이터그램의 페이로드가 된다.
  • IP 데이터그램은 2계층으로 전달되어 LAN, WAN, WLAN 프레임으로 캡슐화된다.
  • 그리고 물리 계층에서 비트로 변환되어 전송된다.


IP 데이터그램 일반 포맷

  • 인터넷 프로토콜 버전 4 (IPv4) 데이터그램 포맷
필드 이름 크기(바이트) 설명
버전 1/2(4비트) 데이터그램을 만드는 데 쓰인 IP 버전을 나타낸다.
IHL 1/2(4비트) IP 헤더 길이를 32비트 워드 단위로 지정한다.
TOS 1 서비스 품질 기능(예: IP 데이터그램에 우선 순위를 줘서 전송)을 제공하기 위한 정보를 전달하는 필드.
TL 2 IP 데이터그램의 전체 길이를 바이트 단위로 지정한다.
식별자 2 이 필드는 특정 메시지에 속한 각 단편과 연관된 16비트 값을 포함한다.
플래그 3/8(3비트) 3개의 제어 플래그, 2개는 단편화 관리용, 1개는 예약
단편화 오프셋 1 5/8(13비트) 메시지 단편화가 일어날 때 이 필드는 전체 메시지 안에서 이 데이터의 위치, 또는 오프셋을 8바이트(64비트) 단위로 나타낸다.
TTL 1 이 필드는 데이터그램이 네트워크에서 얼마나 오래 살아남을 수 있는지를 라우터 홉 수로 나타낸다.
프로토콜 1 데이터그램에서 운반하는 상위 계층 프로토콜을 식별한다.
헤더 체크섬 2 전송 중 오류를 방지하기 위해 헤더에 대한 체크섬을 계산한다.
출발지 주소 4 데이터그램을 처음 송신한 장비의 32비트 IP 주소다.
목적지 주소 4 데이터그램의 목적지 장비의 32비트 IP 주소다.
옵션 가변적 일부 IP 데이터그램에서 표준 헤더 뒤에 올 수 있는 하나 이상의 옵션 유형
패딩 가변적 하나 이상의 옵션이 IP 헤더에 포함됐는데 그 옵션 비트 수가 32의 배수가 아닐 경우에는 헤더 길이를 32비트(4바이트)의 배수로 맞추기 위해 0비트 패딩이 추가됨
데이터 가변적 데이터그램에서 전송할 데이터로 전체 상위 계층 메시지이거나 아니면 단편화된 메시지의 일부


  • IPv4 플래그 하위 필드

하위 필드 이름 크기(바이트) 설명
예약 1/8(1비트) 쓰이지 않음
DF 1/8(1비트) 1로 설정 : 데이터그램을 단편화하지 말라는 것을 나타냄
링크의 최대 전송 단위(MTU)를 검사하는 데 쓰임
MF 1/8(1비트) 0으로 설정: 메시지의 마지막 단편이라는 것을 나타냄
1로 설정: 단편화된 메시지의 일부분이 아직 남아 있다는 것을 나타냄


  • IPv4 프로토콜 하위 필드

값(16진수) 값(10진수) 프로토콜
00 0 예약
01 1 ICMP
02 2 IGMP
03 3 GGP
04 4 IP-in-IP 캡슐화
06 6 TCP
08 8 EGP
11 17 UDP
32 50 보안 페이로드 캡슐화(ESP) 확장 헤더
33 51 인증 헤더(AH) 확장 헤더

  • IPv4 데이터그램 포맷

  • IP 데이터그램 TTL(Time to Live) 필드
    • 데이터그램이 무한히 인터넷을 방황하지 않도록 하기 위함
    • 데이터그램의 최대 홉 수를 나타냄
    • 라우터는 데이터그램을 처리할 때마다 TTL 필드를 1만큼 감소
    • TTL 값이 0이되면 데이터그램은 버려지며 최초 송신자에게 ICMP(Internet Control Message Protocol) 시간 초과(Time Exceeded) 메시지가 전송됨
  • IP 데이터그램 서비스 유형(TOS, Type of Service) 필드
    • 원래 IP 데이터그램 전달을 위한 특정 서비스 품질(QoS, quality-of-service) 기능을 제공하기 위해 고안된 1바이트
    • 거의 사용되지 않음
    • RFC 2474는 TOS 필드의 처음 6비트를 차등화 서비스(DS, Differentiated Services)라는 기술을 지원하도록 재정의
    • DS에서 TOS 피드의 값은 코드포인트(codepoint)라고 불림

IP 데이터그램 옵션과 옵션 포맷
  • 모든 IP 데이터그램은 표준 20바이트 헤더를 포함함
  • IP 헤더에서 옵션 필드의 전체 길이는 가변적
  • IPv4 옵션 포맷
하위 필드 이름 크기(바이트) 설명
옵션 유형 1 옵션 유형 하위 필드는 3개의 하위 필드로 다시 세분화 됨
옵션 길이 0 또는 1 가별 길이 옵션의 경우, 전체 옵션의 길이를 바이트로 나타냄
옵션 데이터 0 또는 가변적 가변 길이 옵션의 경우, 옵션의 일부로 전달할 데이터를 포함함


  • IPv4 옵션: 옵션 유형 하위 필드

하위 필드 이름 크기(바이트) 설명
복사 플래그 1/8(1비트) 데이터그램이 단편화될 때 옵션을 모든 단편에 복사해야 할 경우 1로 설정
옵션 클래스 2/8(2비트) 옵션이 속한 일반 범주를 명시하는 4개 값 중 하나를 지정. 실제로 쓰이는 값은 0(제어옵션)과 2(디버깅과 측정)의 두가지다.
옵션 번호 5/8(5비트) 옵션의 종류를 지정한다. 두 옵션 클래스 각각에 대하여 32개의 서로 다른 값을 지정할 수 있다.


  • 널리 쓰이는 IPv4 옵션
옵션 클래스 옵션 번호 길이(바이트) 옵션 이름 설명
0 0 1 옵션 목록 끝 옵션 목록의 끝을 표시하는 데 쓰이는, 단지 하나의 0바이트를 포함하는 옵션
0 1 1 동작 없음 필요할 경우 특정 옵션을 32비트 경계에 정렬하기 위해 내부적으로 패딩하는 데 쓰이는 "더미 옵션"
0 2 11 보안 군대에서 IP 데이터그램의 보안 등급을 지정하는 데 쓰이는 옵션
0 3 가변적 Loose 소스 라우팅 IP 데이터그램 소스 라우팅에 쓰이는 두 옵션 중 하나
0 7 가변적 경로 기록 데이터그램의 경로를 헤더 자체에 기록하는 데 쓰인다.
0 9 가변적 Strict 소스 라우팅 IP 데이터그램 소스 라우팅에 쓰이는 두 옵션 중 하나
2 4 가변적 시간 경로 기록 옵션과 유사하게 동작하지만 각 장비가 IP 주소 대신 시간 정보를 기록한다.
2 18 12 Traceroute RFC 1393에서 설명하는 traceroute 유틸리티의 개선된 버전에서 쓰인다.
    • 소스 라우팅 (RFC 791 참고)
      • 일반적으로 라우팅은 라우터의 몫
      • 데이터그램 최초 송신 장비가 경로를 지정하는 경우 소스라우팅
      • 2개의 IP 옵션이 소스 라우팅 지원
      • 옵션은 IP 주소 목록을 포함
      • strict 소스 라우팅
        • 옵션에 지정된 경로가 순서대로 정확히 사용되어야 함
        • 다른 라우터는 데이터그램을 절대로 처리하면 안됨
      • loose 소스 라우팅
        • 중간에 거쳐가야 할 IP 주소 목록을 지정
        • 목록에 있는 장비 사이에 다른 홉이 들어올 수 있도록 함

댓글 1개:

  1. 무슨 말인지 잘 모르겠어요. 상세하게 좀 알려주세요.

    답글삭제