IP地址的定义和含义
IP的定义
ip 是32位无符号整数,最小,最大分别是
- 0.0.0.0 - 255.255.255.255 具体来说,由一个ip由 Net-ID+Host-ID 两部分组成,Net-ID 相同,那么就说明在一个网段内,可以用mac数据帧直接通信。
给定一个Net-ID
- host-ID全为0的ip,(192.168.2.0)代表整子小网络,
- host-ID全为1的ip,是这个子网络的广播地址
ip总共就32个字节,当 HostID 所占用的位越大,亦即 HostID 数量越多时,表示同一个网络内可用以设定主机的 IP 数量越多
国际NIC组织把ip分成5类
- Class A : 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的开头是 0
|--net--|---------host------------| - Class B : 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的开头是 10
|------net-------|------host------| - Class C : 110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的开头是 110
|-----------net-----------|-host--| - Class D : 1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的开头是 1110
- Class E : 1111xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的开头是 1111
class D用作特殊用途,class E保留,因此,能够用来设定在一般系统上面的,就只有 Class A、B、C 三种等级的IP。
Netmask
这个数值就是用一种很直观的方式表明Net-ID/Host-ID各有多少位
netmark的定义非常简单,netmask 也是 32 位,在数值上,位于 Net-ID 的为 1 而 Host-ID 为 0
例如一个常见的C类IP地址
net-id=24位,host-id=8位,拥有2**8-2=254个ip
一个传统的c类网络,比如 192.168.10.0,它的netmark是必然是255.255.255.0 如果在把这个网络分成2个子网络,很简单,设定net-id使用25位,host-id就只有7位了 那么这个时候的 netmark= 255.255.255.1 0000000 = 255.255.255.128,这次划分得到的两个子网分别是
- 129.168.10.0/25
- 192.168.10.128/25
python 自带的bin函数,可以非常方便的把int转换为二进制字符串表示
很显然,/25
就是标示 这个ip中net-id 占用的位数(这2个ip的host-id全部为0,所以这两个ip代表的是其所在的子网络)
这种表示方法很好计算子网络的规模,例如
- 192.168.0.0/27 表示2的5(32-27=5)次方-2(每个网段的第一个和最后一个地址都被特殊用途占用)=62个ip
- 192.168.0.0/28,表示2的4(32-28=4)次方-2=30个ip
所以 192.168.1.1/24 标示的是一个子网络192.168.1.0(拥有254个ip地址: 从192.168.1.1到192.168.1.254)
最新文章
- android SDK 离线下载更新
- CSS定位类型
- iPad 控件 UIPopoverPresentationController 使用 iPhone可用
- HDU4430 Yukari's Birthday(枚举+二分)
- 【转】AngularJS 取消对 HTML 片段的转义
- Porter/Duff,图片加遮罩setColorFilter
- ZooKeeper架构设计及其应用要点
- 要期末了搞不了OI了额……
- ios-遍历和排序
- dir:一行代码,提取出所有视频文件名称及路径
- cocos3.2版本中的一些新特性
- easyui源码翻译1.32--Messager(消息窗口)
- Kooboo 加Search功能 必须先ReBuild Index Data
- cocos2d-x增加控制台程序代码
- 判断是否为ie(包含ie11)
- Android自定义Notification并没有那么简单
- 微信小程序之swiper组件高度自适应
- vue.js实战——计算属性
- CKEditor富文本编辑器
- Spring+SpringMVC+MyBatis整合应用