Wireshark抓包分析实验
若惜年
一、实验目的:
1.学习安装使用wireshark软件,能在电脑上抓包。
2.对抓出包进行分析,分析得到的报文,并与学习到的知识相互印证。
二、实验内容:
使用抓包软件抓取HTTP协议通信的网络数据和DNS通信的网络数据,分析对应的HTTP、TCP、IP协议和DNS、UDP、IP协议。
三、实验正文:
IP报文分析:
从图中可以看出: IP报文版本号为:IPV4 首部长度为:20 bytes 数据包长度为:40 标识符:0xd74b 标志:0x02 比特偏移:0 寿命:48
上层协议:TCP
首部校验和:0x5c12
源IP地址为:119.75.222.18 目的IP为:192.168.1.108
UDP:
从图中可以看出:
源端口号:1891 目的端口号:8000 udp报文长度为:28 检验和:0x58d7 数据长度:20 bytes
UDP协议是一种无需建立连接的协议,它的报文格式很简单。当主机中的DNS应用程序想要惊醒一次查询时,它构造一个DNS查询报文段并把它给UDP,不需要UDP之间握手,UDP为报文加上首部字段,将报文段交给网络层。
TCP:
第一次握手:
从图中看出: 源端口号:56770 目的端口号:80 序列号为:0
首部长为: 32 bytes
SYN为1表示建立连接成功 当fin为1时表示删除连接。
第二次握手:
从图中看出:
源端口号是:80
目的端口号为:56770 序列号为:0 ack为:1
Acknowledgement为1表示包含确认的报文 Syn为1表示建立连接。
第三次握手:
从图中看出: 源端口:56770 目的端口:80 序列号为:1 ACK为:1
首部长为:20bytes
Acknowledgement为1表示包含确认的报文 所以,看出来这是TCP连接成功了
Tcp是因特网运输层的面向连接的可靠的运输协议,在一个应用进程可以开始向另一个应用进程发送数据前,这两个进程必须先握手,即它们必须相互发送预备文段,建立确保传输的参数。
http:
发送报文:
GET/HTTP/1.1:是请求一个页面文件 HOST:是请求的主机名 Connection:持续连接 Accept: 收到的文件
User-Agent : 浏览器的类型
Accept-encoding: gzip ,deflate ,sdch限制回应中可以接受的内容编码值,指示附加内容的解码方式为gzip ,deflate ,sdch 。 Accept-language :申请的语言种类是中文 响应报文:
HTTP/1.1 200 OK: 表示http1.1版请求成功 Server: 表示报文是nginx服务器产生的
Date: 表示服务器产生并发送报文的时间和日期
Content type: 表示文件类型是plain,charset是字符集 Content length:表示发送的字节数 Connection:持久连接
Dns:
DNS使用的是UDP协议
Question 1 Answers RRs 2: 发出一个问题,收到2个RRS Queries: 使用递归查询得到百度的地址
Answers: 得到了两个应答,每个应答包括: Name: 主机查询域名 Type : 类别代码 Class: 地址
Time to live: 生存时间 Date length: 数据长度
Primary name: 首要域名服务器
四、实验总结:
在实验中,我发现UDP大部分被DNS协议使用,TCP被http使用。UDP简单发送方便,但是不可靠,TCP相对麻烦一些,但是可靠,在不同的地方使用不同的协议,可以使我们的交流方便可靠而又快捷。通过这次课程设计,也使我对课堂的知识有了更加深刻的理解,只有自己动手操作了,才能更加直观的了解这些协议的不同。纸上学到的终究是不如自己动手操作记得深刻,也不如这样的理解透彻,动手后有更加直观的认识和理解。这样的课程设计可以让我们学到很多东西,是非常有意义且有趣的课程设计。