《互联网原理和应用》实验大纲和指导书2011(4)

2019-08-17 13:28

实验三 应用层HTTP协议实验

【实验目的】

1、掌握HTTP协议的使用

2、掌握HTTP和TCP协议的关系 2、了解HTTP协议的实现方式 【实验学时】

3学时 【实验类型】

综合型 【实验要求】

1、了解HTTP协议的通信过程

2、理解HTTP协议的无连接、无状态特性 3、学习HTTP协议的格式

4、理解HTTP协议与TCP协议的关系 【实验原理】

1、TCP的首部

TCP数据被封装在一个IP数据报中,如图3-1所示。

IP数据报TCP数据报IP首部20字节TCP首部20字节TCP数据

图3-1 TCP数据在IP数据报中的封装

图3-2显示TCP的数据报格式。其首部的长度通常是20个字节。

116位源端口号32位序号32位确认序号4位首部长度保留(6位)URGACKPSHRSTSYNFIN16位窗口大小16位紧急指针选项数据161716位目的端口号3216位检查和

图3-2 TCP数据报的格式

URG(紧急指针):值为1时,表示此报文应尽快传送; ACK(确认比特):值为1时,表示此报文的确认序号字段有效; PSH(急迫比特):值为1时,表示此报文应立即传送; RST(复位比特):值为1时,表示出现严重差错必须释放连接,然后再重建传输连接; SYN(同步比特):值为1时,表示此报文在建立连接; FIN(终止比特):值为1时,表示此报文已是最后一个,要求释放传输连接。

TCP段包含一个12字节长的伪首部,它是为了计算校验和而设置的。伪首部包含IP首部

一些字段。

2、HTTP报文

共有两种通用类型:请求报文,响应报文。

(1)请求报文:包括请求行、首部,以及有时出现的主体。如图

请求行 首部 空行 主体 (只在某些报文中出现)

请求行:包括请求类型、空格、URL、空格以及HTTP版本。

请求类型 (方法) 空格 URL 空格 HTTP版本

请求类型:此字段定义了几种不同方法的报文。 常用的几种方法:

1:GET:客户要从服务器读取文档时使用。

2:HEAD:当客户想得到关于文档的某些信息但并不是要这个文档时使用。 3:POST:当客户要给服务器提供某些信息时使用。

4:PUT:当客户将新的或更换的文档存储在服务器上时使用。

5:PATCH:和PUT相似,但它只包含必须在现有文件中出现的差异清单。 6:COPY:当需要将文件复制到另一个位置时使用。 7:MOVE:当需要将文件移到另一个位置时使用。 8:DELETE:当需要将服务器上的文档移走时使用。

9:LINK:当需要创建从一个文档到另一个位置的链接时使用。 10:UNLINK:当需要删除由LINK方法创建的链接时使用。 11:OPTION:当客户向服务器询问到一些可用的选项时使用。 统一资源定位符(URL):4要素:方法、主机、端口、路径

URL 方法 :// 主机 : 端口 / 路径 方法:用来读取文档的协议。 主机:放置信息的计算机。计算机常使用”WWW”开始的别名. 端口:服务器的端口号,可选。 路径:放置文件的路径名。

(2) 响应报文:包括状态行、首部、有时包括主体。 状态行 首部 空行 主体 (只在某些报文中出现)

状态行:包括HTTP版本、空格、状态码、空格、状态短语。

HTTP版本 空格 状态码

状态码:

100系列:提供信息的; 200系列:指示成功的请求;

300系列:把客户重定向到另一个URL; 400系列:指示客户端差错; 500系列:指示服务器端差错。 状态短语:用来解释状态码。 3、其他原理请参考教材

【实验步骤】

练习一:编辑并发送TCP数据包。

说明: 1. 在本实验中由于TCP连接有超时时间的限制,故仿真机端和监控机端的两位同学要

默契配合,某些步骤(如计算TCP校验和)要求熟练、迅速。 2. 为了实现TCP三次握手过程的仿真,发送第一个连接请求帧之前,暂停仿真机端的

TCP/IP 协议(否则计算机系统的网络会对该请求帧发出拒绝响应)。 3. 通过手工编辑TCP数据包实验,要求理解实现TCP连接建立、数据传输以及断开连

接的全过程。注意体会TCP首部中的序列号和标志位的作用。

a) ping 193.169.1.2,目的是让主控设备知道自己的MAC。 b) 在“本地连接”属性处,取消仿真机端的TCP/IP 协议。 3、编辑TCP数据包――SYN帧。

