网络协议数据获取与TCP/IP协议分析
北京理工大学信息与电子学院
1. 实验目的
在这个实验中我们将利用网页浏览的例子来分析网络协议的层次结构。我们将分析数据链路层、IP层以及应用层的协议数据单元(PDU)。特别地,我们将检查IP 地址与端口号如何在一起协调工作,完成端到端的应用。
2. 实验环境介绍
MAC地址和IP地址通过cmd中ipconfig/all获得
包括操作系统:win7
网络接入方式:通过srun3000接入
MAC地址:
IP地址:
3. 实验中分析的协议
(1)以太网与IP编址
(2)DNS查询与响应
(3)TCP三次握手、序列号和ACK应答号
(4)HTTP GET 和响应报文
(5)UDP协议
(6)ARP协议
4. 实验步骤
抓的是google的首页
(1)启动 Wireshark;
(2)启动一个网页浏览器,并输入谷歌的网址:/,此时不按下回车键。
(3)启动Wireshark开始抓包;并
在浏览期网页位置按下回车键,开始访问指定的网页。
(4)
一旦网页内容下载完毕,立即停止Wireshark抓包,并将抓到的数据包存入文件中,同时将显示的网页存储下来,以便后面参考
5. 协议的分析
5.1 以太网帧,IP分组和UDP数据报
(1)检查客户端发出的第一个DNS分组如下:
1)通过以以太帧的展开可以得到以下信息:
a. 确定客户端的以太网地址为:bc:ae:c5:51:a7:03(和cmd查询所得一致)
b.目的以太帧的地址为:00:d0:2b:12:f9:00
c.以太网帧结构的TYPE字段的内容是:IP(0x0800)
2)通过IP帧的展开可以得到以下信息:
a.客户端的IP地址是:10.2.29.37(跟cmd查询所得一致)
b.目的端得IP地址是:10.0.0.10
目的IP其实是学校的DNS服务器的地址:
与连接到Internet计算机的关系是 server与client的关系。
(2)检查客户端发出的第一个DNS分组的IP 报头
a.报头的长度是:
b.分组的总长度:
c.载荷数据中协议的编号和类型是:
(3)检查客户端发出的第一个DNS分组的UDP报头
报头内容如下:
a.确定客户端临时端口号:59307
b.服务器端的默认端口号:53
c.确定UDP报头中的长度字段是否与IP报头长度信息一致
UDP报头长度为:43
IP报头长度为:63-20=43
所以两者相等。
(4)画出客户端和服务器端从数据链路层到应用层的协议栈,并解释为什么各层的PDU内容能够使得应用层的进程之间实现端到端通信。
5.2 DNS
(1)检查客户端发送的DNS分组中的DNS查询报文,内容如下:
a)哪个字段表明这个报文:query,并且说明响应在第51帧
b)查询的正文中传送的信息:网址为:,网络的类
型为A,级别为:IN,即代表internet。
c)查询的交互ID是:
d)确定查询的类型与级别的字段:
(2)现在检查对上述查询的DNS响应的分组,内容如下:
a.客户端和目的地址的MAC地址:
可以看出和查询时候是对应的。
b.客户端和目的地址的IP地址:
可以看出和查询时是对应关系,说明准确。
c.传送DNS响应的IP分组的大小:
所以大小为:328-20=308.
d.UDP数据报的大小:
两者也同样相等,并且响应的比查询的数据大小要长。
e.确定在响应报文中的交互ID是:
和查询时的ID号是一致的,说明是正确的。
f.在响应报文中提供了:7次答案,并且其TTL值如下所示:
流程图如下:
5.3 TCP 三次握手
(1)确定http客户端和服务器端建立连接
的三次握手的第一个TCP分段的帧结构。
a.第一个TCP分段为:
b.客户端和目的端的MAC地址分别为:
和DNS时的一致。
c.客户端和目的端的IP地址分别为:
说明通过学校的DNS服务器,客户端的IP已经和google的IP可以互通。
目的以太网地址对应的是学校的DNS服务器的MAC地址的值,目的IP 地址对用的对应的google服务器的IP值
TCP协议的内容如下:
从中可以看出:
a.客户端使用的临时端口号:
b.使用的默认端口号:和http默认的端口
号一致。
c.TCP分段的长度是:
d.客户端到服务器端分段的初始序列号是:
e.初始窗口大小是:
f.最大分段尺寸是:
g.包含SYN标志的十六进制字符:
(2)确定三次握手中的第二分段
a. 第一和第二分段抓取的时间差是:2.933053-2.729523=0.20353
b. 以太网帧的源地址和目的地址以及类型字段,如下图所示:
c. IP分组中的源IP地址和目的IP地址及其端口号,如下图所示:
IP地址为:
端口号为:
d. TCP分段中的ACK序列号:
e. 各个标识位的值:
f. TCP分段的长度是:
g. 最大分段尺寸是:
(3)确定三次握手中的最后一个分段
a. 从第二分段到最后分段的时间差是:2.933188-2.933053=0.000135
比起第二次的时间减少,因为第二阶段要协商最大分段尺寸,并且还要产生随机的初始序号,比第三阶段内容多。
b. 序列号和ACK序列号:
c. 标志比特的值以及窗口尺寸:
d. 最后一个分段的长度是:
5.4 HTTP GET 报文
(1)确定包含HTTP GET报文的数据帧
为第61帧: