TCP/IP協議簇

文章目錄

  • 應用層
    • http/https
    • DNS
    • 補充
  • 傳輸層
    • TCP
      • 1. 序列號與確認機制
      • 2. 超時重傳
      • 3. 流量控制(滑動窗口機制)
      • 4. 擁塞控制
      • 5. 錯誤檢測與校驗
      • 6. 連接管理
      • 總結
  • 網絡層
    • ARP
      • **ARP 的核心功能**
      • ARP 的工作流程
        • 1. ARP 請求(Broadcast)
        • 2. ARP 緩存(ARP Table)
      • ARP 的典型應用場景
      • ARP 與其他協議的關系
      • 示例說明
      • 總結
    • ICMP
      • ICMP 的核心功能
      • ICMP 的消息類型
      • ICMP 的工作流程示例
        • 場景:主機 A Ping 主機 B
        • 場景:路由器返回 “目的不可達”
      • ICMP 的典型應用場景
      • ICMP 與其他協議的關系
      • ICMP 的安全性與局限性
      • 總結
    • IGMP
  • 網絡接口層
    • 1. 物理層協議
    • 2. 數據鏈路層協議

應用層

http/https

https://blog.csdn.net/z_ar_d/article/details/146561799?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

DNS

會有鏈接的(畫大餅)

補充

基于tcp的:SMTP(25)\POP3(110)\SSH(22)\FTP(20\21)ssl\tls

基于UDP:DHCP(C68\S67)\NTP(123)\TFTP(69)

傳輸層

TCP

TCP/IP 協議棧中的 TCP(Transmission Control Protocol) 通過以下核心機制確保數據的可靠傳輸:

1. 序列號與確認機制

  • 序列號(Sequence Number):TCP 為每個字節的數據分配一個唯一的序列號,確保接收方可以按序重組數據。
  • 確認號(Acknowledgment Number):接收方通過 ACK 報文告知發送方已成功接收的數據字節位置(下一個期望接收的字節序號)。
  • 累積確認(Cumulative ACK):接收方只需確認最后一個連續接收的字節,簡化確認流程。

2. 超時重傳

  • 重傳定時器:發送方發送數據后啟動定時器,若超時未收到 ACK,則重新發送未確認的數據段。
  • 自適應重傳算法:TCP 動態調整超時時間(RTO,Retransmission Timeout),根據網絡延遲變化優化重傳策略。

3. 流量控制(滑動窗口機制)

  • 滑動窗口(Sliding Window):接收方通過窗口大小告知發送方當前可接收的數據量,避免接收方緩沖區溢出。
  • 動態調整窗口:窗口大小隨接收方緩沖區剩余空間動態變化,發送方根據 ACK 中的窗口字段調整發送速率。

4. 擁塞控制

  • 慢啟動(Slow Start):初始階段逐步增加發送窗口,探測網絡容量。
  • 擁塞避免(Congestion Avoidance):當網絡出現擁塞(如丟包)時,降低發送速率,避免進一步惡化。
  • 快速重傳與快速恢復:若接收方連續收到 3 個重復 ACK,判定數據包丟失,立即重傳并調整窗口,減少不必要的等待。

5. 錯誤檢測與校驗

  • 校驗和(Checksum):TCP 對首部和數據進行校驗,檢測傳輸中是否發生錯誤,錯誤數據段會被丟棄并重傳。

6. 連接管理

  • 三次握手(Three-Way Handshake):建立連接時,雙方通過 SYN、SYN-ACK、ACK 報文確認彼此可達。
  • 四次揮手(Four-Way Handshake):斷開連接時,雙方通過 FIN、ACK 報文確保數據全部傳輸完畢。

總結

TCP 通過序列號與確認保證數據按序到達,超時重傳處理丟失數據,滑動窗口控制流量避免過載,擁塞控制優化網絡利用率,校驗和檢測錯誤,以及連接管理確保可靠的端到端通信。這些機制共同作用,使 TCP 成為互聯網中最常用的可靠傳輸協議。

網絡層

ARP

ARP(Address Resolution Protocol,地址解析協議)是計算機網絡中用于將 IP 地址轉換為物理 MAC 地址的核心協議,屬于 TCP/IP 協議棧的網絡層數據鏈路層之間的橋梁。

