网络抓包分析作业

一:实验目的:

学习使用网络数据抓包软件Wireshark

对互连网进行数据抓包,巩固对所学知识的理解

二:实验内容:

分析传输层协议(TCPUDP)的报文格式,TCP协议的连接管理。

分析网络层协议的报文格式,IPICMP的报文格式。

分析数据链路层的帧格式。

三:实验工具

Wireshark抓包软件

四:实验步骤

安装Wireshark,简单描述安装步骤。

打开wireshark,选择接口选项列表。或单击“Capture”,配置“option”选项。

设置完成后,点击“start”开始抓包,显示结果。

选择某一行抓包结果,双击查看此数据包具体结构

五:分析

       传输层分析:(网址www.battlenet.com.cn [114.113.217.11]

       Tcp报文格式

java抓包分析流程 分析抓包结果_IP

Wireshark抓包分析

 

java抓包分析流程 分析抓包结果_IP_02

源端口/目的端口:

端口是传输层与应用层的服务接口。用于标示和区分源端设备和目的端设备的应用进程。此次抓包的结果为源端口source port56274目的端口(destination port443

确认号(Sequence number

       Sequence Number这个是发送序列号,用来标识从源端向目的端发送的数据字节流,它表示在这个报文端中的第一个数据字节的顺序号,序列号是32位的无符号类型,序列号表达达到2^32 - 1后又从0开始,当建立一个新的连接时,SYN标志为1,系列号将由主机随机选择一个顺序号ISN(Initial Sequence Number)。此报文中的序列号是1.

java抓包分析流程 分析抓包结果_IP_03

确认号(32bit) 

Acknowledgment Number它包涵了发送确认一端所期望收到的下一个顺序号。因此确认序列号应当是上次成功接收到数据的顺序号加1。只有ACK标志为1时确认序号字段才有效。

java抓包分析流程 分析抓包结果_字段_04

首部长度(Header length

TCP首部共有多少4个字节,长度在20-60之间。在报文中是20字节。

URG(Urgent Pointer Field Significant):

       URG=1时,表面紧急指针有效。他告诉系统次报文中有紧急数据需要快速处理。在这里的报文中为零说明没有紧急报文

ACK(Acknowledgement Field Signigicant):确认号字段,该字段为1时表示应答字段有效,即TCP应答号将包含在TCP报文中。

PSH(Push Function): 推送功能,所谓推送功能指的是接收端在接收到数据后立即推送给应用程序,而不是在缓冲区中排队。

RST(Reset the connection):1时表面出现差错,必须释放连接,重新建立连接

SYN(Synchronize sequence numbers):同步序列号,用来发起一个连接请求。

FIN(No more data from sender):表示发送端发送任务已经完成。

java抓包分析流程 分析抓包结果_抓包_05

窗口字段(16bit)

表示现在运行对方发送的数据量。也就是告诉对方,从本报文段的确认号开始允许对方发送的数据量。由报文可以看出该窗口允许发送262144([Calculated window size: 262144])的数据量。

校验和(Checksum

占2字节。校验和字段检验的范围包括首部和数据,用于校验TCP报头部分和数据部分的正确性。(Checksum: 0xc4f9 [unverified])

UDP报文分析

java抓包分析流程 分析抓包结果_抓包_06

Wireshark抓包分析

java抓包分析流程 分析抓包结果_抓包_07

  与TCP相比,UDP仅有源/目的端口,长度,校验和及数据,因此不难看出UDP的无连接,不提供可靠性,无流量控制,传输速度快,协议开销小的特点。

三次握手分析

java抓包分析流程 分析抓包结果_字段_08

发送连接请求,syn=1,seq=0

java抓包分析流程 分析抓包结果_IP_09

服务器收到请求,SYN=1 ACK=1,请求号seq=0 ,确认号 ack=1

java抓包分析流程 分析抓包结果_java抓包分析流程_10

客户收到确认,发送 ACK=1,确认号 ack=1,请求号seq=1,服务器收到后建立连接。

 

Tcp终止连接。

java抓包分析流程 分析抓包结果_IP_11

  客户发送终止请求 FIN=1 seq=52828

  服务器收到请求,发送ACK=1,请求号seq=2609.确认号ack= 52829.

  之后服务器再次确认,发送FIN=1ACK=1seq=455395 seq=4611

  客户收到确认,再发送ACK=1ask=455396seq=4611

网络层协议分析

       ip的格式图

 

 

java抓包分析流程 分析抓包结果_抓包_12

Wireshark抓包分析

java抓包分析流程 分析抓包结果_抓包_13

版本号:【IP协议的版本号,目前为4。

头部长度:IP报头的长度。固定部分的长度(20字节)和可变部分的长度之和。共占4位。最大为1111,即10进制的15,代表IP报头的最大长度可以为15个32bits(4字节),也就是最长可为15*4=60字节,除去固定部分的长度20字节,可变部分的长度最大为40字节。IP报文中20bit的数量【Header Length: 20 bytes (5)】。

服务类型:占8位,用来获得更好的服务,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。只有在使用区分服务时,这个字段才起作用。【Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)】。

总长度:整个数据包的长度,最长可达65535字节【Total Length: 250】。

标识:IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。

【Identification: 0x30b8 (12472)】

java抓包分析流程 分析抓包结果_java抓包分析流程_14

标志(Flags):共3位。R(Reserved bit)、DF(Don’t fragment)、MF(More fragment)三位。目前只有后两位有效,DF位:为1表示不分片,为0表示分片。MF:为1表示不是最后一片,还有其他分片,为0表示这是最后一片。

片偏移(Fragment offset)该字段是与ip分片后,相应的ip片在总的ip片的位置。该字段的单位是8字节。

生存时间(Time to live):IP报文所允许通过的路由器的最大数量。每经过一个路由器,TTL减1,当为0时,路由器将该数据报丢弃。TTL 字段是由发送端初始设置一个.推荐的初始值由分配数字 RFC 指定。

协议(Protocol)指出IP报文携带的数据使用的是那种协议,以便目的主机的IP层能知道要将数据报上交到哪个进程(不同的协议有专门不同的进程处理)。和端口号类似,此处采用协议号,TCP的协议号为6。

首部校验和(Header checksum)计算IP头部的校验和,检查IP报头的完整性。这里无法校验。【Header checksum: 0x590c [validation disabled]】

IP地址(source)标识IP数据报的源端设备,由图可知该源IP地址为172.31.120.157。

目的IP地址(destination)标识IP数据报的目的地址,由图可知该目的IP地址为114.113.217.11。

Icmp分析

 

java抓包分析流程 分析抓包结果_IP_15

java抓包分析流程 分析抓包结果_java抓包分析流程_16

Wireshark抓包分析(这是ping 114.113.217.11的抓包)

 

java抓包分析流程 分析抓包结果_字段_17

  Type8 code0由表可知时ping请求

  Checksum:校验和成功。

数据链路层分析

java抓包分析流程 分析抓包结果_IP_18

Wireshark抓包分析

java抓包分析流程 分析抓包结果_java抓包分析流程_19

  源mac地址: d0:17:c2:1c:1a:f0

  目的mac地址:04:f9:38:c9:60:36

  类型: Ethernet (1)

六,总结

       在这次作业中学到最重要的东西是学会如何使用wireshark及对抓包进行分析,同时也对tcpudpIPicmp,等协议加深理解,以及清晰的了解这些协议在网路上的应用。在做这次作业的也发现了tcp协议的断连过程与书本是有些地方是不同的。这次的作业中我得到不少的收获。