TCP/IP 模型每層的封裝格式

TCP/IP 模型是一個四層網絡架構,每一層在數據傳輸時都會對數據進行封裝,添加相應的頭部(和尾部)信息。以下是各層的封裝格式及關鍵字段說明:


1. 應用層(Application Layer)

  • 封裝格式:取決于具體應用協議(如 HTTP、FTP、DNS、SMTP 等)。

  • 示例

    • HTTP 請求
      GET /index.html HTTP/1.1
      Host: www.example.com
      User-Agent: Mozilla/5.0
      
    • DNS 查詢
      包含查詢域名、記錄類型(A、AAAA、MX 等)和事務 ID。
  • 作用:定義數據內容和應用交互規則。


2. 傳輸層(Transport Layer)

  • 協議:TCP 或 UDP。
  • 封裝格式
    • TCP 段(Segment)
      | 源端口 (16 bits) | 目的端口 (16 bits) |
      | 序列號 (32 bits)                 |
      | 確認號 (32 bits)                 |
      | 頭部長度 | 保留 | 控制標志 (SYN/ACK/FIN等) | 窗口大小 (16 bits) |
      | 校驗和 (16 bits) | 緊急指針 (16 bits)     |
      | 選項 (可選)                       |
      | 數據 (應用層數據)                 |
      
    • UDP 數據報(Datagram)
      | 源端口 (16 bits) | 目的端口 (16 bits) |
      | 長度 (16 bits)   | 校驗和 (16 bits)    |
      | 數據 (應用層數據)                 |
      
  • 關鍵字段
    • 端口號:標識應用進程(如 80 用于 HTTP)。
    • TCP 特有:序列號、確認號、控制標志(可靠傳輸)。
    • UDP 更簡單,無連接和可靠性保證。

3. 網絡層(Internet Layer)

  • 協議:IP(IPv4 或 IPv6)。
  • 封裝格式(IPv4 數據包)
    | 版本 (4 bits) | 頭部長度 (4 bits) | 服務類型 (8 bits) | 總長度 (16 bits)      |
    | 標識 (16 bits)                | 標志 (3 bits) | 片偏移 (13 bits)    |
    | 生存時間 TTL (8 bits) | 協議 (8 bits, e.g., TCP=6, UDP=17) | 頭部校驗和 (16 bits) |
    | 源 IP 地址 (32 bits)                                           |
    | 目的 IP 地址 (32 bits)                                         |
    | 選項 (可選)                                                    |
    | 數據 (傳輸層段)                                                |
    
  • 關鍵字段
    • 源/目的 IP 地址:標識主機。
    • 協議字段:指示上層協議(TCP/UDP)。
    • TTL:防止數據包無限循環。

4. 網絡接口層(Link Layer)

  • 協議:以太網(Ethernet)、Wi-Fi(802.11)、PPP 等。
  • 封裝格式(以太網幀)
    | 前導碼 (7 bytes) | 幀開始符 (1 byte) |
    | 目的 MAC 地址 (6 bytes) | 源 MAC 地址 (6 bytes) |
    | 類型 (2 bytes, e.g., IPv4=0x0800, ARP=0x0806)                  |
    | 數據 (IP 數據包)                                               |
    | 幀校驗序列 FCS (4 bytes, CRC校驗)                              |
    
  • 關鍵字段
    • MAC 地址:標識本地網絡中的設備。
    • 類型字段:指示上層協議(如 IPv4 或 ARP)。
    • FCS:錯誤檢測。

完整封裝流程示例(HTTP over TCP/IP)

  1. 應用層:HTTP 請求 → 添加 HTTP 頭部。
  2. 傳輸層:將 HTTP 數據封裝為 TCP 段 → 添加源/目的端口、序列號等。
  3. 網絡層:將 TCP 段封裝為 IP 數據包 → 添加源/目的 IP 地址。
  4. 鏈路層:將 IP 數據包封裝為以太網幀 → 添加源/目的 MAC 地址和 FCS。

最終數據通過物理介質(如網線)傳輸,接收方逐層解封裝。


關鍵點總結

  • 分層封裝:每層添加自己的頭部,形成“洋蔥式”結構。
  • 協議標識
    • 鏈路層通過類型字段標識網絡層協議(如 IPv4)。
    • 網絡層通過協議字段標識傳輸層協議(如 TCP)。
    • 傳輸層通過端口號標識應用層協議(如 HTTP 的 80 端口)。
  • MTU 限制:鏈路層幀大小有限(如以太網默認 1500 字節),超長的 IP 數據包會被分片。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/80649.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80649.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/80649.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【行業深度解析】什么是馬甲包?

