首页 > 其他分享 >Stream Control Transmission Protocol 流控制传输协议

Stream Control Transmission Protocol 流控制传输协议

时间:2023-11-24 15:37:17浏览次数:36  
标签:Control Protocol Stream bytes TCP chunks SCTP message

Stream Control Transmission Protocol - Wikipedia https://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol

https://zh.wikipedia.org/wiki/流控制传输协议

流控制传输协议(英语:Stream Control Transmission Protocol,缩写:SCTP)是在2000年由IETF的SIGTRAN工作组定义的传输层协议。RFC 4960详细定义了SCTP,介绍文件RFC 3286

作为传输层协议,SCTP可以理解为和TCPUDP相类似的。它提供的服务有点像TCP,又同时将UDP的一些优点相结合。是一种提供了可靠、高效、有序的数据传输协议。相比之下TCP是面向字节的,而SCTP是针对成帧的消息。

SCTP主要的贡献是对多重联外线路的支持,一个端点可由多个IP地址组成,使传输可在主机间或网卡间做到透明的网络容错备援。

SCTP最初设计用于IP上传输电话协议(SS7),把SS7信令网络的一些可靠特性引入IP。IETF这方面的工作称为信令传输SIGTRAN。

SCTP将资料传给应用层的方式,是将资料视为message(bytes的集合),SCTP的特征是message-oriented,意思就是说它发送的是一串message(每一个message是byte为单位的集合),相对于TCP是以byte为单位,发送的是破碎的流。在SCTP发送端用一个动作提交消息,接收端也是用一个动作取出消息传给对应的应用程序。相较于TCP,是一个流导向的协议,可靠地且有顺序地发送以bytes为单位的流。然而TCP并不允许接收端知道发送端的应用程序调用提交bytes集合的次数。在发送端TCP只是简单的附加更多bytes在queue里等待着送到网络上,而SCTP是将要提交的outband message都保有自己独立的queue。

 

The Stream Control Transmission Protocol (SCTP) is a computer networking communications protocol in the transport layer of the Internet protocol suite. Originally intended for Signaling System 7 (SS7) message transport in telecommunication, the protocol provides the message-oriented feature of the User Datagram Protocol (UDP), while ensuring reliable, in-sequence transport of messages with congestion control like the Transmission Control Protocol (TCP). Unlike UDP and TCP, the protocol supports multihoming and redundant paths to increase resilience and reliability.

SCTP is standardized by the Internet Engineering Task Force (IETF) in RFC 9260. The SCTP reference implementation was released as part of FreeBSD version 7, and has since been widely ported to other platforms.

Formal oversight[edit]

The IETF Signaling Transport (SIGTRAN) working group defined the protocol (number 132[1]) in October 2000,[2] and the IETF Transport Area (TSVWG) working group maintains it. RFC 9260 defines the protocol. RFC 3286 provides an introduction.

Message-based multi-streaming[edit]

SCTP applications submit data for transmission in messages (groups of bytes) to the SCTP transport layer. SCTP places messages and control information into separate chunks (data chunks and control chunks), each identified by a chunk header. The protocol can fragment a message into multiple data chunks, but each data chunk contains data from only one user message. SCTP bundles the chunks into SCTP packets. The SCTP packet, which is submitted to the Internet Protocol, consists of a packet header, SCTP control chunks (when necessary), followed by SCTP data chunks (when available).

SCTP may be characterized as message-oriented, meaning it transports a sequence of messages (each being a group of bytes), rather than transporting an unbroken stream of bytes as in TCP. As in UDP, in SCTP a sender sends a message in one operation, and that exact message is passed to the receiving application process in one operation. In contrast, TCP is a stream-oriented protocol, transporting streams of bytes reliably and in order. However TCP does not allow the receiver to know how many times the sender application called on the TCP transport passing it groups of bytes to be sent out. At the sender, TCP simply appends more bytes to a queue of bytes waiting to go out over the network, rather than having to keep a queue of individual separate outbound messages which must be preserved as such.