(1) 打开协议仿真编辑器。

(2) 填写该帧的以太网协议首部:

① 源MAC地址:本机MAC地址; ② 目的MAC地址:注意如选择的目的主机与本机不在同一子网时,目的MAC

地址该怎样填写; ③ “类型或长度”:0800(IP协议); ④ DATA不要填写内容。 (3) 填写IP协议头信息:

①上层协议类型:6(TCP);

②总长度:40(20IP头部+20TCP头部); ③首部校验和:留待最后计算; ④源IP地址;填写本机IP地址;

⑤目的IP地址:注意要与目的MAC地址对应; ⑥其它字段:任意。 (4) 填写TCP协议头信息:

①16位源端口号:任意大于1024的数,不要用下拉选择。 ②16位目的端口号:如80(HTTP协议)、110(SMTP协议)等。

空格 状态短语 ③32位序号:任意(记录下来,以备后面使用)。 ④32位确认序号:0。

⑤首部长度和标志位:5002(即长度为20字节,标志SYN为1)。 ⑥窗口大小:自定。

⑦校验和:覆盖TCP首部(包含伪首部)和TCP数据两部分,计算方法如下:

a) 将0006(TCP协议类型值)填写到TCP的校验和字段; b) 将TCP总长度换算为十六进制(如20个字节换算为0014),填写到TCP的紧急指针字段;

c) 在十六进制显示区,从IP首部的源IP地址开始选中至TCP尾,右击鼠标计算得到校验和,将该值填写到TCP校验和字段; ⑧紧急指针:0

(5) 填写IP协议头的首部校验和:应用前面介绍的方法计算。 4、发送TCP报文。

5、在监控机一端截获相应的应答报文并分析:

应答报文为什么帧?(看会话图中的标识)其发送序列号为 ,确认

号为 。

此时要求监控机一端的同学及时准确地捕获应答报文并迅速从中获得应答报文的发送序列号和确认号,并告之仿真机一端的同学;然后仿真机一端的同学根据应答报文提供的序号,继续编辑后续帧。

6、编辑第二个TCP数据包――ACK帧(尽量快地):

(a) 将第一个帧复制;

(b) 发送序号:应答报文的确认号(为什么?); (c) 确认序号:应答报文中的发送序列号+1; (d) 长度和标志位:5010(即ACK=1)。 (e)计算各校验和。 7、发送该TCP报文。

至此3次握手完成,TCP连接建立。 下面开始释放连接:

8、编辑第三个TCP数据包――ACK+FIN帧:

(a) 将第二个帧复制;

(b) 发送序号:前一发送帧的发送序号+1(请思考为什么?); (c) 确认序号:同前一发送帧(请思考为什么?); (d) 长度和标志位:5011(即ACK=1,FIN=1)。 (e) 计算各校验和。 9、发送该TCP报文。

10、在监控机一端截获报文并进行分析。 请画出整个会话过程。

注意:实验结束后启动仿真机端的TCP/IP协议。

练习二:通过IE浏览器学习HTTP协议。 1、在仿真机上打开IE浏览器;

2、在浏览器的地址栏中输入http://www.netedu.edu;

3、在监控机端捕获数据,分析数据包的传输过程,记录TCP连接的三次握手、序号、

确认号、数据长度和端口;一个网页是否只有一个进程?

4、在上面的网页上继续浏览一个链接,监控机端捕获数据并分析:是否需要新的TCP连接?

5、在打开多个IE浏览器并连接到http://www.netedu.edu ,监控机端捕获数据并分析:TCP连接情况有什么变化?

6、关闭IE浏览器,监控机端捕获数据并分析:TCP如何断开连接?

【思考问题】

结合实验过程中的实验结果,回答下列问题

1、如果在实验一发送建立连接请求帧之前,仿真机端不运行“PING 服务器” 命令,而又停止了仿真机端的TCP/IP协议,可能出现什么情况?通过实验来验证你的答案。

2、根据实验中窗口的变化和确认序号,分析TCP协议所使用的滑动窗口协议机制。

3、当仿真机上同时打开多个浏览器窗口并访问同一WEB站点的不同页面时,系统是根据什么把返回的页面正确地显示到相应窗口的?

4、HTTP和TCP之间是什么关系?结合实验说明HTTP协议的无连接、无状态特性。 【实验报告要求】

1、回答提出的问题。

2、画出TCP建立连接和断开连接的会话图。


《互联网原理和应用》实验大纲和指导书2011(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:清洁验证标准程序

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: