IP编址(来自YESLAB新网工的笔记)

上层协议类型

  • 概念:通常指的是位于网络层(如 IP 层)以上的协议类型,这些协议在数据传输时需要由网络层(或更低层)协议承载。以 IP 协议为例,IP 报文头部中的 协议字段(Protocol Field) 用于标识上层协议类型,该字段告诉网络层(IP 层)接收到数据后应将数据交给哪个上层协议处理。
  • 以太网帧中的Type字段值为0x0800,表示该帧的网络层协议为IP协议。
IP报文头部

1、IP报文头部的核心作用:

  • 告诉网络“数据该去哪”,包含发送方和接收方的 IP 地址(类似快递的发件人和收件人地址)。
  • 指导网络“如何传输”,比如数据是否需要拆分(分片)、传输的优先级、是否有误码等。

2、头部里的关键“信息项”

  • 版本(Version):标明是 IPv4 还是 IPv6 协议(比如 IPv4 用 4,IPv6 用 6),就像快递单上的 “快递类型”(普通快递 / 加急快递)。
  • 头部长度(Header Length):头部本身有多长(因为有些字段是可选的,所以需要标明长度,避免认错后面的数据)。
  • 服务类型(Type of Service):告诉网络数据的优先级(比如视频流需要优先传输,普通文件可以慢一点)。
  • 总长度(Total Lenght):整个包裹(头部 + 数据)的大小,方便接收方知道有没有收全。
  • 标识、标志、片偏移(Identifier、Flags、Fragment Offset):如果数据太大,需要拆分成多个小包传输,这几个信息能让接收方把小包重新拼起来(类似拼图的编号)。
  • 生存时间(TTL,Time TO Live):数据最多能经过多少个路由器(防止数据在网络里无限转圈,比如设置为 64,每经过一个路由器减 1,到 0 就丢弃)。
  • 协议(Protocol):告诉接收方 “包裹里的数据是用什么协议包装的”(比如 TCP、UDP,类似 “里面是易碎品”“里面是文件” 的标签)。
  • 源IP和目的IP(Source/Destination IP):最重要的信息!发送方和接收方的 IP 地址(类似快递单上的具体地址)。

假设你要寄一封信:

  • 信封上的地址、邮编、寄件人信息 → 相当于 IP 报文头部。
  • 信的内容 → 相当于 IP 报文的数据部分。
    快递员(路由器)会根据信封上的地址(IP 地址)决定走哪条路(路由),根据 “易碎品” 标志(头部里的控制字段)决定如何搬运,最终送到正确的地址。
IP地址
  • IP地址被分为网络部分和主机部分
  • 由32个二进制位组成,通常用点分十进制形式表示
IP地址分类

特殊地址与私有地址

  1. 私有地址(内网专用)

    • A 类私有:10.0.0.0~10.255.255.255(即10.0.0.0/8)。
    • B 类私有:172.16.0.0~172.31.255.255(即172.16.0.0/12)。
    • C 类私有:192.168.0.0~192.168.255.255(即192.168.0.0/16)。
    • 特点:这些地址不会在互联网上路由,用于企业或家庭内网,需通过 NAT(网络地址转换)访问外网。
  2. 特殊地址

    • 0.0.0.0:表示 “所有网络” 或 “未指定地址”(如主机启动时未获取 IP)。
    • 255.255.255.255:受限广播地址,数据仅在本地网络广播,不经过路由器。
    • 网络号+主机号全1:如192.168.1.255(C 类网络的广播地址),用于向该网络内所有主机发送广播。

子网掩码(Subnet Mask)

子网掩码是一个 32 位的二进制数(IPv4 中),用于配合 IP 地址划分网络区域,明确标识 IP 地址中的 “网络部分” 和 “主机部分”。它的核心作用是:

  1. 确定 IP 地址属于哪个网络;
  2. 将一个大网络划分为多个小的子网(子网划分),提高 IP 地址的利用率。

一、子网掩码的结构与表示

