python全栈学习笔记(二)网络基础之子网划分
阅读目录
一.ip地址基本知识
1.1 ip地址的结构和分类
根据tcp/ip协议,连接在internet上的每个设备都必须有一个ip地址,他是一个32位二进制数,也可以用点分十进制表示,每八位一组,用一个十进制表示即0~255,每组用"."分隔开,例如172.16.45.10
ip地址表示

将ip地址中的网络位和主机位固定下来后,ip地址被分成了不同的积累:A类,B类,C类,D类,E类


1.2 特殊ip地址
- 网络地址:用于表示网络本身,具有正常的网络号部分,而主机号部分全部为0的ip地址称之为网络地址,如172.16.45.0就是一个B类网络地址
- 广播地址:用于向网络中的所有的设备进行广播。具有正常的网络号部分,而主机号部分全为1(即255)的ip地址称之为广播地址,如172.16.45.255就是一个B类的网络地址
- 有限广播地址:指的是32位全位1(即255.255.255.255)的ip地址,用于本网广播
- 回送地址:网络地址不能以十进制的127作为开头,在地址中数字127保留给系统作为诊断用,称为欢送地址,如127.0.0.1用于回路测试
- 私有地址:只能在局域网内使用,不能在internet上使用的ip地址称为私有ip地址,私有ip地址有:
- 10.0.0.0~10.255.255.255,表示一个A类地址
- 172.16.0.0~172.31.255.255,表示16个B类地址
- 192.168.0.0~192.168.255.255,表示256个C类地址
- 0.0.0.0:指已经不是真正意义上的ip地址,它表示的是所有不清楚主机和目的网络,这里的不清楚指的是在本机路由表里没有特定条目指明如何到达
1.3 子网掩码
- 子网掩码用于识别ip地址中的网络地址和主机地址。
- 子网掩码也是32位二进制数字,在子网掩码中,对应于网络地址部分全用1表示,主机部分全用0表示
- 还可以用网络前缀表示子网掩码,即"/<网络地址位数>",如172.16.45.0/24表示B类网络172.16.45.0的子网掩码为255.255.255.0

1.4 ip地址申请
https://www.processon.com/mindmap/57fdad47e4b08d4fe9b3d7e2

二.子网划分
2.1 子网划分概念
子网划分是通过借用ip地址的若干位主机位来充当子网地址的从而将原来的网络分为若干个彼此隔离的子网实现的

注意:
- arp协议通过ip地址获取目标主机的mac地址这一过程使用的是广播的方式,这个广播地址就是通过子网地址于子网掩码计算而来的,只有计算出的这一子网内的主机才能收到这个arp广播包
- 子网划分与vlan都可以做到隔离广播域,只是子网划分是三层隔离,二vlan是二层

2.2 c类子网划分初探

2.3 子网划分步骤
- 确定要划分的子网数以及每个子网的主机数
- 求出子网数目对应的二进制的位数N及主机数目对应的二进制数的位数M
- 对该ip地址的原子网掩码,将其主机地址部分的前N位置1(其余全部置0)或后M位置0(其余全置1)即得出该ip地址划分子网后的子网掩码
2.4 子网划分案例
给C类网络211.168.10.0划分5个子网
2**2-2<5<2**3-2所以需要3位网络号,主机号为8-3=5
子网掩码为255.255.255.224
每个子网可容纳2**5-2=30台主机

