SCTP协议是什么,它怎么解决传统网络传输的痛点?

提到网络传输层,大多数懂技术的朋友可能会想到TCP和UDP两个主要协议,但它们要么可靠但笨重,要么灵活但不可靠,都多少有缺点

但很少有人知道SCTP才是隐藏的全能选手,我们来介绍一下它的概念和核心功能

看视频总是断网重连怎么办

SCTP是什么,为什么我们需要它?

它是传输层的可靠多面手

全称为Stream Control Transmission Protocol,中文翻译是流控制传输协议。设计它的目标其实很明确

就算为了解决传统协议可靠和可用场景下的短板,先来说说这它俩的缺点

 

TCP缺点

虽然能保证数据不丢、轻量化和有序,但单流传输会导致头堵塞,一个数据包丢了,后续的所有包都得等

且依赖单链路,一旦断网就得重来了

无法满足一些高需求场景的零中断要求

 

比如你WiFi断了又再次重连,可能你看的视频和直播就得重新缓冲一下

刚看到精彩片段就卡住转圈了,想想都血压飙升

 

UDP缺点

虽然灵活且延迟低,但是没有排序且不支持重传,数据丢了就没办法找回,只能靠应用层自己找补,可靠性不高

就好像你打音视频电话的时候,如果信号不好就会断断续续,有时候还会丢字,比如对方明明说话了但都被卡过去了

这是因为它才不管你数据丢没丢,直接一通都给你发过来就完事了

 

SCTP刚好补上了二者的缺点

它既有TCP那般可靠的内核,解决了其单流和单链路的痛点。也有UDP的灵活性,能兼容低延迟等场景

成为了南拳北腿都融会贯通的武术大师

 

它的核心优势是什么

解决断网重连的麻烦

还是刚才的案例,手机断网重连的时候会导致视频和其他类型的工作重新加载一遍吧

但SCTP能让手机同时抓着两条线,就是WiFi和4G

 

一旦家里网断了或者你走到了信号覆盖之外的地方,它可以直接把数据转到4G上,不会影响你看的东西或下载上传的文件

音视频通话也不会断断续续甚至卡字

现在运营商的VoLte通话很多都用了这个技术,就是为了让你不会因为网络的问题断线

还包括了一切会被这些因素影响的工作和娱乐

 

SCTP怎么工作?

四次握手

客户端先发送INIT报文,意思是告诉服务器要进行连接,并把自己的IP和需要的流报给人家,再补上一个初始化标签

服务器再回应客户端,意思是我同意你的连接,并告知IP和自己能提供多少个流

然后双方再互相确认一遍就可以正式建立关系,开始正式互传数据和通信了

 

这里用寄快递模拟一下它的工作流程

比如说你要寄快递,要先和快递点说明收货地址吧,这个地址就是WIFI和4G的IP。之所以提供两个是为了以防走空,万一其中一个地方没人,可以迅速转到另一个

上述的”流“值得就是你一个快递要分几批送出,比如一批视频、一批音频和一批字幕。各送各的,避免混在一起

然后还得提供一下自己的身份证明,也就是初始化标签,证明是自己本人

 

然后快递点接收到你的完整需求和信息之后,是不是也得回应你?

所以说就会给你回电话,我同意你的请求,我们快递点也有两个送货路线(对应服务器的IP)万一一条路堵了,也能走另一条

你的东西分三次送,我们也可以答应,然后会给你初始他们的身份信息,也会给你一个确认码,等下得靠这个才能确认是本人

© 版权声明
THE END
喜欢就支持一下吧
点赞1 分享