分类
IP通过地址开头判断类型,将以 0
,10
,110
开头的地址分为ABC三类
将ip转换成十进制后
A类地址第一个字节在 0 - 127
之间,
B类地址第一个字节在 128 - 191
之间
C类地址第一个字节在 192 - 223
之间
然后剩下的位被分为网络号与主机号,主机有两个特殊的值:
主机号全部为0
的ip代表一个网段
主机号全部为1
的ip代表广播地址,应用程序可以通过这个ip将信息发送到该网段下的所有主机
子网掩码
IP寻址时还需用到子网掩码,子网掩码与IP等长,由连续的1组成
ip中被子网掩码掩去(对ip进行与运算)的部分将被视为网络号,剩余部分将被视为主机号
如需要划分5个子网,其二进制为101
,这将在ip中占去3
位,3位可以划分出6(2 ^ 3 - 2
)个子网满足5个子网的要求
一个byte中占去前3位后为11100000
,该子网掩码十进制为224
私有地址
tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下:
10.0.0.0/8:10.0.0.0~10.255.255.255
172.16.0.0/12:172.16.0.0~172.31.255.255
192.168.0.0/16:192.168.0.0~192.168.255.255
ip后面的斜线和数字,表示ip的中网络号所占的位数
例如172.16.0.0/12表示将前12位全部作为网络号,效果等同于子网掩码 255.240.0.0
IPv6的地址语法
IPv4 点分十进制:32位地址分为4个8位分组,每个8位写成一个十进制,中间用逗号分隔。
一个IPv6的地址使用冒号十六进制表示方法:128位的地址每16位分成一段,每个16位的段用十六进制表示并用冒号分隔开, 例如:
一个普通公网IPv6地址:2001:0D12:0000:0000:02AA:0987:FE29:9871
IPv6地址支持压缩前导零的表示方法,例如上面的地址可以压缩表示为: 2001:0D12:0:0:2AA:987:FE29:9871
为了进一步精简IPv6地址,当冒号十六进制格式中出现连续几段数值0的位段时,这些段可以压缩为双冒号的表示,例如上面的地址还可以进一步精简表示为: 2001:0D12::2AA:987:FE29:9871
又例如IPv6的地址FF80:0:0:0:FF:3BA:891:67C2可以进一步精简表示为: FE80::FF:3BA:891:67C2
这里值得注意的是:双冒号只能出现一次。