前置知识
计算机网络-数据链路层-多图

传输数据

有了数据链路就可以实现两台数据之间通信了,下图是基于PPP协议进行通信

但是如果要多台主机进行通信怎么办?

每一个主机都只能和另外一台主机相关联,如果想要进行多台主机的通信那么必须要使用一个中间设备来连接,例如想要实现3台主机之间的通信,我们可以使用一个中间设备,该设备拥有三个网络接口,可以和三台主机关联,我们假设该设备就是改造过后的一个计算机


三台主机都与主机P相关联逻辑上就可以进行通信了,使用计算机来充当这个中间设备太过于浪费,因为计算机的功能远远不止于此,还可以进行很多其他操作。

集线器

为了实现多台主机之间的通信,我们可以采用一个主机充当中间设备,但是主机的成本较高,而且接口一般来说只有一个,需要自己添加更多的接口。
于是就有了专门的这个中间设备
集线器

集线器工作在物理层,即对收到的电信号进行转发

集线器只是简单的对电信号进行转发,因此任何一台主机发送的一个包,都会转发到其他与该集线器连接的主机上

MAC地址

多台主机之间的通信主机如何知道该包是发送给自己的,上图所示的 PC3向PC2发送一个数据包,虽然集线器把数据包也转发给了其他主机,但是只有PC2接受该数据包并进行了回复,而其他主机则直接丢弃。
那么PC2是如何知道该包是发送给自己的?并且PC2回复的时候如何知道回复给谁?

每台主机都至少拥有一个MAC地址,严格来说应该是每个网络接口都有一个MAC地址,而主机往往会有多个网络接口。

在发送的二层数据包中(数据链路层)会带有源mac地址和目的mac地址
下图是以太网帧格式

拿上面通信的图来说,PC2接收到该数据包之后查看数据包里面的目的地址,如果发现目的地址是自己则接收,如何不是则丢弃,如何要进行回复则把接收到的数据包里的源地址作为目的地址,源地址则为自己的MAC地址进行发送

这是PC3发给PC2的数据包

PC2回复的PC3的数据包格式

ARP协议

上图中出现了IP地址,这又会引出一个问题

首先我们来看看我们PC3 ping PC2

ping的时候我们只需要数据目的IP地址即可,但是构造的数据包中却有目的主机的MAC地址
发送端是如何知道接收端的MAC地址的?

这就有一个专门的协议 ARP (地址解析协议)

PC3对PC2进行ping操作,实际上就是发送一个ICMP包,但是发送包之前必须要知道要接收端的MAC地址 (如何获取不到接收端的MAC地址则不会产生任何数据包)

ARP协议的发送端数据包,目的MAC地址为广播地址,意味着该网络上所有主机都会接收到该数据包

如何用汉语来翻译下面这个数据包想要表的信息的话,如下
PC3: 我的MAC地址是 0060.3E46.34AC
PC3: 我的IP地址是 192.168.1.5
PC3: 我想要获取192.168.1.4的MAC地址

这里为什么会有两个源MAC地址? 很简单啦, 一个是以太网协议中的MAC地址,一个是ARP协议中的MAC地址

于是 PC2给PC3进行回复,告知PC3他的MAC地址是多少

好了就先大概的介绍到这里,这篇文章只是带你了解一些简单的概念

