<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>petanode (Posts about rfc4960)</title><link>https://petanode.com/</link><description></description><atom:link href="https://petanode.com/categories/rfc4960.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:tsv.dimitrov@gmail.com"&gt;Tsvetomir Dimitrov&lt;/a&gt; </copyright><lastBuildDate>Sat, 13 Jun 2026 21:57:11 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Multi-homing in SCTP</title><link>https://petanode.com/posts/multi-homing-in-sctp/</link><dc:creator>Tsvetomir Dimitrov</dc:creator><description>&lt;section id="what-is-multihoming"&gt;
&lt;h2&gt;What is multihoming&lt;/h2&gt;
&lt;p&gt;In the &lt;a class="reference external" href="https://petanode.com/categories/rfc4960"&gt;previous posts&lt;/a&gt; about the SCTP protocol, I promised a separate article about multi-homing. I think we have covered most of the basic topics and now it is time to review this killer feature. The behaviour of a multi-homed SCTP node is scattered around &lt;a class="reference external" href="https://tools.ietf.org/html/rfc4960"&gt;RFC 4960&lt;/a&gt; and in this post I will present the most important aspects.&lt;/p&gt;
&lt;p&gt;I think &lt;a class="reference external" href="https://tools.ietf.org/html/rfc4960#section-6.4"&gt;Section 6.4&lt;/a&gt; has got the best definition for multi-homing:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;An SCTP endpoint is considered multi-homed if there are more than one transport address that can be used as a destination address to reach that endpoint.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://petanode.com/posts/multi-homing-in-sctp/"&gt;Read more…&lt;/a&gt; (9 min remaining to read)&lt;/p&gt;&lt;/section&gt;</description><category>rfc4960</category><category>sctp</category><guid>https://petanode.com/posts/multi-homing-in-sctp/</guid><pubDate>Mon, 14 Mar 2016 19:35:33 GMT</pubDate></item><item><title>SCTP failure detection and association teardown</title><link>https://petanode.com/posts/sctp-association-teardown/</link><dc:creator>Tsvetomir Dimitrov</dc:creator><description>&lt;section id="overview"&gt;
&lt;h2&gt;Overview&lt;/h2&gt;
&lt;p&gt;In the &lt;a class="reference external" href="https://petanode.com/posts/sctp-data-transfer/"&gt;previous post&lt;/a&gt; we reviewed how the essence of the SCTP protocol works - the user data transfer. Now it's time to see some failure detection procedures and finally how an SCTP association is closed. Both topics will be discussed in this post. Error detection procedures are specified in &lt;a class="reference external" href="http://tools.ietf.org/html/rfc4960#section-8"&gt;Section 8&lt;/a&gt;, titled 'Fault management', but in this post I will mainly discuss heartbeating. The other failure detection mechanisms will be described in brief, so if you wish to know more about the specific mechanism - read the corresponding Section of the specification (hyperlinks are provided in each section). Association teardown is specified in &lt;a class="reference external" href="http://tools.ietf.org/html/rfc4960#section-9"&gt;Section 9&lt;/a&gt; - 'Termination of association'.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://petanode.com/posts/sctp-association-teardown/"&gt;Read more…&lt;/a&gt; (8 min remaining to read)&lt;/p&gt;&lt;/section&gt;</description><category>rfc4960</category><category>sctp</category><guid>https://petanode.com/posts/sctp-association-teardown/</guid><pubDate>Sat, 03 Jan 2015 12:10:33 GMT</pubDate></item><item><title>SCTP Data Transfer</title><link>https://petanode.com/posts/sctp-data-transfer/</link><dc:creator>Tsvetomir Dimitrov</dc:creator><description>&lt;section id="overview"&gt;
&lt;h2&gt;Overview&lt;/h2&gt;
&lt;p&gt;Up to now I have reviewed &lt;a class="reference external" href="https://petanode.com/posts/sctp-overview-and-message-encoding/"&gt;message encoding&lt;/a&gt; and &lt;a class="reference external" href="https://petanode.com/posts/sctp-association-initialisation/"&gt;association initialisation&lt;/a&gt;. Now it's time to see how SCTP does some real work - user data transfer. It is implemented via DATA and SACK chunks. Two peers can exchange user data only when the association is established, which means it should be in ESTABLISHED, SHUTDOWN-PENDING or SHUTDOWN_SENT state. SCTP receiver must be able to receive at least 1500 bytes in a single packet, which means its initial a_rwnd value (in the INIT or INIT ACK chunk) must not be set to a lower value. Similar to TCP, SCTP supports fragmentation of user data, when it exceed the MTU of the link. The receiver of the segmented data will reassemble all chunks, before passing it to the user. On the other side, more than one DATA chunk can be bundled in a single message. Data fragmentation will be discussed in more details later.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://petanode.com/posts/sctp-data-transfer/"&gt;Read more…&lt;/a&gt; (9 min remaining to read)&lt;/p&gt;&lt;/section&gt;</description><category>rfc4960</category><category>sctp</category><guid>https://petanode.com/posts/sctp-data-transfer/</guid><pubDate>Mon, 01 Dec 2014 20:21:55 GMT</pubDate></item><item><title>SCTP - association initialisation</title><link>https://petanode.com/posts/sctp-association-initialisation/</link><dc:creator>Tsvetomir Dimitrov</dc:creator><description>&lt;section id="introduction"&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In &lt;a class="reference external" href="https://petanode.com/posts/sctp-overview-and-message-encoding/"&gt;my previous post&lt;/a&gt; we've explored how SCTP packets are encoded and what protocol elements they contain. Next we will look at three SCTP procedures - association creation, user data transfer and association tear down. Each procedure requires specific message flow, which will be reviewed in separate posts.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://tools.ietf.org/html/rfc4960#section-4"&gt;Section 4&lt;/a&gt; from &lt;a class="reference external" href="http://tools.ietf.org/html/rfc4960"&gt;RFC 4960&lt;/a&gt; has a state diagram for a SCTP association. There are two main states - CLOSED and ESTABLISHED. The transfer between them contains more intermediate states (COOKIE-WAIT, COOKIE-ECHOED, etc). Two endpoints can exchange user data only when the association is in ESTABLISHED state. This is accomplished with association initialisation procedure. Once it is completed successfully the peers can exchange data by following user data transfer procedure. Finally the connection is closed with termination of association procedure. Now we will review association creation procedure.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://petanode.com/posts/sctp-association-initialisation/"&gt;Read more…&lt;/a&gt; (7 min remaining to read)&lt;/p&gt;&lt;/section&gt;</description><category>rfc4960</category><category>sctp</category><guid>https://petanode.com/posts/sctp-association-initialisation/</guid><pubDate>Tue, 07 Oct 2014 19:32:05 GMT</pubDate></item><item><title>SCTP: overview and message encoding</title><link>https://petanode.com/posts/sctp-overview-and-message-encoding/</link><dc:creator>Tsvetomir Dimitrov</dc:creator><description>&lt;section id="sctp-introduction"&gt;
&lt;h2&gt;SCTP Introduction&lt;/h2&gt;
&lt;p&gt;﻿SCTP is transport layer protocol with functions similar to TCP and some unique additions. Although it is not very popular in the Internet world, this protocol plays important role in telecommunication networks. It is used as a transport for various &lt;a class="reference external" href="http://en.wikipedia.org/wiki/SIGTRAN"&gt;SIGTRAN&lt;/a&gt; protocols and it is the default transport protocol in &lt;a class="reference external" href="http://en.wikipedia.org/wiki/System_Architecture_Evolution"&gt;EPC&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There is a &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol"&gt;Wikipedia article&lt;/a&gt; which provides a basic overview of SCTP's features. Another good document is &lt;a class="reference external" href="https://www.bsdcan.org/2008/schedule/attachments/44_bsdcan_sctp.pdf"&gt;SCTP: What is it, and how to use it?&lt;/a&gt; by Randal Stewart, Michael Tuxen and Peter Lei. In this article I want to provide SCTP overview from network developer point of view, which (in my opinion) means to dig into some specifications. What you will find here is a quick walkthrough the parts that I find most interesting, with references to the corresponding sections in &lt;a class="reference external" href="http://tools.ietf.org/html/rfc4960"&gt;RFC 4960&lt;/a&gt;, the SCTP specification.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://petanode.com/posts/sctp-overview-and-message-encoding/"&gt;Read more…&lt;/a&gt; (7 min remaining to read)&lt;/p&gt;&lt;/section&gt;</description><category>rfc4960</category><category>sctp</category><guid>https://petanode.com/posts/sctp-overview-and-message-encoding/</guid><pubDate>Sun, 07 Sep 2014 15:42:15 GMT</pubDate></item></channel></rss>