《TCPIP协议原理》实验指导书(4)

2020-04-03 10:21

* 序号:4 字节,指本报文段所发送的数据的第一字节的序号;

* 确认序号:4 字节,是期望下次接收的数据的第一字节的编号,表示该编号以前的数据 已安全接收。 * 数据偏移:4 位,指数据开始部分距报文段开始的距离,即报文段首部的长度,以32bit 为单位。

* 标志字段:共有六个标志位:

① 紧急位URG=1 时,表明该报文要尽快传送,紧急指针启用;

② 确认位ACK=1 时,表头的确认号才有效;ACK=0,是连接请求报文;

③ 急迫位 PSH=1 时,表示请求接收端的TCP 将本报文段立即传送到其应用层,而不 是等到整个缓存都填满后才向上传递;

④ 复位位RST=1 时,表明出现了严重差错,必须释放连接,然后再重建连接; ⑤ 同步位 SYN=1 时,表明该报文段是一个连接请求或连接响应报文,

⑥ 终止位FIN=1 时,表明要发送的字符串已经发送完毕,并要求释放连接。 * 窗口:2 字节,指该报文段发送者的接收窗口的大小,单位为字节; * 校验和:2 字节,对报文的首部和数据部分进行校验;

* 紧急指针:2 字节,指明本报文段中紧急数据的最后一个字节的序号,和紧急位 URG 配合使用;

* 选项:长度可变,若该字段长度不够四字节,有填充补齐。 (2)TCP 连接的建立

TCP 连接的建立采用 “三次握手”的方法。

一般情况下,双方连接的建立由其中一方发起。如图29(a)所示:

* 主机A 首先向主机B 发出连接请求报文段,其首部的SYN 同步位为1,同时选择一个 序号x;

* 主机B 收到此连接请求报文后,若同意建立连接,则向主机A 发连接响应报文段。在 响应报文段中,SYN 同步位为1,确认序号为x+1,同时也为自己选择一个序列号y; * 主机A 收到此确认报文后,也向主机B 确认,这时,序号为x+1,确认序号为y+1 。 当连接建立后,A、B 主机就可以利用TCP 进行数据传输了。

图29 TCP 的连接和释放 (3)TCP 连接的释放

在数据传输结束后,任何一方都可以发出释放连接的请求,释放连接采用所谓的 “四次 握手”方法。如图29(b)所示,假如主机A 首先向主机 B 提出释放连接的请求,其过程如下:

16

* 主机A 向主机B 发送释放连接的报文段,其中,FIN 终止位为 1,序号x 等于前面已经发送数据的最后一个字节的序号加 1;

* 主机B 对释放连接请求进行确认,其序号等于x+1。这时从A 到B 的连接已经释放, 连接处于半关闭状态,以后主机B 不再接收主机A 的数据。但主机B 还可以向主机A 发送数据,主机A 在收到主机B 的数据时仍然向主机B 发送确认信息。

* 当主机B 不再向主机A 发送数据时,主机B 也向主机A 发释放连接的请求; * 同样主机A 收到该报文段后也向主机B 发送确认。 (4 )TCP 数据传输

TCP 可以通过检验序号和确认号来判断丢失、重复的报文段,从而保证传输的可靠性。 TCP 将要传送的报文看成是由一个个字节组成的数据流,对每个字节编一个序号。在连接建 立时,双方商定初始序号(即连接请求报文段中的SEQ 值)。TCP 将每次所传送的第一个字 节的序号放在 TCP 首部的序号字段中,接收方的TCP 对收到每个报文段进行确认,在其确 认报文中的确认号字段的值表示其希望接收的下一个报文段的第一个数据字节的序号。 由于TCP 能提供全双工通信,因此,通信中的每一方不必专门发送确认报文段,而可以 在发送数据时,捎带传送确认信息,以此来提高传输效率。 截获报文结果如下

seq 为报文的编号(本机第一个编号随机生成,后面是有规律的) 相对 0 seq=0

syn=1是请求建立连接

客户端返回数据的报文编号也是第一次 为0 要画三次握手的图

FIN为1是请求关闭连接

报文编号是前报文编号加数据长度(DATA) 第一次是敏感期不能丢报文同步位 SYN=1 时,表明该报文段是一个连接请求或连接响应报文

2.实验小结

通过这次实验可以加深对TCP三次握手规则的理解,并了解到TCP释放时的四次握手规则,让我们从课本上走向了实践中来,对动手能力有了很大的提高。

17

四、应用层协议分析

1.HTTP 协议简

HTTP 是超文本传输协议 (Hyper Text Transfer Protocol)的缩写,用于WWW 服务。 (1)HTTP 的工作原理

