網絡基礎——協議認識

文章目錄

  • 網絡基礎
    • 網絡的發展——引出一些概念
    • 協議認識
      • 初識協議
      • 協議分層
      • 協議分層的模型
      • 再談協議
        • 為什么要有TCP/IP協議
        • TCP/IP協議的宏觀認識
        • 宏觀理解TCP/IP協議和操作系統的關系
      • 協議的真正本質

網絡基礎

本篇文章,我們將正式進入網絡部分的學習。這是網絡部分的第一篇文章,我們需要簡單了解一下網絡的發展歷史,引出一些概念。這利于我們后序的學習!

網絡的發展——引出一些概念

早期的網絡
早期的計算機,其實都是獨立的!即不能像我們現在一樣,通過使用某些功能,就通過網絡把對應的數據信息傳到另外一臺計算機上了!

在這里插入圖片描述
就如上圖所示,早期的計算機是沒有網絡的概念的!

早期的計算機,那是一些比較大型的學術機構和科研機構在使用。那他們肯定是有協作需求的!但是,早期的計算機沒有辦法直接進行通信。
所以,必然的,就需要人主動參與到數據的傳送。但是,這樣的效率可想是比較低效的!

而計算機本質就是個工具,是人在使用 -> 又因為人需要寫作 -> 導致了計算機之間需要協作!
所以,網絡的產生是必然的!因為網絡就是用于計算機之間通信寫作的!這是規律。


網絡技術的發展
后來,因為有了需求,所以那些持有計算機使用的機構必然需要想辦法讓計算機之間進行通信!所以,就衍生出了一系列網絡技術。

簡單一點的辦法就是讓一臺計算機專門充當服務器,然后所有主機通過網線相連:
在這里插入圖片描述

當然,隨著需要通信的主機變多,就衍生出了新的通信方式(局域網 LAN),也誕生新的設備(交換機、路由器):
在這里插入圖片描述

再后來,有衍生出了廣域網(WAN)的技術:
在這里插入圖片描述
就可以通過技術迭代升級 + 市場消費需求提升,不斷地促進網絡技術的發展。讓不同地方的人都可以通過這樣的設備來進行通信交流!

當然,WAN和LAN是一個相對的概念。比如我們知道,我們國家的網絡是和外界不太一樣的。所以,我們國家的網絡在整個世界來看,就是一個巨大的局域網


網絡整體發展歷史
網絡,其實最早是由美國的一些科學家研究出來的,而且是軍用級別的!所以,很多國家在網絡技術上的發展其實是有一定差距的!直到上世紀90年代,美國把第一代網絡技術(阿帕網)給公布出來。這時候全世界的國家都在競相發展網絡技術!

然后就有一大批的網絡技術公司(互聯網公司)成立,研發新的技術!
但是,我們需要銘記:任何新的技術發展,都需要有新的設備!

我們不能光看到表面上的一些互聯網公司。網絡技術的發展,必然是需要大量的網絡通信設備的!所以,這些公司也是在發展,如NOKIA

所以,這些公司可以認為是互相進步發展的!在網絡公司和通信設備制造公司中,橫亙著一個叫做運營商的角色!他們負責收購大量的通信設備,完善一些基礎設施。推廣市場。這也就是為什么現在如此多的網民的原因!


輸出結論

最后要說明的是:

1.因為人要協作 -> 計算機之間也要協作 -> 網絡的誕生是必然的!
2.網絡,是有局部發展到整體的!

協議認識

我們在網絡世界里,經常會聽到協議這個概念。這里,我們就來簡單了解一下!

初識協議

首先,協議的本質就是一種約定!
比如兩個人之間規定的暗號,聽到什么暗號就要對應做出什么回應!這種協議是雙方都看得懂的!而且都要遵守該協議。

再舉一個例子:

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

但是,并不是簡單地規定好了協議雙方就能夠直接進行通信的!
比如一個中國人和一個西班牙人,雙方都聽不懂對方在說什么!雖然規定了聽到0/1應該做什么,但是,由于雙方語言的不通,導致即使知道協議規則,也不知道對方說啥,應該做啥。

所以,協議并不是簡單地約定規則,而是需要一套完善的機制!
在計算機世界中,協議并不看似只有通信的計算機需要遵守!而是計算機中對應的一整套硬件體系、操作系統都要支持某種協議。這樣子,才能進行通信!

