简述:本文介绍了抓包数据含义,有TCP报文、Http报文、DNS报文。如有错误,欢迎指正。
1、TCP报文
TCP是4层工业标准中的传输层协议,使用三次握手协议建立连接,面向连接的,可靠的通信。当主动方发出SYN连接请求后,等待对方回答SYN,ACK。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。
- 第一次握手:建立连接时,客户端发送SYN包(SEQ=x)到服务器,并进入SYN_SEND状态,等待服务器确认。
- 第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时自己也送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。
- 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器进入Established状态,完成三次握手。
序列号与确认序列号工作方式
第一次发送了"my nam"几个字符,6个字节,序号是1到6
如果服务器正常接收所有字符,那么服务器返回的"确认序列号"就是7,前提是ACK=1
如果服务器只接收了3个字符,也就是"my ",那么服务器返回的"确认序列号"就是4,下一次传送的数据就从第4个序号开始的6个字节(也就是6个字符)
需要注意的是:window的大小由各端自己定义,也就是常说的窗口
1> 封包详细信息
A. 第一行,帧Frame 36838 指的是要发送的数据块,其中,所抓帧的序号为36838,捕获字节数等于传送字节数:70字节;
B. 第二行,以太网,有线局域网技术,是数据链路层。源Mac地址为88:5d:90:00:00:25;目标Mac地址为00:25:22:b5:b9:92;
C. 第三行,IPV4协议,也称网际协议,是网络层;源IP地址为192.168.21.175;目标IP地址为192.168.21.156;
D. 第四行,TCP协议,也称传输控制协议,是传输层;源端口(10086);目标端口(50132);序列号(1361);ACK是TCP数据包首部中的确认标志,对已接收到的TCP报文进行确认,值为1表示确认号有效;长度为16;
E. 第五行,数据共有16字节
2> Frame信息分析
A. Arrival Time:到达时间,值为Jan 14, 2017 08:52:56.239204000
B. EPoch Time:信息出现时间,值为1484355176.239204000秒
C. [ Time delta from previous captured frame: 0.001472000 seconds] :与之前捕获的数据帧时间差:0.001472000秒;
[Time delta from previous displayed frame: 0.001472000 seconds]:与之前显示的帧时间差: 0.001472000秒;
[Time since reference or first frame: 1278.276505000 seconds]:距参考帧或第一帧的时间差:1278.276505000秒;
D. Frame Number: 36838,帧编号为36838;
E. Frame Length: 70 bytes (560 bits),帧长度为70字节;
Capture Length: 70 bytes (560 bits),捕获到的长度为70字节;
F. [Frame is marked: False],帧标记:无;
[Frame is ignored: False],帧被忽略:无;
G. [Protocols in frame: eth:ip:tcp:data],协议帧:eth(以太网)、IP、tcp、data
H. [Coloring Rule Name: TCP],色彩规则名称:TCP;
[Coloring Rule String: tcp],色彩规则字符串:TCP;
3> EthernetⅡ信息分析
A. Destination: AsrockIn_b5:b9:92 (00:25:22:b5:b9:92),目标Mac地址为00:25:22:b5:b9:92
B. Source: 88:5d:90:00:00:25 (88:5d:90:00:00:25),源Mac地址为88:5d:90:00:00:25
C. Type: IP (0x0800),类型是IP数据包
4> IPv4 协议信息分析
A. Version: 4,IP协议版本为IPv4;
Header length: 20 bytes,头部数据长度为20字节;
B. Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport)),区分的服务领域:0x00 (默认的是DSCP:0x00);
C. Flags: 0x02 (Don't Fragment),不支持分组;
Fragment offset: 0,分组偏移量为0;
D. Time to live: 64,TTL,生存时间为64,TTL通常表示包在被丢弃前最多能经过的路由器个数,当数据包传输到一个路由器之后,TTL就自动减1,如果减到0了还没有传送到目标主机,那么就自动丢失。
E. Header checksum: 0xcebd [correct],头部校验和
F. Source: 192.168.21.175 (192.168.21.175),源IP地址为192.168.21.175;
Destination: 192.168.21.156 (192.168.21.156),目标IP地址为192.168.21.156;
5> Trasmission Control Protocol信息分析
其中,对应的TCP首部的数据信息
A. 端口号,数据传输的16位源端口号和16位目标端口号(用于寻找发端和收端应用进程);
B. 序列号(SYN),32位的序列号由接收端计算机使用,重新分段的报文成最初形式。当SYN出现,序列码实际上是初始序列码(Initial Sequence Number,ISN),而第一个数据字节是ISN+1。这个序列号(序列码)可用来补偿传输中的不一致;
C. 确认序列号(ACK),32位的序列号由接收端计算机使用,重组分段的报文成最初形式。如果设置了ACK控制位,这个值表示一个准备接收的包的序列码;
D. 手动的数据包的头字节长度是20字节;
E. Flags,含6种标志
- URG:紧急标志。紧急标志为"1"表明该位有效。
- ACK:确认标志。表明确认编号栏有效。大多数情况下该标志位是置位的。TCP报头内的确认编号栏内包含的确认编号(w+1)为下一个预期的序列编号,同时提示远端系统已经成功接收所有数据。
- PSH:推标志。该标志置位时,接收端不将该数据进行队列处理,而是尽可能快地将数据转由应用处理。在处理Telnet或rlogin等交互模式的连接时,该标志总是置位的。
- RST:复位标志。用于复位相应的TCP连接。
- SYN:同步标志。表明同步序列编号栏有效。该标志仅在三次握手建立TCP连接时有效。它提示TCP连接的服务端检查序列编号,该序列编号为TCP连接初始端(一般是客户端)的初始序列编号。在这里,可以把TCP序列编号看作是一个范围从0到4,294,967,295的32位计数器。通过TCP连接交换的数据中每一个字节都经过序列编号。在TCP报头中的序列编号栏包括了TCP分段中第一个字节的序列编号。
- FIN:结束标志
F. Window,用来表示想收到的每个TCP数据段的大小。TCP的流量控制由连接的每一端通过声明的窗口大小来提供。窗口大小为字节数,起始于确认序号字段指明的值,这个值是接收端正期望接收的字节。窗口大小是一个16字节字段,因而窗口大小最大为65535字节,上面显示窗口大小为1825字节;
G. Checksum,16位校验和,源机器基于数据内容计算一个数值,收信息机要与源机器数值 结果完全一样,从而证明数据的有效性。检验和覆盖了整个的TCP报文段:这是一个强制性的字段,一定是由发送端计算和存储,并由接收端进行验证的;
6> Data信息分析
A. TCP 报文段中的数据(该部分是可选的),长度为16字节;
2、Http报文
链路层的信息上是以帧的形式进行传输的,帧封装了应用层、传输层、网络层的数据。而Wireshark抓到的就是链路层的一帧;
1> 封装包详细信息
A. 第一行,帧Frame 12411 指的是要发送的数据块,其中,所抓帧的序号为12411,捕获字节数等于传送字节数:233字节;
B. 第二行,以太网,有线局域网技术,是数据链路层。源Mac地址为24:69:68:6b:78:96;目标Mac地址为00:25:22:b5:b9:92;
C. 第三行,IPV4协议,也称网际协议,是网络层;源IP地址为220.181.57.234;目标IP地址为192.168.21.156;
D. 第四行,TCP协议,也称传输控制协议,是传输层;源端口(80);目标端口(53985);序列号(1);ACK是TCP数据包首部中的确认标志,对已接收到的TCP报文进行确认,值为1表示确认号有效;长度为179;
E. 第五行,Http协议,也称超文本传输协议,是应用层。
2> Http请求报文分析
报文分析:
在抓包分析过程中还发现了另外一些http请求报文中所特有的首部字段名,比如下面http请求报文中橙黄色首部字段名:
3> Http响应报文分析
报文分析:
3、 DNS报文
1> 封包详细信息
A. 第一行,帧Frame 12237 指的是要发送的数据块,其中,所抓帧的序号为12237,捕获字节数等于传送字节数:133字节;
B. 第二行,以太网,有线局域网技术,是数据链路层。源Mac地址为24:69:68:6b:78:96;目标Mac地址为00:25:22:b5:b9:92;
C. 第三行,IPV4协议,也称网际协议,是网络层;源IP地址为192.168.211.254;目标IP地址为192.168.211.84;
D. 第四行,UDP协议,是传输层;源端口domain(53);目标端口(65219);
E. 第五行,DNS协议,是应用层。
2> DNS 查询报文
报文分析:
3> DNS响应报文
报文分析:
4、Ping
wireshark抓包分析:https://blog.51cto.com/yttitan?type=3
HTTP协议分析推荐博客:https://blog.51cto.com/yttitan?type=3
扩展阅读
为什么在服务端获取不到MAC地址:https://www.jianshu.com/p/61b1506e4c0f
来源:oschina
链接:https://my.oschina.net/u/3049601/blog/3110737