计算机网络知识点——6.网络层之IP地址

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/N1neDing/article/details/80740701

IP地址空间:

48位的MAC地址和32位的IP地址都是全局的(全球分配的),但是IP地址空间是分层的,是可路由的(routable)。

IP地址由ICANN统一负责并逐级分配。亚洲由APNIC负责,中国由ANNIC负责。

IP地址属于接口(网卡)。主机或路由器的每个接口可以配置一个或多个IP地址。

IP地址结构:

点分十进制(dotted decimal)

一个IP地址可以划分为两个部分:网络号(network numbers)和主机号(host identifier)。

网络号也称为网络前缀(nerwork prefix)、网络标识(network ID)。它是用于确定拥有该IP地址的主机位于哪个网络。

主机号用于确定属于该网络的哪台主机。

问题:

. 下面哪些关于两个IP地址的说法是正确的?
A.如果它们在不同的网络,则它们的网络号必须不同.
B.如果它们在不同的网络,则它们的主机号必须不同.
C.如果它们在相同的网络,则它们的主机号必须相同.
D.如果它们在相同的网络,则它们的网络号必须相同.
E.如果它们在相同的网络,则它们的主机号必须不同.

答案:ADE

有类网*


问题:

下面的IP地址中A类、B类、C类地址分别有几个?
92.168.1.100
129.32.123.54
223.89.201.145
220.18.255.254
124.254.200.254
191.64.220.8
66.254.1.100
192.1.100.1

202.15.200.12

答案:

A类:第一位确定为0,范围为:0~127,所以:92.168.1.100  124.254.200.254  66.254.1.100三个属于A类网

B类:前两位确定为10,范围为:128~191,所以:129.32.123.54   191.64.220.8两个属于B类网

C类:前三位确定为110,范围为:192~223,所以:223.89.201.145  220.18.255.254  192.1.100.1  202.15.200.12四个属于C类网

问题:有类地址191.168.1.2的网络号和主机号分别是什么?

答:因为为191开头,所以为B类地址,前16位为网络号,后16位为主机号,所以网络号为191.168.0.0,主机号为0.0.1.2

问题;一个C类网可用的IP地址有多少个?
答:根据问题,可知是一个确定的C类网,IP地址为可用主机个数,2^8-2=254个。 

子网划分:

一个有类网可以划分为多个相同大小的子网(subnet)。


C类网192.168.1.0划分为四个子网的子网掩码为255.255.255.192,子网号分别为00011011

*主机号为全1或全0的地址被保留,不能使用。

*子网号为全0或全1的子网现在都可以使用(以前规定不可使用)。


子网掩码即将主机号的前n位拿出来作子网号,主机号的剩余部分作主机号。

将子网掩码与ip地址作与运算,便可以得到网络地址,将取反后的子网掩码与ip地址作与运算,便可以得到主机地址。

例子:

假设有一个 I P 地址: 192.168.0.1

子网掩码为: 255.255.255.0

化为二进制为: I P 地址 11000000.10101000.00000000.00000001

子网掩码 11111111.11111111.11111111.00000000

将两者做 ' 与 ' 运算得: 11000000.10101000.00000000.00000000

将其化为十进制得: 192.168.0.0

这便是上面 IP 的网络地址,主机地址以此类推。

计算方法:

用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。
定义子网掩码的步骤为:
A、确定哪些组地址归我们使用。比如我们申请到的网络号为 “210.73.a.b”,该网络地址为c类IP地址,网络标识为“210.73.a”,主机标识为“b”。
B、根据我们所需的子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。比如我们需要12个子网,将来可能需要16个。用第四个字节的前四位确定子网掩码。前四位都置为“1”,即第四个字节为“11110000”,这个数我们暂且称作新的二进制子网掩码。
C、把对应初始网络的各个位都置为“1”,即前三个字节都置为“1”,则子网掩码的间断二进制形式为:“11111111.11111111.11111111.11110000” 。
D、把这个数转化为间断十进制形式为:“255.255.255.240” 。


如欲将B类IP地址168.195.0.0划分成27个子网
1)27=11011
2)该二进制为五位数,N = 5

