【探索Linux】—— 強大的命令行工具 P.24(網絡基礎)

在這里插入圖片描述

閱讀導航

  • 引言
  • 一、計算機網絡背景
    • 1. 網絡發展歷史
  • 二、認識 "協議"
    • 1. 網絡協議概念
    • 2. 網絡協議初識
      • (1)協議分層
      • (2)OSI參考模型(Open Systems Interconnection Reference Model)
      • (3) TCP/IP協議族模型
  • 三、網絡傳輸基本流程
    • 1. 同一個網段內的兩臺主機進行文件傳輸
    • 2. 跨網段的主機的文件傳輸
  • 四、數據包封裝和分用
    • 1. 數據包封裝(Packet Encapsulation)
    • 2. 數據包分用(Packet Demultiplexing)
  • 五、網絡中的地址管理
    • 1. IP地址
    • 2. MAC地址
  • 溫馨提示

引言

在當今互聯網時代,Linux操作系統在服務器領域占據著舉足輕重的地位。作為開源軟件的杰出代表,Linux以其穩定性、靈活性和高度可定制性而聞名。在Linux系統中,網絡編程一直是一個重要的領域,無論是開發服務器應用程序還是網絡服務,對于網絡基礎的理解都是至關重要的。本文旨在探討Linux網絡基礎知識,包括網絡的簡單發展歷史、網絡傳輸的基本邏輯以及網絡傳輸基本流程,幫助讀者深入了解Linux下的網絡編程原理和實踐應用。通過本文的學習,讀者將能夠更好地掌握Linux系統下網絡編程的核心概念,為后續深入學習和實際應用打下堅實的基礎。

一、計算機網絡背景

1. 網絡發展歷史

🍪網絡發展歷史可以從以下幾個關鍵時期展開介紹:

  1. 60年代到70年代初:ARPANET時期

ARPANET是美國國防部高級研究計劃局(ARPA)于20世紀60年代初開展的一個計劃,旨在建立一種新型的通訊方法,以便對分布在美國各地的研究機構進行互聯。ARPANET采用了分組交換的方式,通過將數據分成若干個小的數據包進行傳輸,從而避免了傳統電路交換的局限性。

  1. 70年代中期到80年代末:TCP/IP時期

1974年,美國國防部下屬的高級研究計劃局(ARPA)開始了一個新的項目,旨在開發一種新的協議套件,即TCP/IP協議套件。TCP/IP協議套件是目前互聯網所采用的基本協議,它由兩個協議組成:傳輸控制協議(TCP)和互聯網協議(IP)。這兩個協議的出現,使得互聯網實現了規模化的發展。

  1. 90年代到2000年代初:萬維網時期

1991年,蒂姆·伯納斯-李(Tim Berners-Lee)在CERN(歐洲核子研究組織)創建了第一個Web服務器,開發了第一個Web瀏覽器,從而使得萬維網(World Wide Web)開始應運而生。萬維網的出現,極大地促進了互聯網信息的傳播和共享,成為了互聯網發展的一個重要時期。

  1. 2000年代中期至今:移動互聯網時期

隨著智能手機、平板電腦等移動設備的普及,移動互聯網開始成為互聯網新的增長點。移動互聯網技術的快速發展,使得人們可以隨時隨地進行信息的交流和共享,網絡應用也逐漸從PC端轉向移動端,其范圍和應用場景不斷拓展。

在這里插入圖片描述
網絡發展歷程是不斷演化和壯大的過程,它推動了人類社會的信息化進程,也催生了一系列新興技術和應用。未來,隨著物聯網、5G等技術的不斷發展,網絡將進一步融入我們的生活和工作中,為我們帶來更多便利。

二、認識 “協議”

1. 網絡協議概念

協議是指在計算機網絡中,為了實現數據通信和信息交換而制定的一系列規則和約定。這些規則和約定規定了數據傳輸的格式、順序、錯誤檢測與糾正、數據的確認方式等,確保不同設備之間能夠有效地通信和協作。

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

