主頁 >  其他 > 20 張圖解: ping 的作業原理

20 張圖解: ping 的作業原理

2020-09-13 21:18:45 其他


前言

在日常生活或作業中,我們在判斷與對方網路是否暢通,使用的最多的莫過于 ping 命令了,

那你知道 ping 是如何作業的嗎?” —— 來自小林的靈魂拷問

可能有的小伙伴奇怪的問:“我雖然不明白它的作業,但 ping 我也用的賊 6 啊!”

你用的是 6 ,但你在面試官面前,你就 6 不起來了,畢竟他們也愛問,

所以,我們要抱有「知其然,知其所以然」的態度,這樣就能避免面試程序中,出門右拐的情況了,

來自面試官的靈魂拷問來自面試官的靈魂拷問

不知道的小伙伴也沒關系,今天我們就來搞定它,搞懂它,消除本次的問號,讓問號少一點


正文

IP協議的助手 —— ICMP 協議

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

ICMP 是什么?

ICMP 全稱是 Internet Control Message Protocol,也就是互聯網控制報文協議

里面有個關鍵詞 —— 控制,如何控制的呢?

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

ICMP 功能都有啥?

ICMP 主要的功能包括:確認 IP 包是否成功送達目標地址、報告發送程序中 IP 包被廢棄的原因和改善網路設定等,

IP 通信中如果某個 IP 包因為某種原因未能達到目標地址,那么這個具體的原因將由 ICMP 負責通知

ICMP 目標不可達訊息ICMP 目標不可達訊息

如上圖例子,主機 A 向主機 B 發送了資料包,由于某種原因,途中的路由器 2 未能發現主機 B 的存在,這時,路由器 2 就會向主機 A 發送一個 ICMP 目標不可達資料包,說明發往主機 B 的包未能成功,

ICMP 的這種通知訊息會使用 IP 進行發送 ,

因此,從路由器 2 回傳的 ICMP 包會按照往常的路由控制先經過路由器 1 再轉發給主機 A ,收到該 ICMP 包的主機 A 則分解 ICMP 的首部和資料域以后得知具體發生問題的原因,

ICMP 包頭格式

ICMP 報文是封裝在 IP 包里面,它作業在網路層,是 IP 協議的助手,

ICMP 報文ICMP 報文

ICMP 包頭的型別欄位,大致可以分為兩大類:

  • 一類是用于診斷的查詢訊息,也就是「查詢報文型別
  • 另一類是通知出錯原因的錯誤訊息,也就是「差錯報文型別
常見的 ICMP 型別常見的 ICMP 型別

查詢報文型別

回送訊息 —— 型別 08

回送訊息用于進行通信的主機或路由器之間,判斷所發送的資料包是否已經成功到達對端的一種訊息,ping 命令就是利用這個訊息實作的,

ICMP 回送訊息ICMP 回送訊息

可以向對端主機發送回送請求的訊息(ICMP Echo Request Message,型別 8),也可以接收對端主機發回來的回送應答訊息(ICMP Echo Reply Message,型別 0),

ICMP 回送請求和回送應答報文ICMP 回送請求和回送應答報文

相比原生的 ICMP,這里多了兩個欄位:

  • 識別符號:用以區分是哪個應用程式發 ICMP 包,比如用行程 PID 作為識別符號;
  • 序號:序列號從 0 開始,每發送一次新的回送請求就會加 1, 可以用來確認網路包是否有丟失,

選項資料中,ping 還會存放發送請求的時間值,來計算往返時間,說明路程的長短,

差錯報文型別

接下來,說明幾個常用的 ICMP 差錯報文的例子:

  • 目標不可達訊息 —— 型別 為 3
  • 原點抑制訊息 —— 型別 4
  • 重定向訊息 —— 型別 5
  • 超時訊息 —— 型別 11

目標不可達訊息(Destination Unreachable Message) —— 型別為 3

IP 路由器無法將 IP 資料包發送給目標地址時,會給發送端主機回傳一個目標不可達的 ICMP 訊息,并在這個訊息中顯示不可達的具體原因,原因記錄在 ICMP 包頭的代碼欄位,

由此,根據 ICMP 不可達的具體訊息,發送端主機也就可以了解此次發送不可達的具體原因

舉例 6 種常見的目標不可達型別的代碼

目標不可達型別的常見代碼號目標不可達型別的常見代碼號
  • 網路不可達代碼為 0
  • 主機不可達代碼為 1
  • 協議不可達代碼為 2
  • 埠不可達代碼為 3
  • 需要進行分片但設定了不分片位代碼為 4

為了給大家說清楚上面的目標不可達的原因,小林犧牲自己給大家送 5 次外賣,

