实验HTTP网页访问应用分析
实验目的
了解HTTP协议,以及协议的工作原理和工作方式。掌握HTTP协议的报文格式,在此基础上分析HTTP访问的具体流程。本实验目的是了解HTTP网页访问应用
预习
1、HTTP,全称Hyper Text Transfer Protocol,中文名为超文本传输协议
HTTP是一种用于从Web服务器端传送超文本标记语言(HTMLHyper Text Markup Language)文件到客户端浏览器的传送协议,它是Internet上最常见的协议之一我们通常访问的网页,就是通过HTTP协议进行传送的。
  2、客户端发送的HTTP报文,我们称为请求链;中介服务器或Web服务器发送的HTTP报文,称为响应链。两种报文都遵循以下格式:一般开始行,即请求报文的请求行和应答报文的状态行;总头;报文头;一个空行;报文体。
实验内容及要求
1、学习HTTP协议的格式和与TCP协议的关系
2、了解HTTP协议的通信过程;
3、理解HTTP协议的无连接、无状态特性。
实验结果tcp ip协议中文名(可续页)
步骤1:分析HTTP协议
1、在主机上打开数据包分析器,点击工具栏上的“过滤器”,“类型过滤器”的下拉列表中选择“HTTP协议”,确定后开始进行数据捕获:
设置HTTP协议过滤器
2、使用实验室主机上安装的浏览器,例如  ,打开一个网页,如所示:
使用浏览器打开一个网页
3、此时在数据包分析器中可以看到捕获的数据包,可以看到HTTP请求报文和响应报文,以及其中所使用的命令。
HTTP请求报文
显示的是一个HTTP响应报文,在状态行里可以看到HTTP版本是    ,状态码是  ,状态短语是“  ”,表示紧随其后的报文中就携带了网页的内容:
HTTP响应报文
1、 依据捕获报文中建立和断开连接的过程,完成下面的填空:
步骤2:编辑一个HTTP报文
    1、在主机上打开数据包发送器,在工具栏上选择“添加”,会弹出“协议模板”对话框,选择“HTTP协议模版”,建立一个HTTP数据报文:
建立HTTP协议报文
2、填写其中以太网帧头、IP首部、TCP首部和HTTP报文的内容:
填写以太网协议首部信息
填写IP协议头信息

 填写TCP协议的各个字段和HTTP协议报文信息
   