3)将B类地址的子网掩码255.255.0.0的主机地址前5位置1(B类地址的主机位包括后两个字节,所以这里要把第三个字节的前5位置1),得到 255.255.248.0

注意:划分成子网,是将主机号的前n位设为1,比如要包含3个子网,则将子网掩码的主机那一段前两位设为1,划分包含多少主机就是将主机号的后方空出来,比如划分包含三个主机,则将后两位空出来使用,将掩码的主机部分的前6位设为1。

子网掩码的另一种表示方法(斜线记法)

用长度来表示子网掩码:/26表示255.255.255.192,即前面26位为1.

IP为:200.19.90.128/25 

表示前25用来表示子网掩码,也就是11111111 11111111 11111111 10000000

变长子网掩码:

变长子网掩码(Variable-Length Subnet Mask,VLSM)允许把一个有类网划分成多个不同大小的子网。

变长子网掩码专用于一些特定情况下,如为了最大限度地节省地址,会在不同的网络中使用不同的掩码长度,即变长子网掩码。

使用无类路由协议能够支持VLSM网络设计,在网络规划中,这是一个优点,因为可以为每条链路分配合适数量的IP地址。在给定的链路上,通过分配最小数量的IP地址,就可以节省IP地址。例如,对于点对点链路,可以使用/30的子网掩码,因为仅需要两个可用的IP地址,而在以太网网段上,/27的子网掩码可以容纳30台主机,如果你正使用有类路由协议,就必须对所有链路使用/27的掩码。在点到点链路上,这将不可避免的浪费28个主机地址。(/27的增量为32,减去网络地址与广播地址,共30个可用的主机地址)

例如:给定一个有类网199.1.12.0,如何把它们划分为四个子网,使它们可以分别容纳 100602520台主机?

解析:为d类地址,第一个包含100台主机,化为二进制是1100100,则子网掩码后七位使用,将最后一段的第一位设为1,即子网掩码为11111111.11111111.11111111.10000000,255.255.255.128,包含25位1,为/25,网络号为199.1.12.0

第二个包含60台主机,网络号在第一个已经包含127台主机后,往后顺延,只能从128开始,所以网络号为199.1.12.128,子网掩码后6位空出,所以子网掩码为255.255.255.192

第三个包含25台主机,网络号在第二个128+64之后为192,所以网络号为199.1.12.192,子网掩码为:255.255.255.224

第四个包含20台主机,网络号为192+32=224,为199.1.12.224,子网掩码为:255.255.255.224

子网1199.1.12.0XXXXXXX/25 (100台主机)
子网2199.1.12.10XXXXXX/26 (60台主机)
子网3199.1.12.110XXXXX/27 (25台主机)
子网4199.1.12.111XXXXX/27 (20台主机)

用长度来表示子网掩码: /26表示255.255.255.192

例2:

一个C类网192.1.2.0划分为6个子网,它们分别需要配置2、2、2、2、50、50个接口的IP地址。如果要求消耗最少的IP地址,请采用点分十进制(dotted decimal)格式(a.b.c.d)写出它们的子网号和子网掩码(地址从小到大):

第一个:192.1.2.0 保留后两位主机位,子网掩码为:255.255.255.252

第二个:网络号向后递推三个,因为第一个占用了三个,从第四个开始,为192.1.2.4,子网掩码为255.255.255.252

第三个:网络号为:192.1.2.8,子网掩码为:255.255.255.252

第四个:网络号为:192.1.2.12,子网掩码为:255.255.255.252

第五个:网络号为:192.1.2.64,子网掩码为:255.255.255.192

第五个:网络号为:192.1.2.128,子网掩码为:255.255.255.192

例3:

一个192.168.100.0/24的C类地址段,现在需要划分5个区域的地址段为A B C D E 
1) A区域有100台主机,它的网段的网段号和子网掩码是多少 
2) B区域有25台主机,它的网段的网段号和子网掩码 
3)C区域有20台主机,它的网段的网段号和子网掩码 
4) D区域有12台主机设备,它的网段的网段号和子网掩码 

