ICMP
ICMP는 IP의 에러 리포팅, 간단한 쿼리를 도와주기 위한 프로토콜
ICMP 메시지는 IP 데이터그램으로 캡슐화
IP 위에서 동작 ⇒ TCP/UDP와 같은 레벨이지만, 전송계층은 아님
ICMP 역할
- Error 알림
패킷 전송이 실패했을 때 에러가 났음을 알림과 동시에, 해결 가능한 힌트 제공 - 진단/ 정보전달 메세지
ping, traceroute 명령 등등 진단과 정보전달을 하는데에 사용
ICMP 메세지 포멧
Type : ICMP 패킷의 종류
Code: Type을 자세히 분류
Checksum : 코드에 오류가 없는지 확인하는 용도
Rest of the Headers : Type에 따라 사용여부 결정. 미사용시 0
PayLoad : 직접적인 데이터 내용
Type | Message | 설명 |
0 | Echo reply | Echo 메세지의 답 (ping의 응답) |
3 | Destination unreachable | 도달 불가 에러(Code에 더 자세한 에러사유) |
4 | Source quench | congestion control의 용도 |
5 | Redirect | 더 빠른 경로가 있다고 알려줄 때 |
8 | Echo request | Echo 메세지의 요청 (ping의 요정) |
11 | Time exceeded | TTL이 초과된 경우 |
30 | Traceroute | 해당 라우터까지 가는 경로 체크용 |
ICMP 에러 타입 메세지
IP 패킷은 Best Effort ⇒ 자신의 할일만 하고 에러를 컨트롤 하지않음
ICMP 에러 타입 메시지도, Error의 정보는 전달해주지만, source의 문제가 아닌 이상 전송되지 않음
Type 3 : Destination Unreachable
Code 0 : Network 도달불가
Code 1 : Host 도달불가
Code 2 : Protocol 도달불가
Code 3 : Port 도달불가
Code 4 : fragment가 필요하나 DF 로 되어 있을 때
Type 4 : Source Quench
IP는 흐름제어가 없기 때문에 ICMP는 발신자에게 통보하여 송신억제
더 이상 사용 안함
- TCP congestion control 지원
- UDP congestion control X
Type 5 : Redirect
라우터가 지금 상황이 최적의 경로가 아닐때 최적의 경로를 전송
IP데이터 그램을 폐기하지 않고 전달
Type 11 : Time Exceeded
- TTL 이 0 이 된 경우
- Fragment중 하나가 손실돼서, 다시 조합을 할 수 없을 경우
ICMP 진단/정보 타입 메세지
Ping, Tracert/Traceroute는 에러 메세지가 아닌 진단,정보 메세지
Ping 은 Type 8인 ICMP 메세지로 요청하며, 특정 IP와의 통신이 가능한지를 Type 0 메세지를 통해 반환
Traceroute는 해당 IP까 거친 라우팅 경로를 반환
Reference
https://programming119.tistory.com/155
https://www.cloudflare.com/ko-kr/learning/ddos/glossary/internet-control-message-protocol-icmp/
https://itwiki.kr/w/ICMP
https://waristo.tistory.com/21
'네트워크' 카테고리의 다른 글
HTTP, HTTPS (0) | 2023.11.10 |
---|---|
대칭키, 비대칭키 암호화 (0) | 2023.11.10 |
SMTP, IMAP, POP3 (1) | 2023.10.28 |
FTP (1) | 2023.10.28 |
OSI 계층 별 장비 (1) | 2023.10.27 |