Linux_網絡基礎

18fde01fee5e4278981004762ce48cc4.png

?? 歡迎大家來到小傘的大講堂??

🎈🎈養成好習慣,先贊后看哦~🎈🎈

所屬專欄:LInux_st
小傘的主頁:xiaosan_blog

制作不易!點個贊吧!!謝謝喵!!

1. 計算機網絡背景

1.1 網絡發展

獨立模式:計算機相互獨立

網絡互聯: 多臺計算機連接在一起, 完成數據共享;

局域網 LAN: 計算機數量更多了, 通過交換機和路由器連接在一起;

廣域網 WAN: 將遠隔千里的計算機都連在一起;

  • 計算機是人的工具, 人要協同工作, 注定了網絡的產生是必然的
    ?

1.2 初識協議

  • "協議" 是一種約定.
  • 打電話約定電話鈴響的次數的約定
    ?

計算機之間的傳輸媒介是光信號和電信號. 通過 "頻率" 和 "強弱" 來表示 0 和 1 這樣的信息. 要想傳遞各種不同的信息, 就需要約定好雙方的數據格式.

思考: 只要通信的兩臺主機, 約定好協議就可以了么?

  • 定好協議, 但是你用頻率表示 01, 我用強弱表示 01, 就好比我用中國話, 你用葡萄牙語一樣, 雖然大家可能遵守的一套通信規則, 但是語言不同, 即是訂好了基本的協議, 也是無法正常通信的

所以, 完善的協議, 需要更多更細致的規定, 并讓參與的人都要遵守。

  • 計算機生產廠商有很多;
  • 計算機操作系統, 也有很多;
  • 計算機網絡硬件設備, 還是有很多;
  • 如何讓這些不同廠商之間生產的計算機能夠相互順暢的通信? 就需要有人站出來, 約定一個共同的標準, 大家都來遵守, 這就是 網絡協議;

1.2.1 定制協議標準的組織或公司主要有以下幾類:

1. 國際標準化組織:

  • IEEE(電氣和電子工程師協會):這是一個由計算機和工程領域專家組成的龐大技術組織,在通信協議領域貢獻突出。IEEE制定了全世界電子、電氣和計算機科學領域30%左右的標準,包括IEEE802系列標準,這些標準涵蓋了從局域網(LAN)到廣域網(WAN)等多種網絡技術。
  • ISO(國際標準化組織):ISO是由多個國家的標準化團體組成的國際組織,它在開放系統互連(OSI)模型方面的工作尤為著名。OSI模型定義了網絡通信的七層協議結構,盡管在實際應用中,TCP/IP協議族更為普遍,但OSI模型仍然在學術和理論研究中占有重要地位。
  • ITU(國際電信聯盟):ITU是聯合國下屬的專門機構,負責制定電信領域的國際標準。ITU-T制定的標準涵蓋了電話和網絡通信,與ISO合作確保了通信技術的全球兼容性和互操作性。

2.?區域標準化組織:

  • ETSI(歐洲電信標準學會):由歐洲共同體各國政府資助,是一個由電信行業的廠商與研究機構參加并從事研究開發到標準制定的組織。
  • ASTAP(亞洲與泛太平洋電信標準化協會):1998年由日本與韓國發起成立的標準化組織,旨在加強亞洲與太平洋地區各國信息通信基礎設施及其相互連接的標準化工作的協作。

3.?公司:

  • 某些公司,如泰凌微,也自研各種標準的軟件協議棧,包括低功耗藍牙、zigbee、thread及Matter等,并可進行定制化改動,這是其核心競爭力之一。泰凌微還計劃重點發展智能電子價簽、智能遙控、智能家居等市場。

4.?民間國際團體:

  • IETF(互聯網工程師任務組):這是一個負責開發和推廣互聯網協議(特別是構成TCP/IP協議族的協議)的志愿組織,通過RFC發布新的或者取代老的協議標準。

5.?官方機構:

  • FCC(聯邦通信委員會):美國對通信技術的管理的官方機構,主要職責是通過對無線電、電視和有線通信的管理來保護公眾利益。也對包括標準化在內的通信產品技術特性進行審查和監督。

1.3 協議分層

  • 協議本質也是軟件, 在設計上為了更好的進行模塊化, 解耦合, 也是被設計成為層狀結構的

