9.17.1.2 The Diameter Transport Protocols
The Diameter agents support Transmission Control Protocol (TCP) and Stream Control Transmission Protocol (SCTP) as transport protocols over IPv4 and IPv6.
Even though there are similarities between these protocols, SCTP provides some capabilities that TCP is lacking, including multistreaming and multihoming.
TCP transmits data in a single stream and guarantees that data will be delivered in sequence. If there is data loss, or a sequencing error, delivery must be delayed until lost data is retransmitted or an out-of-sequence message is received. SCTP's multistreaming allows data to be delivered in multiple, independent streams, so that if there is data loss in one stream, delivery will not be affected for the other streams.
The multihoming feature adds more redundancy benefits of having multiple network interfaces.
When a network interface of a TCP connection fails, the connection will time out as it cannot redirect data using an alternate network interface that is available on the host. Instead, failover to another interface must be handled in the application layer.
Multihoming in SCTP allows multiple IP addresses in association. As a result, failover to an alternate interface can be handled in the transport layer. Typically, different IP addresses are bound to different networks thus providing additional resiliency in case of failure.
The number of transmissions, timeouts and any other parameters that determine when the failover should occur must be set in the SCTP software specific to your operating system.
TCP connection
SCTP connection
On a system with SCTP installed you can bind multiple IP addresses to a hostname by editing the hosts file. The location of this file is operating system specific but it can be found under /etc on most Linux and Unix distributions.
Example
127.0.0.1 localhost
192.168.1.111 server1
192.168.1.112 server1
When a Diameter Stack agent receives a connection request from a peer over SCTP, it is not certain that its hostname will be resolved to the IP address of a particular network interface. To ensure that a specific interface is used to setup the connection, you must specify the IP address of the interface in the Primary Host field in the Diameter Stack agent. This can be useful if the peer only uses a single static IP address to connect to the agent. Once the connection is established, failover to an alternate interface is possible.
For further information about the Diameter Stack agent, see 9.17.3 Diameter Stack Agent.