计算机网络实验四
————应用层和传输层协议分析(PacketTracer)
实验目的
通过实验,熟悉PacketTracer的使用,学习在PacketTracer中对应用层和传输层进行仿真分析,进一步加深对协议工作过程的理解
实验原理
ARP协议
ARP协议是"Address Resolution Protocol"地址解析协议的缩写,就是将目标地址IP地址转为实际的MAC(物理地址)过程
每个安装有TCP/IP协议的电脑中都有一个ARP缓存表
- 如果能在缓存表中查询到目的IP地址,将MAC地址写入帧进行发送
- 如果未能在缓存表中查询到目的IP地址,主机就会发送一个广播,目标MAC地址是"FF.FF.FF.FF.FF.FF",等到主机B接收这个帧时,主机B才会回应主机A;主机A就会在自己的ARP缓存表中添加关于此IP的映射
DNS报文格式
头部字段:
字段 | 长度 | 描述 |
---|---|---|
ID | 16 bit | 标识字段,客户通过标识字段来确定DNS响应是否与查询请求匹配。 |
QR | 1 bit | 操作类型:0:查询报文1:响应报文 |
OPCODE | 4 bit | 查询类型:0:标准查询1:反向查询2:服务器状态查询3~15:保留未用反向查询是客户端请求服务器根据回答生成导致此回答的问题,这个查询类型的使用并不多。 |
AA | 1 bit | 若置位,则表示该域名解析服务器是授权回答该域的。 |
TC | 1 bit | 若置位,则表示报文被截断。使用UDP传输时,应答的总长度超过512字节时,只返回报文的前512个字节内容。 |
RD | 1 bit | 客户端希望域名解析服务器采取的解析方式:0:表示希望域名解析服务器采取迭代解析1:表示希望域名解析服务器采取递归解析 |
RA | 1 bit | 域名解析服务器采取的解析方式:0:表示域名解析服务器采取迭代解析1:表示域名解析服务器采取递归解析 |
Z | 3 bit | 全部置0,保留未用。 |
RCODE | 4 bit | 响应类型:0:无差错1:查询格式错2:服务器失效3:域名不存在4:查询没有被执行5:查询被拒绝6-15: 保留未用 |
QDCOUNT | 16 bit | 无符号16位整数表示报文请求段中的问题记录数。 |
ANCOUNT | 16 bit | 无符号16位整数表示报文回答段中的回答记录数。 |
NSCOUNT | 16 bit | 无符号16位整数表示报文授权段中的授权记录数。 |
ARCOUNT | 16 bit | 无符号16位整数表示报文附加段中的附加记录数。 |
资源记录字段:
字段 | 长度 | 描述 |
---|---|---|
NAME | 不定长 | 资源记录包含的域名。 |
TYPE | 2个字节 | 表示资源记录的类型,指出RDATA数据的含义。 |
CLASS | 2个字节 | 表示RDATA的类。 |
TTL | 4字节 | 无符号整数,表示资源记录可以缓存的时间。0代表只能被传输,但是不能被缓存。 |
RDLENGTH | 2个字节 | 无符号整数,表示RDATA的长度。 |
RDATA | 不定长 | 字符串,表示记录,格式跟TYPE和CLASS有关。比如,TYPE是A,CLASS是IN,那么RDATA就是一个4个字节的ARPA网络地址。 |
IP报文格式
字段 | 描述 |
---|---|
版本 | IP协议版本号为4,下一代IP协议版本号为6 |
首部长度 | IP报头的长度;固定部分的长度(20字节)和可变部分的长度之和(最大40字节) |
服务类型 | |
总长度 | 报头的长度和数据部分的长度之和 |
标识 | 唯一标识,通常每发送一个报文,它的值加一 |
标志 | R、DF、MF三位。目前只有后两位有效,DF位:为1表示不分片,为0表示分片。MF:为1表示“更多的片”,为0表示这是最后一片。 |
片偏移 | 本分片在原先数据报文中相对首位的偏移位 |
生存时间 | IP报文所允许通过的路由器的最大数量 |
协议 | 指出IP报文携带的数据使用的是那种协议,TCP的协议号为6,UDP的协议号为17。ICMP的协议号为1,IGMP的协议号为2. |
首部校验和 | 计算IP头部的校验和,检查IP报头的完整性 |
源IP | 标识IP数据报的源端设备 |
目的IP | 标识IP数据报的目的地址 |
Ethernet II帧格式
ICMP协议
ICMP是 Internet Control Message Protocol 的缩写,即互联网控制消息协议。它是互联网协议族的核心协议之一。它用于 TCP/IP 网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈,通过这些信息,使网络管理者可以对所发生的问题作出诊断,然后采取适当的措施解决问题。
虽然 ICMP 是网络层协议,但是它不像 IP 协议和 ARP 协议一样直接传递给数据链路层,而是先封装成 IP 数据包然后再传递给数据链路层。所以在 IP 数据包中如果协议类型字段的值是 1 的话,就表示 IP 数据是 ICMP 报文。
实验环境
1:Wireshark,强有力的网络分析工具,可以捕获网络中的数据,并为用户提供关于网络和上层协议的各种信息
2:PacketTracer,网络模拟仿真软件
5.3版本PacketTracer软件下载链接:https://sm.myapp.com/original/Office/PacketTracer53_setup.exe
实验内容
任务1 从PC使用URL捕获Web请求
1:建立模拟拓扑
选择PC-0和Server服务器,选择虚线中的FastEthernet进行连接,如下图
2:配置PC和Server的IP
配置PC:
配置Server:
3:配置Sever的DHCP和DNS
DHCP设置为静态分配IP
DNS增加域名www.server.com
4:进行模拟
1:点击右下角Simulation模式
2:单机PC选择Web Browser,在URL输入框中输入www.server.com,点击go
3:单机Event List后,单击 Auto Capture/Play(自动捕获/播放)按钮自动模拟和捕获事件
4:点击show all可以重新展示整个过程
结果分析
- 点击Event List中会出现各种协议的包,比如DNS、TCP、HTTP等的协议包
- 点击Info小正方形块,可以查看PDU信息(各个层报文的格式)
PDU协议数据单元(Protocol Data Unit):指对等层次之间传递的数据单元
1:对DNS解析服务进行分析
2:对DNS报文进行分析
请求PDU
响应PDU
源和目的交换位置,ID号改变,并将DNS解析结果放入到DNS资源数据段中
3:HTTP报文
Get请求方法,请求index.html页面,采用HTTP/1.1版本,语言为us-en,非持续性连接,请求的域名为www.server.com
返回状态码200,长度为357,类型为text/html类型,服务器类型是PT-Server/5.2
4:三次握手和四次挥手
任务2:HTTP分析
进行模拟
1:点击文档中的HTTP.pkt,点击右下角的Simulation进行模拟
2:单击PC,打开Web Browser,输入10.1.1.3,点击Go
3:在EvenList中点击Auto Capture/Play,开始模拟抓包
结果分析
1:ARP协议分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ga0jq8Mm-1652772971136)(Markdown图片包/image-20220517104048181.png)]
首先进行ICMP协议发送准备,发现下一跳IP地址不在ARP缓存表中,准备ARP广播,请求 的ARP报文格式如下
服务器接收后,目的MAC地址相匹配,但是目标IP10.1.1.2与服务器10.1.1.3不匹配,将源IP在服务器ARP表中进行更新,丢弃ARP包
最后ARP超时,客户端请求超时,丢弃缓冲区中packet
2:TCP三次握手分析
3:HTTP协议分析
在PDU中查看HTTP请求报文格式和响应报文
第一次请求为index.html初始页面,返回状态码200,非持续性连接,长度为166
第二次请求logo.gif图片,返回状态码404,非持续性连接,长度0
第三次请求image.jpg图片,返回状态码404,非持续性连接,长度0
与网页中展示的一致,logo和image图片无法显示
4:TCP四次挥手分析
任务3:FTP分析
FTP测试
PC0有一个FTP客户端,用于读取、写入、删除和重命名FTP服务器中的文件。
- 测试FTP写入
1.从PC0中,打开桌面命令提示符并键入命令“ftp www.ftpserver.com”。
2.输入用户名和密码为cisco(默认值),成功后将进入“ftp”提示。
2.输入命令“put sampleFile.txt”。
3.从Server0打开FTP配置页面,查看上传的文件“sampleFile.txt”。
- 测试FTP读取和目录列表
- 测试FTP重命名
- 测试FTP删除
- 测试FTP退出
结果分析
FTP连接过程
-
PC0 输入 ftp www.ftpserver.com 发起连接;收到服务器回复后;
-
输入账号: PC0 发出一个包含账号的 FTP 数据包;
-
服务器收到后,发出一个账号已收到,需要密码的 ftp 包;
-
收到后,PC0 再发出包含密码的 FTP 数据包;
-
服务器回复包含登陆成功的 FTP 数据包。