【网络协议抓包分析】数据包分析的基础
前言
在进行抓包之前,先介绍一些基础知识
认识数据包
博主是使用Wireshark进行抓包分析。Wireshark将从网络中捕获到二进制数据按照不同的协议包结构规范,显示在Packet Details面板中。在Wireshark中关于数据包的叫法有三个术语,分别是帧、包、段。
捕获一个数据包在Wireshark中展示如下:
- Frame:物理层的数据帧概况
- Ethernet II:数据链路层以太网帧头部信息
- Internet Protocol Version 4:互联网层IP包头部信息
- Transmission Control Protocol:传输层的数据段头部信息,此处为TCP协议
- Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议
网络每层协议都会在上层传下来的数据上增加一个协议的头部或者尾部,然后再传给下一层,以保证协议栈(网络的每层协议共同组成协议栈)之间可以正常通信。
传输的网络数据+协议头部/尾部就叫做协议数据单元(PDU),即PDU包含本层协议控制信息和网络数据。网络的每层都有自己的消息对象(PDU)的概念。
流量的分类
网络中的流量可以分为三种
-
广播流量
数据包被发送到源主机所在网络的所有端口。广播包中的目的二层地址(MAC地址):FF:FF:FF:FF:FF:FF ;目的三层地址:目的主机地址为255。
-
多播流量
将单一来源的数据包同时传输给多个目标主机,避免数据包的大量复制,减少网络带宽的使用率。多播实现的方式是将接收者加入多播组。多播IP地址范围为:224.0.0.0~239.255.255.255
-
单播流量
一台源主机直接将数据包传输给一台目的主机
监听网络线路
网络嗅探的原理
以太网采用了CSMA/CD技术,由于使用了广播机制,所以,在同一共享网络内的所有主机都可以看到该网络上传输的所有数据包。
正常情况下网卡只会接收目的MAC地址与自己相匹配的数据帧。网卡还有一种模式即混杂模式
。开启混杂模式可以嗅探到所有流经该共享网络线路上的所有数据包。
嗅探器的放置
监听数据包的关键决策在于将数据包的嗅探器放在哪里。正确地放置嗅探器,便可以嗅探到我们想要的数据包。
当网络使用集线器或者交换机连接时:
-
集线器
流经集线器的所有网络数据包都会被发送到每一个集线器连接的端口
-
交换机
-
端口镜像
将交换机其他一个或多个端口的经过的数据包复制一份到嗅探器连接的端口上,需要注意镜像端口的流量负载
-
-
集线器输出(hubbing out)
在目标设备和交换机间插接一个集线器,嗅探器也接在集线器上。在端口镜像不可用时,可以使用此方法。
-
使用网络分流器
有聚合的和非聚合的两种类型,都是安置在两个设备间来嗅探所有流经的网络通信,聚合的是三个端口,非聚合的是四个端口
-
Arp欺骗攻击
通过发送包含虚假MAC 地址的ARP 消息,劫持其他计算机流量的过程
小结
对于初学者学习网络抓包分析协议,使用Wireshark便是十分足够的。后面将介绍使用Wireshark的基础操作以及使用Wireshark分析一些底层协议和高层协议。