欢迎光临散文网 会员登陆 & 注册

WEB 页面请求全历程协议及数据 包解析(综合性实验)-计算机网络

2022-08-04 09:20 作者:老师-忘记密码  | 我要投稿

一、 实验目的

1.1 实现本地浏览器访问目标WEB网站(如www.sina.com)并抓取相关的一系列网络数据包。

1.2 提高学生综合分析和理解计算机网络协议和解析网络数据包的能力

1.3 分析产生的相关数据包内容及其作用,从而给出 WEB 页面请求的完整实现过程。

 

二、 实验环境

2.1 Wireshark 网络分析软件

2.2实验文件“web 页面请求全程数据包.cap”

 

三、 实验内容

实验文件“web 页面请求全程数据包.cap”包含的是本地主机(IP:172.29.19.133)通过浏览器访问某 web 页面所产生和收到的相关数据包。

 

四、 实验问题

1.从实验文件中,列举解析本地主机(IP:172.29.19.133)通过浏览器访问某 web 页面所

产生和收到的相关数据包。

答:

分组1到11都是本地主机(IP:172.29.19.133)通过浏览器访问百度所产生和收到的相关数据包。分组 1、2、3、4 完成的是 www.baidu.com 的域名解析,分组 5、6、7 完成的是浏览器客户端与 baidu 服务器的 TCP 连接,以便执行后续的 HTTP 协议。分组 8、9 分别是客户浏览器发送的 HTTP Get 请求和服务器的响应,分组10、11是进行TCP数据传输过程。

 

 

2. 详细解析数据包的内容。

答:

分组5:

l 它的源端口是 61556,是客户端的一般端口号。

l 它的目的端口是 80,是服务器端的 HTTP 应用服务。

l 当前发送的数据首字节是 1(相对值)。它携带的数据包长度是 0 字节,52(IP包全长,见 IP 包头的长度字段值)-20(IP 首部长度)-32(TCP 首部长度)=0字节,因此该 TCP 数据包未携带数据。

l 确认号字段为 0,结合后面的 ACK =0,表明没有接收对方发送的首字节的数据。

l TCP 首部长度:0800(H)=0000 1000 0000 0000(B),其中表示 TCP 首部长度长度是前4位,即 1000(B)=8,因此该 TCP 首部长度是 8×4 字节=32 字节,包含选项字段12字节。

l 同步比特 SYN=0,表明它不是一个 TCP 连接相关的数据包。

l 确认比特 ACK=1 ,确认号字段才有效。当 ACK =0 时,确认号无效。

l 推送比特 PSH (PuSH)=0,等到整个缓存都填满了后再向上交付。

l 窗口字段大小 65535 字节,当前可以接收对方发送65535字节。

l 校验和=0x7fc6,未确认。

l 紧急指针字段=0,因为紧急 URG=0

l 头部选项字段:给出了时间戳 Time stamp。

分组6:

l 它的源端口是 80,是服务器端的 HTTP 应用服务。

l 它的目的端口是 61556,是客户端的一般端口号。

l 当前发送的数据首字节是 1(相对值)。它携带的数据包长度是 0 字节,52(IP包全长,见 IP 包头的长度字段值)-20(IP 首部长度)-32(TCP 首部长度)=0字节,因此该 TCP 数据包未携带数据。

l 确认号字段为 1,结合后面的 ACK =1,表明已经正确接收对方发送的首字节的数据。

l TCP 首部长度:0800(H)=0000 1000 0000 0000(B),其中表示 TCP 首部长度长度是前4位,即 1000(B)=8,因此该 TCP 首部长度是 8×4 字节=32 字节,包含选项字段12字节。

l 同步比特 SYN=0,表明它不是一个 TCP 连接相关的数据包。

l 确认比特 ACK=1 ,确认号字段才有效。当 ACK =0 时,确认号无效。

l 推送比特 PSH (PuSH)=1,接收 TCP 收到推送比特置 1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。

l 窗口字段大小 8192 字节,当前可以接收对方发送8192字节。

l 校验和=0x35df,未确认。

l 紧急指针字段=0,因为紧急 URG=0

l 头部选项字段:给出了时间戳 Time stamp。

分组7:

l 它的源端口是 61556,是客户端的一般端口号。

l 它的目的端口是 80,是服务器端的 HTTP 应用服务。

l 当前发送的数据首字节是 1(相对值)。它携带的数据包长度是 0 字节,52(IP包全长,见 IP 包头的长度字段值)-20(IP 首部长度)-32(TCP 首部长度)=0字节,因此该 TCP 数据包未携带数据。  

l 确认号字段为 1,结合后面的 ACK =1,表明已经正确接收对方发送的首字节的数据。

l TCP 首部长度:0800(H)=0000 1000 0000 0000(B),其中表示 TCP 首部长度长度是前4位,即 1000(B)=8,因此该 TCP 首部长度是 8×4 字节=32 字节,包含选项字段12字节。

l 同步比特 SYN=0,表明它不是一个 TCP 连接相关的数据包。

l 确认比特 ACK=1 ,确认号字段才有效。当 ACK =0 时,确认号无效。

