python 中的UDP和TCP(1)

月光男神發表於2018-08-30

一、TCP:

  TCP是Transmission Control Protocol的簡稱,中文名傳輸控制協議。是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議。TCP通訊需要經過建立連線、資料傳輸、終止連線三個步驟。通訊開始前,一定要先建立相關的連結,才能傳送資料。完成資料交換後,雙方必須斷開連結釋放系統資源。

  TCP優點:

    1、TCP採用傳送應答機制

      TCP傳送的每個報文段都必須得到接收方的應答才認為這個TCP報文段傳輸成功

    2、超時重傳

      傳送端傳送一個報文段後就啟動定時器,如果在定時時間內沒有收到應答就重新傳送這個報文段。TCP為了保證不發生丟包,就給每個包一個序號,同時序號也保證了

    接收端實體包的按序接收。然後接收端實體對已成功收到的包發回確認;傳送端實體在合理返回時延內未收到確認,那麼對於的資料包就會被假設丟失,將會被進行重傳。

    3、錯誤校驗

      TCP用一個校驗和函式來檢驗資料是否有錯誤;在傳送和接收時都要計算校驗和

    4、流量控制和阻塞管理

      流量控制用來避免主機傳送得過快而使接收方來不及完全收下

二、UDP

   UDP是User Datagram Protocol的簡稱,中文名是使用者資料包協議,是一種簡單的面向資料表的運輸層協議,在網路中用於處理資料包,是一種無連線的協議。UDP不提供可靠連線,只負責把應用程式傳給IP層的資料包傳送出去,並不能保證它們能達到目的地。由於UDP傳輸資料包前不用在使用者和伺服器之間搭建一個連線,且沒有重發機制,故而傳輸速度快。

 

三、TCP和UDP區別

  1、基於連線與無連線

  2、TCP要求系統資源較多,UDP比較少

  3、UDP程式結構較簡單

  4、TCP:流模式;UDP:資料包模式

  5、TCP保證資料正確性,UDP可能丟包

  6、TCP保證資料順序,UDP不保證

  7、TCP首部開銷20位元組,UDP只有8個位元組

  8、每一條TCP連線只能是點對點的;UDP支援一對一,一對多,多對一和多對多

下一章寫pythonTCP、UDP程式碼實現  

相關文章