meta data for this page

Answers to questions (without the examples)

  1. What are the differences between SCTP one-to-one and one-to-many styles? Why there are 2 “different” styles?
    • Differences:
      • One-to-one is strict between connected devices as TCP connection.
      • One socket is peeled of from the listening socket (as with accept() in TCP) for each new connection using one-to-one.
      • The closing of the peeled sockets are done in different way as in one-to-many.
      • One-to-many provides full benefits of SCTP: multihoming, graceful shutdown, piggybacking of data in handshake messages, automatic initiation of handshake with first send and association events from SCTP kernel.
    • The purpose of the one-to-one style is to provide backwards compatibility for existing applications using TCP. However, with one-to-one style packet boundaries are preserved.
  2. Explain the difference between a connection (TCP) and an association (SCTP).
    • Connection is strict between address + port pairs
    • Connection is between two addresses of peers, with association multiple addresses on peers can be utilized
    • Different handshakes (3-way vs. 4-way)
    • TCP connection is stream oriented and SCTP is message oriented
    • Association makes it possible to use multiple streams
  3. Why SCTP can be regarded as more secure as TCP?
    • The handshakes are different; STCP has 4-way which uses cookies, whereas TCP has 3-way handshake → SYN flood attacks can be prevented
    • Cookies can be used for verification and authentication
    • On other hand, usually firewalls aren't configured to block SCTP!
  4. What benefits does the multihoming feature of SCTP give? Give at least 3 examples.
    • Interfaces (and addresses) can be added and removed dynamically
    • Multihoming provides that if one path is disconnected other available one can be used
    • Multihoming enables more effective roaming
    • The fastest/least congested route can be utilized for communication
    • Better error tolerance
  5. Explain Head-of-line blocking. Why it is a problem with TCP? How SCTP handles this or how this affects SCTP? Give an example application/application layer protocol that could benefit from SCTP where head-of-line blocking can occur.
    • A note: each stream is not stream of bytes - it is a sequence of messages
    • If the server sends e.g. four separate pieces of data independent of each other and fragments of first one are lost that will have to be retransmitted → whole process is delayed. The server will send the data with retransmissions, client has to hold all the data and errors with one data packet would delay the whole process.
    • TCP: one connection (solution: multiple connections)
    • SCTP: multiple streams, reserve certain amount of streams per association and send each piece of data using separate stream / block of streams