複製鏈接
請複製以下鏈接發送給好友

數據發送

鎖定
數據發送系統已廣泛應用於工業控制等各個領域,如何提高採集軟件的穩定性和數據發送效率成為一個技術難點。傳輸控制協議 ( TCP)是 Internet 中使用最廣泛的傳輸層協議。常見應用如 HTTP、FTP、BitTorrent 等都使用它來傳輸數據。在傳輸過程中 , 數據發送受到不止一種因素的限制 ,比如發送方、接收方和網絡。數據發送定時器對發送的數據進行定時計數, 它是一種減法計數器, 當計數值變為 0 時, 數據仍沒有收到相應的應答, 表示發送的數據已經超過定時範圍, 需要重發或丟棄。
中文名
數據發送
外文名
Data Send
拼    音
shù jùfā sòng
所屬類別
科學技術
應用領域
各行各業
作    用
發送數據

數據發送數據發送限制因素

傳輸控制協議( 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協議為避免網絡擁塞而用來限制飛行字節數的窗口。 擁塞窗口隨時間動態變化,在沒有丟包的時候,擁塞窗口隨時間不斷增長。因此,當飛行字節數受該因素限制時,它會隨時間不斷增長。
由上面的分析可知,當飛行字節數受不同因素限制時,其變化規律是不一樣的。因此,通過分析飛行字節數的變化規律可以確定它的限制因素。 [1] 

數據發送數據發送點的選擇方法

TD - SCDMA系統中的切換是為保證移動用户通信的連續性或者基於網絡負載和操作維護等原因,將用户從當前的通信鏈路轉移到其他小區的過程。切換過程的優化設計對於任何一個蜂窩通信系統都十分重要。因為從網絡效率的角度出發,當用户終端處於不適合的服務小區進行通信時,不僅會影響通信質量,同時也將增加整個網絡的負荷,甚至造成干擾。移動用户應當使用網絡中最優化的通信鏈路與相應的基站建立連接。
在第一代模擬系統和第二代 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 開始發送下行用户數據,並在無下行用户數據時發送特殊突發。 [2] 

數據發送數據發送器設計

隨着平板顯示系統分辨率的提高, 顯示模式為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 管實現,節省了芯片面積。在TTT(3.3V ,50℃,TT CMOS 模型)情況下用HSPICE 得到的仿真結果表明,產生的7 相時鐘間隔均勻,相位震顫噪聲小。
2.並-串轉換器
並排的7 個功能塊是數據選擇單元, 由二級D觸發器構成。它們的使能端分別接由電荷泵鎖相環產生的7 相時鐘。數據選擇單元的另外兩個輸入端接兩相同步時鐘, 確保相鄰並行數據在串行化時數據時序歪斜最小。並行數據在多相時鐘的作用下,經數據選擇單元轉換為串行數據後, 經雙端變單端的緩衝器, 將串行數據波形整型, 整型後的波形作為低壓差分電流模驅動器的輸入。
3.低壓差分電流模驅動器
主要由電流切換開關,壓控電流源, PVT自適應偏置構成。串行CMOS級數據經兩路倒相緩衝器變為互補信號, 用以控制電流切換開關, 改變輸出電流的方向, 輸出電流在傳輸線端電阻產生所需的電壓。輸出電流典型值約為3.5mA ,跨接在傳輸線對上的端電阻典型值為100Ψ,因此輸出的差分信號為350mV 。為了保證輸出信號的電壓擺幅在各種PVT 情況下保持恆定,驅動器的偏置採用反饋環路動態調節壓控電流源的電流大小。 設偏置電路晶體管尺寸及電阻大小與對應的驅動器電流通路上的晶體管尺寸及電阻大小完全匹配, 兩個運放的負向端分別接由參考源產生的恆定電壓, 這兩個電壓的大小設定了驅動器輸出電壓所需的高低電平。 兩個運放的正向輸入端分別接在與傳輸線端電阻相匹配的外接電阻的兩端, 輸出端電壓作為兩個壓控電流源的控制電壓, 運放輸入的虛地效應使得正、負向端的電平在反饋環路平衡態時相等。 由於偏置電路與驅動器電流通路完全匹配, 因此, 傳輸線端電阻的電壓及電流與偏置電路外接電阻上的電壓及電流分別相等。 外接電阻及傳輸線端電阻可以調節, 以匹配傳輸線特徵阻抗的變化, 減小輸出信號的反射。當PVT 的波動引起外接電阻兩端的電壓發生變化時, 偏置電路的負反饋機制會動態調節該變化, 使外接電阻兩端的電壓與參考源產生的電壓動態相等。因此, 傳輸線端電阻上電壓及電流在PVT 發生變化時仍能 [3] 

數據發送數據發送定時器

測控通信軟件是測控系統的核心與控制中樞, 其任務是以時間為基準, 由通信傳輸系統實時獲取各測量設備對目標的測量數據, 經過合理性選擇、誤差修正後進行軌跡解算處理和推理判斷做出實時決策, 將結果輸出到顯示、控制設備, 完成對被測目標的實時監控。一個健壯的測控通信軟件必須注意下面幾個問題:
①實時性, 即在給定的時間期限(< l00ms)內必須完成定量數據的網絡通信和數據處理任務。結合宿主系統的硬件特性靈活應用高效率的網絡通信技術。
②可靠性, 即測控通信軟件是一個高風險系統,微小的差錯將導致災難性後果。特別要求軟件注重容錯設計, 不能有單點故障, 信號或事件的處理具有原子性。
③擴展性, 基於以太網的測控通信軟件應符合系統的松耦合特性, 儘量使設計的程序獨立於網絡規模的變化, 滿足系統配置的靈活性要求。基於 Internet 的網絡通信協議有兩個 , 一個是TCP( Transfer Control Protocol, 傳輸控制協議 ) , 它是一種面向連接的協議 ; 另一個是 UDP(User DatagramProtocol, 用户數據報協議), 它是一種面向無連接的協議。基於 TCP 協議的網絡通信曾是實時測控軟件所使用的主要技術之一。然而, 它在系統的容錯和可擴展性設計方面都或多或少存在着問題, 更重要的是不能滿足測控通信軟件的實時需求。因此, 本設計採用UDP 協議,突出的好處是: 基於UDP 協議的數據傳輸速率無阻礙, 能夠儘可能地以全速發送數據(即充分發揮物理通信設備的速度),這點在測控通信系統中尤為重要。本設計考慮到UDP 不能保證數據可靠、無差錯地傳輸, 也就是説數據在傳輸過程中有可能出現數據的丟失、差錯、篡改等, 而使對方無法接收到正確的數據, 因此, 在軟件中需要設計數據發送機制, 以保證數據傳輸的實時性和正確性。

數據發送數據發送定時器簡介

發送定時器對發送的數據進行定時計數, 它是一種減法計數器, 當計數值變為0 時, 數據仍沒有收到相應的應答, 表示發送的數據已經超過定時範圍, 需要重發或丟棄。從常規上來説, 在發送一個數據的同時, 需要啓動一個數據發送定時器, 如果在定時器時限範圍內該數據被確認, 則關閉該定時器, 否則需要發送該數據( 並且該定時器重新開始計時) 。本文結合測控通信軟件的特點, 發送定時器採用一種新的設計方法, 它包括髮送緩衝區隊列、發送定時器的定時算法、發送定時器的定時值、發送緩衝區的空間收集等四個模塊。
2

數據發送數據發送定時器的設計

(1)數據發送緩衝區隊列
為了解決數據發送出現問題後重新發送數據, 創建一個發送緩衝區來存放數據副本。發送緩衝區隊列的記錄由五個字段組成,它們分別為DevNo 字段、Data 字段、DataType 字段、SendTimes 字段和OverTime 字段,發送緩衝區的大小由應用程序來決定。
①DevNo 字段:發送數據目的終端編號。Data 字段: 系統所要發送的數據; DataType 字段: 記錄當前項Data 字段裏數據的類型,用以加速與應答的匹配速度。
②SendTimes 字段:主要用來記錄Data 字段中的數據可重發的次數, 同時它反映了相應數據項的狀態, 數據每次重發一次, 它的值就會被減1。如果該字段的值變為0,則表示數據無法到達目的地址,應該丟失該數據, 並向上層模塊通知出錯信息; 如果該字段為- 1,則説明該數據已經成功到達對方並得到對方的應答; 如果數據發送超時, 只要該字段不為0, 即數據的重發次數沒有超過規定的次數( 如: 3 次) , 數據將被重發, 並被重新壓到隊列尾部。
③OverTime 字段:説明該項數據距下次發送還剩餘的時間單位數, 它是一個相對值。如果該字段的值變為0 且SendTimes 不為0,則重發此數據。
( 2) 發送定時器的定時算法
由於定時器的精確度要求相對比較高, 且維護頻率比較頻繁, 如果對每個數據都進行獨立的計數器管理, 則會消耗系統的大量CPU 資源, 從而影響整個測控通信系統的效率和吞吐率, 因此本測控通信系統採用相對定時的方法, 即每個數據項的實際定時時間是前面的所有項的定時時間與本身的定時時間的總和。它的相對定時時間為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 值的權值(即所佔比例)。但由於本測控通信系統路由器和網絡流量均變化很小,同時為了減小系統的複雜度, 所以採用固定的定時值。經過測試得到數據在網絡中一個往返傳輸時間的概率密度, 顯然將定時值設為 40毫秒較合理, 因為在這個時間內, 絕大部分數據在網絡沒有故障的情況下都能夠收到應答。研究與開發
(4)發送定時器的定時改進算法
從上面的定時算法可以看出, 其時鐘的維護頻率為一個計時單位(1ms),這樣維護頻率顯然還是比較高。為了進一步減少定時器計數的維護頻率, 使用定製時鐘的方法, 即將隊列頭指針所對應的數據項的定時時間也改為相對值, 其值就是該項數據成為隊列頭時的時間。也就是説, 當一個數據移到隊列頭時, 就可以為其定製一個時鐘, 其時鐘的間隙即為該數據所對應的OverTime 字段值,這個時鐘維護信息一到,隊列頭所對應數據肯定超時, 這樣一個數據在一次發送過程中最多隻會引發一次時鐘維護, 大大降低了定時時鐘的維護頻率。設數據入隊列的時刻為Ta,當前時刻為Tn,則當前數據已經逝去的時間為Tp=Tn- Ta。因此當數據入隊列時, 操作與先前有所不同, 不能簡單根據所有的OverTime 累加值來計算自己的相對值,而必須考慮Tp值:當數據由於超時重發而重新進入隊列時, Tn= Ta, 即Tp=0, 計算方法與改進前無變化; 當新的數據入隊列時, 則必須在改進前算法結果減去Tp值。再壓入一個新的數據,則它的定時時間應為40- (10+8+2+3+2+5+2- Tp)=8+Tp
當時鍾維護信息到來時, 隊列頭數據項可能出現三種不同的情況, 第一種情況:數據已經收到應答, 但為了保持定時計數的準確性, 不是從緩衝隊列中刪除, 而是將數據直接出隊, 不再保留該項數據; 第二種情況:數據沒有收到相應的應答, 但其發送次數沒有超過規定次數( 如3 次) , 這計時將數據出隊, 送到發送模塊對數據進行發送, 數據
(5)發送定時器的發送緩衝區的空間收集
相對定時的算法有效地解決了維護多個定時器而使系統增加的系統運行壓力, 同時也帶來了一定的負面作用, 發送緩衝區隊列是一個有限的空間, 而相對定時算法, 其定時計算與它前面的數據項有着緊密的聯繫, 因此不能隨便地增減隊列中的數據項, 否則將引起系統定時的混亂。也就是説即使某項數據已經收到了應答, 也不能馬上從隊列中刪除, 所以在某些情況下會造成嚴重的資源浪費, 甚至會導致隊列空間的不足, 無法容納更多需發送的數據。緩衝區空間收集就是解決這個問題的, 它會在需要的情況下對緩衝區隊列的空間進行重新整理,釋放不必要的空間,以使緩衝區隊列擁有最大的可利用的空間。
整理緩衝區隊列空間最主要的整理對象就是那些已經收到應答, 但為了保持定時正確性而不得不留在緩衝區隊列中的數據項, 將它們所佔用的空間釋放出來, 同時必須保證定時器的正確性。當清除一項數據時,該數據所對應的OverTime 值必須累加到下一個數據項上。隊列的倒數第二項數據原來OverTime 值為10,在空間收集時,其前一數據項的空間被收集, 則前一項的相對定時值2被累加到該項上,故OverTime=OverTime+2=12。如果緩衝區隊列中所有數據項都收到了應答, 則將緩衝隊列清空。 [4] 
參考資料