icmp
概念
ICMP是(Internet Control message Protocol)互联网控制报文协议。它是TCP/ip协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
理解
icmp协议是网络层协议。
ICMP协议是一种面向无连接的协议。
ICMP协议是IP协议的伴随协议,主机或路由器可以利用ICMP彼此通告网络层信息,典型的应用是差错报告。
ICMP被认为是IP协议的一部分,但在体系结构上ICMP在IP之上,因为ICMP的消息需要封装在IP分组中。
ICMP协议主要功能
Ping工具、Traceroute工具基于ICMP协议实现
Ping
应用程序Ping发出的报文是ICMP回声请求报文,接收的是ICMP回声应答报文。
Ping命令可以检测与目的主机之间通信的RTT(往返时间),但不能检测通信路径上的路由器。
Ping of Death
利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发起“Ping of Death”(死亡之Ping)攻击。“Ping of Death” 攻击的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。(操作系统已经取消了发送ICMP数据包的大小的限制,解决了这个漏洞)
Traceroute
可以检测从源主机到互联网另一目的主机(或路由器)的分组传输路径,UNIX系统中是Traceroute,在MS windows系统则是Tracert。
Traceroute(Tracert)依次向目标主机发送设定不同TTL值(Time To Live 是IP协议包中的一个值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃。)、封装ICMP回声请求报文的IP数据报,路径上的每个路由器在转发IP数据报前将其TTL值减1,当TTL值减为0时,路由器丢弃该IP数据报,并向源主机发送ICMP超时报文,源主机收到ICMP超时报文,则探测到路径上相应的路由器,直到目的主机发回回声响应报文为止,源主机则探测到路径上所有的路由器。Traceroute(Tracert)通过递增发送的IP数据报的TTL值,依次检测路径上的路由器,直到目标主机返回ICMP回声响应报文或达到最大TTL值。例如,
T T L = 1 " role="presentation" style="position: relative;"> 时,可以检测到第1个路由器,T T L = 2 " role="presentation" style="position: relative;"> 时,可以检测到第2个路由器,以此类推。Traceroute(Tracert)对于每个TTL值发送三个数据报,即对每个路由器进行三次探测,并在对每个路由器进行探测时,实现对到达该路由器的RTT进行统计。
相关阅读
博文迁移至 POP3邮件接收协议介绍
1、什么是TCP/IP 如果要了解一个人,可以从他归属的集体聊起来。我们的HTTP协议就属于TCP/IP协议家族中的一员,了解HTTP协议再整个
现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是
解决“允许Traceroute探测”和“ICMP timestamp请求响
解决ICMP timestamp请求响应漏洞 sudo iptables -A INPUT -p ICMP --icmp-type timestamp-request -j DROP sudo iptables -A IN
https://blog.csdn.net/ygm_linux/article/details/49977821 考虑做一个手机直播系统,首先需要指定一个合理的技术方案。由于自己