一、IP地址和子网掩码
1、IP地址的用途
IP地址是用于标识特定主机的逻辑地址。为了与Internet上其它设备通信,它必须唯一、不能冲突。
通过Internet发送的每个数据包都有源IP地址和目的IP地址。网络设备必须了解这些地址,才能确保信息到达目的设备、所有应答都能返回源设备。
IP地址将分配给主机上的网络接口卡(即网卡NIC),包括具有网络接口的最终用户设备:工作站、服务器、网络打印机、IP电话及智能手机、平板等。
某些主机有多块网卡(每块都有各自的IP地址)但是有时一块网卡也可以有不止一个IP地址。
2、IPv4地址的结构
IP地址是32个二进制位的数字串。二进制IP地址非常难读难记。故以8位为一组,将这32位划分为四个八位字节,每个八位字节数字用十进制表示,中间用点号分隔,称为点分十进制记法。例如:192.168.1.5
、10.10.10.34
等。
在四个八位字节中,每个数值的范围都是从最小值$0(00000000)_2$到最大值$255(11111111)_2$
32位IP地址由网际协议第4版(IPv4)定义,它是目前Internet上最为通用的IP地址形式。使用32位地址分配方案可产生超过40亿个IP地址。
3、IPv4地址的组成部分
IP地址具有层次性,一般由两大部分组成:前面部分标识主机所在的网络,后面部分标识该网络中特定主机。这两部分在IP地址中缺一不可。
以IP地址为192.168.1.100
的主机为例,一般情况下,前三个八位字节(192.168.1
)标识该地址的网络部分,最后一个八位字节(100)标识该地址的主机部分。这称为分层寻址(先找到网络,再找到主机)。
4、子网掩码和IPv4地址
在配置主机IP地址时,要随IP地址设置子网掩码。IPv4地址的子网掩码的长度也是32位,也采用点分十进制记法。子网掩码用于表明IP地址中:哪一部分代表网络,哪一部分代表主机。
二进制形式的子网掩码从左到右依次与二进制形式的IP地址逐位对比:
- 子网掩码中的“1” :对应IP地址的前面的网络部分(有时还包括所谓的“子网部分”)
- 子网掩码中的“0” :对应IP地址的后面的主机部分
可见,子网掩码一定是形如:前面一串1,后面一串0。例如255.255.255.0
,前24位1对应标识IP地址的网络号(网络ID,即网络部分),后8位0对应标识该IP地址的主机号(主机ID,即主机部分)
例如:IP地址192.168.1.100
,子网掩码255.255.255.0
十进制:网络部分是前面的192.168.1
,主机部分是后面的100
子网掩码非常重要,甚至可以说:子网掩码是IP地址的重要组成部分,一个不带子网掩码的IP地址没有意义!
(1)前缀长度
前缀长度是一种识别IP地址的子网掩码的速记方法。前缀长度=子网掩码中1的位数。(即网络部分的位数)
使用“斜线记法”表示,即“/”紧跟为 1 的位数。三种最常见的子网掩码是"/8 /16 /24"
(2)与子网掩码相关的计算
第一种计算题
计算某一子网掩码对应的某一网络中可存在的主机数量:
- 以$2$为底、以主机部分的位数(子网掩码1的数量)为指数求幂(如$2^8=256$)。
注意:还必须再从结果数字中减$2$(如$2^8 -2=254$),因为:
主机部分全部为0的IP地址是该网络的网络地址,是代表该网络的标志性地址,不能分配给具体的主机;
主机部分全部为1的IP地址是该网络的广播地址,也是一个特殊地址,也不能分配给具体的主机。
第二种计算题
计算网络地址:
- 将主机IP地址与子网掩码先转成二进制形式。
- 逐位与(即逻辑与运算),可得该主机所属网络的网络地址。
其实就是网络部分照写,主机部分全是0。
5、子网掩码与IP地址的用途
当主机发送数据包时,该源主机会拿自身子网掩码与自身IP地址即源IP地址跟目的IP地址比较,网络部分相同,不出去,网络部分不同,出去。
知道了子网掩码,即可定量算出源和目的IP的网络部分再比较:
如果源和目的两个IP地址的网络部分完全相同,或者说两个IP地址所属网络的网络地址相同,则表示源主机和目的主机位于同一网络中,因此数据包只需在本地传送。不出去!
如果不相同,即源和目的属于不同网络,则发送方主机会将数据包转发到本地路由器接口(即默认网关),再由其转发到其它网络 ,直至最终到达目的主机所在的远程网络。出去!
二、IPv4地址的类型
1、IPv4地址类和默认电子掩码
IPv4地址一般分为五类:A类、B类和C类是商业类地址,可分配给主机。D类保留供组播使用,而E类则保留用于实验用途。
- A类地址:仅以一个八位字节表示网络部分,其余三个表示主机部分。默认子网掩码为
255.0.0.0
(/8)。A类地址一般分配给大型组织($2^{24}-2$)。 - B类地址:使用两个八位字节表示网络部分,另两个表示主机部分。默认子网掩码为
255.255.0.0
(/16)。B类地址一般用于中型网络($2^{16}-2$)。 - C类地址:使用三个八位字节表示网络部分,一个表示主机部分。默认子网掩码为
255.255.255.0
(/24)。C类地址通常分配给小型网络($2^8 -2$)。
清华:166.111.*.*
(B类)
北大:162.105.*.*
(B类)
浙大:210.32.*.*
(C类)后来222.205.*.*
(C类)
清华新IP地址范围还包括:59.66
(A类)、183.172
、211.68
、219.224
开头的等
北大新IP地址范围还包括:61.50
(A类)、202.112
、211.71
、211.82
开头的等
浙大新IP地址范围还包括:60.12
、60.190
、60.191
、122.224
开头的等(但极少)
2、公有和私有地址
IPv4地址资源有限,目前已分配殆尽(2011年2月4日全球IP地址的顶级管理部门ICANN宣布最后5个IPv4地址大块被分配殆尽!)延缓IPv4耗尽的一个办法是保留一些私有地址,仅供组织在内部使用。这样,组织内部的主机无需使用公有地址就能够相互通信。
私有地址:不能上Internet,公有地址:可以上Internet
RFC1918标准在A、B、C类中都保留了数个地址范围作为私有地址,包含1个A类网络、16个B类网络和256个C类网络。这为网络管理员分配内部地址提供了极大的灵活性。
除了这些私有地址以外的A、B、C类地址均为公有地址(除特殊专用地址)。
私有地址不能在Internet上路由,其数据包会被ISP的路由器所阻挡。只要组织中的主机不与Internet直接连接,那么这些主机就可在内部使用私有地址。因此,多个组织可使用相同的私有地址集(如10.*
)而不用担心发生IP地址冲突影响通信的问题。
另外,私有地址仅在本地网络中可见,外部人员无法直接访问私有地址(无法直接“看见”如Ping通),因此,使用私有地址也可作为一种安全措施。
3、特殊用户或专用IPv4地址
环回地址:(用于测试网卡及TCP/IP协议安装是否正常)127.0.0.0
/8或127.0.0.1
至127.255.255.254
主机使用这些特殊地址将流量指向其自身。localhost = 127.0.0.1
本地链路地址或自动私有IP编址 (APIPA) 地址:169.254.0.0
/16或169.254.0.1
至169.254.255.254
,Windows主机在没有动态分配IP地址的DHCP服务器给它自动分配IP地址时,使用这样的169.254.*.*
进行自我配置。也就是当自动获取IP地址失败时,自己给自己分配的一个“临时”地址。注:其他操作系统如Linux和OS X在自动获取IP地址失败时不会分配这样的地址。如果看到169.254开头的地址:地址异常,通信一般也异常。
TEST-NET 地址:192.0.2.0
/24或192.0.2.0
至192.0.2.255
这些地址留作教学使用,用于文档和网络示例。
4、网络地址转换
由于Internet上不允许使用私有地址,因此,需要通过某种过程将私有地址转换为公有地址,本地客户端才能在Internet上通信。用于将私有地址转换为可路由的公有Internet地址的过程称为网络地址转换(NAT) 。借助NAT,可将传出数据包的私有源IP地址转换为公有源IP地址。借助NAT,可将传入数据包的公有目的IP地址转换为私有目的IP地址。
一方面对外,无线路由器从ISP处接收分配给它的一般是公有地址(用于其WAN口或称Internet口或称外网口),这使它能够通过Internet发送和接收数据包。另一方面对内,无线路由器又为内网的本地网络客户端提供私有地址,且无线路由器的LAN口也是私有地址。一般情况下,通过NAT,无线路由器将内网的私有地址转换为外网的公有地址(即无线路由器的WAN口地址)。
在某些情况下(如家用无线路由器),无线路由器的WAN口也可以是私有地址,但它与LAN口的私有地址肯定属于不同网络,无线路由器的LAN口和WAN口的IP地址必须属于不同网络,即网络部分不同。
3、单播、广播和组播地址
IPv4地址还可以分为:单播、广播或组播地址。主机可使用这三种地址分别进行一对一(单播)、一对多(组播)或一对所有(广播)的通信。
(1)单播地址
单播地址是IP网络中最常见的类型。含单播目的地址的数据包,其预定的接收方是特定的主机。要发送和接收单播数据,单播目的IP地址必须包含于数据包头中,相应的单播目的MAC地址也必须出现于以太网帧头中。只有IP地址和MAC地址相结合,才能将数据传送到特定的目的主机。
(2)广播地址
发送广播时,数据包以主机部分全1的IP地址作为广播目的IP地址。这表示本地网络(广播域)中的所有主机都将接受和查看该数据包。ARP和DHCP等许多网络协议都使用广播。
例如:C类网络
192.168.1.0
的默认子网掩码为255.255.255.0
,该网络的广播地址为192.168.1.255
。又如:B类网络
172.16.0.0
的默认子网掩码为255.255.0.0
,该网络的广播地址为172.16.255.255
。再如:A类网络
10.0.0.0
的默认子网掩码为255.0.0.0
,该网络的广播地址为10.255.255.255
。
广播还需要在以太网帧中包含相应的广播MAC地址。在以太网中,广播MAC地址中的48位二进制数全部为1,即为FF-FF-FF-FF-FF-FF
。
(3)组播地址
组播地址允许源设备向一组设备发送数据包。例如:远程游戏和视频会议就需用组播地址。
属于某一组播组的设备都指派有该组播组IP地址。组播IP地址范围为224.0.0.0
到239.255.255.255
(D类)。由于组播地址代表一组地址(有时称为主机组),因此只能用作数据包的目的地址。而源地址始终为单播地址。
组播MAC地址是一个特殊的十六进制数:一般以01-00-5E
开头,然后将组播IP地址的低23位换算成MAC地址中剩余的6个十六进制数值,作为组播MAC地址的结尾。如图所示,换算得出十六进制的组播MAC地址01-00-5E-0F-64-C5
。因为组播IP地址的低23位是0001111.01100100.11000101
(相当于15.100.197
去掉最高位0),而换算其实只是将其由十进制、二进制转化为十六进制而已,故得后六位为0F-64-C5
。
三、IPv6地址
1、为什么启用IPv6地址
IPv4 地址空间提供大约4,294,967,296个唯一地址,但其中只有37亿地址是可分配的,因为IPv4编址系统将地址分为数类,并保留了供组播、测试和其它特殊目的使用的地址。
IPv6地址是一个128位的二进制数值,可表示为32个十六进制数字。IPv6地址数量非常巨大 ,即使为地球上每人分配相当于目前整个IPv4 Internet地址空间的地址都还绰绰有余。
2、IPv6地址表示方法
(1)IPv6格式
格式:x:x:x:x:x:x:x:x
,其中,x是一个写成十六进制形式的16位二进制数,例如:x=ABCD,写成二进制形式就是$1010 1011 1100 1101$。而且,其中十六进制数字A、B、C、D、E、F不区分大小写。字段中的前导零可省略。例如:09C0
可写为9C0
。连续的零字段可表示为::
,但每个地址只能用一次::
。
示例:
0:0:0:0:0:0:0:1
,表示为::1
,这是IPv6中的环回地址localhost
2031:0000:130F:0000:0000:09C0:876A:130B
可表示为
2031:0:130F::9C0:876A:130B
不能表示为
2031::130F::9C0:876A:130B
(2)IPv6前缀长度
IPv6使用前缀长度表示地址的前缀部分(相当于网络部分)前缀长度表示格式:IPv6地址/前缀长度前缀长度的范围为0到128,典型的前缀长度是/64。后面剩余部分统称为接口ID(相当于IPv4地址的主机部分)
例如2001:DB8:A::/64
中2001:0DB8:000A:0000
为前缀长度,后面接口ID全是0。
3、IPv6地址类型
IPv6 地址分为三种类型:
- 单播 (unicast) - IPv6 单播地址用于唯一标识支持 IPv6 的设备上的接口(如网卡)。
- 组播 (multicast) - IPv6 组播地址用于将单个IPv6 数据包发送到多个目的地。
- 任播 (anycast) - IPv6 任播地址是可分配到多个设备的 IPv6 地址。发送到任播地址的数据包会被路由转发到最近的拥有该地址的设备。
注意:IPv6 没有广播地址!
(1)IPv6单播地址
全局单播地址Global Unicast Address (GUA):类似于IPv4公有地址。有全局唯一性,是Internet可路由的地址。互联网名称与数字地址分配机构 (ICANN),将 IPv6 地址块分配给五家 RIR(区域性互联网注册机构)。目前分配的仅是前三位为001
或2000::/3
的全局单播地址,只占可用IPv6地址空间的 1/8。
本地链路地址Link Local Address (LLA) (地址块FE80::/10
):用于与同一链路/同一子网中的其他设备通信。每个支持IPv6的网络接口均需有本地链路地址。如果没有手动为接口配置本地链路地址,设备会自动创建自己的IPv6本地链路地址。这允许支持IPv6的设备与同一子网中的其他支持IPv6的设备通信。
唯一本地地址:用于一个站点内或数量有限的站点之间的本地编址。IPv6专用/私有地址,地址块 FC00::/7
。
(2)分配的组播地址
IPv6 组播地址的前缀为FF00::/8
,分为两种类型:分配的组播地址、请求节点组播地址。
分配的组播地址:为预先定义的设备组保留的组播地址,用在特定的协议环境(例如 DHCPv6)。两种常见的 IPv6 分配组播组包括:
FF02::1
全节点组播组或所有节点组播组,包含所有支持 IPv6 的设备的组播组。发送到该组的数据包由该链路或网络上的所有 IPv6 接口接收和处理。这与 IPv4 中的广播地址具有相同的效果。
FF02::2
全路由组播组 - 所有 IPv6 路由器均会加入的组播组。发送到该组的数据包由该链路或网络上的所有 IPv6 路由器接收和处理。
(3)请求节点IPv6组播地址
请求节点组播地址:类似于全节点组播地址。请求节点组播地址的优势在于它被映射到特殊的以太网组播地址。这使得以太网网卡可以通过检查目的 MAC 地址过滤帧。
4、IPv6和IPv4共存
过渡到 IPv6 不是一朝一夕可以完成的。在可预测的未来,IPv4 和 IPv6 将共存。将网络迁移到 IPv6 的迁移技术可以分为三类:双堆栈、隧道和转换。
双堆栈:允许 IPv4 和 IPv6 在同一网络中共存。设备可以同时运行IPv4 和 IPv6 协议栈。
隧道:通过 IPv4 网络传输 IPv6 数据包。将 IPv6 数据包封装到 IPv4数据包中。
转换:网络地址转换 64 (NAT64) 允许支持 IPv6 的设备与支持 IPv4 的设备使用类似于 IPv4 中 NAT 的转换技术进行通信。IPv6 数据包转换到IPv4 数据包,反之亦然。
四、获取IP地址的方式
1、静态地址分配
采用静态方式分配时,网络管理员必须手工配置主机的网络信息。这些信息至少包括主机IP地址、子网掩码和默认网关。静态地址具有一些优点。例如对于用户要经常访问的网络打印机和服务器等,静态IP地址就很实用,因为该地址不宜变更。
2、动态地址分配
在本地网络中,用户数量通常会频繁变化。比如新来的携带笔记本电脑的用户需要上网连接,就也需要IP地址。自动(动态)分配IP地址在方便性方面,优于静态分配IP地址的做法。要完成自动分配,需使用动态主机配置协议(DHCP)。DHCP提供一种自动分配IP地址、子网掩码、默认网关等地址信息和其它配置信息(如租借期等)的机制。
简述:繁星
邮箱:mail@uav.edu.kg
链接:https://liyinwaihe.cn
订阅:https://liyinwaihe.cn/rss.xml
标识:https://chournal.cn/lywh/lywh.png
链接:https://hueoo.com
描述:记录生活碎片,书写独家记忆。
头像:https://hueoo.com/favicon.ico