所以,如果說世界上的所有計算機都需要通信,那么,勢必要有一種統一的協議——即網絡協議!讓所有的設備都支持該協議,進行通信!

所以,一般具有定制協議或者標準的資格的組織或者公司都必須是業界公認或者具有江湖地
位的組織或者公司!下面我們來認識一下這些組織即可:

  1. IETF (Internet Engineering Task Force)

    • 參與領域: 互聯網核心協議(如TCP/IP、HTTP、DNS、QUIC等)
    • 備注: 發布RFC文檔,實際互聯網標準的主要制定者
  2. IEEE (Institute of Electrical and Electronics Engineers)

  • 參與領域:
    • IEEE 802系列(以太網/Wi-Fi等局域網標準)
    • 無線通信協議(如802.11ac/ax)
  1. ITU-T (國際電信聯盟電信標準局)
  • 參與領域:
    • 電信網絡標準(如光傳輸/SDH)
    • 視頻編碼標準(H.26x系列)
    • 5G網絡部分標準
  1. W3C (World Wide Web Consortium)
  • 參與領域:
    • Web技術標準(HTML5、CSS、WebAssembly等)
    • Web安全協議(如CORS)
  1. 3GPP (移動通信標準化組織)
  • 參與領域:
    • 蜂窩網絡標準(5G/4G/LTE協議棧)
    • 移動通信安全架構
  1. ISO (國際標準化組織)
  • 參與領域:
    • OSI七層模型(理論框架)
    • 通用數據格式標準(如ASN.1)
  1. 主要科技公司貢獻
  • Google:
    • QUIC協議(后成為HTTP/3基礎)
    • SPDY(HTTP/2前身)
  • Microsoft:
    • SMB文件共享協議
    • Active Directory相關協議
  • Cisco:
    • 路由協議(如EIGRP)
    • 網絡設備管理協議
  • Mozilla/Apple/Google:
    • 聯合推動WebRTC標準

規定了相關的協議后,只要是需要參與網絡通信的設別,都需要支持這種通用的協議!

協議分層

如果有學過《計算機網絡》這門課程的同學就知道,網絡通信是被分層的:
在這里插入圖片描述
如常見的兩種模型!OSI模型和TCP/IP模型!


我們肯定會有一個疑問,為什么要分層?有什么好處嗎?

我們回看一下這一張圖——操作系統體系結構圖:
在這里插入圖片描述
我們知道,操作系統是一款管理計算機中軟硬件資源的軟件!它的設計就是分層的,為什么?
因為這樣子可以明確每一層的任務職能,還能最大程度上地解耦合

所以,我們至少可以知道一點:網絡協議地分層是滿足高內聚、低耦合的!

輸出結論:

  1. 網絡協議分層,被稱為網絡協議棧!
  2. 網絡協議本質也是軟件,在設計上為了更好的進行模塊化,解耦合,也是被設計成為
    層狀結構的!在未來的開發中,亦是如此!

這里的兩個結論目前是沒辦法解釋!我們等到后面部分再來細說!!!


這里來看一個例子:
在這里插入圖片描述
即兩個人打電話的過程:

在我們打電話的用戶來看,就是兩個人拿著電話在進行對話!
但是,在實現電話功能的工程師看來,打電話沒有那么簡單!而是先要一方說話,把信息傳遞給底層通信層,然后通信層通過某種協議發送給另一臺電話的通信層。然后再處理后交付給另外一邊的用戶!

但是,如果通信設備需要替換了呢?如果不進行分層解耦,如果說我們發出聲音會直接影響到底層設備的通信,那么就沒那么容易替換了!
這就好比我們在操作系統中:如果操作系統中文件管理模塊和進程管理模塊有大量直接交互,那么想要修改代碼那是很麻煩的!

所以,分層的最大好處就是——在設計上為了更好的進行模塊化,解耦合

協議分層的模型

協議分層的模型,最常用的,也是大部分遵守的標準:
OSI模型 或 TCP/IP模型


OSI模型
在這里插入圖片描述

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

其實,OSI協議規定的非常好!但是,實現起來是非常復雜的!所以更多的時候,都是使用的TCP/IP協議!這個協議是五層的。

