bit byte
1byte = 8bit
ipv4
32 bit二进制
ip地址 := {<网络号>,<主机号>}主机号>网络号>
点分十进制
每8bit => 十进制数字
IP段
- A类IP段 0.0.0.0 到127.255.255.255
- B类IP段 128.0.0.0 到191.255.255.255
- C类IP段 192.0.0.0 到223.255.255.255
默认分配的子网掩码每段只有255或0
- A类的默认子网掩码 255.0.0.0 一个子网最多可以容纳 \(2^{24}-2\) 1677万多台电脑
- B类的默认子网掩码 255.255.0.0 一个子网最多可以容纳6万台电脑
- C类的默认子网掩码 255.255.255.0 一个子网最多可以容纳254台电脑
子网掩码 & IP地址=网络标识 网络标识一样,那么属于同一网段
私有网段
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
ip/num CIDR
/num 是子网掩码表示方法 表示1的个数
1 |
|
ip有13位 num 取值范围[13,32] 总个数 2**(32-num)
前缀越短,包含地址数越多
1 |
|
路由
通过目标主机连接的网络号来转发分组 通过路由表跳到下一个地方
子网
报文结构
ipv6
128 bit 在
IPv6单个段落内可重复压缩,比如上述可压缩为2001:0:0:0:11:0:0:10/64;若多个段落连续为0,可压缩 ,但只能压缩一次,比如上述可进一步压缩为2001::11:0:0:10/64,或者2001:0:0:0:11::10/64,通常为前者
程序里面通常与端口结合写法[::]:port
- ::1 => 127.0.0.1
- :: => 0.0.0.0
只要你想访问IPv6互联网,就必须要在终端上配置IPv6地址
用到的一些协议也有不同 icmp6 DHCPv6 等
生成方式
被这玩意坑过
ip util
1 |
|
当网段主机数很大的时候要获取网段第一个地址和最后地址通过min max
会很慢
1 |
|
1 |
|
1 |
|