热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

浅谈LTE--为什么EPC选择了sctp?

在epc中,e-node-b和mme之间的s1接口的传输层是使用的是sctp协议。这里就谈谈为什么选择sctp。我们先解释下为什么不用另外两个老朋友:UDP,TCP。1)不用udp的原因:

在epc中,e-node-b和mme之间的s1接口的传输层是使用的是sctp协议。这里就谈谈为什么选择sctp。我们先解释下为什么不用另外两个老朋友:UDP,TCP。

1)不用udp的原因:UDP没有任何质量保证的,会乱序和丢包。对于控制信令来说是不能接受的。丢了一个消息可能导致整个设备的状态错了,会带来无数意想不到的问题。为了保证消息的正确性。就必须在应用层增加保证机制,例如序列号,重传等等。这样增加了协议的复杂性,也增加了实现的复杂性。

2)不用TCP的原因:

    1)TCP传输的单位是数据流。它没有开头和结尾的标志。而信令是一个个有长度的消息。如果要用TCP传递消息,就必须添加消息的结束开始标志。这个无疑增加了实现的难度

    2)TCP的数据是保序的,如果前面的包丢了,后面的包即使收到了,也不能发给上层应用。必须等丢的包重传后,后面的包才能给上层应用。而服务器之间传递的一般是不同用户的消息。不同用户之间没有什么关联。不能够因为A用户的消息堵塞了,就影响b用户。解决的方案是为每个用户建立一个TCP的连接。可是这样就消耗比较多的资源。例如一个MME可能同时连接几十万个用户,几十万个TCP连接的开销是十分巨大的。


下面说下sctp的特点

1)以消息为单位。上层用起来跟方便
2)保序,不丢包,防止拥塞。这个也是tcp的优点。
3)可以在一个连接中建很多子流,彼此之间不影响。消耗的资源比较少。
4)多宿主。一个链路断了,可以走另外一路。这个是电信核心网的要求之一。
5)不容易被dos攻击。

当然sctp的问题也不少。
1)就是太复杂,tcp和udp很容易就学会。sctp中的概念实在太多,而这方面的资料也很少。不容易学。
2)支持太少。没有什么库。


推荐阅读
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • Python学习day3网络基础之网络协议篇
    一、互联网协议连接两台计算机之间的Internet实际上就是一系列统一的标准,这些标准称之为互联网协议,互联网的本质就是一系列网络协议。二、为什么要有互联网协议互联网协议就相当于计 ... [详细]
  • http:blog.csdn.netzeo112140articledetails7675195使用TCPdump工具,抓TCP数据包。将数据包上传到PC,通过Wireshark查 ... [详细]
  • Linux 防火墙与端口管理必备命令
    在使用 Linux 系统进行服务部署和问题排查时,防火墙和端口管理是不可或缺的操作。本文将详细介绍如何查看防火墙状态、端口占用情况,以及如何开放和关闭端口,帮助初学者更好地掌握这些技能。 ... [详细]
  • 本文将探讨UDP(User Datagram Protocol)协议的特点及其适用场景,与常见的TCP协议进行对比,帮助读者更好地理解和选择合适的传输协议。 ... [详细]
  • 本文详细介绍如何使用Netzob工具逆向未知通信协议,涵盖从基本安装到高级模糊测试的全过程。通过实例演示,帮助读者掌握Netzob的核心功能。 ... [详细]
  • 利用 Python Socket 实现 ICMP 协议下的网络通信
    在计算机网络课程的2.1实验中,学生需要通过Python Socket编程实现一种基于ICMP协议的网络通信功能。与操作系统自带的Ping命令类似,该实验要求学生开发一个简化的、非标准的ICMP通信程序,以加深对ICMP协议及其在网络通信中的应用的理解。通过这一实验,学生将掌握如何使用Python Socket库来构建和解析ICMP数据包,并实现基本的网络探测功能。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • TCP三次握手过程详解与图示解析
    本文详细解析了TCP三次握手的过程,并通过图示清晰展示了各个状态的变化。同时,文章还介绍了四次挥手的图解,解释了在TIME_WAIT状态中,客户端最后一次发送的ACK包的作用和重要性。 ... [详细]
  • 本文详细介绍了如何在CentOS 6.5系统上安装和配置Redis 3.0.6,包括必要的环境准备、软件包下载、编译安装及基本功能测试。 ... [详细]
  • Fiddler 安装与配置指南
    本文详细介绍了Fiddler的安装步骤及配置方法,旨在帮助用户顺利抓取用户Token。文章还涵盖了一些常见问题的解决方案,以确保安装过程顺利。 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
author-avatar
mobiledu2502936967
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有