The Second Internet
PIM supports IPv4 multicast. It is called “protocol independent” because it does not include its own
network topology discovery mechanism. PIM does not include routing, but provides multicast
forwarding by using static IPv4 routes, or routing tables created by IPv4 routing protocols, such as RIP,
RIPv2, OSPF, IS-IS or BGP.
PIM Dense Mode is defined in RFC 3973, “Protocol Independent Multicast – Dense Mode (PIM-DM)”,
January 2005. This uses dense multicast routing, which builds shortest-path trees by flooding multicast
traffic domain wide, then pruning branches where no receivers are present. It does not scale well.
PIM Sparse Mode is defined in RFC 4601, “Protocol Independent Multicast – Sparse Mode (PIM-SM)”,
August 2006. PIM-SM builds unidirectional shared trees routed at a rendezvous point per group, and can
create shortest-path trees per source. It scales fairly well for wide-area use.
Bidirectional PIM is defined in RFC 5015, “Bidirectional Protocol Independent Multicast (BIDIR-PIM)”,
October 2007. It builds shared bi-directional trees. In never builds a shortest-path tree, so there may be
longer end-to-end delays, but it scales very well.
3.3.4 – ICMPv4: Internet Control Message Protocol for IPv4
ICMPv4 is a key protocol in the Internet Layer that complements version 4 of the Internet Protocol
(IPv4). It was originally defined in RFC 792, “Internet Control Message Protocol”, September 1981. There
are a number of ICMP messages defined. Some of these are generated by the network stack in response
to errors in datagram delivery. Some are used for diagnostic purposes (to check for network
connectivity). Others are used for flow control (source quench) or routing (redirect).
An ICMPv4 message consists of an IPv4 packet header, followed by 8 bytes that specify the details for
each ICMP message, followed by 32 or more bytes of data (depending on implementation).