一、傳輸控制協議TCP
簡介:傳輸控制協議(TCP)是Internet一個重要的傳輸層協議。TCP提供面向連接、可靠、有序、字節流傳輸服務。應用程序在使用TCP之前,必須先建立TCP連接。
tcp報文格式:
其中報文格式中的標誌位說明:
- URG:緊急指針
- ACK:確認序號
- PSH:有DATA數據傳輸
- RST:連接重置
- SYN:建立連接
- FIN:關閉連接
二、TCP握手揮手機制
三次握手過程:其目的不是爲了打通網絡連接,而是在正式使用之前,先要檢測網絡是否通暢。
流程圖如下:
其總體流程爲:首先客戶端發送一次請求到服務器,詢問服務端是否可以建立連接; 服務端在收到請求後,針對這次請求,返回確認應答消息;客戶端收到服務端的應答後,就與服務端建立連接,可以通信。
四次揮手過程:揮手就是保證連接安全斷開。
流程圖如下:
其總體流程如下:首先客戶端發送請求,通知服務端進行請求關閉;服務端接口請求後,先將自身設置成半關閉狀態,通知到客戶端;此時客戶端接到通知後,就不能在發送請求給到服務端,並且這個過程中,可能還有未傳輸完的數據;所以過一段時間後,服務端會再次發送一個通知給到客戶端,表示請求數據全部完成,可以斷開連接;客戶端收到請求後,再通知到服務端,連接可以管端,關閉連接。
三、用戶數據報協議UDP
簡介:是Internet傳輸層協議。提供無連接、不可靠、數據報盡力傳輸服務。
數據報文格式如下:
使用udp的好處:
- 應用進程更容易控制發送什麼數據以及何時發送。
- 無需建立連接
- 無連接狀態
- 首部開銷小
應用場景:先udp協議多用於物聯網設備心跳上報,網絡直播、視頻傳輸等。
四、tcp與udp的比較
TCP | UDP |
面向連接 | 無連接 |
提供可靠性保證 | 不可靠 |
慢 | 快 |
資源佔用多 | 資源佔用少 |