一、关于PING的介绍

PING命令来检查要到达的目标IP地址并记录结果。

ping 命令显示目标是否响应以及接收答复所需的时间。

如果在传递到目标过程中有错误,ping 命令将显示错误消息。

ICMP ECHO(Type 8) 和ECHO Reply (Type 0)

我们使用一个ICMP ECHO数据包来探测主机地址 HOST B 是否存活(当然在主机没有被配置为过滤ICMP形式)

通过简单的发送一个ICMP ECHO(Type 8)数据包到目标主机

如果ICMP ECHO Reply(ICMP type 0)数据包 HOST A 可以接受到,说明主机是存活状态。

如果没有就可以初步判断主机没有在线或者使用了某些过滤设备过滤了ICMP的REPLY。

+---------------------------------------------------------------+

| |

| +-------+ +-------+ |

| | | ICMP Echo Request | | |

| | HOST | --------------------------> | HOST | |

| | | | | |

| | A | | B | |

| | | | | | ICMP Echo Reply | | |

| +-------+ +-------+ |

| |

+---------------------------------------------------------------+

这种机制就是我们通常所用的ping命令来检测目标主机是否可以ping到。

典型的例子

C:\>ping 192.168.0.1

Pinging 192.168.0.1 with 32 bytes of data:

Reply from 192.168.0.1: bytes=32 time<10ms TTL=128

Reply from 192.168.0.1: bytes=32 time<10ms TTL=128

Reply from 192.168.0.1: bytes=32 time<10ms TTL=128

Reply from 192.168.0.1: bytes=32 time<10ms TTL=128

Ping statistics for 192.168.0.1:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 0ms, Maximum = 0ms, Average = 0ms

二、注意TTL

TTL:生存时间

指定数据报被路由器丢弃之前允许通过的网段数量。

TTL 是由发送主机设置的,以防止数据包不断在 IP 互联网络上永不终止地循环。转发 IP 数据包时,要求路由器至少将 TTL 减小 1。

使用PING时涉及到的 ICMP 报文类型

一个为ICMP请求回显(ICMP Echo Request)

一个为ICMP回显应答(ICMP Echo Reply)

三、TTL 字段值可以帮助我们识别操作系统类型。

UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255

Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64

微软 Windows NT/2K操作系统 ICMP 回显应答的 TTL 字段值为 128

微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32

当然,返回的TTL值是相同的

但有些情况下有所特殊

LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64

FreeBSD 4.1, 4.0, 3.4;

Sun Solaris 2.5.1, 2.6, 2.7, 2.8;

OpenBSD 2.6, 2.7,

NetBSD

HP UX 10.20

ICMP 回显应答的 TTL 字段值为 255

Windows 95/98/98SE

Windows ME

ICMP 回显应答的 TTL 字段值为 32

Windows NT4 WRKS

Windows NT4 Server

Windows 2000

ICMP 回显应答的 TTL 字段值为 128

这样,我们就可以通过这种方法来辨别

操作系统 TTL

LINUX 64

WIN2K/NT 128

WINDOWS 系列 32

UNIX 系列 255

经过测试的操作系统如下:

LINUX Kernel 2.2.x, Kernel 2.4t1-6; FreeBSD 4.1,4.0,3.4; OpenBSD 2.7,2.6; NetBSD

1.4.2; Sun Solaris 2.5.1,2.6,2.7,2.8; HP-UX 10.20, 11.0; AIX 4.1, 3.2; Compaq

Tru64 5.0; Irix 6.5.3,6.5.8; BSDI BSD/OS 4.0,3.1; Ultrix 4.2-4.5; OpenVMS 7.1-2;

Windows 95/98/98SE/ME; Windows NT 4 Workstation SP3, SP4, SP6a; Windows NT 4

Server SP4; Windows 2000 Professional, Server, Advanced Server.

附:

ICMP报文的类型包括如下:

ECHO (Request (Type 8), Reply (Type 0))--回显应答,

Time Stamp (Request (Type 13), Reply (Type 14))--时间戳请求和应答,

Information (Request (Type 15), Reply (Type16))--信息请求和应答,

Address Mask (Request (Type 17), Reply (Type 18))--地址掩码请求和应答等

