【知识拓展】大白话说清楚:IP地址、子网掩码、网关、DNS等
前言
工作中常听别人说的本地网络是什么意思?同一网段又是什么意思?它俩有关系吗?
在工作中内经常会遇到相关的网络问题,涉及网络通信中一些常见的词汇,如IP地址、子网掩码、网关和DNS等。具体一点:经常会遇到A服务器与B服务器无法连接,而网络管理人员只会跟你说看一下网关配置、是否存在网闸、防火墙等等。
基于此,个人对于此类知识进行简单拓展,不深入,目的是工作中能进行基本使用和与网络管理人员顺利沟通。(顺便吐槽下:个人认为,工作中面向不同专业的人,说大白话是沟通顺畅的基础,比如在公司报销时,你问财务需要什么,财务跟你说增值税专用发票、增值税普通发票、记账联、抵扣联、发票联、税务发票和财政票据等词汇却不举例说明那类费用需要什么票,还反问你这么简单都不懂你烦不烦)。
IP
什么是ip
IP地址是由数字和点组成的字符串,用于标识网络中的唯一设备。每个连接到互联网的设备都必须有一个IP地址,否则无法上网。其基本格式通常为四个数字组,如“192.168.1.1”。
ip格式和组成
ip格式
ip地址长度为32bit,即4个字节(byte)。我们都知道1byte=8bit,可以表示2的8次方,即0~255。
所以ip表示形式有两种:
点分十进制:192.168.1.1(常用,方便人理解)
二进制表示:11000000101010000000000100000001(即每个数转换成一个8位的2进制数。颜色仅仅为了区分显示每个数,没有其他含义)
ip组成
IP地址由网络号和主机号组成,网络号相同的主机称之为本地网络,网络号不相同的主机称之为远程网络主机。远程网络中的主机要相互通信必须通过网关(Gateway)来传递转发数据。下面详细说明:
IP地址由网络号和主机号组成。
即ip的32bit即4个字节,是由网络号和主机号共同组成的。那么哪部分属于网络号,哪部分属于主机号呢?ip地址有如下规定:
IP地址可以分为A类、B类、C类、D类和E类:
每段IP地址的首尾两个地址是做为网段地址和网段广播地址使用的,不能做为主机地址使用(所以下述主机数都-2,如192.168.1.0和192.168.1.255都不能作为主机地址使用);
0.0.0.0是一个特殊用途的IP地址,通常在网络上下文中指代“所有地址”或“任何地址”、以0开头的其他IP地址(如0.0.0.1)也被保留用于特殊用途,并且不应分配给网络上的设备。例如,0.0.0.0/8块被保留用于设备在尚不知道自己的IP地址时进行自我识别,0.0.0.0/32块用于表示默认路由。(A类网络-1);
127.0.0.0网段,留做本机网卡测试。(A类网络-1)
A类网络(大型网络): 网络号是8位,第1位是0,主机位是24位。A类是大型网络,网络地址数量较少,有126(2^7-2)个网络,主机数2^24-2。
B类网络(中型网络): 网络号是16位,前两位是10,其他位随意变化,主机位是16位,主机数2^16-2。B类网络地址适用于中等规模的网络,有16384个网络。
C类网络(小型网络): 网络号是24位,前三位是110,其他位随意变化 ,主机位是8位,C类网络地址数量较多,有2097152个网络。适用于小规模的局域网络主机数2^8-2=254。
D类网络(组播): 前四位是1110,其他位随意变化。
**E类网络(用于研究):**前五位是11110,其他位随意变化。保留用于研究和将来使用。
网络号相同的主机称之为本地网络,网络号不相同的主机称之为远程网络主机,本地网络中的主机可以直接相互通信。
C类网络(小型网络)为例:
ip地址192.168.1.1和192.168.1.2就是本地网络。
ip地址192.168.1.1和192.168.2.2就是远程网络。
思考一个问题:本地网络中的主机可以直接相互通信,这句话是对的吗?
答案:不一定!
再思考一个问题:同一网段的主机可以直接相互通信,这句话是对的吗?
要了解这个问题,我们还需要了解子网掩码
子网掩码
什么是子网掩码
子网掩码用来指明一个ip地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。
子网掩码的作用
子网掩码一定是配合IP地址来使用的。子网掩码工作过程是:将32位的子网掩码与IP地址进行二进制形式的按位逻辑与运算得到的便是网络地址,将子网掩码二进制按位取反,然后IP地址进行二进制的逻辑“与”(AND)运算,得到的就是主机地址。
这里我是这么理解的,子网掩码+ip确定了当前机器所在的网段。
例如:一台机器ip是192.168.1.1,子网掩码是255.255.255.0
IP地址192.168.1.1转换为二进制是11000000.10101000.00000001.00000001,
子网掩码255.255.255.0转换为二进制是11111111.11111111.11111111.00000000。
进行逐位按位与运算:将IP地址与子网掩码进行逐位按位与(AND)运算。这个运算会比较两个数字的每一位,只有当两位都是1时,结果才是1,否则结果是0。IP地址192.168.1.1和子网掩码255.255.255.0进行按位与运算的结果是11000000.10101000.00000001.00000000。点分十进制:
192.168.1.1和255.255.255.0进行运算,根据上述红字部分,可知255与任何数计算都是这个数本身,0与任何书计算后都是0. 结果为:192.168.1.0
综上,该机器在子网中的的网络地址是192.168.1.0,主机地址是1
完成这个问题后再继续。
ip是192.168.3.2,子网掩码是255.255.0.0,网络地址是多少?主机地址又是多少?
答:网络地址:192.168.0.0 主机地址:3.2
子网掩码划分
前面说的255.255.255.0这种称为默认子网掩码。下表列出了A类、B类和C类网络的默认子网掩码。
除了默认的子网掩码,子网掩码是可以自定义划分的,看如下例子:
- CIDR:( Classless Inter-Domain Routing,元类域间路由选择).我们需要了解这种网络表示法。形式如:192.168.10.32/28。前面的数字是我们的网络地址,后面的28表示用28位来表示网络位,用32-28=4位来表示主机位。通过这种记法,我们能明确两个信息:
- 网络地址:192.168.10.32
- 子网掩码:255.255.255.240
通过下表我们能明确子网掩码和斜杠表示法之间的关系
其中/8-/15只能用于A类网络,/16-/23可用于A类和B类网络,而/24-/30可用于A类、B类和C类网络。这就是大多数公司都使用A类网络地址的一大原因,因为它们可使用所有的子网掩码,进行网络设计时的灵活性最大。
子网掩码案例
- CIDR:255.255.255.192 (/26),使用子网掩码255.255.255.192对网络192.168.10.0进行子网划分。 网络地址=192.168.10.0 子网掩码=255.255.255.192
- 下面来看如下问题及答案:
- 多少个子网? 在192(11000000)中,取值为1的位数为2,因此答案为2^2=4个子网。
- 每个子网多少台主机?有6个主机位的取值为o(11000000),因此答案是2^6-2=62台主机。
- 有哪些合法的子网? 256 -192 = 64。所以子网的步长[增量]为64,因此子网为0、64、128和192
- 每个子网的广播地址是什么? 在下一个子网之前的数字中,所有主机位的取值都为1,是当前子网的广播地址。对于子网0,下一个子网为64,因此其广播地址为63。以此类推。
- 合法的主机地址有哪些? 合法的主机地址为子网地址和广播地址之间的数字。要确定主机地址,最简单的方法是写出子网地址和广播地址,这样合法的主机地址就显而易见了。
下面我分别使用图表和图画来更形象的展示这五大问题的答案。
最后看子网的划分图。
网段
通常指的是一个计算机网络中使用同一物理层设备能够直接通信的部分。判断两个IP地址是否在同一网段的方法通常是比较它们的网络地址是否相同。
再来看之前的问题:
本地网络中的主机可以直接相互通信,这句话是对的吗?答案肯定是不对。
192.168.1.1和192.168.1.2如果子网掩码不一样,那么肯定是无法通信的。
同一网段的主机可以直接相互通信,这句话是对的吗?答案是对。
网关
远程网络中的主机要相互通信必须通过网关来传递转发数据,意味着在两个分隔的网络之间进行数据传输时,需要依赖网关这个中介点来完成。
首先,网关(Gateway)是一个网络通信的节点,它作为不同网络或子网之间的桥梁,负责将一个网络中的数据包转发到另一个网络。在没有路由器的情况下,即使两个网络连接在同一台交换机或集线器上,如果它们的子网掩码设置导致它们被识别为不同的网络,那么这两个网络中的主机就无法直接进行TCP/IP通信。这时,就需要通过各自网络的网关来实现数据的传递和转发。
其次,当一个网络中的主机需要发送数据到另一个网络中的主机时,它会将数据包发送到自己的网关。然后,这个网关会处理这些数据包,并将它们转发到目标网络的网关。最终,目标网络的网关会将数据包传递给目标主机。这个过程就是所谓的路由,而执行这个功能的设备通常被称为路由器或者层3交换机。
网闸
网闸是一种信息安全设备,用于在两个独立主机系统之间实现物理隔离和数据摆渡。
网闸的主要功能是保护内部网络不受外部网络的直接攻击和入侵。它通过断开网络模型各层来实现物理隔离,确保内外网络之间没有物理连接、逻辑连接以及基于传输协议的信息交换。网闸允许数据以文件形式在两个网络之间进行无协议的摆渡,这样外部攻击者就无法通过网络连接直接对内网造成威胁。
网闸的技术原理主要基于网络模型各层的断开,这意味着它能够在网络的各个层次上阻断潜在的攻击路径。这种技术不仅能够防止外部攻击,还能有效避免内部信息泄露,因为它控制着数据的流向和访问权限。
与防火墙相比,网闸提供了更高级别的安全隔离。防火墙主要是基于特定规则来允许或拒绝网络流量,而网闸则通过完全隔离的方式来阻止未经授权的访问和数据泄露。因此,网闸在电子政务、电子商务等对安全性要求极高的领域得到了广泛应用。
尽管网闸在安全性方面表现出色,但它也有一些缺点,比如结构复杂,可能会增加系统的维护难度和成本。此外,由于网闸的隔离特性,它可能会限制网络间的通信效率和灵活性。
总的来说,网闸是一种重要的网络安全设备,它在保护内部网络免受外部威胁的同时,也支持必要的数据交换。在选择使用网闸时,需要根据具体的安全需求和网络环境来权衡其优势和潜在的局限性。
隔离网闸如何确保数据在内外网之间安全传输:
1. 物理隔离:网闸在任意时刻都只与内部或外部网络中的一个连接,确保内外网之间不存在实时的网络连接。这种物理断开状态防止了任何基于网络协议的攻击和数据泄露。
2. 非TCP/IP的数据摆渡:网闸不依赖TCP/IP或其他网络通信协议来传输数据。相反,它使用非网络方式(如通过文件)来在内外网之间摆渡数据,这样即使外部网络遭受攻击,也不会影响内部网络的安全。(可以理解数据被暂时存入到网闸中了)
3. 专用硬件设备:网闸通常使用专用的硬件设备(如固态介质、电子开关等)来控制数据的流向,这些设备具有高度的安全性和可靠性,能够有效防止数据泄露和攻击。
4. 访问控制:网闸实现了细粒度的访问控制,包括用户认证、数据加密、内容过滤等,以确保只有授权的数据才能在内外网之间传输。
5. 审计与监控:网闸还提供了详细的日志记录和监控功能,能够帮助管理员追踪和监控所有通过网闸的数据流,以便及时发现和处理潜在的安全威胁。
相关文章:

