數據傳送限制因素,概述,數據傳送的限制因素,數據傳送點的選擇方法,概述,TD-SCDMA接力切換原理,TD-SCDMA接力切換過程性能分析,數據傳送點選擇方法的最佳化,數據傳送器設計,概述,系統結構,電路設計,數據傳送定時器,概述,數據傳送定時器簡介,數據傳送定時器的設計,
數據傳送限制因素
概述
傳輸控制協定( TCP)是Internet 中使用最廣泛的傳輸層協定。常見套用如HT T P、F TP、BitTorrent 等都使用它來傳輸數據。在傳輸過程中, 數據傳送受到不止一種因素的限制,比如傳送方、接收方和網路。當用戶數據下載速率不快時,他們希望了解下載過程中限制數據傳送的主要因素。 這是因為,一旦能夠診斷出數據傳輸中的限制因素,用戶就可以通過消除這種限制因素來提高連線的傳輸速率。比如當限制因素是接收方時,用戶可以通過修改主機的配置來提高傳輸速率; 而當限制因素是傳送方或者網路時,用戶可以通過向服務提供商和ISP反映來解決問題。
限制因素的診斷方法取決於測量點的位置。 當測量點在數據傳送方時, Web100系統可以直接從數據傳送方的TCP 協定棧讀取數據傳送限制因素。而普通用戶沒有從web或FTP伺服器直接讀取其協定棧信息的許可權,因此他們只能根據在數據接收方或者網路中測量到的報文進行估計。在非數據傳送方診斷數據傳送限制因素的基本方法是在連線路徑上的某一測量點監聽報文,首先獲取該連線每一時刻的飛行位元組數,然後通過分析飛行位元組數的動態變化規律來確定每一時刻的限制因素。在該方法中,因為飛行位元組數是後面分析的基礎,所以準確估計飛行位元組數非常重要,但目前所有的工作都無法做到這一點。
對上面非數據傳送方的診斷方法提出了2 點改進。首先,本文使用TCP時間戳選項來確定報文間的引發關係。無論測量點在什麼位置,該方法都能準確地確定報文間的引發關係,從而計算出準確的飛行位元組數。其次,本文提出了一種相對魯棒的方法通過分析飛行位元組數的變化規律來確定每一時刻的數據傳送限制因素。
數據傳送的限制因素
在一條TC P連線中,某一時刻的飛行位元組數是指當時在傳送方看來那些已經傳送但尚未被確認的總位元組數。TC P速率控制的基本原理是讓傳送方通過限制飛行位元組數來限制其數據傳送速率。TC P批量數據傳輸是指在連線進行的過程中, 上層應用程式始終有新數據傳送,數據傳送方不會因缺少數據而暫停傳送。很多重要的套用如HT TP、FTP都是這種類型,其飛行位元組數受下面3種因素的限制:
1)傳送方快取: 上層套用的數據會首先被拷貝到傳送方快取中,連線最大的飛行位元組數不可能大於傳送方快取的大小。 當數據傳送受傳送方快取限制時,飛行位元組數將一直等於傳送方快取。
2)接收方快取: 接收方快取也會限制飛行位元組數,當數據傳送受接收方快取限制時,飛行位元組數將一直等於接收方快取。
3)擁塞視窗: 擁塞視窗是TCP協定為避免網路擁塞而用來限制飛行位元組數的視窗。 擁塞視窗隨時間動態變化,在沒有丟包的時候,擁塞視窗隨時間不斷增長。因此,當飛行位元組數受該因素限制時,它會隨時間不斷增長。
由上面的分析可知,當飛行位元組數受不同因素限制時,其變化規律是不一樣的。因此,通過分析飛行位元組數的變化規律可以確定它的限制因素。
數據傳送點的選擇方法
概述
T D - S C D M A 系統中的切換是為保證移動用戶通信的連續性或者基於網路負載和操作維護等原因,將用戶從當前的通信鏈路轉移到其他小區的過程。切換過程的最佳化設計對於任何一個蜂窩通信系統都十分重要。因為從網路效率的角度出發,當用戶終端處於不適合的服務小區進行通信時,不僅會影響通信質量,同時也將增加整個網路的負荷,甚至造成干擾。移動用戶應當使用網路中最最佳化的通信鏈路與相應的基站建立連線。
在第一代模擬系統和第二代 G S M 系統中都採用越區硬切換技術,硬切換的實現方式是 U E 需要先刪除原有的無線鏈路(R L),然後啟用新的無線鏈路與接入側進行通信。該技術使系統在切換過程中大約丟失 300 ms 的信息,占用的信道資源較多。在 TD - SCDMA 系統中除採用硬切換外,還採用接力切換。接力切換是介於硬切換和軟切換之間的一種新切換方法,具有較高的切換成功率、較低的掉話率及較小的上行干擾等,接力切換的突出優點是切換高成功率和信道高利用率。因此進一步最佳化接力切換的具體技術,是切換技術研究的一個熱點。
TD-SCDMA接力切換原理
實現接力切換的必要條件 :網路要準確獲得 U E 的位置信息,包括 U E 的信號到達方向 D O A, U E 與基站之間的距離。在 T D - S C D M A 系統中,由於採用了智慧型天線和上行同步技術,系統可以較為容易獲得 UE 的位置信息。
接力切換分為 4 個步驟,即測量過程、預同步過程、判決過程和執行過程。接力切換利用智慧型天線和上行同步等技術,根據 U E 的方位以及 U E 和節點 B 間的距離作為輔助信息來判斷目前 U E 是否移動到了可進行切換的相鄰節點 B 的臨近區域。如果 U E 進入切換區域,則無線網路控制器(R N C)通知該節點 B 做好切換準備,這個過程類似田徑比賽中的接力賽跑傳遞接力棒,因而形象地稱之為接力切換。在 U E 和節點 B 通信過程中,U E 需要對本小區節點 B 和相鄰小區節點 B 的導頻信號強度進行測量。U E 的測量是由 R N C 指定的,可以周期性進行,也可以由事件觸發進行。接力切換的預同步過程屬於開環預同步,在 U E 對本小區節點 B 和相鄰小區節點 B 的導頻信號強度進行測量的同時,記錄來自各鄰近小區節點 B 的信號與來自本小區節點 B 信號的時延差,預先取得與目標小區的同步參數,並通過開環方式保持與目標小區的同步。
目標小區確定後,R N C 根據目標小區與原小區的關係判決是硬切換(歸屬不同的 R N C)或者接力切換(歸屬同一個 R N C)。假設所有小區都歸屬同一 R N C, 即判決 U E 進行接力切換。R N C 將執行接力切換。首先對目標小區傳送無線鏈路建立請求。當 R N C 收到目標小區的無線鏈路建立完成之後,向原小區和目標小區同時傳送業務數據承載,這些數據從原小區和目標小區的空口傳送出去,同時 R N C 向 U E 傳送物理信道重配置訊息命令,即切換命令。
U E 接收到切換命令後,由原小區接收下行承載業務以及信令,而由目標小區發射上行的承載業務和信令。同時,利用事先獲取的原小區和目標小區之間的功率差值△ P和時間差值△ t,通過開環同步和功率控制,在目標小區發射上行的承載業務和信令。持續一段時間後,開始使用新配置在目標小區接收下行數據,實現閉環功率和同步控制,中斷從原小區接收下行數據,完成切換過程。在切換命令發出後,如 R N C 收到來自 U E 的切換成功訊息,則 RNC 向原小區發出請求,刪除原小區的無線鏈路。
TD-SCDMA接力切換過程性能分析
根據以上介紹,可以總結接力切換的特徵有兩點 :(1)在接力切換過程中,目標小區和原小區都在傳送下行數據。(2)整個接力切換過程中,U E 只收到一次從 R N C 傳送來的重配置命令,U E 根據該命令重配置自己的上行信道;但是下行信道的配置是根據經驗值的定時來觸發,也就是從接到重配置命令後,UE 自己設定一個定時器,定時器到時後,重配下行信道的配置。而對應第一個特徵,當同時向兩條 R L 傳送數據報文時,需要判斷發送有效數據的時間點。
如果在新 R L 剛建立時,立刻向下傳送用戶數據,該 R L 對應的基帶側將該用戶數據在空口傳送出去,這時傳送的數據是在小區全向傳送的,對於這條 RL 而言,其發射功率不能到達小區邊緣,而切換時的 U E 大多數是在小區邊緣。如果 U E 收不到數據,則該數據就無效;同時該數據在空口無效傳送也會對其他 UE 造成干擾。
數據傳送點選擇方法的最佳化
為了解決在目標小區新 R L 剛建立時,U E 在切換區域接收不到目標小區傳送的用戶數據,同時該數據的無效傳送也會對目標小區其他 U E 造成干擾的問題和不足,本文提出可提高新 R L 的發射功率,保證 U E 在切換區域接收到目標小區傳送的用戶數據,同時可避免對其他 U E 造成干擾的接力切換中目標小區用戶數據傳送點的選擇方法。技術方案如下。
(1)U E 要切換的目標小區確定後,R N C 在發出切換命令之前,對目標小區傳送無線鏈路建立請求。當 R N C 收到目標小區無線鏈路建立完成的訊息之後,向原小區的節點 A 和目標小區的節點 B 同時傳送下行用戶數據,由原小區的空口向移動終端傳送該下行用戶數據,目標小區的空口丟棄該下行用戶數據,僅傳送特殊突發。當節點 B 收到終端的上行信號後再開啟功率進行數據下發,以此降低 U E 切換過程中目標小區無線鏈路對原小區無線鏈路的干擾。
(2)利用 T D - S C D M A 獨特的幀結構,減少同頻同時隙的干擾。即原小區與目標小區的業務承載信道可選擇不同的時隙。例如 :原小區上行鏈路可以選擇 T S2,下行鏈路選擇 T S4,而目標小區則相應地選擇 TS3 和 TS6。
(3)利用智慧型天線技術,R N C 通過原小區的 R L 向 U E 傳送物理層重配置命令,該種配置命令包括物理信道重配置命令、傳輸信道重配置命令和無線承載(R B)重配置命令 ;U E 收到重配置命令後,根據重配置命令的參數判斷此切換為接力切換時,對上行信道進行重配置,並向目標小區的節點 B 傳送特殊突發,在可能的情況下 U E 可繼續在原小區傳送上行用戶數據 ;所述目標小區的節點 B 根據該特殊突發信號的波束賦形,將其智慧型天線的主瓣方向對準移動終端,大大提高了新 R L的發射功率,可有效保證 U E 在切換區域接收到目標小區傳送的用戶數據,同時,避免了切換過程中該數據的無效傳送對目標小區其他 U E 造成的干擾 ;然後目標小區的空口停止傳送特殊突發,節點 B 開始傳送下行用戶數據,並在無下行用戶數據時傳送特殊突發。
數據傳送器設計
概述
隨著平板顯示系統解析度的提高, 顯示模式為SVGA(800×600, 數據傳輸率120Mb/ s)和XGA(1024×768, 數據傳輸率195Mb/s)的顯示器已經產品化。設計高解析度平板顯示界面最大的瓶頸, 莫過於在數據傳輸期間不可避免的電磁干擾, 數據滿擺幅平行傳輸所帶來的高功耗、低速也是傳統數字視頻界面難以解決的問題。 對系統高性能的要求促使微處理器及存儲器有了飛速發展。然而, I/O的速度往往滯後於系統頻寬的要求。 傳統數字視頻界面一般直接將主機LCD 控制器與平板顯示器連線起來,大量並行傳輸線滿擺幅傳輸視頻信號。 平板顯示器解析度的提高要求數據傳輸率也相應地提高, 然而, 大量並行的信號線及數據的滿擺幅傳輸使得線間有較強的電磁干擾, 數據傳輸的可靠性較低。當數據傳輸率提高時, 高頻率的數據切換使得該效應明顯加強。同時, 高功耗也是該界面不可避免的問題。因此,本文針對傳統數字視頻界面在高速傳輸數據時難以克服的瓶頸, 給出了一種以ANSI/TIA/ EIA-644為性能指標參考的低壓差分信號數據傳輸系統。低壓差分信號LVDS 是一種以非常低的電壓擺幅(約350mV)在差分PCB板線或平衡電纜上傳輸信號的通訊技術, 廣泛地用於區域網路、PC等的通訊。它最主要的特性有:
(1)電流模、低擺幅意味著數據可高速、低功耗傳輸;
(2)較少的並行傳輸線數, 電磁輻射干擾小;
(3)差分傳輸線, 線間電磁干擾可部分補償, 共模噪聲抑制強;
(4)與傳輸線特徵阻抗匹配的端電阻減少了信號反射;
(5)標準 CMOS 工藝實現, 成本低。
提出的基於 LVDS 標準的傳送器由 4 路通道構成 , 用以將 28 位並行紅、綠、藍數據及控制信號轉換為 4路並行數據傳輸, 系統時鐘為 32MHz ~ 112MHz , 故每一路通道的最大數據傳輸率為 784Mb/ s, 滿足 SVGA , XGA , SXGA 等多種顯示模式的要求。 少的並行傳輸線(僅 5 對電纜)及數據低電壓擺幅串列傳輸(7 路並行數據串列化), 降低了電磁干擾和功耗, 提高了數據傳輸率。
系統結構
為解決傳統的高解析度平板顯示系統數據視頻界面強電磁干擾、高功耗等問題。該傳送系統包括4 個視頻數據傳送通道, 傳統的數字視頻界面隨著數據傳輸率的提高, 會產生難以解決的高電磁干擾、高功耗問題。 電荷泵鎖相環及參考源是公用的。每一路通道由7:1並-串轉換器、低壓差分電流模驅動器構成。系統時鐘經電荷泵鎖相環產生7相與系統時鐘頻率相同的時鐘M -CLK(n)n=1, 2, … , 7, 用以控制7:1並-串轉換器, 利用相鄰兩相時鐘上升沿的間隔, 將7路並行數據轉換為串列數據。 被串列化的數據控制低壓差分電流模驅動器輸出電流的方向, 在平衡電纜對上產生擺幅約350mV 的差分信號。系統時鐘經第5 個驅動器也轉換為LVDS 信號,與4 路低壓差分數據及控制輸出信號一起傳送給平板顯示控制專用晶片。 參考源為低壓差分電流模驅動器提供穩定的參考電壓, 並自適應地調節驅動器的輸出電流, 使輸出擺幅在工藝、電源電壓、溫度變化時仍能保持恆定。系統的時鐘頻率為32MHz ~112MHz ,7 :1 並-串轉換器使每路通道數據傳輸率為224Mb/s ~784Mb/s,故系統總的數據傳輸率為112Mb/s ~392Mb/s,可滿足高解析度如SXGA 顯示器的要求。PWDN 信號為系統提供省電模式,4 個控制信號HSYNC 、VSYNC 、CNTL1、CNTL2 用於視頻信號的水平、垂直同步及處理。24 位RGB 像素數據與4 位控制信號分為4 路並行傳輸。
整個系統採用0.18μm CMOS 工藝模型設計,並、串結合的體系結構及低擺幅差分輸出驅動器, 使得該視頻數據傳送界面具有低成本、低功耗、高可靠性等特點, 適合於三維動畫, 多媒體等高速、高清晰度視頻系統的通訊接口要求。
電路設計
1.電荷泵鎖相環
電荷泵鎖相環由鑒相器、環濾波器、電荷泵、壓控振盪器構成。 14 級壓控振盪器產生 7 相與系統時鐘同頻率的時鐘M -CLK(n )n =1 , 2,…, 7, 將時鐘周期均分為 7 等份, 相鄰時鐘最小上升沿間隔為 1.27ns。 延遲單元採用全差分結構, 壓控電流源和電流受環濾波器產生的控制信號的控制, 根據系統時鐘的變化, 延遲單元差分輸出的擺幅也相應地變化, 以跟蹤系統時鐘的相位。7 相時鐘由相間隔的延遲單元產生,壓控振盪器主環路與多相時鐘產生迴路相分離, 使每一個延遲單元的電容負載相同, 減小了壓控振盪器的設計難度。與傳統的產生多相時鐘的壓控振盪器相比, 該振盪器不需要多相時鐘靈敏放大器和緩衝器, 減小了硬體複雜性和噪聲敏感性。電荷泵採用兩級負反饋機制, 自適應地調節環濾波器RC迴路的充放電,因此使鎖相環具有很好的相位跟蹤特性和對時鐘相位震顫噪聲的抑制能力。 環濾波器中的電阻、電容分別採用傳輸門、NMOS 管實現,節省了晶片面積。圖3 是在TTT(3.3V ,50℃,TT CMOS 模型)情況下用HSPICE 得到的仿真結果。結果表明產生的7 相時鐘間隔均勻,相位震顫噪聲小。
2.並-串轉換器
並排的7 個功能塊是數據選擇單元, 由二級D觸發器構成。它們的使能端分別接由電荷泵鎖相環產生的7 相時鐘。數據選擇單元的另外兩個輸入端接兩相同步時鐘, 確保相鄰並行數據在串列化時數據時序歪斜最小。並行數據在多相時鐘的作用下,經數據選擇單元轉換為串列數據後, 經雙端變單端的緩衝器, 將串列數據波形整型, 整型後的波形作為低壓差分電流模驅動器的輸入。
3.低壓差分電流模驅動器
主要由電流切換開關,壓控電流源, PVT自適應偏置構成。串列CMOS級數據經兩路倒相緩衝器變為互補信號, 用以控制電流切換開關, 改變輸出電流的方向, 輸出電流在傳輸線端電阻產生所需的電壓。輸出電流典型值約為3.5mA ,跨接在傳輸線對上的端電阻典型值為100Ψ,因此輸出的差分信號為350mV 。為了保證輸出信號的電壓擺幅在各種PVT 情況下保持恆定,驅動器的偏置採用反饋環路動態調節壓控電流源的電流大小。 如圖 5 所示,設偏置電路電晶體尺寸及電阻大小與對應的驅動器電流通路上的電晶體尺寸及電阻大小完全匹配, 兩個運放的負向端分別接由參考源產生的恆定電壓, 這兩個電壓的大小設定了驅動器輸出電壓所需的高低電平。 兩個運放的正向輸入端分別接在與傳輸線端電阻相匹配的外接電阻的兩端, 輸出端電壓作為兩個壓控電流源的控制電壓, 運放輸入的虛地效應使得正、負向端的電平在反饋環路平衡態時相等。 由於偏置電路與驅動器電流通路完全匹配, 因此, 傳輸線端電阻的電壓及電流與偏置電路外接電阻上的電壓及電流分別相等。 外接電阻及傳輸線端電阻可以調節, 以匹配傳輸線特徵阻抗的變化, 減小輸出信號的反射。當PVT 的波動引起外接電阻兩端的電壓發生變化時, 偏置電路的負反饋機制會動態調節該變化, 使外接電阻兩端的電壓與參考源產生的電壓動態相等。因此, 傳輸線端電阻上電壓及電流在PVT 發生變化時仍能
數據傳送定時器
概述
測控通信軟體是測控系統的核心與控制中樞, 其任務是以時間為基準, 由通信傳輸系統實時獲取各測量設備對目標的測量數據, 經過合理性選擇、誤差修正後進行軌跡解算處理和推理判斷做出實時決策, 將結果輸出到顯示、控制設備, 完成對被測目標的實時監控。一個健壯的測控通信軟體必須注意下面幾個問題:
①實時性, 即在給定的時間期限(< l00ms)內必須完成定量數據的網路通信和數據處理任務。結合宿主系統的硬體特性靈活套用高效率的網路通信技術。
②可靠性, 即測控通信軟體是一個高風險系統,微小的差錯將導致災難性後果。特別要求軟體注重容錯設計, 不能有單點故障, 信號或事件的處理具有原子性。
③擴展性, 基於乙太網的測控通信軟體應符合系統的松耦合特性, 儘量使設計的程式獨立於網路規模的變化, 滿足系統配置的靈活性要求。基於 Internet 的網路通信協定有兩個 , 一個是TCP( Transfer Control Protocol, 傳輸控制協定 ) , 它是一種面向連線的協定 ; 另一個是 UDP(User DatagramProtocol, 用戶數據報協定), 它是一種面向無連線的協定。基於 TCP 協定的網路通信曾是實時測控軟體所使用的主要技術之一。然而, 它在系統的容錯和可擴展性設計方面都或多或少存在著問題, 更重要的是不能滿足測控通信軟體的實時需求。因此, 本設計採用UDP 協定,突出的好處是: 基於UDP 協定的數據傳輸速率無阻礙, 能夠儘可能地以全速傳送數據(即充分發揮物理通信設備的速度),這點在測控通信系統中尤為重要。本設計考慮到UDP 不能保證數據可靠、無差錯地傳輸, 也就是說數據在傳輸過程中有可能出現數據的丟失、差錯、篡改等, 而使對方無法接收到正確的數據, 因此, 在軟體中需要設計數據傳送機制, 以保證數據傳輸的實時性和正確性。
數據傳送定時器簡介
傳送定時器對傳送的數據進行定時計數, 它是一種減法計數器, 當計數值變為0 時, 數據仍沒有收到相應的應答, 表示傳送的數據已經超過定時範圍, 需要重發或丟棄。從常規上來說, 在傳送一個數據的同時, 需要啟動一個數據傳送定時器, 如果在定時器時限範圍內該數據被確認, 則關閉該定時器, 否則需要傳送該數據( 並且該定時器重新開始計時) 。本文結合測控通信軟體的特點, 傳送定時器採用一種新的設計方法, 它包括傳送緩衝區佇列、傳送定時器的定時算法、傳送定時器的定時值、傳送緩衝區的空間收集等四個模組。
2
數據傳送定時器的設計
(1)數據傳送緩衝區佇列
為了解決數據傳送出現問題後重新傳送數據, 創建一個傳送緩衝區來存放數據副本。傳送緩衝區佇列的記錄由五個欄位組成, 如圖1 所示, 它們分別為DevNo 欄位、Data 欄位、DataType 欄位、SendTimes 欄位和OverTime 欄位,傳送緩衝區的大小由應用程式來決定。
①DevNo 欄位:傳送數據目的終端編號。Data 欄位: 系統所要傳送的數據; DataType 欄位: 記錄當前項Data 欄位里數據的類型,用以加速與應答的匹配速度。
②SendTimes 欄位:主要用來記錄Data 欄位中的數據可重發的次數, 同時它反映了相應數據項的狀態, 數據每次重發一次, 它的值就會被減1。如果該欄位的值變為0,則表示數據無法到達目的地址,應該丟失該數據, 並向上層模組通知出錯信息; 如果該欄位為- 1,則說明該數據已經成功到達對方並得到對方的應答; 如果數據傳送逾時, 只要該欄位不為0, 即數據的重發次數沒有超過規定的次數( 如: 3 次) , 數據將被重發, 並被重新壓到佇列尾部。
③OverTime 欄位:說明該項數據距下次傳送還剩餘的時間單位數, 它是一個相對值。如果該欄位的值變為0 且SendTimes 不為0,則重發此數據。
( 2) 傳送定時器的定時算法
由於定時器的精確度要求相對比較高, 且維護頻率比較頻繁, 如果對每個數據都進行獨立的計數器管理, 則會消耗系統的大量CPU 資源, 從而影響整個測控通信系統的效率和吞吐率, 因此本測控通信系統採用相對定時的方法, 即每個數據項的實際定時時間是前面的所有項的定時時間與本身的定時時間的總和。如圖2 中最後一項,它的相對定時時間為2 個時間單位, 而它實際的定時時間為10+8+2+3+2+5+2=32個時間單位。 數據項的二元組分別表示數據的相對定時時間和數據剩餘傳送次數, 如二元組( 10, 0) 表示該數據相對的定時時間為10 個時間單元,而它的重發機會只有0 次了。也就是說,數據如果在其定時器時限範圍內不能收到應答, 就可斷定數據無法到達目的地, 將被丟棄。由於測控系統一般網路結構不是太複雜, 所以數據傳送定時時間設為固定值, 從而可知先入隊的數據肯定先逾時, 不可能出現排在佇列後面的數據比先前的數據更早地逾時。這種計算定時時間的方法, 只有佇列頭所對應數據的定時時間是絕對值, 而其他數據的定時值全是相對值, 所以無論緩衝佇列中有多少數據, 只要維護佇列頭指針所對應的數據項的定時器, 就可以完成維護所有數據定時器的任務, 從而減少了維護定時器的頻率, 減輕了系統的工作量。
(3)傳送定時器的定時值
前面提到本設計的定時值是固定的, 那么這個值應該設為多長? 這個時隔短會引起不必要的傳送, 正如Jacobson 記述的那樣,當網路已經處於飽和狀態時, 不必要的傳送會增加網路的負載, 對網路而言這就像在火上澆油一樣; 時隔長會影響測控性能。
從理論上這個問題的解決方法是根據網路性能的不斷測定, 通過一種動態的算法來不斷調整, 才能達到一種最佳效果。如TCP 通常採用的Jacobson 算法, 對於每一條連線, 它保存一個變數RTT, 存放當前到目的端往返時間最接近的估計值, 當傳送一個數據段, 同時啟動相應的定時器後, 如果時間太長就觸發重發機制。如果在定時器超過定時值之前得到了確認, TCP 測量該確認花費了多長時間( 假定為M) , 那么根據公式RTT=σRTT+(1- σ)M 來修正原有的RTT值。σ是一個推薦值為0.9 的平滑因子(Smoothing Factor) ,決定以前的RTT 值的權值(即所占比例)。但由於本測控通信系統路由器和網路流量均變化很小,同時為了減小系統的複雜度, 所以採用固定的定時值。經過測試得到數據在網路中一個往返傳輸時間的機率密度, 如圖 3, 顯然將定時值設為 40毫秒較合理, 因為在這個時間內, 絕大部分數據在網路沒有故障的情況下都能夠收到應答。研究與開發
(4)傳送定時器的定時改進算法
從上面的定時算法可以看出, 其時鐘的維護頻率為一個計時單位(1ms),這樣維護頻率顯然還是比較高。為了進一步減少定時器計數的維護頻率, 使用定製時鐘的方法, 即將佇列頭指針所對應的數據項的定時時間也改為相對值, 其值就是該項數據成為佇列頭時的時間。也就是說, 當一個數據移到佇列頭時, 就可以為其定製一個時鐘, 其時鐘的間隙即為該數據所對應的OverTime 欄位值,這個時鐘維護信息一到,佇列頭所對應數據肯定逾時, 這樣一個數據在一次傳送過程中最多只會引發一次時鐘維護, 大大降低了定時時鐘的維護頻率。設數據入佇列的時刻為Ta,當前時刻為Tn,則當前數據已經逝去的時間為Tp=Tn- Ta。因此當數據入佇列時, 操作與先前有所不同, 不能簡單根據所有的OverTime 累加值來計算自己的相對值,而必須考慮Tp值:當數據由於逾時重發而重新進入佇列時, Tn= Ta, 即Tp=0, 計算方法與改進前無變化; 當新的數據入佇列時, 則必須在改進前算法結果減去Tp值。如圖2 再壓入一個新的數據,則它的定時時間應為40- (10+8+2+3+2+5+2- Tp)=8+Tp。
當時鐘維護信息到來時, 佇列頭數據項可能出現三種不同的情況, 第一種情況如圖4 的A, 數據已經收到應答, 但為了保持定時計數的準確性, 不是從緩衝佇列中刪除, 而是將數據直接出隊, 不再保留該項數據; 第二種情況如圖4 的B, 數據沒有收到相應的代應答, 但其傳送次數沒有超過規定次數( 如3 次) , 這計時將數據出隊, 送到傳送模組對數據進行傳送, 數據
(5)傳送定時器的傳送緩衝區的空間收集
相對定時的算法有效地解決了維護多個定時器而使系統增加的系統運行壓力, 同時也帶來了一定的負面作用, 傳送緩衝區佇列是一個有限的空間, 而相對定時算法, 其定時計算與它前面的數據項有著緊密的聯繫, 因此不能隨便地增減佇列中的數據項, 否則將引起系統定時的混亂。也就是說即使某項數據已經收到了應答, 也不能馬上從佇列中刪除, 所以在某些情況下會造成嚴重的資源浪費, 甚至會導致佇列空間的不足, 無法容納更多需傳送的數據。緩衝區空間收集就是解決這個問題的, 它會在需要的情況下對緩衝區佇列的空間進行重新整理,釋放不必要的空間,以使緩衝區佇列擁有最大的可利用的空間。
整理緩衝區佇列空間最主要的整理對象就是那些已經收到應答, 但為了保持定時正確性而不得不留在緩衝區佇列中的數據項, 將它們所占用的空間釋放出來, 同時必須保證定時器的正確性。當清除一項數據時,該數據所對應的OverTime 值必須累加到下一個數據項上。佇列的倒數第二項數據原來OverTime 值為10,在空間收集時,其前一數據項的空間被收集, 則前一項的相對定時值2被累加到該項上,故OverTime=OverTime+2=12。如果緩衝區佇列中所有數據項都收到了應答, 則將緩衝佇列清空。