5) E区域的路由器接口网络号是192.168.100.248 子网掩码是255.255.255.252 ,路由器2个接口分别是?

1)A:子网号为:192.168.100.0,子网掩码为:255.255.255.128

2)B:子网号为:192.168.100.128,子网掩码为:255.255.255.224

3)C:子网号为:192.168.100.160,子网掩码为:255.255.255.224

4)D:子网号为:192.168.100.192,子网掩码为:255.255.255.240

5)对于E区域,因为子网掩码为255.255.255.252,那么该子网的规模为4,除掉网络号地址还有广播地址,那么只剩下了两个接口地址为192.168.100.249和192.168.100.250。

无类域间路由选择协议(classless inter-domain routing,CIDR):

允许把多个有类网合并为一个更大的网络,称为超网(supernet)。

CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。

例如,把有类网192.24.8.0~192.24.15.0合并为网络号为192.24.8.0、子网掩码为255.255.248.0的超网。

例:如果用8个C类网193.10.24.0~193.10.31.0形成一个超网(supernet),该超网的子网号和子网掩码是什么?
答:子网号为:193.10.24.0,子网掩码为:255.255.248.0

CIDR可以显著减少路由表中路由的数量,上例就把八个路由减少为一个路由,称为路由聚合(route aggregation)。

通过引入CIDR,加上子网掩码,现在的网络号(可能包含子网号)可以看成是没有边界,即是无类的

  • CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
  • IP 地址从三层编址(使用子网掩码)又回到了两层编址。 
    • CIDR 使用“斜线记法” ,它又称为CIDR记法,即在 IP 地址后面加上一个斜线“/”,然后写上网络前缀所占的位数(这个数值对应于三层编址中子网掩码中 1 的个数)。
    • CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。

CIDR 地址块

  • 128.14.32.0/20 表示的地址块共有 212 个地址(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号是 12 位)。
  • 这个地址块的起始地址是 128.14.32.0。
  • 在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20 地址块”。
  • 128.14.32.0/20 地址块的最小地址:128.14.32.0
  • 128.14.32.0/20 地址块的最大地址:128.14.47.255
  • 全 0 和全 1 的主机号地址一般不使用。

CIDR与VLSM的区别:

  • CIDR是把几个标准网络合成一个大的网络,即借用
  • VLSM是把一个标准网络分成几个小型网络(子网)
  • CIDR是子网掩码往左边移了(将网络号的一部分进行合并),VLSM是子网掩码往右边移了(将主机号的一部分划分出来)

子网:IP地址均分为网络位和主机位两段,假设一个网络中的主机为450台,那么分配一个C类地址不够用,分配一个B类地址又显得太浪费,在这种情况下,就提出了子网化的概念,子网的定义就是把主机地址中的一部分主机位借用为网络位。如在一个B类地址172.16/16,可以借用7位做为网络地址,一个形如172.16.2/23的地址段就可以满足该网络的需求。其中172.16/16称为主网,172.16.2/23称为子网。


超网:子网化一定程度上减轻了IP地址空间紧张的压力,但是由于在IP地址分配初期的考虑不周全,导致A类、B类地址在初其大量分配,资源相当紧张,而一些中型网络又需要超过一个C的地址,这进只能分配几个连续的C类地址块。为了减小Internet路由表的数量,就提出了超网的概念,超网和子网的定义刚好相反,就是借用一部分网络位作为主机位从而达到减小Internet路由表的目的。如192.168.0/24-192.168.3/24四个C类地址段,就是可超网化为192.168.0/22这样一个超网。
CIDR(无类型域间路由):随着子网和超网概念的深入,IANA在分配IP地址过程中类别的概念越来越淡化,一般情况下就直接以地址块的形式分配地址段,配合路由设备的支持,就出现了无类型域间路由的概念。它是一种工业标准,与IP地址一起使用的,用来显示子网位数。例如,172.16.10.1/24就表示32位子网掩码中有24个1。

简单的说凡是借了位就用到了CIDR,

借少了位(网络位为主机位)叫超网,比如:192.168.1.0/22

借多了位(主机位为网络位)叫VLSM(子网),比如:192.168.1.0/28

