为何电脑要设置网络掩码?

问题描述

既然子网掩码是为了让路由器能够决定一个数据包在局域网内发送还是发到公网,那么按道理只有路由器需要知道子网掩码,为什么在固定IP时每台计算机都需要单独设置子网掩码?有没有什么情况同一局域网内各计算机所设置的子网掩码有不同的?

正文

有一种网络场景,电脑其实不需要要用网络掩码的,这个网络场景就是电脑通过PPP拨号上网。
电脑PPP拨号上网
同学们会很疑惑,为何PPP拨号上网,就不需要网络掩码?
在电脑眼里只有2种通信

  • 自己与自己的通信
  • 与其它电脑的通信

还有吗?没有了!

电脑通过拨号上网获得IP = 6.6.6.6,不需要网络掩码,看看电脑能否判断出是以上哪种通信方式?
简单的二叉树判断逻辑,如果电脑访问 IP = 6.6.6.6,那么就是和自己通信。TCP/IP协议栈将要发送的IP报文在体内循环一下,又被自己接收了回来。
如果电脑访问的IP ≠6.6.6.6,那么就是与其它电脑通信。TCP/IP协议栈将要发送的IP报文,朝着拨号接口的方向向下流动,顺着网线/光纤流动到尽头。至于对端如何处理,压根不需要关心,也关心不了。如同射出去的箭、泼出去的水,天要下雨,女神要嫁人,随她去吧。。。是不是这样?

但是,电脑连入以太网、或无线局域网,却面临着三种通信方式。

  • 自己与自己的通信
  • 与自己相同网段的电脑通信
  • 与除了以上两种的其它电脑通信

这里有三个判断分支,不依靠网络掩码的帮助,单纯依靠对方IP是否和自己相同的时代结束了!

脑连入以太网,获得IP = 6.6.6.6,网络掩码 = 255.255.255.0,网关 = 6.6.6.1,看看电脑是如何完成三个分支的判断逻辑。

自己与自己的通信

电脑访问 IP = 6.6.6.6,那么就是和自己通信,和上文一样的处理。

与自己相同网段的电脑通信

电脑访问 IP = 6.6.6.8,使用网络掩码255.255.255.0的“255.255.255”,从左到右对齐掩盖6.6.6.8,被遮住的数字为“6.6.6”,这个“6.6.6”就是对方的网段,和自己的是相同的

相同网段的通信,需要使用ARP广播获取对方的MAC地址。成功获得之后,TCP/IP协议栈完成了以太网头的封装,就可以将封装好的报文朝着网卡接口的方向向下流动,顺着网线/无线流动出去,最后被对方接收。

与除了以上两种的其它电脑通信

电脑访问IP = 8.8.8.8,使用网络掩码255.255.255.0的“255.255.255”,从左到右对齐掩盖8.8.8…8,被遮住的数字为“8.8.8”,而自己的却是“6.6.6”,很显然8.8.8 ≠6.6.6,这是不同网段的通信。

既然被访问的主机位于另外的网段(广播域),很显然不可能通过ARP广播来发现对方的MAC地址,对吗?

电脑遇到这种情况,唯一的选择就是求助网关。网关的存在价值,就是帮助电脑完成不同网段的通信,否则要你网关有何用啊?

既然求助于网关,需要先知道网关的MAC地址。

网关的网段 = 6.6.6,和自己是一模一样的,所以是相同网段(广播域),那么使用ARP广播就可以获得了。

成功获得了网关的MAC地址,就可以将访问IP = 8.8.8.8的IP报文打包了,目的MAC = 网关的MAC。TCP/IP协议栈就将打包好的报文,朝着网卡接口的方向向下流动,顺着网线/无线流动到网关。

至于网关如何处理,也不需要关心,因为电脑已经成功完成自己的判断逻辑,完成了自己的任务。

网关的历史使命
互联网由亿万万个不同网段(广播域)融合在一起的大型网络,网关通常连接着多个广播域,使得不同广播域主机之间的通信成为可能。

广播报文到了网关,生命就走到了终点。只有单播报文才有可能跨越网关,在不同广播域之间传播!

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

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

相关文章

【C++】泛型编程 ② ( 函数模板与普通函数区别 )

文章目录 一、函数模板与普通函数区别1、函数模板与普通函数区别2、代码示例 - 函数模板与普通函数区别 一、函数模板与普通函数区别 1、函数模板与普通函数区别 函数模板与普通函数区别 : 主要区别在于它们能够处理的 数据类型数量 和 灵活性 ; 自动类型转换 : 函数模板 不允许…

嵌入式Linux开发,NFS文件系统挂载

在嵌入式linix的开发中,经常会需要在pc端和板端互相传输文件,优先可选择ftp传输,但是有些嵌入式板端不支持,只能使用nfs这种方式,即pc端作为服务端,板端作为客户端,将pc端的某个文件夹挂载到板端…

SQL Server进阶知识

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全栈,…

Redis 连接不上 WRONGPASS invalid username-password pair

1.我的RedisDesktopManager 可以连接 但是 Springboot远程使用Redis就是连不上 2.我的密码是 abc123.. 多了英文的 ..符号 在Springboot过不了,所以Redis密码尽量字母数字,不要其他符号

炒现货黄金怎么做?挖掘黄金的投资机会

