【计算机网络】第三章 数据链路层(MAC地址 IP地址 ARP协议)

news2024/9/23 11:20:47




在这里插入图片描述

3.7.1 MAC地址

MAC地址(Media Access Control address)是网络设备(如网卡、无线网卡)在数据链路层上的唯一标识符。以下是有关MAC地址的一些要点:

描述:MAC地址是一个由48个二进制位(通常以十六进制表示)组成的全球唯一标识符,用于识别计算机网络中每个网络接口(NIC)的物理硬件地址。

功能:MAC地址用于在局域网中唯一标识网络设备。它在数据链路层提供了直接的寻址能力,以便将数据从源设备发送到目标设备。

格式:MAC地址由六组以冒号或连字符分隔的十六进制数表示。例如,00:1A:2B:3C:4D:5E。前三组(24个二进制位)通常代表厂商识别码(OUI,Organizationally Unique Identifier),后三组(24个二进制位)是为该厂商分配的设备唯一标识码。

唯一性:每个网络设备的MAC地址应该是唯一的,这样可以确保在局域网中没有重复的地址。唯一性由IEEE(Institute of Electrical and Electronics Engineers)组织负责管理和分配。

广播地址:MAC地址中的特殊地址之一是广播地址(FF:FF:FF:FF:FF:FF)。当需要向局域网中的所有设备发送消息时,可以使用广播地址。

MAC地址是一个本地地址,只在同一局域网内有意义。在通过路由器连接到不同网络之间进行通信时,需要使用IP地址来进行寻址。


image.png
MAC:是以太网的 MAC 子层所使用的地址,属于数据链路层
当多个主机连接在同一个广播信道上,要想实现两个主机之间进行通信,则每个主机必须有一个唯一的标识,即一个数据链路层地址。
在每个主机发送的桢中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址。

一般情况下,用户主机会包含两个网络适配器:有线网络适配器(有线网卡)和无线网络适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和网络路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上:严格来说,MAC 地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。

3.7.2 IP地址

IP 地址是因特网上的主机和路由器所使用的地址,用于标识两部分信息:

  • 网络编号:标识因特网上数以百万计的网络
  • 主机编号:标识同一网络上不同主机(或路由器各接口)

IP地址属于网络层。

数据包转发过程中IP地址与MAC地址的变化情况
地址变化情况

在这里插入图片描述


3.7.3 ARP协议

ARP地址解析协议
ARP 协议只能在一段链路或者一个网络上使用,而不能跨网络使用。

ARP(Address Resolution Protocol)是一种用于将IP地址解析为物理地址(MAC地址)的网络协议。以下是关于ARP协议的一些要点:

描述:ARP协议是在TCP/IP协议栈中的网络层和数据链路层之间进行通信的协议。它通过发送特定的消息来获取目标设备的MAC地址。

功能:ARP协议主要有两个功能:

解析IP地址:当主机需要发送数据到一个目标IP地址时,它首先会检查本地ARP缓存表以查找对应的MAC地址。如果缓存表中没有该IP地址对应的MAC地址,则会发送一个ARP请求。

更新和维护ARP缓存:当主机接收到其他主机发来的ARP请求时,会更新本地ARP缓存,并向请求方回复自己的MAC地址以供其使用。
工作原理:当源主机要发送数据到目标主机时,它首先查找本地ARP缓存表。如果找到了目标IP地址对应的MAC地址,则直接发送数据帧到目标主机。如果没有找到,则源主机会广播一个ARP请求消息到本地网络中的所有主机,请求目标主机的MAC地址。目标主机接收到该请求后,会向源主机发送一个ARP响应消息,其中包含了自己的MAC地址。源主机接收到响应后,就可以利用目标主机的MAC地址发送数据。

ARP缓存:每个主机都维护一个ARP缓存表(也称为ARP缓存),用于保存IP地址和对应的MAC地址。这样做可以避免频繁地发送ARP请求。ARP缓存表中的条目具有一定的生存时间,超过该时间后将被认为是过期的并需要重新获取。

ARP协议在局域网(LAN)环境中工作,通过广播消息进行通信。对于跨越路由器的通信,可能需要使用其他协议,如RARP(Reverse Address Resolution Protocol)或者使用ARP代理等技术。


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/735492.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

超详细,Jmeter性能测试-模拟100个用户并发(实战)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 100个真实的用户 …

【uniapp调用微信支付】uniapp开发小程序-调用微信支付

哈喽大家好~我是马小跳。一名进阶中的程序媛。 在这里记录下自己成长的每一次进步,希望遇到志同道合的猿友 一起努力,一起把技术up up up!!! 使用uniapp开发小程序时,调用微信支付的步骤如下: …

Web项目中耗时操作,用异步请求,减少请求等待时间,使用Redis保证操作幂等性

最近项目中碰到了一个接口需要比较耗时的操作,但是我们公司前后端交互的网关设置了超时时间。因此我需要设置出一个方案保证给用户比较快的响应,又保证任务执行了。因此我采用了,下面的操作方式。 客户端发送请求后,我会先去Redis…

MySQL数据库,创建表及其插入数据和查询数据

