TCP UDP協議詳解

2021-05-23 14:22:32 字數 1425 閱讀 9510

tcp 和udp 之前,我們需要來了解倆個概念,面向連線的

tcp (傳輸控制協議)和udp (擁護資料報協議)是傳輸層的倆個傳輸協議,它們倆個的最大區別就是是否面向連線。

tcp 包括了面向連線和可靠資料傳輸服務,在客戶端和伺服器端進行通訊前,要先交換傳輸層控制資訊,為雙方的通訊做好準備。在這個握手階段後,我們就可以認為在這倆個程序間存在乙個tcp 連線,且是乙個全雙工的連線,在訊息傳送完後,應用程式會告訴tcp 拆除這個連線。可靠的傳輸服務為了保障彼此通訊能無差錯地順序傳遞所有資料。

說了這麼多,tcp 能提供的好的服務,再看一下其缺點吧,首先,tcp 不保證最小傳輸率,通俗點說,tcp 不允許傳送程序以想要的速率傳送資料,受到tcp 擁塞控制的調節,傳送程序有可能被迫以乙個較低的平均速率傳送。其次,tcp 不提供任何延時保障,具體點說,傳送程序把資料傳入自己的tcp 套接字後,這個資料將最終到達其接受套接字,但是中間所經歷的時間就不能保證了 ,花幾秒或則幾分鐘都不一定。

udp 是乙個非面向連線的輕量級傳輸協議,具有乙個最簡單的服務模型。udp 是無連線的,因此兩個程序彼此通訊之前沒有握手過程。udp 提供不可靠的資料傳輸服務,也就是說當乙個程序往自己套接字傳送乙個訊息時,udp 不能保障這個訊息回最終到達接受套接字。另外,就確實到達接收套節字的訊息而言,他們的到達順序也可能不是有序的。

udp 不含擁塞控制機制,因此傳送程序能夠以任意速率往udp 套接字傳送資料,儘管不能保證所有資料都到達接收套接字,但是會有相當比列的資料到達。實時應用程式的開發人員往往選擇在udp 上執行他們的應用。與tcp 類似,udp 也不提供任何延遲保證。

說了這麼多,我們可以通過下表來體會一下上面說的真正含義。應 用

應用層協議

用來支撐的傳輸協議

電子郵件

smtp

(rfc82 )

tcp

遠端終端訪問

檔案傳送

ftptcp

遠端檔案伺服器

nfstcp 或

udp

流多** 專屬

udp 或

tcp

網際網路** 專屬

一般為udp

在表中我們看到,電子郵件,遠端終端訪問,web和檔案傳送都使用tcp 協議,這些應用選擇tcp 的主要原因是在於tcp 提供了可靠的資料傳輸服務,能夠保證所有資料最終到達其目的地。我們還看到,網際網路**一般執行在udp 協議上面,乙個網際網路**應用的倆端都得以某個最小速率跨越網路傳送資料;另外,網際網路**可以容忍資料丟失,從這個倆個條件來看,都適合udp ,不需要可靠的tcp 傳輸服務。

總的來說,tcp 能保證傳遞全部資料,而udp 不能,且他們都不提供延遲保證。他們不提供延遲保證,並不意味著時間敏感的應用不能執行在現在的網際網路上,而是應用是通過一些其他的方法來保證這些需要。

TCP UDP協議詳解

tcp udp協議詳解 tcp 傳輸控制協議 和udp 擁護資料報協議 是傳輸層的倆個傳輸協議,它們倆個的最大區別就是是否面向連線。tcp包括了面向連線和可靠資料傳輸服務,在客戶端和伺服器端進行通訊前,要先交換傳輸層控制資訊,為雙方的通訊做好準備。在這個握手階段後,我們就可以認為在這倆個程序間存在乙...

TCP UDP協議詳解

在了解 tcp和 udp之前,我們需要來了解倆個概念,面向連線的服務和無連線的服務,應用面向連線的服務時,客戶 和伺服器在進行資料傳送前,彼此向對方傳送控制分組,這就是所謂的握手過程,使得客戶和伺服器都做好分組 交換準備。這個準備是很鬆散的,面向連線服務與很多其他的服務 在一起,包括可靠的資料傳輸,...

TCP UDP 協議 HTTP協議

http 是用於www瀏覽的乙個協議。tcp 是機器之間建立連線用的到的乙個協議。http是超文字傳輸協議,是客戶端瀏覽器或其他程式與web伺服器之間的應用層通訊協議。在internet上的web伺服器上存放的都是超文字資訊,客戶機需要通過http協議傳輸所要訪問的超文字資訊。http包含命令和傳輸...