軟件分層的好處

  • 在這個例子中, 我們的"協議"只有兩層:語言層、 通信設備層。
  • 但是實際的網絡通信協議, 設計的會更加復雜, 需要分更多的層
  • 但是通過上面的簡單例子, 我們是能理解, 分層可以實現解耦合, 讓軟件維護的成本更低

2. OSi七層協議

  • OSI(Open System Interconnection, 開放系統互連) 七層網絡模型稱為開放式系統互聯參考模型, 是一個邏輯上的定義和規范;
  • 把網絡從邏輯上分為了 7 層. 每一層都有相關、 相對應的物理設備, 比如路由器, 交換機;
  • OSI七層模型是一種框架性的設計方法,其最主要的功能使就是幫助不同類型的主機實現數據傳輸:
  • 它的最大優點是將服務、接口和協議這三個概念明確地區分開來,概念清楚,理論也比較完整.通過七個層次化的結構模型使不同的系統不同的網絡之間實現可靠的通訊;
  • 但是,它既復雜又不實用;所以我們按照TCP/IP四層模型來講解,

  • 其實在網絡角度, OSI 定的協議 7 層模型其實非常完善, 但是在實際操作的過程中, 會話層、 表示層是不可能接入到操作系統中的, 所以在工程實踐中, 最終落地的是 5 層協議。
  • 但是要理解上面的話, 需要我們學習完網絡才可以理解, 這里就知道就可以。
    ?

2.1?TCP/IP五層(或四層)模型

TCP/IP是一組協議的代名詞,它還包括許多協議,組成了TCP/IP協議簇.

TCP/IP通訊協議采用了5層的層級結構,每一層都呼叫它的下一層所提供的網絡來完
成自己的需求.

  • 物理層:負責光/電信號的傳遞方式.比如現在以太網通用的網線(雙絞線)、早期以太網采用的的同軸電纜(現在主要用于有線電視)、光纖,現在的wifi無線網使用電磁波等都屬于物理層的概念。物理層的能力決定了最大傳輸速率、傳輸距離、抗干擾性等.集線器(Hub)工作在物理層.
  • 數據鏈路層:負責設備之間的數據幀的傳送和識別.例如網卡設備的驅動、幀同步(就是說從網線上檢測到什么信號算作新幀的開始)、沖突檢測(如果檢測到沖突就自動重發)、數據差錯校驗等工作.有以太網、令牌環網,無線LAN 等標準.交換機(Switch)工作在數據鏈路層.
  • 網絡層:負責地址管理和路由選擇.例如在IP協議中,通過IP地址來標識一臺主機,并通過路由表的方式規劃出兩臺主機之間的數據傳輸的線路(路由).路由器(Router)工作在網路層.
  • 傳輸層:負責兩臺主機之間的數據傳輸.如傳輸控制協議(TCP),能夠確保數據可靠的從源主機發送到目標主機.
  • 應用層:負責應用程序間溝通,如簡單電子郵件傳輸(SMTP)、文件傳輸協議(FTP)、網絡遠程訪問協議(Telnet)等.我們的網絡編程主要就是針對應用層.

物理層我們考慮的比較少, 我們只考慮軟件相關的內容. 因此很多時候我們直接稱為TCP/IP 四層模型.

  • 對于一臺主機,它的操作系統內核實現了從傳輸層到物理層的內容;
  • 對于一臺路由器,它實現了從網絡層到物理層;
  • 對于一臺交換機,它實現了從數據鏈路層到物理層;
  • 對于集線器,它只實現了物理層;

但是并不絕對. 很多交換機也實現了網絡層的轉發; 很多路由器也實現了部分傳輸層的內容(比如端口轉發);
?

3. 再識協議

3.1 為什么要有TCP/IP 協議?

  • 首先, 即便是單機, 你的計算機內部, 其實都是存在協議的, 比如: 其他設備和內存通信, 會有內存協議。 其他設備和磁盤通信, 會有磁盤相關的協議, 比如: SATA, IDE, SCSI 等。 只不過我們感知不到罷了。 而且這些協議都在本地主機各自的硬件中, 通信的成本、 問題比較少。
  • 其次, 網絡通信最大的特點就是主機之間變遠了。 任何通信特征的變化, 一定會帶來新的問題, 有問題就得解決問題, 所以需要新的協議咯。

3.2?TCP/IP 協議與操作系統的關系(宏觀上, 怎么實現的)

所以究竟什么是協議?

OS 源代碼一般都是用 C/C++語言寫的。

