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