一、实验目的:
主要时熟悉wireshark的使用
二、预备知识:
HTTP协议的相关知识
what fk,原来只要在右页点击切换,就可以开启2台不同的机器欸!nice
三、实验过程:
1.在机器1中通过管理员身份运行hfs之后,设置端口为8080,并将桌面的hfs文件夹添加为真实的目录,然后设置好用户名和密码,最后在属性中的上传选中所有人即可
2.切换到机器2中,先打开wireshark进行capure,并且用ip.addr == 10.1.1.33进行过滤
(1)获取http-get方法的相关数据包
首先,因为机器1中已经用hfs创建了对应的服务器,所以,可以在浏览器中输入10.1.1.33:8080进行访问,访问的过程中就使用到了http-get方法,
打开页面后,停止capure并且save出当前的情况
(2)获取http-post方法的相关数据包
重新打开wireshark进行capure,然后上传那个txt文件,同样这个过程使用了http-post方法(这一步也就是为什么当时需要设置都可以上传的属性的原因),停止capure并且save情况
3.最后,就是对上述抓取的2个方法的分别的请求报文和响应报文进行分析:
一下介绍其中的值得注意的地方:
part1:get方法的请求报文-
(1)客户端口 , 服务端口
(2)流索引,TCP分片长度,序列编号,下一个序列编号,ack号,头部字节长度
上面的是IP协议还有以太网协议部分的内容
(3)下面的TCP的具体内容才是重中之重:
包括:
请求方法,HTTP版本号
使用的浏览器
接受的语言
接受的编码方式
持续连接
以及,下一个响应报文的位置
part2:get方法的响应报文(通过上一个请求报文的链接到达)
不过,这里我想要详细地对这个结构进行分析,包括IP协议那些内容,
Num.1
这个Frame结构,应该就是说明一共在网卡上这个数据包捕获了多少个字节的数据吧
Num.2
然后就是 IPv4这个协议的内容了,
单独看这个标题的内容话,可以看到源Ip地址10.1.1.33,和目标Ip地址10.1.1.42
打开那个“+”,一窥究竟:
依次显示的是:
ip协议的版本号,
ip头部的长度,
ip数据包的总长度,
time to live 这个经过的网关生存数
下一个协议是TCP协议,
源ip地址和目标ip地址
TCP协议的小标题,记录了源端口号和目标端口号,seq号,ack号,和数据包长度
打开这个“+”看一下咯
起始除了这个,后面还有一点不知道是啥的内容,我就暂时不管了欸
这里记录了这些内容欸:
源端口号和目标端口号,
流索引,
TCP分片长度,
序列号,
ack号,
头部长度
这个东东不知道是啥,不管了
终于到了我们可爱的HTTP协议部分,这才是应用层的东西啊!它里面有:
HTTP的版本号,200状态号,OK这个字符解释
服务器类型名称,cookie,encoding方式,
当然,还有下一个frame的位置
part3:post方法的请求报文分析:
嘿嘿,这里的三次TCP握手的部分被我看到了欸!!!
这个post请求报文的部分就非常清晰了,开始就是Frame数据,然后是以太网协议,之后就是Ipv4协议,之后是TCP协议,最后是Http协议部分:
这里我们直接来看http协议部分:
我去,弄错了,这个是get方法的请求报文
下面这个才是post方法的请求报文:
奇怪了,为什么这里的源IP地址和目标ip地址还是这个样子?不对劲啊!
part4:post方法的响应报文
分析的内容基本和get方法一致