18.5. Stream Control Transmission Protocol (SCTP)The Stream Control Transmission Protocol (SCTP) provides a general-purpose transport protocol for message-oriented applications. It is a reliable transport protocol for transporting stream traffic, can operate on top of unreliable connectionless networks, and offers acknowledged and nonduplicated transmission data on connectionless networks (datagrams). SCTP has the following features.
In TCP, a stream is a sequence of bytes; in SCTP, a sequence of variable- sized messages. SCTP services are placed at the same layer as TCP or UDP services. Streaming data is first encapsulated into packets, and each packet carries several correlated chunks of streaming details. If an MPEG movie is displayed live over the Internet, a careful assignment of data per packet is required. An MPEG video consists of frames , each consisting of n x m blocks of pixels, with each pixel normally an 8 x 8 matrix. In this case, each block of pixels can be encapsulated into a chunk , where each row of the block is formatted as a packet. 18.5.1. SCTP Packet StructureFigure 18.14 shows the structure of streaming packets used in SCTP. An SCTP packet is also called a protocol data unit (PDU). As soon as the streaming data is ready to be transmitted over IP, an SCTP packet forms the payload of an IP packet. Each packet consists of a common header and chunks . The streaming data is distributed over packets, and each packet carries correlated "chunks" of streaming data. Multiple chunks representing multiple portions of streaming information are in fact multiplexed into one packet up to the path -maximum packet size . Figure 18.14. The structure of packets in the stream control transmission protocol (SCTP). Streaming data is encapsulated into packets and each packet carries several correlated chunks of streaming details.A chunk header starts with a chunk type field used to distinguish data chunks and any other types of control chunks. The type field is followed by a flag field and a chunk length field to indicate the chunk size. A chunk, and therefore a packet, may contain either control information or user data. The common header begins with the source port number followed by the destination port number . SCTP uses the same port concept as TCP or UDP does. A 32-bit verification tag field is exchanged between the end-point servers at startup to verify the two servers involved. Thus, two tag values are used in a connection. The common header consists of 12 bytes. SCTP packets are protected by a 32-bit checksum. The level of protection is more robust than the 16-bit checksum of TCP and UDP. Each packet has n chunks, and each chunk is of two types: payload data chunk for transmitting actual streaming data and control chunks for signaling and control. Signaling and control chunks are of several different types, as follows :
SCTP can easily and effectively be used to broadcast live video clips or full- color video movies. The SCTP exercises at the end of this chapter explore SCTP further. |