isp TCP和UDP傳輸速度為什么UDP要快?
TCP和UDP傳輸速度為什么UDP要快?與TCP相比,UDP缺少可靠的丟包重傳機制,所以它可以立即返回,所以你覺得它很快UDP不在乎傳輸后,但是在IP層,它的效率幾乎和TCP一樣為什么TCP慢?只是因
TCP和UDP傳輸速度為什么UDP要快?
與TCP相比,UDP缺少可靠的丟包重傳機制,所以它可以立即返回,所以你覺得它很快
UDP不在乎傳輸后,但是在IP層,它的效率幾乎和TCP一樣
為什么TCP慢?只是因為你需要發(fā)送一個確認循環(huán),所以速度很慢
現(xiàn)在你喜歡用UDP代替TCP的主要原因是TCP的重傳機制不完善,等待時間不合理,響應速度往往很慢
UDP的主要問題是丟包。如果您的API層協(xié)議規(guī)定部分數(shù)據(jù)可能丟失,那么UDP的響應速度將是最佳選擇
同樣,如果它規(guī)定絕對不允許丟包,那么您需要自己在API或引擎中處理UDP的可靠傳輸
在一般測試下,在相對可靠的環(huán)境下,UDP的丟包率很低,所以即使采用確認方式,傳輸速度也很快
但是如果在互聯(lián)網(wǎng)上,比如電信到CNC線路,丟包率很高,效率會嚴重降低,而且CPU開銷會急劇增加[主要是由于確認機制]
為什么TCP比UDP傳輸速度慢?
與TCP相比,UDP缺少可靠的丟包重傳機制,因此可以立即返回。所以你認為快速UDP屬于傳輸之后的任何一種。但在IP層上,其效率幾乎與TCP相當。為什么TCP慢?正是因為需要發(fā)送確認這樣一個循環(huán)過程,所以速度很慢?,F(xiàn)在我喜歡用UDP代替TCP的主要原因是TCP的重傳機制不完善,等待時間不合理,響應速度慢。UDP的主要問題是丟包。如果您的API層協(xié)議規(guī)定某些數(shù)據(jù)可能丟失,那么UDP的響應速度將是最佳選擇。同樣,如果它規(guī)定絕對不允許丟包,那么您需要負責在API或引擎中可靠地傳輸UDP。一般測試下,相對測試下,如果在可靠的環(huán)境下不允許丟包,UDP的丟包率很低,所以即使采用確認方式傳輸,速度也很快。但是,如果互聯(lián)網(wǎng)上的丟包率很高,比如電信到CNC線路,效率會嚴重降低,而且CPU開銷會急劇增加[主要是由于確認機的引導]
如何提高用UDP傳輸文件的速度?
最好的套接字編程方法是將整個數(shù)據(jù)長度放在頭的前四個字節(jié),然后是消息類型的四個字節(jié),列號的四個字節(jié),==和內(nèi)容。也就是說,消息頭的長度是固定的,而內(nèi)容部分是可變的。如果每次傳輸?shù)臄?shù)據(jù)大小超過單個傳輸?shù)臄?shù)據(jù)大小,則數(shù)據(jù)將以包的形式發(fā)送。在接收端,還需要進行分組處理。包也基于數(shù)據(jù)長度