实验一.应用协议与数据包分析实验(使用Wireshark)
一.实验目的
通过本实验,熟练掌握Wireshark的操作和使用,学习对HTTP协议进行分析。
二.实验内容
学习http协议,使用Wireshark截获http报文,对http请求报文和响应报文进行分析。
三.实验过程
1.截获报文
打开Wireshark开始截获报文,从浏览器访问:http://kczx.hnu.edu.cn/G2S/Template/View.aspx?courseId=1240&topMenuId=137974&action=view&type=&name=&menuType=1(计算机网络课程网站),打开后关闭网页,停止截获报文。此时发现Wireshark中截获了包括TCP,DNS,HTTP等各种协议的报文,找不到访问的网页的HTTP请求报文和响应报文。在截取报文的上方菜单栏有过滤器,可以过滤不同协议的报文,选择HTTP协议进行过滤:
2.报文分析
(1)问题1
根据报文格式,以方法(GET)开头的是HTTP请求报文,以HTTP版本(HTTP/1.1)开头的是HTTP响应报文。
(2)问题2
选取一个请求报文和一个响应报文进行分析:
请求报文:
请求行包含了方法,URL和HTTP版本:
方法:GET
URL:
/G2S/Template/View.aspx?courseId=1240&topMenuId=137974&action=view&type=&name=&menuType=1
版本:HTTP/1.1
首部行包含的信息如下:
最后一个首部字段经查询是表示客户端优先选择加密及带有身份验证的响应,即会使用https代替http。http协议以明文方式发送内容,不提供任何方式的数据加密,而https经由 HTTP 进行通信,会对数据进行加密。
响应报文:
状态行包含了协议版本(HTTP/1.1),状态码(200),状态码的解释(OK)。首部行包含的信息如下:
(3)问题3
查看所有报文的源端口与目的端口,客户机与服务器共建立了三个连接。客户机使用的三个端口号为:59075,59078,59079,服务器使用的则是熟知端口号80。
(4)问题4
通过浏览器访问一个网页时,浏览器和服务器的工作过程如下:
① 浏览器分析待访问页面的URL,并向本地DNS 服务器请求IP 。
② DNS 服务器解析出该HTTP 服务器的IP 地址并将IP 地址返回给浏览器。
③ 浏览器与HTTP 服务器通过三次握手建立TCP 连接。
④ 浏览器向HTTP 服务器发出请求报文 (含GET 信息),请求访问服务器的指定页面。
⑤ 服务器作出响应,将浏览器要访问的页面发送给浏览器,在页面传输过程中,浏览器会打开多个端口,与服务器建立多个连接。
⑥ 通过四次挥手释放TCP 连接。
⑦ 浏览器收到页面并显示给用户。
综合截获的报文进行分析,过滤掉一些报文,对应访问页面时浏览器和服务器的工作过程,对于TCP连接的建立和HTTP的请求与响应如下表,其中只有第一个TCP连接的建立和释放的相关报文填入表中,其他两个连接的建立和释放过程是类似的,没有体现在表中。
上面只重点列出了一个TCP连接的建立和释放的过程,其他两个连接是类似的,以上报文体现了HTTP的工作过程。有一点与所学习的TCP协议不同的是,最后服务器到客户的连接终止是通过RST报文终止的,而这个报文不会被确认。