2. 網絡協議初識

(1)協議分層

計算機網絡中的協議通常按照功能和目的分為不同的層次,這種組織結構被稱為協議分層。常見的協議分層模型是OSI參考模型和TCP/IP協議族模型。

(2)OSI參考模型(Open Systems Interconnection Reference Model)

OSI(Open Systems Interconnection)參考模型是一個由國際標準化組織(ISO)制定的用于網絡通信協議設計的參考框架,將計算機網絡通信劃分為七個層次,每個層次負責不同的功能。

  1. 應用層(Application Layer):應用層是最靠近用戶的一層,提供用戶應用程序與網絡的接口。它定義了用戶與網絡服務之間的通信規則,包括數據格式、加密和身份驗證等。

  2. 表示層(Presentation Layer):表示層負責處理數據的格式化、編碼和加密,確保不同系統之間能夠正確解釋、顯示和交換數據。

  3. 會話層(Session Layer):會話層管理不同設備之間的會話(session),包括建立、維護和終止會話連接,以及處理數據傳輸中出現的錯誤和恢復機制。

  4. 傳輸層(Transport Layer):傳輸層負責可靠地傳輸數據,提供端到端的數據傳輸服務,包括流量控制、錯誤檢測和糾正,以及數據重傳。

  5. 網絡層(Network Layer):網絡層處理數據在網絡中的路由和轉發,負責確定數據的最佳路徑,并實現不同網絡之間的互聯互通。

  6. 數據鏈路層(Data Link Layer):數據鏈路層負責在相鄰節點之間傳輸數據,通過物理地址(MAC地址)進行數據幀的傳輸和接收。

  7. 物理層(Physical Layer):物理層負責在物理媒介上傳輸比特流,包括電氣信號、光信號等,以及定義傳輸媒介的接口標準和傳輸速率。

在這里插入圖片描述
這種七層模型的分層設計使得不同層次的協議可以獨立開發和實現,同時也提供了靈活性和可擴展性,促進了網絡通信協議的發展和應用。

(3) TCP/IP協議族模型

在這里插入圖片描述

?這些分層模型將網絡通信劃分為多個層次,每個層次負責特定的功能,且各層之間通過定義好的接口進行交互。通過分層設計,不同層次的協議可以獨立地進行開發、實現和維護,提高了系統的可擴展性和靈活性,同時也方便了協議的替換和更新
在這里插入圖片描述

在實際的網絡通信中,每個層次的協議都有其特定的作用和職責,通過協同工作,實現了復雜的網絡通信需求。例如,應用層協議負責定義應用程序間的通信規則,傳輸層協議負責提供端到端的數據傳輸服務,網絡層協議負責進行數據包的路由和轉發,數據鏈路層協議負責實現數據在物理介質上的傳輸等。

三、網絡傳輸基本流程

1. 同一個網段內的兩臺主機進行文件傳輸

在這里插入圖片描述

2. 跨網段的主機的文件傳輸

🍔數據從一臺計算機到另一臺計算機傳輸過程中要經過一個或多個路由器
在這里插入圖片描述

  1. ARP(地址解析協議)請求:當源主機要發送數據到目標主機時,首先需要確定目標主機的物理地址(MAC地址)。如果目標主機的IP地址不在同一子網內,源主機會向本地路由器發送ARP請求,以獲取目標主機所在網段的網關路由器的MAC地址。

  2. 路由器轉發:本地路由器接收到數據包后,根據目標主機的IP地址和路由表信息,確定下一跳路由器的IP地址,并將數據包轉發給下一跳路由器。

  3. 跨網段傳輸:數據包經過本地路由器后,進入到連接不同網絡的路由器,這些路由器負責在不同網絡之間傳輸數據。每個路由器根據目標主機的IP地址和路由表信息,決定數據包的下一跳路由器或目標主機。

  4. 目標主機接收:最終數據包到達目標主機所在網絡的路由器,路由器將數據包轉發給目標主機。目標主機接收數據包,并進行相應的處理,將數據包重新組裝為文件。

