1. 程式人生 > >網路傳輸方式-TCP

網路傳輸方式-TCP

TCP

簡介

TCP:英文全拼(Transmission Control Protocol)簡稱傳輸控制協議,它是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議.

TCP通訊需要經過建立連線、資料傳送、終止連線三個步驟。
面向連線

TCP通訊模型中,在通訊開始之前,一定要先建立相關的連結,才能傳送資料,類似於生活中,”打電話”“

TCP 特點

面向連線

通訊雙方必須先建立連線才能進行資料的傳輸,雙方都必須為該連線分配必要的系統核心資源,以管理連線的狀態和連線上的傳輸。

雙方間的資料傳輸都可以通過這一個連線進行。

完成資料交換後,雙方必須斷開此連線,以釋放系統資源。

這種連線是一對一的,因此TCP不適用於廣播的應用程式,基於廣播的應用程式請使用UDP協議。

可靠傳輸
  1. TCP採用傳送應答機制
    TCP傳送的每個報文段都必須得到接收方的應答才認為這個TCP報文段傳輸成功

  2. 超時重傳
    傳送端發出一個報文段之後就啟動定時器,如果在定時時間內沒有收到應答就重新發送這個報文段。
    TCP為了保證不發生丟包,就給每個包一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然後接收端實體對已成功收到的包發回一個相應的確認(ACK);如果傳送端實體在合理的往返時延(RTT)內未收到確認,那麼對應的資料包就被假設為已丟失將會被進行重傳。

  3. 錯誤校驗
    由傳送端計算,然後由接收端驗證,其目的是為了檢測資料在傳送端到接收端之間是否有改動,如果接收方檢測到校驗和有差錯,則直接丟棄這個資料包。

  4. 流量控制和阻塞管理
    流量控制用來避免主機發送得過快而使接收方來不及完全收下。
TCP 優缺點

優點:

可靠,穩定
適合傳輸大量資料

缺點:

傳輸速度慢
佔用系統資源高
TCP 使用場景

當對網路通訊質量有要求的時候,比如:整個資料要準確無誤的傳遞給對方,這往往用於一些要求可靠的應用,比如HTTP、HTTPS、FTP等傳輸檔案的協議,POP、SMTP等郵件傳輸的協議。

在日常生活中,常見使用TCP協議的應用如下:

  • 瀏覽器
  • QQ檔案傳輸
UDP 網路程式流程

UDP 網路程式傳送資料不需要建立連線
udpsocket使用流程

TCP 網路程式流程

TCP 網路程式傳送資料需要建立連線
tcpsocket.png