一、实验目的
了解TCP/IP协议的协议栈,尤其是数据链路层、网络层和传输层协议的PDU格式。
二、实验内容
每台电脑的IP地址是不一样的,实验报告请保证原创,谢绝雷同!谢绝雷同!!
1、熟悉Wareshark抓包软件的应用。
2、ARP协议分析
(1)假设邻座同学的主机为A,IP地址为w.x.y.z,运行抓包软件,新建一个Filter,只捕获本机与w.x.y.z之间的以太网帧。
(2)进入DOS仿真窗口,执行“arp –a”查看本机的ARP缓存内容,若有w.x.y.z的记录,执行“arp –d w.x.y.z”删除该记录。注:执行“arp -help”可知arp的各选项用法。
(3)开始捕获,然后执行“ping w.x.y.z”,停止捕获,记录并分析封装ARP报文的帧各字段的含义,如表1(表格可以添加行)。
捕获的报文:
请求报文:
应答报文:
实验项 | 字段名称 | 值 | 含义 | |
ARP请求和响应报文 | 请求报文 | 目的地址 | ff:ff:ff:ff:ff:ff | 内部广播通过ARP来寻找目的地址 |
源MAC地址 | 54:89:98:48:49:95 | 本机的物理地址 | ||
帧类型 | ARP(0X0806) | 数据包的类型 | ||
填充字段 | 0000000 | 报文字段填充,不够64bit要进行填补 | ||
操作码 | request(0x0001) | 相应序号对应相应的类型 | ||
源MAC地址 | 54:89:98:48:49:95 | 主机的物理地址 | ||
源IP地址 | 20.3.0.1 | 源端的IP地址 | ||
目的MAC地址 | 00:00:00:00:00:00 | 目的端的物理地址(未知) | ||
目的IP地址 | 20.3.0.2 | 已知IP,来找物理地址 | ||
响应报文 | 目的地址 | 54:89:98:48:49:95 | 找到之后写入MAC帧的首部 | |
源地址 | 54:89:98:fd:12:48 | 通过IP找到的物理地址 | ||
帧类型 | ARP(0x0806) | 数据包的类型 | ||
填充字段 | 0000000 | 报文字段填充,不够64bit要进行填补 | ||
操作码 | reply(0x0002) | 相应序号对应相应的类型 | ||
源MAC地址 | 54:89:98:fd:12:48 | 找到的本机的MAC地址 | ||
源IP地址 | 20.3.0.2 | 源端的IP地址 | ||
目的MAC地址 | 54:89:98:48:49:95 | 将源端作为目的端进行首部写入 | ||
目的IP地址 | 20.3.0.1 | 将源端的IP写入IP数据报 |
- 执行“arp –d w.x.y.z”清除缓存的IP-MAC记录。本机和主机A停止任何数据通信,在主机A上访问本机外的任何主机,再执行“arp – a”查看本机ARP缓存,看是否新增了主机A的IP-MAC记录,解释一下。
3、IP数据报格式分析
开始捕获,然后执行ping w.x.y.z,再停止捕获;分析捕获的帧,特别是封装的IP数据报格式,记录各字段(包括数据部分“ICMP报文”的字段)的值和含义如表2(表格可以添加行),并与IP数据报、ICMP报文的格式进行比较。
抓到的报文:
表2 IP分组和ICMP报文的格式
序号 | 字段名称 | 值 | 含义 |
1 | 版本号 | 4 | IP协议的版本 |
2 | 首部长度 | 20bytes | 指定首部的长度最大长度60字节,固定首部长20字节 |
3 | 生存时间 | 127 | IP数据包在网络中可通过路由器的最大跳数(TTL) |
4 | 协议 | ICMP | 让IP层知道应该将数据部分上交至哪个协议进行处理 |
5 | 首部检验和 | 0x2e58 | 检验首部,只检验数据报的首部 |
6 | 源地址 | 20.19.0.111 | 占32位(发送方) |
7 | 目的地址 | 20.1.0.2 | 占32位(接收方) |
ICMP | |||
8 | 类型 | 8(ping)request | 报文类型(0/8)请求或者回答报文 |
9 | 代码 | 0 | 8 Code:0 Echo request——回显请求(Ping请求) |
10 | 检验和 | 0xa1d8 | 对整个报文的报文信息校验 |
11 | 数据部分 | 32bytes | 实际携带的数据 |
4、TCP分析
假设邻座同学的主机为A,IP地址为w.x.y.z,已启动电子邮件服务。在本机运行EtherPeek,设置过滤器“捕获本机到主机A之间的TCP报文段”。
1)随意选一个TCP报文段,观察以太网帧、IP数据报、TCP报文段的封装关系,然后简述一下。
2)找出TCP连接建立、连接释放的几个报文段,记录报文段首部的源端口、目的端口、序号、确认号、ACK、SYN等字段的值,填入表3(表格可以添加行),验证是否符合教材图5-28、5-29。
抓到的TCP报文:
表3 连接建立和释放过程中TCP报文段首部的若干字段
报文段 | 源端口 | 目的端口 | 序号 | 确认号 | ACK | SYN | FIN | 窗口 |
三次握手 | 2059 | 80 | 0 | 0 | 0 | 1 | 0 | 见下图 (下面两图给出第三次握手和第四次挥手的情况) |
80 | 2059 | 0 | 1 | 1 | 1 | 0 | ||
2059 | 80 | 1 | 1 | 1 | 0 | 0 | ||
1 | 0 | 0 | ||||||
四次挥手 | 2059 | 80 | 155 | 308 | 1 | 0 | 1 | |
80 | 2059 | 308 | 156 | 1 | 0 | 0 | ||
80 | 2059 | 308 | 156 | 1 | 0 | 1 | ||
2059 | 80 | 156 | 309 | 1 | 0 | 0 |
第三次握手:
第四次挥手: