文档章节

MTK平台 数据问题分析

HouWeiGui
 HouWeiGui
发布于 2017/02/09 17:20
字数 1042
阅读 66
收藏 0
点赞 0
评论 0

一、Framework层的相关类

ConnectivityService

Dctracker

二、RILD的相关AT命令

AT+CGACT

三、modem侧的相关实现

Log实例:

一、确认数据连接的状态

  Line 3611: 05-09 10:34:15.554347 916 916 D ConnectivityService: getActiveNetworkInfo networkInfo = [type: MOBILE[EDGE], state: CONNECTED/CONNECTED, reason: connected, extra: cmnet, failover: false, available: true, roaming: false, metered: true]
    Line 3612: 05-09 10:34:15.554360 916 966 D ConnectivityService: getActiveNetworkInfo networkInfo = [type: MOBILE[EDGE], state: CONNECTED/CONNECTED, reason: connected, extra: cmnet, failover: false, available: true, roaming: false, metered: true]
    Line 3617: 05-09 10:34:15.554641 916 2080 D ConnectivityService: getActiveNetworkInfo networkInfo = [type: MOBILE[EDGE], state: CONNECTED/CONNECTED, reason: connected, extra: cmnet, failover: false, available: true, roaming: false, metered: true]
    Line 3618: 05-09 10:34:15.554695 916 1153 D ConnectivityService: getActiveNetworkInfo networkInfo = [type: MOBILE[EDGE], state: CONNECTED/CONNECTED, reason: connected, extra: cmnet, failover: false, available: true, roaming: false, metered: true]
    Line 3624: 05-09 10:34:15.557682 916 2080 D ConnectivityService: getActiveNetworkInfo networkInfo = [type: MOBILE[EDGE], state: CONNECTED/CONNECTED, reason: connected, extra: cmnet, failover: false, available: true, roaming: false, metered: true]
    Line 3636: 05-09 10:34:15.561940 916 1640 D ConnectivityService: getActiveNetworkInfo networkInfo = [type: MOBILE[EDGE], state: CONNECTED/CONNECTED, reason: connected, extra: cmnet, failover: false, available: true, roaming: false, metered: true]

二、发包无返回会触发Android重连机制

这个机制的实现在/vendor/mediatek/proprietary/frameworks/opt/tedongle/src/java/com/android/internal/tedongle/dataconnection/DcTrackerBase.java

方法名字里会带recovery,

从log分析是因为trigger了recovery机制,一般为网络异常导致的.Recovery是android原生的feature,并非MTK feature,当前现象为正常的网络异常处理现象,

以下为详细log:
//进入第一个状态:GET_DATA_CALL_LIST, 原因是:在这1分钟内发送出去的数据包没有返回超过或达到10个包,这里是10个
//所以进入recovery机制,并发送EVENT_DO_RECOVERY. key log: doRecovery() get data call list
05-05 16:13:57.379044 1625 1625 D DCT : [0]updateDataStallInfo: OUT sent=10 mSentSinceLastRecv=10
05-05 16:13:57.392584 1625 1625 D DCT : [0]doRecovery() get data call list

//一分钟后并进入第二个状态:CLEANUP : reactivate pdp context(reason=PDP_RESET)此时会看到数据连接有短暂的断开,
//原因是:在这1分钟内发送出去的数据包没有返回超过或达到10个包,这里是31个
05-05 16:14:57.393972 1625 1625 D DCT : [0]updateDataStallInfo: OUT sent=31 mSentSinceLastRecv=31
05-05 16:14:57.417809 1625 1625 D DCT : [0]doRecovery() cleanup all connections
05-05 16:14:57.421114 1625 1625 D DCT : [0]cleanUpAllConnections: tearDown=true reason=pdpReset

三、dup ack

netlog可以看到16:09有出现重传,其时间达到300ms+,但为什么出现重传需要检查底层链接收发包是否正常。

