Linux 網絡編程基礎——網絡模型

網絡模型

  • 網絡模型
    • 1. OSI七層模型
      • 1. 物理層(Physical Layer)
      • 2. 數據鏈路層(Data Link Layer)
      • 3. 網絡層(Network Layer)
      • 4. 傳輸層(Transport Layer)
      • 5. 會話層(Session Layer)
      • 6. 表示層(Presentation Layer)
      • 7. 應用層(Application Layer)
    • 2. TCP/IP模型
      • 1. 網絡接口層(Network Interface Layer)
      • 2. 互聯網層(Internet Layer)
      • 3. 傳輸層(Transport Layer)
      • 4. 應用層(Application Layer)
    • 總結
      • OSI七層模型
      • TCP/IP模型
    • 3. TCP / IP 模型補充
    • TCP/IP模型細節
      • 1. 網絡接口層(Network Interface Layer)
      • 2. 互聯網層(Internet Layer)
      • 3. 傳輸層(Transport Layer)
      • 4. 應用層(Application Layer)
      • 額外注意事項

網絡模型

1. OSI七層模型

OSI(Open Systems Interconnection,開放系統互連)模型是由ISO(International Organization for Standardization,國際標準化組織)制定的一個標準模型,用于描述網絡通信的各個層次。OSI模型將網絡通信分為七層,每一層都有特定的功能和作用。

1. 物理層(Physical Layer)

  • 功能:負責比特流的傳輸,定義物理設備標準,如電纜、插頭、接收器等。
  • 設備:網線、光纖、電纜、集線器、調制解調器。
  • 協議:不涉及特定協議,而是涉及物理媒體標準,如RS-232。

2. 數據鏈路層(Data Link Layer)

  • 功能:提供節點到節點的數據傳輸,負責組幀、MAC地址的尋址和差錯檢測。
  • 設備:交換機、網橋。
  • 協議:以太網(Ethernet)、PPP(Point-to-Point Protocol)、HDLC(High-Level Data Link Control)。

3. 網絡層(Network Layer)

  • 功能:負責數據包的路由選擇和轉發,提供邏輯地址(如IP地址)。
  • 設備:路由器。
  • 協議:IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、IGMP(Internet Group Management Protocol)。

4. 傳輸層(Transport Layer)

  • 功能:提供端到端的可靠傳輸,負責流量控制、錯誤校驗和數據分段重組。
  • 協議:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)。

5. 會話層(Session Layer)

  • 功能:管理會話或連接,負責建立、維護和終止會話。
  • 協議:NetBIOS(Network Basic Input/Output System)、RPC(Remote Procedure Call)。

6. 表示層(Presentation Layer)

  • 功能:處理數據格式的轉換、加密和解密、數據壓縮。
  • 協議:JPEG、MPEG、SSL(Secure Sockets Layer)。

7. 應用層(Application Layer)

  • 功能:直接為用戶和應用程序提供服務,負責網絡應用程序的接口和協議。
  • 協議:HTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)、DNS(Domain Name System)。

2. TCP/IP模型

TCP/IP模型是實際應用中廣泛采用的網絡模型,簡化了OSI模型,將網絡通信分為四層:網絡接口層、互聯網層、傳輸層和應用層。每一層都有特定的功能和協議。

1. 網絡接口層(Network Interface Layer)

  • 功能:負責物理設備上的數據傳輸,包括網卡、交換機等。
  • 設備:網線、交換機、網橋。
  • 協議:以太網(Ethernet)、ARP(Address Resolution Protocol)、PPP(Point-to-Point Protocol)。

2. 互聯網層(Internet Layer)

  • 功能:負責主機間的數據傳輸和路由選擇,提供邏輯地址(如IP地址)。
  • 設備:路由器。
  • 協議:IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、ARP(Address Resolution Protocol)、RARP(Reverse Address Resolution Protocol)。

3. 傳輸層(Transport Layer)

  • 功能:提供端到端的可靠傳輸,負責流量控制、錯誤校驗和數據分段重組。
  • 協議:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)。

4. 應用層(Application Layer)

  • 功能:直接為用戶和應用程序提供服務,負責網絡應用程序的接口和協議。
  • 協議:HTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)、DNS(Domain Name System)、Telnet、SSH(Secure Shell)。

總結

OSI七層模型

  1. 物理層:比特流傳輸,物理設備標準。
  2. 數據鏈路層:節點到節點的數據傳輸,MAC地址尋址。
  3. 網絡層:數據包路由選擇和轉發,邏輯地址(IP地址)。
  4. 傳輸層:端到端的可靠傳輸,流量控制和錯誤校驗。
  5. 會話層:管理會話或連接。
  6. 表示層:數據格式轉換、加密解密、數據壓縮。
  7. 應用層:為用戶和應用程序提供服務。

TCP/IP模型

  1. 網絡接口層:物理設備上的數據傳輸。
  2. 互聯網層:主機間的數據傳輸和路由選擇。
  3. 傳輸層:端到端的可靠傳輸。
  4. 應用層:為用戶和應用程序提供服務。

理解這兩個模型及其各層的功能和協議,是掌握網絡通信的基礎。它們幫助我們分清網絡通信的不同層次,明確每一層的職責,便于排查網絡問題和設計網絡應用。

3. TCP / IP 模型補充

TCP/IP模型細節

1. 網絡接口層(Network Interface Layer)

功能

  • 負責物理設備上的數據傳輸。
  • 處理比特流的傳輸,包括物理連接的建立、維護和斷開。

細節

  • 鏈路層協議:以太網(Ethernet)、Wi-Fi、PPP等協議在這一層運行。
  • MAC地址:每個網絡接口都有一個唯一的物理地址(MAC地址),用于局域網內設備的標識和通信。
  • 幀封裝:這一層將數據封裝成幀進行傳輸,幀包括目的地址、源地址和數據校驗等信息。

2. 互聯網層(Internet Layer)

功能

  • 負責主機間的數據傳輸和路由選擇。
  • 提供邏輯地址(IP地址),用于標識網絡上的設備。

細節

  • IP協議
    • IPv4:使用32位地址,表示形式如192.168.1.1。
    • IPv6:使用128位地址,表示形式如2001:0db8:85a3:0000:0000:8a2e:0370:7334。
  • 路由選擇:互聯網層負責選擇數據包的傳輸路徑,路由器在這一層工作。
  • 子網劃分:通過子網掩碼將IP地址空間劃分成多個子網,提高網絡管理的靈活性。
  • 協議
    • ICMP(Internet Control Message Protocol):用于發送控制消息,如ping和traceroute工具。
    • ARP(Address Resolution Protocol):用于將IP地址解析為MAC地址。
    • RARP(Reverse Address Resolution Protocol):用于將MAC地址解析為IP地址。

3. 傳輸層(Transport Layer)

功能

  • 提供端到端的可靠傳輸,確保數據完整到達目的地。
  • 負責流量控制、錯誤校驗和數據分段重組。

細節

  • TCP協議
    • 連接管理:TCP是面向連接的協議,通過三次握手建立連接,通過四次揮手斷開連接。
    • 可靠傳輸:TCP提供可靠的傳輸,確保數據包按序到達,并通過確認機制檢測和重傳丟失的數據包。
    • 流量控制:TCP通過窗口機制實現流量控制,防止網絡擁塞。
  • UDP協議
    • 無連接:UDP是無連接的協議,數據包獨立傳輸,不保證順序和可靠性。
    • 低延遲:UDP傳輸速度快,適用于對實時性要求高的應用,如視頻流和在線游戲。

4. 應用層(Application Layer)

功能

  • 直接為用戶和應用程序提供服務,負責網絡應用程序的接口和協議。

細節

  • HTTP/HTTPS:用于Web數據傳輸,HTTPS通過SSL/TLS協議提供安全性。
  • FTP:用于文件傳輸,支持文件上傳和下載。
  • SMTP:用于電子郵件的發送,配合POP3和IMAP用于接收郵件。
  • DNS:將域名解析為IP地址,支持互聯網的名稱解析。
  • Telnet和SSH:用于遠程登錄和命令執行,SSH提供安全的加密通信。

