实验2 IP协议分析
1. 实验目的
- 了解IP报文格式,熟悉IP报文各个字段含义、长度
- 掌握基于tcpdump和wireshark软件进行数据包抓取和分析技术
2. 实验环境
- 硬件要求:阿里云云主机ECS 一台。
- 软件要求:Linux/ Windows 操作系统
3. 实验内容
3.1 tcpdump 基本用法
tcpdump是一个用于截取网络分组,并输出分组内容的工具。凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具
tcpdump 支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息
参考资料:
Linux tcpdump命令详解 - ggjucheng - 博客园
3.2 wireshark基本用法
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识。
参考资料:
https://www.wireshark.org/#download
https://www.cnblogs.com/csnd/p/11807736.html
3.3 利用tcpdump抓包,wireshark分析包
在阿里云主机运行命令traceroute www.xju.edu.cn ,并利用tcpdump抓包。下载文件到本地机器利用wireshark软件进行分析。
提示:
- 必须首先执行抓包命令,然后再执行路径追踪命令。抓包命令 tcpdump -i eth0 -w test.cap
- 可使用scp命令或者利用xshell和xftp下载数据包到本地机器。
1)利用tcpdump抓包,通过wireshark分析捕获的数据包,分析IP的报文结构,将IP协议树中各个名字字段,字段长度,字段信息填入下表。
字段名 | 字段长度 | 字段值 | 字段表达信息 |
Version | |||
Header length IP | |||
Differentiated services Filed | |||
Total length | |||
Indentification | |||
flag | |||
Fragment offset | |||
Time to live | |||
protocol | |||
Header checksum | |||
source | |||
destination |
2) 利用wireshark分析并解读相关traceroute命令执行结果。
提示:在wireshark 过滤器工具栏设置仅显示ICMP
4. 实验结果与分析
1、将xshell与阿里云环境连接,如下图4-1所示:
图4-1 xshell页面
2、在阿里云页面进行抓包,并将结果保存到result.cap文档中,代码:tcpdump -i eth0 -w result.cap,运行结果如下图4-2所示:
图4-2 抓包代码运行结果
3、在xshell页面下载traceroute命令,并对www.baidu.com进行追踪,代码:yum install traceroute traceroute www.baidu.com,运行结果如下图4-3、图4-4所示:
图4-3 下载traceroute运行结果
图4-4 traceroute命令运行结果
4、在阿里云环境中使用ctrl+c,将抓包停止后,在xftp中将result.cap文件下载到本地,如下图4-5所示:
图4-5 xftp文件传输界面
5、使用wireshark打开result.cap并分析数据,如下图4-6所示:
图4-6 wireshark分析界面
6、在wireshark里进行过滤icmp和udp获取数据,如下图4-7和图4-8所示:
图4-7 过滤获取icmp
图4-8 过滤获取udp
7、在wireshark里选取一个icmp数据包打开,并对数据包进行分析,如下图4-9所示:
图4-9 icmp数据包分析
8、利用wireshark里分析所得的数据对表格进行填写,表格如下:
字段名 | 字段长度 | 字段值 | 字段表达信息 |
Version | 4 | 4 | 版本字段IPv6 |
Header length IP | 4 | 20 bytes(5) | IP 协议头长度 |
Differentiated services Filed | 8 | 0x14 | 区分服务域 |
Total length | 16 | 56 | 总长 |
Indentification | 16 | 0x0000 | 标识符 |
flag | 3 | 0x0 | 标记字段 |
Fragment offset | 13 | 0 | 分段位移,表示的是首段的偏移,以8个字节为偏移单位 |
Time to live | 8 | 253 | 生存期 |
protocol | 8 | ICMP(1) | 协议,指定了数据包中的数据类型 |
Header checksum | 16 | 0XDCEA | 头部校验和,确保数据的正确性 |
source | 32 | 10.102.39.241 | 源地址 |
destination | 32 | 172.16.2.95 | 目的地址 |