TCP/IP模型
TCP/IP 是一組協議的代名詞,它還包括許多協議,組成了 TCP/IP 協議簇。TCP/IP 通訊協議采用了 5 層的層級結構,每一層都呼叫它的下一層所提供的網絡來完成自己的需求。

只不過,后序我們談論的時候,都是了解四層即可!因為最底層的物理層是和硬件強相關的,我們目前了解一下即可:

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

在這里插入圖片描述
其實TCP/IP模型就是OSI模型的簡易版本!(應用、表示、會話合三為一)。

再談協議

為什么要有TCP/IP協議

首先,我們來理解一下為什么要有這樣的協議!

首先,我們知道一個結論就是:主機之間拿著條線直接相連也是可以進行通信的!而且,內部的CPU、顯卡、內存都是直接根據對應的協議進行通信的!(沒錯,硬件也有通信協議!)

所以,如果說一臺機器的不同設備使用電線連著,讓它們分別處于我國的東西南北中方位,也一樣能夠通信!只不過說,效率會變得特別低!
->計算機內得馮諾依曼體系結構,也可以是一個網絡結構!

多臺主機其實就和上面得例子是類似的,通信的時候也是會受到距離得影響的!


所以,網絡通信就面臨著巨大的問題,在通信距離變得很長的情況下(新技術 -> 新問題):

1.如何保證數據的安全?即不丟失!
2.怎么找到要通信的位置?怎么確定通信路徑?
3.怎么解決當下要通信的下一個節點位置?(通信距離長,需要通過一個個節點發送)

還有一個問題,這個不是網絡通信獨有的。即如何處理通信數據?


上述的答案是:通過規定網絡協議層,即TCP/IP來解決!

在這里插入圖片描述

TCP/IP協議的宏觀認識

? TCP/IP 協議的本質是一種解決方案
? TCP/IP 協議能分層,前提是因為問題們本身能分層

即上述所說到幾點問題,是可以解耦合放在不同的層進行處理的!

這樣子,就可以讓全世界一些比較權威的機構、組織、公司等代表進行討論設計標準!這種標準是國際化的!是非常合理的!然后讓所有和網絡通信相關的通信設備都要遵守該標準!

宏觀理解TCP/IP協議和操作系統的關系

了解完了協議基本概念和一種具體的協議——TCP/IP協議。我們肯定會想到一個問題:
即我們的計算機,是通關操作系統來管理的!那么,操作系統和TCP/IP協議有什么關系呢?

我們先以Linux系統來進行講解:
在這里插入圖片描述

  • 物理層,即用來進行數據通信的硬件,一般就是網卡!它是屬于硬件的,所以在操作系統的硬件層中也會有網卡設備!
  • 數據鏈路層,其實就是解決如何找到下一個要去的節點!這個是屬于驅動程序的!
  • 傳輸層和網絡層是在操作系統這一層進行實現的!其中,傳輸層使用的是TCP協議,網絡層使用的是IP協議!所以,這就是為什么這個協議叫做TCP/IP協議
  • 最后是應用層,應用層就是用戶層的使用和用戶對應的接口

最終,我們可以明白一個道理:
網絡,其實是操作系統的一部分! 未來要進行網絡通信的時候,用戶層依然是可以使用大量的系統層面提供的系統調用接口!


我們來看看不同的操作系統下:
在這里插入圖片描述
市面上系統都是如此。因為最終它們都需要進行網絡通信!需要網絡通信,它們又都會滿足同一種協議!所以,勢必它們的網絡部分實現的代碼是高度相似的!

無論不同的操作系統底層如何實現、如何管理的!但是,網絡部分一樣!必然可以進行網絡通信!這也就是為什么不同的系統之間也是可以進行通信的!

在這里插入圖片描述

協議的真正本質

最后,我們再來探討一下,協議究竟是什么?我們到現在也不知道它是以什么形式存在的。

我們知道:OS的源碼,基本都是c/c++:
在這里插入圖片描述
協議又是通信的雙方做出的通信約定!每一層都有對應的通信協議!
我們又知道,協議本質上也是軟件!

綜上所述,通信雙方的一些約定、要發送的數據、處理方法,其實都是可以用結構體來進行描述的。然后再組織起來! -> 協議,就是雙方約定好的數據結構!


