网络协议02 - Mac地址和IP地址

article/2025/9/8 15:13:55

MAC地址


介绍

每一个网卡都要一个6字节的MAC地址(Media Access Control Address),该地址全球唯一,固化在网卡的ROM中,由IEEE802标准规定
在这里插入图片描述

  • 前3个字节:组织唯一标识符,由IEEE的注册管理结构分配给厂商
  • 后3个字节:网络接口标识符,由厂商自行分配

表示格式

不同系统下的MAC地址表示方式如下

  • Windows:40-55-82-0A-8C-6D
  • Linux、Android、Mac、iOS:40:55:82:0A:8C:6D
  • Packet Tracer:4055.820A.8C6D

当48位全为1时(FF-FF-FF-FF-FF-FF),代表的是广播地址

MAC地址的获取

当不知道对方主机的MAC地址时,可以通过发送ARP广播获取对方的MAC地址。获取成功后,会缓存IP地址、MAC地址的映射信息,俗称ARP缓存
在这里插入图片描述
通过ARP广播获取的MAC地址,属于动态缓存(dynamic),存储的时间比较短(默认是2分钟),过期了就自动删除。

ARP相关命令:

  • 查询ARP缓存
arp -a [主机地址]
  • 删除ARP缓存
arp -d [主机地址]
  • 增加一条缓存信息(属于静态缓存,存储时间久,不同系统的存储时间不同)
arp -s 主机地址 MAC地址

IP地址


介绍

IP地址(Internet Protocol Address):互联网上的每一个主机都有一个IP地址,最初是IPv4版本,32bit(4字节),2019年11月25日,全球的IP地址已经用完,后面推出了IPv6版本,128bit(16字节),IPv4如下图所示
在这里插入图片描述

IP地址的组成

IP地址由2部分组成:网络标识(网络ID)、主机标识(主机ID),通过子网掩码按位与IP地址可以得知网络ID 、主机ID,同一网段的计算机,网络ID相同

接下来举个例子解释网络ID和主机ID,假设IP地址为192.168.1.10,子网掩码为255.255.255.0,那么两者按位与(&)的结果就是主机所在的网段
在这里插入图片描述
根据上面结果为192.168.1.0,那么该主机所在网段为192.168.1.0,网络ID为192.168.1,主机ID为10

计算机和其他计算机通信前,会先判断目标主机和自己是否在同一网段

  • 同一网段:不需要由路由器进行转发
  • 不同网段:需要交由路由器进行转发

IP地址的分类

根据子网掩码和网络ID的不同,IP地址的分类也不相同,大致分类以下几类:

  • A类地址,网络ID以0开头,默认子网掩码255.0.0.0
    在这里插入图片描述
    其中网络ID,0不可用,127作为保留网段,127.0.0.1是本地环回地址(本机地址),因此第1部分可以网络ID的范围是:1 - 126,而第2、3、4部分主机ID的取值范围是0 - 255,排除掉全0和全1,因此每个A类网络能容纳的最大主机数是:256 * 256 * 256 – 2 = 2的24次方 – 2 = 16777214

  • B类地址,默认子网掩码255.255.0.0
    在这里插入图片描述
    网络ID可以分配给主机的,第1部分为128 - 192,第2部分为0 - 255,而主机ID第3、4部分为0 - 255,每个B类网络能容纳的最大主机数是:256 * 256 – 2 = 2的16次方 – 2 = 65534

  • C类地址,默认子网掩码255.255.255.0
    在这里插入图片描述
    网络ID可以分配给主机的,第1部分为192- 223,第2、3部分为0 - 255,而主机ID第4部分为0 - 255,每个C类网络能容纳的最大主机数是:256 – 2 = 254

  • D类地址,以1110开头,多播地址,第1部分取值范围是:192 - 223

  • E类地址,以1111开头,保留为今后使用,第1部分取值范围是:240 - 255

只有A/B/C类地址才能分配给主机
主机ID全为0时,表示主机所在网段
主机ID全为1时,表示主机所在网段的全部主机(也就是广播),可以通过ping某个网段的全部主机发数据
以上两种情况不可作为主机ID分配

子网划分