l 推送比特 PSH (PuSH)=0,等到整个缓存都填满了后再向上交付。

l 窗口字段大小 32768 字节,当前可以接收对方发送32768字节。

l 校验和=0x7fba,未确认。

l 紧急指针字段=0,因为紧急 URG=0

分组8:

浏览器发送的 HTTP Get 请求;

请求的域名:www.baidu.com

连接属性:长连接

浏览器支持的语言类型:zh-CN

客户端可识别的数据编码:gzip, deflate

分组9:

百度服务器的响应

响应版本:HTTP/1.1

状态码:302

回复短语:找到

服务器:HTTP Load Balancer/2.0

内容类型:text/html

位置:https://www.baidu.com/index.php?tn=56060048_5_pg&ch=6\r\n

 

 

3. 根据实验文件回答

(1)DNS 解析的内容;

答:

分组1:

标识字段:0x9075

若干标志字段(2 字节):标志字段值为 0100(H),分解为 QR=0,是查寻报文;opcode=0000标准查询;TC=0,报文不可截断;RD=1,期望递归查询;Z=0,保留位;NA=0,不接收非权威数据。

问题数=1;资源记录=0;授权资源记录=0;额外资源记录=0;

查寻的域名:www.baidu.com;查寻类型:主机地址;查寻类别:IP 地址 (class ,是一个16 位值,标记协议族或某一个协议实例,使用 IN 代表 internet 系统,CH 代表 Chaos 系统; classIN 是一个 32 位 IP 地址 )

 

分组2:

标识字段:0xd363

若干标志字段(2 字节):标志字段值为 0100(H),分解为 QR=0,是查寻报文;opcode=0000标准查询;TC=0,报文不可截断;RD=1,期望递归查询;Z=0,保留位;NA=0,不接收非权威数据。

问题数=1;资源记录=0;授权资源记录=0;额外资源记录=0;

查寻的域名:www.baidu.com;查寻类型:主机地址;查寻类别:IP 地址 (class ,是一个16 位值,标记协议族或某一个协议实例,使用 IN 代表 internet 系统,CH 代表 Chaos 系统; classIN 是一个 32 位 IP 地址 )

 

分组3:

标识字段:0x9075

若干标志字段(2 字节):标志字段值为 8180(H),分解为 QR=1,是响应报文;opcode=0000标准查询;TC=0,报文不可截断;RD=1,期望递归查询;Z=0,保留位;NA=0,不接收非权威数据。

问题数=1;资源记录=3;授权资源记录=0;额外资源记录=0;

 

分组4:

标识字段:0xd363

若干标志字段(2 字节):标志字段值为 8180(H),分解为 QR=1,是响应报文;opcode=0000标准查询;TC=0,报文不可截断;RD=1,期望递归查询;Z=0,保留位;NA=0,不接收非权威数据。

问题数=1;资源记录=1;授权资源记录=1;额外资源记录=0;

 

 

(2)TCP 的连接建立过程;

答:

客户端进程(IP 地址:172.29.19.133,端口 61556)与服务器端进程(IP 地址:14.215.177.38 

端口 80)建立连接的 3 次握手过程,对应的分别是第 567 数据分组。它们分别完成的是:

5 数据分组:客户端的TCP(SYN=2fd4117a,这是客户端为了防范某些安全性攻击而选择的起始序号,相对序号是 1)向服务器端发出连接请求报文段;注意该分组的Option 字段内容,给出了 MSS=1460 字节,Sack Permitted 等协商内容。该连接请求报文不携带数据(Len=0),但消耗一个序号。为了防止 TCP syn 攻击,该分组选择的初始化序号是 2fd4117a,当然相对序号是 1。

 

6 数据分组:服务器端 的 TCP 收到连接请求报文段后,同意,发回确认(确认报文段中将 SYN 置为 1,ACK=1);注意该分组的 Option 字段内容,给出了 MSS=1452 字节. 该连接请求确认报文不携带数据(Len=0),但消耗一个序号。同时初始窗口值为 16384字节。为了防止 TCP syn 攻击,该分组选择的初始化序号是 9660d117,当然相对序号是 1, 对5 数据分组的确认是 9660d1189660d117+1)

 

7 数据分组:客户端收到此报文段后,向服务器端给出确认(ACK=1)。连接建立完成。

 

(3)本地主机访问的 web 页面的地址,如果发生重定向,新的 web 页面的地址是什么?

答:https://www.baidu.com/index.php?tn=56060048_5_pg&ch=6。

 

(4)TCP 是否发生了重传?

答:是。

(5)TCP 是如何实现确认的?

答:

累计确认就是TCP协议的确认方法,TCP使用可变长度报文段来发送数据,重传时,报文段数据可能会比原报文段数据包含更多的数据,因此对数据报和报文段无法进行简单的确认。TCP使用流序号对流中的一个位置进行确认,即序号和确认号一一对应,接收方使用序号将报文段重新排序,且以正确接收到的流的最长连续前缀进行确认。

 


WEB 页面请求全历程协议及数据 包解析(综合性实验)-计算机网络的评论 (共 条)

分享到微博请遵守国家法律