【知识拓展】大白话说清楚:IP地址、子网掩码、网关、DNS等
前言 工作中常听别人说的本地网络是什么意思?同一网段又是什么意思?它俩有关系吗? 在工作中内经常会遇到相关的网络问题,涉及网络通信中一些常见的词汇,如IP地址、子网掩码、网关和DNS等。具体一点:经常会…...
Java 高级面试问题及答案2
Java 高级面试问题及答案 问题 1: 请解释 Java 中的多线程和并发的区别,并举例说明如何避免常见的并发问题。 答案: 多线程是指程序中有多个线程同时执行,而并发是指程序设计中允许多个操作看起来是同时执行的,即使它们可能不是…...

2024年网络安全威胁
随着2024年的到来,数字世界的版图正在以前所未有的速度扩张,引领我们进入一个技术革新的新时代。然而,这飞速的发展同时也催生了一系列错综复杂的网络安全挑战。在这个数字平台与我们生活日益紧密交织的时代,深入了解这些新兴的威…...

应用层之 HTTP 协议
HTTP 协议 HTTP (全称为 "超文本传输协议") 是一种应用非常广泛的 应用层协议。所谓 "超文本" 的含义, 就是传输的内容不仅仅是文本(比如 html, css 这个就是文本), 还可以是一些 其他的资源, 比如图片, 视频, 音频等二进制的数据。浏览器获取到网页&#…...