1. 二进制结构
  • 子网掩码的二进制中,网络部分和子网部分用连续的 1 表示主机部分用连续的 0 表示
    例如:
    • IP 地址:192.168.1.100(C 类地址)
    • 子网掩码:255.255.255.0(二进制:11111111 11111111 11111111 00000000
    • 网络部分:前 24 位(192.168.1),主机部分:最后 8 位(100)。
2. 表示方法
  • 点分十进制:与 IP 地址格式相同,如255.255.255.0
  • 前缀长度(CIDR 表示法):用/后跟网络部分的位数,如192.168.1.0/24(表示前 24 位是网络部分,对应掩码255.255.255.0)。

二、子网掩码的核心作用

1. 区分网络地址和主机地址

通过将 IP 地址与子网掩码按位进行 “与” 运算,得到 网络地址(标识一个具体的子网):

  • 例:IP 192.168.1.100 + 掩码 255.255.255.0
    • 二进制与运算:

      plaintext

      IP:   11000000 10101000 00000001 01100100  
      掩码: 11111111 11111111 11111111 00000000  
      结果: 11000000 10101000 00000001 00000000 → 192.168.1.0(网络地址)  
      
2. 子网划分(Subnetting)

当一个网络需要划分为多个子网时,可从主机位 “借位” 作为子网位,延长子网掩码(增加 1 的位数)。

  • 例:将 C 类网络192.168.1.0/24划分为 2 个子网:
    • 借 1 位主机位作为子网位,掩码变为/25255.255.255.128):
      • 子网 1:网络地址192.168.1.0/25,主机范围192.168.1.1~192.168.1.126(可用 126 个主机)
      • 子网 2:网络地址192.168.1.128/25,主机范围192.168.1.129~192.168.1.254(可用 126 个主机)
3. 路由决策

路由器根据子网掩码判断 IP 地址属于哪个子网,决定数据转发的路径。

三、默认子网掩码(针对 A/B/C 类地址)

在早期分类编址中,不同类别的 IP 地址有固定的默认子网掩码:

IP 地址类别默认子网掩码(点分十进制)前缀长度(CIDR)
A 类255.0.0.0/8
B 类255.255.0.0/16
C 类255.255.255.0/24

注意:默认掩码仅适用于未划分子网的情况。现代网络普遍使用 CIDR,可灵活设置子网掩码(如/20/27等),不再局限于 A/B/C 类的固定划分。

四、特殊子网掩码

  1. 255.255.255.255

    • 所有位都是 1,主机部分为 0,代表 “受限广播地址”(仅在本地网络广播,不经过路由器)。
  2. 0.0.0.0

    • 所有位都是 0,代表 “任意网络”(如主机未配置具体 IP 时,用 0.0.0.0 表示未知网络)。
  3. 非连续掩码(非常规用法)

    • 理论上子网掩码的 1 必须是连续的(如255.255.254.0是合法的,255.255.253.0通常不推荐),但实际中严格要求连续 1 以避免兼容性问题。

五、子网掩码与 IP 地址的关系

  • 网络地址 = IP 地址 AND 子网掩码
  • 广播地址 = 网络地址 OR (子网掩码取反)
    (广播地址用于向子网内所有主机发送数据,主机位全为 1,如192.168.1.255/24网络的广播地址)
  • 可用主机地址范围 = 网络地址 + 1 到 广播地址 - 1

六、为什么需要子网掩码?

  • 解决地址浪费:早期 A/B/C 类地址划分导致大量 IP 浪费(如一个 C 类网络最多 254 台主机,若实际仅需 50 台,剩余地址闲置)。子网掩码允许将大网络划分为小子网,提高地址利用率。
  • 网络隔离:通过子网划分,将一个大网络分割为多个逻辑子网(如企业内部分部门组网),减少广播风暴,增强网络管理和安全性。

子网划分(Subnetting)

子网划分是将一个大的 IP 网络(如 A 类、B 类、C 类网络或自定义的 CIDR 块)通过子网掩码划分为多个更小的子网(Subnet),以便更高效地利用 IP 地址、隔离网络流量、提升管理效率。核心是通过 “借用” 主机位作为子网位,将原网络划分为多个逻辑子网。

一、子网划分的核心目的

  1. 减少广播域:每个子网是独立的广播域,减少网络拥塞。
  2. 提高地址利用率:避免大网络中地址浪费(如仅需 10 台主机的子网,无需占用 254 个地址的 C 类网络)。
  3. 逻辑隔离网络:按部门、功能(如办公区、服务器区)划分,便于管理和安全策略部署。

二、关键概念与公式

1. 核心要素
  • 原网络地址:如192.168.1.0/24(C 类网络,默认掩码255.255.255.0,主机位 8 位,共 254 个可用地址)。
  • 子网位(借位):从主机位中 “借用” n 位作为子网标识,形成子网数量 = 2^n(注:早期 RFC 要求排除全 0 和全 1 子网,现代网络支持全 0 / 全 1 子网,需根据设备配置决定)。
  • 主机位:剩余主机位 m 位,每个子网的可用主机数 = 2^m - 2(减 2 是排除子网网络地址和广播地址)。
