【計算機網絡】網絡層協議

1. ICMP協議的介紹及應用

IP協議的助手 —— ICMP 協議

ping 是基于 ICMP 協議工作的,所以要明白 ping 的工作,首先我們先來熟悉 ICMP 協議

ICMP 全稱是 Internet Control Message Protocol,也就是互聯網控制報文協議
里面有個關鍵詞 —— 控制,如何控制的呢?

網絡包在復雜的網絡傳輸環境里,常常會遇到各種問題。當遇到問題的時候,總不能死的不明不白,沒頭沒腦的作風不是計算機網絡的風格。所以需要傳出消息,報告遇到了什么問題,這樣才可以調整傳輸策略,以此來控制整個局面。

ICMP 主要的功能包括:

  • 確認 IP 包是否成功送達目標地址
  • 報告發送過程中 IP 包被廢棄的原因和改善網絡設置等

image.png

IP 包中有一個字段叫做 TTLTime To Live,生存周期),它的值隨著每經過一次路由器就會減 1,直到減到 0 時該 IP 包會被丟棄。

此時,路由器將會發送一個 ICMP 超時消息給發送端主機,并通知該包已被丟棄。

設置 IP 包生存周期的主要目的,是為了在路由控制遇到問題發生循環狀況時,避免 IP 包無休止地在網絡上被轉發。

image.png

ping —— 查詢報文類型的使用

同個子網下的主機 A 和 主機 B,主機 A 執行ping 主機 B 后,我們來看看其間發送了什么?

image.png

traceroute —— 差錯報文類型的使用

有一款充分利用 ICMP 差錯報文類型的應用叫做 traceroute(在UNIX、MacOS中是這個命令,而在Windows中對等的命令叫做 tracert )。

  1. traceroute 作用一

traceroute 的第一個作用就是故意設置特殊的 TTL,來追蹤去往目的地時沿途經過的路由器。
traceroute 的參數指向某個目的 IP 地址

traceroute 192.168.1.100

這個作用是如何工作的呢?

它的原理就是利用 IP 包的生存期限1 開始按照順序遞增的同時發送 UDP 包,強制接收 ICMP 超時消息的一種方法。

比如,將 TTL 設置 為 1,則遇到第一個路由器,就犧牲了,接著返回 ICMP 差錯報文網絡包,類型是時間超時

接下來將 TTL 設置為 2,第一個路由器過了,遇到第二個路由器也犧牲了,也同時返回了 ICMP 差錯報文數據包,如此往復,直到到達目的主機。

這樣的過程,traceroute 就可以拿到了所有的路由器 IP

發送方如何知道發出的 UDP 包是否到達了目的主機呢?

traceroute 在發送 UDP 包時,會填入一個不可能的端口號值作為 UDP 目標端口號(大于 3000 )。當目的主機,收到 UDP 包后,會返回 ICMP 差錯報文消息,但這個差錯報文消息的類型是「端口不可達」。 所以,當差錯報文類型是端口不可達時,說明發送方發出的 UDP 包到達了目的主機。

  1. traceroute 作用二

traceroute 還有一個作用是故意設置不分片,從而確定路徑的 MTU

這么做是為了什么?

這樣做的目的是為了路徑MTU發現

因為有的時候我們并不知道路由器的 MTU 大小,以太網的數據鏈路上的 MTU 通常是 1500 字節,但是非以外網的 MTU 值就不一樣了,所以我們要知道 MTU 的大小,從而控制發送的包大小。

image.png

它的工作原理如下:

首先在發送端主機發送 IP 數據報時,將 IP 包首部的分片禁止標志位設置為 1。根據這個標志位,途中的路由器不會對大數據包進行分片,而是將包丟棄。

隨后,通過一個 ICMP 的不可達消息將數據鏈路上 MTU 的值一起給發送主機,不可達消息的類型為「需要進行分片但設置了不分片位」。

發送主機端每次收到 ICMP 差錯報文時就減少包的大小,以此來定位一個合適的 MTU 值,以便能到達目標主機。

2. 內網穿透

內網穿透,即NAT(Network Address Translator)穿透,是指計算機在內網(局域網)內使用私有IP地址,在連接外網(互聯網)時使用全局IP地址的技術。該技術被普遍使用在有多臺主機但只通過一個公有IP地址訪問的私有網絡中。

舉個例子:比如我在實驗室配置了一個服務器 Server A,當我在實驗室的時候,就可以通過自己的筆記本使用SSH連接【因為我和服務器處于一個局域網】,當我回宿舍以后,就沒有辦法直接使用SSH連接了【因為我和服務器不在一個局域網】,這個時候就需要進行NAT穿透,讓我在宿舍也可以使用SSH連接Server A。

1. NAT原理解析

  • 當信息由局域網向因特網傳遞時,源地址從專有地址轉換為公用地址。由路由器跟蹤每個連接上的目的地址和端口。
  • 當數據返回路由器時,通過記錄的連接跟蹤數據來決定該轉發給內部網的哪個主機;如果此時如果有多個公用地址可用,當數據包返回時,則會客戶機的端口號可以用來分解數據包。
圖例:

下圖以10.0.0.10的主機與163.221.120.9的主機進行通信為例進行講解。

image.png

  • 首先NAT路由器將發送源地址從私有IP地址(10.0.0.10)轉換為全局的IP地址 (202.244.174.37)再發送數據

  • 當數據從地址163.221.120.9發過來時,NAT路由器將目標地址從原句IP地址(202.244.174.37)先轉換成私有IP地址10.0.0.10以后再轉發

3. 動態路由協議

雖然靜態路由在某些時刻很有用,但是必須手工配置每條路由條目,對于大中型網絡或拓撲經常改變的情況,配置和維護靜態路由的工作量變得非常繁重,因此使用動態路由是必要的。

動態路由協議 , 用來實現路由器之間的動態路由表更新

路由器在配置了接口的P地址后,就會將直連網段存儲在路由表中。對于非直連的網段,如果使用靜態路由,需要在路由器上配置到達目標網段需要經過的下一跳地址,也就是說,需要人為指定一條數據傳輸的路徑,手工構造路由表。

image.png

如果使用動態路由協議,路由器之間就會將自己的路由信息向相鄰的路由器發送,并接收相鄰路由發過來的路由信息,有選擇地保護這些路由信息,生成自己的路由表。

image.png

  • 舉例:OSPF(Open Shortest Path First,開放最短路徑優先)

鏈路狀態路由算法

工作原理
每個路由器將自己的鏈路狀態信息洪泛(flooding)到網絡上的所有路由器。

  • 最后,每個路由器都會紙雕整個網絡的拓撲結構(LSDB)
  • 每個路由器使用的是最短路徑算法計算最短路徑,來更新路由表
  • 路由器的鏈路狀態發生變化的時候會繼續洪泛自身的鏈路狀態信息到其他的路由器

參考鏈接

  1. # 動態路由協議(一)
  2. # 內網穿透原理總結與工具推薦

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

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

相關文章

LabVIEW準分子激光器智能控制系統

LabVIEW 開發準分子激光器智能控制系統,針對放電激勵型準分子激光器強電磁干擾環境下的控制難題,采用 “PC 端 LabVIEW 人機交互 MCU 端實時控制 光纖隔離通信” 架構,實現激光能量閉環控制、腔體環境監測、氣路自動管理等功能。硬件選用 N…

BUUCTF[極客大挑戰 2019]EasySQL 1題解

[極客大挑戰 2019]EasySQL題解 分析解題過程漏洞原理分析明確注入點:嘗試萬能密碼法法一法二 總結 分析 從題目分析,這道題應該與SQL注入有關,啟動靶機之后,訪問url是一個登錄界面,隨便輸入用戶名密碼之后&#xff0…

05.MySQL表的約束

MySQL表的約束 MySQL表的約束 1. 空屬性 2. 默認值 3. 列描述 4. zerofill 5. 主鍵 6. 自增長 7. 唯一鍵 8. 外鍵 9. 綜合案例 MySQL表的約束 說到 MySQL 表的約束,這絕對是數據庫設計里繞不開的一個話題。很多人一提“約束”,第一反應可能是字段的數據…

Web3如何重塑數據隱私的未來

在這個信息爆炸的時代,數據隱私已成為我們不得不面對的嚴峻問題。Web3,作為下一代互聯網的代表,以其去中心化、用戶主權和數據安全等特點,正在重塑數據隱私的未來。它不僅僅是技術的革新,更是對個人隱私保護理念的一次…

網絡編程之TCP編程

基于 C/S &#xff1a;客戶端&#xff08;client&#xff09;/服務器端&#xff08;server&#xff09; 1.流程 2. 函數接口 所有函數所需頭文件&#xff1a; #include <sys/types.h> #include <sys/socket.h> 系統定義好了用來存儲網絡信息的結構體 ipv4通信使…

各個布局的區別以及示例

各個布局的區別以及示例 在前端開發中&#xff0c;常見的布局方式主要有以下幾種&#xff0c;每種布局都有其適用場景和特點&#xff1a; 1. 普通文檔流&#xff08;Normal Flow&#xff09; 特點&#xff1a;默認布局方式&#xff0c;元素按照HTML順序依次排列。適用場景&am…

性能優化 - 理論篇:常見指標及切入點

文章目錄 引言一、 Java 性能優化的核心思路二、為什么要度量&#xff1f;三、常用性能衡量指標詳解3.1 吞吐量與響應速度3.2 響應時間的具體度量&#xff1a;平均響應時間與百分位數3.3 并發量3.4 秒開率&#xff08;頁面秒開&#xff09;3.5 正確性&#xff08;功能可用性&am…

第2講、Odoo深度介紹:開源ERP的領先者

一、Odoo深度介紹&#xff1a;開源ERP的領先者 Odoo&#xff0c;其前身為OpenERP&#xff0c;是一款在全球范圍內廣受歡迎的開源企業管理軟件套件。它不僅僅是一個ERP系統&#xff0c;更是一個集成了客戶關系管理&#xff08;CRM&#xff09;、電子商務、網站構建、項目管理、…

Telerik生態整合:Kendo UI for Angular組件在WinForms應用中的深度嵌入(一)

Telerik DevCraft包含一個完整的產品棧來構建您下一個Web、移動和桌面應用程序。它使用HTML和每個.NET平臺的UI庫&#xff0c;加快開發速度。Telerik DevCraft提供完整的工具箱&#xff0c;用于構建現代和面向未來的業務應用程序&#xff0c;目前提供UI for ASP.NET MVC、Kendo…

2025年6月4日收獲

Authorization Authorization是一種通用的、標準化的權限控制和認證的通用框架&#xff0c;它能夠使跨系統和跨域的身份驗證和授權管理更容易&#xff0c;使不同應用程序之間能夠更輕松地實現單點登錄&#xff08;SSO&#xff09;、用戶身份驗證和授權控制等。 在前端使用 axi…

實時數據湖架構設計:從批處理到流處理的企業數據戰略升級

企業數據處理架構正在經歷一場深刻的變革。從最初的數據倉庫T1批處理模式&#xff0c;到如今的實時流處理架構&#xff0c;這一演進過程反映了業務對數據時效性要求的不斷提升。 文章目錄 第一章&#xff1a;數據湖演進歷程與現狀分析 第二章&#xff1a;實時數據湖核心架構剖…

iptables實戰案例

目錄 一、實驗拓撲 二、網絡規劃 三、實驗要求 四、環境準備 1.firewall &#xff08;1&#xff09;配置防火墻各大網卡IP并禁用 firewall和selinux &#xff08;2&#xff09;打開firewall路由轉發 2.PC1&#xff08;內網&#xff09; &#xff08;1&#xff09;配置防…

macOS 連接 Docker 運行 postgres,使用navicat添加并關聯數據庫

下載 docker注冊一個賬號&#xff0c;登錄 Docker創建 docke r文件 mkdir -p ~/.docker && touch ~/.docker/daemon.json寫入配置&#xff08;全量替換&#xff09; {"builder": {"gc": {"defaultKeepStorage": "20GB",&quo…

docker離線鏡像下載

背景介紹 在某些網絡受限的環境中&#xff0c;直接從Docker Hub或其他在線倉庫拉取鏡像可能會遇到困難。為了在這種情況下也能順利使用Docker鏡像&#xff0c;我們可以提前下載好所需的鏡像&#xff0c;并通過離線方式分發和使用。 當前鏡像有&#xff1a;python-3.8-slim.ta…

Android 3D球形水平圓形旋轉,旋轉動態更換圖片

看效果圖 1、事件監聽類 OnItemClickListener&#xff1a;3D旋轉視圖項點擊監聽器接口 public interface OnItemClickListener {/*** 當旋轉視圖中的項被點擊時調用** param view 被點擊的視圖對象* param position 被點擊項在旋轉視圖中的位置索引&#xff08;從0開始&a…

48V帶極性反接保護-差共模浪涌防護方案

在工業自動化&#xff08;電動機驅動 / 工業機器人&#xff09;、交通基礎設施&#xff08;充電樁 / 車載電子&#xff09;、安防系統&#xff08;監控攝像頭 / 門禁&#xff09;、儲能設備&#xff08;BMS / 離網控制器&#xff09;等領域&#xff0c;DC48V 電源因安全特低電壓…

CentOS在vmware局域網內搭建DHCP服務器【踩坑記錄】

1. 重新設置環境 配置dhcp服務踩了不少坑&#xff0c;這里重頭搭建記錄一下&#xff1a; 1.1 centos 網卡還原 如果之前搭了亂七八糟的環境&#xff0c;導致NAT模式也沒法上網&#xff0c;這里重新還原 我們需要在NAT模式下聯網&#xff0c;下載DHCP服務 先把centos的網卡還…

《Docker》架構

文章目錄 架構模式單機架構應用數據分離架構應用服務器集群架構讀寫分離/主從分離架構冷熱分離架構垂直分庫架構微服務架構容器編排架構什么是容器&#xff0c;docker&#xff0c;鏡像&#xff0c;k8s 架構模式 單機架構 單機架構其實就是應用服務器和單機服務器都部署在同一…

Web3時代的數據保護挑戰與應對策略

隨著互聯網技術的飛速發展&#xff0c;我們正步入Web3時代&#xff0c;這是一個以去中心化、用戶主權和數據隱私為核心的新時代。然而&#xff0c;Web3時代也帶來了前所未有的數據保護挑戰。本文將探討這些挑戰&#xff0c;并提出相應的應對策略。 數據隱私挑戰 在Web3時代&a…

從零打造算法題刷題助手:Agent搭建保姆級攻略

我用Trae 做了一個有意思的Agent 「大廠機試助手」。 點擊 https://s.trae.com.cn/a/d2a596 立即復刻&#xff0c;一起來玩吧&#xff01; Agent 簡介 Agent名稱為大廠機試助手&#xff0c;主要功能有以下三點。 解題&#xff1a; 根據用戶給出的題目給出具體的解題思路引導做…