计算机网络wireshark相关实验

数据链路层

1、熟悉 Ethernet 帧结构

使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。
在这里插入图片描述
可以发现MAC地址都一一对应,类型字段也可以查看

2、解子网内/外通信时的 MAC 地址

1、ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?
在这里插入图片描述
在这里插入图片描述
目的MAC地址: 5e-1d-d9-ea-96-64
返回源MAC地址: 5e-1d-d9-ea-96-64

2、再次 ping www.cqjtu.edu.cn (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址又是多少?这个 MAC 地址又是谁的?
在这里插入图片描述
发现仍然是网关的MAC地址

总结:MAC地址工作于局域网,局域网之间的互连一般通过现有的公用网或专用线路,需要进行网间协议转换。所以访问非本子网的计算机时,目的 MAC 是网关的

3、掌握 ARP 解析过程

使用 arp -d * 命令清空 arp 缓存然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 arp 过滤)。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应
在这里插入图片描述
发现解析出来的MAC地址是网关的MAC地址,说明在ping外网的计算机的时候是网关在回应。

总结:ARP解析是检查ARP表中是否有目标地址。如果有,则不需要再次建立连接,即可获得目标MAC。如果不是,则需要发送ARP请求来获取目的MAC。如果目的地址属于同一子网,则不需要通过网关进行通信,但不在同一子网内,则需要通过网关建立联系

网络层

1、熟悉 IP 包结构

使用 Wireshark 任意进行抓包(可用 ip 过滤),熟悉 IP 包的结构,如:版本、头部长度、总长度、TTL、协议类型等字段。
在这里插入图片描述
为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。请问为什么?
ip头部中一共有两个标识长度的字段,一个是整个数据报的长度(头部+数据),还有一个就仅是头部长度也就是你说的ver_len了。而且,之所以要用ver_len,也就是因为ip选项的存在使得ip头部长度不固定,只有知道了头部长度才能准确定位数据的开始。

2、IP 包的分段与重组

根据规定,一个 IP 包最大可以有 64K 字节。但由于 Ethernet 帧的限制,当 IP 包的数据超过 1500 字节时就会被发送方的数据链路层分段,然后在接收方的网络层重组。
缺省的,ping 命令只会向对方发送 32 个字节的数据。我们可以使用 ping 202.202.240.16 -l 2000 命令指定要发送的数据长度。此时使用 Wireshark 抓包(用 ip.addr == 202.202.240.16 进行过滤),了解 IP 包如何进行分段,如:分段标志、偏移量以及每个包的大小等
在这里插入图片描述
在这里插入图片描述

3、考察 TTL 事件

在 IP 包头中有一个 TTL 字段用来限定该包可以在 Internet上传输多少跳(hops),一般该值设置为 64、128等。
在验证性实验部分我们使用了 tracert 命令进行路由追踪。其原理是主动设置 IP 包的 TTL 值,从 1 开始逐渐增加,直至到达最终目的主机。
请使用 tracert www.baidu.com 命令进行追踪,此时使用 Wireshark 抓包(用 icmp 过滤),分析每个发送包的 TTL 。

在这里插入图片描述
在这里插入图片描述
在 IPv4 中,TTL 虽然定义为生命期即 Time To Live,但现实中我们都以跳数/节点数进行设置。如果你收到一个包,其 TTL 的值为 50,那么可以推断这个包从源点到你之间有多少跳?
128-50=78

传输层

1、熟悉 TCP 和 UDP 段结构

1、用 Wireshark 任意抓包(可用 tcp 过滤),熟悉 TCP 段的结构,如:源端口、目的端口、序列号、确认号、各种标志位等字段。
在这里插入图片描述
2、用 Wireshark 任意抓包(可用 udp 过滤),熟悉 UDP 段的结构,如:源端口、目的端口、长度等。
在这里插入图片描述
由上大家可以看到 UDP 的头部比 TCP 简单得多,但两者都有源和目的端口号。请问源和目的端口号用来干什么?
端口的作用就是用来唯一标识这个进程。源端口标识发起通信的那个进程,目的端口标识接受通信的那个进程。有了端口号,接受到报文后才能够知道将报文发送到哪个进程。

2、分析 TCP 建立和释放连接

1、打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用 tcp 过滤后再使用加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间使得能够捕获释放连接的包。
2、请在你捕获的包中找到三次握手建立连接的包,并说明为何它们是用于建立连接的,有什么特征。
在这里插入图片描述
建议先输入以上过滤命令,再打开 qige.io 网站,可以清晰得抓到三次握手的包
等到连接释放停止抓包

在这里插入图片描述
三次握手:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

应用层

1、了解 DNS 解析

1、先使用 ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、你应该可以看到当前计算机使用 UDP,向默认的 DNS 服务器的 53 号端口发出了查询请求,而 DNS 服务器的 53 号端口返回了结果。
在这里插入图片描述
在这里插入图片描述

2、了解 HTTP 的请求和应答

1、打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用http 过滤再加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间以将释放连接的包捕获。
在这里插入图片描述
2、请在你捕获的包中找到 HTTP 请求包,查看请求使用的什么命令,如:GET, POST。
在这里插入图片描述
3、请在你捕获的包中找到 HTTP 应答包,查看应答的代码是什么,如:200, 304, 404 等。。
在这里插入图片描述
404:页面不存在。

猜你喜欢

转载自blog.csdn.net/rude_dragon/article/details/111571380