学习网络协议分析工具WireShark,利用WireShark捕获并分析以太网报文结构,最重要的是后面超星网登录案例分析,用实际例子将计网的所学知识串起来。
文章更新内容说明:无线上网和有线上网的MAC地址是不一样的
【查看本地地址的截图是在家里的查看,wireshark的使用是在学校】
查看信息
查看本地的mac地址
ping命令
先使用ping命令找到需要抓包的网站的ip地址
WireShark使用
WireShark使用及面板功能区域
进入软件,若成功适配电脑网卡,则出现如下类似接口列表
直接双击上图中WLAN行即可抓包,也可以如下设置网卡启动抓包
1区域-显示过滤器
为过滤ip地址区域。相关表达式语法有
- 协议过滤。比如TCP,只显示TCP协议。
- IP 过滤。比如 ip.src == 192.168.1.102,显示源地址为192.168.1.102,
ip.dst == 192.168.1.102, 目标地址为192.168.1.102。
- 端口过滤。 tcp.port ==80, 端口为80的
tcp.srcport == 80,只显示TCP协议的愿端口为80的。
- Http模式过滤。http.request.method=="GET", 只显示HTTP GET方法的。
- 逻辑运算符为 AND/ OR
2区域-获取的数据包
封包列表(Packet List Pane)
3区域-单个数据包各层详细内容
选定的封包详细信息 (Packet Details Pane)
- Frame:物理层的数据帧概况。
Frame 165: 74 bytes on wire (592 bits), 74 bytes captured (592 bits) on interface \Device\NPF_{B016AB5D-3088-41BD-8997-48F19D9DEBFA}, id 0 //165号帧,对方发送74字节,实际收到74字节 Interface id: 0 (\Device\NPF_{B016AB5D-3088-41BD-8997-48F19D9DEBFA}) //接口id为0 Interface name: \Device\NPF_{B016AB5D-3088-41BD-8997-48F19D9DEBFA} Interface description: WLAN Encapsulation type: Ethernet (1) //封装类型 Arrival Time: Oct 23, 2020 13:37:43.372763000 中国标准时间//捕获日期和时间(中国标准时间) [Time shift for this packet: 0.000000000 seconds] Epoch Time: 1603431463.372763000 seconds [Time delta from previous captured frame: 0.008472000 seconds]//与前一包时间间隔 [Time delta from previous displayed frame: 0.000000000 seconds] [Time since reference or first frame: 36.349570000 seconds]//此包与第一帧的时间间隔 Frame Number: 165//帧序号 Frame Length: 74 bytes (592 bits)//帧长度 Capture Length: 74 bytes (592 bits)//捕获字节长度 [Frame is marked: False]//是否做了标记 [Frame is ignored: False]//是否被忽略 [Protocols in frame: eth:ethertype:ip:icmp:data]//帧内封装的协议层次结构 [Coloring Rule Name: ICMP]//着色标记的协议名称 [Coloring Rule String: icmp || icmpv6]//着色规则显示的字符串
- Ethernet II:数据链路层以太网帧头部信息。
Ethernet II, Src: IntelCor_fb:33:94 (0c:54:15:fb:33:94), Dst: HuaweiTe_da:ff:f3 (7c:a1:77:da:ff:f3) Destination: HuaweiTe_da:ff:f3 (7c:a1:77:da:ff:f3)//目的MAC地址 Source: IntelCor_fb:33:94 (0c:54:15:fb:33:94)//源MAC地址(就是我电脑的MAC地址) Type: IPv4 (0x0800)//0x0800表示使用IP协议
- Internet Protocol Version 4:互联网层IP包头部信息。
Internet Protocol Version 4, Src: 192.168.43.36, Dst: 39.156.66.18 0100 .... = Version: 4//互联网协议IPv4 .... 0101 = Header Length: 20 bytes (5)//IP包头部长度 Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)//差分服务字段 Total Length: 60//IP包的总长度 Identification: 0xdf8c (57228)//标志字段 Flags: 0x0000//标记字段 Fragment offset: 0//分的偏移量 Time to live: 128//生存期TTL Protocol: ICMP (1)//此包内封装的上层协议为TCP Header checksum: 0x05ba [validation disabled]//头部数据的校验和 [Header checksum status: Unverified] Source: 192.168.43.36//来源IP地址 Destination: 39.156.66.18//目标IP地址
- Transmission Control Protocol:传输层T的数据段头部信息,此处是TCP。
Transmission Control Protocol, Src Port: 80 (80), Dst Port: 50362 (50362), Seq: 1025, Ack: 447, Len: 714 Source Port: 80 (80) //源端口号 Destination Port: 50362 (50362) //目标端口号 Sequence number: 1025 (relative sequence number) //序列号(相对序列号) [Next sequence number: 1739 (relative sequence number)] //下一个序列号 Acknowledgment number: 447 (relative ack number) //确认序列号 Header Length: 20 bytes //头部长度 .... 0000 0001 1000 = Flags: 0x018 (PSH, ACK) //TCP标记长度 Window size value: 5896 //流量控制的窗口大小 Checksum: 0x915b [validation disabled] //TCP数据段的校验和
- Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议。
- Data(312 bytes):数据。
超星网登录案例分析
网站请求和响应
发送请求相应协议
收到响应相应协议
接下来的7个小节内容来具体对数据报头做出分析❗
Hypertext Transfer Protocol
HTTP 协议定义了客户端和服务器之间交互的消息内容和步骤,大家按照固定的步骤和格式进行通信
根据URL可以定位请求资源的位置,但是对于这个资源可能还有多种处理方法,比如是请求资源还是要删除指定资源?
这个时候浏览器将需要请求的信息,按照HTTP协议约定的格式,封装成为HTTP请求报文
HTTP主要请求方法为 GET 和 POST
请求报文和响应报文的具体形式参考课本
Line-based text data
这里面内容就是请求成功所返回的Html代码
Transmission Control Protocol
这个数据报传输使用的可靠的TCP协议,而不是UDP,所以会有相应的滑动窗口、流量控制等等相关机制,还有三次握手,四次挥手……
(插个眼,日后再复习一下……)
(插眼专用图/滑稽)
Internet Protocol Version 4
好了,接下来到了IP层,需要给上面来的数据报加上IP头部,IP数据报结构如下:
比如说45
这个字节这具体表现是ip数据报的第一行和第二行的具体信息,IP版本为IPv4,报头长度为二十个字节,往后的各个字段都是这样一一对应的关系,具体还要加强对那张ip数据报结构图的理解,要了然于胸。
Ethernet II, Src
图中三个方框的14个字节对应以太网MAC帧的前14个字节:前6个字节是目的地址,接下来的6个字节是源地址,最后两个字节是类型字段(用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据交给上一层的这个协议。0x8000代表上层使用的是IP数据报),后面是数据部分。
另外:wireshark把8字节的前序(前同步码)和4字节的FCS(帧开始界定符)都给过滤掉了,所以捕获到的帧里看不到这两部分。
Frame 75
- 对方发送5520字节,实际收到5520字节
- 第一行表示接口位0号
总体数据表示
其实在计算机看来,网络中的数据传输就是传输下面的这些字节
一个字节由八个位组成,而位就是我们通常所说的二进制中的0或1
后记
Wireshark 抓不到HTTPS数据包
有些时候HTTP包也抓不到抑或是抓的不全,用如下方式解决即可。
在C盘根目录下创建如下目录和文件,.log就是后缀不要txt
添加环境变量
进入wireshark软件
编辑
首选项
Protocols
评论区