首先介绍一下子网掩码CIDR表示法,例如:

  • 192.168.1.100/24,代表子网掩码有24个1,也就是255.255.255.0
  • 123.210.100.200/16,代表子网掩码有16个1,也就是255.255.0.0

那么如果只是简单的用A、B、C这些分类来作为主机网段的区分,那么像下面这个例子就不太适用了

例如要让500台主机在同一个网段内,那就分配一个B类网段,比如191.100.0.0/16,共65534个可用IP地址:191.100.0.1~191.100.255.254,那么多出65034个空闲的IP地址,这种情况属于极大的浪费资源,那么如何解决呢?

这种情况就需要用到子网划分,其核心就是用主机位作为子网位,划分出多个子网,子网划分根据分配方式可以分成两种:

  • 等长子网划分:将一个网段等分成多个子网,每个子网的可用IP地址数量是一样的(举一个等分成2个子网的例子)
    在这里插入图片描述

根据上图所示,这是一个C类IP地址,子网划分为A子网和B子网,划分方式就是将主机部分的编号1这一位划分为网络部分(通过设置子网掩码为255.255.255.128),那么网络部分就变成了25位,主机部分变成了7位

那么A子网的网段为192.168.0.0/25,可用IP地址范围是:192.168.0.1 - 192.168.0.126(0代表网段,127代表广播,不可用),而B子网的网段为192.168.0.128/25,可用IP地址范围是:192.168.0.129 - 192.168.0.254(128代表网段,255代表广播,不可用)

不仅可以划分C类地址,还可以对A类、B类等地址进行划分,而且除了分成2个子网,还可以分成4个,8个等等(主要取决于主机部分的位数)。这里介绍一个子网划分的网站

  • 变长子网划分:每个子网的可用IP地址数量可以是不一样的,也就是将主机部分划分成不等长的部分,每个部分属于一个网段,还是以上面图中IP为例子,将主机部分划分成这几个网段:
    在这里插入图片描述

http://chatgpt.dhexx.cn/article/crVEYLWC.shtml

相关文章

4.2.2 以太网技术(二) MAC地址和MAC帧的格式

4.2.2 以太网技术(二) MAC地址和MAC帧的格式 前面我们提出了两个问题中第一个是在总线式的广播信道中我们如何实现计算机之间一对一的通信?为了在总线上实现一对一的通信我们可以使每一台计算机都拥有一个和其他的计算机不同的地址&#xff…

MAC地址的分类和基本规范

一、MAC地址是什么? MAC地址(Media Access Control Address)是一种硬件地址,也称为物理地址,是用于区分网络中不同设备的唯一标识符。MAC地址长度为48位二进制数,通常以十六进制表示,由6个字节组…

MAC地址格式详解

以太网编址 在数据链路层,数据帧通常依赖于MAC地址来进行数据交换,它如同公网IP地址一样要求具有全球唯一性,这样才可以识别每一台主机。那么MAC地址如何做到这点?它的格式又是什么? MAC地址,英文全称Med…

关于数学模拟软件无法在win10环境下运行的解决办法

由于当时我电脑的操作系统是win7,所以可以直接使用1stopt,但后来放到win10的操作系统中时,1stopt无法打开。下面就来阐述以下解决办法。 (由于win8并非主流的操作系统,所以将不予叙述) 下载好“1stopt”右…

CTP平台之API

CTP平台: 综合交易平台CTP(Comprehensive Transaction Platform)是由上海期货信息技术有限公司(上海期货交易所的全资子公司)开发的期货交易平台,CTP平台以“新一代交易所系统”的核心技术为基础&#xff…

vnpy: 在Ubuntu系统上编译vn.py CTP接口

一、本人按照以下过程在docker容器里使用python3.7编译成功了,具体容器编译环境(python,gcc)如下图: 为以后sopt编译做准备吧 以下为参考:https://zhuanlan.zhihu.com/p/83732424 交易接口支持 目前2.0版…

讲 透Object.prototype.toString.call()

Object.prototype.toString.call() 这个方法是用来判断数据类型的,主要用到的知识点是原型,原型链,toString(),call toString 每个对象都有一个 toString() 方法,当该对象被表示为一个文本值时,或者一个对象以预期的…

DeepSort 解读

