網絡通訊TCP/UDP - 邱乘屹的個人技術博客

TCP/IP 四層模型

說到網絡通信 就要談一談耳熟能詳的TCP/IP 四層模型了
在這裏插入圖片描述

  1. 鏈路層(數據鏈路層/網絡接口層):包括操作系統中的設備驅動程序、計算機中對應的網絡接口卡
  2. 網絡層(互聯網層):處理分組在網絡中的活動,比如分組的選路。
  3. 傳輸層:主要爲兩臺主機上的應用提供端到端的通信。
  4. 應用層:負責處理特定的應用程序細節。

HTTP協議-瀏覽器訪問服務器的過程

在這裏插入圖片描述
http協議又稱超文本傳輸協議(HyperText Transfer Protocol)是一種應用層協議。

HTTP是萬維網的數據通信的基礎。設計HTTP最初的目的是爲了提供一種發佈和接收HTML頁面<網頁>的方法。

1989年蒂姆·伯納斯-李在CERN研發

1999年公佈現今廣泛使用的HTTP 1.1版(RFC2616)

TCP協議

TCP協議,傳輸控制協議(英語:Transmission Control Protocol,縮寫爲 TCP)是一種面向連接的、可靠的、基於字節流的傳輸層通信協議,由IETF的RFC 793定義。

TCP通信需要經過創建連接、數據傳送、終止連接三個步驟。

TCP通信模型中,在通信開始之前,一定要先建立相關的連接,才能發送數據,類似於生活中,“打電話”。

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

TCP協議負責在兩臺計算機之間建立可靠連接,保證數據包按順序到達。TCP協議會通過握手建立連接,然後,對每個IP包編號,確保對方按順序收到,如果包丟掉了,就自動重發。許多常用的更高級的協議都是建立在TCP協議基礎上的,比如用於瀏覽器的HTTP協議、發送郵件的SMTP協議等。
一個TCP報文除了包含要傳輸的數據外,還包含源IP地址和目標IP地址,源端口號和目標端口號。

TCP通訊模型

在這裏插入圖片描述

TCP的三次握手四次揮手

TCP的三次握手(建立連接)和四次揮手(關閉連接)
TCP(Transmission Control Protocol) 傳輸控制協議
三次握手
TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務,採用三次握手確認建立一個連接:
位碼即tcp標誌位,
有6種標示:
SYN(synchronous建立聯機)
ACK(acknowledgement 確認)
PSH(push傳送)
FIN(finish結束)
RST(reset重置)
URG(urgent緊急)
在這裏插入圖片描述

UDP協議

用戶數據報協議(User Datagram Protocol,UDP)是一種傳輸層協議。在 TCP/IP 網絡中,它與 TCP 協議一樣用於處理數據包,是一種無連接的協議。

TCP 協議在進行數據傳輸時,需要建立連接,並且每次傳輸的數據都需要進行確認。當不再進行傳輸數據時,還需要斷開連接。這樣做雖然安全,但是效率較低。而 UDP 協議正好避免了這些過程,它是一種沒有複雜控制,提供面向無連接的通信服務協議。

udp 發送數據

創建一個基於udp的網絡程序流程很簡單,具體步驟如下:

  1. 創建客戶端套接字
  2. 發送/接收數據
  3. 關閉套接字
    在這裏插入圖片描述

TCP和UDP的區別

TCP面向連接(如打電話要先撥號建立連接);UDP是無連接的,即發送數據之前不需要建立連接

TCP提供可靠的服務。也就是說,通過TCP連接傳送的數據,無差錯,不丟失,不重複,且按序到達;UDP盡最大努力交付,即不保證可靠交付

UDP具有較好的實時性,工作效率比TCP高,適用於對高速傳輸和實時性有較高的通信或廣播通信。

每一條TCP連接只能是點到點的;UDP支持一對一,一對多,多對一和多對多的交互通信

TCP對系統資源要求較多,UDP對系統資源要求較少。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章