姓名:黄声钦
学号:201821121077
班级:计算1813
1 实验目的
熟练使用Packet Tracer工具。分析抓到的应用层协议数据包,深入理解应用层协议,包括语法、语义、时序。
2 实验内容
使用Packet Tracer,正确配置网络参数,抓取应用层协议的数据包并分析,协议包含DNS、FTP, DHCP, stmp, pop3。步骤包含:
- 建立网络拓扑结构
- 配置参数
- 抓包
- 分析数据包
3. 实验报告
(1)建立网络拓扑结构
3.1 DNS
(2)配置参数
PC和SERVER的IP配置如下:
server的DNS配置如下:
(3)抓包并分析抓到的数据包
开始抓包:
分析抓取到的数据包:
此图为OSI模型界面,OSI模型包含七个层次,图中显示了七个层次的数据,最后一行表示这是由dns客户端向dns服务器发送dns查询。
上图为传出pdu详细信息,这里先介绍IP段,各字段的意义如下图:
首先看出每一个IP地址是32bite
其中TTL代表生存时间,即为缓存时间,如果这一项为0,表示只能传输不能缓存,CHKSUM表示校验
接下来是UDP部分;
SRC/DEST PORT下的数字是源端口号和目的端口号,端口号的有效范围是从0到65535。一般来说,大于49151的端口号都代表动态端口。
DNS header:
各字段意义如下图:
标识ID: 请求客户端设置的16位标示,服务器给出应答的时候会带相同的标示字段回来,这样请求客户端就可以区分不同的请求应答了。
标志:
QR 1个比特位用来区分是请求(0)还是应答(1)。
OPCODE 4个比特位用来设置查询的种类,应答的时候会带相同值,可用的值如下:
0 标准查询 (QUERY)
1 反向查询 (IQUERY)
2 服务器状态查询 (STATUS)
3-15 保留值,暂时未使用
AA 授权应答(Authoritative Answer) - 这个比特位在应答的时候才有意义,指出给出应答的服务器是查询域名的授权解析服务器。
注意因为别名的存在,应答可能存在多个主域名,这个AA位对应请求名,或者应答中的第一个主域名。
TC 截断(TrunCation) - 用来指出报文比允许的长度还要长,导致被截断。
RD 期望递归(Recursion Desired) - 这个比特位被请求设置,应答的时候使用的相同的值返回。如果设置了RD,就建议域名服务器进行递归解析,递归查询的支持是可选的。
RA 支持递归(Recursion Available) - 这个比特位在应答中设置或取消,用来代表服务器是否支持递归查询。
Z 保留值,暂时未使用。在所有的请求和应答报文中必须置为0。
RCODE 应答码(Response code) - 这4个比特位在应答报文中设置,代表的含义如下:
0 没有错误。
1 报文格式错误(Format error) - 服务器不能理解请求的报文。
2 服务器失败(Server failure) - 因为服务器的原因导致没办法处理这个请求。
3 名字错误(Name Error) - 只有对授权域名解析服务器有意义,指出解析的域名不存在。
4 没有实现(Not Implemented) - 域名服务器不支持查询类型。
5 拒绝(Refused) - 服务器由于设置的策略拒绝给出应答。比如,服务器不希望对某些请求者给出应答,或者服务器不希望进行某些操作(比如区域传送zone transfer)。
6-15 保留值,暂时未使用。
问题数QDCOUNT 无符号16位整数表示报文请求段中的问题记录数。
资源记录数ANCOUNT 无符号16位整数表示报文回答段中的回答记录数。
授权资源记录数NSCOUNT 无符号16位整数表示报文授权段中的授权记录数。
额外资源记录数ARCOUNT 无符号16位整数表示报文附加段中的附加记录数。
请求报文DNS Query:
各字段分别为:查询名,查询类型,查询类
最后是响应报文:
域名NAME 资源记录包含的域名
类型TYPE 2个字节表示资源记录的类型,指出RDATA数据的含义
类CLASS 2个字节表示RDATA的类
生存时间TTL 4字节无符号整数表示资源记录可以缓存的时间。0代表只能被传输,但是不能被缓存。
**资源数据长度URDLENGT**H 2个字节无符号整数表示RDATA的长度
资源数据RDATA 不定长字符串来表示记录,格式根TYPE和CLASS有关。比如,TYPE是A,CLASS 是 IN,那么RDATA就是一个4个字节的ARPA网络地址。
3.2 FTP
先在server端开启ftp服务
然后在PC端链接ftp服务:
抓取数据包;
以最后一个数据包为例:
首先分析TCP段各字段:
源端口号/目的端口号: 表示数据从哪个进程来, 到哪个进程去.
32位序号:
4位首部长度: 表示该tcp报头有多少个4字节(32个bit)
6位保留: 顾名思义, 先保留着, 以防万一
6位标志位
16位窗口大小:
16位检验和: 由发送端填充, 检验形式有CRC校验等. 如果接收端校验不通过, 则认为数据有问题. 此处的校验和不光包含TCP首部, 也包含TCP数据部分.
16位紧急指针: 用来标识哪部分数据是紧急数据.
选项和数据暂时忽略
最后的FTP段230表示登录成功。
3.3 DHCP
开启服务端的DHCP:
PC端由静态改成DHCP:
开始抓包;
点开最后一个数据包:
解释DHCP各字段的含义:
3.4 smtp和pop3
先设置好服务器的EMALL
然后DNS增加两个域名和地址
PC端的Configure Mail设置好:
发送邮件:
抓包:
查看数据包:
参考资料:
[1] 结合Wireshark捕获分组深入理解TCP/IP协议栈
[2] 结合Wireshark捕获分组深入理解TCP/IP协议栈之HTTP协议