《Wireshark数据包分析实战(第2版)》—第6章6.1节地址解析协议

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

本节书摘来自异步社区《Wireshark数据包分析实战(第2版)》一书中的第6章6.1节地址解析协议,作者【美】Chris Sanders,更多章节内容可以访问云栖社区“异步社区”公众号查看。

第6章 通用底层网络协议
Wireshark数据包分析实战(第2版)
无论是处理延迟问题,还是甄别存在错误的应用,抑或对安全威胁进行聚焦检查,都是为了发现异常的流量,而你必须首先了解正常的流量。在下面的几章中,你将会学到正常的网络流量在数据包级别是如何工作的。

我们将介绍最常见的几种协议,包括最基础的TCP、UDP和IP,以及如HTTP、DHCP、DNS等最常用的应用层协议。在每个协议的相关部分,都会至少有一个捕获文件供你下载,并可以让你直接上手分析。在这一章中,我们将着重关注在OSI分层模型中从第1层到第4层的底层协议。

这应该是这本书中最重要的几章。如果跳过了这些内容,你会感到如同周末晚餐中没有牛角面包那样不完整,即使你对每个协议是如何工作的都了然于胸,那也请至少快速浏览一遍,以便复习每个协议数据包的结构。

6.1 地址解析协议
网络上的通信会使用到逻辑地址和物理地址。逻辑地址可以使得不同网络以及没有直接相连的设备之间能够进行通信。物理地址则用来在单一网段中交换机直接连接的设备之间进行通信。在大多数情况下,正常通信需要这两种地址协同工作。

我们假设这样一个场景:你需要和你网络中的一个设备进行通信,这个设备可能是某种服务器,或者只是你想与之共享文件的另一个工作站。你所用来创建这个通信的应用已经得到了这个远程主机的IP地址(通过DNS服务,这将在第7章中介绍),也意味着系统已经拥有了用来构建它想要在第3层到第7层中传递的数据包所有需要的信息。这时它所需要的唯一信息就是第2层包含目标主机MAC地址的数据链路层数据。

之所以需要MAC地址,是因为网络中用于连接各个设备的交换机使用了内容寻址寄存器(CAM)。这个表列出了它在每一个端口的所有连接设备的MAC地址。当交换机收到了一个指向特定MAC地址的流量,它会使用这个表,来确定应该使用哪一个端口发送流量。如果目标的MAC地址是未知的,这个传输设备会首先在它的缓存中查找这个地址,如果没有找到,那么这个地址就需要在网络上额外的通信来进行解析了。

TCP/IP网络(基于IPv4)中用来将IP地址解析为MAC地址的过程称为地址解析协议(Address Resolution Protocol, ARP)。这个协议在RFC826中进行了定义,它的解析过程只使用两种数据包:一个ARP请求与一个ARP响应,如图6-1所示。

12-1248 数据包分析实用技术-使用Wireshark解决现实世界中的网络问题(第2版)(改三校)0601.tif


7ddb475b0f8c558f53b0cbbeeb93b121f0039406

注意
 RFC(Request for Comments)是定义协议实现标准的官方文档。你可以在RFC Editor的首页上搜索RFC文档, http://www.rfc-editor.org/
这个传输计算机会发出一个ARP请求,基本上就是问“大家好,我的IP地址是XX.XX.XX.XX,MAC地址是XX:XX:XX:XX:XX:XX。我需要向那个IP地址是XX.XX.XX.XX的家伙发些东西,但我不知道它的硬件地址,你们谁有这个IP地址的,可否请回复给我你的MAC地址?”

这个数据包将被广播给网段中的所有设备。不是这个IP地址的设备将简单地丢弃这个数据包,而拥有这个IP地址的设备将发送一个ARP响应,就像是说:“你好,传输设备,我就是你所找的那个拥有IP地址为XX.XX.XX.XX的,我的MAC地址是XX:XX:XX:XX:XX:XX。”

一旦这个解析过程完成了,传输设备就会对这个设备MAC和IP对应关系的缓存进行更新,并且开始传输数据。

注意
 在Windows主机中,你可以通过在命令行中键入arp -a来查看ARP表。
通过实际情况来看地址解析的这个过程,有助于你更好地理解它究竟是怎么工作的。但是在看一些例子之前,我们先介绍一下ARP数据包头。

6.1.1 ARP头
如图6-2所示,ARP头包含下列的几个域。

硬件类型:数据链路层使用的类型数据。在大多数情况下,这个类型都是以太网(类型1)。

协议类型:ARP请求正在使用的高层协议。

硬件地址长度:正在使用的硬件地址的长度(八位组/字节)。

12-1248数据包分析实用技术-使用Wireshark解决现实世界中的网络问题tu0


841e158a1d0d4682b996b9288d466ff59c79c9dc

