ICMP端口号问题
ICMP端口號的深思
朋友面試的時候回來問我:小溫,說一下ICMP的端口號是多少呢?
當(dāng)時我也懵了,我是這樣回答的:ICMP是Internet控制報文協(xié)議,沒有端口號吧?這個不太清楚啊。
呵呵,一個常見的協(xié)議問題,很糾結(jié):所以稍作總結(jié):
ICMP簡介:
ICMP是(Internet?Control?Message?Protocol)Internet控制報文協(xié)議。它是TCP/IP協(xié)議族的一個子協(xié)議,用于在IP主機(jī)、路由器之間傳遞控制消息。控制消息是指網(wǎng)絡(luò)通不通、主機(jī)是否可達(dá)、路由是否可用等網(wǎng)絡(luò)本身的消息。這些控制消息雖然并不傳輸用戶數(shù)據(jù),但是對于用戶數(shù)據(jù)的傳遞起著重要的作用。
ICMP功能:
從技術(shù)角度來說,ICMP就是一個“錯誤偵測與回報機(jī)制”,其目的就是讓我們能夠檢測網(wǎng)路的連線狀況﹐也能確保連線的準(zhǔn)確性﹐其功能主要有:
-
偵測遠(yuǎn)端主機(jī)是否存在。
-
建立及維護(hù)路由資料。
-
重導(dǎo)資料傳送路徑。
ICMP報文格式:
ICMP報文包含在IP數(shù)據(jù)報中,屬于IP的一個用戶,IP頭部就在ICMP報文的前面,所以一個ICMP報文包括IP頭部、ICMP頭部和ICMP報文。
IP頭部的Protocol值為1就說明這是一個ICMP報文,ICMP頭部中的類型(Type)域用于說明ICMP報文的作用及格式;代碼(Code)域用于詳細(xì)說明某種ICMP報文的類型,所有數(shù)據(jù)都在ICMP頭部后面。RFC定義了11種ICMP報文格式(其中代碼為15??信息請求;16?????信息應(yīng)答,的信息報文已經(jīng)作廢),具體如下:
類型代碼?????類型描述
0?????響應(yīng)應(yīng)答(ECHO-REPLY)
3?????不可到達(dá)
4?????源抑制
5?????重定向
8?????響應(yīng)請求(ECHO-REQUEST)
11?????超時
12?????參數(shù)失靈
13?????時間戳請求
14?????時間戳應(yīng)答
17?????地址掩碼請求
18?????地址掩碼應(yīng)答
ICMP報文格式就分析到這里了(后續(xù)我會通過抓包的形式截圖分析的)。
最后補充一點:
ICMP是網(wǎng)絡(luò)層協(xié)議;
Ping使用的是ICMP協(xié)議,ICMP不像http,FTP應(yīng)用層有傳輸層的端口號,(它們使用TCP的端口號80和20/21)。ICMP直接封裝在IP包內(nèi),所使用IP協(xié)議號為1。
總結(jié):Ping用到的是ICMP協(xié)議。不是端口。ICMP沒有端口號可言。
總結(jié)
- 上一篇: python cursor游标_pyth
- 下一篇: WPS for Linux【Debian