tcp udp区别优缺点_Linux网络编程面试题--tcp和udp的区别
(1)TCP是基于連接的,UDP是基于無連接的.
(2)TCP的數(shù)據(jù)是可靠的,UDP的數(shù)據(jù)是不可靠的.
(3)TCP的數(shù)據(jù)是有序的,UDP的數(shù)據(jù)是無序的.
(4)TCP不保存用戶邊界,UDP保存用戶邊界.
(5)TCP速度較慢,UDP速度較快.
(6)TCP是重量級的開銷,UDP是輕量級的.
(7)TCP比UDP的頭大.
(8)TCP可以進(jìn)行流控,UDP不能.
(9)TCP和UDP編程模式不同.
總結(jié):
TCP是面向連接的,可靠的,緩慢的,可靠交付以及保證消息順序的協(xié)議。
UDP是無連接的,不可靠的,沒有序列保證,但是一個快速傳輸?shù)膮f(xié)議。
1.連接比較
TCP的連接流程:
UDP無連接
2.可靠性比較
TCP提供交付保證,這意味著一個使用TCP協(xié)議發(fā)送的消息是保證交付給客戶端的。如果消息在傳輸過程中丟失,那么它將重發(fā),這是由TCP協(xié)議本身控制的。UDP是不可靠的,它不提供任何交付的保證。一個數(shù)據(jù)報(bào)包在運(yùn)輸途中可能會丟失。這就是為什么UDP是不適合保證交付的項(xiàng)目.
3.有序性
除了提供交付保證,為TCP也保證了消息的有序性。該消息將以從服務(wù)器端發(fā)出的同樣的順序發(fā)送到客戶端,盡管這些消息到網(wǎng)絡(luò)的另一端時可能是無序的。TCP協(xié)議將會為你排好序。UDP不提供任何有序性或序列性的保證。數(shù)據(jù)包將以任何可能的順序到達(dá)。這就是為什么TCP是適合需要順序交付方式的應(yīng)用,盡管有基于UDP的協(xié)議通過使用序列號和重傳來提供有序和可靠性的應(yīng)用,如TIBCO Rendezvous,他實(shí)際上就是一個基于UDP的應(yīng)用。
4.數(shù)據(jù)邊界
TCP不保存數(shù)據(jù)的邊界,而UDP保證。在傳輸控制協(xié)議,數(shù)據(jù)以字節(jié)流的形式發(fā)送,并沒有明顯的標(biāo)志表明傳輸信號消息(段)的邊界。在UDP中,數(shù)據(jù)包單獨(dú)發(fā)送的,只有當(dāng)他們到達(dá)時,才會再次集成。包有明確的界限來哪些包已經(jīng)收到,這意味著在消息發(fā)送后,在接收器接口將會有一個讀操作,來生成一個完整的消息。雖然TCP也將在收集所有字節(jié)之后生成一個完整的消息,但是這些信息在傳給傳輸給接受端之前將儲存在TCP緩沖區(qū),以確保更好的使用網(wǎng)絡(luò)帶寬.
5.傳輸速度
TCP速度比較慢,而UDP速度比較快,因?yàn)門CP必須創(chuàng)建連接,以保證消息的可靠交付和有序性,他需要做比UDP多的多的事。這就是為什么UDP更適用于對速度比較敏感的應(yīng)用,例如:在線視頻媒體,電視廣播和多人在線游戲。
6.重量級&輕量級
TCP被認(rèn)為是重量級的協(xié)議,而與之相比,UDP協(xié)議則是一個輕量級的協(xié)議。因?yàn)閁DP傳輸?shù)男畔⒅胁怀袚?dān)任何間接創(chuàng)造連接,保證交貨或秩序的的信息。這也反映在用于承載元數(shù)據(jù)的頭的大小。
7.報(bào)文頭
TCP具有比UDP更大的頭。一個TCP數(shù)據(jù)包報(bào)頭的大小是20字節(jié),UDP數(shù)據(jù)報(bào)報(bào)頭是8個字節(jié)。TCP報(bào)頭中包含序列號,ACK號,數(shù)據(jù)偏移量,保留,控制位,窗口,緊急指針,可選項(xiàng),填充項(xiàng),校驗(yàn)位,源端口和目的端口。而UDP報(bào)頭只包含長度,源端口號,目的端口,和校驗(yàn)和。
8.流量控制
TCP有流量控制。在任何用戶數(shù)據(jù)可以被發(fā)送之前,TCP需要三數(shù)據(jù)包來設(shè)置一個套接字連接。TCP處理的可靠性和擁塞控制。另一方面,UDP不能進(jìn)行流量控制。
9.編程模式
需要C/C++ Linux服務(wù)器開發(fā)學(xué)習(xí)資料私信“資料”(資料包括C/C++,Linux,golang技術(shù),Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,TCP/IP,協(xié)程,DPDK,ffmpeg等),免費(fèi)分享
總結(jié)
以上是生活随笔為你收集整理的tcp udp区别优缺点_Linux网络编程面试题--tcp和udp的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: string替换_GEE数据类型—Str
- 下一篇: 线上redis一般安在linux_red