97-ICMP 协议(端口不可达)
生活随笔
收集整理的這篇文章主要介紹了
97-ICMP 协议(端口不可达)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
ICMP 端口不可達(dá)是差錯(cuò)報(bào)文中的一種,它的類型(type)是 3,代碼(code)也是 3.
1. 差錯(cuò)報(bào)文首部格式
圖1 差錯(cuò)報(bào)文首部
2. 實(shí)驗(yàn)
- 打開我們之前寫的 ICMP 報(bào)文接收程序
程序托管在 gitos 上:http://git.oschina.net/ivan_allen/unp
如果你已經(jīng) clone 過這個(gè)代碼了,請使用 git pull 更新一下。本節(jié)程序所使用的程序路徑是 unp/program/icmp/basic.
$ sudo ./icmp- 打開 tftp 程序
圖2 使用 tftp 程序向主機(jī) mars 端口 9999 發(fā)送請求,準(zhǔn)備下載 temp 文件
tftp 程序使用的協(xié)議是 UDP,這里使用了面向連接的 UDP 程序。實(shí)際上,mars 主機(jī)并沒有在 9999 端口有任何服務(wù)。因此這個(gè)請求會(huì)失敗。
圖3 icmp 報(bào)文接收程序接收到了差錯(cuò)報(bào)文,type=3, code=3
根據(jù)差錯(cuò)報(bào)文的規(guī)則, icmp 報(bào)文攜帶的原始 ip 數(shù)據(jù)報(bào)里的前 8 字節(jié),應(yīng)該是 UDP 數(shù)據(jù)報(bào)前 8 字節(jié)的內(nèi)容,看紅色框框部分,這是 UDP 數(shù)據(jù)報(bào)的目的端口號,0x270f,也就是 10 進(jìn)制 9999.
3. 總結(jié)
- 掌握差錯(cuò)報(bào)文格式
總結(jié)
以上是生活随笔為你收集整理的97-ICMP 协议(端口不可达)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android毕业设计答辩会问什么问题,
- 下一篇: 如何向别人问问题