SCTP Discussions

Text archives Help


Re: [SCTP-Discussion] Multihoming


Chronological Thread 
  • From: Andreas Jungmaier <ajung AT exp-math.uni-essen.de>
  • To: John Townsend <gazelle1963 AT yahoo.co.uk>
  • Cc: discussion AT sctp.de
  • Subject: Re: [SCTP-Discussion] Multihoming
  • Date: Sun Aug 15 16:17:02 2004
  • List-id: SCTP Discussions <discussion.sctp.de>
  • Organization: University Duisburg-Essen

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

John,

please see my comments below inline...

Am Sonntag, 15. August 2004 11:39 schrieb John Townsend:
> I'm about to start using the multihoming features
> using the socketapi and need to understand the
> following points.
>
> 1. If I pull out the IP cable connected to my primary
> address, will the local SCTP detect the failure and

Definitely. The time for this depends on the current
rto value, the maximum rto value and the path error
limit (which is called "pathMaxRetransmits" if you
use sctplib), and maybe the amount of data you send.

For the socketapi, the information for these parameters
is passed in the following structs (I think):

struct sctp_rtoinfo
{
sctp_assoc_t srto_assoc_id;
uint32_t srto_initial;
uint32_t srto_max;
uint32_t srto_min;
};
struct sctp_paddrparams {
sctp_assoc_t spp_assoc_id;
struct sockaddr_storage spp_address;
uint32_t spp_hbinterval;
uint16_t spp_pathmaxrxt;
};
As default spp_pathmaxrxt==5, srto_max==60sec and
srto_initial = 3sec, and if your inactive path
is one that is only used for heartbeats (which are
sent every (30+current path RTO)sec), it may take
quite a while. If you lower the HB interval, and
reduce the spp_pathmaxrxt value, and the max RTO,
path failure recognition happens a lot faster.


> automatically pick a new address to be the primary
> (and send me a Notification - SCTP_ADDR_MADE_PRIM)?

I don't think so. Sctplib will definitely not do that.
I am not sure, if the socketapi library automatically
sets a new primary. I will check that...maybe Thomas
can comment on this ?

> Or will I receive a SCTP_SEND_FAILED, and it be up to my
> application to select a new primary?

You will likely get a SCTP_PEER_ADDR_CHANGE notifcation,
telling you that a path state has changed, and the path
is henceforth SCTP_ADDR_UNREACHABLE.

Then *usually* your application will be able to determine,
which new primary path to use IF it was the primary path
that failed.

For regular message sending, if the primary path fails,
the retransmission timer will expire for all messages
you sent (via the primary), and retransmit the messages
over the secondary path.
So: your application will be able to successfully transmit
data, albeit at a MUCH slower rate.

> 2. Is there an example c code application which uses
> multihoming and socketapi?

As Michael already posted, this happens automatically.
As a side note: things may not work as expected, if routing
and physical network topology are not suitable for multihoming.
I.e. when both addresses/interfaces of both of your endpoints
are in the same subnet, your routing will likely have a default
entry for one interface.
If that is the one you disconnected, then unless you also change
your routing entry, the host will not use the other interface
at all.
The solution: have all interfaces belonging to one path in
one distinct subnet.


> I'm hoping to be able to detect failure and change to
> another primary address without any loss of data, or
> having to put any queues in my application.

You won't have to.


Best regards,

Andreas


- --
Dipl.-Ing. Andreas Jungmaier
Computer Networking Technology Group
University of Duisburg-Essen
http://www.exp-math.uni-essen.de/~ajung
PGP Key-ID: D382 4AC0

PGP Key-Fingerprint: 228C 7C2C 3381 2DD4 9998 2812 5C0B 0B04 D382 4AC0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFBH26kXAsLBNOCSsARAh2oAKDPF2vH4MQXZv4pKxKDuDrfmQzqsgCgwSgU
7XZXNDv0+FPZR6kIj28BQWI=
=RSMS
-----END PGP SIGNATURE-----




Archive powered by MHonArc 2.6.19+.

Top of page