IPv4 프로토콜


네트워크 상에서 데이터를 교환하기 위한 프로토콜이다. IPv4 프로토콜에서는 전송자와 수신자 사이에 연결을 유지하지 않는 상태에서 패킷 단위로 전송을 함으로 데이터가 정확하게 전달되는 것을 보장하지 않는다. 이로 인해 보낸 순서와 수신한 순서가 바뀔 수도 있고 제대로 전송하지 못하는 패킷이 존재할 수 도 있다. 데이터의 정확하고 순차적인 전달은 그 보다 상위 프로토콜인 TCP에서 보장한다.

 

IPv4 프로토콜의 구성


  • Version : IP프로토콜의 버전이며 일반적으로 IPv4를 사용
  • IHL : IP 헤더 길이 (실제 헤더 길이/4)
  • Type of Service : 서비스의 형식을 나타내는 값이지만 현재 사용 안 함
  • Total Length : 페이로드까지 포함한 전체 길이
  • Identification(단편화/재조합 관련 필드) : 단편화 전 원본 패킷을 식별하기 위한 ID
  • IP Flags(단편화/재조합 관련 필드) : 총 3bit로 구성되어 있으며 첫 번째 비트는 사용하지 않으므로 0으로 세팅되고 두 번째 비트는 Don't fragment bit로 1 설정 시 단편화를 사용하지 않는다는 것을 나타내며 3번째 비트는 More fragment bit로 1 설정 시 단편화가 남아있다는 것을 나타낸다.
  • Fragment Offset(단편화/재조합 관련 필드) : 단편들을 순서대로 조합하기 위한 현재 단편의 상대 위치를 저장
  • Time To Live : 패킷의 생존시간을 지정한다. TTL을 사용하는 목적은 라우터/L3 스위치를 통해 패킷 라우팅을 하던 도중 무한 루핑이 발생하여 목적지에 도달할 수 없는 패킷이 무한히 생존하여 네트워크 대역만 차지하는 상태를 방지하기 위함이다. (window → 128, linux → 64)
  • Protocol : 상위 프로토콜을 식별하기 위한 프로토콜 번호를 저장
  • Header Checksum : 데이터부를 제외한 헤더 부분의 오류 검사값
  • Source Address : 출발지 IP 주소
  • Destination Address : 목적지 IP 주소

 

ICMP 프로토콜


ICMP(Internet Control Message Protocol) 프로토콜은 네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메시지를 전송받는 데 주로 쓰이는 프로토콜이다. 프로토콜 구조의 Type과 Code를 통해 오류 메시지를 전송받는다.

 

 

ICMP 프로토콜의 구조


  • Type : ICMP의 타입 (대분류)
0 (Echo Reply) 응답
8 (Echo Request) 요청
3 (Destination Unrecheable) 목적지까지 도달하지 못함(가는 경로 상에 문제가 있음)
11 (Time exceeded for a datagram) 목적지까지 도달하였지만 응답을 못받음(상대방 쪽에 문제가 있음)
5 (Redirect) 원격지에 있는 라우팅 테이블을 수정할 시 사용
  • Code : Type에 속하는 하위 기능을 지시하는 코드 (소분류)
  • Checksum : ICMP 헤더 부분의 오류 검사값

 

Wire shark로 확인해보기


IPv4 프로토콜
ICMP 프로토콜

'Network' 카테고리의 다른 글

Port Number  (0) 2021.09.02
IPv4의 조각화  (0) 2021.08.30
ARP 프로토콜  (0) 2021.08.27
Ethernet 프로토콜  (0) 2021.08.27
IP주소  (0) 2021.08.27

+ Recent posts