EIGRP Reliable Transport Protocol (RTP)

RTP is an algorithm that ensures packets are delivered reliably. Hello and Ack are not sent reliably. Update, Query, Reply, SIA-Query, SIA-Reply are sent reliably.

The process of sending packets reliably uses sequence numbers.

Hello and Ack packets set their sequence numbers to zero and do not cause the global sequence numbers to increase.

When a reliable multicast is sent, each recipient must acknowledge the multicast before the sender can send another message. This causes a problem if one recipient does not reply. In this case the sender sends a unicast packet until the recipient acknowledges the packet.

To avoid the lagging recipient from affecting the other recipients the sender can multicast to the remaining group members, and unicast to the lagging recipient. However the lagging recipient is still a member of the multicast group and could potentially receive the multicast packets before it has caught up, causing packets to be received out of order.

To cope with this EIGRP has a “conditional receive” feature. This partitions neighbours into two groups; well behaved and lagging neighbours.

Multicasts are sent with TLVs that contain a list of the lagging neighbours. Neighbours not in the IP list will put themselves in a Conditional Receive mode (CR-mode) – where they process the packet as normal and then exit the conditional receive mode.

The time to wait for an ACK before declaring the neighbour as lagging is set in the “multicast flow timer”. The frequency of unicast packets set to the lagging neighbour is determined by the “retransmission timeout RTO”. Both the multicast flow timer and the RTO are calculated from the smooth round-trip time (SRRT).