解决Word文档中页眉有部分有,有部分没有的问题
问题描述:一个Word文档中,在页眉上添加文档名称和页码,但是有的有,有的没有,选择“链接到前一节”也无法解决该问题。 原因分析:页眉页脚中,勾选了“首页不同”的选项,如下图&#…...

Python爬虫基础知识学习(以爬取某二手房数据、某博数据与某红薯(书)评论数据为例)
一、爬虫基础流程 爬虫的过程模块化,基本上可以归纳为以下几个步骤: 1、分析网页URL:打开你想要爬取数据的网站,然后寻找真实的页面数据URL地址; 2、请求网页数据:模拟请求网页数据,这里我们介…...

JavaScript-输入输出语句
输出语句 document.write( 输出的内容 ) 语法:document.write( 输出的内容) 作用:内容会显示在网页上 如果输出的内容是标签,也会被解析为网页元素 代码: <!DOCTYPE html> <html lang"en"> <head>&…...
peft+llama3训练自定义数据
要微调自己的模型训练 LLaMA 3,则需要准备一个 JSON 格式的数据集,其中每个条目包含输入文本和相应的标签(如果有的话)。以下是一个 JSON 数据集的示例格式: [{"input": "这是一个输入样本。",&q…...

vue+ts+vite+pinia+less+echarts 前端可视化 实战项目
1.初始化前端 输入 npm init vuelatest 命令 然后 选择需要的插件2.构建完成后 在终端切换到vue-project文件夹下 npm install 下载依赖 3.下载 less样式 npm install less less-loader -D 4.下载axios npm install axios 5.下载echarts npm install echarts -S 6.引入中国…...

文心一言指令多样化,你知道的有哪些?
文心一言的指令非常多样化,可以根据用户的需求和场景进行灵活调整。以下是一些常见的文心一言指令示例: 知识问答: 帮我解释一下什么是芯片?中国的历史上有哪些重要的朝代?人工智能在未来会有哪些发展趋势?…...

QT状态机8-使用恢复策略自动恢复属性
当状态分配的属性不再活动时,可能希望将其恢复到初始值,通过设置全局的恢复策略可以使状态机进入一个状态而不用明确制定属性的值。 QStateMachine machine; machine.setGlobalRestorePolicy(QStateMachine::RestoreProperties);当设置了恢复策略以后,状态机将自动恢复所有…...

第83天: 代码审计-PHP 项目RCE 安全调试追踪代码执行命令执行
案例一:CNVD拿1day-RCE命令执行-百家CMS 这里用代码审计系统搜索system,可以利用的是第一种 打开看细节 查找函数引用 查找$_file第一次出现的地方 这个时候就明白了,必须上传文件,然后利用文件名,去执行system命令 …...
学习Uni-app开发小程序Day8
前面几天,学习了vue的button组件、input组件,vue模版语法、计算属性等,在昨天又根据前面学习的,跟着做了一个小的购物车功能,今天学习了侦听器和计算属性 计算属性 computed computed是一个只读的状态,如果要修改…...

OpenHarmony标准设备应用开发(二)——布局、动画与音乐
本章是 OpenHarmony 标准设备应用开发的第二篇文章。我们通过知识体系新开发的几个基于 OpenHarmony3.1 Beta 标准系统的样例:分布式音乐播放、传炸弹、购物车等样例,分别介绍下音乐播放、显示动画、动画转场(页面间转场)三个进阶…...
mysql字段乱序 information_schema
select COLUMN_NAME from information_schema.columns where table_namecollect_column_info and table_schema nz; 返回ASCII排列 导致 sqoop import \ --connect "jdbc:mysql://your_host/collect" \ --username your_username \ --password your_password \ --t…...
使用php和redis实现分布式锁
实现分布式锁是在分布式环境中确保资源独占性的重要手段。在这里,我将使用 PHP 和 Redis 来展示如何实现基于 Redis 的分布式锁。 首先,我们需要使用 Redis 的 SET 指令来尝试获取锁,并设置一个过期时间,确保锁不会永久存在。在 …...

大龄程序员是否要入职嵌入式python岗位?
在开始前我有一些资料,是我根据网友给的问题精心整理了一份「Python的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 是否要做嵌入式 Python 取决于…...

STL—string类(1)
一、string类 1、为什么要学习string? C语言中,字符串是以\0结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP(面向对象…...

科技查新中化工领域查新点如何确立与提炼?案例讲解!
我国化工科技查新工作始于1985年,至今经历了30多年的发展。化工类课题包含化工、炼油、 冶金、能源、轻工、石化、环境、医药、环保和军工等, 具有物质种类繁多、制备工艺复杂等特点。因此,本文结合化工查新项目实例,总结提高化工…...

国网698.45报文解析工具
本文分享一个698.45协议的报文解析工具,此报文解析工具功能强大,可以解析多种国网数据协议。 下载链接: https://pan.baidu.com/s/1ngbBG-yL8ucRWLDflqzEnQ 提取码: y1de 主要界面如下: 本工具内置698.45数据协议, 即可调用word…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...

初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...