32.網絡基礎概念(二)

局域網網絡傳輸流程圖

兩臺主機在同一個局域網,是否能夠直接通信?
????????以太網原理舉例:上課,老師點名小王讓他站起來回答問題。教室里的其他人是可以聽見的,為什么其他人不響應?因為老師叫的是小王,和其他人無關。因此教室發送消息,并不是只有一個人能收到,而是有吃瓜群眾(發消息有點類似消息隊列,有類型的數據塊)
每臺主機在局域網上,要有唯一的標識來保證主機的唯一性:mac地址。

以太網原理

????????以太網發送數據,數據是用一個結構封裝的,src:源主機mac地址,dst:目標主機mac地址,data:數據。

結論:

  • 以太網中,任何時刻,只允許一臺機器向網絡中發送數據。
  • 如果有多臺同時發送,會發生數據干擾,我們稱之為數據碰撞。
  • 沒有交換機的情況下,一個以太網就是一個碰撞域。
  • 所有發送數據的主機要進行碰撞檢測和碰撞避免。

????????工作流程:所有主機 先發 數據,然后進行碰撞檢測,檢測到碰撞進行碰撞避免,執行碰撞避免算法,例如發數據的主機休眠一段隨機的時間后重發。如果沒有檢測到碰撞,收集到數據的主機對數據判斷dst是否是自己,不是就丟棄,是就留下。

????????理解記憶:以太網本質就是共享的資源!-> 臨界資源,互斥屬性(與互斥鎖不同的是,主機是先發在處理)

主機間通信的本質

主機之間通信:本質是兩個協議棧在通信

數據發送的原始動力:人(90%情況)

TCP/IP協議棧理解

? ? ? ? 用戶通信流程:用戶A發送數據,用戶層添加用戶層報頭,傳輸層添加傳輸層報頭,以此類推,直到數據鏈路層,將數據交給網卡,網卡把數據發送給用戶B的主機,傳到數據鏈路層,然后往上傳層層解包分用(對端同層,要先解包:報頭和有效載荷進行分離),到用戶B就拿到了數據。
????????報文=報頭+有效載荷
為什么要自頂向下封裝?
? ? ? ? 必須貫穿操作系統,貫穿協議棧(發送數據需要網卡,OS是硬件網卡的管理者)。
封裝和解包實現了,同層之間,在直接通信,因為我收到的,就是你發送的!、
細節1:
  • 報頭必須要能做到,和有效載荷進行分離的能力。
  • 報頭中必須包含,如何將自己的有效載荷,交付給上層的那一個具體協議。

細節2:

????????底層收到報文,但是報文不是發送給我的,數據鏈路層直接丟棄(數據鏈路層的報頭有起始mac地址和目標mac地址

細節3:

? ? ? ? 協議棧,棧的理解:自頂向下封裝的過程(入棧),自底向上解包分用的過程(出棧)

拓展:網卡和數據鏈路層,混雜模式,抓包工具的原理(目標mac地址即便不是自己,也保留數據)

同層之間,都認為自己在和對方同層協議直接通信理解:

? ? ? ? 同層之間,報文的結構一樣(報頭結構一樣,有效載荷結構也一樣)

網絡中的地址管理---認識IP地址

IP地址,用來表示,全球范圍內,主機的唯一性(公網IP)

IP和MAC理解:

????????唐僧帶著四個徒弟去西天取經,逢人便說,貧僧自東土大唐而來,要去往西天求取真經(東土大唐是起點,西天是終點)。他們到車遲國面見國王,車遲國國王說離我最近的是女兒國,你下一站是女兒國(車遲國是短期起點,女兒國是短期終點)。

從哪來,到哪去 --- 源IP,目標IP地址

上一站從哪里來,下一站去哪里 --- 源MAC,目標MAC地址

總結:MAC地址是標識局域網主機唯一性的地址,IP地址是標識廣域網主機唯一性的地址。

跨網絡傳輸流程(一切皆IP)

主機A發送數據給主機B,主機A的IP地址:192.168.2.2,主機B的IP地址:172.168.2.2,。

????????主機A不知道172主機在哪里!但是主機A一定能確定,報文絕對不是發送給本地網絡的主機的!(有了目的IP,可以判定要將報文發送給路由器)

? ? ? ? 路由:發現不能發給自己局域網主機的報文,就推送給路由器

網絡層報頭包含:源IP地址和目標IP地址

數據鏈路層報頭包含:源MAC地址和目標MAC地址

????????主機A發送數據到網卡,A局域網來發送,發給路由器的網卡macLeft。路由器數據鏈路層拿到數據,進行解包分用,報頭去掉傳到網絡層。數據鏈路層對IP地址做分析,發現是B局域網內的IP,封裝主機B的MAC地址,通過B局域網傳到主機B。

結論:

  • 路由過程中,IP地址不變,mac地址一直在變(mac地址只會在本局域網內有效)
  • 無論底層用的是以太網,無線LAN還是自定義局域網通信原理,都可以
  • 網絡層+IP的本質意義:給網絡提供了一層虛擬化層,讓世界上所有的網絡,都叫做IP網絡(一切皆IP,類比一切皆文件,封裝了struct file,屏蔽底層硬件差異)

????????只要IP地址,技術上可以實現網絡通信嗎?可以,IP地址是唯一的,局域網內也是唯一的,使用IP地址替換MAC地址技術上可以做到。

為什么不這么做?

? ? ? ? 網絡的發展是從局部到整體的,局域網到廣域網,MAC地址是比IP地址先出,復用MAC地址那套成本更低,兼容性更好,且只使用IP地址并不會給效率帶來顯著的提高(類比C語言翻譯成匯編,匯編在翻譯成2進制)。

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

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

相關文章

【高并發內存池】六、三種緩存的回收內存過程

文章目錄前言Ⅰ. thread cache的內存回收Ⅱ. central cache的內存回收Ⅲ. page cache的內存回收前言 ? 前面我們將內存的申請流程都走通了,現在就是內存回收的過程,主要是從 thread cache 開始,一層一層往下回收,因為我們調用的…

DeerFlow 實踐:華為IPD流程的評審智能體設計

目錄 一、項目背景與目標 二、IPD 流程關鍵評審點與 TR 點解析 (一)4 個關鍵評審點 (二)6 個 TR 點 三、評審智能體詳細設計與協作機制 機制設計核心原則 (一)概念評審(CDCP)…

【ubuntu】ubuntu中找不到串口設備問題排查

ubuntu中找不到串口問題排查1. 檢查設備識別情況2. 檢查并安裝驅動3. 檢查內核消息4. 禁用brltty服務1. 停止并禁用 brltty 服務2. 完全移除 brltty 包3. 重啟系統或重新插拔設備5.輸出結果問題:虛擬機ubuntu中,已經顯示串口設備連接成功,但是…

Unity 性能優化 之 靜態資源優化 (音頻 | 模型 | 紋理 | 動畫)

Unity 之 性能優化 -- 靜態資源優化參考性能指標靜態資源資源工作流程資源分類原理小結Audio 實戰優化建議模型導入工作流程DCC中模型導出.DCC中Mesh生產規范模型導出檢查流程模型優化建議紋理優化紋理基礎概念紋理類型紋理大小紋理顏色空間紋理壓縮紋理圖集紋理過濾紋理Mipmap…

GitHub 熱榜項目 - 日榜(2025-09-13)

GitHub 熱榜項目 - 日榜(2025-09-13) 生成于:2025-09-13 統計摘要 共發現熱門項目:18 個 榜單類型:日榜 本期熱點趨勢總結 本期GitHub熱榜項目呈現三大技術熱點:AI開發工具化(如GenKit、ROMA多智能體框架&#xff…

Pytest 常見問題及其解決方案

常見問題及解決方案 1. 測試通過了,但覆蓋率不達標 現象: 雖然所有測試都通過了,但覆蓋率報告顯示某些代碼沒有被覆蓋。 解決方案: 檢查覆蓋率配置:確保 .coveragerc 或 pytest.ini 中正確設置了要分析的源代碼路徑。 使用標記(markers)排除測試文件本身:避免測試代…

直擊3D內容創作痛點-火山引擎多媒體實驗室首次主持SIGGRAPH Workshop,用前沿技術降低沉浸式內容生成門檻

當3D、VR技術在游戲、教育、醫療、文化領域遍地開花,“內容短缺”卻成了制約行業爆發的關鍵瓶頸——傳統3D/4D創作不僅耗時耗力、依賴專業技能,還難以適配消費級設備,讓許多創作者望而卻步。近日,由火山引擎多媒體實驗室聯合領域頂…

華為基本命令

我們使用的是華為官方的模擬器eNSP 一、華為設備的模式 華為的設備有兩種模式: 用戶視圖和系統視圖 用戶視圖只能讀取,或者進行一些基礎查詢 系統視圖能對設備和接口進行一些配置管理,和一些高級操作 在“用戶視圖”下使用system-view系統可…

2025.9.14英語紅寶書【必背16-20】

單詞組合 中文速記句子 英文句子 confine, misery, necessitate, negotiate, preach, precaution, precision, stretch 病人被 confine(限制) 在床上,感受 misery(痛苦),情況 necessitate(需要) 醫生 negotiate(商討),牧師 preach(布道) 并提醒 precaution(預防)…

HUST-STAR電控組視覺任務

視覺任務 注意:視覺部分建議采用 python 完成,下面教程也大多針對 python。其原因在于 python 配置相應環境更為輕松,且內置庫較為豐富,屬于初學者友好類型。沒接觸過 python 也不必擔心,它的大體邏輯與 C 相近&#…

壓縮和歸檔 文件傳輸

壓縮和歸檔壓縮:4G----1.5Gbzip2-bunzip2 gzip-gunzip xz-unxzgzip 要壓縮的文件原來的文件就會被刪除 (壓縮和解壓縮)會生成一個 aaa.gz 的文件歸檔: 4G----4G 打包tarc 創建歸檔文件 v 看到創建的詳細過程 f 文件類型 t 不展開歸檔文件&…

深入探索 C++ 元組:從基礎到高級應用

在現代 C 編程中,元組(std::tuple)是一個強大且靈活的容器,能夠存儲和操作多個不同類型的數據。它在標準庫中扮演著重要角色,并在實際開發中提供了諸多便利。本文將全面探討 C 元組的各個方面,從基礎用法到…

Excel批量處理一列數據---分列功能

0 Preface/Foreword當有多行數據需要處理時,為了減少手動操作,可以EXCEL數據分列功能可以提高效率。1 數據分列1.1 數據分類步驟如下:選中需要處理的一列數據;選擇菜單欄中的“數據”;選擇分列按照需求設置即可1.2 查找…

HTTPS + 域名 + 雙向證書認證(下)

文章目錄1. .p12文件1.1 主要特點1.2 常見用途1.3 常見操作1.4 與其他格式的區別1.5 與公鑰的區別和聯系1.6 安全性注意事項2. Nginx 配置2.1 location指令2.2 alias 與 root 指令的區別3 雙向認證配置3.1 創建根證書3.1.1 生成根CA的私鑰3.1.2 生成請求證書3.1.3 生成自簽署CA…

嵌入式 - ARM3

一、arm啟動C語言1. 配置異常向量表2. 實現了軟件中斷的部分注:ldmfd sp!, {r0-r12, lr} ldmfd sp!, {r0-r12, pc}^ bx lr 左半部分:繁瑣易理解的返回方式:先彈出所有通用寄存器和lr &…

如何通過標簽和分類提升知識復用效率

通過標簽和分類提升知識復用效率,其核心在于構建一個結構化與靈活性兼備的知識組織體系。這需要將分類的“確定性”與標簽的“多維性”進行有效結合,為知識的存儲與檢索建立清晰的“骨架”和豐富的“神經網絡”。具體實踐中,要求我們進行頂層…

ZYNQ PS讀寫PL BRAM

一、實驗室任務 本章的實驗任務是 PS 將數據寫入BRAM,然后從 BRAM 中讀出數據,并通過串口打印出來;與此同時,PL 從通過自定義ip核從BRAM中同樣讀出數據,并通過ILA 來觀察讀出的數據與串口打印的數據是否一致。這里是通…

LinuxC++項目開發日志——高并發內存池(5-page cache框架開發)

PageCachepage cache 設計邏輯一、PageCache 的核心定位:理解它與 CentralCache 的本質區別二、PageCache 的內存分配流程:從 “精確匹配” 到 “拆分適配”三、PageCache 的內存釋放流程:合并小 Span,解決內存碎片問題page cache…

Matplotlib:繪制你的第一張折線圖與散點圖

Matplotlib入門:繪制你的第一張折線圖與散點圖導語 歡迎來到 Matplotlib 的世界!對于任何使用 Python 進行數據分析或機器學習的人來說,數據可視化都是一項至關重要的技能。Matplotlib 是 Python 中最流行、最基礎的可視化庫,它功…

MySQL保姆級安裝教程

MySQL 安裝詳細文檔,適用于 Windows、macOS 和 Linux 系統,包含了從下載到驗證安裝的完整步驟: 一、Windows 系統安裝 MySQL 1. 下載 MySQL 安裝包 訪問 MySQL 官方下載頁:https://dev.mysql.com/downloads/installer/選擇 “MySQ…