運輸層協議概述

Heliooo發表於2019-06-28


你如何收到好友的QQ訊息?
  你有沒有想過這個問題,當你和朋友使用QQ進行聊天的時候,你的訊息是如何傳送到好友的手機或者電腦上去的呢?


  在解決這個問題之前不妨先思考一下另一個問題。有一天遠方的朋友給你寫了一封信,快遞員收到信件之後要把信件送到你的手中。首先他要做的是根據信件上的地址資訊找到你家所在的那一棟樓 ,找到你家所在的那一棟樓之後,快遞員會再根據你家的門牌號才能把信件送到你的手中。
  同理,QQ上的訊息要從好友哪裡傳送到你這裡。第一步是要做的是要找到你的手機或者電腦在網路中的地址(IP地址),找到你的裝置在網路中的地址之後,你的裝置中同時開啟了許多其他的網路應用,訊息仍然不知道傳送到你的手機的哪個位置,為了把資訊準確的送到QQ上而不是其他的應用上,必須使用埠號來區別裝置上各種不同的網路的應用,至此訊息就可以從好友QQ上準確的傳送到你的QQ上了。

什麼是網路協議?
  首先讓我們看一段解釋:

> 一個協議定義了在兩個或多個通訊實體之間交換的報文格式和次序,以及報文傳送和/或接收一條報文或其他事件所採取的動作。

  咋看這個解釋,可能是一頭霧水。我們通過一個類比來解釋一下。假如你忘記帶手錶了,這時你想向一個陌生人詢問現在的時間,首先你要的做的是和陌生人打招呼(傳送報文)。如果陌生人迴應了你(接收一條報文後採取的動作),你才能繼續向她問時間。如果陌生人不會說中文,那麼你們就不能進行後繼的交流了。這是一個簡單的人類之間進行交流的協議。

  同理在計算機網路中,兩個進行通訊的裝置也應該遵循相同的網路通訊協議才能進行通訊。
    

因特網運輸層概述
  運輸層位於網路層之上應用層之下,該層為執行在不同主機上的<font color = orange>應用程式提供直接的通訊服務起著至關重要的作用。如果不同主機之間的應用程式要進行直接通訊的話,唯一的方法是使用應用層的協議。
  運輸層上使用的協議主要有兩種:UDP、TCP。下表展示處了兩種協議分別會在什麼應用中會被使用到。可以看出TCP協議通常被使用到對資料丟失不能忍受的應用上,如電子郵件、即時通訊,因為TCP協議在傳輸資料的過程中不會造成資料的丟失。而UDP協議在傳輸的過程中會有些許的資料丟失,所以它通常會被應用到語音電話、視訊電話等對資料丟失可以忍受的應用上。

應用 應用層協議 下面的運輸協議
電子郵件  SMTP TCP
遠端終端訪問 Telnet TCP
Web HTTP TCP
檔案運輸 FTP TCP
遠端檔案伺服器 NFS 通常UDP
流式多媒體 通常專用2 UDP或TCP
因特網電話 通常專用 UDP或TCP


無連線運輸:UDP

  •  擁塞控制: 採用UDP時,只要應用程式將資料傳輸給UDP,UDP就會將此資料打包進報文段並立即將其傳遞給網路層,傳送給遠端主機。
  • 連線管理: UDP不需要任何準備即可進行資料傳輸,所以也不用維護連線狀態。
  • 分組首部: UDP報文段的首部開銷只有8位元組。

面向連線的運輸:TCP

  • 擁塞控制: 採用TCP時,協議會使用一定的擁塞控制演算法,這樣才能保證資料在傳輸的過程中不會丟失,使得傳送的資料正確而且完整的被遠端主機接收到。
  • 連線管理: TCP在與遠端主機進行通訊之前要經過三次握手,而且在通訊過程中也要維護與遠端主機之間的連線狀態。
  • 分組首部: TCP報文段的首部開銷有20個位元組。

相關文章