IP的介绍
网际协议——Internet protocol,简称IP,在TCP/IP中呢是属于我们第二层网络层,也称网际层,这个是TCP/IP二层的核心协议,二层还包括ICMP、IGMP、(ip)、RARP(淘汰)、ARP。
顺便我们再回顾一下,在TCP/IP体系架构中,从上至下分别是,应用层、传输层、网际层(网络层)、网络接口层。
目前主要使用的两个版本 :IPv4 、IPv6。
IPv4地址的相关知识
IPv4地址的概述
IPv4地址是给因特网上的每一个主机(或路由器)的每一个接口分配的一个32比特的标识符。在网络中的通信IP地址是必不可少的,相当于一张身份名片。
在定义之初IPv4地址本来是全球唯一的,但由于互联网时代发展过快,发现IPv4地址不够用,所有才有了后面就有IPv4编址的优化,以及IPv6的运用和推广等。可能在几十年后IPv4以及被IPv6逐渐替代了,甚至可能被淘汰了。
2011年2月3日,因特网号码分配管理局(InternetAssigned Numbers Authority,IANA)(由ICANN行使职能)宣布,IPv4地址已经分配完毕;
我国在2014至2015年也逐步停止了向新用户和应用分配IPv4地址,同时全面开展商用部署IPv6。
IPv4地址的表示方法
由于IPv4地址由32比特构成,不方便阅读、记录以及输入等,因此IPv4地址采用点分十进制表示方法以方便用户使用。
举例:某个32比特IPv4
11000000000011111000000100000011
将这串二进制分为4组,即8位一组,再计算出每组的十进制数,然后再将每组10进制数用点隔开
8位无符号二进制转为十进制,各位置的系数×其权重的和
以第一组举例:11000000
1*2^7+1*2^6+0*2^5+0*2^4+0*2^3+0*2^2+0*2^1+0*2^0=128+64+0+0+0+0+0+0=192
同学们可以计算下其余三组哈.........同理可得,该IPv4的点分十进制数为:192.15.129.3
对于基础不好的同学可以以10进制为例推导:
例如:有3246=3×1000+2×100+4×10+6×1=3×10³+2×10²+4×10¹+6×10⁰
各位置的权重10⁰ 10¹ 10² 10³ 不就对应个、十、百、千
而在二进制中各位置权重有,第一位、第二位、······、等n位,分别对应2⁰ 、2¹、·······、2ⁿ
来我们再练习2个....
练习_1(结果在文末)
2-->10 | 11000000101010000000101000001100 |
结果在文末 |
10-->2 | 10.15.40.252 |
IPv4地址编址方法历程
IPv4地址的编址方法经历了三个历史阶段:
1、是基础 ; 2、是1的改进 ;3、是目前我们使用的无分类编址,消除分类编址和划分子网的概念
前两种已经被淘汰了。但我们还是要了解,以便我们的学习。
IPv4地址的分类编址方法
将IP地址分为了五类,突出部分为固定值:
类别 | 地址编址方法 | 地址数量占比 | |||
A | 0 8位网络号 | 24位主机号 | 1/2=2^³¹/2^³² | ||
B | 10 16位网络号 | 16位主机号 | 1/4 | ||
C | 110 24位网络号 | 8位主机号 | 1/8 | ||
D | 1110 多播地址 | 1/16 | |||
E | 1111 保留地址 | 1/16 |
A类、B类和C类地址都是单播地址,只有单播地址可以分配给网络中的主机(或路由器)的各接口。
主机号为“全0”的地址是网络地址,“全1”是广播地址,不能分配给主机(或路由器)的各接口。
A类地址细节
地址范围:
00000000000000000000000000000000 | 对应点分十进制为 | 0.0.0.0 |
至 | 至 | |
01111111111111111111111111111111 | 127.255.255.255 |
其他细节:
最小网络号为0,表示本网络,不能指派,只能作为源地址使用,表示“在本网络的本主机”;
最大网络号127,作为本地环回测试地址,也不能指派;最小的本地环回测试地址为127.0.0.1;最大的本地环回测试地址为127.255.255.254;
所以可指派的A类地址网络号为0000 0001~0111 1110,也就是1~126,总共126个;最小可指派的网络号为1,网络地址为1.0.0.0;最大可指派的网络号为126,网络地址为126.0.0.0
一个网络可分配主机数2^²⁴-2
总览图表
类别 | 定义地址范围 | 保留地址 | 可指派网络范围 | 网络数量 | 一个网络最大可分配主机数 | 头部固定位 |
A | 0.0.0.0-127.255.255.255 | 0.0.0.0/8 127.0.0.0/8 | 1-126 | 2^⁸⁻¹-2=126 | 2^²⁴-2 | (0XXXXXXX)₂ |
B | 128.0.0.0-191.255.255.255 | 128.0-191.255 | 2^¹⁶⁻² | 2^¹⁶-2 | (10XXXXXX)₂ | |
C | 192.0.0.0-223.255.255.255 | 192.0.0-223.255.255 | 2^²⁴⁻³ | 2^⁸-2 | (110XXXXX)₂ |
类别 | 作用 | 定义地址范围 | 头部固定位 | 地址数量 |
D | 多播地址 | 224.0.0.0-239.255.255.255 | (1110XXXX)₂ | 2^²⁸ |
E | 保留 | 240.0.0.0-255.255.255.255 | (1111XXXX)₂ | 2^²⁸ |
练习_2(结果在文末)
1、既可以作为源地址的又可以作为目的地址的有:
A:0.0.0.0 B:111.222.192.12 C:127.0.1.1 D:255.255.255.255
2、
IPv4地址 | 类别 | 是否可分配给主机使用 |
0.1.2.3 |
|
|
1.2.3.4 |
|
|
120.255.255.255 |
|
|
127.0.10.4 |
|
|
128.0.255.255 |
|
|
168.168.166.255 |
|
|
180.180.255.255 |
|
|
191.255.255.254 |
|
|
192.1.10.255 |
|
|
199.1.2.3 |
|
|
222.222.222.222 |
|
|
IPv4地址的划子网编址方法(基于分类编址)
IPv4分类编址方法不够灵活、容易造成大量IPv4地址资源浪费。
例如:
①、一企业主机数有500 ,则按照分类编址就只能申请一个B类网络,但是一个B类网络可容纳2^¹⁶-2=65534个主机,会导致大量的地址资源浪费,剩余大量地址只能由该单位的同一个网络使用,而其他单位的网络不能使用。
②、假设,该企业又想分部门划分网络,则按照分类编址就只能再申请其他新的网络地址了,从而导致要多开销、ip资源浪费等问题。
所以有了划子网编址方法,引入了子网掩码,从IPv4地址的主机号部分借用一些比特作为子网号来区分不同的子网,就可以利用原有网络中剩余的大量IPv4地址,而不用申请新的网络地址了。
子网掩码可以表明分类IPv4地址的主机号部分被借用了几个比特作为子网号;用左起多个连续的比特1为网络号和子网号;之后的多个连续的比特0为主机号。
举例:
已知某个网络的地址为 210.65.48.0 使用子网掩码255.255.255.128对其进行子网划分,IP地址与子网掩码做逻辑”与“运算即可得到其子网号、主机号位数等信息。
即
网络号 /24b | 主机号 8b | |||
子网 /1b | 主机号 /7b |
一个子网可以容纳的最大主机数为:2^7-2=126
练习_3
某主机的IP地址为180.80.77.55,子网掩码255.255.252.0,若该主机向其所在子网发送广播分组,则目的地址是()。
255.255.252.0 ----> 255=(11111111)₂ ; 252=255-3=(11111100)₂ ---->即连续的22个1
广播地址:
网络号 /16b | 子网号 /6b | 主机 /10b | ||
10110100 | 01010000 | 010011 | 11 | 11111111 |
180 | 80 | 79 | 255 |
IPv4地址的无分类编址方法(CIDR)
无分类域间路由选择(CIDR)概念
无分类域间路由选择(Classless Inter-Domain Routing, ClDR )
CIDR消除了传统A类、B类和C类地址以及划分子网的概念,CIDR可以更加有效地分配IPv4地址资源,并且可以在IPv6使用之前允许因特网的规模继续增长
两级结构:网络前缀+主机号;网络前缀不定长,由地址掩码确定
地址掩码与划分子网的子网掩码类似,由32比特构成。用左起多个连续的比特1对应IPv4地址中的网络前缀;之后的多个连续的比特0对应主机号
斜线记法
假设给定的无分类编址的IPv4地址为144.15.67.5,配套给定的地址掩码为255.255.240.0,能得到什么信息呢?
10010000 | 00001111 | 01000011 | 00000101 |
11111111 | 11111111 | 11110000 | 00000000 |
可知--->网络前缀长:20b 主机号长:12b ;逻辑”与“得到网络地址:144.15.64.0/20; 等。
为了简便起见,而是在无分类编址的IPv4地址后面加上斜线"/"在斜线之后写上网络前缀长度。
即可以写成:144.15.67.5/20 IP地址/地址掩码
CIDR细节
实际上,CIDR是将网络前缀都相同的、连续的多个无分类IPv4地址,组成一个CIDR地址块,只要知道CIDR地址块中的任何一个地址,就可以知道该地址块的以下全部细节:
地址块中的最小地址
地址块中的最大地址
地址块中的地址数量
地址块中聚合某类网络(A类、B类、C类)的数量,地址数量/该类网的地址数量=聚合该类网的数量
使用CIDR的一个好处是,可以根据客户的需要分配适当大小的CIDR地址块,因此可以更加有效地分配IPv4的地址空间。
使用CIDR的另一个好处是路由聚合(超网);是为了解决路由表的内容冗余问题,使用路由聚合能够缩小路由表的规模,减少路由表的内存。路由器查表转发分组时发现有多条路由条目匹配,则选择网络前缀最长的那条路由条目,前缀匹配,因为网络前缀越长,地址块越小,路由越具体。
练习_4(结果在文末)
1、现将一个IP网络划分为3个子网,若其中一个子网是,192.168.10.128/26,其余子网不可能是:
A、192.16.10.192/26 B、192.16.10.0/25 C、192.16.64/26 D、192.16.10.224/27
所有结果为:
网络192.16.10.128/25下划分的:192.168.10.128/26、 192.16.10.192/27、 192.16.10.224/27
网络192.16.10.0/24下划分的: 192.16.10.0/25、 192.168.10.128/26、 192.16.10.192/26
2、有四个网络128.16.4.0/25 、 128.16.4.128/25 、128.16.7.0/24 、128.16.3.0/24可聚合为?
3、有一目的地址为192.168.1.47,则网络192.168.1.32/28,能够收到该地址的主机最多有几台?
4、假设有一企业有500台主机,请给出最少可以给他分配的CIDR地址快大小:
IPv4地址的应用规划
IPv4地址的应用规划是指将给定的IPv4地址块(或分类网络)划分成若干个更小的地址块(或子网),并将这些地址块(或子网)分配给互联网中的不同网络,进而可以给各网络中的主机和路由器的接口分配IPv4地址。
定长的子网掩码:
所划分出的每一个子网都使用同一个子网掩码;每个子网所分配的IP地址数量相同,容易造成地址资源的浪费。
变长的子网掩码:
所划分出的每一个子网可以使用不同的子网掩码;每个子网所分配的IP地址数量可以不同,尽可能减少对地址资源的浪费。
举例:定长
假设申请到的C类网络为218.75.230.0/24,使用定长的子网掩码给下图所示的小型互联网中的各设备分配IPv4地址
net1:6+2+1 =9 -----> 解析:6台+全0网络地址+全1广播地址+R1在net1的端口IP,即net1中总共需要的地址数量是9个。
net2:25+2+1=28
net3:10+2+1=13
net4:12+2+1=15
R1与R2之间: 2+2=4
则最大为 16<28 <32 即主机位为5即可,因此借了3位作为子网号 C类网络号共24位 ,子网掩码为:255.255.255.224
子网号分别为:000 001 010 011 100 101 110 111
因此所有子网地址为:任意选五个子网即可
218.75.230.0/27 | 218.75.230.32/27 | 218.75.230.64/27 | 218.75.230.96/27 |
218.75.230.128/27 | 218.75.230.160/27 | 218.75.230.192/27 | 218.75.230.224/27 |
举例:变长
同上诉案例,共需要9+28+13+15+4=69<128 即主机位7b;即可从网络218.75.230.0/25 再分为5个子网
按照从大到小分配
则有
net1:218.75.230.48/28
net2:218.75.230.0/27
net3:218.75.230.64/28
net4:218.75.230.32/28
R1与R2: 218.75.230.80/30
剩余218.75.230.84-255 未分配
专用地址(Private Address)
专用网所在机构可以自行分配的IP地址,这类IP地址仅在机构内部有效,不需要向因特网的管理机构申请。
类别 | 专用(私有)地址范围 | CIDR地址块 |
|
A | 10.0.0.0~10.255.255.255 | 10/8 | 10.0.0.0/8 |
B | 172.16.0.0~172.31.255.255 | 172.16/12 | 172.16.0.0/12 |
C | 192.168.0.0~192.168.255.255 | 192.168/16 | 192.168.0.0/16 |
地址转换
NAT
网络地址转换(Network Address Translation,NAT)技术于1994年被提出,用来缓解IPv4地址空间即将耗尽的问题。NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源。
这种方法需要在专用网络连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器称为NAT路由器,它至少要有一个有效的外部全球地址IP。这样,所有使用内部专用地址的主机在和外部因特网通信时,都要在NAT路由器上将其内部专用地址转换成IP。
尽管因特网采用了无分类编址方法来减缓IPv4地址空间耗尽的速度,但由于因特网用户数量的急剧增长特别是大量小型办公室和家庭网络接入因特网的需求不断增加,IPv4地址空间即将耗尽的危险仍然没有解除(实际上,因特网号码分配管理局IANN于2011年2月3日宣布,IPv4地址已经分配完毕)。
NAT转换表-例子:
内网 | 外网 |
IP_A | IP_R1 |
缺点:
如果NAT路由器拥有n(n比较小)个全球IP地址,那么专用网内最多可以同时有n台主机接入因特网。若专用网内的主机数量大于n,则需要轮流使用NAT路由器中的全球IP地址。
NAPT——网络地址端口转换(Network Address Port Translation)
由于目前绝大多数基于TCP/IP协议栈的网络应用,都使用运输层的传输控制协议TCP或用户数据报协议UDP,为了更加有效地利用NAT路由器中的全球IP地址,现在常将NAT转换和运输层端口号结合使用。
这样就可以使内部专用网中使用专用地址的大量主机,共用NAT路由器上的1个全球IP地址,因而可以
同时与因特网中的不同主机进行通信。
将NAT和运输层端口号结合使用,称为网络地址与端口号转换(NetworkAddressand Port Translation,
NAPT)
NAT转换表-例子:
内网 | 外网 |
192.168.0.1:1234 | 110.110.1.10:45454 |
192.168.0.2:1234 | 110.110.1.10:45455 |
|
|
保留地址和特殊用途(常见)
0.0.0.0
:
-
- 表示无地址或未配置地址: 在网络协议中,
0.0.0.0
用于表示“无地址”或“未配置地址”。例如,当一个设备尚未获得有效的IP地址时,可能会使用0.0.0.0
来进行 DHCP 请求。 - 路由表中的默认路由: 在路由表中,
0.0.0.0
表示默认路由,用于匹配所有未明确指定的目的地地址。
- 表示无地址或未配置地址: 在网络协议中,
127.0.0.0/8:本地回环地址(Loopback),用于本机网络通信测试
本地环回测试地址;最小的本地环回测试地址为127.0.0.1;最大的本地环回测试地址为127.255.255.254
0.0.0.0: 表示所有网络接口,通常用于指示任何地址。
169.254.0.0/16: 链路本地地址(Link-Local),用于自动配置地址。
224.0.0.0/4: 是保留的多播地址范围,专用于网络多播通信 。
240.0.0.0/4: 保留的地址范围,供未来使用或特殊协议使用。
255.255.255.255: 广播地址,用于发送数据到同一子网中的所有主机。
参考:
1、高军-深入浅出计算机网络(微课视频版)
2、湖科大教书匠-深入浅出计算机网络
文中练习题目答案解析:
练习_1
2-->10 | 11000000101010000000101000001100 | 192.168.10.12 |
10-->2 | 10.15.40.252 | 00001010000011110011000011111100 |
10.15.40.252:
以10为例子 10=8+2;即2^3+2^1=(00001010)₂
像252这种可以这样算,252=255-3; 255=(11111111)₂ 与 3=(00000011)₂ 相减可得(11111100)₂
练习_2(分类编址题目)
1、B C
全0只能作为源地址,全1只能作为广播地址
2、
IPv4地址 | 类别 | 是否可分配给主机使用 |
0.1.2.3 | A | 不可,保留,本网络 |
1.2.3.4 | A | 可 |
120.255.255.255 | A | 不可,广播 |
127.0.10.4 | A | 不可,回环地址 |
128.0.255.255 | B | 不可,广播 |
168.168.166.255 | B | 可 |
180.180.255.255 | B | 不可,广播 |
191.255.255.254 | B | 可 |
192.1.10.255 | C | 不可,广播 |
199.1.2.3 | C | 可 |
222.222.222.222 | C | 可 |
练习_4(CIDR题目)
1, C、192.16.64/26
所有结果为:
网络192.16.10.128/25下划分的:192.168.10.128/26、 192.16.10.192/27、 192.16.10.224/27
网络192.16.10.0/24下划分的: 192.16.10.0/25、 192.168.10.128/26、 192.16.10.192/26
子网划分结果可能如下所示:使用二分法
网络0 192.16.10.0/24 最后一组IP为,加粗为掩码部分: (00000000)₂
| 网络0_1 192.16.10.0/25 00000000
| 网络0_1_1 192.16.10.0/26 00000000
| 192.16.10.0/27 00000000 |
192.16.10.32/27 00100000 | |||
网络0_1_2 192.16.10.64/26 01000000
| 192.16.10.64/27 01000000 | ||
192.16.10.96/27 01100000 | |||
网络_2 192.16.10.128/25 10000000 | 网络0_2_1 192.16.10.128/26 10000000 | 192.16.10.128/27 10000000 | |
192.16.10.160/27 10100000 | |||
网络0_2_2 192.16.10.192/26 11000000 | 192.16.10.192/27 11000000 | ||
192.16.10.224/27 11100000 |
2、128.16.4.0/25 、 128.16.4.128/25 、128.16.7.0/24 、128.16.3.0/24
可聚合为:寻找共同最长的网络前缀
10000000 | 00010000 | 00000100 | 00000000 | 即共同前缀为:前21b |
10000000 | 00010000 | 00000100 | 10000000 | |
10000000 | 00010000 | 00000111 | 00000000 | 可聚合为:128.16.0.0/21 |
10000000 | 00010000 | 00000011 | 10000000 |
上表可知其格式为:10000000 00010000 00000XXX XXXXXXXX ,即最长共同前缀为10000000 00010000 00000 ;后面补上0转为点分十进制表示,前缀长为21,所以可得超网为128.16.0.0/21
3、192.168.1.32/28
则有题目可知网络前缀长为28,即前三组外加第四组的前4b固定表示所在的网络;
主机号则为4b,即最后一组后四位为主机号,最多2⁴-2=14台主机;
分析地址192.168.1.47;最后一组47=32+8+4+2+1=(00101111)₂ 可得,后四位为全1即为广播地址;
所以在网络192.168.1.32/28能够接收到目的地址192.168.1.47的最大主机数为14台。
4、由题可知 256<500<512=2⁹ 所以主机号至少要9位才能满足500台主机,则网络前缀为32-9=23 ,即最小CIDR地址块为 : 地址/23 ,网络前缀为23的地址块