[ Team LiB ] Previous Section Next Section

Chapter 9

9.1

There are a number of situations where sctp_peeloff can play an important role. An example application that might use this function is a traditional UDP-like server that responds to requests such as small transactions, but occasionally is requested to do a long-term audit. In most cases, you only need to send one or two small messages and no more; but when a audit request arrives, a long-term conversation is invoked, sending audit information. In this situation, you would peel off the audit into its own thread or process to do the audit.

In summary, any application that has mainly small requests but on occasion needs to have a long-term conversation can take advantage of sctp_peeloff.

9.2

The server side closes automatically when the client closes the association. This is because SCTP does not support the half-closed state, so when the client calls close, the shutdown sequence will flush any pending data the server had queued for the client and complete the shutdown, closing the association.

9.3

In the one-to-one style, a connect call must be performed first, and so when the COOKIE is sent to the peer, no data is pending. For the one-to-many style, an application can send data to a peer to set up an association. This means that when the COOKIE is sent, the DATA is available to send to the peer.

9.4

The only time a peer that you would be setting up an association with would be able to send back data is if it had DATA pending BEFORE the connection was set up. This would occur if each side was using the one-to-many style and each side did a send to implicitly set up the association. This type of association setup is called an INIT collision, and details on it can be found in Chapter 4 of [Stewart and Xie 2001].

9.5

In some cases, not all addresses that are bound may be passed to a peer endpoint. In particular, when addresses that an application has bound contain both private and public IP addresses, only the public addresses may be shared with a peer endpoint. Another example is found in IPv6, where link-local addresses cannot necessarily be shared with a peer.


    [ Team LiB ] Previous Section Next Section