SCTP和TCP/UDP相比,有什么不同

在SCTP(Stream Control Transmission Protocol,流控制传输协议)制定以前,在IP网上传输七号信令使用的是UDP、TCP协议。UDP是一种无连接的传输协议,无法满足七号信令对传输质量的要求。TCP协议是一种有连接的传输协议,可以信令的可靠传输,但是TCP协议具有行头阻塞、实时性差、支持多归属比较困难、易受拒绝服务攻击(Dos)的缺陷。因此IETF(Internet Engineering Task Force) RFC2960制定了面向连接的基于分组的可靠传输协议SCTP协议。SCTP对TCP的缺陷进行了完善,使得信令传输具有更高的可靠性,SCTP的设计包括适当的拥塞控制、防止泛滥和伪装攻击、更优的实时性能和多归属性支持,因此,SCTP成为SIGTRAN协议族中的传输协议。


SCTP被视为一个传输层协议,它的上层为SCTP用户应用,下层作为分组网络。在SIGTRAN协议的应用中,SCTP上层用户是SCN信令的适配模块(如M2UA、M3UA),下层是IP网。

 

 

 

 

我也来掺和两句:
就可靠程度:
UDP:不可靠(因为没有确认机制)
TCP:可靠(有三次握手确认机制)
SCTP:非常可靠(四次确认机制)
就安全性:
UDP:不安全(没有什么保护措施)
TCP:一般安全
SCTP:很安全(特意针对TCP的安全缺陷和不足作了改进)
但是就方便‘而言:
UDP:很方便,因为步骤少,没有什么要等的;
TCP:一般方便:三次握手确认,安全保护等;
SCTP:很不方便,处理步骤流程复杂,因此,一般用于系统内部模块或者网元之间通讯。

 

 

 

 

 

接楼上的说几句。总的说来sctp和tcp都是面向连接的。但sctp由于支持multi-stream,使得即使单个stream出现阻塞,其它stream仍能工作。另外由于sctp的multi-homing,使得单个association能使用本地和远端的多个地址,这样即使某个地址block,数据仍能通过其它路由到达目的地。正常情况下只有主路由在工作。
sctp还是面向消息的协议(INIT、INITACK,etc。。。)这点和UDP、TCP(面向字节流)都不一样,个人感觉更好处理。另外sctp可以基于raw IP(大多情况)但也有基于UDP的。我曾经做过基于UDP的sctp实现,但只用于产品内部接口。
sctp通信双方可以是平等的,不区分client/server。但从实现出发,也可以采用client/server模型。简单的例子是当SIGTRAN架构中M3UA采用sctp时,如果是SGP/ASP mode,通常情况由ASP作为client段,即发出INIT,建立association后再发后续ASPSM消息。
SCTP的安全性体现再INITmessage接收端,发出包含cookie的INIT ACK后不会保留TCB(即系统的资源)以给远端攻击的机会。
还有sctp是可以把多个data chunk捆绑在一个data消息里传输的。sctp的data确认支持有gap的sack。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值