首先,由上图创建表 mysql> create table worker(-> dept_id int(11) not null,-> emp_id int (11) not null,-> work_time date not null,-> salary float(8,2) not null,-> poli_face varchar(10) not null default 群众,-> name varchar(20…

中文模型的奋起直追:MOSS、baichuan-7B和ChatGLM2-6B的原理、部署与微调

第一部分 复旦MOSS MOSS是复旦大学邱锡鹏团队推出的一个支持中英双语和多种插件的开源对话语言模型,moss-moon系列模型具有160亿参数,在FP16精度下可在单张A100/A800或两张3090显卡运行,在INT4/8精度下可在单张3090显卡运行 其基座语言模型…

【React笔记】react循环列表的写法

react循环的写法 简单循环输出人名简单循环输出json格式数组 简单循环输出人名 循环输出people数组中的四个人名 import ReactDOM from react-dom/client;const people [宋江,卢俊义,吴用,公孙胜 ]; const root ReactDOM.createRoot(document.getElementById(root)); root.…

深度学习入门知识总结

0、前言:学习了深度学习入门的鱼书,很多基础概念有了大概了解,及时总结,方便日后查找 1、神经网络(深度学习)的起源算法——感知机: 定义:感知机接收多个输入信号,输出一…

【C++修炼之路】33.特殊类设计

每一个不曾起舞的日子都是对生命的辜负 特殊类设计 一.设计一个类,不能被拷贝二.设计一个类,只能在堆上创建对象1. 普通类的创建对象2.只能在堆上创建对象的类 三.设计一个类,只能在栈上创建对象四.设计一个类,不能被继承五.单例模…

Flink使用总结

本文主要是为Flink的java客户端使用和flink-sql使用的大致介绍&#xff0c;具体使用查看文档页面。 java client使用 文档 Apache Flink Documentation | Apache Flink 数据处理模型 maven依赖 <?xml version"1.0" encoding"UTF-8"?> <pro…

【YOLOv8-Seg】实战二:LabVIEW+OpenVINO加速YOLOv8-seg实例分割

‍‍&#x1f3e1;博客主页&#xff1a; virobotics的CSDN博客&#xff1a;LabVIEW深度学习、人工智能博主 &#x1f384;所属专栏&#xff1a;『LabVIEW深度学习实战』 &#x1f37b;上期文章&#xff1a; 【YOLOv8-seg】实战一&#xff1a;手把手教你使用YOLOv8实现实例分割 …

【数据分析 - 基础入门之NumPy⑥】- NumPy案例巩固强化

文章目录 前言一、NumPy基础训练1.1 创建一个长度为10的一维全为0的ndarray对象&#xff0c;并让第5个元素为11.2 创建一个元素为从10到49的ndarray对象1.3 将第2题的所有元素位置反转1.4 创建一个10*10的ndarray对象并打印最大最小元素1.5 创建一个10*10的ndarray对象&#xf…

程序设计相关概念

计算机概念 计算机是根据指令操作数据的设备。具有功能性和可编程性的特点。 功能性&#xff1a;对数据的操作&#xff0c;表现为数据计算、输入输出处理和结果存储等。 可编程性&#xff1a;根据一系列指令自动地、可预测地、准确地完成操作者的意图。 计算机的发展 计算机…

【LVS负载均衡集群】

文章目录 一.什么是集群1.集群的含义 二.集群使用在那个场景三.集群的分类1.负载均衡器集群2.高可用集群3.高性能运算集群 四.负载集群的架构1.第一层&#xff0c;负载调度器2.第二层&#xff0c;服务器池3.第三层&#xff0c;共享存储 五.负载均衡集群的工作模式1.地址转换 &a…

Unity减少等待快速进入运行

我们平时播放时一旦修改了c#的脚本总要加载进行等待&#xff0c;网上也缺乏如何设置&#xff0c;以及为什么&#xff1f;这样做可以达到这样的效果。 ------如何设置&#xff1f;【默认并不会开启】 Edit->Project Settings->Editor->Enter Player Mode Options 这样…

企业为什么要做自动化测试?如何成功实施自动化测试?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 企业为什么需要自…

【LeetCode热题100】打卡第33天:环形链表LRU缓存

文章目录 【LeetCode热题100】打卡第33天&#xff1a;环形链表&LRU缓存⛅前言 环形链表&#x1f512;题目&#x1f511;题解 LRU缓存&#x1f512;题目&#x1f511;题解 【LeetCode热题100】打卡第33天&#xff1a;环形链表&LRU缓存 ⛅前言 大家好&#xff0c;我是知…

C++ 实现生产者消费者模型 (线程同步、互斥锁、条件变量锁)详细注释

代码结构 任务&#xff1a;这里用一个int类型的taskNumber代替任务任务队列类&#xff1a;封装了任务队列&#xff0c;存&#xff0c;取等操作。生产者工作函数&#xff1a;生产者执行的函数&#xff0c;向任务队列中添加任务&#xff0c;每个生产者生产3个任务消费者工作函数…

脱离产品怎么可能完成测试?

“脱离应用场景谈技术毫无意义”。其实很多东西都是如此&#xff0c;这个有点哲理的味道了。我们是做engineering&#xff0c;软件工程也是工程&#xff0c;工程的特点就是不能停留在理论和方法&#xff0c;最后要做出东西来&#xff0c;软的也好&#xff0c;硬的也好。 人有…

爬虫反反爬

目录 为什么要反爬&#xff1f; 经常被反爬的主要人群 常见的反爬策略 通过headers字段来反爬 通过headers中的User-Agent字段来反爬 通过referer字段或者是其他字段来反爬 通过cookie来反爬 通过请求参数来反爬 通过从html静态文件中获取请求数据(github登录数据) 通…

【Go】vscode 安装go环境gopls失败

项目场景&#xff1a; 想要在VSCode安装go环境&#xff0c;但是gopls下载失败&#xff0c;导致vscode无法使用language server 问题描述 自动下载失败&#xff0c;在打开命令面板&#xff08;CtrlshiftP&#xff09;之后&#xff0c;输入go install/update 下载也失败 $ g…