微信客户端的端口(微信客户端的端口是什么)

太平洋在线 97 0

  「无线大牛」 无线精彩,无限可能

  问微信老司机:

  想了解发送一张普通图片背后的业务流程吗?

  想了解发送一张原图背后的业务流程吗?

  想了解接收图片、接收原图、接收消息、发送消息背后的流程机制吗?

  

  一起学起来吧!

微信客户端的端口(微信客户端的端口是什么)-第1张图片-太平洋在线下载

  微信业务特征介绍

  

  微信常用操作流程介绍

  1、启动微信,微信客户端向DNS服务器请求szlong.weixin.qq.com域名的IP地址,会反馈多个服务器IP地址,用途各异

  2、建立用于登录鉴权用的TCP长连接,命名为登录长连接,登录后,拆除该连接

  3、和新服务器建立TCP长连接,该连接存活时间很长,命名为消息长连接,用于后续的消息收发、图片缩略图的接收,服务器端口为8080或者80端口

  4、在消息长连接上进行消息(文本、语音)收发的动作,采用PUSH ACK报文交互

  5、在消息长连接上进行图片缩略图的接收,服务器端口为8080或者80端口

  6、在新服务器上建立一个TCP连接用于正式图片的下载,服务器端口为443端口

  

  收发文本/语音流程介绍

  1、一般来说,接收消息和发送消息均会有四条消息报文交互,消息个数多少应和消息内容的大小有关。文本字数内容越多,语音时间越长,则消息报文的个数可能也就越多。

  l发送消息时产生4条报文,前两条报文是发出的消息,后两条报文是服务器回复的报文

微信客户端的端口(微信客户端的端口是什么)-第2张图片-太平洋在线下载

  l接收消息时也产生4条报文,前两条报文是收到的消息,后两条报文是向服务器反馈是否接收成功

  l语音消息,则同样也是在消息长连接中收发PUSH ACK报文

  2、消息交互所使用的TCP连接是自微信启动之后就建立的TCP长连接

  l消息所在TCP层包含PUSH标识

  l服务器端口为8080或者80端口

发送文本消息截图

  

  接收文本消息截图

  

  语音接收流程和文本消息接收流程基本一致,同样是在消息长连接上进行接收,由于语音的报文要远大于文本,所以语音的最后一个报文是PUSH报文,也就是说,当语音接收完毕之后才提交到接收方的应用程序,然后接收方反馈一个PUSH ACK报文。

发送语音截图

  

接收语音截图

  

图片收发流程介绍

  1、接收图片时有2个阶段,第一个阶段是缩略图,第二个阶段是图片下载阶段

  2、图片正式下载的阶段又分2个小阶段,终端先提交密钥、手机OS版本、微信版本、fileid等信息,然后服务器反馈文件大小等内容,然后才开始正式加密接收图片

  3、第一个阶段(缩略图接收)是采用加密的方式接收,这个缩略图使用的是一直都存在的TCP流(消息长连接),而且一般来说,不会主动拆链,存活时间比较长,可能一直到与好友的会话结束为止。不过需要注意,从测试的情况来看,不同的微信版本处理方式不一样,在6.5.3版本下有时候只有用户点击的缩略图之后,才会下载图片,有些时候没有所谓的缩略图,但是从实际码流来看,会在不同的服务器上下载图片,显示在某个服务器上下载缩略图,然后会重新和另外一个服务器建立TCP流,先是进行密钥相关等信息的交互操作,然后正式开始加密接收图片(使用443端口)。

  4、发送原图时,会重新建立一个新的TCP流发送数据,接收原图时,先是缩略图,然后是普通图,最后是手动点击下载接收原图

  5、原图和非原图有个显著的字段区别,就是filetype,从测试情况来看,原图filetype=1,一般普通图片filetype=2

  6、缩略图使用的基础长连接的服务器端口为8080或者80端口,图片正式下载与发送时连接的服务器端口均为443端口的加密端口

接收到缩略图

  

下载图片开始阶段的明文交互报文

  

开始下载图片

  

发送原图的TCP流

  

发送的原图一些基本信息

  

看似简单的微信基础业务

却内蕴玄机

那么当下年轻人所青睐的在线手游

又会是什么样子的呢?

没看够吗?

敬请关注后续手游专题

  ------------------------------------------------------------------

  记得关注"无线大牛",通信人的网上部落,了解更多无线知识,无线精彩,规划无限可能。 还不赶紧关注起来!

  微信号:Wireless_Tribe(←长按复制)

  还不赶紧加入我们,成为无线大牛,一起分享无限精彩!

抱歉,评论功能暂时关闭!