一、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程式碼實現