IP协议详解
目录
Internet地址结构
表示IP地址
目前的IP版本有4和6。
目前最流行的就是IPv4,有十进制和二进制两种表示方法。分别是:
点分四组十进制。每一组范围是[0~255],如:255.255.255.255
二进制。如:11111111 11111111 11111111 11111111
IPv6地址长度是128位,
由8块(或8个字段)组成,每一块都包含四个16进制数,每块由冒号分隔。
有以下特点:
1、一个块中前导的0不必书写。
2、全0的块可以省略,并用符号::代替。
3、IPv6可以兼容IPv4地址,即可以用IPv6格式表示IPv4地址。
表示方式为:IPv6块值为ffff,其后面紧跟“点分四组”的格式。如:
::ffff:10.0.0.1
可以代表IPv4:10.0.0.1
4、IPv6的低32位通常采用点分四组(就是上面那样)的表示法。
基本的IP地址结构
分类寻址
IPV4被分为五大类:ABCDE
A类为:点分四组中的第一组地址范围为0~127的IP地址。已二进制来看就是“首位为0”
B类:128~191.二进制首位为10
C类:192~223.二进制首位为110
D类:224~239.二进制首位为1110
E类:240~255.二进制首位为1111
子网寻址
如上可以看出,IP地址值存在两个子结构:网络号和主机ID,但这样就出现了一个问题。就是分配ip地址很麻烦。(即网络信息中心要负责每一台主机的ip地址分配,这样就太繁杂了。)。
于是就将ip地址从两级分成了三级:网络号、子网ID、主机ID
划分子网ID的方法是从“原有的主机号中借用若干位”作为子网号。(当然,主机号就减少了)
网络信息中心集中分配每一个网络号。
然后各个站点的管理人员再分配他们网络号下的子网ID和对应的主机ID。然后管理员在安排每一个子网下面的主机数。
子网掩码
在ip地址传播的时候,可以根据二进制首位的格式判断其属于第几类网,也就爱能判断其网络号有多少位。
但ip地址本身并没有包含任何关于子网划分的信息,所以光凭ip地址无法知道“其是如何划分子网的”。
于是就出现了子网掩码,和ip地址配套着出现,用来说明“该ip地址的子网ID是那几位数”。
图示如下:
以二进制来看子网掩码,只有“连续的1”或“连续的0”。IP子网掩码的长度和他所对应的IP地址长度一样(即32位和128位)。
其中的“1”对应的是ip中的“网络号”和“子网号”,“0”对应的是ip中的“主机号”。
将ip地址与子网掩码进行“按位与”运算,就能得出用于路由的“子网标识符”,如:
ip地址: 128.32.1.14 对应二进制:10000000 00100000 00000001 00001110
掩码地址: 255.255.255.0 对应二进制:11111111 11111111 11111111 00000000
子网标识符 128.32.1.0 对应二进制:10000000 00100000 00000001 00000000
通过上面的运算我们可以看出:128.32.1.14这个地址属于子网“128.32.1.0”。
以上面的各个ip地址为例,整个流程可以如下所示:
1、某个站点申请到了一个B类网的网络号:128.32.x.x
2、然后该站点的管理员决定使用“255.255.255.0”作为该站点的子网掩码。这样就该站点有多少个子网划分好了
(一旦决定使用该子网掩码,通过计算就能知道,将该站点划分了256个子网,每个子网里有254台主机(因为每个子网的第一个和最后一个地址无效))
3、然后为每一个子网中的主机都安排好ip地址。
4、假设现在有一个访问,请求访问ip地址128.32.1.14
5、先根据该ip地址的二进制前几位,发现该地址是一个B类网,所以网络号有16位,也就是说128.32是它的网络号。于是根据网络号128.32找到该站点。
6、该站点边界路由器将该ip与子网掩码进行“按位与”运算,发现子网标识符为128.32.1.0(即128.32.1,后面的.0不存在,因为每个子网的第一个和最后一个地址无效)
7、找到子网128.32.1后,再根据.14找到主机。
广播地址
之前我们讲到了,每个子网的第一个和最后一个地址无效。这个无效更多的是指“这两个地址不是指向的某个真实的主机”。
上面的子网掩码计算完后,得到的是“子网掩码.0”,此处的“.0”(子网的第一个地址),意味着该ip地址不指向某一个主机,而是表示“子网标识符”。
而“.255”(子网的最后一个地址),则也“不是指向”255主机,而是表示了“该子网下的所有主机”。从而引出了广播地址。
IP网络上发送信息都是要有准确的ip地址的,假设要给“统一网络下的”10台主机发信息,那么就得写10个精准的ip地址。
而利用广播地址,我们就能通过一条ip地址,将信息发送给某个子网下的所有主机。
即:只写出网络号和子网号,而将主机ID部分用.255代替。
想要计算一个站点的广播地址也要用到子网掩码,计算方法如下:
1、首先将站点的子网掩码“取反”(1变0,0变1)。
2、然后与站点ip地址进行“按位或”运算(1或0的1,0或0的0,1或1得1)。
3、这样就既能保留网络号和子网号的地址,然后又能将主机号部分替换为255。
前缀(CIDR)
因为现有IPV4地址已经耗尽,所以制定了一个前缀方案。
即:将ip地址的某些位固定住,剩余的为可设置为0和1的任意组合。(比如值固定住第一位,那么后面又能有好多种组合出来的ip)。
CIDR是没有分类只说的(也就是说带有前缀的ip地址,不属于ABCDE里面的任何一类)。
之前ABC的网络号被限制为8位、16位、24位
而CIDR的网络号由前缀来控制,如222.80.18.18/25,其中“/25”表示其前面地址中的前25位代表网络号,其余位数代表主机ID。
写法是在现有的点分四组后面加上"/前缀"
如:128.0.0.0/24
特殊用途地址
某些地址被用于特殊用途所以不会被分配。
比较为人们所熟知的是127.0.0.1,指向本机。实际上整个127段都是主机回送地址。
也就是说127.0.0.0/8是特殊地址(前缀8将127框住,后面可随意组合)。127.0.0.1~127.255.255.255之间的地址都会回送本机。
组播地址:
组播IP地址使用的是D类网。
使用组播IP地址作为目的地址,已加入“组”的所有主机都将接收发送到该组的任何数据报。
发送方甚至不知道有多少主机接收到数据报。