实践出真知

传输层

使用route命令查看路由表

Windows

route print

Linux

// man route查看命令手册
route -n

使用netstat列出监听中的端口

Windows

netstat -ano

筛选指定信息
netstat -ano | find /i "8005"

 Linux

netstat -ant

使用netstat 查看数据包统计信息

Windows、Linux使用

netstat -s

网络层

使用tcpdump命令抓取IP数据包

1、安装tcpdump工具

sudo apt-get update
sudo apt-get install -y traceroute

2、抓取IP数据包

sudo tcpdump -ntx -c 1

参数说明:

  • -n :显示 IP 地址而非域名地址
  • -t :不显示时间戳
  • -x :以十六进制显示包内内容
  • -c :tcpdump 将在接受到指定个数据包后退出

192.168.42.5.5901 > 192.168.42.2.39512 表示:

源 IP 为 192.168.42.5,端口 5901,目的 IP 为 192.168.42.2,端口 39512。

然后看到 0x0000 那行:

  • 协议版本:第一个数字“4”,为0x4。表示协议版本是IPv4。

  • 首部长度:4位,第二个数字“5”,为0x5。表示IP报头长度为5*4=20byte。

如果是0xF(15),则表示报头长度为15*4=60字节。

1byte=8bit,所以这里可以知道 IP 报头为 4500 到 2a02。

16进制的1位等于2进制的4位。

  • 服务类型(TOS):0x00,意味着是一般服务。

  • 总长度:0x331c,换算下来为 13084 字节。

  • 标识:0xb6ac

  • 3bit 标志 + 13bit 片偏移:0x4000

  • 生存时间:0x40,值为 64

  • 协议:0x06,代表 TCP 协议

  • 首部校验和:0x7bd7

其他信息可依次类推。

Windows

ping程序

ping程序简介

ping 程序是在网络层对两台主机之间连通性进行测试的基本工具。

ping只是利用 ICMP 回显请求报文和应答报文,而不经过传输层。

ping程序计算往返时间

ping 程序会在ICMP报文中存放发送请求时的时间值,当应答返回时,用当前时间减去存放在 ICMP 报文中的时间值,即是往返时间。

使用ping向www.mi.com发送3个数据包

// Linux
ping -c 3 www.mi.com

// windows
ping -n 3 www.mi.com

使用ping查看网络数据包的结构

使用 tcpdump 命令查看 ping 命令包的结构:

sudo tcpdump -nnvXSs 0 -c2 icmp

此时还没有数据包信息新开一个标签,执行以下命令,就能看到输出:

ping -c 1 mirrors.cloud.aliyuncs.com

第一个数据报是ICMP回显请求报文,是本机 192.168.42.4 发送给 100.100.2.148 的;

第二个数据报是ICMP回显应答报文,是 100.100.2.148 发给本机 192.168.42.4 的。

ping 命令判断操作系统

ping 命令会返回一个 TTL(Time To Live) 值,我们可以使用它来判断目标主机的操作系统类型。常见操作系统的默认 TTL 值如下:

  • UNIX TTL: 255

  • Linux TTL: 64

  • WINDOWS 95/98 TTL: 32

  • Windows NT 4.0/2000/XP/2003/7/8/10 TTL:128

此方法主要用于粗略的判断,想更加准确的获取服务器操作系统信息请学习 NMAP 相关知识。

traceroute程序

traceroute是Linux系统中的工具;Windows系统中是tracert。

traceroute简介

traceroute程序用来侦测IP数据报从源主机到目的主机之间所经路由的情况。

刚才 ping 程序中讲过,带 -R 参数的 ping 命令也可以记录路由过程,但是因为 IP 数据报头的长度限制(最多能保存 9个IP 地址),ping 不能完全记录IP数据报所经过的路由器。

traceroute工作原理

1、发送一份TTL为1的IP数据报给目的主机;经过第一个路由器时,TTL 值被减为 0,则第一个路由器丢弃该数据报,并返回一份超时 ICMP 报文。于此得到了路径中第一个路由器的地址。

2、然后再发送一份 TTL 值为 2 的数据报,便可得到第二个路由器的地址。

3、以此类推,一直到到达目的主机为止。这样便记录下了路径上所有路由器的IP。

使用 traceroute 来追踪路由过程

1、安装traceroute工具

sudo apt-get update
sudo apt-get install -y traceroute

2、追踪本机到www.baidu.com的路由过程

traceroute www.baidu.com

Windows系统命令

ifconfig/ipconfig

查看本机IP

Linux系统

这是一个C类IP。

Windows系统

ipconfig

查看子网掩码

ARP程序

查看ARP缓存表

Linux/Windows系统

数据链路层

查看网络接口的 MTU

使用netstat -in 命令查看网络接口的 MTU。

 

——本文结束——

 

posted @ 2020-04-16 20:30  力扬  阅读(189)  评论(0)    收藏  举报