額外注意事項

  • 端口號:傳輸層使用端口號來標識應用程序和服務,常見的有HTTP的80端口、HTTPS的443端口、FTP的21端口等。
  • 防火墻:在互聯網層和傳輸層之間,防火墻可以過濾和控制進出網絡的數據包,提供網絡安全。
  • NAT(Network Address Translation):用于將私有IP地址轉換為公共IP地址,通常用于路由器以允許多個設備共享一個公共IP地址。

理解這些細節有助于更全面地掌握TCP/IP模型的各層功能及其在實際網絡通信中的應用。

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

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

相關文章

研發機構大數據遷移如何保障敏感數據不泄露

隨著云計算和大數據技術的飛速進步,越來越多的企業正試圖通過數據遷移來提升IT基礎設施的效率,減少成本,并增強業務的靈活性。但是,這一過程并非沒有它的挑戰,尤其是在數據安全方面。數據在轉移過程中可能會遭遇黑客攻…

SQL的多表聯查

這里我先附上兩張表的數據: Orders 表: OrderIDCustomerID1321324NULL Customers 表: CustomerIDCustomerName1Alice2Bob3Charlie4David INNER JOIN 🤝 概念: INNER JOIN(內連接)返回兩個表中匹配的記錄。如果某條…

解決深度確定問題:使用不相交集合森林

解決深度確定問題:使用不相交集合森林 引言不相交集合森林(DSF)基礎按秩合并與路徑壓縮深度確定問題的解決方案實現MAKE-TREE修改FIND-SET實現FIND-DEPTH實現GRAFT分析最壞情況運行時間結論參考文獻 引言 在計算機科學中,樹結構是…

時空扭曲:重溫相對論的終極挑戰,探尋真理的腳步

大家都知道,相對論是愛因斯坦提出的劃時代理論,為人類認知時空和引力做出了革命性貢獻。但這個理論真的萬無一失嗎?近日,一項新研究提出了測試時間扭曲的新方法,或許能讓我們重新審視相對論在宇宙大尺度上的適用性。 時…

HTML5好看的通用網站模板源碼

文章目錄 1.設計來源1.1 主界面1.2 模板菜單1 界面1.3 模板菜單2 界面1.4 模板菜單3 界面1.5 下拉菜單1 界面1.6 下拉菜單2 界面1.7 模板菜單4 界面1.8 模板菜單5 界面1.9 界面底部 2.效果和源碼2.1 動態效果2.2 源碼目錄2.3 源代碼 源碼下載 作者:xcLeigh 文章地址…

Python 造數據神器Faker

大家好,在編寫代碼過程中,我們經常需要一些假數據來進行測試或者演示。手動創建這些數據不僅耗時,而且容易出錯。幸運的是,Python有一個非常有用的庫叫做Faker,它可以生成各種類型的假數據,從名字、地址到公…

【驅動】ARM手冊引腳寄存器地址(絕對物理地址)查找(以AM437x為例)

1、問題描述 在配置設備樹時,經常遇到如下宏: XXX_IOPAD(pa, val)實際定義如下: DRA7XX_CORE_IOPAD(pa, val) AM33XX_IOPAD(pa, val) DM816X_IOPAD(pa, val) DM814X_IOPAD(pa, val) AM4372_IOPAD(pa, val)一般注釋中的說明如下: 原文:Macro to allow using the absol…

md5和byte64字符串加密

說明:最近碰到一個需求,網絡請求,傳遞json的時候,必須加密,對字符串加密,然后前端去解密字符串,然后解析json,展示數據,可逆 step1: Md5加密方式 package com.example.…

Java技術精粹:高級面試問題與解答指南(一)

Java 面試問題及答案 問題1:請解釋Java中的多態性,并給出一個例子。 答案: 多態性是Java中的一個重要特性,它允許一個引用類型可以指向多種實際類型的對象,并且可以通過這個引用調用實際對象的方法。多態性主要通過繼…

JAVA:常見的加密算法簡介

