日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

TCP協議和UDP協議

作者:MM呦 更新時間: 2022-09-25 編程語言

文章目錄

    • @[TOC](文章目錄)
  • 一、TCP協議
    • 1.TCP協議組成
    • 2.連接管理
      • 三次握手
      • 四次揮手
  • 二、UDP協議
    • 1.UDP協議組成
    • 2.使用場景
  • TCP協議和UDP協議的區別

一、TCP協議

1.TCP協議組成

在了解TCP協議時,先了解TCP協議由哪幾部分組成。TCP協議由:報文首部、數據部分組成,那么在協議中我們關心的則是報文首部。首部有幾下組成:

  • 固定首部
    • 源端口
      • 發送方的端口號
    • 目的端口
      • 接收方的端口號
    • 序號
      • 表明發送哪部分數據
    • 確認號
      • 確認前面的數據已收到并希望接下來接收的數據部分
    • 數據偏移
      • 表明報文首部的大小,從哪開始是數據部分
    • 報留
      - 未利用,作為備用
    • 控制位
      • URG:表明緊急字段有效
      • ACK:用于確認數據是否收到
      • PSH:需要盡快交接,不用等待緩存池滿后在交接
      • RST:表明需要重新建立連接
      • SYN:建立連接時,SYN=1表明請求連接
      • FIN:用于斷開連接,FIN=1表明斷開連接
    • 窗口
      • 告知發送方,接收方可接收數據的大小
    • 檢驗和
      • 確保數據數量是否正確
    • 緊急指針
      • 表明是緊急報文,需要加急無需等待
  • 可變首部
    在這里插入圖片描述

2.連接管理

三次握手

TCP協議的三次握手才正式建立客戶端和服務器端的連接,那么是如何實現的呢?通過報文首部的控制位,上文提到SYN和ACK兩個狀態位來建立連接。

  • 首先客戶端向服務器端發起建立連接的請求,則報文首部的控制位為SYN=1,ACK=0;
  • 服務器接收到請求后同意連接請求,則報文首部的控制位為SYN=1,ACK=1;
  • 客戶端收到服務器發送的同意連接后,再發送報文表明已經知道可以連接,則控制位為SYN=0,ACK=1;

四次揮手

既然建立連接都有儀式感,那么斷開時依舊存在儀式感通過四次揮手表明正式斷開連接。通過報文首部的控制位的FIN和ACK來實現。

  • 客戶端向服務器端發起斷開連接的請求,則報文首部的控制位為FIN=1,ACK=0;
  • 服務器接收請求后確認收到,則報文首部的控制位為FIN=0,ACK=1;
  • 服務器同意斷開連接,則報文首部的控制位為FIN=1,ACK=1;
  • 客戶端收到服務器端的斷開連接后會再一次向服務器發送表明收到同意斷開連接的請求,則報文首部的控制位為FIN=0,ACK=1;

二、UDP協議

1.UDP協議組成

UDP協議依舊是由兩部分組成:UDP首部、數據部分。UDP的首部由:源端口、目的端口、長度、檢驗和組成。相比較TCP協議的首部,UDP協議的首部尤為顯的簡單,因此UDP協議的傳輸速度要快于TCP協議的傳輸。

2.使用場景

  • 可適用于音頻,視頻通話,直播等場景
  • 適用于發送的數據包較少的情況下
  • 可適用于一對多的情況下(廣播機制)

TCP協議和UDP協議的區別

  • 可靠性
    • TCP協議具有面向連接且具有可靠性的傳輸
    • UDP協議是無連接不具備可靠性的傳輸
  • 資源消耗
    • TCP協議占用的系統資源多于UDP協議,從上文所提及的首部組成就可以看出。TCP協議首部最小占用20字節,最多占用60字節,二UDP協議的首部只有8字節。
  • 傳播形式
    • TCP協議只支持單播傳輸,而UDP協議支持單播,多播,廣播機制的傳輸
  • 傳輸速度
    • 當然UDP協議的傳輸速度快于TCP協議的傳輸
  • 傳輸形式
    • TCP協議是面向字節流,UDP協議是面向數據報
  • 使用場景
    • TCP協議多用于文件傳輸、郵件傳輸、遠程登錄等場景
    • UDP協議多用于音頻,視頻,直播等場景
  • 其他特性
    • TCP協議還提供擁塞控制、流量控制,全雙工通信等都是來維護TCP協議的可靠性

原文鏈接:https://blog.csdn.net/qq_55135629/article/details/126996687

欄目分類
最近更新