协议地址长度:对于指定协议类型所使用的逻辑地址的长度(八位组/字节)。

操作:ARP数据包的功能:1表示请求,2表示响应。

发送方硬件地址:发送者的硬件地址。

发送方协议地址:发送者的高层协议地址。

目标硬件地址:目标接收方的硬件地址(ARP请求中为0)。

目标协议地址:目标接受方的高层协议地址。

现在打开arp_resolution.pcap这个文件,就可以看到实际的解析过程。我们将对这个过程中的每个数据包单独进行分析。

6.1.2 数据包1:ARP请求
如图6-3所示,第1个数据包是一个ARP请求。我们可以通过在Wireshark的Packet Details面板中,检查以太网头,来确定这个数据包是否是一个真的广播数据包。这个数据包的目的地址是ff:ff:ff:ff:ff:ff图标1。这是一个以太网的广播地址,所有发送到这个地址的数据包都会被广播到当前网段中的所有设备。这个数据包中以太网头的源地址就是我们的MAC地址图标2。


45aab91932ad921d78e72dccc965f0589e42ea40

在这个给定的结构中,我们可以确定这的确是一个在以太网上使用IP的ARP请求。这个ARP头列出了发送方的IP(192.168.0.114)和MAC地址(00:16:ce:6e:8b:24)图标3,以及接收方的IP地址192.168.0.1图标4。我们想要得到的目标MAC地址,还是未知的,所以这里的目的MAC地址填写为00:00:00:00:00:00。

6.1.3 数据包2:ARP响应
在我们对最初请求的响应中(如图6-4所示),第一个数据包中的源MAC地址成为了这个以太网头中的目的地址。这个ARP响应和之前的ARP请求看上去很像,除了以下几点。

数据包的操作码(opcode)现在是0x0002,用来表示这是一个响应而不是请求。
地址信息进行了颠倒——发送方的MAC地址和IP地址现在变成了目的MAC地址和IP地址。
最重要的是,现在数据包中所有的信息都是可用的,也就是说我们现在有了192.168.0.1主机的MAC地址(00:13:46:0b:22:ba)。


18a64a4341848701438ab0234abae094f77d3bdd

6.1.4 无偿的ARP
在我的家乡,当一些事是所谓的“无偿”的时候,那通常没有什么好的含义。但无偿发送的ARP却是一个好东西。

在多数情况下,一个设备的IP地址是可以改变的。当这样的改变发生后,网络主机中缓存的IP和MAC地址映射就不再有效了。为了防止造成通信错误,无偿的ARP请求会被发送到网络中,强制所有收到它的设备去用新的IP和MAC地址映射更新缓存(如图6-5所示)。

12-1248 数据包分析实用技术-使用Wireshark解决现实世界中的网络问题(第2版)(改二校)改0605.tif


ba30e3df7127054b6b8e65a09e5cbfa9265906e8

几个不同的情形都会产生无偿ARP数据包,其中一个最常见的就是IP地址的改变。打开arp_gratuitous.pcap这个捕获文件,你就会看到一个实际例子。这个文件只包含一个数据包(如图6-6所示),因为这就是无偿数据包的全部了。

80213d003c5dc7a73ac79165828a013c810f503d

检查这个以太网头,你会看见这个数据包是以广播的形式发送,以便网络上的所有主机能够接收到它图标1。这个ARP头看上去和ARP请求很像,除了发送方的IP地址图标2和目标IP地址图标3是相同的。当这个数据包被网络中的其他主机接收到之后,它会让这些主机使用新的IP和MAC地址关系更新它们的ARP表。由于这个ARP数据包是未经请求的,却导致客户端更新ARP缓存,所以会称之为无偿。

你会在一些不同的情形下注意到无偿ARP数据包的存在。如上所示,设备IP地址的改变会生成它,并且一些操作系统也会在启动时进行无偿ARP的发送。此外,你可能会注意到一些系统使用无偿ARP数据包对流入流量进行负载均衡。

