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

                        <h2 style="text-align: center; font-family: " helvetica="" neue",="" helvetica,="" arial,="" "pingfang="" sc",="" "hiragino="" sans="" gb",="" "wenquanyi="" micro="" hei",="" "microsoft="" yahei",="" sans-serif;="" color:="" rgb(0,="" 0,="" 0);"="">Air208在西安某地区连接服务器失败问题分析过程</h2><p class="MsoListParagraph" style="margin-left:21.0pt;text-indent:-21.0pt;

mso-char-indent-count:0;mso-list:l0 level1 lfo1”>一、<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>         
问题描述<o:p>

1.<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>     西安某地区连接TCP服务器失败,重连两次均失败。<o:p>

2.<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>    
当地CSQ15左右<o:p>

3.<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>    
TCP服务器正常、SIM卡无欠费。<o:p>

4.<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>    
发送CIPSHUT(去激活PDP命令)后恢复正常<o:p>

二、<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>         
协议分析<o:p>

1.<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>    
TCP层分析<o:p>

连接TCP服务器需要经过三次握手。<o:p>

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

2.<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>    
RLC(无线链接路层)分析<o:p>

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

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

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

<o:p> 

3.<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>    
TBF分配情况分析<o:p>

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

<o:p> 

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

<o:p> 

1)<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>  
下行TBF的分配触发机制<o:p>

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

<o:p> 

2)<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>  
下行TBF的两种分配方式


       a.CCCH上建立下行TBF


<o:p>

<v:shapetype id=”_x0000_t75” coordsize=”21600,21600” o:spt=”75” o:preferrelative=”t” path=”m@4@5l@4@11@9@11@9@5xe” filled=”f” stroked=”f”>
<v:stroke joinstyle=”miter”>
<v:formulas>
<v:f eqn=”if lineDrawn pixelLineWidth 0”>
<v:f eqn=”sum @0 1 0”>
<v:f eqn=”sum 0 0 @1”>
<v:f eqn=”prod @2 1 2”>
<v:f eqn=”prod @3 21600 pixelWidth”>
<v:f eqn=”prod @3 21600 pixelHeight”>
<v:f eqn=”sum @0 0 1”>
<v:f eqn=”prod @6 1 2”>
<v:f eqn=”prod @7 21600 pixelWidth”>
<v:f eqn=”sum @8 21600 0”>
<v:f eqn=”prod @7 21600 pixelHeight”>
<v:f eqn=”sum @10 21600 0”>

<v:path o:extrusionok=”f” gradientshapeok=”t” o:connecttype=”rect”>
<o:lock v:ext=”edit” aspectratio=”t”>
<v:shape id=”图片_x0020_163” o:spid=”_x0000_i1028” type=”#_x0000_t75” style=”width:391.9pt;height:194.65pt;visibility:visible;mso-wrap-style:square”>
<v:imagedata src=”file:///C:/Users/ADMINI1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png” o:title=””>
<o:p>

<span style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif”=””>            在没有上行TBF存活的情况下,基站通过立即分配的的方式通知模块建立下行TBF<o:p>

<span style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif”=””>            在正常情况下,我们的模块能收到立即分配的指令,并正常建立下行TBF. 如下图所示。<o:p>

<v:shape id=”图片_x0020_195” o:spid=”_x0000_i1027” type=”#_x0000_t75” style=”width:415.5pt;height:96pt;visibility:visible;
mso-wrap-style:square”>
<v:imagedata src=”file:///C:/Users/ADMINI1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png” o:title=””>
<o:p>

<o:p>  

<o:p> 

b. 在上行TBF上进行下行TBF的分配<o:p>

<v:shape id=”图片_x0020_193” o:spid=”_x0000_i1026” type=”#_x0000_t75” style=”width:390.4pt;height:202.9pt;visibility:visible;
mso-wrap-style:square”>
<v:imagedata src=”file:///C:/Users/ADMINI1/AppData/Local/Temp/msohtmlclip1/01/clip_image003.png” o:title=””>
<o:p>

<o:p> 

<span style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif”=””>         在正常情况下,我们的模块能收到Downlink分配的指令,并正常建立下行TBF. 如下图所示。<o:p>

<v:shape id=”图片_x0020_196” o:spid=”_x0000_i1025” type=”#_x0000_t75” style=”width:415.5pt;height:169.5pt;visibility:visible;
mso-wrap-style:square”>
<v:imagedata src=”file:///C:/Users/ADMINI1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png” o:title=””>
<o:p>

<o:p> 


<span style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif”=””>       而在TCP服务器连接失败的情况下,我们并没有在LOG中看到上述任意一种下行TBF的分配。<o:p>

<span lang=”EN-US” style=”font-size:12.0pt;font-family:
“ microsoft=”” yahei=”” ui=”” light”,sans-serif”=””><o:p> 

<span lang=”EN-US” style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif;=”” mso-bidi-font-family:”microsoft=”” light””=””>三、<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>       
<span style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif”=””>综合分析<o:p>

<span style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif”=””>由此,我们可以确认,TCP服务器连接失败的原因是没有收到任何下行TBF的分配。可能性有以下几种:<o:p>

<span lang=”EN-US” style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif;=”” mso-bidi-font-family:”microsoft=”” light””=””>1.<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>     <span lang=”EN-US” style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif”=””>TCP<span style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif”=””>服务器没有响应。

<span lang=”EN-US” style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif;=”” mso-bidi-font-family:”microsoft=”” light””=””>2.<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>    <span style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif”=””>网关侧没有把TCP服务器的下行数据发过来。<o:p>

<span lang=”EN-US” style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif;=”” mso-bidi-font-family:”microsoft=”” light””=””>3.<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>    <span style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif”=””>基站侧没有足够的下行TBF可以分配。

结合发送CIPSHUT(去激活PDP命令)后恢复正常的情况来看,第2点的可能性最大<o:p>

 

<span lang=”EN-US” style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif;=”” mso-bidi-font-family:”microsoft=”” light””=””>四、<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>       
<span style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif”=””>结论<o:p>

<span style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif”=””>西安某地区连接服务器失败问题,我们分析结论如下:<o:p>

1.<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>     
<span style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif”=””>模块侧与基站的通信一切正常。<o:p>

2.<span style=”font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: “ times=”” new=”” roman”;”=””>     
<span style=”font-size:12.0pt;font-family:” microsoft=”” yahei=”” ui=”” light”,sans-serif”=””>问题可能是因为网关侧的临时性故障。<o:p>

五、<span style=”font-family: “ times=”” new=”” roman”;=”” font-size:=”” 7pt;=”” font-variant-numeric:=”” normal;=”” font-variant-east-asian:=”” font-stretch:=”” line-height:=”” normal;”=””>        解决办法

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

上次更新 2021-01-28