網路溝通中運輸層提供給應用層的服務


運輸層可提供的服務

透過Socket,應用程式的processes才能在網路互相溝通,在socket背後,提供溝通服務的是運輸層。運輸層協議不只一種,在process透過socket溝通時須選擇好所使用的協議。不同運輸層協議可以提供的服務的能力不同,一般我們會關注以下幾點:

Reliable Data Transfer: 資料能夠完整地被送到

一般網頁,傳輸檔案等,資料是不可遺失。但若是多媒體服務,則可以忍受部分資料的遺失。

Throughput: 資料的傳輸速度

比如進行網路通話時,應用程式處理聲音的速度是 X kbps,那麼傳輸層提供的傳輸速度應當在 X kbps以上。而收發郵件、瀏覽網頁等不需嚴格的要求。

Timing: 資料送達的時間

再以網路通話為例子,若聲音送到對方的延遲愈大,通話品質愈低,因此較低時間延遲送達的傳輸層服務較吸引通話程式等使用。

Security: 資料透過加密傳輸

傳輸隱私資料時,會希望資料不被傳輸過程中的第三方輕意解析,因此透過加密服務可以保護重要的資料來增加安全性。

TCP以及UDP

現在,我們常使用的網路傳輸層的協議有 Transmission Control Protocol(TCP)以及 User Datagram Protocol(UDP)。

TCP服務

TCP主要提供的服務有:

  • Connection-oriented service: 在應用層開始傳輸資料前,透過handshaking流程達到server及client的socket間TCP連線狀態。TCP連線是full-duplex,意思是server及client可以同時傳遞訊息。
  • Reliable data transfer service: 資料可以保證被送到,不會遺失。

UDP服務

UDP是個輕量級協議,不像TCP有連線狀態,也不保證資料能完整送達。雖然提供的服務少,但是也因此很適合多媒體服務,試想透過TCP,等待影片完整傳輸一個片段時才播放,在網路傳輸環境差的地方時可能會播放的斷斷續續。

網路運輸層沒有提供所有的服務

顯然地,運輸層協議不一定都有提供Reliable Data Transfer、Throughput、Timing以及Security。那會不會有甚麼危害呢?若需要Reliable Data Transfer,我們可以使用TCP。現在網路的設計及體驗,Throughput、Timing不是主要問題也因此可以不用從運輸層服務來滿足。至於Security,透過可在應用層實施的Transport Layer Security (TLS)服務,資料可以加密再傳輸,送到對方後再由對方的TLS解密。OSI七層模型中,TLS常被歸類在L7與L4之間。


See also