黄金一直以来都是备受投资者追捧的避险资产,其价值和潜力是无法忽视的。而炒现货黄金作为一种快速获取收益的投资方式,备受关注。那么,如何在炒现货黄金中找到投资机会呢?为您详细解析,简单易懂,帮助您开启…

Java-贪吃蛇游戏

前言 此实现较为简陋,如有错误请指正。 其次代码中的图片需要自行添加地址并修改。 主类 public class Main {public static void main(String[] args) {new myGame();} }游戏类 import javax.swing.*; import java.awt.event.KeyEvent; import java.awt.event.…

032-从零搭建微服务-定时服务(一)

写在最前 如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 源码地址(后端):mingyue: 🎉 基于 Spring Boot、Spring Cloud & Alibaba 的分布式微服务架构基础服务中心 源…

自然语言处理(NLP)-spacy简介以及安装指南(语言库zh_core_web_sm)

spacy 简介 spacy 是 Python 自然语言处理软件包,可以对自然语言文本做词性分析、命名实体识别、依赖关系刻画,以及词嵌入向量的计算和可视化等。 1.安装 spacy 使用 “pip install spacy" 报错, 或者安装完 spacy,无法正…

解决Chrome无法自动同步书签

前提:(要求能正常访问google) 准备一个谷歌账号 安装Chrome浏览器 开启集装箱插件(或者其他能访问谷歌的工具) 步骤:(使用集装箱插件/能正常访问谷歌的其他工具) 下载安装使用“集…

activiti7审批驳回,控制变量无法覆盖,导致无限循环驳回,流程无法结束

项目开发过程中使用工作流,因此考虑使用activiti7做完工作流引擎。项目开发过程中,发现流程驳回时,再次执行流程,控制变量无法覆盖,导致无限循环驳回,流程无法结束。流程图如下图所示: 驳回控制…

node 文件上传操作(前端 form表单上传 formData上传 后端 node 使用express+multer)

目录 前端form表单上传formData上传 后端 node 使用expressmulter 前端 form表单上传 <h1>个人信息</h1><form action"http://localhost:3000/api/sendFile" method"post" enctype"multipart/form-data"><label for"…

Android 如何根据区域高度动态计算最匹配的字体大小

Android 提供了一个 autoSizeTextType 属性来自动调整字体大小&#xff0c;但是它仅适用于 API Level 26 及以上的版本。对于 API Level 25 及以下的版本&#xff0c;可以通过代码计算最佳字体大小来实现动态调整。以下是使用 Kotlin 代码实现的示例&#xff1a; fun getBestFo…

Eclipse打包Springboot项目

首先&#xff0c;在pom.xml文件中添加配置&#xff0c;修改mainClass主函数&#xff1a; <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configurat…

java:基于jjwt写一个jwt工具类

背景 在Java中&#xff0c;使用JWT&#xff08;JSON Web Tokens&#xff09;相关的包通常包括以下内容&#xff1a; jjwt&#xff1a;JJWT是一个非常流行的Java JWT库&#xff0c;它提供了简单易用的API来创建和验证JWT。jose4j&#xff1a;JOSE4J是一个用于处理JSON Web签名…

4+糖酵解+预后模型,结合预后模型为文章加分,思路值得模仿

今天给同学们分享一篇生信文章“A glycolysis-related two-gene risk model that can effectively predict the prognosis of patients with rectal cancer”&#xff0c;这篇文章发表在Hum Genomics期刊上&#xff0c;影响因子为4.5。 结果解读&#xff1a; COAD和READ之间的…

【力扣题:循环队列】

文章目录 一.题目描述二. 思路解析三. 代码实现 一.题目描述 设计你的循环队列实现。 循环队列是一种线性数据结构&#xff0c;其操作表现基于 FIFO&#xff08;先进先出&#xff09;原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好…

基于ssm流浪动物救助管理系统

基于ssm流浪动物救助管理系统 摘要 随着城市化的不断发展&#xff0c;流浪动物问题逐渐凸显&#xff0c;而对流浪动物的救助和管理成为社会关注的焦点。本文基于SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架&#xff0c;设计并实现了一套流浪动物救助管理系统。该系…

excel中用NORM.INV函数计算正态累积分布的逆

NORM.INV函数返回正态累积分布的逆。它的形式为NORM.INV(probability,mean,standard_dev)。 正态累积分布函数和正态概率密度函数互为逆。 参数说明&#xff1a; probability&#xff1a;对应正态分布的累积分布值。例如该值等于0.9&#xff0c;表示累积概率之和是0.9Mean&am…

MacOS Ventura 13 优化配置(ARM架构新手向导)

一、系统配置 1、About My MacBook Pro 2、在当前标签打开新窗口 桌面上创建目录的文件夹&#xff0c;每次新打开一个目录&#xff0c;就会创建一个窗口&#xff0c;这就造成窗口太多&#xff0c;不太好查看和管理&#xff0c;我们可以改成在新标签处打开新目录。需要在&…

【华为内部资料】《高速数字电路设计教材》(可下载)

与数字技术或软件相比&#xff0c;模拟技术人才的培养和造就仍然需要一定的实践和时间&#xff0c;但无论数字技术发展到任何阶段将永远离不开模拟技术。 由于难度系数较大的原因&#xff0c;有时即便投入很多精力&#xff0c;如果缺乏耐心、毅力和必要的条件&#xff0c;投入…