在 Android 應用分發和增長運營的實踐中,“馬甲包” 是一個常被提及的策略術語。特別是在 Google Play 平臺上,許多開發者或運營團隊出于營銷、風險分攤或生態布局等原因,會選擇通過發布“馬甲包”來實現多元化的業務拓展。 然而&#xff0c…

谷歌與微軟的AI戰爭:搜索、云服務與生態布局

谷歌與微軟的AI戰爭:搜索、云服務與生態布局 系統化學習人工智能網站(收藏):https://www.captainbed.cn/flu 文章目錄 谷歌與微軟的AI戰爭:搜索、云服務與生態布局摘要引言技術路線對比1. AI基礎設施:算力…

uniapp自定義導航欄搭配插槽

<uni-nav-bar dark :fixed"true" shadow background-color"#007AFF" left-icon"left" left-text"返回" clickLeft"back"><view class"nav-bar-title">{{ navBarTitle }}</view><block v-slo…

無人機飛控算法開發實戰:從零到一構建企業級飛控系統

簡介 無人機飛控算法是實現穩定飛行和精確控制的核心技術,涉及飛行動力學建模、傳感器數據處理、狀態估計和控制策略等多個環節。本實戰指南將系統講解四旋翼無人機飛控算法的開發流程,包括飛行動力學模型建立、傳感器校準與數據融合、主流控制算法實現(PID、ADRC、EKF)以…

p2p虛擬服務器

ZeroTier Central ? 推薦工具&#xff1a;ZeroTier&#xff08;免費、穩定、跨平臺&#xff09; ZeroTier 可以幫你把多臺設備&#xff08;無論是否跨網&#xff09;加入一個虛擬局域網&#xff0c;彼此間可以像在同一個 LAN 中通信&#xff0c;UDP 視頻、文件傳輸、SSH 等都…

MySQL數據庫遷移SQL語句指南

MySQL數據庫遷移SQL語句指南 一、基礎遷移方法 1. 使用mysqldump進行全量遷移 -- 導出源數據庫&#xff08;在命令行執行&#xff09; mysqldump -u [源用戶名] -p[源密碼] --single-transaction --routines --triggers --events --master-data2 [數據庫名] > migration…

畫立方體軟件開發筆記 js three 投影 參數建模 旋轉相機 @tarikjabiri/dxf導出dxf

gitee&#xff1a; njsgcs/njsgcs_3d mainwindow.js:4 Uncaught SyntaxError: The requested module /3dviewport.js does not provide an export named default一定要default嗎 2025-05-10 14-27-58 專門寫了個代碼畫立方體 import{ scene,camera,renderer} from ./3dviewp…

【工具】HandBrake使用指南:功能詳解與視頻轉碼

HandBrake使用指南&#xff1a;功能詳解與視頻轉碼 一、前言 高清視頻在當下日益普及&#xff0c;從影視制作到個人拍攝&#xff0c;從社交媒體發布到遠程教育&#xff0c;如何高效地壓縮、轉換和管理視頻文件的體積與清晰度&#xff0c;成為內容創作者與技術開發者的核心任務…

Docker容器網絡架構深度解析與技術實踐指南——基于Linux內核特性的企業級容器網絡實現

第1章 容器網絡基礎架構 1 Linux網絡命名空間實現原理 1.1內核級隔離機制深度解析 1.1.1進程隔離的底層實現 通過clone()系統調用創建新進程時&#xff0c;設置CLONE_NEWNET標志位將觸發內核執行以下操作&#xff1a; 內核源碼示例&#xff08;linux-6.8.0/kernel/fork.c&a…

SAP 交貨單行項目含稅金額計算報cx_sy_zerodivide處理

業務背景&#xff1a;SAP交貨單只有數量&#xff0c;沒有金額&#xff0c;所以開發報表從訂單的價格按數量計算交貨單的金額。 用戶反饋近期報表出現異常&#xff1a; ****2012/12/12 清風雅雨 規格變更 Chg 修改開始 ** 修改原因:由于余數為0時&#xff0c;可能會報錯溢出。…