特殊的IP地址:

例:IP地址192.168.1.255是做什么的?

答:对远程子网的广播,因为头为192,所以为c类网,最后8位为255,符合上方条件4,为广播。

问:点分十进制IP地址以127开头的是什么地址?

答:环回地址

私有IP地址:

私有IP地址就是无需IANA分配、任何人都可以使用的IP地址:

110.0.0.0 ~ 10.255.255.255
2172.16.0.0 ~ 172.31.255.255
3192.168.0.0 ~ 192.168.255.255

私有地址只能用于内部网络。主干网上的路由器会过滤掉目的地址为私有地址的IP数据报(怪不得我的远程桌面连接地址172.18.159.39只能在校园网内部使用……)。因此。离开内部网络的IP数据报必须使用由IANA分配的全局地址作为目的地址。

例:下面哪些地址为私有地址?
A.10.200.10.1
B.192.1.1.5
C.172.15.1.10
D.172.32.1.1

E.192.168.254.1
F.192.169.1.1
G.172.31.200.254
H.192.168.255.254

答:A,E,G,H

网络地址转换(NAT):

网络地址转换(Network Address Translation,NAT)是一种把内部地址映射为外部地址的技术。例如,把私有地址映射为全局地址。

出口路由器在内网数据报发送外网时自动把内网地址映射为外网地址的方法称为动态NAT。每个动态映射都关联一个TTL。如果TTL时间内没有使用一个映射,该映射将被出口路由器删除。

直接由管理员加入映射的方法称为静态NAT。静态NAT加入的映射不会被自动删除。

例:采用NAT技术,如果从外网发回的IP分组中应该转换的IP地址和端口号是哪个?
A.源IP地址和源端口号
B.目的IP地址和目的端口号
C.源IP地址和目的端口号
D.目的IP地址和源端口号

解析:B,从内网发往外网时,需要将源地址转换成外部地址才能发出去;

从外网发往内网时,需要将目的地址转换成内部地址才能传进来。

NAPT(Network Address Port Translation)把端口号也加入到NAT的映射中,也称为PAT(port address translation)或带有过载NAT(NAT with overload)。

下面的图显示了从私有网络的主机发包给Web服务器的地址转换方法:

非军事化区(Demilitarized Zone,DMZ):

位于内部网络和外部网络之间并为双方提供因特网服务的区域。

内网主机可以访问内网主机、DMZ和因特网。内网主机可以使用内部地址或全局地址访问DMZ的服务器。

外部主机只能通过全局地址访问DMZ的服务器,不能访问内网主机。


IP地址和MAC地址(以太网):

联系:

 网络中带有IP地址的分组到达链路层后,链路层协议会根据IP头中的IP地址来产生MAC地址。

区别:
(1) IP地址是全局地址, MAC是局部地址
(2) IP地址是网络层, MAC是链路层地址
(3) IP地址是32位, MAC是48 bit
(4) IP随机分配, MAC针对每台机器是固定的

 MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE(Istitute of Electrical and Electronics Engineers,电气与电子工程师协会)分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地址。

将IP地址转换成MAC地址的规则是,替换低23位:


例:把IP多播地址224.0.1.5转换为MAC多播地址是什么?

答:01-00-5E-00-01-05

ARP协议(Address Resolution Protocol):

地址解析协议可以把IP地址映射为MAC地址。

  1. ARP协议没有超时重传机制。超时没有收到响应,则丢弃引发ARP查询的IP分组。
  2. 源主机获得的映射结果缓存在ARP表中<IP addressMAC addressTTL>。其中TTL用于超时删除ARP表项,其取值由系统确定,一般为2~20分钟 。
  3. 当收到ARP请求,目的主机会缓存源主机的映射,其它主机如果已缓存该映射,则会重置TTL。
  4. 也可以把映射直接加入ARP缓存,称为静态ARP映射。静态ARP映射不会因超时而被删除。

问题:ARP请求包的字段哪些是已知的?
A.source IP address
B.source MAC address
C.source port number
D.dest IP address
E.dest MAC address
F.dest port number

