ip、子网掩码、网关、默认网关

2023-10-31

ip

ip地址 = 网络地址 + 主机地址(又称:网络号和主机号),我们把网络号相同的主机称之为本地网络中的主机,网络号不相同的主机称之为远程网络中的主机。本地网络中的主机可以直接相互通信,远程网络中的主机要相互通信必须通过本地网关(Gateway)来传递转发数据。

ip地址主要有A、B、C、D、E五类地址:

  • A类:由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”(网络地址全为0的地址被保留使用)。地址范围是1.0.0.0 到 127.255.255.255,主要分配给大量主机而局域网网络数量较少的大型网络;
  • B类:由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高两位必须是“10”。地址范围是128.0.0.0 到191.255.255.255,一般用于国际性大公司和政府机构;
  • C类:由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。地址范围是192.0.0.0 到223.255.255.255,用于一般小公司校园网研究机构等;
  • D类:第一个字节由“1110”开始。全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。地址范围是224.0.0.0 到 239.255.255.255,又称做广播地址,因此任何第一个字节大于223小于240的IP地址是多点播送地址。
  • E类:由“11110”开始,地址范围是240.0.0.0 到255.255.255.255,暂时保留。

网络地址

计算网络地址就是判断网络中的计算机在不在同一网络,在就能通,不在就不能通,需要借助本地网关的帮助。

将IP地址和子网掩码全部转换为二进制形式,然后二者逐位相与的结果就是网络地址。

IP十进制:192.168.1.1
IP二进制:11000000 10101000 00000001 00000001

子网掩码十进制:255.255.255.0
子网掩码二进制:11111111 11111111 11111111 00000000

网络地址 = IP & 子网掩码
网络地址二进制:11000000 10101000 00000001 00000000
网络地址十进制:192.168.1.0

主机地址

IP与子网掩码的非的结果相与就是主机地址。

IP十进制:192.168.1.1
IP二进制:11000000 10101000 00000001 00000001

子网掩码十进制:255.255.255.0
子网掩码二进制:11111111 11111111 11111111 00000000

主机地址 = IP & (~子网掩码)
主机地址二进制:00000000 00000000 00000000 00000001
主机地址十进制:0.0.0.1

子网

为了确定网络区域,分开主机和路由器的每个接口,从而产生了若干个分离的网络岛,这些独立的网络岛叫做子网(subnet)。

子网掩码

子网掩码的表示方法

(1)点分十进制表示法
二进制转换十进制,每8位用点号隔开。

例如:子网掩码二进制11111111.11111111.11111111.00000000,表示为255.255.255.0

(2)CIDR斜线记法
IP地址/n

例1:192.168.1.100/24,其子网掩码表示为255.255.255.0,二进制表示为11111111.11111111.11111111.00000000

例2:172.16.198.12/20,其子网掩码表示为255.255.240.0,二进制表示为11111111.11111111.11110000.00000000

不难发现,例1中共有24个1,例2中共有20个1,所以n是这么来的。运营商ISP常用这样的方法给客户分配IP地址。

注:n为1到32的数字,表示子网掩码中网络号的长度,通过n的个数确定子网的主机数=2(32-n)-2(-2的原因:主机位全为0时表示本网络的网络地址主机位全为1时表示本网络的广播地址,这是两个特殊地址)。

为什么要使用子网掩码?

子网掩码可以分离出IP地址中的网络地址和主机地址。如果两台主机要通信,首先要判断是否处于同一网段,即网络地址是否相同。如果相同,那么可以把数据包直接发送到目标主机,否则就需要路由网关将数据包转发送到目的地。

可以这么简单的理解:A主机要与B主机通信,A和B各自的IP地址与A主机的子网掩码进行and运算,看得出的结果:

  • 结果如果相同,则说明这两台主机是处于同一个网段,这样A可以通过ARP广播发现B的MAC地址,B也可以发现A的MAC地址来实现正常通信。
  • 如果结果不同,ARP广播会在本地网关终结,这时候A会把发给B的数据包先发给本地网关,网关再根据B主机的IP地址来查询路由表,再将数据包继续传递转发,最终送达到目的地B。

子网掩码的分类

