- 네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메시지를 전송받는 데 주로 쓰이며 인터넷 프로토콜의 주요 구성원 중 하나.
Messages
- data section: 받은 패킷의 IP헤더와 TCP 헫더의 앞 8byte
- ICMP는 항상 에러 메시지를 original source에 알려주고 패킷을 버림
A - b - c - d -x- e - F (A->F로 보내는 상황)
- Received datagram: d가 받은 datagram.
- IP header: A가 F에게 보낸다는 정보 有
- 8 bytes: TCP 헤더의 앞 8바이트(두줄) - source Port, dest Port, sequence num
- ICMP packet: 오류 메시지 전달할 패킷
- ICMP header: 헤더. 에러 종류
- IP header와 8bytes: 데이터
- Sent IP datagram
- IP header: D에서 A까지 보낸다는 정보
* A가 저 datagram을 받고 알 수 있는 것 ***
- 어디서 발생했는지 (첫번째 IP header)
- 무슨 에러가 생겼는지 (ICMP header)
- 내가 누구에게 보내려고 했던건지 (세번째 IP header)
- 몇번째 패킷인지 (seq num)
1) Destination-unreachable
- 도달 불가 오류
- 모든 문제를 detect할 순 없음.
- IP는 흐름제어나 혼잡제어가 없음
2) Source-quench
- 혼잡때문에 라우터가 패킷을 버릴 때
3) Time-exceeded
- code 0: 라우터가 패킷을 받을 때마다 TTL 값을 하나씩 빼다가 0이 되어 버릴 때
- code 1: fragment 재조합 못해서(set time 내에 모든 fragment가 다 오지 않아서) 패킷 버릴 때
4) Parameter-problem
- 헤더에 있는 값이 말도 안 되는 값으로 지정된 경우. 포인터로 IP헤더 어느 부분에 문제있는지 알려줌
5) Redirection
- 라우팅 테이블은 점진적으로 업데이트되는데, 아래처럼 돌아서 가는 길이라면 테이블 업데이트하도록 알림
- A, R1, R2가 같은 네트워크에 있는 경우에만 라우터가 호스트에게 보냄
6) Echo-request / reply
- request는 host 또는 router가 보낼 수 있다.
- reply는 request를 받은 host나 router가 보낸다.
- host의 reachability를 테스트할 때 쓸 수 있다. (ping)
7) Timestamp-request / reply
- RTT(round-trip time) 측정할 때 많이 쓰인다.
- 패킷을 받자마자 보내는 게 아니라 패킷 처리시간이 드는데, 그 시간을 볼(뺄) 수 있음.
- original timestamp 써서 보내면 받은쪽은 receive timestamp와
Transmit timestamp를 써서 보냄. 진짜 RTT = RTT(*)-(♡)
- 두 시계가 동기화됐다는 보장이 있어야 함
The traceroute program operation
- Host A에서 S:A, D:B, TTL=1로 보냄. 의도적으로 한 hop만 가도록. 그뒤엔 TTL=2, ...로 보냄
R1, R2, ... 는 (TTL이 0이 돼서) time exceeded를 A에 보내고 패킷을 버림.
이렇게 함으로써 라우터 경로 추적(라우터 이름, ip 주소, 각 ip주소까지 다녀온 시간 세번) 가능.
* 학교나 회사 네트워크 밖에다 traceroute www.naver.com 하면 네트워크 내의 정보는 잘 나오는데 다른 네트워크 정보는 ***..으로 나온다. 밖에서 온 ICMP를 방화벽이 차단하기 때문이다.
'네트워크 > 컴퓨터네트워크' 카테고리의 다른 글
Unicast Routing Protocols (0) | 2021.06.28 |
---|---|
Internet Protocol Version 4 (IPv4) (0) | 2021.06.28 |
Web and HTTP (0) | 2021.06.28 |
Delivery and Forwarding of IP Packets (0) | 2021.06.28 |
NAT (Network Address Translation) (0) | 2021.06.28 |
댓글