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