IPv4가 하는 일
- 네트워크 상에서 데이터를 교환하기 위한 프로토콜
- 데이터가 정확하게 전달될 것을 보장하지 않음
- 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있다.
(악의적으로 이용되면 DoS 공격임)- 데이터의 정확하고 순차적인 전달은 그보다 상위 프로토콜인 TCP에서 보장
IPv4 프로토콜의 구조
- 보통 20Byte이고 옵션이 붙으면 4Byte씩 늘어나고 최대 10개가 붙을 수 있음(max 60Byte)
- Version
- IPv4로 0100- HLen(헤더길이) - 4bit
- 4bit로 최대 15까지만 표현 가능한데, IPv4의 헤더는 20~60Byte임으로 헤더 / 4를 해서 표현
ex)
헤더길이가 40Byte면 40/4로 1010이 됨
헤더길이가 20Byte면 20/4로 0101이 됨- Type of Service(TOS) - 8bit
- 지금은 쓰지 않는다
- 0 0으로 적는다- Total Length
- 헤더 + 페이로드의 길이- Identification - 16bit
- 원래 하나의 데이터를 나눌 때, 식별하기 위해 같은 id정보를 주는 것
(그래야 다시 하나로 합칠 때, 구별할 수 있기 때문)- IP Flags - 3bit
- X: 쓰고 있지 않음
- D(Don't): 조각화하지 않고 보낸다는 의미(보내는 단위가 더 크면 안 보내짐)
- M(More): 조각화한다는 의미- Fragment Offset - 13bit
- IT에서 offset이란 어느 기준에서 얼마만큼 떨어져 있음을 의미
- 여기서는 시작부분에서 부터 얼마만큼 떨어져 있음의 의미한다.- Time To Live(TTL) - 8bit
- 패킷이 살아있을 수 있는 시간
- 패킷이 잘못 전송될 경우 계속 쌓이게 되고 이게 DoS공격처럼 될 수 있음
- 그래서 TTL을 설정해서 라우터를 지날 때 마다 1씩 감소시켜 0이 되면 사라지게 함.- Protocol
- 상위 프로토콜 타입을 알려줌(ICMP-01, TCP-06, UDP-17)- Header Checksum
- 오류 검사
<출처>
"네트워크 기초(개정판)".따라하면서 배우는 IT.https://www.youtube.com/playlist?list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi (2023.03.09)
내용정리는 제 입맛에 맞게 바꿨습니다.