实验目的:学会使用wireshark抓包,并且学习计算机网络构成。
实验环境:Windows10,wireshark
参考资料:棋歌教学
前置学习:wireshark新手学习
一、数据链路层
使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构。
了解子网内/外通信时的 MAC 地址
ping 同一子网的计算机时,同时用 Wireshark 抓这些包(可使用 icmp 关键字进行过滤以利于分析),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?(未完成)
然后 ping qige.io
(或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址。
再次 ping www.cqjtu.edu.cn
(或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址。
二、网络层
使用 Wireshark 任意进行抓包(可用 ip 过滤),熟悉 IP 包的结构。
根据规定,一个 IP 包最大可以有 64K 字节。但由于 Ethernet 帧的限制,当 IP 包的数据超过 1500 字节时就会被发送方的数据链路层分段,然后在接收方的网络层重组。
缺省的,ping 命令只会向对方发送 32 个字节的数据。使用 ping 202.202.240.16 -l 2000
命令指定要发送的数据长度。此时使用 Wireshark 抓包(用 ip.addr == 202.202.240.16
进行过滤),了解 IP 包如何进行分段,如:分段标志、偏移量以及每个包的大小等
在 IP 包头中有一个 TTL 字段用来限定该包可以在 Internet上传输多少跳(hops),一般该值设置为 64、128等。
在验证性实验部分使用了 tracert 命令进行路由追踪。其原理是主动设置 IP 包的 TTL 值,从 1 开始逐渐增加,直至到达最终目的主机。
使用 tracert www.baidu.com
命令进行追踪,此时使用 Wireshark 抓包(用 icmp 过滤),分析每个发送包的 TTL 是如何进行改变的,从而理解路由追踪原理。
(网络原因,未完成)
三、传输层
用 Wireshark 任意抓包(可用 tcp 过滤),熟悉 TCP 段的结构。
用 Wireshark 任意抓包(可用 udp 过滤),熟悉 UDP 段的结构。
打开浏览器访问 qige.io
网站,用 Wireshark 抓包(可用 tcp 过滤后再使用加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间使得能够捕获释放连接的包。
在捕获的包中找到三次握手建立连接的包,并说明为何它们是用于建立连接的,有什么特征。
在捕获的包中找到四次挥手释放连接的包,并说明为何它们是用于释放连接的,有什么特征。
这里有我写的TCP说明
四、应用层
先使用 ipconfig /flushdns
命令清除缓存,再使用 nslookup qige.io
命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)。
可以看到当前计算机使用 UDP,向默认的 DNS 服务器的 53 号端口发出了查询请求,而 DNS 服务器的 53 号端口返回了结果。
可了解一下 DNS 查询和应答的相关字段的含义
打开浏览器访问 qige.io
网站,用 Wireshark 抓包(可用http 过滤再加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间以将释放连接的包捕获。
在捕获的包中找到 HTTP 请求包,查看请求使用的什么命令,如:GET, POST。并仔细了解请求的头部有哪些字段及其意义。
在捕获的包中找到 HTTP 应答包,查看应答的代码是什么,如:200, 304, 404 等。并仔细了解应答的头部有哪些字段及其意义。