短连接和长连接的区分
1 消息流程
ICP与ISMG之间进行信息交互时,可以采用长连接方式,也可以采用短连接方式。所谓长连接,指在一个连接上可以连续发送多个数据包,然后断开连接,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。短连接是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。短信网关之间前转时要求每条消息都要有状态报告。当向用户发送信息发生错误时,网关应向ICP发送错误状态报告。
1.1 长连接
ICP与ISMG以Client—Server方式建立TCP连接,用于双方信息的相互提交。TCP/IP连接建立后,由Client发起建立应用层的连接,这时如果ICP或ISMG认为需要建立TLS连接,则在传输的数据包中置TLS字段,从而在双方建立TLS连接。
在应用层连接建立后的数据传输过程中,如果ICP或ISMG需要向对端发送加密信息,也可建立TLS连接,这时只需要置相应的消息体中Tls_available(是否使用TLS层)属性字段,且应的本条消息的消息体中的其他属性不发送。
消息采用并发方式发送,加以流量控制,窗口大小可调,暂定为16条消息,即接收方在应答前一次收到的消息最多不超过16条。
1.2 短连接
ISMG与ICP之间的通讯采用TCP/IP协议,双方互为client和server端。发送与接收单独进行,每项业务建立一个连接,通讯采用应答方式,应答与请求在同一个连接中完成。由于系统采用互为客户端/服务器模式,操作以客户端驱动方式发起连接请求,完成一次操作后关闭此连接。
传输过程中,如果ICP或ISMG认为需要建立TLS连接,则在传输的数据包中置TLS字段,并建立双方的TLS连接。
连接中对ICP的认证采用阶段性认证方式,当ICP首次与IMSG交换信息时,ICP首先发送身份认证包,ISMG对ICP进行身份认证后,记录ICP的IP地址等相关信息,在以后的数据交互时,ISMG把ICP的IP地址作为认证条件,即对没有注册的ICP的相关信息不予处理。当ICP想断开此逻辑上的应用层连接时,发送断开连接请求包,ISMG接受断开连接请求后,清除掉与此ICP相关的信息,即对MO到此ICP或ICP的MT信息均不予处理,但保存MO的信息,直到ICP再次与ISMG建立逻辑上的应用层连接,即身份认证。也允许ISMG发起断开ICP的连接请求。
ISMG之间通信采用短连接方式,首先发起连接者作为客户端,对方作为服务器建立连接。
消息采用并发方式发送,并加以流量控制,窗口大小可调,暂定为16条消息,即接收方在应答前一次收到的消息最多不超过16条。
短连接和长连接的区分相关推荐
- golang 短连接和长连接 超时处理
作为一个可能会和很多Client进行通讯交互的Server,首先要保证的就是整个Server运行状态的稳定性,因此在和Client建立连接通讯的时候,确保连接的及时断开非常重要,否则一旦和多个客户端建 ...
- java长连接转短连接_java原生程序redis连接(连接池/长连接和短连接)选择问题...
原标题:java原生程序redis连接(连接池/长连接和短连接)选择问题 最近遇到的连接问题我准备从重构的几个程序(redis和mysql)长连接和短连接,以及连接池和单连接等问题用几篇博客来总结下. ...
- java长连接心跳包_socket中的短连接与长连接,心跳包示例详解
TCP连接简介 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接, 当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接, 连接的建立是需要三 ...
- http协议之长连接与短连接服务器,长连接短连接
HTTP 协议与 TCP/IP 协议的关系 HTTP 协议是应用层的协议,而 TCP 协议是传输层的协议,IP 协议是网络层的协议. IP 协议主要解决网络路由以及寻址等问题,而 TCP 协议主要解决 ...
- 前端面试题必考(四)- HTTP短连接,长连接(keep-alive),websocket,postmessage
一.HTTP与TCP的关系 HTTP属于应用层协议,主要解决如何包装数据: 在传输层使用TCP协议,主要解决数据如何在网络中传输: 在网络层使用IP协议,主要解决网络路由和寻址问题: HTTP把TCP ...
- 网络--基础知识点--tcp的短连接和长连接、http的短连接和长连接
1. tcp的长连接和短连接 1.1 tcp长连接 在TCP层握手成功后,不立即断开连接,并在此连接的基础上进行多次消息(包括心跳)交互,直至连接的任意一方(客户端OR服务端)主动断开连接,此过程称为 ...
- 什么是短链接?长连接?
什么是短链接?长连接? 短链接 概念 client与server通过三次握手建立连接,client发送请求消息,server返回响应,一次连接就完成了. 这时候双方任意都可以发起close操作,不过一 ...
- java socket 心跳包_socket中的短连接与长连接,心跳包示例详解
TCP连接简介 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接, 当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接, 连接的建立是需要三 ...
- httpclient 设置短连接_HTTP长连接和短连接(转)
HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的 ...
- python 长连接_TCP长连接和短连接 Python代码
TCP在真正的读写操作之前,server与client之间必须建立一个连接, 当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接, 连接的建立通过三次握手,释放则需要四次握手, 所以说每个连 ...
最新文章
- YEX黄建:脱离比特币谈区块链,要么真傻,要么装疯卖傻丨区块链十人谈
- 插值法在计算机中的应用,常见的插值法及其应用.pdf
- winform代码:关联窗体数据更新,删除dataGridview中选中的一行或多行
- string 类型详解
- vi-vim常用命令
- 简述分布式一致性协议(2pc、3pc、paxos、zab)
- CRM campaign relationship read
- 2017网易内推编程题(判断单词):解答代码
- C语言中include““与include<>的区别(自定义头文件、预设头文件)
- python 脚本传参
- ICSharpCode.SharpZipLib 压缩、解压文件 附源码
- 句句真研—每日长难句打卡Day8
- 球球大作战c语言源代码,球球大作战,源码分享
- Mac OSX用终端检测文件的sha1值
- 使用 Google Analytics 的网址构建器来监控广告投放
- 路在脚下,却不知怎么去走?
- 数字通信之数字信号基带传输(九)
- SylixOS学习二—— SylixOS启程之旅_SylixOS 系统概览
- 【Machine Learning】模型融合之Stacking
- 解决google打开Github慢的问题,亲测有效