중간 라우터 사이에 길이 깨져서 전달을 못할 때,
C라우터에서 D라우터로 전송이 안되면 C라우터에서 에러 디텍을 함. 그럼 다시 원래 source인 A로 알려줌. 그래서 IP주소가 필요한것.
Destination unreachable이랑 Time exceeded는 그 안에서도 여러가지 문제들이 있음. 배워보자.
대충 이런 형태로 생겼음.
원래 받은 datagram에다가 ICMP header와 IP header를 붙이는 식으로 이루어짐.
결국 ip 주소 + icmp header + icmp payload가 됨.
외울 때
네호단이랑 프포로 외웠음. 뭐냐?
네호단 : router에 의해서만 에러 메시지가 발생함.
프포 : host에 의해서만 에러 메시지가 발생함.
IP에는 TCP와 다르게 flow-control, congestion-control이런게 없음.
그래서 혼잡이 발생했을 때는 이 에러메시지를 통해 소스측에 송신 속도를 줄여달라고 하는것임.
이것도 두가지 경우가 있음.
1. 프래그먼트들을 다 못받은 경우, 받은 프래그먼트 비우고 에러메시지 전송(code 1)
2. 라우터 도는 패킷의 TTL이 다 돼서 버린경우(code 0)
보낸 사람이 버전을 뭐 잘못 보낸 경우? 2나 7같은 버전으로?
A가 B한테 보내려고 하는 상황인데, 이 그림에서는 삥삥 돌아감.
A에서 그냥 R2로 바로 보내면 되는데! 같은 네트워크니까 가능 하겠지?
이걸 ICMP로 알 수 있다는거임.
A가 R1한테 보내면 R2도 같은 네트워크니까 다음부턴 바로 보내~ 라고 하는거임.