Cisco Unified Intelligent Contact Management Enterprise

MDS Heartbeat Messaging, Cisco ICM CallRouter-to-CallRouter Private Network

Document ID: 27920

Updated: Oct 12, 2005



This document explains what makes up a User Data Protocol (UDP) packet, as well as the function of the Cisco Intelligent Contact Management (ICM) Message Delivery Service (MDS) Heartbeat message.



Cisco recommends that you have knowledge of these topics:

  • How IP packets are transferred, with a focus on the UDP packet transfer method.

  • Cisco ICM and the Heartbeat mechanism associated with the MDS process.


Refer to Cisco Technical Tips Conventions for more information on document conventions.

User Data Protocol

UDP takes messages from the application process, attaches source and destination port number fields for the multiplexing or demultiplexing service, adds two additional fields, and passes the resulting segment to the network layer. The network layer encapsulates the segment into an IP datagram, and then makes an attempt to deliver the segment to the receiving host. If the segment arrives at the receiving host, UDP uses the port numbers, IP source, and the destination addresses to deliver the data in the segment to the correct application process.

Note: With UDP there are no handshakes between sending and receiving transport-layer entities before sending a segment. For this reason, UDP has no connections.

This is an example of a UDP packet, as well as the attributes of a UDP packet:


  • No connection establishment—UDP blasts away without formal preliminaries. Therefore, UDP does not introduce a delay to establish a connection.

  • No connection state—UDP does not maintain a connection state and does not track any of these parameters. For this reason, a server devoted to a particular application typically supports many more active clients when the application runs over UDP rather than Transmission Control Protocol (TCP).

  • Unregulated send rate—The speed at which UDP sends data is only constrained by the rate the application generates data, the capabilities of the source (such as CPU and clock rate), and the access bandwidth to the Internet. However, the receiving host does not necessarily receive all the data. When the network is congested, a significant portion of the UDP-transmitted data can be lost due to router buffer overflow. Therefore, the receive rate is limited by network congestion even if the sending rate is not constrained.

MDS Heartbeat and Packet Specifics

Breakdown of MDS Heartbeats

MDS Heartbeats are issued every 100 ms between Cisco ICM CallRouters on the private network. The makeup of the Heartbeat is as follows:

/* Heartbeat messages */
struct heartbeat {                      // Sent in both directions
    DWORD       seqno;                  // Sequence number of this Heartbeat

The MDS Heartbeat packet contains a destination address, source address, length, and the data that is the sequence number of that particular Heartbeat.

When the ICM CallRouter is cycled, the MDS Heartbeat sequence number starts at 0 (zero) and increments by one with each Heartbeat sent.

The MDS process on each ICM CallRouter sends one uni-directional Heartbeat packet every 100 ms. The MDS logs, with the proper trace bit set, notices a failed Heartbeat when the receiving side of the ICM CallRouter does not receive this packet within the designated timeout, normally set to 100 ms. The application takes corrective action only when it misses five consecutive Heartbeats. The CallRouter side that notices the five missed Heartbeats issues a TCP reset.

If the two ICM CallRouters are cycled at about the same time, the MDS sequence numbers sent in the MDS Heartbeats contain similar sequence numbers.

Related Information

Updated: Oct 12, 2005
Document ID: 27920