멀리 있는 컴퓨터끼리는 이렇게 데이터를 주고받는다 - IPv4 프로토콜

castlemin·2022년 5월 14일
0

IPv4 프로토콜


IPv4가 하는 일

  • 네트워크 상에서 데이터를 교환하기 위한 프로토콜
  • 데이터가 정확하게 전달될 것을 보장하지 않는다. (신뢰성 보장은 다른 계층의 프로토콜에서 진행)
  • 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있다. (악의적으로 이용되면 DoS 공격이 됨)
  • 데이터의 정확하고 순차적인 전달은 그보다 상위 프로토콜인 TCP에서 보장한다.

IPv4 프로토콜의 구조

(출처: https://www.educba.com/ipv4-header-format/)

헤더 컴포넌트크기설명
Version4BitIP 프로토콜의 버전이 오며 IPv4의 경우 4가 들어옴
IHL (Header Length)4Bit헤더(프로토콜)의 길이를 4로 나눈 값이 들어옴
TOS (Type of Service)1Byte데이터의 형식에 따라 값이 변하는 구간이나 아주 이전에 사용하였고 현재는 사용하지 않아 보통 0이 들어감
Total Length2Byte패킷 전체의 길이
Identification2Byte쪼개진 패킷들이 원래는 하나였음을 알 수 있게 하기 위한 ID
IP Flags3 Bit첫번째 비트는 사용하지 않고 두번째 비트는 D(do not fragment) 세번째 비트는 M(more fragment)이다. 때문에 첫번째 비트에는 0이 들어오며, D에는 패킷 조각화를 진행하지 않으려면 1이 들어오고, M에는 보내려는 데이터가 최대 전송 크기보다 커 현재 패킷 이후에 조각화 된 패킷이 더 와야할 때 1의 값이 들어간다.
Fragment Offset13Bit조각화 된 패킷이 원본에서 시작부분으로부터 얼마나 떨어져있는지, 즉 원 패킷에서의 위치를 알려주는 값이 들어간다.
Time To Live (TTL)1Byte패킷이 살아있을 수 있는 시간을 지정. 패킷이 네트워크 장비를 지날 때마다 해당 값이 1씩 감소함 (정상 전송이 되지 않은 패킷들이 죽지 않고 계속 살아있으면 네트워크에 부하 발생)
Protocol1Byte상위 프로토콜이 무엇인지 기재됨. (ICMP(3계층): 01 / TCP(4계층) : 06 / UDP(4계층) : 17)
Header Checksum2Byte해당 헤더에 오류가 있는지 확인할 수 있는 값. 패킷의 리시버가 헤더의 속성값들을 더하여 Header Checksum과 비교. 만약 같다면 오류 없이 전달 받은 것.
Source Address4Byte발신 호스트의 IP 주소
Destination Address4Byte수신 호스트의 IP 주소
IP options0~40ByteIHL이 5이상의 값(24바이트 이상)일 때 값을 갖으며, 보안과 관련된 값이나 설정이 들어온다.(Record route, time stamp, ...)
  • 옵션을 제외하고 기본적으로 20 Byte의 크기를 갖음 (옵션에 따라 60 Byte까지 커짐)


(* 유튜브 [따라하면서 배우는 IT] 채널의 "06. 멀리 있는 컴퓨터끼리는 이렇게 데이터를 주고받는다 - IP 프로토콜 구조" 강의를 요약한 내용입니다. )

profile
우보천리

0개의 댓글