問題: 主機 B 能識別 data, 并且準確提取 a=10, b=20, c=30 嗎?

回答: 答案是肯定的! 因為雙方都有同樣的結構體類型 struct protocol。 也就是說,用同樣的代碼實現協議, 用同樣的自定義數據類型, 天然就具有”共識“, 能夠識別對方發來的數據, 這不就是約定嗎?

關于協議的樸素理解: 所謂協議, 就是通信雙方都認識的結構化的數據類型

因為協議棧是分層的, 所以, 每層都有雙方都有協議, 同層之間, 互相可以認識對方的協議。

4.網絡傳輸基本流程

4.1?局域網網絡傳輸流程圖

4.1.1?局域網(以太網為例)通信原理
  • 兩臺主機在同一個局域網, 是否能夠直接通信? 是的
  • 每臺主機在局域網上, 要有唯一的標識來保證主機的唯一性: mac 地址
    ?

4.1.2?認識 MAC 地址
  • MAC 地址用來識別數據鏈路層中相連的節點;
  • 長度為 48 位, 及 6 個字節. 一般用 16 進制數字加上冒號的形式來表示(例如:08:00:27:03:fb:19)
  • 在網卡出廠時就確定了, 不能修改. mac 地址通常是唯一的(虛擬機中的 mac 地址不是真實的 mac 地址, 可能會沖突; 也有些網卡支持用戶配置 mac 地址).

  • 以太網中,任何時刻,只允許一臺機器向網絡中發送數據
  • 如果有多臺同時發送,會發生數據干擾,我們稱之為數據碰撞
  • 所有發送數據的主機要進行碰撞檢測和碰撞避免
  • 沒有交換機的情況下,一個以太網就是一個碰撞域
  • 局域網通信的過程中,主機對收到的報文確認是否是發給自己的,是通過目標mac 地址判定
  • 這里可以試著從系統角度來理解局域網通信原理

初步明白了局域網通信原理,再來看同一個網段內的兩臺主機進行發送消息的過程

而其中每層都有協議, 所以當我進行進行上述傳輸流程的時候, 要進行封裝和解包

下面我們明確一下概念

  • 報頭部分, 就是對應協議層的結構體字段, 我們一般叫做報頭
  • 除了報頭, 剩下的叫做有效載荷
  • 故, 報文 = 報頭 + 有效載荷
    ?

然后, 我們在明確一下不同層的完整報文的叫法

  • 不同的協議層對數據包有不同的稱謂,在傳輸層叫做段(segment),在網絡層叫做數據報 (datagram),在鏈路層叫做幀(frame).
  • 應用層數據通過協議棧發到網絡上時,每層協議都要加上一個數據首部(header),稱為封裝(Encapsulation).
  • 首部信息中包含了一些類似于首部有多長,載荷(payload)有多長,上層協議是什么等信息.
  • 數據封裝成幀后發到傳輸介質上,到達目的主機后每層協議再剝掉相應的首部,根據首部中的"上層協議字段"將數據交給對應的上層協議處理.

在網絡傳輸的過程中, 數據不是直接發送給對方主機的, 而是先要自定向下將數據交付給下層協議, 最后由底層發送, 然后由對方主機的底層來進行接受, 在自底向上進行向上交付, 下面是一張示意圖

4.1.3.數據包封裝和分用

下圖為數據封裝的過程

下圖為數據分用的過程

4.2?跨網絡傳輸流程圖

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

IP協議有兩個版本,IPv4和IPv6,凡是提到IP協議,沒有特殊說明的,
默認都是指IPv4

  • IP地址是在IP協議中,用來標識網絡中不同主機的地址;
  • 對于IPv4來說,IP地址是一個4字節,32位的整數;
  • 我們通常也使用"點分十進制”的字符串表示IP地址,例如192.168.0.1;用點分割的每一個數字表示一個字節,范圍是0-255;

跨網段的主機的數據傳輸·數據從一臺計算機到另一臺計算機傳輸過程中要經過一個或
多個路由器.

下面是一張示意圖

在同一局域網中,IP地址前部分相同,當我們發現不同時,會先走路由器,在通過路由器前往目標主機

然后結合封裝與解包, 體現路由器解包和重新封裝的特點

對比IP地址和Mac地址的區別

  • IP地址在整個路由過程中,一直不變(目前,我們只能這樣說明,后面在修正)
  • Mac地址一直在變
  • 目的IP是一種長遠目標,Mac是下一階段目標,目的IP是路徑選擇的重要依據,mac 地址是局域網轉發的重要依據

