ARP解析MAC地址的全过程(ARP的工作机制)

ARP 地址解析协议——IP地址到MAC地址 1 阅读详情

目录

ARP解析MAC地址的过程:

源码等资料获取方法


以太网环境下,同一个网段的主机之间需要互相知道对方的MAC地址,才能访问。

TCP/IP协议栈从上层到下层的封装过程中,第三层封装需要知道目的IP,第二层封装需要知道目的MAC。

目的IP一般由用户手工输入,或者由应用程序填充,也可以通过名称解析系统解析得到,而目的MAC就需要使用ARP来解析。

ARP解析MAC地址的过程:

第一步:

上层应用产生数据,这里用FTP协议为例,在FTP协议中定位了目的IP。

第二步:

那么,封装的过程如下:

  • 应用层:需要FTP的控制信息,包括用户名、密码等;

  • 传输层:目的端口号为21,源为随机端口号;

  • 网络层:目的IP为172.16.1.200,源IP为172.16.1.1;

  • 数据链路层:因为不知道目的IP 172.16.1.200对应的MAC,所以目的IP到目的MAC的封装映射失败;

三层到二层的封装失败,由于二层是以太网,ARP的工作机制便会产生ARP Request去解析目的MAC,此时,源MAC为数据发起者的MAC,目的MAC地址为 ff-ff-ff-ff-ff-ff(代表所有MAC)

第三步:

ARP Request到达本网段中的所有设备上,因为目的为ff-ff-ff-ff-ff-ff,所以所有设备都可以拆掉二层的封装,然后解读ARP数据包中需要解析的目的IP。

第四步:

目的IP不正确的设备直接忽略这个ARP请求包,目的IP正确的设备,会产生一个ARP Reply去回应这个ARP Request。

此时,二层的源MAC为被

通过执行arp命令获取MAC地址 获取单个IP或IP段的MAC地址 代码:GETMAC.java。 执行class命令示例:java-classpath bin GetMac 192.168.1.3 或 java-classpath bin GetMac 192.168.1.3 6 代码: import java.io.InputStreamReader; import java.io.LineNumberReader; import java.nio.charset.Charset; import java.util.... 阅读详情

相关推荐

ARP地址解析实验

一、ARP地址解析实验 1. 基本配置 实验环境:ensp 模拟环境: 路由器R1是公司出口网关,连接到外网。公司内所有员工在使用10.1.0.0/16,通过交换机连接到网关路由器上,为了防止ARP欺骗配置静态ARP。 主机没有配置默认网关,且分属不同广播域,造成无法通信,在路由器上配置ARP代理功能,实现网络内所有主机的通信。 1.1 ARP request包和reply包 R1配置: Int g 0/0/0 Ip add 10.1.1.254 24 Int g 0/0/1 Ip add 10.1

weixin_43522969的博客 2442

ARP(地址解析协议)编程指的是通过编程方式进行ARP操作,即根据IP地址获取对应的MAC地址

当主机A需要与主机B通信时,如果它知道主机B的IP地址但不知道对应的MAC地址,它将发送一个ARP请求广播,询问局域网中是否有主机知道该IP地址对应的MAC地址。总结起来,上述代码通过构造和发送ARP请求包,并解析接收到的ARP响应包,实现了基本的ARP解析功能。另外,代码中使用了一些特定于Linux系统的命令(例如读取网卡MAC地址的命令),如果在其他操作系统上运行,可能需要进行相应的修改。通过原始套接字,我们可以构造并发送ARP请求包,然后接收并解析ARP响应包,从中提取目标主机的MAC地址。

ByteEchoX的博客 255

SRS(简单实时视频服务) 笔记(5)- 视频录制

在SRS使用中实现视频录制功能。

irainsa的博客 1698

动手学Moveit2 | 运行配置好的机械臂功能demo

通过这个小demo你可以直观的感受moveit2的强大,但还有很多需要我们探索的,比如机械臂是如何规划的,规划的过程中如何结合环境信息,规划的时候机械臂如何求解,如何和真实的机械臂对接等等,这些都需要你来进一步探索,今天就到这里,明天给大家秀一下小仙女焊的fishbot运控板。

生活不止眼前的苟且 8879

Dify 深度进阶:从入门到精通AI应用构建

《Dify进阶指南:从基础到高阶的AI应用开发技巧》 本文深入探讨Dify平台的高级功能与应用开发技巧。首先强调核心概念的深化,包括提示词工程进阶、知识库高效管理和模型参数优化。重点介绍智能体应用的开发方法,如何让AI具备自主规划与执行能力。同时讲解工作流编排、前端集成等实用技术,并分享应用运营优化、成本控制等实践经验。文章还展望了Dify生态的发展趋势,为开发者提供从基础到进阶的完整学习路径,助力打造更智能高效的AI应用。

同名公众号:dify实验室 1950

VirtualLab初学者教程-1.用户界面

目录前言一、VirtualLab Fusion简介1.软件2.内置工具箱:二、用户界面认识1.上方菜单栏2.右侧面主窗口3.底部窗口附 前言 感觉做VirtualLab的资料不是特别多,可能用的朋友也比较少吧,笔者最近也因为大创需要刚刚开始入门,把网上有的英文资料整理了一下,加了一点自己的内容发出来希望帮助更多在学习中的朋友,有用词不当之处还请多多包涵。 一、VirtualLab Fusion简介 因为是第一讲,简单啰嗦一下软件本身,参考官方介绍。 1.软件 VirtualLab是由德国LightTran

ClaireTang1的博客 2万+

FATFS挂载多个存储设备(2):功能配置及功能测试

本文介绍了基于FATFS文件系统实现多存储设备挂载的方法,包含底层设备驱动函数编写、功能配置、功能测试。

kevin1499的博客 2585

数据挖掘在人力资源分析中的实战案例

在当今竞争激烈的商业环境中,人力资源管理对于企业的成功至关重要。有效的人力资源管理能够提高员工绩效、降低员工流失率、优化人才招聘等。而数据挖掘技术为人力资源管理提供了强大的工具,通过对大量人力资源数据的分析,可以发现潜在的规律和模式,为企业的决策提供有力支持。本文的目的是通过实际案例展示数据挖掘在人力资源分析中的具体应用,涵盖员工绩效预测、人才招聘筛选、员工流失分析等多个方面。通过详细的案例分析,帮助读者理解数据挖掘技术在人力资源管理中的实际操作和应用价值。

移动开发前沿的博客 489

基于FFT+BP神经网络/决策树的轴承故障诊断

基于FFT+BP神经网络/决策树的轴承故障诊断

天天酷科研的博客 131

PD3.0详解 第十一章 策略层 电源协商(三)(sink端)

前面大师匈介绍了Source端的内容,今天再看一下sink端的内容。大师匈还是想把标准文件的状态机拿出来说一下。大师匈把一张图分成俩部分,大家凑合看一下,一张图实在看不清内容。 Sink 端电源协商状态机。基于sink端哦!!! 上图先!!! 上面俩张图就是整个SINK端口的状态机了。。。介绍一下这个流程: 1、收到hardreset或者刚上电的进入PE_SNK_Startup开始状态。 2、在PE_SNK_Startup阶段后进入PE_SNK_Discovery,并等待Vbus的到来。 3、当Vbus

大师匈的博客 4131

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: TCP/IP详解
下一篇: 跨网络的通信过程、路由的作用以及默认网关
bug捕手
博客等级 码龄4年 899粉丝 417原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值