1、UDP 和 TCP 的特點與區別
用戶數據報協議 UDP(User Datagram Protocol)
是無連接的,盡最大可能交付,沒有擁塞控制,面向報文(對於應用程序傳下來的報文不合並也不拆分,只是添加 UDP 首部),支持一對一、一對多、多對一和多對多的交互通信。
傳輸控制協議 TCP(Transmission Control Protocol)
是面向連接的,提供可靠交付,有流量控制,擁塞控制,提供全雙工通信,面向字節流(把應用層傳下來的報文看成字節流,把字節流組織成大小不等的數據塊),每一條 TCP 連接只能是點對點的(一對一)。
TCP協議的主要特點
(1)TCP是面向連接的運輸層協議;
(2)每一條TCP連接只能有兩個端點(即兩個套接字),只能是點對點的;
(3)TCP提供可靠的傳輸服務。傳送的數據無差錯、不丟失、不重復、按序到達;
(4)TCP提供全雙工通信。允許通信雙方的應用進程在任何時候都可以發送數據,因為兩端都設有發送緩存和接受緩存;
(5)面向字節流。雖然應用程序與TCP交互是一次一個大小不等的數據塊,但TCP把這些數據看成一連串無結構的字節流,它不保證接收方收到的數據塊和發送方發送的數據塊具有對應大小關系,例如,發送方應用程序交給發送方的TCP10個數據塊,但就受訪的TCP可能只用了4個數據塊久保收到的字節流交付給上層的應用程序,但字節流完全一樣。
TCP的可靠性原理
可靠傳輸有如下兩個特點:
a.傳輸信道無差錯,保證傳輸數據正確;
b.不管發送方以多快的速度發送數據,接收方總是來得及處理收到的數據;
(1)首先,采用三次握手來建立TCP連接,四次握手來釋放TCP連接,從而保證建立的傳輸信道是可靠的。
(2)其次,TCP采用了連續ARQ協議(回退N,Go-back-N;超時自動重傳)來保證數據傳輸的正確性,使用滑動窗口協議來保證接方能夠及時處理所接收到的數據,進行流量控制。
(3)最后,TCP使用慢開始、擁塞避免、快重傳和快恢復來進行擁塞控制,避免網絡擁塞。
UDP協議特點
(1)UDP是無連接的傳輸層協議;
(2)UDP使用盡最大努力交付,不保證可靠交付;
(3)UDP是面向報文的,對應用層交下來的報文,不合並,不拆分,保留原報文的邊界;
(4)UDP沒有擁塞控制,因此即使網絡出現擁塞也不會降低發送速率;
(5)UDP支持一對一 一對多 多對多的交互通信;
(6)UDP的首部開銷小,只有8字節.
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首部較長20字節,UDP首部較短8字節;
基於TCP和UDP的常用協議
HTTP、HTTPS、FTP、TELNET、SMTP(簡單郵件傳輸協議)協議基於可靠的TCP協議。TFTP、DNS、DHCP、TFTP、SNMP(簡單網絡管理協議)、RIP基於不可靠的UDP協議
常見協議的端口號
FTP的20、21端口,21端口用來偵聽用戶的連接請求,而20端口用來傳送用戶的文件數據。
TELNET 23
SMTP 25
DNS 53
TFTP 69
HTTP 80
SNMP的161、162端口。SNMP的161端口用於SNMP管理進程獲取SNMP代理的數據,而162端口用於SNMP代理主動向SNMP管理進程發送數據
