目录

一、为什么有mac地址还需要ip地址

1. 为什么有mac地址

2. 数据包只填mac地址能否送达

3. IP地址不可或缺

4. 是否可以只存在ip地址

二、ARP协议详解

1. 为什么需要ARP

2. ARP的工作过程



一、为什么有mac地址还需要ip地址

1. 为什么有mac地址

在计算机出厂时,就由网络设备制造商生产时烧录在网卡上,属于全球唯一的地址,那为什么需要这个地址呢?想想平时寄东西,必须在快递上写上接收地址,而这个地址肯定也是全球唯一,这样快递员才能准确无误的将快递送达。网络数据包同样需要这个唯一的mac地址。那这样是否能够在网络中通信了呢?

2. 数据包只填mac地址能否送达

通过上面可知,我们将网络中的数据写上接收方的mac地址,是否就能到达对方的电脑呢?答案显然是不能,那全球只有一台电脑的mac地址能配对到这个网络数据包写上的mac地址, 理论来说应该是可以到达的,但是mac地址是没有层次分明,也就是说mac地址那串符号几乎是随机分配的,所以你只写上一个mac地址,要准确送达,只能遍历全世界的计算机看看该mac地址属于哪台计算机并送达,显然这是不可能的。

3. IP地址不可或缺

由于mac的地址没有层次结构,要在庞大的互联网定位的目标地址非常困难,所以还需要另外一个有层次的地址即IP地址。

用ip查询器随便输入一个ip地址,就能知道该ip所属哪个位置,这方便了网络数据包的定位,使路由器转发数据包有了方向。

4. 是否可以只存在ip地址

这涉及到计算机网络的传输层次了,ip地址是属于网络层的,mac属于链路层的。一般来说,家里的电脑都是分配了局域网ip(局部唯一),只有连接的网关(路由器)才有公网ip,发送数据包是先发送给网关再让路由器去发出去,所以回来的数据包最后也只能定位到你的路由器,下一步转发就需要通过ARP协议(下面介绍)获取mac地址正确到达你的电脑。如果电脑直接用的是公网ip,那就可以不需要这个操作。但是网络中路由器与路由器之前的转发同样需要mac地址,ip地址是电脑或者路由器本身的,而mac地址是网络适配器的(即网络接口),路由器知道ip地址并不能直接转发,而是查询路由表得到目标网段属于哪个接口,然后封装下一跳路由的mac地址从网络接口发送出去。

二、ARP协议详解

1. 为什么需要ARP

IP协议的设计目标是为了跨越不同类型物理网络的分组交换提供相互操作。一个传统的IPv4网络在传输过程这需要用到自己的32位ip地址,但如果一台主机要将一个帧发送到另外一个主机,还需要知道主机在网络中的有效硬件地址(即mac地址),操作系统软件(以太网驱动程序)必须知道目的主机的硬件地址才能直接向它发送数据。这就需要网络层软件使用的地址和底层网络硬件使用的地址之间进行转换,所以ARP协议应运而生。

2. ARP的工作过程

当你要发送一个数据,要将该数据层层封装,将如是在浏览器输入一个网网址,那么就在应用层封装了HTTP头部信息,然后就是封装TCP头部(包含源端口、目标端口等信息),再然后就是IP头部(源ip地址、目标ip地址等信息),最后就是链路层的头部,这时需要目标mac地址,但是发送数据时一般来说只知道对方的ip地址(在网站上感觉域名可以解析出ip地址),那mac地址从何而来?

这就需要ARP协议了,主机首先查看目标ip地址是否在同一网段,如果在就会发送一个ARP广播,目标mac地址为FF-FF-FF-FF,内容为who is 192.168.1.10(假设目标ip为这个),然后交换机就会广播这个ARP包,ip为192.168.1.10收到后就会回复主机告诉它自己的mac地址,不是该ip的主机忽略该ARP包。主机收到目标主机的mac地址后,即能进行链路层的封装,最后交给网卡发送出去。还有在缓存中加入该地址映射关系,在缓存过期前发送不需要在发送ARP广播也能直接封装了。

如果目标ip地址在远程呢,并不是同一网段,那就不可能直接获取远程主机的mac地址了,想一想就知道,要是能直接发送给远程主机请求对方的mac地址,就不需要它的mac地址来封装自己的数据去发送给对方了。所以并不是直接获取目标的mac地址,主机一看目标ip不是同一网段,则不会广播ARP包,而是直接发送ARP包请求网关的mac地址,然后封装后从网卡发送出去,网关收到后,查看目标ip地址并查找路由表,获取下一跳的接口mac地址,最后封装成链路帧(即改变了目标mac地址)发送出去,下一跳路由重复此操作,知道目标ip属于到达的路由器的ip或连接的网段,再次使用ARP协议定位到目标主机发送。