(1)缺省子网掩码
也叫默认子网掩码,即未划分子网,对应的网络号的位都置 1 ,主机号都置 0

未做子网划分的IP地址:网络号+主机号,则:

  • A类网络缺省子网掩码: 255.0.0.0,用CIDR表示为/8
  • B类网络缺省子网掩码: 255.255.0.0,用CIDR表示为/16
  • C类网络缺省子网掩码: 255.255.255.0,用CIDR表示为/24

(2)自定义子网掩码

将一个网络划分子网后,把原本的主机号位置的一部分给了子网号,余下的才是给了子网的主机号。其形式如下:

做子网划分后的IP地址:网络号+子网号+子网主机号,举个例子:

  • 192.168.1.100/25,其子网掩码表示:255.255.255.128,意思就是将192.168.1.0这个网段的主机位的最高1位划分为了子网。

网关

计算机的网关(Gateway)就是到其他网段的出口,也就是路由器接口IP地址。路由器接口使用的IP地址可以是本网段中任何一个地址,不过通常使用该网段的第一个可用的地址或最后一个可用的地址,这是为了尽可能避免和本网段中的主机地址冲突

在如下拓扑图示例中,A与B,C与D,都可以直接相互通信(都是属于各自同一网段,不用经过路由器),但是A与C,A与D,B与C,B与D它们之间不属于同一网段,所以它们通信是要经过本地网关,然后路由器根据对方IP地址,在路由表中查找恰好有匹配到对方IP地址的直连路由,于是从另一边网关接口转发出去实现互连。

在这里插入图片描述

默认网关

默认网关地址是主机位除了最后一位全置1后得到的

假设现有一个ip地址为193.6.7.0/24,根据网络前缀24可知前24位为网络位,后8位为主机位,因此该网络的默认网关地址就是IP地址193.6.7.11111110(加粗的部分为网络位),换算成十进制数即193.6.7.254/24。

一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。现在主机使用的网关,一般指的是默认网关。一台电脑的默认网关是不可以随随便便指定的,必须正确地指定,否则一台电脑就会将数据包发给不是网关的主机,从而无法与其他网络的主机通信。默认网关的设定有手动设置和自动设置两种方式。

(1)手动设置
手动设置适用于电脑数量比较少、TCP/IP 参数基本不变的情况,比如只有几台到十几台电脑。因为这种方法需要在联入网络的每台电脑上设置“默认网关”,非常费劲,一旦因为迁移等原因导致必须修改默认网关的 IP 地址,就会给网管带来很大的麻烦,所以不推荐使用。

在 Windows 9x 中,设置默认网关的方法是在“网上邻居”上右击,在弹出的菜单中点击“属性”,在网络属性对话框中选择“TCP/IP协议”,点击“属性”,在“默认网关”选项卡中填写新的默认网关的 IP 地址就可以了。

需要特别注意的是:默认网关必须是电脑自己所在的网段中的 IP 地址,而不能填写其他网段中的 IP 地址。

(2)自动设置

自动设置就是利用 DHCP(Dynamic Host Configuration Protocol, 动态主机配置协议)服务器来自动给网络中的电脑分配 IP 地址、子网掩码和默认网关 。这样做的好处是一旦网络的默认网关发生了变化时,只要更改了 DHCP 服务器中默认网关的设置,那么网络中所有的电脑均获得了新的默认网关的 IP 地址。这种方法适用于网络规模较大、TCP/IP 参数有可能变动的网络。另外一种自动获得网关的办法是通过安装代理服务器软件(如MS Proxy)的客户端程序来自动获得,其原理和方法和 DHCP 有相似之处。由于篇幅所限,就不再详述了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ip、子网掩码、网关、默认网关 的相关文章

  • gforth 是否包含网络套接字功能?

    通常 在学习语言时 我会编写某种类型的服务器 做gforth https github com forthy42 gforth有能力使用网络套接字吗 我没有看到任何有关套接字的信息手册 https www complang tuwien a
  • UDP数据包可以分割成几个较小的数据包[重复]

    这个问题在这里已经有答案了 如果UDP数据包超过MTU 是否可以将其分成几个较小的数据包 MTU 碎片似乎与 IP 层有关 所以我认为可以 如果是这样 建议的最大值是多少 通过 UDP 发送以避免碎片的数据包大小 为什么 任何大于 MTU
  • 如何通过互联网使用 MQTT?

    目前 我正在成功运行一个 mosquitto 代理 订阅主题并与本地网络中的客户端发布消息 如何与位于不同 IP 地址的另一个本地网络进行通信 我应该设置 2 个 mosquitto 经纪人 每个本地网络一个吗 其他本地网络中的 PC 需要
  • 具有 IP 限制的 API 密钥与 HTTP Referrer 限制

    我有一个谷歌地图 api 密钥设置为 HTTP Referrer 限制 还启用了地理编码 api 并在三个插件中使用 但另一个插件 预订 也需要地理编码 api 但带有 IP 限制 这就是为什么我收到错误 具有引用限制的 API 密钥不能与
  • ai_socktype 不支持 Servname

    我正在使用 Vagrant 运行 Centos 虚拟机 机器似乎运行正常 但是当我尝试同步 Perforce 时 我可以看到以下错误 vagrant vagrant c5 x86 64 perforce p4 sync f Perforce
  • Rails - 如何获取访问者的IP地址?

    我需要将访问者的 IP 地址存储到我们的数据库中 这是我尝试执行此操作的方法 ip request remote ip ip request env REMOTE ADDR 但在这两种情况下 ip变量存储值127 0 0 1 即使我将应用程
  • 使用掩码验证 IP 的 HTML5 模式

    我正在尝试为输入文本创建一个 HTML5 模式 其中包含 IP 地址和掩码 如下所示 10 120 15 30 28 或 172 181 30 0 24 我发现了一种 html5 模式http html5pattern com Miscs
  • Apache proxypass 缓存的 IP 地址

    我使用 Apache Web 服务器 2 4 通过 proxypass 指令将传入的 HTTP 请求代理到我们的后端服务器 我还通过 Apache 传递来自后端服务器的传出请求 再次使用 proxypass 例如 lt Location o
  • 如何在 Windows 命令行中将变量设置为 IP?

    有没有一种简单的方法可以从我的服务提供商处获取 IP 地址并通过命令提示符将其放入变量中 像下面这样 SET hostIP nslookup address ECHO hostIP Or SET hostIP ipconfig addres
  • 如何防止在 Cloudflare 上暴露源 IP 地址?

    在 Cloudflare DNS 设置页面上 它指出An A AAAA CNAME or MX record is pointed to your origin server exposing your origin IP address
  • 如何在MySQL中找到当前用户连接的IP地址?

    在您回答 use current user 这在很多情况下都有效 或 use user 这实际上不起作用 之前 请阅读以下内容 我正在尝试在表上创建一个视图 该视图限制用户对表中某些行的访问 并由用户连接的 IP 地址控制 我的第一次尝试是
  • 如何使用python2.7获取公共IP?

    如何使用python2 7获取公共IP 不是私有IP 目前有几种选择 ip 42 pl jsonip com httpbin org ipify org 以下是您可以利用上述各项的具体方法 ip 42 pl from urllib2 imp
  • 将 IP 地址与 IP 范围匹配?

    我有一个 MySQL 表设置如下 Field Type Null Key Default Extra ipaddress s varchar 15 YES MUL NULL ipaddress e varchar 16 YES NULL
  • Windows XP 中的 inet_pton 或 InetPton 等价物是什么?

    我需要确定特定字符串是否是有效的 IPv4 或 IPv6 地址文字 如果我理解正确的话 在 POSIX 系统上执行此操作的正确方法是使用inet pton将其转换为网络地址结构 看看是否成功 Windows Vista 及更高版本有Inet
  • 仅允许特定 IP 地址访问 JSP 文件/文件夹

    我使用 JSP 和 servlet 制作了一个 CMS 应用程序 我没有使用任何类型的框架 CMS 有 2 个部分 前端 管理员 后端 如果我把它托管在www example com 例如 那么我的所有前端站点都会向所有用户显示 But w
  • 基于 IP 和引荐来源网址的 PHP 重定向

    我正在尝试根据用户的 IP 和空白引荐来源网址将我的网络中的用户重定向到我们网站上的特定登录页面 该代码可以工作 但最终会陷入重定向循环 如何打破重定向循环以正确重定向用户 谢谢 visitor SERVER HTTP REFERER cl
  • PHP 如何在没有 system() 或 exec() 的情况下 ping 服务器

    我正在尝试 ping 服务器 但我的主机被禁用exec and system 由于安全原因 是否还有其他选项可以让它工作 或者我是否必须要求我的主机启用它们 我得到的错误 警告 出于安全原因 system 已被禁用警告 出于安全原因 exe
  • 每个域都有唯一的 IP 吗?

    我想知道每个域名地址是否都有唯一的IP地址 此外 这些IP位于哪里 这个重定向系统是如何工作的 当我们尝试通过写入域名来访问网站时 它有多少个重定向 谢谢 否 每个域没有自己的 IP 地址 多个域可以托管在同一台服务器上 并且位于同一 IP
  • Laravel - 获取客户端 IP 地址 - 始终获取 127.0.0.1 结果

    我无法获取客户端的 IP 地址 我需要该地址来确定他的当前位置 我使用了 request gt ip SERVER REMOTE ADDR 并且总是得到 127 0 0 1 结果 这不是我想要的 我究竟做错了什么 有时您的客户端通过代理使用
  • WSO2 API 管理器 - 在商店中显示私有 IP

    我已经安装了 API 管理器 1 6 0 并运行了 API 管理器 但问题是商店内显示的 IP 地址是服务器的私有 IP 私有IP通过VPN访问 以下是在商店中显示为 生产 和 沙箱 URL 的 URL http 192 168 6 162

随机推荐

  • DTO/VO/Entity等数据类型转换

    DTO VO Entity等数据类型转换 在web开发中 前端传递数据给后端时采用DTO类型 而存入数据库时则采用entity类型 这样的操作存在类型转换 如果我们一个一个的设值也就太麻烦了 我们可以采用spring提供的jar包来解决这样
  • 计算机 创新方法举例,列举列举五种创新的方法并加以举例说明

    一 简化模式 在研发新产品时 我们总会不自觉的想要在产品上增加新的特色或功能 导致产品使用起来越发复杂 这样的画蛇添足对产品来说是一种负担 我们要运用简化模式 主要是将产品中多余的属性移除 再增加新功能 例如 手机从键盘按键模式变成触屏的虚
  • mybatisPlus update更新部分字段

    第一种方式 其中 lambdaUpdateWrapper set 表示要更新的字段值 eq 则表示 WHERE 条件 public void updateEntity LambdaUpdateWrapper
  • 人工智能AI生成的艺术:从文本到图像、视频、3D建模

    继去年火遍全网的虚拟人之后 AI绘画又成了今年热议的科技话题 AI绘画就是 以文生图 打通了文字和图像的隔阂 只要输入一段文字描述 AI 就可以把用户脑海中想象的画面呈现出来 这是一种文字转图像 Text to image 特性的崭新交互方
  • 基于SpringBoot的在线教育平台系统

    基于SpringBoot Vue的线教育平台系统 前后端分离 开发语言 Java 数据库 MySQL 技术 SpringBoot Vue Mybaits Plus ELementUI 工具 IDEA Ecilpse Navicat Mave
  • 【专题5: 硬件设计】 之 【69.开关电源 之 如何计算buck电路占空比和电感的计算】

    嵌入式工程师成长之路 系列文章 总目录 系列文章总目录 希望本是无所谓有 无所谓无的 这正如脚下的路 其实地上本没有路 走的人多了 也便成了路 原创不易 文章会持续更新 欢迎微信扫码关注公众号 承接 小程序 嵌入式 PC端项目开发 联系作者
  • Apache Kafka Connect JNDI注入漏洞复现(CVE-2023-25194)

    1 产品简介 Kafka Connect是一种用于在Apache Kafka和其他系统之间可扩展且可靠地流式传输数据的工具 它使快速定义将大量数据移入和移出Kafka的连接器变得简单 Kafka Connect可以摄取整个数据库或从所有应用
  • STM32+SG90舵机详解(详细)

    上一次使用舵机只是草草了解 只大概知道是pwm控制的 这次又使用到了舵机 本以为复制上次代码就可以调试成功 没想到却弄了很久 我使用的是STM32f103c8t6 用的是定时器4 这个f1板子的定时器各个通道io口如下图所示 在开始之前我们
  • git push -u origin master

    1 错误描述 出错场景描述 github上创建远程仓库的时候选择添加README md文件 git bash连接远程库 然后执行push操作 出现下面的问题 git push u origin master To github com XX
  • Linux 下存放ssh信息的文件位置

    vi root ssh known hosts root prme stg dhcp1649 StorageJavaAuto cat root ssh known hosts prme stg188 eng vmware com 10 11
  • axure创建网页

    最近发现一个好玩的东西 就是axure了 学习操作了下 弄出了一个简单的搜狗页面还有登录界面 该有的交互也弄了些 感觉挺好玩的 也扒拉下生成了html 好好看看 代码可能有点长 你忍一下qwq
  • Ubuntu小技巧19--Kibana安装方法

    Ubuntu小技巧19 Kibana安装方法 Kibana 是一款开源的数据分析和可视化平台 它是 Elastic Stack 成员之一 设计用于和 Elasticsearch 协作 可以使用 Kibana 对 Elasticsearch
  • c++pointer踩坑记录 (std::move, shared_ptr)

    要实现的需求 拿到一个指向数据的void 指针 用这个指针替换旧对象数据 要求 不额外申请内存 我在这过程中搜过的问题 看的知识点 how to use enum in c use std move to pointer std vecto
  • ElasticSearch中字符串类型(Text和keyword)的选择

    ElasticSearch 5 0以后 字符串类型有重大变更 移除了string类型 string字段被拆分成两种新的数据类型 text和keyword text 会分词 然后进行索引 用于全文搜索 支持模糊 精确查询 不支持聚合 keyw
  • mysql深度剖析一(底层数据结构)

    衍变 二叉树 二叉查找树 容易形成链表 二叉平衡树 可以自动调整高度 但层数容易过高 多路平衡查找树即B树 层数控制了 但每个节点存有数据 导致每个磁盘页存不了多少索引 导致层数升高 传统加强版多路平衡查找树即B 树 每个磁盘页可以存更多索
  • 微服务 熔断示例_Istio作为何时不进行微服务的示例

    微服务 熔断示例 在过去的五年中 我在帮助企业进行云原生之旅方面投入了大量资金 现代化和提高团队 最终是组织 交付基于软件的技术的速度 很大程度上取决于其人员 流程和最终的技术决策 当应用程序体系结构的顶点已成为进行更改和 更快地进行 的瓶
  • 把ubuntu安装在U盘的教程之三:安装ubuntu系统在U盘中

    摘要 本文将详细讲解如何把U盘安装到U盘上 一 工具 1 一台电脑 2 一个U盘 用于安装ubuntu 注 要提前分好区 3 另一个U盘 制作好的ubuntu启动盘 二 安装ubuntu的图文教程 1 把两个U盘插进电脑 如果电脑有两个以上
  • linux运维基础视频教程免费分享!

    linux运维基础视频教程免费分享 linux运维即linux运维工程师 Linux是一套免费使用和自由传播的类Unix操作系统 是一个基于POSIX和UNIX的多用户 多任务 支持多线程和多CPU的操作系统 它能运行主要的UNIX工具软件
  • WPF的MVVM框架Stylet开发文档 17.设计模式支持

    17 设计模式支持 介绍 设计模式 或 设计时 是指当您的项目加载到 Visual Studio XAML 设计器或 Expression Blend 中时 您将看到 XAML 的渲染版本 大多数时候 设计者不会尝试评估您的任何绑定或为它们
  • ip、子网掩码、网关、默认网关

    这里写目录标题 ip 网络地址 主机地址 子网 子网掩码 子网掩码的表示方法 为什么要使用子网掩码 子网掩码的分类 网关 默认网关 ip ip地址 网络地址 主机地址 又称 网络号和主机号 我们把网络号相同的主机称之为本地网络中的主机 网络