TCP/IP之ARP协议简略介绍

本文深入浅出地介绍了ARP协议的功能和工作原理,包括IP地址与MAC地址的映射、ARP帧格式、免费ARP的作用以及与ARP相关的攻击方式。适合网络新手快速掌握ARP协议的基本概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇文章主要针对入门新手,尽量能用简略的语言复述,避免用过于官方话术,因为对于萌新来说,那些太官方的话语不容易看懂,所有本人尽力用口语化叙述,只要理解了其中的内涵意思,再看官方话术就比较容易的多。主要讲述ARP协议的主要功能。本文章仅仅是IPv4的内容,IPv6有不同之处。

 

ARP(Address Resolution Protocol)地址解析协议:

(1)如果一台主机要将一个帧(需要发送的数据,数据链路层把网络层传下来得数据封装成帧)发送到另一台主机,仅仅是知道目的主机的IP地址是不够的,还需要目的主机的硬件地址(MAC地址,每台主机刚出厂就有对应独一无二的硬件地址)。这时就需要一个协议将IP地址和MAC地址相对应,ARP协议就出现了。ARP协议提供了IP地址和硬件地址之间的映射。

(2)ARP查询使用数据链路层的广播帧发送,会被所有主机接收。IP地址匹配的主机直接向请求主机返回响应。IP地址不匹配的主机主动丢弃ARP查询。

(3)ARP高效运行主要是维护每个主机和路由器上的ARP缓存(或表),为每个接口从IP地址到硬件地址的最新映射(如图一) 

(4)ARP还有一个兄弟,就是RARP。RARP协议(反向地址解析协议),顾名思义是和ARP做相反的事情,也就是通过硬件地址映射IP地址。不过RARP已经很少使用了,而且需要系统管理员手动配置,所以了解一下就可以了。

(图一)每隔秒级就发送一个ARP帧

1、ARP帧格式:

 

1、硬件类型(hardware type):指硬件地址类型,对于以太网,该值为1(IEEE 802.3通常是以太网,除了以太网还有其他类型,其他类型很少见,如IEEE 802.xxx)。

2、协议类型(protocol type):指映射的协议地址类型,有IPv4和IPv6(现在主要都是IPv4)。

3、硬件大小(hardware size):硬件地址的字节数,值为6。

4、协议大小(protocol size):协议地址的字节数,值为4

5、Op(Opcode):指出该操作是ARP请求(值为1)、ARP应答(值为2)、RARP请求(值为3)、RARP应答(值为4)。

6、后面四个地址,与名字的意思一样。

wireshark抓包:

ff:ff:ff:ff:ff:ff 是广播地址(需要广播给每台主机)。00:00:00:00:00:00是目的硬件地址(因为不清楚对方的MAC地址,所以全为0)

2、代理ARP:

代理ARP也称为混杂ARP或ARP黑客,使一个系统(通常是一台专门配置的路由器)可回答不同主机的ARP请求(它使ARP请求的发送者认为做出响应的系统就是目的主机,但实际上目的主机可能在其他地方或不存在)。ARP代理不常见,仅供了解有该功能。

3、免费ARP:

1、为了一台主机确定其他主机是否配置了和自己相同的IPv4地址,便发生一个免费ARP,其实该主机并不期望得到应答。如果它接收到了一个应答能,通常显示的错误信息“从以太网地址......发生的重复IP地址”,这就是对系统管理员和用户的警告,告诉已经有相同的IP地址(意思是比如我现在用的IP地址是192.168.1.2,如果其他主机也是192.168.1.2,那么就地址冲突了,便无法使用该地址,并显示警告)。

2、如果发送免费ARP的主机已经改变了硬件地址,那么收到该帧的主机的缓存中的条目会更新与该帧的硬件地址一致(意思是如果一台主机收到一个ARP请求,则缓存条目更新为ARP请求中发送方的硬件地址)。

虽然免费ARP提供了警告,但实际上并没有对这种错误地址提供解决机制(除了警告,实际由系统管理员完成)。为了解决这个问题,描述了IPv4地址冲突检测(ACD)。

3、ADC定义了ARP探测分组和ARP通告分组。ARP探测分组是一个ARP请求,其中发送方的地址被置为0(发送者相当于没有IP地址),ARP探测分组用于查看一个候选IP地址是否被其他主机所使用。ARP通告与ARP探测相同,除了其发送方地址和目的地址为候选IP地址外,它用于通告发送方使用候选IP地址的意图。

4、与ARP相关的攻击:

1、最直接的就是使用代理ARP功能假扮主机,对发送者ARP请求做出应答。

2、ARP欺骗(ARP毒化):通过欺骗局域网内主机的网关MAC地址,使访问者主机错以为攻击者更改后的MAC地址是网关的MAC,可能导致网络不通(假设主机 A 192.168.1.2,B 192.168.1.3,C 192.168.1.4, 网关 G 192.168.1.1。正常情况下,A和B通信需要经过网关G,而C不会知道他们通信的内容,当C要ARP欺骗时,C只向A发送一个返回包,告诉A:G 192.168.1.1 的MAC地址为自己的MAC地址,A把这个信息记录在了缓存表中,而G的缓存表不变,也就是说,A把数据包给了C,而G的包还是给A,这样就是ARP欺骗了)。

