首页 > 编程语言 >Java学习 - 网络IP地址与子网划分 讲解

Java学习 - 网络IP地址与子网划分 讲解

时间:2024-06-23 10:30:15浏览次数:29  
标签:子网 Java 0.0 IP地址 255.255 地址 主机 网段 子网掩码

IP地址

作用
  • 用于决定数据包最终到达哪个计算机
组成
  • 由32位比特组成,即4个字节
  • 这32位可以分为两个部分,称为网络号和主机号
  • 同一网段的计算机网络号相同,路由器负责连接不同的网段,而交换机负责连接同一网段中不同的计算机
  • 同一网段的计算机主机号不同
  • 计算机在和其他计算机进行通信之前需要判断目标IP和自己的IP网络是否相同
    • 相同,则目标MAC地址写目标计算机的MAC地址
    • 不同,则目标MAC地址写本网段的路由器的MAC地址
表示方法
  • 二进制表示法

    11111111.10110011.11101000.10010010

  • 点分十进制法

    192.168.1.122

分类
  • A,B,C:用于日常使用
  • D:用于组(多)播
  • E:保留,目前还没用

在这里插入图片描述

子网掩码

作用
  • 用于计算IP地址的网络号和主机号
组成
  • 表示网络号的位置全1,表示主机号的位置全0
  • 比如C类地址:192.168.1.125,其子网掩码为 255.255.0.0
原理
  • 子网掩码与计算地址进行与计算,全1才1,有0则0
  • 则计算结果网络号原样输出,主机号全为0
分类
  • A类:255.0.0.0
  • B类:255.255.0.0
  • C类:255.255.255.0
  • D类:没有子网掩码
  • E类:没有子网掩码

特殊地址

  • 网段地址:主机号全0
  • 广播地址:主机号全1
  • 回环地址:127.0.0.1,只要装了TCP/IP就行,不需要经过网卡
  • 回送地址:127.x.x.x
  • 冲突地址:0.0.0.0,如果本机的IP和本网段中其他计算机相同(冲突),则为0.0.0.0,子网掩码为0.0.0.0

公网内网

公网
  • 由美国机构 Inter NIC 负责,各国各级 ISP 使用的公网需要向Inter NIC申请
内网
  • 局域网

  • A类:10.0.0.0/255.0.0.0

  • B类:172.16.0.0/255.255.0.0 - 172.31.0.0/255.255.0.0

  • C类:192.168.0.0/255.255.255.0 - 192.168.255.0/255.255.255.0

NAT/PAT
  • 内网地址访问 Internet 需要 NAT/PAT 技术

  • NAT:网络地址转换

    • 所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接
  • PAT:端口地址转换

    • 在使用NAT时,如果只有一个公有IP,而有多个内部IP,这个时候NAT就要通过映射不同的端口来跟踪记录不同的会话
    • 则NAT会将用户A、B、C访问分别映射到1088、1098、23100【举例】,此时实际上就是PAT了

子网划分

概念
  • 子网划分就是利用现有网段的主机号的头几位作为网络号,这些位置称为子网号,子网号的概念只存在于分类编址
作用
  • 减少地址浪费
注意
  • 子网只能等分
  • 主机号全为0不能用,因为这表示网段
  • 主机号全为1不能用,因为这是广播地址
  • 因此能用的主机号范围是 [差点全0,差点全1]
例子

在这里插入图片描述

无分类编制

概念
  • 不分类了,只分网络号和主机号
  • 通过子网掩码确定网络号和主机号
CIDR记法
  • 一个无分类编制的IP地址为

    11100110110010101001010101110101

    含义网络号主机号
    无分类编制IP11100110110010101001010101110101
    子网掩码11111100000000000000000000000000
  • CIDR记法为

    230.202.149.117/6

    其中6表示子网掩码的前6位是1,其他为0

例子

在这里插入图片描述

标签:子网,Java,0.0,IP地址,255.255,地址,主机,网段,子网掩码
From: https://blog.csdn.net/paofuluolijiang/article/details/139773665