例如:唐僧取經:

東土大唐->西天? ? ?ip地址指向,是長遠目標的

其中路過女兒國,則東土大唐要經過女兒國,然后Mac地址就從女兒國到西天,這是短期目標,會發生變化的

提煉IP網絡的意義和網絡通信的宏觀流程

  • IP 網絡層存在的意義:提供網絡虛擬層,讓世界的所有網絡都是IP網絡,屏蔽最底層網絡的差異

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

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

相關文章

Portainer:Docker可視化管理神器部署與使用攻略

Portainer是一款優秀的Docker可視化管理工具,它提供了簡潔美觀的Web界面,可以通過點擊鼠標輕松管理Docker環境。 一、Portainer簡介 Portainer是一個輕量級的Docker管理界面,具有以下特點: 可視化操作:通過Web界面管…

OVITO3.13.1_ Mac中文_材料科學、物理及化學領域設計的數據可視化和分析軟件_安裝教程

軟件下載 【名稱】:****OVITO3.13.1Mac中文 【大小】:****154M 【語言】:簡體中文 【安裝環境】:****mac 【網站下載鏈接】: https://a-xing.top/3008.html軟件應用 軟件應用 Ovito能做什么? Ovito的功能十…

MySQL 開發避坑:DROP TABLE 前你必須知道的幾件事

MySQL 中刪除表主要使用 DROP TABLE 語句。這是一個需要非常謹慎的操作,因為一旦執行,表結構和表中的所有數據都會被永久刪除。1. 基本語法:刪除單個表sqlDROP TABLE [IF EXISTS] table_name;* DROP TABLE: 核心命令,用于刪除表…

淺談人工智能之阿里云搭建coze平臺

淺談人工智能之阿里云搭建coze平臺 一、部署環境準備 阿里云服務器配置要求 ○ 規格:最低2核CPU 4GB內存(推薦4核8GB保障流暢運行),作者原先想要利舊,使用了2核2GB的服務器,但是跑不起來,后來自…

ego(2)---初始軌跡生成后的關鍵點采樣

在初始的多項式軌跡生成后,是要經過一個關鍵點采樣,使用關鍵點來進行后續的 B 樣條曲線擬合的。即:初始多項式擬合->關鍵點采樣->B樣條擬合關鍵點采樣的思路關鍵點采樣使用時間步長 ts 來在初始軌跡方程中取點。在上一步的初始軌跡生成…

專項智能練習(信息安全防護措施)

3.以下屬于網絡安全威脅的是(A )。 A.非授權訪問、病毒感染、信息泄露、拒絕網絡服務 B.信息泄露、非授權訪問、病毒感染、硬盤損壞 C.信息篡改、非授權訪問、病毒感染、硬盤損壞 D.網絡異常、非授權訪問、信息篡改、病毒感染 解析本題考查網絡安全威脅。…

ubuntu編譯webrtc庫

一. 前言 本文介紹在 ubuntu 下如何通過 webrtc 源碼編譯出指定版本 webrtc.lib 庫(以 m94 版本為例)。 二. 編譯步驟 1. 下載depot_tools工具 depot_tools 是 Google 用來管理大型項目代碼(例如 WebRTC)的工具集,它…

基于ZooKeeper實現分布式鎖(Spring Boot接入)及與Kafka實現的對比分析

在分布式系統中,多節點對共享資源的并發訪問往往會引發數據一致性問題,分布式鎖正是解決這一問題的核心組件。本文將從原理出發,詳細講解基于ZooKeeper實現分布式鎖的完整流程,提供Spring Boot接入的可運行代碼,并深入對比其與Kafka實現分布式鎖的異同點及優缺點,幫助開發…

Shell 三劍客之 awk 命令詳解(理論+實戰)

目錄 一、前言 二、工作流程總覽 三、最常用內置變量 四、命令格式 五、20 個高頻實戰案例 5.1 基礎打印 awk {print "hello"} < /etc/passwd 所有行打印成hello awk {print} test6.txt 打印test6.txt文件 awk {print $1} test6.txt 默認以空格為分割&am…

一個真正跨平臺可用的免費PDF解決方案