所以,雙方的同一層都規定好一種協議(結構體),把需要通信的數據、處理方法、對應字段都約定到一個結構體內。又因為都遵守同一個網絡通信協議!所以,網絡部分的代碼是一樣的!
所以,一方發過來的結構體,另一方也一定能夠看得懂!這樣就可以通信了!

所以,所謂的協議,其實就是一種結構體!這是雙方約定的一種計算機式的表達!

如同我們上網購物一樣,發快遞的時候,快遞單子上會有一系列的信息。這個其實就是買賣雙方規定好的一種協議!又或是我們自己使用的c++類,這本質上編寫一個類,就是在編寫一個使用協議!使用者可以通過一些方式來明白使用方法!

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

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

相關文章

云原生俱樂部-RH134知識點總結(2)

這一章的內容也會比較多,因為預期三篇文章更完RH134系列,所以每章安排的內容都比較多,并且RH134上面的都是重點,一點也不好寫。昨天一天將RH124系列寫完了,今天爭取將RH134系列寫完。至于我為什么要著急將這些寫完&…

深度學習-計算機視覺-微調 Fine-tune

1. 遷移學習遷移學習(transfer learning)是一種機器學習方法,通過將源數據集(如ImageNet)上訓練得到的模型知識遷移到目標數據集(如特定場景的椅子識別任務)。這種方法的核心在于利用預訓練模型…

STL庫——string(類函數學習)

? ? ? ? ? づ?ど 🎉 歡迎點贊支持🎉 個人主頁:勵志不掉頭發的內向程序員; 專欄主頁:C語言; 文章目錄 前言 一、STL簡介 二、string類的優點 三、標準庫中的string類 四、string的成員函數 4.1、構造…

登上Nature!清華大學光學神經網絡研究突破

2025深度學習發論文&模型漲點之——光學神經網絡光學神經網絡的基本原理是利用光的傳播、干涉、衍射等特性來實現神經網絡中的信息處理和計算。在傳統神經網絡中,信息以電信號的形式在電子元件之間傳輸和處理,而在光學神經網絡中,信息則以…

【java】對word文件設置只讀權限

文件流輸出時 template.getXWPFDocument().enforceCommentsProtection(); 文件輸出時 //打開己創建的word文檔 XWPFDocument document new XWPFDocument(new FileInputStream("output.docx")); //設置文檔為只讀 document.enforceReadonlyProtection(); //保存文…

Zookeeper 在 Kafka 中扮演了什么角色?

在 Apache Kafka 的早期架構中,ZooKeeper 扮演了分布式協調服務角色,負責管理和協調整個 Kafka 集群。 盡管新版本的 Kafka 正在逐步移除對 ZooKeeper 的依賴,但在許多現有和較早的系統中,了解 ZooKeeper 的作用仍然非常重要。 Zo…

什么叫做 “可迭代的產品矩陣”?如何落地??

“可迭代的產品矩陣” 不是靜態的產品組合,而是圍繞用戶需求與商業目標構建的動態生態。它以核心產品為根基,通過多維度延伸形成產品網絡,同時具備根據市場反饋持續優化的彈性,讓產品體系既能覆蓋用戶全生命周期需求,又…

Nginx代理配置詳解:正向代理與反向代理完全指南

系列文章索引: 第一篇:《Nginx入門與安裝詳解:從零開始搭建高性能Web服務器》第二篇:《Nginx基礎配置詳解:nginx.conf核心配置與虛擬主機實戰》第三篇:《Nginx代理配置詳解:正向代理與反向代理…

Vue3 Element-plus 封裝Select下拉復選框選擇器

廢話不多說&#xff0c;樣式如下&#xff0c;代碼如下&#xff0c;需要自取<template><el-selectv-model"selectValue"class"checkbox-select"multiple:placeholder"placeholder":style"{ width: width }"change"change…

jenkins 自動部署

一、win10 環境安裝&#xff1a; 1、jdk 下載安裝&#xff1a;Index of openjdk-local 2、配置環境變量&#xff1a; 3、jenkins 下載&#xff1a;Download and deploy 下載后的結果&#xff1a;jenkins.war 4、jenkins 啟動&#xff1a; 5、創建管理員用戶 admin 登錄系統…

2020 GPT3 原文 Language Models are Few-Shot Learners 精選注解