2. 公式总结
  • 若需划分 S 个子网,则子网位 n 满足:2^n ≥ S(向上取整)。
  • 若每个子网需 H 个可用主机,则主机位 m 满足:2^m - 2 ≥ H(向上取整)。
  • 子网掩码 = 原网络掩码 + 子网位(如原掩码/24,借 3 位子网位,新掩码为/27)。

三、子网划分步骤(以 C 类网络为例)

场景:将192.168.1.0/24划分为 4 个子网,每个子网最多容纳 50 台主机
  1. 确定子网位和主机位

    • 子网数量:4 个,需子网位 n=2(2^2=4)。
    • 每个子网主机数:50 台,需主机位 m=6(2^6-2=62≥50)。
    • 总借位:n=2 位,原主机位 8 位,剩余 m=6 位主机位。
    • 新子网掩码:/24 + 2 = /26(即255.255.255.192)。
  2. 计算每个子网的网络地址

    • 子网间隔 = 2^m = 64(主机位 6 位,每个子网包含 64 个地址)。
    • 子网 1:网络地址192.168.1.0/26(地址范围0~63,网络地址0,广播地址63,可用1~62)。
    • 子网 2:网络地址192.168.1.64/26(地址范围64~127,可用65~126)。
    • 子网 3:网络地址192.168.1.128/26(地址范围128~191,可用129~190)。
    • 子网 4:网络地址192.168.1.192/26(地址范围192~255,可用193~254)。
  3. 验证可用性

    • 每个子网可用地址 62 个,满足 50 台主机的需求,且 4 个子网地址不重叠。

四、子网划分的两种场景

场景 1:已知子网数量,求每个子网的主机数

例:将10.0.0.0/8划分为 32 个子网

  • 子网位 n=5(2^5=32),子网掩码/8+5=/13255.248.0.0)。
  • 每个子网主机位 = 32-13=19 位,可用主机数2^19-2=524286
场景 2:已知每个子网的主机数,求子网数量

例:有一个172.16.0.0/16网络,每个子网需容纳 200 台主机

  • 主机位 m=8(2^8-2=254≥200),子网掩码/32-8=/24
  • 子网位 = 16-24?不,原网络是/16,需从 16 位后借位:
    实际子网位 = 24-16=8 位(掩码从/16变为/24),子网数量2^8=256个。

五、子网划分中的特殊情况

1. 全 0 子网和全 1 子网
  • 全 0 子网:如第一个子网网络地址为x.x.x.0/26(早期被认为无效,现代网络支持)。
  • 全 1 子网:最后一个子网广播地址为x.x.x.255/26(现代网络也支持)。
  • 是否可用:取决于路由器 / 交换机配置(多数支持,需关闭ip subnet-zero限制,默认已开启)。
2. 可变长子网掩码(VLSM)
  • 若不同子网的主机数差异大(如有的需 100 台,有的需 10 台),可使用 VLSM 为不同子网分配不同掩码,进一步减少地址浪费。
    • :用192.168.1.0/24划分子网:
      • 子网 A(100 台):掩码/25(可用 126 地址)。
      • 子网 B(50 台):掩码/26(可用 62 地址)。
      • 子网 C(10 台):掩码/28(可用 14 地址)。

六、子网划分快速计算表

主机数需求所需主机位 (m)可用主机数 (2^m-2)子网掩码 (CIDR)子网间隔 (2^m)
≤222/304
≤14414/2816
≤30530/2732
≤62662/2664
≤1267126/25128
≤2548254/24256

七、子网划分实战步骤总结

  1. 明确需求:需要多少子网?每个子网最多多少主机?
  2. 计算子网位和主机位
    • 子网位 n:满足2^n ≥ 子网数量(向上取整)。
    • 主机位 m:满足2^m - 2 ≥ 主机数(向上取整)。
  3. 确定子网掩码:原网络掩码 + 子网位(如原/24,借 3 位,新掩码/27)。
  4. 生成子网列表
    • 网络地址 = 原网络地址 + 子网间隔 × 子网号(从 0 开始)。
    • 广播地址 = 网络地址 + 子网间隔 - 1。
    • 可用地址范围 = 网络地址 + 1 到 广播地址 - 1。
  5. 验证是否重叠 / 浪费:确保子网地址不重叠,且地址利用率合理。

八、示例:用 VLSM 划分复杂网络

