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 协议(端口不可达)相关推荐
- udp端口不可达 icmp
1,报文格式 报文如下,10.30.13.1往10.30.16.10的80端口发送了一个UDP报文,80端口其实监听的是TCP. 服务器回复了一个类型为端口不可达的ICMP,ICMP数据部分就是请求U ...
- 【CyberSecurityLearning 16】单臂路由与DHCP中继+ ICMP协议+VTP
目录 一.单臂路由 单臂路由引入: 单臂路由实验演示: 单臂路由缺点: 二.ICMP协议 单臂路由练习实验:(★) 单臂路由缺点: 三.VTP(VLAN Trunking Protocol) VTP概 ...
- Linux笔记-iptables开放指定端口,开放ICMP协议,其他端口禁止访问
下面实现3个规则: ①对所有的地址开放本机的tcp(80.22.10~21)端口的访问. ②运行对所有地址开放本机的基于ICMP协议的数据包访问. ③其他未允许的端口则禁止访问. #查看本机开放的端口 ...
- 从入门到入土:基于Python|ACK|FIN|Null|Xmas|windows|扫描|端口扫描|scapy库编写|icmp协议探测主机|对开放端口和非开放端口完成半连接扫描|全连接扫描|
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- ICMP协议(最常用的ping、tracert命令)
ICMP(Internet Control Message Protocol)Internet控制报文协议.它是TCP/IP协议簇的一个子协议,用于在IP主机.路由器之间传递控制消息.控制消息是指网络 ...
- 实验四 ICMP 协议分析实验
ICMP 协议介绍 ICMP(Internet Control Message Protocol)是因特网控制报文协议[RFC792]的缩写,是因特网的标准协议.ICMP允许路由器或主机报告差错情况和 ...
- PING的原理以及ICMP协议
主要内容: 1.ping的原理以及工作过程 2.ICMP协议 3.ICMP的应用:ping,traceroute 1.ping的原理以及工作过程 ping的原理 ping 程序是用来探测主机到主机 ...
- TCP/IP详解--学习笔记(4)-ICMP协议,ping和Traceroute
1.IMCP协议介绍 前面讲到了,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成.其中一个重要的模块就是ICMP(网络控制报文)协议. 当传送 ...
- 4、以太网基础知识——ICMP协议详解
返回总目录 上一篇 下一篇 ICMP协议是一个网络层协议. 一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通:但是IP协议并不提供可靠传输.如果丢包了,IP协议并不能通知传输层是 ...
最新文章
- 【Groovy】Groovy 脚本调用 ( Groovy 类中调用 Groovy 脚本 | 创建 GroovyShell 对象并执行 Groovy 脚本 | 完整代码示例 )
- 字符串MD5加密和产生一个随机密码的方法
- 图像处理、语音处理的应用及前沿技术_人工智能,虚拟技术,语音识别技术在我们的生活中...
- Python列表排序 reverse、sort、sorted 操作方法详解
- python简介pdf_PDFMiner首页、文档和下载 - Python PDF 解析器 - OSCHINA - 中文开源技术交流社区...
- Learn X in Y minutes
- php5.1文件包含,包含文件 - ThinkPHP 5.1 完全开发手册
- linux vim看最低,linux vim
- 性能测试(二)确定需求,执行测试
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_5_文件存储的原理和记事本打开文本显示原理...
- oracle数据库expdp命令,Oracle数据库备份 expdp/impdp导出导入命令
- 【PHP】极速分销裂变,疯狂砍价活动
- 【opencv】2.图像读取、显示、输出
- lsdyna如何设置set中的node_list_关于如何快速调教NGINX的几点总结
- python和wps-基于python的docx模块处理word和WPS的docx格式文件方式
- 使用oschina的git服务器
- Linux内核之进程管理《Linux内核设计与实现》
- flask身份验证_Flask基于令牌的身份验证
- Jetpack架构组件 (一)-- Android Jetpack 简介
- 中考计算机知识点总结长沙,长沙市生物中考考点归纳.doc
热门文章
- win2003服务器允许下载.exe文件的方法
- NLP-二分类的应用-区分外卖评论好评/差评
- 【黄啊码】MySQL入门—3、我用select *,老板直接赶我坐火车回家去,买的还是站票
- 网络常识,whirshark分析
- go开发环境搭建以及运行一个完整的beego网站项目
- 自律的程序员生活是什么样的?
- android平板忘了密码,平板电脑忘记密码怎么办
- kindEditor 富文本编辑器 使用介绍
- Shell脚本+if语句判断是下午还是中午还是早上(乱搞)
- 请求网站响应的文本带有乱码,原来是Content-encoding惹的祸,一文带你搞懂`Content-encoding`、`Accept-Encoding`