桓汗晶 北京中創信測信息技術有限公司監測系統產品部產品經理
編者按:隨著手機、平板電腦等智能終端以及互聯網技術的快速發展,在短短幾年的時間里,國內的移動支付市場持續保持爆發式的增長態勢,而支付成功率則是影響用戶感知的關鍵因素。本文分享了某市提升移動支付成功率的案例,依托專業的信令分析工具,通過對移動支付服務器、移動支付服務器端口、現場測試和用戶投訴信令等不同角度進行分析,最終定位并解決了問題,極大地提升了用戶感知。可供相關技術人員參考。
2015年4月,某市移動大量移動支付POS機出現支付失敗投訴,導致數據業務投訴激增,嚴重影響用戶感知。本文借助專業信令分析工具,對移動支付服務器、移動支付服務器端口、移動支付信令流程和測試情況進行綜合分析,定位問題并提交優化,最終完成了本次移動支付專題優化分析。
通過信令分析平臺對移動支付業務信令標準流程進行抓取,以此來定位移動支付問題信令點。如圖1所示,針對關鍵信令點的描述如下:
(1)POS在開機后,使用GPRS網絡進行ATTACH附著,并使用APN為CMNET進行PDP激活。
(2)PDP激活后,POS機向移動支付服務器(211.141.88.164)發起ping測試,移動支付服務器進行ping響應。
(3)POS機與支付服務器進行TCP三握手連接,目標地址為211.141.88.164,端口號可選為8100或8200,具體使用與POS機設置有關。

圖1 移動POS支付信令全流程
(4)完成TCP三握手連接后,POS機使用標準TCP協議向支付服務器發起業務請求消息,使用push-ack進行傳輸,支付服務器回復ACK消息對其進行響應,POS收到支付服務器回復的ACK消息后,使用push-ack對其進行響應,完成支付過程。
(5)完成支付過程后,進行TCP拆鏈。
2015年4月底某市大量移動支付POS機出現支付失敗投訴,導致數據業務投訴激增。通過信令回放,并和移動支付標準信令流程進行對比發現,問題可定位為POS機與移動支付服務器進行TCP三握手的環節,由于TCP三握手失敗從而導致移動支付失敗。
對具體信令進行分析發現,移動支付POS機終端在附著和PDP激活成功之后,在與移動支付平臺服務器進行(IP地址為“211.141.88.164”)TCP三握手時失敗,其主要失敗端口為8100,失敗原因為POS機發起SYN請求后,一直未得到服務器的SYN-ACK響應,從而導致SYN在重發后超時失敗,導致POS機支付失敗。分別抓取POS支付失敗和成功的信令進行對比,具體如圖2、3所示。
對移動支付服務器全天24h時段TCP建立情況進行跟蹤(見圖4),可見,在業務閑時段TCP三握手成功率為90%以上;7點后,隨著POS支付業務量增加,TCP三握手成功率急劇下降為50%左右;在21點后,隨著業務量下降,其成功率又逐步回升至70%左右。可見,服務器整體TCP三握手成功率較低。

圖2 移動POS支付失敗信令流程

圖3 移動POS支付成功信令流程
通過以上分析,確認服務器(211.141.88.164)問題異常并導致用戶投訴,需要協調處理該服務器。2015年4月25日,對移動支付服務器和支付端口進行更換,對更換后TCP三握手成功率情況效果驗證如下(見圖5)。
從更換后的TCP三握手成功率來看,更換后通過服務器(211.141.88.164)的TCP三握手成功率明顯提升,忙時TCP三握手成功率由60%提升為80%左右,POS機刷卡成功率明顯改善,但整體成功率依然波動較大,仍需進行詳細分析。
從前文分析發現,目前POS機刷卡的成功率雖有改善,但依然較低,需繼續進行深入分析。為深入定位TCP三握手成功率低的原因,統計2015年5月20、21日移動支付服務器(211.141.88.164)的TCP三握手趨勢,具體如圖6所示。
可見,隨著業務次數(SYN次數)的增加,TCP網絡側響應成功率出現急劇下降,由閑時的90%下降為60%左右,但無線側成功率基本保持穩定,因此移動支付服務器TCP成功率與無線側關聯不大。同時,TCP網絡側成功率和SYN超時次數存在明顯相關性。當SYN超時次數增加時,網絡側成功率出現明顯下降。因此,需重點分析移動支付服務器在業務量增加時出現大量SYN超時是否與支付服務器負荷或相關內部參數設置相關。

圖4 移動POS支付平臺服務器TCP三握手成功率趨勢

圖5 移動POS支付平臺服務器更換前后TCP三握手成功率趨勢

