meta data for this page
Answers to questions (without the examples)
- 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.
- 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
- 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!
- 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
- 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