需求:公司有 4 个部门,主机数分别为 100、50、20、10 台,使用192.168.1.0/24地址块。

  1. 按主机数从大到小划分
    • 100 台:需/25(126 地址,子网 1:192.168.1.0/25)。
    • 50 台:需/26(62 地址,子网 2:192.168.1.128/26)。
    • 20 台:需/27(30 地址,子网 3:192.168.1.192/27)。
    • 10 台:需/28(14 地址,子网 4:192.168.1.224/28)。
  2. 剩余地址192.168.1.240/28(14 地址,预留扩展)。

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

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

相关文章

SpringBoot学习(过滤器Filter。拦截器Interceptor。全局异常捕获处理器GlobalExceptionHandler)(详细使用教程)

目录 一、过滤器Filter。 1.1定义与规范。 1.2工作原理与范围。 1.3使用场景。 1.4 SpringBoot实现过滤器。&#xff08;Filter配置2种方式&#xff09; <1>注解配置(WebFilter、Order、ServletComponentScan)。 创建过滤器类。 启用 Servlet 组件扫描。 <2>配置类…

c++题目_P1443 马的遍历

P1443 马的遍历 # P1443 马的遍历 ## 题目描述 有一个 $n \times m$ 的棋盘&#xff0c;在某个点 $(x, y)$ 上有一个马&#xff0c;要求你计算出马到达棋盘上任意一个点最少要走几步。 ## 输入格式 输入只有一行四个整数&#xff0c;分别为 $n, m, x, y$。 ## 输出格式 …

清华《数据挖掘算法与应用》K-means聚类算法

使用k均值聚类算法对表4.1中的数据进行聚类。代码参考P281。 创建一个名为 testSet.txt 的文本文件&#xff0c;将以下内容复制粘贴进去保存即可&#xff1a; 0 0 1 2 3 1 8 8 9 10 10 7 表4.1 # -*- coding: utf-8 -*- """ Created on Thu Apr 17 16:59:58 …

HarmonyOS-ArkUI V2工具类:AppStorageV2:应用全局UI状态存储

AppStorageV2是一个能够跨界面存储数据,管理数据的类。开发者可以使用AppStorageV2来存储全局UI状态变量数据。它提供的是应用级的全局共享能力,开发者可以通过connect绑定同一个key,进行跨ability数据共享。 概述 AppStorageV2是一个单例,创建时间是应用UI启动时。其目的…

打靶日记 zico2: 1

一、探测靶机IP&#xff08;进行信息收集&#xff09; 主机发现 arp-scan -lnmap -sS -sV -T5 -p- 192.168.10.20 -A二、进行目录枚举 发现dbadmin目录下有个test_db.php 进入后发现是一个登录界面&#xff0c;尝试弱口令&#xff0c;结果是admin&#xff0c;一试就出 得到加…

使用Java基于Geotools的SLD文件编程式创建与磁盘生成实战

前言 在地理信息系统&#xff08;GIS&#xff09;领域&#xff0c;地图的可视化呈现至关重要&#xff0c;而样式定义语言&#xff08;SLD&#xff09;文件为地图元素的样式配置提供了强大的支持。SLD 能够精确地定义地图图层中各类要素&#xff08;如点、线、面、文本等&#x…

kubernetes》》k8s》》Service

Kubernetes 中的 Service 是用于暴露应用服务的核心抽象&#xff0c;为 Pod 提供稳定的访问入口、负载均衡和服务发现机制。Service在Kubernetes中代表了一组Pod的逻辑集合&#xff0c;通过创建一个Service&#xff0c;可以为一组具有相同功能的容器应用提供一个统一的入口地址…

【HDFS】EC重构过程中的校验功能:DecodingValidator

一、动机 DecodingValidator是在HDFS-15759中引入的一个用于校验EC数据重构正确性的组件。 先说下引入DecodingValidator的动机,据很多已知的ISSUE(如HDFS-14768, HDFS-15186, HDFS-15240,这些目前都已经fix了)反馈, EC在重构的时候可能会有各种各样的问题,导致数据错误…

现代c++获取linux系统架构

现代c获取linux系统架构 前言一、使用命令获取系统架构二、使用c代码获取系统架构三、验证四、总结 前言 本文介绍一种使用c获取linux系统架构的方法。 一、使用命令获取系统架构 linux系统中可以使用arch或者uname -m命令来获取当前系统架构&#xff0c;如下图所示 archuna…

