微信业务原理分析
更新时间:2023-03-18 08:37:01 阅读量: 经管营销 文档下载
微信业务原理分析
随着通信技术和移动互联网飞速发展,移动互联网应用也越来越丰富多彩,以微信为代表的IM类应用最为流行。微信作为一款手机聊天软件,通过网络快速发送图片、文字和视频等,支持多人群聊。微信存在多种不同的操作对应着不同的场景,通过捕获微信在移动网络中的用户行为特征,重点开展微信登陆、微信收发图片、文字、视频等重要操作场景的分析,分析微信的操作业务信令过程,指导并制定相应的业务评估指标 ,为运营商优化网络提供参考。
当前使用的IM系统大都组合使用了C/S和P2P模式。在登陆IM进行身份认证阶段是工作在C/S方式,随后如果客户端之间可以直接通信则使用P2P方式工作,否则以C/S方式通过IM服务器通信微信的通信原理如下图:
1、微信登陆
微信登陆用户常用的方式分为二种:一种为不需要输入密码的直接登陆,另外一种是用户输入用户名和密码。通过流程分析,两种登陆方式都有登陆动作特征。打开后台运行的微信,不属于微信登陆过程,因此该过程不计入微信登陆。微信登录使用了TCP 80端口或者TCP 443端口进行通讯。
1.1 微信登陆流程
打开 微信客户端,用户输入用户名和密码,点击登陆,完成登陆过程。IM服务器通过读取用户数据库来验证用户身份,如果验证通过则会进行后续的信息交互,包括获取用户列表、新信息、设备信息更新等。登陆过程基于TCP/IP协议,如下:
微信登陆成功,例如输入正确的密码:(后台运行的登陆再抓包测试)
TCP三次握手过程
微信登陆动作
微信登陆过程都是在一个TCP流里实现,首先客户端发送微信登陆动作标识消息给服务器端,接着客户端接收服务器端回送回登陆动作标识消息,从客户端来看,一次微信登陆过程会有登陆动作的一发一收的完整过程。微信登陆过程重点还需针对TCP流的登陆特征字进行动作分析,识别登陆过程,并判断登陆过程的成功或者失败。
微信登陆失败,例如输入错误的密码:
微信登陆动作
微信登陆失败过程也是在同一个TCP流里实现,失败登陆过程也会有登陆动作的一发一收的完整过程,表面上与成功过程的特征字是一样的,从动作上无法识别出成功或者失败。由于数据是加密的,失败原因无法解析出来,因此从TCP流的登陆消息的数据头中识别出成功和失败的特点。特征码识别详细见下节分析。
1.2 微信登陆动作特征码识别
通过多次抓包测试,包括登陆成功和登陆失败,对特征字的分析提炼,微信登陆特征字的识别只需带有数据段的报文进行分析。对微信登陆业务的流程报文每个字节的值进行统计分析,遍历32个字节,数据段可识别报文发送的方向、报文的长度、报文的动作、对方微信号、本机用户微信号、后续所有payload。总结出以下微信登陆的动作过程识别。
登陆请求识别码为:00 10 00 01 00 00 00 b2 00 00 00 02,如下
登陆确认识别码为:00 10 00 01 3b 9a ca b2 00 00 00 02,如下
登陆成功和失败的区别可以从服务器端回送给客户端的动作识别消息中提取到差异。当微信登陆成功时,服务器会回送给客户端其在服务器端的对应微信号,而当登陆失败时,服务器端则回送给客户端所对应的微信号为0。
1.3 微信登陆建立成功后数据交互
微信登陆建立成功后,客户端会向服务端发起多个HTTP业务请求,请求依据系统及版本的不同有所差异,如下例子,包括有getcontactlabellist、iphonereg、getpackagelist、reportstrategy、getboundharddevices、oplog、mmsnssync等,不同用户不同场景下登陆对HTTP业务请求会稍有不同。而微信登陆失败则不会有后续的客户端会向服务端发起多个HTTP业务请求。
例子中发起了12个HTTP请求,登陆后进行了12对HTTP的交互,以上过程都是在TCP短连接中完成,短连接HOST为szexshort.weixin.qq.com, szshort.weixin.qq.com。
微信的连接包括两类连接:有短连接和长连接,短连接运行在80端口,HTTP BODY是二进制数据,提供用户验证、好友添加、好友获取、用户图像、行为日志上报等,如上的登陆后的交互信息。长连接提供接受\\发送文本消息、接受\\发送语音、接受\\发送图片、接受\\发送视频文件等。
1.4 业务登陆成功率
业务登陆成功率%:用户输入账号、密码点击登陆或者直接点击登陆微信APP(不需登陆密码),登陆进入微信的响应成功比例
? 指标定义:微信业务登陆成功率是指,微信业务下客户端与服务
器成功建立TCP连接的条件下,IM服务器成功响应终端发起的微信业务登陆请求的比例。
? 指标算法:业务登陆成功率%=登陆响应次数/登陆请求次数*100% ? 信令标志:
?
登陆请求次数——微信业务,识别微信登陆动作的请求XDR次数。统计点如下图P1。
?
登陆响应次数——微信业务,识别微信登陆动作的响应,且能成功回送用户微信号的XDR次数。统计点如下图P2。
1.5 业务登陆时延
业务登陆时延:用户输入账号、密码点击登陆或者直接点击登陆微信APP(不需输入密码),用户登陆微信业务的时延 公式:
? 指标定义:微信业务登陆时延是指,微信业务下客户端与服务器
成功建立TCP连接的条件下,IM服务器成功响应终端发起的微信业务登陆请求的时延。
? 指标算法:业务登陆成功时延(ms)=∑(登陆完成时间-登陆请
求时间)/登陆响应次数 ? 信令标志:
?
登陆请求时间——微信业务,识别微信登陆动作的请求时间。统计点如下图P1。
?
登陆完成时间——微信业务,识别微信登陆动作的响应,且能成功回送用户微信号的时间。统计点如下图P2。
正在阅读:
微信业务原理分析03-18
2009年贵州省公务员考试《行测》试题(A、B、C类)05-22
通州区砖厂村地块土地一级开发项目招标文件03-17
促销活动方案(优秀4篇)03-26
父子关系证明怎么写02-14
长方体和正方体展开图的判断技巧课件04-25
2016年医疗器械现状及发展趋势分析09-22
部编版三年级语文下册第三单元达标测试B卷及答案.docx04-19
c语言期末复习题10-28
- 教育局拟征求中考升学奖励制度
- 2020房地产销售主管年终工作总结
- 虚拟多台位互感器检定装置投资项目可行性分析
- 车间工人辞职报告范本
- 溴投资项目可行性分析
- 改名字申请书怎么写
- 忧与爱作文素材
- 溴苯腈投资项目可行性分析
- 2020清华大学考研复试时间:3月6日至22日
- 2020年蚌埠高考查分系统网址
- 2020年二建《建筑工程实务》测试题及答案(13)
- 生死感悟——人间世观感一
- 武陵源区军地小学观看魏书生《如何当好班主任》讲座录像
- 全球10大安全旅游国出炉日本排名第9
- 企业策划书模板
- 高中英语教师工作总结3篇
- 法定代表人证明范本
- 大学助学金申请书范文1700字
- 案外人申请不予执行仲裁裁决司法解释施行首份申请书递交齐齐哈尔...
- 环球国际房地产开发项目策划
- 原理
- 业务
- 分析
- 四六级考研英语学习笔记
- 会计作业三
- 山东省济南市2015届高三上学期期末考试数学(理)试题Word版含答案
- 大学生职业生涯规划书 - - - - - - 孙涛
- 请完整准确理解温总理的讲话
- 红楼梦阅读讲义4(教师版16-20回)
- 基础工业工程课程设计 - 图文
- 2014新泰山版小学信息技术第二册上教案
- 鞍山师范学院外语系大学生英语节
- 计量经济学题目及答案
- 教师教学能手理论题(带答案)
- 专有名词和普通名词,名词单数变复数规则及练习
- 计算机网络 试题 - 2011级- A1 - 图文
- 咸宁职院人文旅游系校园绿地认领认养活动
- 城市轨道交通概论综合(含答案)- 004
- 高英课后英译汉答案
- 技术经济学
- 统计学课后答案 - 图文
- 大坝垮坝事故应急预案
- 高二五班评语