本文為個人閱讀GPT3&#xff0c;部分內容注解&#xff0c;由于GPT3原文篇幅較長&#xff0c;且GPT3無有效開源信息 這里就不再一一粘貼&#xff0c;僅對原文部分內容做注解&#xff0c;僅供參考 詳情參考原文鏈接 原文鏈接&#xff1a;https://arxiv.org/pdf/2005.14165 語言模…

設計模式筆記_行為型_迭代器模式

1. 迭代器模式介紹迭代器模式&#xff08;Iterator Pattern&#xff09;是一種行為設計模式&#xff0c;旨在提供一種方法順序訪問一個聚合對象中的各個元素&#xff0c;而又不需要暴露該對象的內部表示。這個模式的主要目的是將集合的遍歷與集合本身分離&#xff0c;使得用戶可…

【Part 4 未來趨勢與技術展望】第一節|技術上的抉擇:三維實時渲染與VR全景視頻的共生

《VR 360全景視頻開發》專欄 將帶你深入探索從全景視頻制作到Unity眼鏡端應用開發的全流程技術。專欄內容涵蓋安卓原生VR播放器開發、Unity VR視頻渲染與手勢交互、360全景視頻制作與優化&#xff0c;以及高分辨率視頻性能優化等實戰技巧。 &#x1f4dd; 希望通過這個專欄&am…

mac查看nginx安裝位置 mac nginx啟動、重啟、關閉

安裝工具&#xff1a;homebrew步驟&#xff1a;1、打開終端&#xff0c;習慣性命令&#xff1a;brew update //結果&#xff1a;Already up-to-date.2、終端繼續執行命令&#xff1a;brew search nginx //查詢要安裝的軟件是否存在3、執行命令&#xff1a;brew info nginx4. …

網絡通信的基本概念與設備

目錄 一、互聯網 二、JAVA跨平臺與C/C的原理 1、JAVA跨平臺的原理 2、C/C跨平臺的原理 三、網絡互連模型 四、客戶端與服務器 五、計算機之間的通信基礎 1、IP地址與MAC地址 2、ARP與ICMP對比 ①ARP協議&#xff08;地址解析協議&#xff09; ②ICMP協議&#xff08…

云原生俱樂部-k8s知識點歸納(1)

這篇文章主要是講講k8s中的知識點歸納&#xff0c;以幫助理解。雖然平時也做筆記和總結&#xff0c;但是就將內容復制過來不太好&#xff0c;而且我比較喜歡打字。因此知識點歸納總結還是以敘述的口吻來說說&#xff0c;并結合我的理解加以論述。k8s和docker首先講一講docker和…

基于Node.js+Express的電商管理平臺的設計與實現/基于vue的網上購物商城的設計與實現/基于Node.js+Express的在線銷售系統

基于Node.jsExpress的電商管理平臺的設計與實現/基于vue的網上購物商城的設計與實現/基于Node.jsExpress的在線銷售系統

Git 對象存儲:理解底層原理,實現高效排錯與存儲優化

### 探秘 Git 對象存儲&#xff1a;底層原理與優化實踐#### 一、Git 對象存儲的底層原理 Git 采用**內容尋址文件系統**&#xff0c;核心機制如下&#xff1a; 1. **對象類型與存儲** - **Blob 對象**&#xff1a;存儲文件內容&#xff0c;通過 git hash-object 生成唯一 SHA-…

【2025CVPR-目標檢測方向】RaCFormer:通過基于查詢的雷達-相機融合實現高質量的 3D 目標檢測

1. 研究背景與動機? ?問題?:現有雷達-相機融合方法依賴BEV特征融合,但相機圖像到BEV的轉換因深度估計不準確導致特征錯位;雷達BEV特征稀疏,相機BEV特征因深度誤差存在畸變。 ?核心思路?:提出跨視角查詢融合框架,通過對象查詢(object queries)同時采樣圖像視角(原…

【每日一題】Day 7

560.和為K的子數組 題目&#xff1a; 給你一個整數數組 nums 和一個整數 k &#xff0c;請你統計并返回該數組中和為 k 的子數組的個數 。 子數組是數組中元素的連續非空序列。 示例 1&#xff1a; 輸入&#xff1a;nums [1,1,1], k 2 輸出&#xff1a;2 示例 2&#x…