為什么要送外賣?別問,問就是為 35 歲的老林做準備 …

外賣員 —— 小林外賣員 —— 小林
a. 網路不可達代碼為 0

外賣版本:

小林第一次送外賣時,小區里只有 A 和 B 區兩棟樓,但送餐地址寫的是 C 區樓,小林表示頭上很多問號,壓根就沒這個地方,

正常版本:

IP 地址是分為網路號和主機號的,所以當路由器中的路由器表匹配不到接收方 IP 的網路號,就通過 ICMP 協議以網路不可達Network Unreachable)的原因告知主機,

自從不再有網路分類以后,網路不可達也漸漸不再使用了,

b. 主機不可達代碼為 1

外賣版本:

小林第二次送外賣時,這次小區有 5 層樓高的 C 區樓了,找到地方了,但送餐地址寫的是 C 區樓 601 號房 ,說明找不到這個房間,

正常版本:

當路由表中沒有該主機的資訊,或者該主機沒有連接到網路,那么會通過 ICMP 協議以主機不可達Host Unreachable)的原因告知主機,

c. 協議不可達代碼為 2

外賣版本:

小林第三次送外賣時,這次小區有 C 區樓,也有 601 號房,找到地方了,也找到房間了,但是一開門人家是外國人說的是英語,我說的是中文!語言不通,外賣送達失敗~

正常版本:

當主機使用 TCP 協議訪問對端主機時,能找到對端的主機了,可是對端主機的防火墻已經禁止 TCP 協議訪問,那么會通過 ICMP 協議以協議不可達的原因告知主機,

d. 埠不可達代碼為 3

外賣版本:

小林第四次送外賣時,這次小區有 C 區樓,也有 601 號房,找到地方了,也找到房間了,房間里的人也是說中文的人了,但是人家說他要的不是外賣,而是快遞,,,

正常版本:

當主機訪問對端主機 8080 埠時,這次能找到對端主機了,防火墻也沒有限制,可是發現對端主機沒有行程監聽 8080 埠,那么會通過 ICMP 協議以埠不可達的原因告知主機,

e. 需要進行分片但設定了不分片位代碼為 4

外賣版本:

小林第五次送外賣時,這次是個吃播博主點了 100 份外賣,但是吃播博主要求一次性要把全部外賣送達,小林的一臺電動車裝不下呀,這樣就沒辦法送達了,

正常版本:

發送端主機發送 IP 資料報時,將 IP 首部的分片禁止標志位設定為1,根據這個標志位,途中的路由器遇到超過 MTU 大小的資料包時,不會進行分片,而是直接拋棄,

隨后,通過一個 ICMP 的不可達訊息型別,代碼為 4 的報文,告知發送端主機,

原點抑制訊息(ICMP Source Quench Message) —— 型別 4

在使用低速廣域線路的情況下,連接 WAN 的路由器可能會遇到網路擁堵的問題,

ICMP 原點抑制訊息的目的就是為了緩和這種擁堵情況

當路由器向低速線路發送資料時,其發送佇列的快取變為零而無法發送出去時,可以向 IP 包的源地址發送一個 ICMP 原點抑制訊息

收到這個訊息的主機借此了解在整個線路的某一處發生了擁堵的情況,從而增大 IP 包的傳輸間隔,減少網路擁堵的情況,

然而,由于這種 ICMP 可能會引起不公平的網路通信,一般不被使用,

重定向訊息(ICMP Redirect Message) —— 型別 5

如果路由器發現發送端主機使用了「不是最優」的路徑發送資料,那么它會回傳一個 ICMP 重定向訊息給這個主機,

在這個訊息中包含了最合適的路由資訊和源資料,這主要發生在路由器持有更好的路由資訊的情況下,路由器會通過這樣的 ICMP 訊息告知發送端,讓它下次發給另外一個路由器,

好比,小林本可以過條馬路就能到的地方,但小林不知道,所以繞了一圈才到,后面小林知道后,下次小林就不會那么再繞一圈了,

超時訊息(ICMP Time Exceeded Message) —— 型別 11

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

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

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

ICMP 時間超過訊息ICMP 時間超過訊息

此外,有時可以用 TTL 控制包的到達范圍,例如設定一個較小的 TTL 值


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

接下來,我們重點來看 ping發送和接收程序

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

主機 A ping 主機 B主機 A ping 主機 B

ping 命令執行的時候,源主機首先會構建一個 ICMP 回送請求訊息資料包,

ICMP 資料包內包含多個欄位,最重要的是兩個:

  • 第一個是型別,對于回送請求訊息而言該欄位為 8
  • 另外一個是序號,主要用于區分連續 ping 的時候發出的多個資料包,