一、前言 加密算法是指將明文信息轉變為密文信息的過程,即將信息從可讀形式(明文)轉換為加密形式(密文)的過程。在加密過程中,信息通過加密算法和加密密鑰被加密處理,加密后的信息(密…

【代碼隨想錄算法訓練Day17】LeetCode 110. 平衡二叉樹、LeetCode 257.二叉樹的所有路徑、LeetCode 404.左葉子之和

Day17 二叉樹第四天 LeetCode 110. 平衡二叉樹【后序遍歷】 平衡二叉樹仍是后序遍歷,就是獲取左右子樹的高度然后作差,如果子樹就不平衡,那么就直接將-1向上傳給父節點,否則該數的高度為左右子樹高度的最大值1。 class Solutio…

day 38 435.無重疊區間 763.劃分字母區間 56. 合并區間 738.單調遞增的數字 968.監控二叉樹

435.無重疊區間 思路 為了使區間盡可能的重疊所以排序來使區間盡量的重疊,使用左邊界排序來統計重疊區間的個數與452. 用最少數量的箭引爆氣球恰好相反。 代碼 class Solution {public int eraseOverlapIntervals(int[][] intervals) {Arrays.sort(intervals,(a,…

如何在cPanel面板中開啟盜鏈保護

本周有一個客戶,購買Hostease的主機, 客戶購買的是Linux虛擬主機,帶cPanel面板的。詢問我們的在線客服,如何可以防止他的網站上的圖片不被盜用。cPanel的盜鏈保護功能可以幫助客戶防止圖片被盜鏈。 盜鏈(Hotlinking&a…

.NET Core與.NET Framework的區別

.NET Core和.NET Framework是微軟提供的兩種主要的開發平臺,用于構建各種應用程序。雖然它們都基于.NET技術,但在架構、平臺支持、性能、開發工具和社區支持等方面存在顯著差異。本文將詳細探討.NET Core和.NET Framework的主要區別,幫助開發…

呆馬科技----構建智能可信的踏勘云平臺

近年來,隨著信息技術的快速發展,各個行業都在積極探索信息化的路徑,以提升工作效率和服務質量。智慧踏勘云平臺是基于區塊鏈和大數據技術構建的全流程智慧可信踏勘解決平臺。平臺集遠程視頻、數據顯示、工作調度、過程記錄為一體,…

有容量限制的車輛路徑規劃問題(Capacitated Vehicle Routing Problem)

在看matlab的時候發現了這篇文章https://www.frontiersin.org/articles/10.3389/fict.2019.00013/full 仔細閱讀一下。(英語渣渣,自學用) The Capacitated Vehicle Routing Problem (CVRP) is an NP-optimization problem (NPO) that has been of great interest …

圖像處理之邊緣檢測(C++)

圖像處理之邊緣檢測(C) 文章目錄 圖像處理之邊緣檢測(C)前言一、Roberts算子1.原理2.代碼實現 二、Sobel算子1.原理2.代碼實現 三、Prewitt算子1.原理2.代碼實現 四、Laplacian算子1.原理2.代碼實現 五、LOG算子1.原理2.代碼實現 …

完全匹配企業需求的替代FTP升級軟件怎么找

企業在處理數據傳輸時,效率和安全性是關鍵。盡管傳統的FTP曾被廣泛采用,但因其傳輸慢、安全性不足和難以管理等問題,已不再滿足現代企業的需求。許多企業正在尋找能夠滿足其需求的FTP替代方案,但市場上選擇眾多,找到合…

Python01:初入Python(Mac)

Python環境準備 下載Python:官網https://www.python.org/ 下載PyCharm:官網https://www.jetbrains.com/pycharm/download Python與PyCharm的關系 Python(解釋器):機器語言—>翻譯人員–>翻譯成電腦能讀懂的 PyC…

STM32應用開發進階--SPI總線(7腳OLED中景園ss1306+HAL庫_硬件SPI/軟件模擬SPI)

實現目標 1、掌握SPI總線基礎知識; 2、會使用軟件模擬SPI總線和STM32硬件SPI總線; 3、 學會STM32CubeMX軟件關于SPI的配置; 4、掌握OLED顯示屏驅動; 5、具體目標:(1)用STM32硬件SPI驅動OLED顯示“你好…