오늘 배운 단어 - ICMP
네트워크 장비 업체의 ICMP 칼럼을 읽다가, ping을 매일 치면서 정작 그 밑에서 뭐가 오가는지는 설명 못 한다는 걸 깨닫고 정리했다.
- ICMP (Internet Control Message Protocol): IP 통신 중 생긴 오류를 보고하고 네트워크 상태를 진단하는 3계층 프로토콜. ping과 traceroute가 이걸로 동작한다 (RFC 792)
- Best Effort: IP의 성격 - 최선을 다해 보내지만 도착 보장·순서 보장·사전 연결이 전부 없다. 그래서 오류를 알려줄 ICMP가 필요하다
- Echo Request / Echo Reply: “살아 있나요?”(Type 8) / “네, 잘 있어요”(Type 0). ping의 정체
- Type / Code: ICMP 메시지의 종류와 세부 사유 번호. 3=목적지 도달 불가, 11=TTL 만료, 5=경로 재안내
- TTL (Time To Live): 패킷이 거칠 수 있는 라우터 수. 초기값으로 OS를 추측할 수 있다 - 128 윈도우, 64 리눅스, 255 네트워크 장비
우편망의 반송 통지서 비유로 풀어낸 정리는 ICMP 노트에 심었다. traceroute가 TTL 만료를 역이용하는 트릭, Smurf 같은 ICMP 악용 공격까지 거기에.