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