鄭吉妮,黃河,王方金
(中國移動通信集團廣東有限公司,廣州 510623)
隨著通信網絡IP化進程的迅速發(fā)展,傳輸網由早期的MSTP技術向PTN技術轉型,現有PTN網絡已具備帶寬統計復用等多方面優(yōu)勢,可同時承載2G/3G/4G基站回傳業(yè)務、集客業(yè)務及WLAN業(yè)務等。
IEEE 802.3x流控:全雙工以太網數據鏈路層的一種流控方式,當一端設備向對端設備發(fā)出請求后,如自身系統緩存不夠或網絡產生擁塞時,便會向對端設備發(fā)出Pause幀,以延緩其發(fā)向自身的數據。流量控制可用于在端口阻塞情況下避免丟幀,可有效抵御瞬間大量數據對網絡帶來沖擊,保證用戶網絡運行高效而穩(wěn)定。
FTP文件傳輸協議:使用TCP生成一個虛擬連接用于控制的信息,再生成一個單獨的 TCP連接用于數據傳輸,實現主機間文件共享。FTP客戶機可給服務器發(fā)出命令,用于下載或上傳文件、創(chuàng)建或改變服務器上的目錄等。
中國移動為集團客戶A公司開通一條跨省MSTP+ PTN大客戶專線,命名為“北京-深圳300 Mbit/s”。電路開通后,傳輸掛表測試正常,但A公司客戶使用該電路進行FTP等應用測試發(fā)現實際帶寬不足,提出申告:“使用單線程FTP從北京服務器下載文件至深圳時,帶寬能達到要求,但在深圳上載文件至北京服務器時,帶寬達不到要求,最低只有約4Mbit/s左右”。

圖1 TCP穩(wěn)態(tài)速率影響因素
BDP(Bandwidth Delay Product,帶寬時延乘積)即帶寬×時延,其中時延指系統的環(huán)回時長RTT0,即TCP發(fā)出一個數據分組到收到對應ACK的時長,約等于Ping測時長。案例中北京-深圳的帶寬為300 Mbit/s折合為37.5 MB,時延為40 ms,該BDP≈37.5×0.04×106=1 500 000 B。即 理 論 上 要求客戶北京、深圳FTP服務器的TCP緩沖區(qū)不小于1 500 000 B。
TCP緩沖區(qū)大小設置原則:緩沖區(qū)大小需要略大于時延帶寬乘積,否則吞吐量會因緩沖區(qū)太小而受限。其中吞吐量 = min{發(fā)送窗口,接收窗口}/ RTT。如果應用程序指定了緩沖區(qū)大小,則按應用程序指定大小分配緩沖區(qū),否則操作系統按系統設置值進行TCP緩沖區(qū)分配。
在A公司客戶現場登陸北京、上海、深圳3地服務器,查看當前TCP緩存窗口配置,發(fā)現北京和深圳的服務器緩存設置足夠,但上海服務器的緩存設置略小,通過TCP穩(wěn)態(tài)速率分析,發(fā)現FTP服務器的TCP發(fā)送接收緩存不小于1 500 000 byte,當時查詢的結果如表1所示。

表1 客戶服務器緩存情況分析
最終分析結論為北京和深圳的FTP服務器TCP緩存窗口大于BDP,“北京—深圳300 Mbit/s”電路FTP吞吐量低,非客戶FTP服務器的TCP緩存窗口設置不合理引起。
由于TCP傳輸存在方向性,因此需要將此電路兩端單獨分析。
北京—深圳方向:如圖2、3所示,從北京FTP文件至深圳方向,北京客戶路由器與華為EGS4單板對接的端口速率為GE,MSTP網絡帶寬只有300 Mbit/s,北京SSN4EGS4單板處入口帶寬(1 000 Mbit/s)大于出口帶寬(300 Mbit/s),即存在瓶頸。由于SSN4EGS4單板與客戶Juniper路由器端口是自協商模式,并且使用自協商流控(802.3x),當Juniper路由器出現突發(fā)流量時,SSN4EGS4單板與路由器端口之間的流控機制保證路由器突發(fā)數據不超過SSN4EGS4單板緩存大小,因此SSN4EGS4單板不會分組丟失。經測試,北京—深圳300 Mbit/s電路,從北京FTP文件至深圳方向的FTP速率穩(wěn)定在33!35 Mbit/s左右。
深圳—北京方向:如圖4所示,深圳FTP文件至北京方向FTP平均速度只有4!5 Mbit/s。從拓撲圖看,深圳客戶路由器與華為PTN950設備EG2單板對接的端口速率為GE,而PTN網絡內Tunnel限速為300 Mbit/s,相當于深圳PTN950設備EG2單板處入口帶寬(1 000 Mbit/s)大于出口帶寬(300 Mbit/s),即存在瓶頸。由于PTN950設備產品規(guī)格不支持端口發(fā)送流控幀(只支持接受流控幀),并且PTN950設備EG2單板的Tunnel隊列緩存規(guī)格較小。因此當存在出口帶寬小于入口帶寬,且單板緩存無法容納突發(fā)數據時,就產生分組丟失引起TCP重傳,從而降低了FTP傳輸速率。