1 摘要 DeepSort是在Sort目标追踪基础上的改进。引入了在行人重识别数据集上离线训练的深度学习模型,在实时目标追踪过程中,提取目标的表观特征进行最近邻匹配,可以改善有遮挡情况下的目标追踪效果。同时,也减少了目标ID跳变的问…

总结SPOT系列卫星发射情况

SPOT系列卫星是法国空间研究中心自1978年开始立项研制的对地观测卫星系统,自1986年成功发射SPOT 1卫星以来,该系列卫星获得了大量全球卫星观测影像数据,应用于测图、土地利用等诸多领域。目前共发射SPOT 1-7共7颗卫星,其发射时间及…

hive 修改cluster by算法_疯狂Hive之DML操作(四)

DML操作 Load 在将数据加载到表中时,Hive不会进行任何转换。加载操作是将数据文件移动到与Hive表对应的位置的纯复制、移动操作。 语法结构: load data [local] inpath ‘filepath’ [overwrite] into table tablename [partition(par2val1,par2val2....…

RT-Thread Studio学习(十一)IIC

RT-Thread Studio学习(十一)IIC 一、简介二、新建RT-Thread项目并使用外部时钟三、设置AT24Cxx的驱动框架四、驱动代码移植五、测试六、总结 一、简介 本文将基于STM32F407ZGT芯片介绍如何在RT-Thread Studio开发环境下访问AT24C256模块。 操作系统&am…

从根上理解操作系统(二)

目录 进程 1、进程到底是什么 2、怎么知道时间片用完的 3、进程切换 4、进程初始化 5、任务堆栈 6、系统调用 进程 程序是一个可执行文件,而进程是一个执行中的程序实例,所以可以认为 进程 进程资源 执行序列 利用分时技术,在操作系统…

【ubuntu18.04】meson 安装 及python升级python3.9

发现openh264 支持meson 发现openh264 支持meson 写的也太简单了完全不知道openh264 到底怎么搞meson看起来支持windows和ubuntu先安装python3 参考大神: 注意:meson安装前必须确认是否已经安装python3.5及以上版本;因为meson依赖于python3和ninja 1 安装python3和ninja:su…

KEAZ128 时钟配置

本文介绍如何用KEAZ128评估版(FRDM-KEAZ128Q80)配置为40MHz core freqency/20MHz bus frequency。 1.了解器件时钟特性 参见NXP KEA128 DS(S9KEA128P80M48SF0.pdf ),可以知道这个MCU最高支持48MHz core frequency. 从KEA128 RM&…

《软件工程》整理

目录 Scrum开发 概念 scrum开发流程 Scrum开发 需求获取(拆分) DevOps Server的CMMI模型对需求的层级划分,Epic(长篇故事)、Feature(特性)、Requirement(需求)其中&am…

RTKLIB源码调试.trace文件解析.stat文件解析

.trace文件是调试文件,帮助用户在程序、输入数据时,进行分析的一个很好的提示! .trace文件的生成、trace文件内容的生成,均在execses中! 以单点定位为例,大体流程为: 生成.trace文件&#xf…

sopt:一个简单的python最优化库

sopt:一个简单的python最优化库引言 最近有些朋友总来问我有关遗传算法的东西,我是在大学搞数学建模的时候接触过一些最优化和进化算法方面的东西,以前也写过几篇博客记录过,比如遗传算法的C语言实现(一):以非线性函数求极值为例和C语言实现粒子群算法(P…

python古诗词生成_Python一日一练02----诗词生成器

要求 编写一段程序,可以自动生成小诗。 格式如下 源码 import random import sys articles ["the", "a", "another", "her", "his"] subjects ["cat", "dog", "horse", "m…

LSTM古诗词生成

Le LSTM古诗词生成 一、简介 基于LSTM的古诗词生成,设计神经网络模型,使模型学习数据是6291首古诗,没有专门的验证数据和测试数据,感觉不会预测正确。边学习边生成古诗,从生成的古诗来看学习的效果。 涉及到的模块有Py…

宋词自动生成

利用宋词语料库,通过单双词的组合与模板的匹配,实现指定词牌宋词的生成 import random import tkinter as tk import re from tkinter import messageboxlist []class Window:# 界面设计def __init__(self, root):label1 tk.Label(root, text输入词牌…