每發出一個請求資料包,序號會自動加 1,為了能夠計算往返時間 RTT,它會在報文的資料部分插入發送時間,

主機 A 的 ICMP 回送請求報文主機 A 的 ICMP 回送請求報文

然后,由 ICMP 協議將這個資料包連同地址 192.168.1.2 一起交給 IP 層,IP 層將以 192.168.1.2 作為目的地址,本機 IP 地址作為源地址協議欄位設定為 1 表示是 ICMP 協議,再加上一些其他控制資訊,構建一個 IP 資料包,

主機 A 的 IP 層資料包主機 A 的 IP 層資料包

接下來,需要加入 MAC 頭,如果在本地 ARP 映射表中查找出 IP 地址 192.168.1.2 所對應的 MAC 地址,則可以直接使用;如果沒有,則需要發送 ARP 協議查詢 MAC 地址,獲得 MAC 地址后,由資料鏈路層構建一個資料幀,目的地址是 IP 層傳過來的 MAC 地址,源地址則是本機的 MAC 地址;還要附加上一些控制資訊,依據以太網的介質訪問規則,將它們傳送出去,

主機 A 的 MAC 層資料包主機 A 的 MAC 層資料包

主機 B 收到這個資料幀后,先檢查它的目的 MAC 地址,并和本機的 MAC 地址對比,如符合,則接收,否則就丟棄,

接收后檢查該資料幀,將 IP 資料包從幀中提取出來,交給本機的 IP 層,同樣,IP 層檢查后,將有用的資訊提取后交給 ICMP 協議,

主機 B 會構建一個 ICMP 回送回應訊息資料包,回送回應資料包的型別欄位為 0序號為接收到的請求資料包中的序號,然后再發送出去給主機 A,

主機 B 的 ICMP 回送回應報文主機 B 的 ICMP 回送回應報文

在規定的時候間內,源主機如果沒有接到 ICMP 的應答包,則說明目標主機不可達;如果接收到了 ICMP 回送回應訊息,則說明目標主機可達,

此時,源主機會檢查,用當前時刻減去該資料包最初從源主機上發出的時刻,就是 ICMP 資料包的時間延遲,

針對上面發送的事情,總結成了如下圖:

主機 A ping 主機 B 期間發送的事情主機 A ping 主機 B 期間發送的事情

當然這只是最簡單的,同一個局域網里面的情況,如果跨網段的話,還會涉及網關的轉發、路由器的轉發等等,

但是對于 ICMP 的頭來講,是沒什么影響的,會影響的是根據目標 IP 地址,選擇路由的下一跳,還有每經過一個路由器到達一個新的局域網,需要換 MAC 頭里面的 MAC 地址,

說了這么多,可以看出 ping 這個程式是使用了 ICMP 里面的 ECHO REQUEST(型別為 8 ) 和 ECHO REPLY (型別為 0)

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,

當然有的路由器根本就不會回傳這個 ICMP,所以對于有的公網地址,是看不到中間經過的路由的,

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

traceroute 在發送 UDP 包時,會填入一個不可能的埠號值作為 UDP 目標埠號(大于 3000 ),當目的主機,收到 UDP 包后,會回傳 ICMP 差錯報文訊息,但這個差錯報文訊息的型別是「埠不可達」,

所以,當差錯報文型別是埠不可達時,說明發送方發出的 UDP 包到達了目的主機,

2. traceroute 作用二

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

這么做是為了什么?

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

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

MTU 路徑發現(UDP的情況下)MTU 路徑發現(UDP的情況下)

它的作業原理如下:

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

隨后,通過一個 ICMP 的不可達訊息將資料鏈路上 MTU 的值一起給發送主機,不可達訊息的型別為「需要進行分片但設定了不分片位」,

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


巨人的肩膀

[1] 竹下隆史.圖解TCP/IP.人民郵電出版社.

[2] 劉超.趣談網路協議.極客時間.


嘮叨嘮叨

小林是專為大家圖解的工具人,Goodbye,我們下次見!


讀者問答

讀者問:“有個問題就是A的icmp到了B后,B為啥會自動給A一個回執0?這是作業系統的底層設計嗎?”

你說的“回執0”是指 ICMP 型別為 0 嗎?如果是的話,那么 B 收到 A 的回送請求(型別為8) ICMP 報文,B 主機作業系統協議堆疊發現是個回送請求 ICMP 報文,那么協議堆疊就會組裝一個回送應答(型別為0)的 IMCP 回應給 A,


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/27628.html

標籤:其他

上一篇:程式員跳槽時關于薪水的那點事

下一篇:TCP/IP相關的問題

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more