본문 바로가기
네트워크

IPv4, ICMP(3계층)

by 요섹남 2022. 6. 15.

- 멀리 있는 컴퓨터끼리 데이터를 주고받는 과정 -

# IPv4 프로토콜

1. IPv4가 하는 일

- 네트워크 상에서 데이터를 교환하기 위한 프로토콜

- 데이터가 정확하게 전달될 것을 보장하지 않는다.

- 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있다.(악의적으로 이용되면 DoS 공격이 됨)

- 데이터의 정확하고 순차적인 전달은 그보다 상위 프로토콜인 TCP에서 보장한다.

20Byte 이며 옵션 하나당 4Byte 씩 늘어나고 최대 10개 까지 붙을수 있다.

2. IPv4의 구조

- Version : IPv4의 Version 정보가 들어간다. => 4, 4bit

- IHL : 헤더의 길이가 들어가는데 4bit 크기이므로 표현할 수 있는 숫자가 15가 최대이다 그러므로 최대 길이를 4로 나눠서 들어가게 된다.

- TOS : 지금은 쓰이지가 않아서 0으로 비워둔다. 원래는 데이터를 주고받는 형식의 값이 들어갔었다.

- Total Length : 헤더의 길이를 말하는게 아닌 페이로드 까지 합쳐진 길이를 말한다.(전체의 길이)

- identification, IP Flags, Fragment Offset : 한세트라고 보면 편하다. 데이터를 큰것을 보낼때 쪼개진 값을 알아볼수 있게 하는 것이다.

  * identification : 하나의 데이터가 잘게 쪼개졌을때 하나씩 보낸 값이다.(잘개 쪼개진 패킷들에게 공통된 ID를 부여)

  * IP Flags : 총 3Bit로 이루어져 있으며 첫번째 값은 쓰지 않는다, 두번째 값은 보내는 사람이 데이터를 안쪼개고 보내는걸 명시하는 부분이다(거의 안쓴다 쪼개지않으면 값이 보내지지 않기 때문이다.),세번째 값은 조각화가 이루어졌다는 걸 명시하는 부분이다.

  * Fragment Offset : 쪼개진 패킷들의 순서를 명시해준다. 맨 처음 시작부분 기준으로 얼마만큼 떨어져 있는지 셋팅한다.

- Time To Live (TTL) : 패킷이 생존할 수 있는 시간을 지정한다.(받는 네트워크장비들이 오류로 인해 패킷이 쌓여 안좋은상황을 대비하는데(생존 시간을 지정함으로써 패킷이 쌓이는것을 방지)쓰인다.), 상대방 네트워크 장비의 운영체제를 알 수 있다.

- Protocol : 상위 프로토콜Type이 무엇인지 알려준다.

- Header Checksum : 앞에 있는 값들이 오류가 있는지 없는지 확인해주는 부분이다.

 

# ICMP 프로토콜

1. ICMP가 하는 일

- ICMP(Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜)

- 네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메시지를 전송 받는 데 주로 쓰인다.

- 프로토콜 구조의 Type과 Code를 통해 오류 메시지를 전송 받는다.

- 특정 대상과 내가 통신이 잘되는지 확인해준다.

ICMP프로토콜의 구조

2. ICMP의 구조

- Type(대분류) : 타입의 종류는 30번까지 많이 있는데 주로 쓰이는 5개가 있다.

  * 0. Echo Reply, 8. Echo : 통신에 기본적인 것, 0번이 응답 8번이 요청

  * 3. Destination Unreachable, 11. Time Exceded : 무엇인가 오류가 났을때, 3번은 목적지 까지 도착하지 못한것(경로상의 문제), 11번은 목적지까지 갔지만 응답이 없는경우(상대방의 문제, 크게 방화벽의 문제가 있다.)

  * 5. Redirect : 보안상, 남의 데이터를 수정할수 있는것인데 보안상 중요하다.

- Code : 소분류

- Checksum : 앞에 헤더들이 잘못된점이 있는지 확인한다.

 

# 라우팅 테이블

- 어디로 보내야 하는지 설정이 되어있다.

'네트워크' 카테고리의 다른 글

ARP프로토콜(3계층)  (0) 2022.06.10
네트워크의 3계층  (0) 2022.06.03
네트워크의 2계층  (0) 2022.06.02
네트워크 모델  (0) 2022.06.02
네트워크란 무엇인가?  (0) 2022.06.01