当前位置: 首页 > news >正文

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

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

例子

在这里插入图片描述

相关文章:

  • 【C/C++】我自己提出的数组探针的概念,快来围观吧
  • shardingsphere调优日记
  • 【源码】人力资源管理系统hrm功能剖析及源码
  • git 快速将当前目录添加仓储
  • 性能工具之 JMeter 常用组件介绍(五)
  • K-means聚类算法详解与实战
  • Spring中的ContextPath总结
  • Python应用开发——30天学习Streamlit Python包进行APP的构建(7)
  • Python实现逻辑回归与判别分析--西瓜数据集
  • BizDevOps全局建设思路:横向串联,纵向深化
  • Linux测试服务器端口是否打开
  • gitblit git pycharm 新建版本库及push备忘
  • 【linux】shell脚本中设置字体颜色,背景颜色详细攻略
  • HTTP/3 协议学习
  • 如何利用机器学习算法进行数据分析和挖掘,数据优化、预处理、特征提取等老板吩咐的工作
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【EOS】Cleos基础
  • 2018一半小结一波
  • Javascript 原型链
  • Java面向对象及其三大特征
  • MySQL主从复制读写分离及奇怪的问题
  • node.js
  • ucore操作系统实验笔记 - 重新理解中断
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • vue中实现单选
  • Windows Containers 大冒险: 容器网络
  • 巧用 TypeScript (一)
  • 如何进阶一名有竞争力的程序员?
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 学习笔记TF060:图像语音结合,看图说话
  • 带你开发类似Pokemon Go的AR游戏
  • ​用户画像从0到100的构建思路
  • # SpringBoot 如何让指定的Bean先加载
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • #QT(智能家居界面-界面切换)
  • #Z2294. 打印树的直径
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (二)学习JVM —— 垃圾回收机制
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • ... 是什么 ?... 有什么用处?
  • .net core 的缓存方案
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET Reactor简单使用教程
  • .NET 中让 Task 支持带超时的异步等待
  • .NET编程C#线程之旅:十种开启线程的方式以及各自使用场景和优缺点
  • .net和php怎么连接,php和apache之间如何连接
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复