衛星網路中使用tcp協議的劣勢
為了避免產生網路擁塞,原tcp協議綜合採用了慢啟動、擁塞避免、快速重傳以及快速恢復等演算法。但這些演算法應用的前提是網路發生擁塞造成丟包,然而在誤位元速率相對較高的衛星通訊系統中,部分丟包是由誤碼造成的,tcp協議對此不能區分,從而造成tcp傳輸效能的惡化。
1、 大傳播延時
(1)頻寬時延積頻寬x時延bdp決定了一條tcp連線所能在「空中傳輸」的報文總量,其中時延是rtt(傳送方傳送書包的往返時延)。然而在大bdp的衛星通訊系統中,tcp吞吐量受滑動視窗大小的限制,在不考慮丟包的情況下,tcp的吞吐量可大致由下式得出:
最大吞吐量 = 滑動視窗的大小 / rtt
tcp中最大滑動視窗大小為 64kbytes, geo衛星(地球靜止軌道衛星)的rtt為550ms左右,從而tcp在geo衛星通訊系統中的最大吞吐量為 128kbytes/s = 1.024mbit/s
(2)慢啟動和擁塞避免機制在大延時衛星網路中效能也很差(實驗結果)
(3)快速重傳和快速恢復在衛星鏈路中受長延時的影響,重複確認資訊的多次傳輸會造成衛星資源的浪費
2、誤位元速率
通道誤位元速率高造成丟包 會干擾tcp的擁塞控制(主要針對網路擁塞丟包),從而大大降低傳輸速率
3、 通道不對稱
衛星通訊系統前向鏈路和反向鏈路不對稱,反向鏈路受限造成應答延時或丟包,進而造成前向鏈路傳送阻塞、慢啟動緩慢,避免重傳的快速重傳機制的有效性下降。
網路程式設計 TCP協議使用1
網路的基礎概念 tcp程式設計就像乙個手機,整個過程可以模擬打 的過程,tcp服務端和客戶端首先都要建立套接字,相當於在運營商那裡辦理sim卡,你有卡才能打 tcp服務端,bind就是將服務端的手機號公開,讓別人知道,這樣別人就能給服務端打 了,listen是設定未完成3次握手佇列和已完成3次握手佇...
JAVA中使用TCP協議程式設計模擬C S模式
一 程式設計的基本思想 1 構建乙個伺服器和乙個客戶端,伺服器物件使用serversocket類進行宣告,在構建的同時需要給應用程式分配埠號 客戶端物件使用socket類進行宣告,在宣告客戶端物件時需要輸入伺服器的主機名或ip位址,以及埠號。2 當連線建立之後,伺服器將要傳送的資訊輸入到i o流中,...
基於tcp的網路程式設計協議分析
在本地電腦的虛擬機器上搭建乙個tcp伺服器,如下 include include include include include include include include define buffer size 128 int main int argc,char ar if argc 3 if...