MAC地址-集线器-ARP相关推荐

  1. oracle arp绑定mac地址,使用ARP命令来绑定IP和MAC地址

    使用ARP命令来绑定IP和MAC地址 前言:我本来没有想过写关于ARP绑定的文章,坦白的说一句,在你理解ARP工作的原理时,这其实比较简单.只是看到最近论坛很多人在问关于绑定IP和MAC地址的问题, ...

  2. cmd命令查看路由器上记录的IP地址与MAC地址(ARP表)

    如何使用cmd命令查看路由器上记录的IP地址与MAC地址(ARP表): 1.windows+R打开运行,输入cmd回车: 2.输入arp -a回车即可查看. 希望对你有所帮助,欢迎订阅我的博客!

  3. 绑定网关mac地址防止arp攻击

    @1.arp攻击解释 arp攻击--修改你电脑中的arp列表以使你访问不到指定IP下的机器. arp网关欺骗--每个人局域网设置都会设一个网关IP,这个IP对应一个mac地址存在arp列表中,网关IP ...

  4. MAC地址及ARP协议的深入理解

    今天网络协议部分的阅读搞得自己有点头疼,所以借用一篇博文来巩固学习~ MAC地址:MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控 ...

  5. 计算机网络(十七)——MAC地址与ARP协议

    文章目录 1. MAC地址 2. 地址解析协议(ARP) 2.1 源和目的处于同一个局域网内 2.2 源和目的处于不同局域网内 链路交换机运行在链路层,用于转发链路层帧.因此IP协议和IP地址不再适用 ...

  6. Linux两个网卡mac地址重复,ARP响应Linux服务器上的单个MAC地址,同一网络上有多个接口...

    Linux服务器有2个活动网络接口: IF:eth1 IP:192.168.1.1/24 MAC:11:11:11:11:11:11 (1GbE) IF:eth2 IP:192.168.1.2/24 ...

  7. 详解ip地址和mac地址即ARP协议

    目录 一.为什么有mac地址还需要ip地址 1. 为什么有mac地址 2. 数据包只填mac地址能否送达 3. IP地址不可或缺 4. 是否可以只存在ip地址 二.ARP协议详解 1. 为什么需要AR ...

  8. 《每日一记 》网络篇-ARP协议与IP地址MAC地址

    一.ARP/RARP协议 1.地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的AR ...

  9. 基于ARP协议获取局域网内主机MAC地址

      ARP帧数据结构 #define BROADMAC        {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF} //广播MAC #define EH_TYPE           ...

  10. ARP 地址解析协议 IP地址到MAC地址的转换过程

    以下图为例,讲讲ARP转换过程 主机A想要与网关(192.168.0.1)通信,正常的ARP转换过程: 1.主机A广播发送ARP请求,希望得到网关的MAC地址. 2.交换机收到ARP请求,并转发给连接 ...

最新文章

  1. 网站静态化处理—动静分离策略(3)
  2. 2020-10-25(动态调试SMC代码)
  3. 《塞尔达传说:旷野之息》技术分析:神作是怎么炼成的
  4. Outlets 和Referencing Outlets的区别
  5. 多线程——实现Runnable接口实现一个多线程
  6. P6295-有标号 DAG 计数【多项式求逆,多项式ln】
  7. 10无法勾选隐藏的项目_Excel的隐藏和保护,你会用吗?
  8. Enterprise Libary 2 Hands-on-Lab 发布了
  9. 深度学习之Image captioning的评分指标篇(BLEU、CIDEr)
  10. C++的占位符std::placeholder
  11. Beta阶段第1周/共2周 Scrum立会报告+燃尽图 06
  12. TensorFlow2 实现神经风格迁移,DIY数字油画定制照片
  13. 如何在 Apple TV 上安装 tvOS 15 developer beta 9?
  14. vs2010 “SetScrollSizes”: 找不到标识符
  15. 嵌入式开发 ARM Cortex-M3处理器技术优势分析
  16. mysql字符串替换_MySQL的字符串替换更新操作
  17. 线性回归、岭回归、LASSO和Logistic模型
  18. 使用C++实现CE中的代码注入
  19. 上传下载文件实例(vsftp服务器+nginx)
  20. 数学建模国赛全过程回顾

热门文章

  1. Matlab读取处理Excel数据并拟合正态分布曲线
  2. 用python一条命令解决多个ts转换成MP4(就一条),备用两选一
  3. 手动卸载金蝶旗舰版KIS软件流程
  4. 阿里云商标驳回复审申请收费价格、结果时间及常见问题解答
  5. excel合并两列内容_办公教程:Excel如何快速将两列内容合并成一列
  6. 格西烽火 串口助手(一)
  7. 【C#】基础篇(3) C#实现串口助手,解决中文乱码
  8. 【08月21日】指数估值排名
  9. 宝妈群体又一次遭受职场歧视?公司要求怀孕即离职?或许抖音小店是突破口
  10. android 正则表达式6-16位字母或数字,一个匹配8-16位数字和字母密码的正则表达式...