详解ip地址和mac地址即ARP协议相关推荐

  1. ARP协议详解,ARP协议执行原理、ARP协议如何根据IP地址寻找Mac地址?

    「作者主页」:士别三日wyx 「作者简介」:CSDN top200.阿里云博客专家.华为云享专家.网络安全领域优质创作者 ARP协议 一.什么是ARP协议 1. Mac地址 2. 网络层的数据 3. ...

  2. 详解IP地址和Mac地址

    其实,写这篇博客的缘由是因为H5中关于获取地理位置信息的方法(navigator.geolocation.getCurrentPosition)而引发的.位置信息的数据来源主要有5种方式:    1. ...

  3. 网络基础——IP地址子网掩码MAC地址DNS(详解)

     目录 一.DNS和IP地址关系: 二.IP地址和MAC地址的区别: 三.IP地址 (internet protocol Address) (1)概念及特点: (2)网络设备获取IP地址的方式 (3) ...

  4. 71张图详解IP 地址、IP 路由、分片和重组、三层转发、ARP、ICMP

    目录 有小伙伴问:为什么没有配置 IP 地址就无法上网?IP 协议又是啥? 这要从 TCP/IP 协议说起,互联网使用的是 TCP/IP 协议,其中 IP 协议又是最重要的协议之一.IP 协议是基于  ...

  5. 71张图详解IP地址、IP 路由、三层转发、ARP、ICMP

    71张图详解IP地址.IP 路由.三层转发.ARP.ICMP 架构师之道2021-04-07 13:51:24 https://www.toutiao.com/i6948285918986027531 ...

  6. 详解IP地址后面斜杠加具体数字

    转:详解IP地址后面斜杠加具体数字 详解IP地址后面斜杠加具体数字 如:xx.xx.xx.2/24        xx.xx.xx.0/24 hzhsan:通俗一点就是,斜杠后面的数字就表示子网掩码, ...

  7. 【最全面的】71张图详解IP 地址、IP 路由、分片和重组、三层转发、ARP、ICMP

    转发自: Original Fox 网络技术平台 目录 有小伙伴问:为什么没有配置 IP 地址就无法上网?IP 协议又是啥? 这要从 TCP/IP 协议说起,互联网使用的是 TCP/IP 协议,其中 ...

  8. 【网络】IP地址和MAC地址

    一.IP地址和MAC地址 1.MAC地址 MAC(Media Access Control,介质访问控制)地址,或称为物理地址,也叫硬件地址,用来定义网络设备的位置,MAC地址是网卡出厂时(每个厂提前 ...

  9. nbtscan命令和arp -a组合可以查看局域网所有正在使用的IP地址和MAC地址

    1.下载nbtstat,解压包里的cygwin1.dll要和nbtscan.exe放在一起,如果cygwin1.dll文件无效,请使用"百度电脑专家"下载 *.dll文件. 2.使 ...

  10. python获取本机 ip地址、mac地址(物理地址)、计算机名、硬盘序列号、CPU序列号、主板序列号、bios序列号、bios uuid号

    文章目录 python获取本机IP地址.mac地址(物理地址).计算机名 物理地址 计算机名.ip地址 硬盘序列号 CPU序列号 主板序列号 bios序列号 bios uuid号 python获取本机 ...

最新文章

  1. 如何“愚弄”人工智能?
  2. Android性能测试-分析工具
  3. C#实现的【阿拉伯数字转换成中文大写金额】
  4. boost::maximum_weighted_matching用法的测试程序
  5. 【转】SharePoint 编程指南
  6. python字典长度可变吗_关于在Python3中:字典在迭代过程中,字典的长度是不允许改变的...
  7. oracle+基础常用命令,oracle 常用命令(适合菜鸟)
  8. Java项目开发-基于Java的宠物领养管理系统(附源码)
  9. Android APP 登陆界面开发 UI设计
  10. SwiftUI 控件
  11. Inductive Matrix Completion Based on Graph Neural Networks
  12. poc服务器作用,poc-POC功能是什么功能? 爱问知识人
  13. iscsi没有可用于使用快速连接登陆的目标_【解密】5G商用在即 OPPO快速网络切换方法;高管宣布华为河图商标注册成功;小米折叠屏专利曝光 类似于摩托罗拉Razr...
  14. IGBT最小死区时间计算
  15. modelsim之inout类型tb文件编写及仿真
  16. 动态测试与静态测试--手工测试和自动化测试
  17. Flex布局实战:支付宝首页
  18. java mail 邮箱发送_Java Mail 发送邮件
  19. 爬虫入门-爬取有道在线翻译结果(2)
  20. 怎样批量查询中通快运物流并分析出提前签收的单号

热门文章

  1. innobackupex全量恢复
  2. 对网页 ‘’为所欲为‘’ 之手动实现深色模式?
  3. 聊下git merge --squash
  4. 印象笔记(evernote)支持MarkDown语法
  5. 英特尔服务器cpu型号大全,Intel桌面处理器规格表
  6. html中微信添加好友超链接,微信给文字加链接代码分享(原来微信超链接是这样加的)...
  7. PHP AES 加密解密实现
  8. 自控原理学习笔记-系统稳定性分析(2)-环路分析及Nyquist-Bode判据
  9. php存在文件夹_PHP创建文件夹 PHP判断文件夹文件是否存在
  10. win10怎么开启aptx_索尼1000XM3 无线主动降噪耳机一周上手体验Windows10开启aptX方法...