圖6 移動POS支付平臺服務器TCP三握手成功率趨勢
統計使用移動支付服務器(211.141.88.164)的不同支付端口時各個支付端口的TCP指標情況,具體如表1所示。可見,當前移動支付服務器主要使用3個端口進行業務,分別為8001、8100和8200,但這3個端口的網絡側成功率相差較大,而無線側成功率基本一致。
通過和POS廠家溝通得知,POS機可以對相關端口進行設置,其中8001端口為管理端口,可進行相關簽到、管理操作,而8100和8200為POS支付端口,在進行支付交易時,需采用這兩個端口進行。
從網絡側成功率分析來看,8100端口網絡側成功率保持在90%以上,但8001和8200端口成功率僅為60%左右;從3個端口的SYN嘗試次數來看,某市移動POS機業務主要集中在8200和8001端口,8100端口業務量較小;從關聯SYN超時次數來看,8200和8001的SYN超時次數明顯高于8100端口,從而拉低了整體支付服務器的TCP網絡側成功率。

表1 支付服務器不同端口成功率分析
統計連續兩天支付服務器不同端口的小時級TCP指標,具體如圖7所示。可見,隨著業務量的增加,8200和8001端口的SYN超時次數明顯增加,從而引起兩個端口的網絡側成功率急劇下降;而8100端口隨著業務量的增加,SYN超時次數未見明顯增加。
因此,從對支付服務器的不同端口分析來看,8200和8001端口明顯存在異常,需對服務器的端口設置和相關參數進行排查。
協調相關人員對某市移動支付POS機進行了相關測試,通過在GB口對業務進行信令抓取,現場人員反饋某時間段內出現刷卡時延較大,交易完成較慢的情況。通過wireshark對異常時段的測試信令抓包,具體分析如圖8所示。可見,當現場測試人員反饋刷卡較慢時,從GB口信令上表現為服務器始終未對SYN包進行響應,導致SYN包不斷進行重發,從POS發起SYN請求開始,由于一直未得到服務器端響應,導致SYN重發6次,整體業務時延為60s左右。與正常POS支付業務流程相比,正常支付流程時延僅為10s左右。由此來看,是由于支付服務器問題,導致不能及時對SYN進行響應,從而導致用戶支付時延較大,影響用戶感知。
綜上分析可推斷移動支付服務器可能存在部分參數設置問題,從而導致SYN包超時率較高。通過支付平臺服務器提供商對服務器相關參數和設置進行核查發現,其服務器確實存在對部分TCP握手消息不響應的問題。經查為其服務器開啟tcp_timestamps驗證導致。

圖7 移動POS支付平臺服務器不同端口TCP三握手成功率趨勢

圖8 刷卡支付測試抓包信令分析
當服務器端的tcp_tw_recycle和tcp_timestamps都是1的時候,會檢查收到數據包TCP選項字段中的的timestamp(TS Value),當來自同一個IP地址(任意源端口號),后來的數據包中TCP選項字段如果有timestamp且比前面數據包中的timestamp小,則server不做ACK響應。
由于POS機客戶端的業務請求經過2臺NAT服務器轉換后,后端服務器會認為是同一個TCP連接,由于開啟了tcp_timestamps驗證,在POS客戶端發起的業務請求的時間戳存在不一致情況下,有可能會導致客戶端發起SYN后,服務器端始終不回應SYN ACK,從而導致SYN超時。
通過優化,將移動支付服務器端的Linux內核參數tcp_timestamps由1修改為0,關閉時間戳驗證后解決了SYN超時問題,從而解決了用戶支付失敗的問題。
5.2.1 整體提升效果
在2015年5月22日16點左右,對移動支付服務器進行了相關優化,統計優化前后(5月20—25日)的服務器TCP相關指標并進行跟蹤,具體如圖9所示。
可見,從優化后整體效果來看,移動支付服務器的網絡側成功率上升明顯,由之前的60%左右提升為90%以上,并連續保持穩定;從SYN超時來看,SYN超時率由28%左右下降為5%左右,SYN超時次數明顯下降,由優化前最高的400次下降為優化后10次左右。
對移動支付服務器各端口的網絡側成功率(見圖10)和SYN超時率(見圖11)指標進行跟蹤,可以看到,8001和8200端口在優化后,網絡側成功率指標提升明顯,兩個端口的網絡側成功率均在95%以上,較優化前提升30%左右。從SYN超時率來看,由優化前的35%左右下降為5%以內,下降了30%左右。
5.2.2 各TCP端口提升效果
2015年5月20—25日,對優化前后的8200(見圖12)和8001端口(見圖13)的小時級TCP指標進行跟蹤,可見,在對服務器端進行相關參數優化后,8200和8001端口的TCP網絡側成功率均提升明顯,SYN超時次數下降明顯,從而顯著改善了用戶感知。

圖9 優化前后移動支付服務器TCP指標跟蹤

圖10 優化前后移動支付服務器各端口的TCP成功率跟蹤

圖11 優化前后移動支付服務器各端口的SYN超時率跟蹤

圖13 優化前后移動支付服務器8001端口TCP跟蹤
依托專業的信令分析工具,對業務過程進行全程信令分析,從移動支付服務器、移動支付服務器端口、現場測試和用戶投訴信令等不同角度進行分析,發現隨著業務量增加,SYN超時率明顯上升,明顯影響用戶感知,最終定位為由服務器端內核參數設置存在異常導致。依托專業的信令分析工具,可有效提升現場針對此類問題的解決能力,從而有效提升用戶實際感知。