didFinishLaunching 与「主线程首次 idle」, 哪个是更优的启动结束时间点 ?

结论先行 在这两个候选时间点里—— application:didFinishLaunchingWithOptions: 执行结束主线程第一次进入 idle&#xff08;RunLoop kCFRunLoopBeforeWaiting&#xff09; 若你只能二选一&#xff0c;以「主线程首次 idle」作为 启动结束 更合理。它比 didFinishLaunchin…

Vue3 + TypeScript中defineEmits 类型定义解析

TypeScript 中 Vue 3 的 defineEmits 函数的类型定义&#xff0c;用于声明组件可以触发的事件。以下是分步解释&#xff1a; 1. 泛型定义 ts <"closeDialog" | "getApplySampleAndItemX"> 作用&#xff1a;定义允许的事件名称集合&#xff0c;即组…

树莓派超全系列教程文档--(34)树莓派配置GPIO

配置GPIO GPIO控制gpio 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 GPIO控制 gpio 通过 gpio 指令&#xff0c;可以在启动时将 GPIO 引脚设置为特定模式和值&#xff0c;而以前需要自定义 dt-blob.bin 文件。每一行都对一组引脚应用相同的设…

AladdinEdu(H卡GPU算力平台)使用教程: 1)注册与开通流程 2)插件使用流程

一、注册与开通流程 首先进入AladdinEdu官网&#xff1a;AladdinEdu-同学们用得起的H卡算力平台-高效做AI就上Aladdin 完成注册&#xff0c;并进行学生认证&#xff1a;学生认证账户&#xff0c;认证期间享受教育优惠价。 登录官网进入控制台 二、插件使用流程 VScode中…

精益数据分析(6/126):深入理解精益分析的核心要点

精益数据分析&#xff08;6/126&#xff09;&#xff1a;深入理解精益分析的核心要点 在创业和数据驱动的时代浪潮中&#xff0c;我们都在不断探索如何更好地利用数据推动业务发展。我希望通过和大家分享对《精益数据分析》的学习心得&#xff0c;一起在这个充满挑战和机遇的领…

2.深入剖析 Rust+Axum 类型安全路由系统

摘要 详细解读 RustAxum 路由系统的关键设计原理&#xff0c;涵盖基于 Rust 类型系统的路由匹配机制、动态路径参数与正则表达式验证以及嵌套路由与模块化组织等多种特性。 一、引言 在现代 Web 开发中&#xff0c;路由系统是构建 Web 应用的核心组件之一&#xff0c;它负责…

运筹学之模拟退火

目录 一、历史二、精髓思想三、案例与代码实现 一、历史 问&#xff1a;谁在什么时候提出模拟退火&#xff1f;答&#xff1a;模拟退火算法&#xff08;Simulated Annealing&#xff0c;SA&#xff09;是由斯图尔特柯尔斯基&#xff08;Scott Kirkpatrick&#xff09; 等人在 …

android测试依赖

Android 项目中常用的测试相关库 1. androidx.arch.core:core-testing:2.2.0 作用&#xff1a; 提供与 Android Architecture Components&#xff08;如 LiveData、ViewModel&#xff09;相关的测试工具。主要用于测试基于 LiveData 的异步操作。 常见功能&#xff1a; 即时…

stack,queue和priority_queue

1. stack 1.1 stack 的介绍 栈是一种容器适配器&#xff0c;专门设计用于LIFO环境&#xff08;后进先出&#xff09;&#xff0c;其中元素仅从容器的一端插入和提取。 容器适配器&#xff0c;也就是使用特定容器类的封装对象作为其底层容器&#xff0c;提供一组特定的成员函…

MinnowBoard MAX单板UEFI BIOS代码编译教程

此教程用于UEFI EDK2代码的研究&#xff0c;虽然EDK2框架代码开源&#xff0c;但是都是在模拟器上跑仿真&#xff0c;差点意思&#xff0c;搞过嵌入式的应该有一个共识&#xff0c;是骡子是马&#xff0c;你得把板子点亮啊。MinnowBoard MAX单板是intel10多年前发布的软硬件全部…

AI Transformers 架构体系 权重文件类型 safeterson和gguf格式转换【2-1】

模型权重文件&#xff1a;存储训练好的模型参数,也就是w和b&#xff0c;是模型推理和微调的基础 .pt、.ckpt、.safetensors、gguf 配置文件&#xff1a;确保模型架构的一致性&#xff0c;使得权重文件能够正确加载 config.json、generation_config.json 词汇表文件&#xff1a;…