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
遠端終端訪問
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包含命令和傳輸...