实践出真知
传输层
使用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。
——本文结束——
浙公网安备 33010602011771号