总结:讲述了ARP在协议族的作用,主要起IP地址与MAC地址的映射。免费ARP则是检测自己使用的IP地址是否在局域网内还有其他主机在使用。本篇文章内容并不多,但却尤为重要,需要多多研读。

如果有什么讲解得不好的地方,或者想问的问题都可以在下方评论区评论哟!

<think>好的,用户想了解家庭主机访问百度的全过程,需要详细描述网络如何连通。首先,我得从用户输入网址开始,逐步分解每个步骤。 首先,用户在浏览器输入www.baidu.com,这时会触发DNS解析。我需要解释DNS的作用,把域名转换为IP地址。这里可能会涉及到本地缓存、路由器、ISP的DNS服务器,甚至根域名服务器和权威DNS服务器的查询过程。 接下来是建立TCP连接,三次握手的过程需要简明扼要说清楚。然后是HTTP请求,如果使用HTTPS的话,还要提到SSL/TLS握手的过程。这部分可能需要解释加密和证书验证的步骤。 然后数据包会通过家庭网络的路由器,经过NAT转换,把私有IP转换成公网IP。接着数据包会经过多个网络节点,比如ISP的网络、骨干网,可能还有CDN的节点,最终到达百度的服务器。 服务器处理请求后,返回响应数据,再逆向传输回用户的电脑,浏览器渲染页面。整个过程需要确保每个步骤都清晰,技术术语不过多,但准确。 可能用户对某些术语不熟悉,比如NAT或CDN,需要适当解释。同时要注意网络层次结构,比如应用层、传输层、网络层、数据链路层的作用,但不需要深入每一层的细节,保持整体流程连贯。 还要考虑是否有网络设备如交换机、路由器的角色,数据包在不同设备间的传递。可能还需要提到ARP协议,将IP转换为MAC地址,但可能太过细节,用户不一定需要,所以可能简略。 检查是否有遗漏步骤,比如DNS解析失败的情况如何处理,但用户问题主要是正常流程,所以可以略过错误处理。最后确保整个过程逻辑正确,语言通俗易懂,符合用户的理解水平。</think>家庭主机访问百度的全过程可分为以下关键步骤,按分层结构逐步解析: --- ### **第一步:DNS解析** 1. 用户在浏览器输入`www.baidu.com`,系统触发DNS解析: - 先检查**本地DNS缓存**(如浏览器缓存、操作系统缓存) - 若无记录,向**家庭路由器**或**ISP提供的DNS服务器**发起查询 - DNS服务器通过递归查询,最终从根域名服务器→`.com`顶级域名服务器→百度权威DNS服务器获取IP地址(如`14.215.177.38`) --- ### **第二步:建立TCP连接** 2. 获取IP后,通过**TCP三次握手**建立可靠连接: - 客户端发送`SYN`包 → 服务器返回`SYN-ACK` → 客户端回复`ACK` - 若使用HTTPS(默认端口443),需额外完成**SSL/TLS握手**(证书验证、密钥协商) --- ### **第三步:数据包传输** 3. 数据通过分层协议封装与路由: - **应用层**:生成HTTP请求(如`GET / HTTP/1.1`) - **传输层**:TCP协议分割数据并添加端口号(客户端随机端口→服务器443) - **网络层**:IP协议封装源IP(家庭公网IP)和目标IP(百度服务器IP) - **数据链路层**:通过ARP协议将IP映射为MAC地址,经家庭路由器转发 --- ### **第四步:网络路径与NAT** 4. 数据包离开家庭网络: - 家庭路由器执行**NAT转换**,将内网IP(如`192.168.1.100`)转为公网IP - 经ISP网络→骨干网→百度服务器所在机房(可能通过BGP协议选择最优路径) - 若百度使用CDN,请求会被调度到最近的边缘节点 --- ### **第五步:服务器响应** 5. 百度服务器处理请求: - 反向代理(如Nginx)接收请求,负载均衡到后端集群 - 生成HTML响应,数据经相同路径返回客户端 - 浏览器解析响应并渲染页面(下载CSS/JS/图片等资源) --- ### **关键网络设备与协议** | 层级 | 设备/协议 | 作用 | |------------|--------------------|-----------------------------| | 物理层 | 光纤/网线 | 传输电信号/光信号 | | 数据链路层 | 交换机/ARP | MAC地址寻址 | | 网络层 | 路由器/IP协议 | 跨网络路由选择 | | 传输层 | TCP/UDP | 端到端可靠传输 | | 应用层 | HTTP/DNS | 内容交互与域名解析 | --- ### **全程示意图** ``` 家庭主机 → 路由器(NAT) → ISP → 骨干网 → 百度服务器 → 响应逆向返回 ``` 整个过程通常在100~500毫秒内完成,依赖网络基础设施的协同工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值