11792    2017-07-05 16:09:05.405084    10.62.249.122    120.204.9.103    TCP    124    [TCP Retransmission] 59358→31196 [PSH, ACK] Seq=22025 Ack=52025 Win=3198 Len=56 TSval=1133316 TSecr=304277205
11812    2017-07-05 16:09:05.637603    120.204.9.103    10.62.249.122    TCP    124    31196→59358 [PSH, ACK] Seq=52025 Ack=22081 Win=65535 Len=56 TSval=304277521 TSecr=1133235
11816    2017-07-05 16:09:05.637741    10.62.249.122    120.204.9.103    TCP    68    59358→31196 [ACK] Seq=22081 Ack=52081 Win=3198 Len=0 TSval=1133374 TSecr=304277521
11822    2017-07-05 16:09:05.974715    120.204.9.103    10.62.249.122    TCP    124    [TCP Retransmission] 31196→59358 [PSH, ACK] Seq=52025 Ack=22081 Win=65535 Len=56 TSval=304277542 TSecr=1133235
11826    2017-07-05 16:09:05.974886    10.62.249.122    120.204.9.103    TCP    80    [TCP Dup ACK 11816#1] 59358→31196 [ACK] Seq=22081 Ack=52081 Win=3198 Len=0 TSval=1133458 TSecr=304277542 SLE=52025 SRE=52081
11831    2017-07-05 16:09:05.975844    120.204.9.103    10.62.249.122    TCP    80    [TCP Dup ACK 11812#1] 31196→59358 [ACK] Seq=52081 Ack=22081 Win=65535 Len=0 TSval=304277558 TSecr=1133235 SLE=22025 SRE=22081

四、dns返回慢

此问题从log来看,应该是dns server的问题,在16:57其dns query都要一分多钟才回,直到17:00:42才恢复正常
但是其它tcp连接没有问题,很快就会回包,所以手机没有问题,因为手机不会区分其tcp和dns query包的发送,主要原因在于dns server端。
请知悉,感谢!
//这里一分多才回response
86162    2017-07-07 16:57:45.716113    10.59.48.13    221.179.38.7    DNS    80    Standard query 0xa57c A apilocate.amap.com\
88023    2017-07-07 16:57:55.721451    10.59.48.13    221.179.38.7    DNS    80    Standard query 0xa57c A apilocate.amap.com
296843    2017-07-07 16:58:57.842842    221.179.38.7    10.59.48.13    DNS    244    Standard query response 0xa57c CNAME apilocate.amap.com.gds.alibabadns.com A 106.11.13.1
296844    2017-07-07 16:58:57.843125    10.59.48.13    221.179.38.7    ICMP    272    Destination unreachable (Port unreachable)
296910    2017-07-07 16:58:57.993855    221.179.38.7    10.59.48.13    DNS    244    Standard query response 0xa57c CNAME apilocate.amap.com.gds.alibabadns.com A 106.11.13.1
//17:00开始很快恢复正常
390717    2017-07-07 17:00:42.756815    10.59.48.13    120.196.165.7    DNS    79    Standard query 0x7b8a A s.click.tmall.com
390738    2017-07-07 17:00:42.830768    120.196.165.7    10.59.48.13    DNS    300    Standard query response 0x7b8a CNAME adsh.wagbridge.tmall.alimama.com CNAME adsh.wagbridge.tmall.alimama.com.gds.alibabadns.com A 140.205.140.52

1.main log中查看其getaddrinfo对应log的pid号
2.event log中确认其对应pid的packagename,从而确定其是哪个APP在发起dns query

© 著作权归作者所有

共有 人打赏支持
HouWeiGui
粉丝 3
博文 42
码字总数 52381
作品 0
深圳
程序员
Nucleus OS

Nucleus 是一个操作系统的核心,与 Linux 和 Windows 不同,很容易理解和执行。它将拥有本地支持,小型架构和支持全VGA(没有文本模式)。多数山寨手机采用此操作系统。基于 Nucleus OS 的开...

匿名 ⋅ 2009/12/16 ⋅ 0

MTK平台用Socket实现HTTP请求总结

转自新浪博客:http://blog.sina.com.cn/s/blog_4cd5d2bb0100fe7y.html 公司做了一个小型的wap浏览器的项目,其中涉及到用socket的实现http请求的方法,由于网上相关资料比较少,尤其是详细的...

blogercn ⋅ 2009/11/25 ⋅ 0

MTK平台用Socket实现HTTP请求总结

转自新浪博客:http://blog.sina.com.cn/s/blog_4cd5d2bb0100fe7y.html 公司做了一个小型的wap浏览器的项目,其中涉及到用socket的实现http请求的方法,由于网上相关资料比较少,尤其是详细的...

blogercn ⋅ 2009/11/25 ⋅ 0

大家一起来分析google语音搜索API,Speex编码问题

你好。看了你的一篇 大家一起来分析google语音搜索API,Speex编码问题 我最近也在研究这个接口。很头痛的FLAC文件。因为我想在MTK平台实现语音识别功能找到这个接口。FLAC音频文件的太大。一句...

杨雄伟 ⋅ 2011/12/31 ⋅ 2

报告称一季度 Android 用户量同比增9倍

百度今日发布的《移动互联网发展趋势报告》显示,2012年第一季度低端非智能手机市场份额下降,智能平台市场份额快速上涨,其中,Android平台的增长趋势迅猛,同比增长900%。报告显示,Andro...

oschina ⋅ 2012/05/25 ⋅ 3

腾讯百度携手联发科秘密开发手机中间件

7月21日消息,根据网易科技的报道,百度只是刚刚组建团队做手 机操作系统,目前还在招人的阶段。但中国互联网的市值第一的腾讯已经组建了一个数百人的团队,秘密开发基于MTK平台的手机中间件...

老枪 ⋅ 2010/07/21 ⋅ 4

MTK平台手机刷机工具分享

这是一款专门为MTK平台量身打造的刷机工具——下载助手V2.2.4(MiniADMTK)。 软件主界面如下图所示: 简单介绍一下这个软件: 下载助手V2.2.4(MiniADMTK)从属于下载助手V2.2.4系列烧录工具,该...

MK_ROM ⋅ 2015/10/13 ⋅ 0

联发科推应用商店 克隆iPhone模式

就在苹果iPhone进入中国之际,一场克隆iPhone商业模式的运动正悄然在国产手机阵营蔓延。 “目前酷乐音乐播放器的用户只有100万左右,但到明年底,用户数将达到2000万。”可瑞达公司(原名:北...

老枪 ⋅ 2009/12/29 ⋅ 0

OSChina 第七期高手问答:Nginx源码解读和扩展开发

来自 Netcraft 2012年1月份的报告,Nginx 已经俨然成为第二大 Web 服务器软件。 本期 OSChina 高手问答,我们请来自广州的 @何海强 为我们答疑关于 Nginx 源码解读以及扩展模块开发方面的问题...

红薯 ⋅ 2012/02/12 ⋅ 30

关于android各种双卡手机获取imei,imsi的处置(mtk,展讯,高通等)

关于android各种双卡手机获取imei,imsi的处理(mtk,展讯,高通等) 目前国内对于双卡智能手机的需求还是很大的,各种复杂的业务会涉及到双卡模块;而android标准的api又不提供对双卡的支持...

朱园 ⋅ 2013/11/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vuex学习

1、getters基本用法: 在store.js里面用const声明我们的getters属性。 const getters={ count:function (state) { return state.count +=100; }} export default new Vuex.S......

大美琴 ⋅ 32分钟前 ⋅ 0

292. Nim Game - LeetCode

Question 292. Nim Game Solution 思路:试着列举一下,就能发现一个n只要不是4的倍数,就能赢。 n 是否能赢1 true2 true3 true4 false 不论删除几,对方都能一把赢5 t...

yysue ⋅ 44分钟前 ⋅ 0

G6 关系数据可视化图形库 简单使用

官网 https://antv.alipay.com/zh-cn/g6/1.x/index.html 效果 首先生成给定数目的小球,并设置随机的颜色 按照顺序,设置小球的角度以及坐标 设置定时器,每隔一定的时间修改小球的角度和坐标...

阿豪boy ⋅ 47分钟前 ⋅ 0

6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩

zip压缩工具 zip命令可以压缩目录和文件,-r 压缩目录。 zip使用方法 zip 1.txt.zip 1.txt //压缩文件 zip -r 123.zip 123/ //压缩目录 unzip 1.txt.zip //解压 unzip 123.zip -d /root/456...

Linux_老吴 ⋅ 55分钟前 ⋅ 0

react-loadable使用跳坑

官方给react-loadable的定义是: A higher order component for loading components with dynamic imports. 动态路由示例 withLoadable.js import React from 'react'import Loadable fro......

pengqinmm ⋅ 今天 ⋅ 0

记录工作中遇到的坑

1、ios safari浏览器向下滚动会触发window resize事件

端木遗风 ⋅ 今天 ⋅ 0

桥接设计模式

1、概述: 将抽象部分与他的实现部分分离,这样抽象化与实现化解耦,使他们可以独立的变化 如何实现解耦的呢,就是通过提供抽象化和实现化之间的桥接结构 桥接模式将继承模式转化成关联关系,他降...

职业搬砖20年 ⋅ 今天 ⋅ 0

20.zip压缩 tar打包 打包并压缩

6月25日任务 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩 6.5 zip压缩工具: zip支持压缩目录 zip压缩完之后原来的文件不删除 不同的文件内容其实压缩的效果不一样 文件内有很多重复的用xz压...

王鑫linux ⋅ 今天 ⋅ 0

double类型数据保留四位小数的另一种思路

来源:透析公式处理,有时候数据有很长的小数位,有的时候由在四位以内,如果用一般的处理方法,那么不足四位的小树会补充0到第四位,这样子有点画蛇添足的感觉,不太好看。所以要根据小数的...

young_chen ⋅ 今天 ⋅ 0

Django配置163邮箱出现 authentication failed(535)错误解决方法

最近用Django写某网站,当配置163邮箱设置完成后,出现535错误即:smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed') Django初始配置邮箱设置 EMAIL_HOST = "smtp.1...

陈墨轩_CJX ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部