簡單瞭解ICMP協議
參考:
最近有同學面試遇到問題:ping是基於TCP還是UDP的?
不熟悉網路協議的同學可能就栽了跟頭。
這裡,我們來具體瞭解一下。
ping命令是什麼協議?
維基百科介紹:
ping是一種電腦網路工具,用來測試資料包能否通過IP協議到達特定主機。ping的運作原理是向目標主機傳出一個ICMP [email protected]要求資料包,並等待接收echo迴應資料包。程式會按時間和成功響應的次數估算丟失資料包率(丟包率)和資料包往返時間(網路時延,Round-trip delay time)。
可以知道,ping基於ICMP協議。
ICMP屬於哪一層?
查閱書籍《TCP/IP協議族》,第9章“網路控制報文協議(ICMP)”,我們可以看到下面這一段話:
IP協議還缺少主機和管理查詢所需要的機制。主機有時候需要判斷某個路由器或者是對方主機是否活躍。有時網路管理員也需要來自其他主機或路由器的資訊。
網路控制報文協議(ICMP)是設計來彌補上述兩個遺憾的,它是IP協議的伴侶。圖9.1給出了ICMP協議在網路層中的位置,以及它與IP及其他協議之間的關係。
檢視《TCP/IP協議詳解卷1》,第6章“ICMP:Internet控制報文協議”:
ICMP經常被認為是IP層的一個組成部分。它傳遞差錯報文以及其他需要注意的資訊。
ICMP報文通常被IP層或更高層協議(TCP或UDP)使用。
由此可見,ICMP位於網路層,與IP屬於同一層。
進一步驗證
我們進一步檢視權威的資料,找到RFC 792文件:
The Internet Protocol (IP) [1] is used for host-to-host datagram
service in a system of interconnected networks called the
Catenet [2]. The network connecting devices are called Gateways.
These gateways communicate between themselves for control purposes
via a Gateway to Gateway Protocol (GGP) [3,4]. Occasionally a
gateway or destination host will communicate with a source host, for
example, to report an error in datagram processing. For such
purposes this protocol, the Internet Control Message Protocol (ICMP),
is used. **ICMP, uses the basic support of IP as if it were a higher
level protocol, however, ICMP is actually an integral part of IP, and
must be implemented by every IP module**.
大意就是:
ICMP協議是用於host到host之間的資料報服務,目的host與源host進行通訊時,ICMP會用到,比如通過處理資料報報告一個錯誤。
ICMP基於IP,以至於它看起來像一個上層協議,但是實際上是IP的一部分,而且必須在每個IP模組中實現。
至於ICMP的詳細作用以及幀結構定義,這裡不再贅述,讀者自行了解。
抓包實踐
使用WireShark抓包。
開啟cmd,ping一下百度:
在WireShark中輸入過濾規則,只抓ICMP協議,結果如下:
可以看出,ICMP下層是IPv4,並沒有TCP或者UDP。
至此,我們已經證明ICMP確實是IP層的一員。
相關推薦
簡單瞭解ICMP協議
參考: 最近有同學面試遇到問題:ping是基於TCP還是UDP的? 不熟悉網路協議的同學可能就栽了跟頭。 這裡,我們來具體瞭解一下。 ping命令是什麼協議? 維基百科介紹: ping是一種電腦網路工具,用來測試資料包能否通過IP協
簡單瞭解TCP/IP協議
# TCP/IP 協議# ---------- 簡單來理解,TCP/IP 協議,就像是所有計算機都會的一種語言,有了它計算機就可以和其他的計算機做交流。 TCP/IP 協議,擁有四層架構,也就是說就是這四層架構組成了TCP/IP協議,它們按照從上到下,層層包裝,分別是應用層,傳輸層,網路層,物理層。 應
http協議的簡單瞭解
http協議是大家在網際網路中最為熟悉的協議,只要上網大家都會遇到,但是,很多人被問道什麼是http協議,http協議的內容是什麼就懵了。這裡,我們隨便聊聊http協議。 首先,我們說說協議。我一直覺得“協議”這詞不是很好理解,協商以後達成的決議,其實,就是規定,輪不到使用者協商的規定,就像
簡單瞭解ftp協議和http協議
(一)常見協議及埠 (1). HTTP協議代理伺服器常用埠號:80/8080/3128/8081/9080(2). SOCKS代理協議伺服器常用埠號:1080(3). FTP(檔案傳輸)協議代理伺服器常用埠號:21(4). Telnet(遠端登入)協議代理伺服器常用埠:23
簡單認識http協議
理論 med jpg dss 一個人 應用層 利用 隔離 網絡 1、什麽是TCP/IP 如果要了解一個人,可以從他歸屬的集體聊起來。我們的HTTP協議就屬於TCP/IP協議家族中的一員,了解HTTP協議再整個網絡流程中的地位,也能更加充分的理解HTTP協議。
圖解Http協議(二章簡單的Http協議)
客戶 持久化 請求方法 體驗 cnblogs 圖解 重要 cookies logs 先放上我的思維導圖 個人感覺這個就是一個和我們平常聊天一樣 來,我們一起拿起手中的手機,體驗一把http之旅 在一個風和日麗的午後,鐵柱剛從工地搬磚回來,吃飽喝足,整了點小酒。然後抹了
網絡編程----------SOCKET編程實現簡單的TCP協議
water 實現 保活定時器 log 超時重傳 color 斷開連接 超時 面向連接 首先我們須要大致了解TCP的幾點知識: 1.TCP的特點:面向連接的可靠性傳輸 2.TCP的三次握手建立連接和四次揮手釋放連接。但為什麽TCP要三次握手建立連接呢? 答:由於
關於簡單動態路由協議配置,註入,路由重分布
ket 分配 地址 bsp 創建 nds mis tracer ria 動態路由的配置記錄基於cisco模擬器 Packet Tracer Student 6.2 ,一下是實踐以及具體內容 拓撲結構基本如圖所示: RIP協議 RIP協議現有兩個版本,v1和v2 ,
windows網絡編程-C語言實現簡單的UDP協議聊天
無連接 ipv4地址 ast 電腦 tdi data rcp proto 生生 與TCP協議下編寫服務端程序代碼類似,但因為是無連接的形式,所以不需要監聽。 這次,我用了一點不同的想法:我建立一個服務端,用了兩個端口和兩個套接字,把服務端作為一個數據轉發的中轉站,
Linux服務器關閉/開啟ICMP協議(ping)
服務器 需要 inux ech g模式 linux服務 遇到 icm 我們 經常會遇到一些問題就是主機明明是在線的卻ping不通的,對方可能開啟了禁ping模式有時為安全問題著想,需要給我們的Linux服務器禁ping 關閉ICMP協議(禁ping) echo "
[na]完全理解icmp協議
代表性 工作 事先 執行 個人信息 自帶 時間信息 分享 大數 1.ICMP出現的原因 在IP通信中,經常有數據包到達不了對方的情況。原因是,在通信途中的某處的一個路由器由於不能處理所有的數據包,就將數據包一個一個丟棄了。或者,雖然到達了對方,但是由於搞錯了端口號,服務器軟
ICMP協議
ICMP一:ICMP的作用 Internet控制報文協議:是網絡層的一個重要協議。ICMP設備間傳遞各種差錯和控制信息,他對於收集各種網絡信息,診斷和排除各種網絡故障具有至關重要的作用。總結來說,ICMP用來傳遞差錯、控制、查詢等信息。 二:ICMP重定向 ICMP Redirect 消息用於支持路由功能。如
TCP/IP-ICMP協議
ade 並且 發送 .com 分享 圖片 icm -h line 8.1 作用 ip協議沒有提供直接的方法發現那些發往目的地失敗的ip數據包。因此采用internet控制報文協議提供ip協議層配置和ip數據報存執相關的診斷和控制信息。一般認為是ip層的一部分。但是使用ip層
TCP/IP學習20180710-數據鏈路層-ICMP協議
第一個 情況 12.1 之間 單位 接收 如何 bsp tsa 1、ICMP協議IP協議不保證數據送達。則應有協議保證數據送達。ICMP就是其中的重要協議。ICMP:(Internet Control Messages Protocol)因特網信報控制協議當傳送IP數據包發
KAFKA的簡單瞭解--大資料紀錄片第九記
Kafka是一個分散式釋出-訂閱訊息系統和一個強大的佇列,可以處理大量資料,使得一個訊息可以從一個端點傳遞到另一個端點。Kafka非常適合離線和線上訊息消費。Kafka將資料儲存在磁碟上,並在叢集內複製以防止資料丟失。Kafka構建在zookeeper的同步服務之上,它和storm和spark很好地整合,
SPARKCORE的簡單瞭解--大資料紀錄片第十記
今天不知道寫什麼好,想了一下,Hive和ElastICSearch都有一點了解,但是對於這兩個沒什麼好記錄的。因為Hive的一些問題會在後面有大資料相關問題和答案的總結,到時候會直接落實到面試筆試中的問題,更加直接。ES如果說概念上的話主要是倒排索引和各個型別與資料庫的對應型別。所以想了想還是寫一下Spa
SIR模型簡單瞭解(Susceptible Infected Recovered Model)
SIR模型定義 SIR模型是一種傳播模型,是資訊傳播過程的抽象描述。 SIR模型是傳染病模型中最經典的模型,其中S表示易感者,I表示感染者,R表示移除者。 S:Susceptible,易感者 I:Infective,感染者 R:Removal,移除者 SIR模型的應用
機器學習01-簡單瞭解
1. 什麼是機器學習 機器學習是一個計算機程式,針對某個特定的任務,從經驗中學習,並且越做越好。對於機器學習來說最重要的是資料和模型(演算法)。機器學習主要應用在 語音識別:把語音作為輸入 把文字作為輸出;自然語言處理:軟體理解檔案的意思並給出相應的迴應(比如說qq的小冰);人臉識別;推薦系
簡單瞭解一下函式模板
泛型程式設計的基礎就是模板的使用。 在編寫函式模板的時候有許多需要注意的點。 我們使用一個栗子輕鬆搞定。 using namespace std; template<class T, typename U> inline U func(T & t, U&
SOAP簡單物件訪問協議詳細介紹
一、單物件訪問協議是交換資料的一種協議規範,是一種輕量的、簡單的、基於XML(標準通用標記語言下的一個子集)的協議,它被設計成在WEB上交換結構化的和固化的資訊。 更為簡單的說:SOAP是基於XML的簡易協議,是用於訪問網路服務的協議 在學習瞭解SOAP協議之前,需要對XML和XML名稱