在整理資料時&#xff0c;常需將不同格式的文件統一轉為PDF格式&#xff0c;確保排版不亂、便于長期保存和打印 它的功能全面&#xff0c;支持批量操作&#xff0c;使用非常方便&#xff1a;只需把PDF文件拖進界面&#xff0c;選擇目標格式&#xff0c;無論PDF轉換成Word、PDF…

強化微調:以Swift框架進行GRPO多模態模型強化微調為例

一、TL&#xff1b;DR 整體介紹&#xff1a;強化微調RFT的原因、步驟、作用以及常見的rft方式dmeo舉例&#xff1a;以Swift給的Qwen2.5-Math-7B-Instruct為例介紹了整個RFT的流程和代碼細節實際強化微調&#xff1a;以qwen/internVL為例完成一次指令微調并且使用強化學習進一步…

時序數據:使用關系數據庫 vs 時序數據庫存儲的核心區別是什么?

一、時序數據使用關系數據庫 vs 時序數據庫存儲的核心區別 時序數據&#xff08;Time Series Data&#xff09;是指隨時間連續產生的數據&#xff08;如傳感器讀數、服務器指標、交易記錄等&#xff09;&#xff0c;其核心特點是高頻寫入、時間有序、量大且查詢模式集中于時間范…

ansible判斷

ansible判斷 一、判斷運算符 “” “!” “>” “<” “>” “<” “and” “or” “not” is in 每次執行完一個任務&#xff0c;不管成功與失敗&#xff0c;都會將執行的結果進行注冊&#xff0c;可以使用這個注冊的變量來判斷 when&#…

接口設計標準化流程,結合RESTful最佳實踐和實際開發經驗,涵蓋從需求分析到部署的全過程

目錄一、接口設計流程二、需求分析階段1. 功能需求2. 非功能性需求三、接口設計規范四、詳細實現步驟1. 選擇Web框架2. 接口路由設計3. 請求參數定義4. 請求參數驗證5. 業務邏輯分層6. 錯誤處理機制7. 異步任務處理8. 安全策略9. 接口文檔10. 測試策略11. 服務部署11.1 生產環境…

LeetCode 1023.駝峰式匹配

給你一個字符串數組 queries&#xff0c;和一個表示模式的字符串 pattern&#xff0c;請你返回一個布爾數組 answer 。只有在待查項 queries[i] 與模式串 pattern 匹配時&#xff0c; answer[i] 才為 true&#xff0c;否則為 false。 如果可以將 小寫字母 插入模式串 pattern 得…

【IQA技術專題】 無參考自然圖像IQA:NIQE

無參考自然圖像IQA&#xff1a;NIQE&#xff1a;Making a “Completely Blind” Image Quality Analyzer&#xff08;2012 IEEE&#xff09;專題介紹一、研究背景二、NIQE方法2.1 NSS model2.2 Patch Selection2.3 Characterizing Image Patches2.4 Multivariate Gaussian Mode…

變位齒輪:分度圓、節圓與中心距的 “特殊關聯”

接著上回的話題&#xff0c;在標準齒輪中&#xff0c;我們追求的是“節圓與分度圓重合”的理想狀態。但當實際工程提出更苛刻的要求時&#xff0c;比如&#xff1a;需要避免齒輪根切&#xff08;齒數過少時&#xff09;。要配湊一個非標準的中心距。需要大幅提高小齒輪的強度和…

Spring Boot集成Kafka常見業務場景最佳實踐實戰指南

一、基礎集成與核心組件解析 &#xff08;一&#xff09;環境搭建與依賴配置 在 Spring Boot 項目中集成 Kafka&#xff0c;首先需通過 Maven 添加核心依賴&#xff1a; <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>…

黑芝麻智能與云深處科技達成戰略合作,共推具身智能平臺全球市場應用

8月28日&#xff0c;智能汽車計算芯片引領者黑芝麻智能與具身智能創新技術與行業應用引領者云深處科技達成戰略合作。雙方將圍繞具身智能控制平臺開發、行業智能解決方案共建與國際市場拓展三大方向展開深度合作&#xff0c;攜手推進高性能機器人在多行業場景的規模化落地與應用…

AI零售創業公司:零眸智能

零眸智能公司分析 引言 “這次融資與合作&#xff0c;讓我們的全球化節奏更堅實也更有確定性。秉持‘讓熱愛與科技成就無限可能’&#xff0c;我們堅持真誠合作、長期主義與價值共享&#xff0c;把行業垂直AI能力按里程碑推進并沉淀為可復制的標準。” —— 零眸智能CEO樊凌云①…