2.5 划分子网注意事项
- 在子网划分时不仅需要考虑目前需要,还应该了解将来需要多说子网和主机。子网掩码使用较多的主机位,可以得到更多子网,节约了ip地址资源,若将来需要更多的子网时,不用再重新分配ip地址,但每个子网的主机数量有限;反之,子网掩码使用较少的主机位,每个子网的主机数允许有更大的增长,但可用子网数有限
- 一般来说,一个网络中的节点数太多,网络会因为广播通信而饱和,所以网络中的主机数量的增长是有限的,也就是说,在条件允许的情况下,应将更多的主机位用于子网位
2.6 为何要子网划分及其优点
2.6.1 为什么要子网划分:
Internet组织机构定义了五种IP地址,用于主机的有A、B、C三类地址。其中A类网络有126个,每个A类网络可能有16,777,214台主机,它们处于同一广播域。而在同一广播域中有这么多结点是不可能的,网络会因为广播通信而饱和,结果造成16,777,214个地址大部分没有分配出去,形成了浪费。而另一方面,随着互连网应用的不断扩大,IP地址资源越来越少。为了实现更小的广播域并更好地利用主机地址中的每一位,可以把基于类的IP网络进一步分成更小的网络,每个子网由路由器界定并分配一个新的子网网络地址,子网地址是借用基于类的网络地址的主机部分创建的。划分子网后,通过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。
很简单的说 就是,一个公司不可能使用254个公网地址,A公司想用6个地址,B公司也想用6个地址,如果把这两个公司的地址都放在一个大网段里面,这两个公司的地址就能够直接互通
2.6.2 子网划分优点
- 减少网络流量
- 提高网络性能
- 简化管理
- 易于扩大地理范围
python全栈学习笔记(二)网络基础之子网划分的更多相关文章
- python全栈学习笔记(一)网络基础之网络协议篇
阅读目录 一.操作系统基础 二.网络通信原理 2.1 互联网的本质就是一系列的网络协议 2.2 osi七层协议 2.3 tcp/ip五层模型讲解 2.3.1 物理层 2.3.2 数据链路层 2.3.3 ...
- python全栈学习笔记(三)网络基础之网络设备及架构介绍
- python全栈学习路线
python全栈学习路线-查询笔记 查询目录 一,硬件 十一,数据 ...
- PHP全栈学习笔记18
php基础知识,JavaScript,jQuery,ajax基础知识 linux基础知识,mysql数据库的基础与优化 程序设计,PHP框架基础知识,算法,逻辑思维,高并发 PHP基础知识 引用变量, ...
- 网络基础-- 之 子网划分 and 一些基础解释
子网划分的核心思想就是------ 借主机为为网络位 最近几天--看了一下今天就分享一波. 首先我们先来理解一下 ----- one. 进制的转换 ----- two. IP地址 -- ...
- Python全栈开发:django网络框架(二)
Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行 ...
- 老男孩Python九期全栈学习笔记3
day3 1.上周五内容回顾 格式化输出:%s %d %%:输出% 编码: ASCII码只能显示英文.数字和特殊字符. Unicode:万国码,最开始使用16位表示一个字符,中文不够,后来使用4个字节 ...
- 老男孩Python九期全栈学习笔记4
---恢复内容开始--- day4 1.作业回顾 1.有变量name = 'aleX leNb',完成如下操作: 1)移除 name 变量对应的值两边的空格,并输出处理结果 2)移除 name 变量左 ...
- python全栈学习--day4
列表 说明:列表是python中的基础数据类型之一,它是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: 1 li = ['alex',123,Ture,(1,2,3,'wu ...
随机推荐
- C# 字符串转枚举类型
Enum.Parse(typeof(枚举类型), 字符串类型) 如:在Unity中, Enum.Parse(typeof(SystemLanguage), "Chinese")
- Mysql技术内幕笔记
mysql由以下几个部分组成: 连接池组件 管理服务和工具组件 sql接口组价 查询分析器组价 优化器组价 缓存(cache)组价 插件式存储引擎 物理文件. 可以看出,MySQL数据库区别于其他数据 ...
- SQL Server 保留关键字
Microsoft SQL Server 2005 使用保留关键字来定义.操作或访问数据库.保留关键字是 SQL Server 使用的 Transact-SQL 语言语法的一部分,用于分析和理解 Tr ...
- vue2.0修饰符sync用法
如果子组件是一个弹窗,我们想通过点击关闭按钮来关闭子组件弹窗,子组件弹窗的v-show由变量isVisible控制,这个变量通过props由父组件来注入, 而子组件无法改变props里面的变量的值,但 ...
- (转)nginx location在配置中的优先级
原文:https://www.bo56.com/nginx-location%E5%9C%A8%E9%85%8D%E7%BD%AE%E4%B8%AD%E7%9A%84%E4%BC%98%E5%85%8 ...
- SpringBoot1.5.2安装配置--1.5.2版本问题
简述下java环境 1.安装jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm ...
- selenium+Python(鼠标和键盘事件)
本篇总结了 web 页面常用的一些操作元素方法,可以统称为行为事件有些 web 界面的选项菜单需要鼠标悬停在某个元素上才能显示出来(如百度页面的设置按钮). 1 简单操作 1.点击(鼠标左键)页面按钮 ...
- Vim改装成一个IDE编程环境
1 写在前面 Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个 ...
- Ubuntu 下常用的命令 简略记录
# 动态显示 NVIDIA watch -n 1 nvidia-smi #查看某一目录下文件的总数(不包含子目录) ls -l | wc -l #挂载硬盘或者U盘 mount /dev/sdb1 /m ...
- PHP返回404状态码,由服务器处理
1. 通过header()方法来实现, 最简单的方法,而且对php的版本没什么限制 <?php header('HTTP/1.1 404 Not Found'); ...