所有的网络问题都源于数据包层次,在该层次上做得越多,就能够对网络有更好的控制,就能更快更好的解决网络问题。这就是数据包分析的世界。
1. 数据包分析与数据包嗅探器
数据包分析指的是通过捕获和解析网络上在线传输数据的过程。
数据包分析技术可以通过以下方法来达到目标:
- 了解网络特征。
- 查看网络上的通信主体。
- 确认谁或是那些应用在占用网络带宽。
- 识别网络使用的高峰时间。
- 识别可能的攻击或恶意行为。
- 寻找不安全以及滥用网络资源的应用。
常用数据包嗅探器:
- tcpdump
- OmniPeek
- WireShark
1.1 评估数据包嗅探器
-
** 支持的协议 **:大部分通常都能解析常见的网络协议(如IPv4和ICMP)、传输层协议(如TCP和UDP),甚至一些应用层协议(如DNS和HTTP)。
-
** 用户友好性 **
-
** 费用 **
-
** 技术支持 **:社区等。
-
** 操作系统支持 **
1.2 数据包嗅探器工作原理
涉及到软件和硬件之间的协作。分为3个步骤:
-
** 收集 **:数据包嗅探器从网络线缆上收集原始二进制数据。通常情况下,通过将选定的网卡设置成混杂模式来完成抓包。在这种模式下,网卡将抓取一个网段上所有的网络通信流量,而不仅是发往它的数据包。
-
** 转换 **:将捕获的二进制数据转换成可读形式。高级的命令行数据包嗅探器就支持到这一步。到这步,网络上的数据包将以一种非常基础的解析方式进行显示,而将大部分的分析工作留给最终用户。
-
** 分析 **:对捕获和转换后的数据进行真正的深入分析。数据包嗅探器以捕获的网络数据作为输入,识别和验证它们的协议,然后开始分析每个协议的特定属性。
2. 网络通信原理
2.1 协议
现代网络是由多种运行在不同平台的异构系统组成的。为了使它们之间能够互相通信。我们使用了一套共同的网络语言,并称之为协议。
协议栈是一组协同工作的网络协议的逻辑组合。
尽管协议往往有着巨大的差异,但它们通常用来解决一下问题。
-
** 发起连接 **:有客户端还是服务端发起连接?在真正的通信之前,必须要交换哪些信息?
-
** 协商连接参数 **:通信需要进行加密吗?加密秘钥如何在通信双方之间进行传输?
-
** 数据格式 **:通信数据在数据包中如何排列?数据到达接收设备时以什么样的顺序进行处理?
-
** 错误检测与校正 **:当数据包花了太长时间才到达目的地时如何处理?当客户端暂时无法和服务器建立通信时,该如何恢复连接?
-
** 连接终止 **:一台主机如何告知另一台主机通信已经结束?为了礼貌的终止通信,应该传送什么样的最终信息?
2.2 七层OSI参考模型

2.3 数据封装
并非每个数据包都是从应用层协议产生的,所以你会看到只包含第2、3、或4层协议信息的数据包。
2.4 网络硬件
- 集线器
一般是提供了多个RJ-45端口的机盒。
会产生很多不必要的流量(数据广播到每个端口),仅在半双工模式下运行。
工作在物理层上的转发设备。
- 交换机
与集线器相同,交换机也是用来中继数据包的。
与集线器不同的是:并不是将数据广播到每一个端口,而是将数据发送到目的计算机所连接的端口上。
为了能够直接与一些特定设备进行通信,交换机必须能够通过MAC地址来唯一标识设备,者意味着他们必须工作在数据链路层上。
- 路由器
工作在网络层,负责在两个或多个网络之间转发数据包。
路由器在网络间引导数据包流向的这一过程被称为路由。几种不同的路由协议定义了不同目的地数据包如何被路由到其他网络。
3. 流量分类
- 广播
- 多播
- 单播
3.1 广播流量
广播数据包会被发送到一个网段的所有端口,无论这些端口连接在集线器还是交换机上。
3.2 多播流量
多播是一种将单一来源数据包同时传输给多个目标的通信方式。
3.3 单播流量
单播数据包会从一台计算机直接传输到另一台计算机。
网友评论