圖2 北京—深圳方向傳輸組網情況

圖3 北京客戶端傳輸設備以太網單板的接口配置
修改深圳客戶機房PTN950設備的限速模式由Tunnel限速修改為端口CAR限速,配置CAR限速的CIR/PIR(承諾信息速率/峰值信息速率)為300 000 kbit/s,配置CBS/PBS(承諾突發(fā)/峰值突發(fā))為2 MB。修改后經測試,該電路從深圳至北京方向的FTP速率可穩(wěn)定在33 Mbit/s以上。
此類問題一般發(fā)生在FTP等存在較大TCP突發(fā)數據流的應用場景下,建議對單線程與多線程兩種FTP速率進行比較。如果多線程FTP速率(所有線程速率綜合)能基本達到用戶需求帶寬,而單線程FTP速率遠低于用戶需求帶寬時,說明吞吐量不夠導致帶寬瓶頸,從而引起分組丟失重傳。類似問題可按照下述步驟進行排查和解決。
(1)檢查用戶FTP服務器和客戶端TCP滑動窗口緩存大小是否滿足要求,一般要求TCP滑動窗口緩存大小不小于BDP。
(2)上述條件滿足后,檢查電路配置是否存在誤碼和異常告警等影響業(yè)務的因素,并逐一排除,有條件的情況下可以使用SmartBit等以太網測試儀進行檢測。
(3)檢查電路路徑是否存在瓶頸點,比如與用戶設備對接的PTN或MSTP單板,它們與用戶設備一般是以FE/GE/10 GE速率對接,但網絡側綁定的通道往往才是用戶真正租用的帶寬(如60 Mbit/s /200 Mbit/s/2 GE)。因此在入口處存在大管道向小管道的帶寬收斂,當入口流量存在突發(fā)時便出現瓶頸,如果單板的緩存不足以存儲突發(fā)流量,就會出現分組丟失,進而導致TCP數據發(fā)生重傳,降低上傳下載速率。
(4)如果用戶設備和對接的移動PTN或MSTP以太單板之間存在如上瓶頸,首選方案是在用戶設備發(fā)往移動PTN或MSTP以太單板方向的端口上進行流量整形(Shaping),整形后的數據流為用戶租用帶寬,從而消除用戶設備發(fā)往移動PTN或MSTP以太單板方向的超SLA突發(fā)數據流,PTN或MSTP以太單板就能完全轉發(fā)用戶設備送來的數據分組。
(5)如果用戶設備和對接的移動MSTP以太單板之間存在瓶頸,且用戶設備無法做流量整形,則可嘗試在用戶設備和MSTP以太單板之間啟動802.3x流控,采用Pause幀機制,當MSTP以太單板遇到突發(fā)數據流無法及時轉發(fā)時,通知上游用戶設備暫停發(fā)送數據,從而避免分組丟失現象。

圖4 深圳—北京方向傳輸組網情況
(6)如果(4)(5)都無法滿足,建議取消Tunnel限速(取消CIR/PIR),改為端口流量監(jiān)管方式(CAR),設置用戶端口CAR的CIR/PIR為用戶需求帶寬,CBS/PBS設置為用戶FTP服務器TCP滑動窗口緩存大小,多用戶方式下可按照端口+VLAN設置CAR。
[1]黃河, 鄭吉妮, 朱紹柯.PTN、MSTP網絡承載以太網專線的性能對比分析[J].電信工程技術與標準化, 2014(11).
[2]唐鐵斌, 孫士兵, 馬佩勛, 等.一種基于IEEE 802.3以太網流量控制的RACE方法研究[J].光通信研究, 2009(10).
[3]黃世權.FTP協議分析和安全研究[J].微計算機信息, 2008(6).