实验六、HTTP网页访问应用分析
实验目的 了解HTTP协议,以及协议的工作原理和工作方式。掌握HTTP协议的报文格式,在此基础上分析HTTP访问的具体流程。本实验目的是了解HTTP网页访问应用。 |
预习 1、HTTP,全称Hyper Text Transfer Protocol,中文名为超文本传输协议。 HTTP是一种用于从Web服务器端传送超文本标记语言(HTML-Hyper 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小时内删除。
发表评论