信息安全基础
上QQ阅读APP看书,第一时间看更新

3.2 即时通信软件的工作原理

即时通信软件是通过即时通信技术实现在线交流的软件。下面从即时通信软件的架构和工作过程分析即时通信软件的工作原理。

3.2.1 即时通信软件的架构

从架构上来看,目前主流的即时通信软件主要有两种架构形式:客户端/服务器(Client/Server,C/S)模式和浏览器/服务器(Browser/Server,B/S)模式。

C/S架构模式的用户在使用过程中需要提前下载并安装客户端软件,然后通过客户端软件进行即时通信。常见的C/S架构模式的即时通信软件的典型代表有:腾讯QQ、微信、阿里旺旺、百度HI、Skype、Gtalk、新浪UC、MSN、飞信等。

B/S架构模式的用户无须额外下载并安装客户端软件,直接使用浏览器为客户端,以互联网为媒介,即可通过服务器端进行沟通对话,一般运用在电子商务网站的服务商,典型的代表有Website Live、53KF、Live800等。

3.2.2 即时通信软件的工作过程

常见的即时通信软件有基于TCP/IP协议族中的TCP进行通信的,也有基于UDP进行通信的。TCP和UDP是建立在网络层的IP上的两种不同的通信传输协议。前者是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建立起的虚电路,进行连续的、双向的、严格保证数据正确性的传输控制协议。而后者是以数据报的形式,对拆分后的数据的先后到达顺序不做要求的用户数据报协议。TCP可靠但是耗时耗力,UDP虽不可靠但胜在轻量,两者各有千秋。在即时通信技术中,一般以UDP为主,TCP为辅。

假设有一个用户A要与他的好友用户B聊天,即时通信软件的工作过程如图3-1所示。

图3-1 即时通信软件的工作过程

1)用户A在计算机上打开即时通信客户端软件,输入用户名和密码后单击“登录”按钮,此时,客户端软件会把用户A所填写的用户名和密码通过网络传输给即时通信服务器。

2)即时通信服务器收到用户A的身份验证请求后,把请求中所携带的用户名和密码与服务器上数据库中的用户名和密码进行比对。如果一致,则身份验证通过;如果不一致,则验证失败。身份验证成功之后,服务器把用户A的在线状态更改为“在线”,并记录下用户A所使用的IP地址、软件版本号和端口号。

3)用户A的身份验证通过,则服务器返回“登录成功”信息给用户A。

4)与此同时,服务器读取用户A的好友列表,向其中在线的用户发送用户A的在线信息、IP地址、版本号和端口号等相关信息。

5)服务器将用户A的好友列表及其相关信息回送给用户A,在用户的客户端软件上显示出来。

6)根据服务器回送的相关好友信息,用户A选择用户B,与其建立点对点连接,进行在线通信。