答:ABD,源IP地址,源MAC地址,目的IP地址是已知的。

问题:关于ARP协议,下面哪些说法是正确的?
A.一台主机可以通过ARP协议通过远端IP地址(非直连网)取得其对应的MAC地址。
B.在收到ARP请求后源主机的IP地址和MAC地址的映射会缓存在目的主机中。
C.一个ARP请求可以同时包括多个IP地址。
D.ARP请求会超时重传。
E.任何物理网络都要使用ARP协议获得MAC地址。
F.缓存的IP地址和MAC地址的映射具有生存期

答:BF,源主机获得的映射结果会缓存在ARP表中,缓存与目的主机中;ARP没有超时重传机制,超时没有收到响应,则丢弃会引发ARP查询的IP分组

windows中的ARP表:

逆地址解析协议(Reverse Address Resolution Protocol,RARP):将MAC地址转换成IP地址。

问:用什么办法可以确定一个IP地址在一个以太网中没有(正在)被用?

方法是利用ARP协议发送一个ARP request,查询该IP地址的MAC地址,如果有接收到ARP response,说明该IP地址已经被使用;如果没有接收到ARPresponse即没有响应说明该IP地址没有正在被用

问:ping可以在子网中产生一个广播帧,请给出并解释方法。
Answer:ping本网一个不存在的IP地址,因为ARP映射表中肯定没有,所以会发送ARP请求。ARP请求就是广播帧。或者直接ping对本网的广播,例如:ping192.168.1.255。这个ICMP消息会用广播帧封装。
Explanation:
ping非本网的IP地址,会匹配默认网关,而默认网关的MAC地址可能已缓存。

DHCP协议(Dynamic Host Configuration Protocol):

用于主机在加入网络时动态租用IP地址。


问:在一个以太网中,哪个DHCP数据包可以让该网络中的每个DHCP服务器知道DHCP客户端是否选用了它提供的IP地址?
A.DHCP discover
B.DHCP offer
C.DHCP request
D.DHCP ack

解析;如上图,DHCP request可以告知每个DHCP服务器这个客户端选择的是否是服务器提供的IP地址。

ICMP协议:

因特网控制消息协议(Internet Control Message Protocol)用于主机或路由器发布网络级别的控制消息。

ICMP消息的一般格式:


ICMP消息的常见类型:


ICMP不可达消息:


代码含义说明
0网络不可达目的地址为私有地址,路由表出错等
1主机不可达不能找到到目的网络的路由
2协议不可达上层协议不存在
3端口不可达UDP端口号没有绑定进程。
如果是
TCP协议,则发送TCP 复位消息而不是本消息
4分段错误需要分段但是设置了DF
5源路由错误IP源路由选项出错

ICMP回响请求和答复消息(ping):


回响(echo)请求:类型 = 8; 回响答复:类型= 0
从回响请求收到的标识符、序号和数据将拷贝到回响答复中。

标识符和序号用来区分不同的响应。例如:把进程号记录为标识符,并记录发送序号。

ICMP时间超时消息:


代码为0,说明TTL减为0

代码为1,说明重组IP时段超时

ICMP重定位消息:


Code     Description
0           Redirect datagrams for the Network.
1           Redirect datagrams for the Host.
2           Redirect datagrams for the Type of Service and Network.
3           Redirect datagrams for the Type of Service and Host.


A经过R1向R2发送数据包,当 R1发现把一个数据包转发给R2的接口就是其接收接口,则会把从网络重定向消息发给主机A,要主机A直接把发往这些网络的数据报直接发给R2

问题:

转发IP分组时,在下面哪些情况下,路由器会发送ICMP数据报通知源主机?
A.IP数据报的TTL在路由器上减到0.
B.对IP数据报进行了分段.
C.用目的地址没有查到匹配的路由项.
D.目的地址只匹配了默认路由.
E.头部检验出错.
F.IP分组头部有选项.

答案:ACE,可查上方表。

填写发送的ICMP数据报的类型和代码:

 类型代码
A110
B--
C31
D--
E120
F--



展开阅读全文

没有更多推荐了,返回首页