相关文章

  • Java学习 - MySQL存储过程、函数和触发器练习实例
    存储过程存储过程是什么存储过程是一组已经编译好的SQL语句存储过程优点有什么安全性能高提高代码复用性创建存储过程的语法DELIMITER$#不能加分号CREATEPROCEDURE存储过程名(IN|OUT|INOUT参数名参数类型)BEGIN存储过程语句块END;$DELIMIT......
  • 纯CSS制作3D动态相册【流星雨3D旋转相册】HTML+CSS+JavaScriptHTML5七夕情人节表白网
    这是程序员表白系列中的100款网站表白之一,旨在让任何人都能使用并创建自己的表白网站给心爱的人看。此波共有100个表白网站,可以任意修改和使用,很多人会希望向心爱的男孩女孩告白,生性腼腆的人即使那个TA站在眼前都不敢向前表白。说不出口的话就用短视频告诉TA吧~制作一个表......
  • 第一百二十节 Java面向对象设计 - Java接口方法
    Java面向对象设计-Java接口方法方法声明您可以在接口中声明三种类型的方法:抽象方法静态方法默认方法在Java8之前,您只能在接口中声明抽象方法。修饰符static和default用于分别声明静态和默认方法。缺少静态和默认修饰符使得方法抽象。以下是具有所有三种类型方法的接口......
  • Java正则表达式
    Java正则表达式1.正则表达式是什么?正则表达式是用于匹配和操作文本模式的工具。它由字符和特殊元字符组成,能够实现强大的文本搜索、验证、替换等功能。2.正则表达式基本语法(1)匹配普通字符匹配数字[0123456789]简写为[0-9]匹配小写字母[a-z]匹配大写字母[A-Z]匹配大小......
  • 9.2JavaEE——JDBCTemplate的常用方法(一)excute()方法
    execute()方法用于执行SQL语句,其语法格式如下:jdTemplate.execute("SQL语句");下面以创建数据表的SQL语句为例,来演示excute()方法的使用,具体步骤如下。1、创建数据库        在MySQL中,创建一个名为spring的数据库。 mysql>createdatabasespring;QueryOK,1......
  • 手把手教你java CPU飙升300%如何优化
    背景今天有个项目运行一段时间后,cpu老是不堪负载。排查top命令TOP命令topt按cpu排序topm按内存使用率排序从上面看很快看出是pid4338这个进程资源消耗很高。top-Hppidtop-Hp4338找到对应线程消耗的资源shft+pcpu占用进行排序,shift+m按照内存排......
  • Java 超详细实现导入导出 (包含时间转换问题和样式)
    序言工作中遇到了导入导出问题,并且出现了导入或导出Excel时间格式变为数字的问题。通过学习解决实现了这些功能,记录总结分享给大家。本文将详细介绍如何使用Java编程语言和ApachePOI库来实现这些功能。我们将通过一个示例项目演示如何从数据库中读取数据并将其导出为Ex......
  • LangChain4j LangChain集成Java
    LangChain4j介绍github地址https://github.com/langchain4j快速开始引入依赖<dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-open-ai</artifactId><version>0.31.0</version></dependency&g......
  • Java解析微信获取手机号信息
    在微信中,用户手机号的获取通常是通过微信小程序的getPhoneNumber接口来实现的。这个接口允许用户在授权后,将加密的手机号数据传递给开发者。由于隐私保护,微信不会直接提供用户的明文手机号,而是提供一个加密的手机号字符串和相应的解密密钥。以下是一个基于Java的示例,展示了如何接......
  • Java高手的30k之路|面试宝典|精通JVM(二)
    JVM基本结构类加载子系统:负责将.class文件加载到内存中,并进行验证、准备、解析和初始化。运行时数据区:包括堆(Heap)、方法区(MethodArea)、Java栈(JavaStack)、本地方法栈(NativeMethodStack)和程序计数器(ProgramCounterRegister)。执行引擎:包括解释器(Interpreter)、即时编译器......