linux系统ttl端口,利用TTL值来鉴别操作系统相关推荐

  1. Linux系统中端口映射是什么意思?

    百度百科中解释说:端口映射是NAT的一种,功能是把在公网的地址转翻译成私有地址,采用路由方式的ADSL宽带路由器拥有一个动态或固定的公网IP,ADSL直接接在HUB或交换机上,所有的电脑共享上网.那么 ...

  2. linux中查端口命令,Linux系统查看端口的操作办法

    有部分Linux系统的用户,不知道如何查看上的端口,今天小编就来介绍一下,如何使用netstat , ss 和 lsof 命令找出哪些服务上使用哪些端口的办法. 1.正在侦听的端口 网络端口由编号,关 ...

  3. 阿里云服务器上的linux系统开放端口

    阿里云服务器上的linux系统开放端口 防火墙状态查看 开放端口 重启防火墙 查看已开放的端口 阿里云服务器开放安全组 防火墙状态查看 firewall-cmd --state running表示防火 ...

  4. linux系统USB端口序号绑定,相同或不同设备厂家都可

    文章目录 前言 方法一:同类型厂家设备也有效,固定的是工控机本体的端口号,需要固定设备插入位置 1.查看USB端口信息,找到唯一KERNELS 2.在/etc/udev/rules.d 路径下添加映射 ...

  5. Linux系统下java利用命令查询一些系统参数--网络连接数

    Linux系统查询网络连接数相关资料,这里写的命令很全 https://blog.csdn.net/he_jian1/article/details/40787269 import java.io.I ...

  6. 基于web的新闻发布系统_终极Linux系统ExTiX 19.8发布,基于深度操作系统deepin15.11...

    近日,GNU/Linux开发人员Arne Exton发布了他的ExTiX 终极Linux系统的新版本,带有全新的底层和更新的组件. ExTiX Deepin 19.8基于Deepin Linux操作系 ...

  7. linux 函数 查看ttl,利用TTL值来鉴别操作系统

    一.关于PING的介绍 PING命令来检查要到达的目标IP地址并记录结果. ping 命令显示目标是否响应以及接收答复所需的时间. 如果在传递到目标过程中有错误,ping 命令将显示错误消息. ICM ...

  8. Linux系统中如何利用LVM生成系统快照,以及PE值大小的设定

    LVM逻辑卷生成系统快照: 不清楚LVM逻辑卷的可以看链接:https://mp.csdn.net/postedit/83995080 快照的目的一个是备份信息文件,另外是挽救我们的失误操作导致系统崩 ...

  9. Linux系统IO端口,Linux系统对IO端口和IO内存的管理

    五.Linux下访问IO端口 对于某一既定的系统,它要么是独立编址.要么是统一编址,具体采用哪一种则取决于CPU的体系结构. 如,PowerPC.m68k等采用统一编址,而X86等则采用独立编址,存在 ...

最新文章

  1. 深度学习中的最大似然估计简介
  2. linux 卡在grub_详解ubuntu双系统启动时卡死解决办法
  3. 3.1 哈尔空间 V0
  4. 红帽7 -本地yum配置
  5. Hive _分桶及抽样查询
  6. Cascader 级联选择器
  7. python绘制折线图先对数据进行处理_python气象数据分析并绘制折线图-女性时尚流行美容健康娱乐mv-ida网...
  8. 使用echarts(一) 第一次使用echarts
  9. java hashtable 修改_Java Hashtable computeIfAbsent()用法及代码示例
  10. linux下怎么卸载mysql数据库_linux 怎么完全卸载mysql数据库
  11. 常见的一些反爬虫策略破解方式-Java网络爬虫系统性学习与实战系列(11)
  12. R语言探索性因子分析练习
  13. “磨刀”真的不误“砍柴”工吗?
  14. 初始值设置项里有未知的字段ndo_change_mtu
  15. Unity 4.6.2 iOS 64位支持
  16. 线程池的创建及参数设置详解
  17. MySQL每秒50w+的写入,如何实现?
  18. Neat Download Manager(ndm下载器)
  19. 自定义函数求圆和圆柱体的表面积
  20. 使用Spark读取并分析二进制文件

热门文章

  1. android 双层饼图_高大上的Excel双层饼图 充分表达层级关系 手把手详解
  2. 《统计学习方法》第15章习题答案(持续更新)
  3. 语义网简介(非应用)
  4. java-GUI-实战-贪吃蛇游戏V1.1(随缘更新)
  5. 测试姨妈哪一个软件准,哪款经期记录软件更准确 超多女生都在用的两款app
  6. 【实战案例】这种python反爬虫手段有点意思,看我怎么P解
  7. Kali的w3af安装及创建快捷方式的【详细】教程
  8. (ESP32学习1)IO的输出高低电平与上下拉输入
  9. 安卓模拟器 arm linux,让x86的android模拟器能模拟arm架构系统
  10. 软件测试里面关于网络抓包的学习笔记思考