HTTP 是一个面向事务的客户服务器协议。尽管HTTP 使用TCP 作为底层传输协议,但 HTTP 协议是无状态的。也就是说,每个事务都是独立地进行处理。当一个事务开始时,就 在万维网客户和服务器之间建立一个TCP 连接,而当事务结束时就释放这个连接。此外,客 户可以使用多个端口和和服务器 (80 端口)之间建立多个连接。其工作过程包括以下几个阶段。

① 服务器监听TCP 端口 80,以便发现是否有浏览器 (客户进程)向它发出连接请求; ② 一旦监听到连接请求,立即建立连接。

③ 浏览器向服务器发出浏览某个页面的请求,服务器接着返回所请求的页面作为响应。 ④ 释放TCP 连接。

在浏览器和服务器之间的请求和响应的交互,必须遵循HTTP 规定的格式和规则。 当用户在浏览器的地址栏输入要访问的HTTP 服务器地址时,浏览器和被访问HTTP 服 务器的工作过程如下:

① 浏览器分析待访问页面的URL 并向本地DNS 服务器请求IP 地解析;

② DNS 服务器解析出该HTTP 服务器的IP 地址并将IP 地址返回给浏览器; ③ 浏览器与HTTP 服务器建立TCP 连接,若连接成功,则进入下一步;

④ 浏览器向HTTP 服务器发出请求报文 (含GET 信息),请求访问服务器的指定页面; ⑤ 服务器作出响应,将浏览器要访问的页面发送给浏览器,在页面传输过程中,浏览 器会打开多个端口,与服务器建立多个连接; ⑥ 释放TCP 连接;

⑦ 浏览器收到页面并显示给用户。

(2)HTTP 报文格式 HTTP 有两类报文:从客户到服务器的请求报文和从服务器到客户的响应报文。图 5.46 显示了两种报文的结构。

18

图46 HTTP 的请求报文和响应报文结构

在图46 中,每个字段之间有空格分隔,每行的行尾有回车换行符。各字段的意义如下: ① 请求行由三个字段组成:

* 方法字段,最常用的方法为 “GET”,表示请求读取一个万维网的页面。常用的方法 还有 “HEAD(指读取页面的首部)”和“POST(请求接受所附加的信息); * URL 字段为主机上的文件名,这时因为在建立TCP 连接时已经有了主机名; * 版本字段说明所使用的HTTP 协议的版本,一般为 “HTTP/1.1”。 ② 状态行也有三个字段:

* 第一个字段等同请求行的第三字段; * 第二个字段一般为 “200”,表示一切正常,状态码共有41 种,常用的有:301 (网站已转移),400(服务器无法理解请求报文),404(服务器没有锁请求的对象)等; * 第三个字段时解释状态码的短语。

③ 根据具体情况,首部行的行数是可变的。请求首部有Accept 字段,其值表示浏览器 可以接受何种类型的媒体;Accept-language,其值表示浏览器使用的语言;User-agent 表明可用的浏览器类型。响应首部中有Date、Server、Content-Type、Content-Length 等字段。在请求首部和响应首部中都有 Connection 字段,其值为Keep-Alive 或 Close,表示服务器在传送完所请求的对象后是保持连接或关闭连接。

④ 若请求报文中使用 “GET”方法,首部行后面没有实体主体,当使用 “POST”方法 是,附加的信息被填写在实体主体部分。在响应报文中,实体主体部分为服务器发送给客户 的对象。

图47 和图48 显示了Ethereal 捕获的HTTP 请求和响应报文,结合上面的介绍,请自己分析和体会。

图47 HTTP 请求报文示例

19

图48 HTTP 响应报文示例

2.实验环境与说明 (1)实验目的

在PC 机上访问RCMS 的Web 页面,截获报文,分析HTTP 协议的报文格式和HTTP

协议的工作过程。

(2)实验设备和连接

本地实验室环境,无须设备连接;

注意:请通过访问可以连接的WWW 站点或使用IIS 建立本地WWW 服务器来进行实验。 (3)实验分组

在一台电脑上安装apache软件,建立一个简单的网站,让另一台电脑来进行访问,并通过wireshark来进行捕获数据。 3.实验步骤

步骤1:在一台PC 机上访问另一台PC上的简单的网站;

步骤2:从浏览器上访问Web 界面,如http://192.168.64.9。打开网页,待浏览器的状态栏出现 “完毕”信息后关闭网页。

步骤3:停止截获报文,将截获的报文命名为http-学号保存。 截获的结果如下:

20


《TCPIP协议原理》实验指导书(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:蒙阴县各乡镇简介

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

马上注册会员

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