ARP 的核心功能

  • IP 地址到 MAC 地址的映射
  • 數據鏈路層(如以太網)通過 MAC 地址識別設備,而網絡層使用 IP 地址。ARP 負責將目標 IP 地址解析為對應的 MAC 地址,確保數據幀能正確送達。
  • 跨層通信的關鍵
  • 當主機發送數據時:
    • 網絡層封裝 IP 數據包(含目標 IP 地址)。
    • 數據鏈路層需將 IP 數據包封裝為數據幀(需目標 MAC 地址)。
    • ARP 通過廣播或緩存查詢獲取目標 MAC 地址。

ARP 的工作流程

1. ARP 請求(Broadcast)
  • 場景:主機 A(IP: 192.168.1.1,MAC: AA-AA-AA)要向主機 B(IP: 192.168.1.2)發送數據,但 ARP 緩存中無主機 B 的 MAC 地址。
  • 步驟:
  • 主機 A 發送ARP 請求廣播幀(目標 IP=192.168.1.2,目標 MAC=FF:FF:FF:FF:FF:FF)。
  • 局域網內所有主機接收并解析請求。
  • 主機 B 發現請求目標 IP 是自己,發送ARP 應答單播幀(源 IP=192.168.1.2,源 MAC=BB-BB-BB)。
  • 主機 A 將主機 B 的 IP-MAC 映射存入 ARP 緩存。
2. ARP 緩存(ARP Table)
  • 作用:存儲近期解析過的 IP-MAC 映射,避免重復廣播。
  • 條目生命周期:通常為幾分鐘(可通過arp -a查看)。
  • 更新機制:若目標 IP 地址的 MAC 地址變化,會觸發新的 ARP 請求。

ARP 的典型應用場景

  • 同一局域網通信
  • 主機 A 與主機 B 直接通信時,需通過 ARP 解析對方 MAC 地址。
  • 跨網絡通信(通過網關)
  • 主機 A 訪問外網(如 IP: 8.8.8.8)時,先通過 ARP 獲取網關(路由器)的 MAC 地址,數據經網關轉發。
  • ARP 緩存中毒攻擊
  • 攻擊者偽造 ARP 應答,將目標 IP 地址映射到惡意 MAC 地址,導致數據被竊聽或中斷(如中間人攻擊)。

ARP 與其他協議的關系

  • 與 RARP 的區別:
  • ARP:IP → MAC(常用)。
  • RARP:MAC → IP(已被 DHCP 取代)。
  • 與 ICMP 的關系:
  • ARP 是無連接協議,依賴鏈路層廣播;ICMP 用于網絡診斷(如 Ping)。

示例說明

  • 問題:主機 A 無法訪問主機 B,可能原因:
  • 主機 B 未開啟,無法響應 ARP 請求。
  • ARP 緩存中主機 B 的 MAC 地址過期或錯誤。
  • 存在 ARP 欺騙攻擊,導致數據發送到錯誤設備。

總結

ARP 是網絡通信的基礎協議,確保 IP 地址與物理地址的正確映射。合理利用 ARP 緩存可提升效率,但需注意防范 ARP 欺騙等安全風險。理解 ARP 有助于診斷網絡連接問題(如 “無法訪問目標主機”)和優化網絡配置。

ICMP

ICMP(Internet Control Message Protocol,互聯網控制消息協議)是 TCP/IP 協議棧中網絡層的核心協議之一,主要用于**網絡設備之間傳遞控制信息和錯誤報告。**它通過封裝在 IP 數據包中傳輸,是網絡診斷和維護的重要工具。

ICMP 的核心功能

  • 錯誤報告
  • 當網絡設備(如路由器)發現數據包無法轉發時,通過 ICMP 向源主機發送錯誤消息(如 “目的不可達”)。
  • 網絡診斷
  • 提供基礎診斷功能(如 Ping、Traceroute),幫助用戶驗證網絡連通性和路徑。
  • 流量控制
  • 通過 “源抑制” 消息通知發送方降低發送速率,避免網絡擁塞。
  • 路徑信息傳遞
  • 路由器通過 “重定向” 消息告知主機更優的下一跳地址。

ICMP 的消息類型

ICMP 消息分為差錯報告查詢兩大類,常見類型如下:

類型代碼描述
3 - 目的不可達0-15目標網絡 / 主機 / 協議 / 端口不可達(如主機未開機、防火墻攔截)
11 - 超時0-1TTL 耗盡(如 Traceroute 利用此消息跟蹤路徑)或分片重組超時
5 - 重定向0-3路由器通知主機使用更優的下一跳地址
8 - 回顯請求0Ping 請求(如ping 192.168.1.1
0 - 回顯應答0Ping 響應,確認目標可達

ICMP 的工作流程示例

場景:主機 A Ping 主機 B
  • 主機 A 發送 ICMP 回顯請求(類型 8)數據包,目標 IP 為 B 的 IP 地址。
  • 主機 B 接收到請求后,發送 ICMP 回顯應答(類型 0)給主機 A。
  • 主機 A 根據應答判斷主機 B 是否可達。
場景:路由器返回 “目的不可達”
  • 若主機 A 嘗試訪問不存在的 IP 地址,路由器會發送 ICMP 目的不可達消息(類型 3,代碼 1)。

ICMP 的典型應用場景

  • 網絡連通性測試
  • Ping 工具:通過回顯請求 / 應答驗證主機是否可達。
  • 示例:ping -c 4 8.8.8.8(向谷歌 DNS 服務器發送 4 個 Ping 請求)。
  • 路徑跟蹤
  • Traceroute 工具:利用 ICMP 超時消息(類型 11)逐步顯示數據包經過的路由器。
  • 示例:traceroute www.example.com
  • 故障診斷
  • 分析 ICMP 錯誤消息定位問題(如防火墻規則、路由配置錯誤)。

ICMP 與其他協議的關系

  • 與 IP 協議:ICMP 是 IP 層的一部分,所有 IP 實現必須支持 ICMP。
  • 與 TCP/UDP:ICMP 不用于傳輸用戶數據,而是輔助 IP 層處理錯誤和控制信息。
  • 與 ARP:ARP 負責 IP 到 MAC 的解析,ICMP 負責網絡層的控制和診斷。

ICMP 的安全性與局限性

  • 安全風險
  • Ping Flood 攻擊:發送大量 ICMP 回顯請求,耗盡目標帶寬。
  • Smurf 攻擊:利用廣播地址放大攻擊流量(已較少見)。
  • 防范措施:通過防火墻禁用 ICMP 消息或限制速率。
  • 局限性
  • ICMP 消息本身不可靠,可能因網絡擁塞或過濾被丟棄。
  • 某些網絡設備(如 NAT 網關)可能攔截 ICMP 消息,導致診斷失敗。

總結

ICMP 是網絡的 “神經系統”,通過傳遞控制和錯誤信息幫助維護網絡健康。掌握 ICMP 原理有助于診斷網絡問題(如主機不可達、路由黑洞),但需注意其安全性風險。常見工具如 Ping 和 Traceroute 是 ICMP 的典型應用,是網絡工程師的必備技能。

IGMP

IGMP(Internet Group Management Protocol)是TCP/IP 協議族中的網絡層協議(IP 協議號為 2),用于管理主機與組播路由器之間的組成員關系。其核心功能是讓組播路由器動態了解哪些主機屬于哪些組播組,從而高效轉發組播數據包
1. 核心功能

  • 成員關系管理:
    • 主機通過 IGMP 向路由器報告加入或離開某個組播組的請求。
    • 路由器通過定期查詢,維護各網段的組播組成員信息。
  • 優化組播轉發:
    • 路由器僅向有成員的網段轉發組播數據,避免帶寬浪費。
      2. 版本演進
  • IGMPv1:
    • 支持基本的加入 / 離開機制,但離開時需依賴超時機制檢測。
    • 查詢器選舉由組播路由協議(如 PIM)決定。
  • IGMPv2:
    • 增加離開組消息,允許主機主動通知路由器退出組播組。
    • 引入特定組查詢,減少非組成員的響應流量。
    • 查詢器選舉改為最小 IP 地址優先,無需依賴外部協議。
  • IGMPv3:
    • 支持源過濾(INCLUDE/EXCLUDE 模式),允許主機指定接收或拒絕特定源的組播流量。
    • 新增特定源組查詢,進一步優化流量控制。
      3. 工作機制
  • 主機加入組播組:
    • 主機發送成員報告報文(Membership Report),聲明加入目標組播組。
  • 主機離開組播組:
    • 主機發送離開組報文(Leave Group),路由器收到后發送特定組查詢,確認無其他成員后刪除該組。
  • 路由器維護成員關系:
    • 路由器定期發送普遍組查詢(General Query),主機響應報告以維持成員資格。
    • 若主機未及時響應,路由器認為該組無成員,停止轉發數據。
      4. 報文類型
  • 成員報告:主機加入組播組時發送,或響應查詢時確認成員身份。
  • 普遍組查詢:路由器周期性發送,詢問所有組播組的成員狀態。
  • 特定組查詢:路由器收到離開消息后,針對特定組播組發送的查詢。
  • 特定源組查詢(v3):針對特定組播組和源地址的查詢。
    5. 應用場景
  • 流媒體傳輸(如視頻會議、在線直播):高效分發數據到多個接收端。
  • 在線游戲:實時同步多玩家數據。
  • 企業內部通信:共享文件、軟件更新等。
    6. 與其他協議的關系
  • 組播路由協議(如 PIM、DVMRP):依賴 IGMP 提供的成員信息,構建組播轉發樹。
  • IGMP 偵聽(IGMP Snooping):交換機通過偵聽 IGMP 報文,優化二層組播轉發,減少不必要的流量泛洪。
    7. 注意事項
  • 安全性:IGMP 缺乏認證機制,可能被濫用(如偽造成員報告引發流量攻擊)。
  • 版本兼容性:高版本(如 v3)兼容低版本,但需注意配置一致性。
  • IPv6 替代:IPv6 中使用 MLD(多播偵聽發現協議) 替代 IGMP。
    總結
    IGMP 是組播通信的核心協議,通過動態管理組成員關系,實現了高效的網絡資源利用。其版本演進逐步增強了靈活性和性能,適用于多種需要數據多播的場景。理解 IGMP 的工作機制有助于優化網絡配置,解決組播相關的故障(如流量缺失、帶寬浪費)。

網絡接口層

1. 物理層協議

  • Ethernet(以太網)、Wi-Fi、光纖、DSL 等。

2. 數據鏈路層協議

  • PPP(點對點協議)、SLIP(串行線路協議)、MAC 地址管理。

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

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

相關文章

SpringBoot分布式項目訂單管理實戰:Mybatis最佳實踐全解

一、架構設計與技術選型 典型分布式訂單系統架構: [網關層] → [訂單服務] ←→ [分布式緩存]↑ ↓ [用戶服務] [支付服務]↓ ↓ [MySQL集群] ← [分庫分表中間件]技術棧組合: Spring Boot 3.xMybatis-Plus 3.5.xShardingSpher…

微服務架構中的精妙設計:環境和工程搭建

一.前期準備 1.1開發環境安裝 Oracle從JDK9開始每半年發布?個新版本, 新版本發布后, ?版本就不再進?維護. 但是會有?個?期維護的版本. ?前?期維護的版本有: JDK8, JDK11, JDK17, JDK21 在 JDK版本的選擇上,盡量選擇?期維護的版本. 為什么選擇JDK17? S…

Maven 構建配置文件詳解

Maven 構建配置文件詳解 引言 Maven 是一個強大的項目管理和構建自動化工具,廣泛應用于 Java 開發領域。在 Maven 項目中,配置文件扮演著至關重要的角色。本文將詳細介紹 Maven 構建配置文件的相關知識,包括配置文件的作用、結構、配置方法等,幫助讀者更好地理解和應用 M…

【YOLO系列】基于YOLOv8的無人機野生動物檢測

基于YOLOv8的無人機野生動物檢測 1.前言 在野生動物保護、生態研究和環境監測領域,及時、準確地檢測和識別野生動物對于保護生物多樣性、預防人類與野生動物的沖突以及制定科學的保護策略至關重要。傳統的野生動物監測方法通常依賴于地面巡邏、固定攝像頭或無線傳…

Hive UDF開發實戰:構建高性能JSON生成器

目錄 一、背景與需求場景 二、開發環境準備 2.1 基礎工具棧 2.2 Maven依賴配置 三、核心代碼實現

分布式特性對比

以下是關于 分片(Sharding)、一致性哈希、兩階段提交(2PC)、Paxos、Raft協議、數據局部性 的對比分析與關聯性總結,涵蓋核心機制、適用場景及相互關系: 一、概念對比與關聯 概念核心目標關鍵特性典型應用場景與其它技術的關聯分片(Sharding)數據水平拆分按規則(哈希、…

歷史分鐘高頻數據

外盤期貨高頻分鐘歷史回測行情數據下載 鏈接: https://pan.baidu.com/s/1RUbAMxfiSyBlXfrwT_0n2w?pwdhgya 提取碼: hgya通過美國期貨高頻交易所歷史行情可以看到很多細節比如品種之一:FGBX_1min (1)在2024-02-29 11:14:00關鍵交易時刻,一筆大規模訂單突…

final+模版設計模式的理解

模板設計模式在 Java 里是一種行為設計模式,它在抽象類里定義算法的骨架,把部分步驟的具體實現延遲到子類。如此一來,子類可以在不改變算法結構的基礎上,重新定義算法中的特定步驟。 模式組成 抽象類(Abstract Class…

JAVA接口調用限速器

目錄 1、并發限速 2、串行限速 需求:批量調用第三方ERP接口,對方接口限流時,減緩調用速率。 1、并發限速 Slf4j RestController public class ApiCallTask {//第三方接口Resourceprivate ErpService erpService;//異步線程池Resourcepriv…

STM32 CAN控制器硬件資源與用法

1、硬件結構圖 以STM32F4為例,他有2個can控制器,分別為 CAN1 CAN2。 每個CAN控制器,都有3個發送郵箱、2個接收fifo,每個接收fifo又由3個接收郵箱組成。也即每個CAN控制器都有9個郵箱,其中3個供發送用,3個…

【C++ 繼承】—— 青花分水、和而不同,繼承中的“明明德”與“止于至善”

歡迎來到ZyyOvO的博客?,一個關于探索技術的角落,記錄學習的點滴📖,分享實用的技巧🛠?,偶爾還有一些奇思妙想💡 本文由ZyyOvO原創??,感謝支持??!請尊重原創&#x1…

Qt warning LNK4042: 對象被多次指定;已忽略多余的指定

一、常規原因: pro或pri 文件中源文件被多次包含 解決:刪除變量 SOURCES 和 HEADERS 中重復條目 二、誤用 對于某些pri庫可以使用如下代碼簡寫包含 INCLUDEPATH $$PWDHEADERS $$PWD/*.hSOURCES $$PWD/*.cpp但是假如該目錄下只有頭文件,沒…

Visual Studio Code 無法打開源文件解決方法

🌈 個人主頁:Zfox_ 🔥 系列專欄:Linux 🔥 系列專欄:C從入門到精通 目錄 一:🔥 突發狀況 二:🔥 共勉 一:🔥 突發狀況 🐬…

js文字兩端對齊

目錄 一、問題 二、原因及解決方法 三、總結 一、問題 1.text-align: justify; 不就可以了嗎?但是實際測試無效 二、原因及解決方法 1.原因:text-align只對非最后一行文字有效。只有一行文字時,text-align無效,要用text-alig…

LeetCode算法題(Go語言實現)_20

題目 給你兩個下標從 0 開始的整數數組 nums1 和 nums2 ,請你返回一個長度為 2 的列表 answer ,其中: answer[0] 是 nums1 中所有 不 存在于 nums2 中的 不同 整數組成的列表。 answer[1] 是 nums2 中所有 不 存在于 nums1 中的 不同 整數組成…

每天認識一個設計模式-橋接模式:在抽象與實現的平行宇宙架起彩虹橋

一、前言:虛擬機橋接的啟示 使用過VMware或者Docker的同學們應該都接觸過網絡橋接,在虛擬機網絡配置里,橋接模式是常用的網絡連接方式。選擇橋接模式時,虛擬機會通過虛擬交換機與物理網卡相連,獲取同網段 IP 地址&…

java筆記02

運算符 1.隱式轉換和強制轉換 類型轉換的分類 1.隱式轉換: 取值范圍小的數值 轉換為 取值范圍大的數值 2.強制轉換: 取值范圍大的數值 轉換為 取值范圍小的數值隱式轉換的兩種提升規則 取值范圍小的,和取值范圍大的進行運算,小的…

Redis-07.Redis常用命令-集合操作命令

一.集合操作命令 SADD key member1 [member2]: sadd set1 a b c d sadd set1 a 0表示沒有添加成功,因為集合中已經有了這個元素了,因此無法重復添加。 SMEMBERS key: smembers set1 SCARD key: scard set1 SADD key member1 …

李飛飛、吳佳俊團隊新作:FlowMo如何以零卷積、零對抗損失實現ImageNet重構新巔峰

目錄 一、摘要 二、引言 三、相關工作 四、方法 基于擴散先前的離散標記化器利用廣告 架構 階段 1A:模式匹配預訓練 階段 1B:模式搜索后訓練 采樣 第二階段:潛在生成建模 五、Coovally AI模型訓練與應用平臺 六、實驗 主要結果 …

CSS3:現代Web設計的魔法卷軸

一、布局革命:從平面到多維空間 1.1 Grid布局的次元突破 星際戰艦布局系統 .galaxy {display: grid;grid-template-areas: "nav nav nav""sidebar content ads""footer footer footer";grid-template-rows: 80px 1fr 120p…