🚩總而言之,在跨網段的主機文件傳輸過程中,涉及到源主機和目標主機之間的IP地址解析、跨網段傳輸、路由器的轉發等步驟,網絡中的路由器起著至關重要的作用,負責在不同網絡之間進行數據包的轉發和路由選擇,確保數據能夠準確、高效地傳輸到目標主機。這些網絡變化和數據傳輸過程都是在網絡層(第三層)和數據鏈路層(第二層)上進行的

四、數據包封裝和分用

1. 數據包封裝(Packet Encapsulation)

數據包封裝是將要傳輸的數據劃分為小塊,并在每個數據塊(稱為分組或數據包)中添加必要的標識和控制信息的過程。封裝發生在發送方主機上,主要涉及到從應用層到物理層的不同網絡協議層。

  1. 應用層封裝:應用層負責將要傳輸的數據劃分為較小的數據塊,通常稱為消息或報文。每個消息或報文都會被添加一個應用層頭部,其中包含了源和目標應用程序的端口號等信息。

  2. 傳輸層封裝:傳輸層接收應用層的數據塊,并在每個數據塊的前面增加傳輸層頭部。傳輸層頭部包含了源和目標主機的端口號、傳輸協議(如TCP或UDP)以及用于錯誤檢測的校驗和等信息。

  3. 網絡層封裝:網絡層接收傳輸層的數據塊,為每個數據塊添加網絡層頭部。網絡層頭部包含了源和目標主機的IP地址,以及用于路由選擇和數據分片的其他信息。

  4. 數據鏈路層封裝:數據鏈路層接收網絡層的數據塊,并在每個數據塊的前面增加數據鏈路層頭部。數據鏈路層頭部包含了源和目標主機的MAC地址,以及用于錯誤檢測和流量控制的其他信息。

最終,數據包被封裝為一個完整的數據幀,該幀包含了從應用層到物理層的所有頭部和數據內容。
在這里插入圖片描述

2. 數據包分用(Packet Demultiplexing)

數據包分用是在接收方主機上將接收到的數據包按照協議層次進行解析和處理的過程。數據包分用發生在接收方主機的物理層到應用層之間。

  1. 物理層分用:物理層接收到數據包后,根據物理媒介(如電纜或無線信號)的特性將數據傳遞給數據鏈路層。

  2. 數據鏈路層分用:數據鏈路層首先解析數據鏈路層頭部,獲取目標主機的MAC地址等信息,然后將數據包傳遞給網絡層。

  3. 網絡層分用:網絡層解析網絡層頭部,根據目標IP地址確定數據包的下一步處理方式,將數據包傳遞給傳輸層。

  4. 傳輸層分用:傳輸層解析傳輸層頭部,根據端口號等信息將數據包傳遞給相應的應用程序。

  5. 應用層分用:最后,應用層解析應用層頭部和數據內容,將數據交給目標應用程序進行處理。

通過數據包分用,接收方主機能夠正確地將接收到的數據包傳遞給相應的應用程序進行進一步處理和響應。
在這里插入圖片描述

五、網絡中的地址管理

1. IP地址

IP地址(Internet Protocol Address)是在互聯網上用于識別和定位計算機或網絡設備的唯一地址。它是在TCP/IP協議中定義的一種地址,用于在網絡中準確定位主機或路由器,并實現數據包的傳輸和路由。

IP地址通常分為IPv4地址和IPv6地址兩種類型:

  1. IPv4地址:IPv4地址是目前廣泛采用的IP地址格式,由32位二進制數表示,通常以4組十進制數(0-255)表示,每組之間用點號分隔。例如,192.168.1.1是一個常見的IPv4地址。

  2. IPv6地址:IPv6地址是為了解決IPv4地址空間不足的問題而推出的新一代IP地址格式,采用128位二進制數表示,通常以8組16進制數表示,每組之間用冒號分隔。例如,2001:0db8:85a3:0000:0000:8a2e:0370:7334是一個IPv6地址。

