Air208在西安某地区连接服务器失败问题分析过程

西安某地区连接服务器失败问题分析报告一、          问题描述1.     西安某地区连接TCP服务器失败,重连两次均失败。2. &...

Air208在西安某地区连接服务器失败问题分析过程

一、          问题描述

1.     西安某地区连接TCP服务器失败,重连两次均失败。

2.     当地CSQ15左右

3.     TCP服务器正常、SIM卡无欠费。

4.     发送CIPSHUT(去激活PDP命令)后恢复正常

二、          协议分析

1.     TCP层分析

连接TCP服务器需要经过三次握手。

log中看,当模块发出第一次握手信息后,未收到服务器发出的第二次握手信息,因此开始重发第一次握手信息。重发了6次之后,始终未收到服务器的第二次握手信息,因此连接失败。

2.     RLC(无线链接路层)分析

TCP层的数据到达协议栈后,需要经过RLC(无线链接路层)发送给基站。RLCTCP层类似,同样有滑窗机制、确认机制。

经过LOG分析,RLC上行数据成功发送给了基站,并且收到了基站的ACK。也就是说基站成功的收到了RLC完整、准确的数据包,而且模块也收到了基站

的确认数据。表明:模块与基站之间的信道通信是正常的。

 

3.     TBF分配情况分析

TBF的意思是Temporary Block Flow 临时块流。TBFGPRS通信中基站分配的信道资源的基本单位,所有GPRS通信都建立上TBF的基础之上。

 

RLC层分析的结果来看,RLC上行数据成功发送给了基站,表明上行TBF没有任何问题,我们重点要关注下行TBF的情况。

 

1)   下行TBF的分配触发机制

当核心网有下行GPRS数据要发送给模块时,触发基站分配下行TBF资源给模块。模块在这个过程中完全是被动的,无法参与其中的分配过程,因为无需和模块进行协商。

 

2)   下行TBF的两种分配方式


       a.CCCH上建立下行TBF


            在没有上行TBF存活的情况下,基站通过立即分配的的方式通知模块建立下行TBF

            在正常情况下,我们的模块能收到立即分配的指令,并正常建立下行TBF. 如下图所示。

  

 

b. 在上行TBF上进行下行TBF的分配

 

         在正常情况下,我们的模块能收到Downlink分配的指令,并正常建立下行TBF. 如下图所示。

 


       而在TCP服务器连接失败的情况下,我们并没有在LOG中看到上述任意一种下行TBF的分配。

 

三、        综合分析

由此,我们可以确认,TCP服务器连接失败的原因是没有收到任何下行TBF的分配。可能性有以下几种:

1.     TCP服务器没有响应。

2.    网关侧没有把TCP服务器的下行数据发过来。

3.    基站侧没有足够的下行TBF可以分配。
结合发送CIPSHUT(去激活PDP命令)后恢复正常的情况来看,第2点的可能性最大

 

四、        结论

西安某地区连接服务器失败问题,我们分析结论如下:

1.      模块侧与基站的通信一切正常。

2.      问题可能是因为网关侧的临时性故障。

五、        解决办法

TCP服务器连接失败后,发送AT+CIPSHUT指令再重试。

  • 发表于 2019-08-08 10:08
  • 阅读 ( 2408 )
  • 分类:默认分类

0 条评论

请先 登录 后评论
不写代码的码农
刘乐安

3 篇文章

作家榜 »

  1. 技术销售Delectate 43 文章
  2. 陈夏 26 文章
  3. 国梁 24 文章
  4. miuser 21 文章
  5. 晨旭 20 文章
  6. 朱天华 19 文章
  7. 金艺 19 文章
  8. 杨奉武 18 文章