相关文章
|
2月前
|
XML 监控 网络协议
云深处绝影四足机器人协议学习解析
本文详细介绍并解析了云深处绝影X20四足机器人的通信协议,包括TCP服务端端口号、基于Service的请求/响应通信机制、通信帧结构、消息类型、常见的通信示例如获取状态和导航请求,以及运动控制的参数和命令。文中还提出了对协议中某些未明确说明或可能存在的问题的疑惑。
30 0
云深处绝影四足机器人协议学习解析
|
11天前
|
域名解析 存储 网络协议
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
本文详细介绍了IP协议报头结构及其各字段的功能,包括版本、首部长度、服务类型、总长度、标识、片偏移、标志、生存时间(TTL)、协议、首部检验和等内容。此外,还探讨了IP地址的网段划分、特殊IP地址的应用场景,以及路由选择的大致流程。最后,文章简要介绍了DNS协议的作用及其发展历史,解释了域名解析系统的工作原理。
48 5
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
|
2月前
|
缓存 网络协议 安全
【网络攻防战】DNS协议的致命弱点:如何利用它们发动悄无声息的网络攻击?
【8月更文挑战第26天】DNS(域名系统)是互联网的关键组件,用于将域名转换为IP地址。然而,DNS协议存在安全漏洞,包括缺乏身份验证机制、缓存中毒风险及放大攻击的可能性。通过具体案例,如DNS缓存中毒和DNS放大攻击,攻击者能够误导用户访问恶意站点或对目标服务器实施DDoS攻击。为了防范这些威胁,可以采用DNSSEC实现数字签名验证、利用加密的DNS服务(如DoH或DoT)、限制DNS服务器响应以及及时更新DNS软件等措施。理解并应对DNS的安全挑战对于确保网络环境的安全至关重要。
74 2
|
7天前
|
前端开发 JavaScript 安全
深入解析 http 协议
HTTP(超文本传输协议)不仅用于传输文本,还支持图片、音频和视频等多种类型的数据。当前广泛使用的版本为 HTTP/1.1。HTTPS 可视为 HTTP 的安全增强版,主要区别在于添加了加密层。HTTP 请求和响应均遵循固定格式,包括请求行/状态行、请求/响应头、空行及消息主体。URL(统一资源定位符)用于标识网络上的资源,其格式包含协议、域名、路径等信息。此外,HTTP 报头提供了附加信息,帮助客户端和服务端更好地处理请求与响应。状态码则用于指示请求结果,如 200 表示成功,404 表示未找到,500 表示服务器内部错误等。
14 0
深入解析 http 协议
|
17天前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
在网络数据的海洋中,网络爬虫遵循HTTP协议,穿梭于互联网各处,收集宝贵信息。本文将从零开始,使用Python的requests库,深入解析HTTP协议,助你构建自己的网络爬虫帝国。首先介绍HTTP协议基础,包括请求与响应结构;然后详细介绍requests库的安装与使用,演示如何发送GET和POST请求并处理响应;最后概述爬虫构建流程及挑战,帮助你逐步掌握核心技术,畅游数据海洋。
48 3
|
21天前
|
消息中间件 安全 Kafka
Kafka支持SSL/TLS协议技术深度解析
SSL(Secure Socket Layer,安全套接层)及其继任者TLS(Transport Layer Security,传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。这些协议在传输层对网络连接进行加密,确保数据在传输过程中不被窃取或篡改。
41 0
|
2月前
|
域名解析 监控 网络协议
利用DNS协议的弱点
【8月更文挑战第17天】
41 1
|
2月前
|
安全 数据库连接 数据库
Python深度解析:上下文协议设计与应用技巧
在Python编程中,资源管理是一个常见且重要的问题。无论是文件操作、网络连接还是数据库事务,都需要确保资源在使用后能够正确地释放或恢复到初始状态。Python通过上下文管理器提供了一种优雅的方式来处理资源的获取与释放,使得代码更加简洁、安全。
|
2月前
|
域名解析 缓存 网络协议
揭秘DNS协议:从'http://www.example.com'到IP地址的奇幻旅程,你不可不知的互联网幕后英雄!
【8月更文挑战第4天】在互联网的广袤空间里,每台设备都有唯一的IP地址,但记忆这些数字组合并不直观。因此,DNS(域名系统)作为关键桥梁出现,将易记的域名转换为IP地址。DNS协议工作于应用层,支持用户通过域名访问资源。DNS系统包含多级服务器,从根服务器到权威服务器,共同完成域名解析。查询过程始于客户端,经过递归或迭代查询,最终由权威服务器返回IP地址,使浏览器能加载目标网页。
87 12
|
2月前
|
消息中间件 Kafka Java
Spring 框架与 Kafka 联姻,竟引发软件世界的革命风暴!事件驱动架构震撼登场!
【8月更文挑战第31天】《Spring 框架与 Kafka 集成:实现事件驱动架构》介绍如何利用 Spring 框架的强大功能与 Kafka 分布式流平台结合,构建灵活且可扩展的事件驱动系统。通过添加 Spring Kafka 依赖并配置 Kafka 连接信息,可以轻松实现消息的生产和消费。文中详细展示了如何设置 `KafkaTemplate`、`ProducerFactory` 和 `ConsumerFactory`,并通过示例代码说明了生产者发送消息及消费者接收消息的具体实现。这一组合为构建高效可靠的分布式应用程序提供了有力支持。
85 0

热门文章

最新文章

推荐镜像

更多
下一篇
无影云桌面