SCTP使用多个流发送单个文件,TCP使用单个流发送单个文件。现在的问题是
为什么SCTP比TCP好?
" (in traffic scenario)
SCTP在任何方面都不比TCP "好",但它做了一些不同的事情。
TCP在不可靠的无序数据包传输上模拟可靠的有序流,这在概念上与从文件中读取非常相似(没有查找的能力)。
SCTP模拟了一个可靠的顺序不同的消息传递系统(其中"消息"指的是已知长度的已定义数据块)。像UDP一样,它一次传递一个完整的消息。像TCP一样,它保证消息到达,并按照它们被发送的相对顺序到达。
SCTP能够在单独的流中发送不同的消息,这允许减少延迟,防止行首阻塞,并在某些情况下更好地利用可用带宽。带有样式信息和图片的网页就是典型的例子。
不通过多个流发送单个文件(这没有任何意义)。
(还有一些其他的功能,我没有命名,因为它们与问题无关)
SCTP可以被认为是UDP和TCP的混合,因为它像UDP一样基于消息,像TCP一样面向连接,以确保消息的顺序传递以及拥塞控制机制。也就是说,SCTP是面向连接的,但在消息级操作。
它涉及将多个连接捆绑到单个SCTP关联中,操作消息或块而不是字节。这种SCTP并行传输多个独立数据块流的能力被称为多流,它避免了线头阻塞。也就是说,在TCP的情况下,即使是3rd &第4个数据包可以,但如果第二个数据包丢失,TCP将重新传输,因此第3和第4个数据包必须等待,直到第二个数据包成功/正确接收。然而,在SCTP中,由于单个关联被分割成多个独立的块(消息)流,因此减少了这种行头阻塞。
另外,请注意SCTP也有助于以无序模式发送消息,这可以完全避免行首阻塞,其中上层应该具有在需要时重新排序消息的机制。