IOS开发_IM技术简析
1、基础概念;
2、IM简介;
3、IM通讯原理;
1、基础概念;
1.1 阻塞与非阻塞:阻塞模式下需要等待缓冲区全部存满,才会继续执行;非阻塞模式,收到一帧反馈就会执行。
1.2 心跳包:
① 心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。
② 概述:
a、客户端定时发送简单的信息给服务器端告诉它我还在,确保链接的有效性;
b、心跳包在GPRS通信和CDMA通信的应用方面使用非常广泛。数据网关会定时清理没有数据的路由,心跳包通常设定在30-40秒之间;
c、心跳包的概念适用于基于TCP协议的Socket链接,因为基于UDP协议的Socket链接是“无连接”的。
1.3 长连接:
① 长连接,指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。
② 长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是短连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。
1.4 短连接:
① 短连接是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。
② 优点:不需要长期占用通道,对于业务频率不高的场合,能节省通道的使用; 缺点:需要在每次发送业务时,都要建立一次连接,连接建立的过程开销大。 例如: 像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连好。
③ 特点:
- 需要的时候才建立连接;
- 每次只发送一项业务。
1.5 IPV4和IPV6:
① IPV4:网际协议版本4(英语:Internet Protocol version 4,IPv4),又称互联网通信协议第四版,是网际协议开发过程中的第四个修订版本,也是此协议第一个被广泛部署的版本。2019年11月26日,全球所有(2的32次方幂)43亿个IPv4地址已分配完毕,这意味着没有更多的IPv4地址可以分配给ISP和其他大型网络基础设施提供商。
② IPV6:IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址 。由于IPv4最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。有(2的128次方幂)约3.4×10^38个IP地址。
2、IM简介;
2.1 IM:实时通信或者及时通讯(Instant Messaging,简称IM)是一个实时通信系统,允许两人或多人使用网络实时的传递文字消息、文件、语音与视频交流。
3、IM通讯原理;
3.1 计算机之间的通讯;
引用自《图解HTTP》(PS : 其中有部分章节是从前人的文章中搬运过来整理而成,这些文章里已经对部分知识点解释的很清楚明了了,我也没有更好的表达方式,所以站在巨人的肩膀上,我只是一个整理者加了部分自己的理解。)