编辑HTTP报文的内容
3、点击工具栏上的“发送”按钮,将编辑好的HTTP数据报文发送,可设置循环发送。
4、在实验主机上运行数据包分析器,捕获数据,捕获结果如下所示。其中可以清晰地看到,这个TCP报文的标志位是SYN,里面携带的是HTTP请求报文,其请求行内容为:   
捕获编辑的HTTP报文
【思考问题】
结合实验过程中的实验结果,问答下列问题:
1、当同时打开多个浏览器窗口并访问同一WEB站点的不同页面时,系统是根据什么把返回的页面正确地显示到相应窗口的?
答:当同时打开多个浏览器窗口并访问同一WEB站点的不同页面时每一个浏览器窗口可能对应一个或多个连接,每一个连接和数据报中的一个端口相对应,系统是根据这种对应关系把返回的页面正确地显示到相应窗口中。
2、一个主页是否只有一个连接?
答:一个主页不是只有一个连接,可能有多个连接。
3、为什么HTTP不保持与客户端的TCP连接?
答:
HTTP版本1.0指明了非持续连接,而在版本1.1中,持续连接是默认的策略。
非持续连接
在非持续连接中,对每一个请求/响应都要建立一次TCP连接。下面列出这种策略的步骤:
(1) 客户打开TCP连接,并发送请求。
(2) 服务器发送响应,并关闭连接。
(3) 客户读取数据,直到它遇到文件结束;然后它关闭连接。
使用这种策略时,对于在不同文件中的N个不同资源,连接必须打开和关闭N次。非持续连接策略给服务器造成了很大的开销,因为服务器需要N个不同的缓存,而每次打开连接时都要使用慢开始过程。
持续连接
HTTP版本1.1指明持续连接是默认的策略。在使用持续连接时,服务器在发送响应后,让连接继续为一些请求打开。服务器可以在客户请求或到达超时时限时,关闭这个连接。发送端通常在每一个响应中都发送数据的长度。但是,在某些情况下,发送端并不知道数据的长度。这种情况就是当文档是动态文档或活动文档时。在这些情况下,服务器把不知道长度这件事通知客户,并在发送数据后关闭这个连接,因此客户就知道数据结束的地方已经到了。
实验TCP协议原理分析
实验目的
传输控制协议(TCP)的工作主要是建立连接,然后从应用层程序中接收数据并进行传输,实验的目的是了解TCP协议的原理和工作连接方式。
预习
1、TCP,全称Transfer Control Protocol,中文名为传输控制协议,它工作在OSI的传输层,提供面向连接的可靠传输服务。
TCP的工作主要是建立连接,然后从应用层程序中接收数据并进行传输。TCP采用虚电路连接方式进行工作,在发送数据前它需要在发送方和接收方建立一个连接,数据在发送出去后,发送方会等待接收方给出一个确认性的应答,否则发送方将认为此数据丢失,并重新发送此数据。
2、了解TCP的报头结构和相关工作原理
实验内容及要求
1、理解TCP首部中各字段的含义及作用;
2、理解三次握手的过程;
3、能够分析TCP协议的建立连接、会话和断开连接的全过程;
4、学会计算TCP校验和的方法;
5、了解TCP的标志字段的作用。
实验结果(可续页)
步骤一:设定实验环境
(配置主机IP和路由器IP地址)
(连接外网IP设置)
(连接内网IP设置)
步骤二:利用数据包分析器捕获分析IP数据包
1. 连接远程FTP服务;
2. 开启数据包分析器,进行数据包抓包;
3. 利用工具栏中的TCP连接工具对FTP服务器发起连接
在IP地址中填入FTP服务器地址,端口填入FTP服务端口,然后点击连接。捕获到的三次握手报文
三次握手:
三次握手第一次连接,如下:
三次握手第二个报文,如下:
三次握手第三个报文,如下:
通过上面的TCP三次握手的报文,可以很清楚的分析出在TCP连接建立时,客户端和服务端所进行的工作。三次报文的重要区别在于标识位的不同,第一个报文,SYN位置,第二个报文是对第一个报文的确认,SYN位置,ACK位置,第三个报文是确认报文,ACK位置。
步骤三:查看本地TCP状态
1.在浏览器的地址栏输入:www.simpleware,在命令行下输入:netstat -n回车,如图:
2.观察TCP状态,记录Local Address、Foreign Address和State。
3.在浏览器的地址栏输入:www.baidu,在命令行下输入:netstat -n回车,如图:
4.观察TCP状态,记录Local Address、Foreign Address和State。
5.使用带其他参数的netstat命令,查看网络状态。例如:
netstat –a(显示所有连接和监听端口)。运行结果如下图所示:
netstat –b  显示包含于创建每个连接或监听端口的可执行组件。在某些情况下已知可执行组件拥有多个独立组件,并且在这些情况下包含于创建连接或监听端口的组件序列被显示。这种情况下,可执行组件名在底部的 [] 中,顶部是其调用的组件,等等,直到 TCP/IP 部分。注意此选项可能需要很长时间,如果没有足够权限可能失败。运行结果如下图所示.
步骤四:查看分析TCP确认机制
1. 在实验机中开启数据包分析器进行数据包捕获。
2. 在数据包分析器工具栏中的TCP连接工具中连接到主机B的FTP服务器并发送CWD命令
3. 分析捕获到的FTP数据包,如下图所示。
步骤五:查看TCP连接超时重传过程
1.查看其中一台主机的ARP缓存记录,确保有同组实验机器的ARP记录,如下图所示。
2.将主机A从网络中断开,确保分析不会对编辑段发送的TCP连接请求进行回应。
3.在主机A中开启数据包分析器,进行数据包捕获。
4.在主机A中用工具栏中的TCP连接工具对主机B的FTP服务发起连接,如下图所示。
【思考问题】
结合实验过程中的实验结果,回答下列问题
1.根据实验中窗口的变化和确认序号,分析TCP协议所使用的滑动窗口协议机制。
答:
滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。