The term multi-streaming refers to the capability of SCTP to transmit several independent streams of chunks in parallel, for example transmitting web page images simultaneously with the web page text. In essence, it involves bundling several connections into a single SCTP association, operating on messages (or chunks) rather than bytes.

TCP preserves byte order in the stream by including a byte sequence number with each segment. SCTP, on the other hand, assigns a sequence number or a message-id[note 1] to each message sent in a stream. This allows independent ordering of messages in different streams. However, message ordering is optional in SCTP; a receiving application may choose to process messages in the order of receipt instead of in the order of sending.

 

 

 

翻译

搜索

复制

 

 

 

 

 

 

 

 

 

 

 

标签:Control,Protocol,Stream,bytes,TCP,chunks,SCTP,message
From: https://www.cnblogs.com/papering/p/17853827.html

相关文章

  • Java读取文件-BufferedReader/FileReader/InputStreamReader/FileInputStream的关系和
    本文根据文章:https://blog.csdn.net/wjp0000/article/details/117771752进行修改一、Java读取和存储文件数据流Java读取文件,实际是将文件中的字节流转换成字符流输出到屏幕的过程这里面涉及到两个类:InputStreamReader和OutputStreamWriterInputStreamReader:将字节流转换成字......
  • litestream sqlite流式复制工具
    litestream是基于golang开发的sqlite流式复制工具,可以方便的复制数据到s3或者一些共享存储中说明litestream使用简单,对于一些基于sqlite的db存储的应用备份,是一个很不错的选择(比如默认的grafana,proxysql)同时litestream对于s3兼容的存储支持也很不错(minio)值得试用下参考资料......
  • Java Stream中的API你都用过了吗?
    公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。在本教程中,您将通过大量示例来学习Java8StreamAPI。Java在Java8中提供了一个新的附加包,称为java.util.stream。该包由类、接口和枚举组成,允许对元素进行函数式操作。您可以通过在程序中......
  • bgp:边界网关协议 border gateway protocol
    基础:1.作用范围:作用在AS之间:EGP------>BGP:路由条目数量较多,相对不安全(单播,GTSM TTL=1\没有被动接口),使用TCP底层,路由更新方式,增量更新,只要是路由表里存在的network,import,着眼点传递路由控制路由,单进程,为大型网络设计,很多属性,可以跨设备建立邻居关系,默认不负载,BGP黑洞,BGP排错......
  • Spark Streaming快速入门
    SparkStreaming快速入门一、简介SparkStreaming是构建在SparkCore基础之上的流处理框架(但实际上是微批次处理框架),是Spark非常重要的组成部分。严格意义上来讲,SparkStreaming是一个准实时,微批次的流处理框架。特点:Easytouse:简单易用;Unifiedbatchandstreami......
  • jdk8 Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方
    jdk8Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方法......
  • Flutter/Dart第21天:Dart异步编程(Future/Stream)
    Dart官方文档:https://dart.dev/language/async重要说明:本博客基于Dart官网文档,但并不是简单的对官网进行翻译,在覆盖核心功能情况下,我会根据个人研发经验,加入自己的一些扩展问题和场景验证。Future处理我们有2种方式编写Future异步代码:使用async和wait关键字使用FutureAPI(ht......
  • Nginx+upstream针对后端服务器容错的配置说明
    Nginx+upstream针对后端服务器容错的配置说明  熟练掌握Nginx负载均衡的使用对运维人员来说是极其重要的!下面针对Nignx负载均衡upstream容错机制的使用做一梳理性说明:一、nginx的upstream容错1)nginx判断节点失效状态Nginx默认判断失败节点状态以connectrefuse和timeou......
  • Java的(dao、service、controller)解释
    Java的(dao、service、controller)解释pojo部门实体类 1、dao(mapper)层:数据访问层dao层属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查。负责与数据......
  • wcf restful 用stream接收表单数据并解析
    1.下载包HttpMultipartParser 2.服务端代码publicboolUpload(Streamstream){varparser=MultipartFormDataParser.Parse(stream);//解析streamvarfile=parser.Files.First();//获取文件stringfilename=file.Fi......