IP地址被分為兩部分:網絡部分和主機部分。網絡部分用來標識網絡,主機部分用來標識該網絡中的主機或設備。根據不同的IP地址類別,網絡部分和主機部分的劃分方式不同。

IP地址的作用包括但不限于以下幾點:

  • 確定主機或設備在網絡中的位置和身份。
  • 實現數據包的路由和轉發。
  • 提供網絡通信中的端到端連接。
  • 支持互聯網上各種應用和服務的正常運作。

在網絡通信中,IP地址是一個非常重要的概念,它是整個互聯網中數據傳輸和通信的基礎。不同的主機通過其唯一的IP地址可以相互識別和進行通信,從而實現信息的交換和資源共享

2. MAC地址

MAC地址(Media Access Control Address)是網絡設備(如計算機、路由器、網絡打印機等)網卡上的硬件地址,用于在局域網中唯一標識網絡設備。每個網絡設備的網卡都有一個唯一的MAC地址,由廠商在生產過程中分配,并以十六進制數表示。

MAC地址通常由6組16進制數表示,用冒號或連字符分隔,例如:00:1A:2B:3C:4D:5E。其中,前3組數字代表了廠商識別碼(Organizationally Unique Identifier,OUI),由IEEE注冊管理,用來識別設備的廠商,后面3組數字是由廠商分配給設備的唯一標識。

MAC地址的作用包括但不限于以下幾點:

  • 在局域網中唯一標識網絡設備,用于進行數據幀的尋址和傳輸。
  • 作為數據鏈路層的一個重要參數,用于實現局域網中設備之間的數據通信。

在局域網中,當一個設備需要向另一個設備發送數據時,它會將數據幀封裝,并在數據幀中附加目標設備的MAC地址。網絡設備會根據目標MAC地址來判斷是否接收該數據幀。因此,MAC地址在局域網中扮演著非常重要的角色,它是實現局域網內設備通信的關鍵。

🚨🚨注意:MAC地址是數據鏈路層的概念,它只在局域網范圍內具有唯一性,而不同的局域網中可能存在相同的MAC地址。在跨網段通信時,會使用IP地址來確定目標設備的位置和身份,而不直接使用MAC地址。

溫馨提示

感謝您對博主文章的關注與支持!如果您喜歡這篇文章,可以點贊、評論和分享給您的同學,這將對我提供巨大的鼓勵和支持。另外,我計劃在未來的更新中持續探討與本文相關的內容。我會為您帶來更多關于Linux以及C++編程技術問題的深入解析、應用案例和趣味玩法等。如果感興趣的話可以關注博主的更新,不要錯過任何精彩內容!

再次感謝您的支持和關注。我們期待與您建立更緊密的互動,共同探索Linux、C++、算法和編程的奧秘。祝您生活愉快,排便順暢!
在這里插入圖片描述

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

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

相關文章

NoSQL--1.虛擬機網絡配置

目錄 1.初識NoSQL 1.1 NoSQL之虛擬機網絡配置 1.1.1 首先,導入預先配置好的NoSQL版本到VMware Workstation中 1.1.2 開啟虛擬機操作: 1.1.2.1 點擊開啟虛擬機: 1.1.2.2 默認選擇回車CentOS Linux(3.10.0-1127.e17.x86_64) 7 …

cobalt strike釣魚lnk報錯:無法連接到遠程服務器

筆者在學習 cobalt strike 制作釣魚文件時發現多次失敗,在 win10 虛擬機的 powershell 的多次排查后發現這樣一個報錯: 使用“1”個參數調用“DownloadString”時發生異常:“無法連接到遠程服務器“ 經過多次排查后發現問題出在 cs 的 team server上&…

