wireshark介绍
wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。使用wireshark的人必须了解网络协议,否则就看不懂wireshark了。
为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。
wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容,总结,如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wireshark.
我们打开其中的一个HTTP包,这个包是浏览网页,服务器向我的电脑发动网页的一个包
- Frame: 物理层的数据帧概况
- EthernetII:数据链路层以太网帧头部信息。
- Internet Protocol Version 4:互联网层IP包头部信息。
- Transmission Control Protocol:传输层的数据段头部信息,此处是TCP协议。
User Datagram Protocol:UDP协议 - Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议
各层分析
一、物理层Frame
Frame 1450: 502 bytes on wire (4016 bits), 502 bytes captured (4016 bits) on interface \Device\NPF_{91DBDD20-B182-47CE-BEAC-334B9C63ED80}, id 0//1460号帧,对方发送502字节,实际收到502字节
Interface id: 0 (\Device\NPF_{91DBDD20-B182-47CE-BEAC-334B9C63ED80}) //接口id为0
Encapsulation type: Ethernet (1) //封装类型
Arrival Time: Feb 22, 2020 18:26:16.399174000 中国标准时间 //捕获日期和时间(中国标椎时间)
[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 1582367176.399174000 seconds
[Time delta from previous captured frame: 0.000952000 seconds]
[Time delta from previous displayed frame: 0.035791000 seconds] //与前一包时间间隔
[Time since reference or first frame: 27.050737000 seconds] //此包与第一帧的时间间隔
Frame Number: 1450 //帧序号
Frame Length: 502 bytes (4016 bits) //帧长度
Capture Length: 502 bytes (4016 bits) //捕获字节长度
[Frame is marked: False] //是否做了标记
[Frame is ignored: False] //是否被忽略
[Protocols in frame: eth:ethertype:ip:tcp:http:data-text-lines] //帧内封装的协议层次结构
[Coloring Rule Name: HTTP] //着色标记的协议名称
[Coloring Rule String: http || tcp.port == 80 || http2] //着色规则显示的字符串
二、数据链路层以太网帧头部信息
Ethernet II, Src: Shenzhen_5e:d3:fe (d4:83:04:5e:d3:fe), Dst: IntelCor_ce:90:78 (70:1c:e7:ce:90:78) //源MAC地址,目的MAC地址
Type:IPv4(0x0800) //0x0800表示使用IP协议
三、网络层IP报头部信息
Internet Protocol Version 4, Src: 94.191.59.45, Dst: 192.168.11.104
0100 .... = Version: 4 //IPv4协议
.... 0101 = Header Length: 20 bytes (5) //报头长度
Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
Total Length: 488 //IP包总长度
Identification: 0xe8c2 (59586) //标记字段
Flags: 0x4000, Don't fragment //标记字段
...0 0000 0000 0000 = Fragment offset: 0 //分段偏移量
Time to live: 49 //生存期TTL
Protocol: TCP (6) //此包内封装的上层协议为TCP
Header checksum: 0xf950 [validation disabled] //头部数据的校验和
[Header checksum status: Unverified] //头部数据校验状态
Source: 94.191.59.45 //源IP地址 (服务器的IP)
Destination: 192.168.11.104 //目的IP(我自己电脑的IP)
四、传输层TCP数据段头部信息
Transmission Control Protocol, Src Port: http (80), Dst Port: 54655 (54655), Seq: 1, Ack: 539, Len: 448
Source Port: http (80) //源端口号 从这里可以看出应该是http服务,服务器向我们的电脑发送了一个网页
Destination Port: 54655 (54655)//目的端口号 使我们电脑提供的一个端口从来接收服务器向我们发送的网页等内容
[Stream index: 8]
[TCP Segment Len: 448]
Sequence number: 1 (relative sequence number)
Sequence number (raw): 1149943088
[Next sequence number: 449 (relative sequence number)] //序列号
Acknowledgment number: 539 (relative ack number) //确认号
Acknowledgment number (raw): 46531115
0101 .... = Header Length: 20 bytes (5) //头部长度(0x80)
Flags: 0x018 (PSH, ACK) //TCP标记长度(0x80)
Window size value: 237 //控制流量的窗口大小 237个字节
[Calculated window size: 30336]
[Window size scaling factor: 128]
Checksum: 0x184b [unverified] //数据段的校验和
[Checksum Status: Unverified]
Urgent pointer: 0 //紧急指针(00 00)
[SEQ/ACK analysis]
[Timestamps]
TCP payload (448 bytes) //可变长度
五、HTTP头部信息
Hypertext Transfer Protocol
HTTP/1.1 200 OK\r\n //响应状态
Date: Sat, 22 Feb 2020 10:26:17 GMT\r\n //时间
Server: Apache\r\n //服务器类型 (apache)
Upgrade: h2\r\n
Connection: Upgrade, close\r\n //连接状态
Last-Modified: Thu, 28 Nov 2019 10:59:14 GMT\r\n
ETag: "9f-5986600fa8d19-gzip"\r\n
Accept-Ranges: bytes\r\n
Vary: Accept-Encoding\r\n
Content-Encoding: gzip\r\n
Content-Length: 143\r\n
Content-Type: text/html\r\n //文件类型
\r\n
[HTTP response 1/1]
[Time since request: 0.035791000 seconds]
[Request in frame: 1436]
[Request URI: http://www.class184.cn/]
Content-encoded entity body (gzip): 143 bytes -> 159 bytes
File Data: 159 bytes //文件的大小(字节)
六、网页的内容
也就是服务器向我们电脑浏览器发动的网页的内容,这是我们浏览器也就是应用层接收到的数据
Line-based text data: text/html (8 lines)
<html>\n
\t<meta charset="utf-8">\n
\t<body>\n
\t\t<center><h1>这里是网络18卓越班</h1></center>\n
\t\t<center>网站正在建设中.....</center>\n
\t\t\n
\t</body>\n
</html>
浏览器上显示:
如果网页内容很多的话,服务器向我们电脑发包会被切片分割发送给我们。因为内容很少,所以一次性发给我们了,这个网页是我自己写的测试的,大家也自己写一个网页自己抓包,这样对于我们分析网络数据包很有帮助。