1 00:00:00,200 --> 00:00:02,660 Internet control message protocol. 2 00:00:03,020 --> 00:00:10,970 ICMP is an error reporting protocol that network devices like routers use to generate error messages 3 00:00:10,970 --> 00:00:16,460 to the source IP address when network problems prevent delivery of IP packets. 4 00:00:17,220 --> 00:00:21,000 ICMP messages are sent in several situations. 5 00:00:21,180 --> 00:00:25,290 For example, when a datagram cannot reach its destination. 6 00:00:25,410 --> 00:00:29,880 When the gateway does not have the buffering capacity to forward a datagram. 7 00:00:30,210 --> 00:00:35,490 And when the gateway can direct the host to send traffic on a shorter route. 8 00:00:36,520 --> 00:00:40,810 The Internet protocol is not designed to be absolutely reliable. 9 00:00:41,440 --> 00:00:42,190 I'll explain why. 10 00:00:42,220 --> 00:00:42,820 Hold on. 11 00:00:43,510 --> 00:00:50,200 The purpose of these control messages is to provide feedback about problems in the communication environment, 12 00:00:50,230 --> 00:00:52,510 not to make IP reliable. 13 00:00:53,470 --> 00:00:59,290 There's still no guarantees that a datagram will be delivered or a control message will be returned. 14 00:00:59,870 --> 00:01:04,610 Some datagrams may still be undelivered without any report of their loss. 15 00:01:05,540 --> 00:01:10,560 The higher level protocols that use IP must implement their own reliability. 16 00:01:10,580 --> 00:01:14,570 Procedures if reliable communication is required. 17 00:01:16,000 --> 00:01:21,130 So the ICMP header starts after the IPv4 header. 18 00:01:22,180 --> 00:01:28,210 All ICMP packets have an eight byte header and variable size data section. 19 00:01:29,050 --> 00:01:32,290 The first four bytes of the header have a fixed format. 20 00:01:32,910 --> 00:01:38,010 While the last four bytes depend on the type and code of that ICMP packet. 21 00:01:39,230 --> 00:01:44,420 ICMP type and code in the header identifies the control message. 22 00:01:45,040 --> 00:01:48,880 Some of the ICMP control messages are shown in this slide. 23 00:01:49,030 --> 00:01:53,620 So Ping is the most well known application of the ICMP. 24 00:01:54,560 --> 00:02:01,670 It operates by sending ICMP echo request packets to the target host and then waiting for an ICMP echo 25 00:02:01,670 --> 00:02:02,420 reply.