【高數上冊筆記01】:從集合映射到區間函數

【參考資料】 同濟大學《高等數學》教材樊順厚老師B站《高等數學精講》系列課程 &#xff08;注&#xff1a;本筆記為個人數學復習資料&#xff0c;旨在通過系統化整理替代厚重教材&#xff0c;便于隨時查閱與鞏固知識要點&#xff09; 僅用于個人數學復習&#xff0c;因為課…

每日算法刷題 Day3 5.11:leetcode數組2道題,用時1h(有點慢)

5.LC 零矩陣(中等) 面試題 01.08. 零矩陣 - 力扣&#xff08;LeetCode&#xff09; 思想: 法一: 利用兩個集合分別儲存要清0的行和列索引 另外兩種原地優化空間的做法暫時不是目前刷題目標&#xff0c;故不考慮 代碼 c: class Solution { public:void setZeroes(vector&l…

【小記】excel vlookup一對多匹配

一個學生報四門課&#xff0c;輸出每個學生課程 應用概述操作預處理數據計數指令 COUNTIFS進行一對多匹配 vlookup 應用概述 應用場景&#xff1a;學生報名考試&#xff0c;需要整理成指定格式&#xff0c;發給考試院。 一個學生最多報考四門 格式實例&#xff1a;準考證號 …

《從零構建大模型》PDF下載(中文版、英文版)

內容簡介 本書是關于如何從零開始構建大模型的指南&#xff0c;由暢銷書作家塞巴斯蒂安? 拉施卡撰寫&#xff0c;通過清晰的文字、圖表和實例&#xff0c;逐步指導讀者創建自己的大模型。在本書中&#xff0c;讀者將學習如何規劃和編寫大模型的各個組成部分、為大模型訓練準備…

基于 Ubuntu 24.04 部署 WebDAV

1. 簡介 WebDAV&#xff08;Web Distributed Authoring and Versioning&#xff09;是一種基于 HTTP 的協議&#xff0c; 允許用戶通過網絡直接編輯和管理服務器上的文件。 本教程介紹如何在 Ubuntu 24.04 上使用 Apache2 搭建 WebDAV 服務&#xff0c;無需域名&#xff0c;…

node.js 實戰——在express 中將input file 美化,并完成裁剪、上傳進度條

美化上傳按鈕 在ejs 頁面 <!DOCTYPE html> <html> <head><meta charset"utf-8"></meta><title><% title %></title><link relstylesheet href/stylesheets/form.css/><!-- 本地 Bootstrap 引入方式 -->…

MySQL為什么選擇B+樹

1.hash表&#xff1a;不支持范圍查詢 2.跳表&#xff1a;索引層增加太快&#xff0c;IO成本增加太快 3.二叉樹、AVL樹、紅黑樹&#xff1a;樹高度增加太快&#xff0c;IO成本增加太快 4.B樹&#xff1a;樹高增加太快&#xff1b;范圍查詢只能走中序遍歷&#xff0c;IO成本很…

go程序編譯成動態庫,使用c進行調用

以下是使用 Go 語言打包成 .so 庫并使用 C 語言調用的完整步驟&#xff1a; 1. Go 語言打包成 .so 庫 &#xff08;1&#xff09;編寫 Go 代碼 創建一個 Go 文件&#xff08;如 calculator.go&#xff09;&#xff0c;并定義需要導出的函數。導出的函數名必須以大寫字母開頭…

YOLO-World:基于YOLOv8的開放詞匯目標檢測

文章目錄 前言1、出發點2、方法2.1.TextEncoder2.2.ReparmVLPAN2.3.輸出頭 3、實驗3.1.數據集3.2.LVIS測試集 總結 前言 本文介紹一篇來自騰訊的開放詞匯檢測工作&#xff0c;發表自CVPR2024&#xff0c;論文鏈接&#xff0c;開源地址。 1、出發點 GroundingDINO在開放詞匯檢測…

華為網路設備學習-21 IGP路由專題-路由過濾(filter-policy)

一、路由過濾&#xff08;filter-policy&#xff09; 1、用于控制路由更新、接收的一個工具 2、只能過濾路由信息&#xff0c;無法過濾LSA 二、路由過濾&#xff08;filter-policy&#xff09;與動態路由協議 1、距離矢量路由協議 RIP動態路由協議 交換的是路由表&#xff0…