多年之后,愿你有清风与烈酒,也有人是你的归途。
打开Wireshark抓包工具开始抓包会看到如下展开内容:
这里我是对wlan进行抓包,192.168.2.112是我当前wifi的ip地址。
点击某个包,可以查看具体内容,差不多刚好对于五层协议:
- Frame:物理层的数据帧概况。
- Ethernet II:数据链路层以太网帧头部信息。
- Internet Protocol Version 4:互联网层IP包头部信息。
- Transmission Control Protocol:传输层的数据段头部信息,此处是TCP协议。
User Datagram Protocol:UDP协议 - Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议。
一、各层分析:
将上诉Frame ,Ethernet || 等展开可看到具体传输信息:
1、物理层Frame
-Frame 5: 66 bytes on wire (528 bits), 66 bytes captured(捕获) (528 bits) on interface 0 //5号帧,对方发送66字节,实际收到66字节
-Interface id: 0 (\Device\NPF_{37239901-4A63-419C-9693-97957A8232CD}) //接口id为0
-Encapsulation type: Ethernet (1) //封装类型
-Arrival Time: Jul 5, 2017 15:14:31.865685000 //捕获日期和时间(中国标准时间)
-[Time shift for this packet: 0.000000000 seconds]
-Epoch Time: 1499238871.865685000 seconds
-[Time delta from previous captured frame: 0.006861000 seconds] //与前一包时间间隔
-[Time delta from previous displayed frame: 0.006861000 seconds]
-[Time since reference or first frame: 0.613985000 seconds] //#此包与第一帧的时间间隔
-Frame Number: 5 //帧序号
-Frame Length: 66 bytes (528 bits) //帧长度
-Capture Length: 66 bytes (528 bits) //捕获字节长度
-[Frame is marked: False] //是否做了标记
-[Frame is ignored: False] //是否被忽略
-[Protocols in frame: eth:ethertype:ip:tcp] //帧内封装的协议层次结构
-[Coloring Rule Name: HTTP] //着色标记的协议名称
-[Coloring Rule String: http || tcp.port == 80 || http2] //着色规则显示的字符串
2、数据链路层以太网帧头部信息:
-Ethernet II, Src: Tp-LinkT_f5:3e:62 (c0:61:18:f5:3e:62), Dst: IntelCor_09:65:a5 (58:fb:84:09:65:a5)
- Destination: IntelCor_09:65:a5 (58:fb:84:09:65:a5) //目的MAC地址
- Source: Tp-LinkT_f5:3e:62 (c0:61:18:f5:3e:62) //源MAC地址(就是我电脑的MAC地址)
- Type: IPv4 (0x0800) //0x0800表示使用IP协议
3、互联网层IP包头部信息:
Internet Protocol Version 4, Src: 192.168.2.112, Dst: 116.211.185.142
0100 .... = Version: 4 //IPV4协议
.... 0101 = Header Length: 20 bytes (5) //包头长度
-Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) //差分服务字段
-Total Length: 52 //IP包总长度
-Identification: 0x3849 (14409) //标志字段
-Flags: 0x02 (Don't Fragment) //标记字段
-Fragment offset: 0 //分的偏移量
-Time to live: 128 //生存期TTL
-Protocol: TCP (6) //此包内封装的上层协议为TCP
-Header checksum: 0xd100 [validation disabled] //头部数据的校验和
-[Header checksum status: Unverified] //头部数据校验状态
-Source: 192.168.2.112 //源IP地址
-Destination: 116.211.185.142 //目的IP地址
-[Source GeoIP: Unknown] //基于地理位置的IP
-[Destination GeoIP: Unknown]
4、传输层TCP数据段头部信息:
Transmission Control Protocol, Src Port: 60606, Dst Port: 80, Seq: 0, Len: 0
-Source Port: 60606 //源端口号(ecbe)
-Destination Port: 80 //目的端口号(0050)
-[Stream index: 0]
-[TCP Segment Len: 0]
-Sequence number: 0 (relative sequence number) //序列号(相对序列号)(四个字节fd 3e dd a2)
-Acknowledgment number: 0 //确认号(四个字节00 00 00 00)
-Header Length: 32 bytes //头部长度(0x80)
-Flags: 0x002 (SYN) //TCP标记字段
-Window size value: 8192 //流量控制的窗口大小(20 00)
-[Calculated window size: 8192]
-Checksum: 0x97ad [unverified] //数据段的校验和(97 ad)
-[Checksum Status: Unverified]
-Urgent pointer: 0 //紧急指针(00 00)
-Options: (12 bytes), Maximum segment size, No-Operation (NOP), Window scale, No-Operation (NOP), No-Operation (NOP), SACK permitted //选项(可变长度)
UDP数据段首部:
User Datagram Protocol, Src Port: 7273, Dst Port: 15030
-Source Port: 7273 //源端口(1c 69)
-Destination Port: 15030 //目的端口(3a 6b)
-Length: 1410 //长度(05 82)
-Checksum: 0xd729 [unverified] //校验和(d7 29)
-[Checksum Status: Unverified]
-[Stream index: 6335]
二、Wireshark分析数据包:
1、在过滤器中添加过滤器获得访问百度时的相关信息:
Protocol(协议):
可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
如果没有特别指明是什么协议,则默认使用所有支持的协议。
Direction(方向):
可能的值: src, dst, src and dst, src or dst
如果没有特别指明来源或目的地,则默认使用 “src or dst” 作为关键字。
例如,”host 10.2.2.2”与”src or dst host 10.2.2.2”是一样的。
Host(s):
可能的值: net, port, host, portrange.
如果没有指定此值,则默认使用”host”关键字。
例如,”src 10.1.1.1”与”src host 10.1.1.1”相同。
Logical Operations(逻辑运算):
可能的值:not, and, or.
否(“not”)具有最高的优先级。或(“or”)和与(“and”)具有相同的优先级,运算时从左至右进行。
例如:
“not tcp port 3128 and tcp port 23”与”(not tcp port 3128) and tcp port 23”相同。
“not tcp port 3128 and tcp port 23”与”not (tcp port 3128 and tcp port 23)”不同。
格式为:
ip.addr == www.baidu.com
然后可以获得百度的IP地址等信息。
2、过滤出dns信息
在显示过滤框输入dns
,过滤出所有dns信息:
在该界面220,234帧,是DNS将www.baidu.com解析为一个IP地址的数据包(被称为一个“A”记录)。238帧表示返回一个与主机名相关的IP地址的DNS响应包。如果客户端支持IPv4和IPv6,在该界面将会看到查找一个IPv6地址(被称为“AAAA”记录)。此时,DNS服务器将响应一个IPv6地址或混杂的信息。
说明:238帧是客户端请求百度,通过DNS服务器解析IP地址的过程。标识为“A”记录。
3、过滤出tcp包分析:
在显示过滤框输入:ip.dst==180.97.33.108 or ip.src==180.97.33.108
TCP通信流程大致如下:
客户端和服务器之间TCP三次握手(4941、4942、4943帧)—->客户端请求的GET主页面(4944帧)—>服务器收到请求(4945帧)—>发送响应包(4946帧)。
说明:
客户端向服务器发送TCP请求建立连接。标识为SYN。
服务器得到请求后向客户端回应确认包的过程。标识为SYN,ACK。
客户端回应服务器发送确认包的过程,将于服务器建立连接。标识为ACK。
客户端向服务器发送HTTP请求内容的过程。标识为GET。
服务器相应客户端请求的过程,收到请求。标识为ACK。
4946帧帧是服务器向客户端回应内容的过程。