解決:Glide 在回調中再次加載圖片報錯

一、問題說明 Glide 加載圖片時監聽了回調&#xff0c;并在失敗時再次加載其它圖片后報錯。 代碼&#xff1a; Glide.with(mContext).load(imgTeacher).listener(new RequestListener<Drawable>() {Overridepublic boolean onLoadFailed(Nullable GlideException e, O…

MCU 串口接收環形緩沖區的實現

環形緩沖區 1. 環形緩沖區的特性 1.先進先出 2. 當緩沖區被使用完&#xff0c;且又有新的數據需要存儲時&#xff0c;丟掉歷史最久的數據&#xff0c;保存最新的數據 現實中的存儲介質都是線性的&#xff0c;因此我們需要做一下處理&#xff0c;才能在功能上實現環形緩沖區 …

[計算機網絡]--I/O多路轉接之poll和epoll

前言 作者&#xff1a;小蝸牛向前沖 名言&#xff1a;我可以接受失敗&#xff0c;但我不能接受放棄 如果覺的博主的文章還不錯的話&#xff0c;還請點贊&#xff0c;收藏&#xff0c;關注&#x1f440;支持博主。如果發現有問題的地方歡迎?大家在評論區指正 目錄 一、poll函…

web漏洞與規避

文章目錄 一、XSS 跨站腳本攻擊1.1 XSS攻擊的主要類型反射型XSS存儲型XSSDOM型XSS 1.2 前端開發如何應對XSS 二、CSRF 跨站請求偽造2.1 CSRF例子2.2 前端開發如何應對CSRF 三、SQL 注入3.1 前端如何防御SQL注入 四、前端如何使用CSP 一、XSS 跨站腳本攻擊 攻擊者通過在受害者的…

stm32學習筆記:IIC通信(未完)

概述 第一塊&#xff1a;介紹協議規則&#xff0c;然后用軟件模擬的形式來實現協議。 第二塊&#xff1a;介紹STM32的iic外設&#xff0c;然后用硬件來實現協議。 程序一現象&#xff1a;通過軟件I2C通信&#xff0c;對MPU6050芯片內部的寄存器進行讀寫&#xff0c;寫入到配…

【Synchronized同步原理】

Synchronized同步原理 1. synchronized的使用&#xff1f;2. 如何保證線程安全的&#xff1f;3.可重入原理&#xff08;加鎖次數計數器&#xff09;4. 原子性和可見性(順序性) 1. synchronized的使用&#xff1f; 對象鎖方法鎖類鎖 2. 如何保證線程安全的&#xff1f; publi…

關于數據提交上傳服務端的數據類型以及項目打包上線的流程

1 請求頭的類型&#xff1a; content-type&#xff1b; 01: application/json 數據以json格式請求&#xff1a;{"key":"value"} 02: application/x-www.form-urlencoded from表單的數據格式 name"zs"&age12 03 mutipart/form-data…

重學SpringBoot3-自動配置機制

重學SpringBoot3-自動配置機制 引言Spring Boot 自動配置原理示例&#xff1a;Spring Boot Web 自動配置深入理解總結相關閱讀 引言 Spring Boot 的自動配置是其最強大的特性之一&#xff0c;它允許開發者通過最少的配置實現應用程序的快速開發和部署。這一切都得益于 Spring …

飛槳(PaddlePaddle)模型保存與加載教程

文章目錄 飛槳&#xff08;PaddlePaddle&#xff09;模型保存與加載教程1. 概述2. 訓練調優場景2.1 保存動態圖模型2.2 加載動態圖模型 3. 推理部署場景3.1 使用基礎API 4. 其他場景4.1 舊版本格式兼容載入4.2 靜態圖模型的保存與加載 5. 總結 飛槳&#xff08;PaddlePaddle&am…

OmniPlan Pro mac版:簡單、智能,項目管理新選擇!

OmniPlan Pro是一款功能強大的項目管理軟件&#xff0c;它以其直觀的用戶界面和豐富的功能&#xff0c;幫助用戶輕松管理各種復雜的項目。無論是個人任務還是團隊協作&#xff0c;OmniPlan Pro都能提供全面的解決方案&#xff0c;讓項目管理變得更加簡單高效。 OmniPlan Pro軟…

從0開始回顧Mysql --- MySQL初體驗

大白話從0開始回顧MySQL&#xff0c;去除了一些繁瑣的操作的演示以及內容&#xff0c;如MySQL安裝等&#xff0c;本篇文章適合復習MySQL語法&#xff0c;學習MySQL語句&#xff0c;對MySQL不太熟練的同學&#xff0c;希望對大家有一些幫助。 MySQL初體驗 首先&#xff0c;我將…

如何在Window系統部署VisualSVN服務并結合cpolar實現無公網ip遠程訪問

文章目錄 前言1. VisualSVN安裝與配置2. VisualSVN Server管理界面配置3. 安裝cpolar內網穿透3.1 注冊賬號3.2 下載cpolar客戶端3.3 登錄cpolar web ui管理界面3.4 創建公網地址 4. 固定公網地址訪問 前言 SVN 是 subversion 的縮寫&#xff0c;是一個開放源代碼的版本控制系統…

數字孿生與智慧交通的融合發展:推動交通行業數字化轉型,構建智慧城市新生態

隨著信息技術的快速發展和城市化進程的深入推進&#xff0c;交通行業正面臨著前所未有的機遇與挑戰。傳統的交通管理模式已難以滿足日益增長的交通需求&#xff0c;而數字化轉型則成為了推動交通行業創新發展的必由之路。數字孿生技術作為一種前沿的信息技術手段&#xff0c;為…

聊一聊腦機接口

截至我所知的信息&#xff0c;腦機接口&#xff08;Brain-Computer Interface, BCI&#xff09;技術正在迅速發展&#xff0c;但仍處于相對早期階段。這一領域的研究涉及神經科學、工程學、計算機科學和人工智能等多個學科。以下是一些關于腦機接口目前進展的要點&#xff1a; …

基于springboot+vue的公寓報修管理系統

博主主頁&#xff1a;貓頭鷹源碼 博主簡介&#xff1a;Java領域優質創作者、CSDN博客專家、阿里云專家博主、公司架構師、全網粉絲5萬、專注Java技術領域和畢業設計項目實戰&#xff0c;歡迎高校老師\講師\同行交流合作 ?主要內容&#xff1a;畢業設計(Javaweb項目|小程序|Pyt…

每天的三哥牌小雞腿沒了

查看印度基金(164824)公告&#xff0c;從2024年2月28日起&#xff0c;暫停印度基金的申購&#xff0c;限額100塊的一拖七套利告一段落。這意味著看好印度股市的國內投資者&#xff0c;以后只能通過在場內買入獲得份額。 關于暫停申購的原因&#xff0c;官方說是為保護基金持有…

學Python如此簡單--停車管理模塊

簡介 &#xff08;本停車場一個小時4塊&#xff09; 模塊名稱&#xff1a;黑心停車管理模塊 模塊功能&#xff1a;汽車進場錄入、汽車出場收費 代碼 #進入停車場 def enter():print(歡迎進入黑心停車場)#模擬識別車牌號car_number input(請輸入車牌號:)t 0 #停車時間car…

重磅!交通領域頂級會議TRB會議將進行重大改革

美國交通研究委員會年會&#xff08;Transportation Research Board annual meeting,以下簡稱TRB會議&#xff09;是由美國交通研究委員會舉辦的交通領域的國際頂級會議。該會議每年舉辦一次&#xff0c;在華盛頓特區召開。TRB會議是交通研究領域知名度最高的學術會議之一&…