概述
IP地址用于识别和定位整个Internet系统(单播地址)中设备的网络接口。也用于识别多个接口(组播、广播和任播地址)。
一、IP地址表示
IPv4 32位,点位法 0.0.0.0 二进制00000000 00000000 00000000 00000000
IPv6 128位,包含8个块,中间冒号隔开,十六进制表示, 0:0:0:0:0:0:0:1,全0的块可以简写,0:0:0:0:0:0:0:1可以简写成::1,一个IPv4地址中::符号只能用一次
- 前导0必须压缩(例如,2001:0db8::0022 变成2001:db8::22)
- ::只能用于影响最大的地方(压缩最多的零)。如果多个块中包含等长度的零,顺序靠前的块将被替换位::。
- a到f十六进制数字使用小写
IPv6也有二进制表示,直接十六进制转二进制就行(和IPv4类似)。
二、分类寻址
最初定义Internet地址结果时,每个单播地址都有一个网络部分,用于识别接口使用的IP地址在哪个网络中可被发现;以及一个主机地址,用于识别网络部分给出的网络中的特定主机。
现实中不同网络可能有不同数量的主机,每台主机都需要一个唯一的IP地址,一种划分方式是基于当前或预计的主机数量,将不同大小的IP地址空间分配给不同的站点。
IPv4地址空间最初分为五大类。A、B、C类用于为Internet(单播地址)中的接口分配地址,以及其他一些特殊情况下使用。类由地址中的头几位来定义:0为A类地址,10为B类地址,110为C类等。D类地址供组播使用,E类地址保留。
Internet地址分类方法在经历Internet增长(20世纪80年代)的第一个十年中没有变化。此后,它开始出现规模问题,当每个新的网段被添加到Internet中,集中协调为其分配一个新的A类、B类或C类网络号变得很不方便。为解决上述问题,人们想到了子网寻址。
三、子网寻址
通过子网寻址,一个站点被分配一个A类、B类或C类的网络号,保留一些剩余主机号进一步用于站点内分配。该站点可能将基础地址中的主机部分进一步划分为一个子网号和一个主机号。
子网字段和主机字段的定义是由站点指定的(不是由网络号分类决定),一个站点中所有路由器和主机需要一种新的方式,以确定地址中的子网部分和其中的主机部分。
一个IPv4可能的格式:
B类: 网络号(16位) 子网ID(8位) 主机ID(8位)
16位的网络号集中分配,子网ID和主机ID由站点本地管理
3.1 子网掩码
由路由器和主机使用,确定一个IP地址的网络/子网部分的结束和主机部分的开始。掩码由一些1后跟一些0构成(二进制形式)。例如,常见的子网掩码:255.255.255.0 转二进制为11111111 11111111 11111111 00000000
根据子网掩码获取子网
以IPv4地址128.32.1.14为例:
地址: 10000000 00100000 00000001 00001110 128.32.1.14
掩码: 11111111 11111111 11111111 00000000 255.255.255.0(/24)
结果: 10000000 00100000 00000001 00000000 128.32.1.0
ip地址与子网掩码进行按位与操作,以形成用于路由的地址的网络/子网标识符(前缀)。
在这个例子中,IPv4地址128.32.1.14使用长度为24的掩码得到前缀128.32.1.0/24。一个目的地址为128.32.1.14的数据报需要转发到系统所在的子网128.32.1.0/24。(注:掩码转二进制,左起连续位1的个数表示掩码长度。)
另外,在同一站点的不同部分,可将不同长度的子网掩码应用于相同网络号。目前,大多数主机、路由器和路由协议支持可变长度子网掩码(VLSM)。
- VLSM 可变长度子网掩码
用于分割一个网络号,使每个子网支持不同数量的主机。每个路由器和主机除了IP地址,还需要配置一个子网掩码。
3.2 广播地址
每个IPv4子网中,一个特殊地址被保留作为子网广播地址。广播地址构建方式:对子网掩码取反,并与子网中任意计算机的地址进行按位或运算。
还是以128.32.1.14为例
地址: 10000000 00100000 00000001 00001110 128.32.1.14
掩码: 00000000 00000000 00000000 11111111 0.0.0.255
结果: 10000000 00100000 00000001 11111111 128.32.1.255
上面结果显示,子网128.32.1.0/24的子网广播地址是128.32.1.255。
使用这种地址作为目的地的数据报,也被称为定向广播。至少在理论上,这种广播可以作为一个单独的数据报通过Internet路由直至到达目标子网,再作为一组广播数据报发送给子网中所有的主机。
定向广播是一个大问题,从安全角度来看,它们至今在Internet中任被禁用。 路由器现在默认禁止转发定向广播,甚至完全省略支持能力。
除了子网广播地址,特殊用途地址255.255.255.255被保留为本地网络广播(也称为有限广播),它根本不会被路由器转发。
广播地址通常与某些协议一起使用,例如UDP/IP或ICMP,因为这些协议不涉及TCP/IP那样的双方会话。
IPv6没有任何广播地址。广播地址可用于IPv4中,而IPv6仅使用组播地址。
四、其他概念
- 组播地址
标识一组主机接口,而不是单个接口。一个组所覆盖的网络部分称为组的范围。常见范围包括 节点本地(同一计算机)、链路本地(同一子网)、站点本地(使用于一些站点)、全球(整个Internet)和管理(用于一个网络区域内已手动配置到路由器的地址)。 - 任播地址
任播地址是一个单播IPv4或IPv6地址,这些地址根据它所在的网络确定不同的主机。这是通过配置路由器通知Internet中多个站点有相同单播路由实现。一个任播地址不是指Internet中的一台主机,而是对于任播地址“最合适”或“最接近”的一台主机。
其他相关概念可以查看
https://blog.csdn.net/hhy107107/article/details/82854407
位运算不太了解的,可以查看
https://blog.csdn.net/hhy107107/article/details/82801780
[1]TCP/IP详解·卷1:协议 机械工业出版社
最后
以上就是耍酷灯泡为你收集整理的TCP/IP详解(二) -- Internet地址结构的全部内容,希望文章能够帮你解决TCP/IP详解(二) -- Internet地址结构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复