计算机网络——网络层面试知识大总结!

计算机网络——网络层


【1】网络层基础知识

针对网络层的业内问题:“在计算机网络中,网络层应该向运输层提供怎样的服务?面向连接还是无连接?

问题的实质是:“可靠交付应该由网络负责还是端系统负责?”

面向连接和无连接:

  1. 面向连接:交互双方要先建立专属线路
  2. 无连接:不需要建立线路

现今的计算机网络都是采用无连接的,网络提供数据报服务,无连接的,尽最大努力交付数据报。网络层不提供服务质量的承诺,即所传分组可能存在出错、丢失、重复和失序的可能,也不保证分组传送的时限。

在这里插入图片描述

网络层无连接特点:简单、灵活、能适应多种应用


【1.1】网际协议IP

与IP协议配套使用的还有三个协议:

  1. 地址解析协议 ARP(Address Reolution Protocol)
  2. 网际控制报文协议 ICMP(Internet Control Message Protocl)
  3. 网际组管理协议 IGMP(Internet Group Management Protocl)

在这里插入图片描述

各层中连接需要的中转设备:

  • 物理层中继系统:转发器(repeater)
  • 数据链路层中继系统:网桥 / 桥接器(bridge)
  • 网络层中继系统:路由器(router)
  • 网桥和路由器的混合物:桥路由器(brouter)
  • 网络层以上的中继系统:网关(gateway)

【2】IP地址

IP地址都分为两级(两个固定长度的字段)

  • 网络号 net_id:代表主机/路由器所连接的网络
  • 主机号 host_id:代表主机/路由器
    在这里插入图片描述

两级IP地址记作{<net_id>, <host_id>}

IP地址采用点分十进制计法:机器中存放的IP地址是32位的二进制码,每8位一组,再转化成可读性更高的十进制
在这里插入图片描述
分级IP地址的优点

  • IP地址管理机构在分配IP地址时只分配网络号,剩下的主机号则由得到该网络号的单位自行分配——方便管理
  • 路由器仅根据目的主机所在的网络号转发分组,不考虑目的主机号——路由器的路由表中的数据量减少,节约资源

实质上,IP地址是标记一个主机/路由器和一条链路的接口

用转发器/网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都是具有相同网络号的
在这里插入图片描述


【2.1】IP地址与硬件地址

从层次角度区分

  • 硬件地址(物理地址):用于数据链路层和物理层
  • IP地址(逻辑地址):网络层以上各层使用

IP地址是由软件实现的

从位置角度区分

  • 硬件地址存放在MAC帧首部
  • IP地址存放在IP数据报的首部

在这里插入图片描述

数据通信过程:
在这里插入图片描述

  1. 路由器只会根据目的站的IP地址的网络号进行路由选择
  2. 在具体物理网络的链路层只能看到MAC帧,看不到IP数据报
  3. IP层是抽象的,忽略了底层复杂的细节——这样就可以只通过IP地址讨论主机与主机,主机与路由器之间的通信

在物理网路中,只以MAC帧为参考变量,其他的那些都忽略掉

路由器在路由表中确定一下局域网IP地址


【3】地址解析协议ARP

ARP(Address Resolution Protocol)

ARP协议的作用:从网络层使用的IP地址,解析出在数据链路层使用的硬件地址

ARP协议的目的:IP地址映射成硬件地址

无论网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址

IP地址是抽象的逻辑地址,方便人们理解与管理,具体的物理链路上的设备还是要看硬件地址

ARP高速缓存(cache): 每一个主机都设置有一个ARP高速缓存,里面存储着各主机和路由器的IP地址到硬件地址的映射表

ARP解析过程: “主机A发送IP数据报给主机B”

  1. A先在其自己的ARP高速缓存中查看B的IP地址
  2. ARP将IP地址映射成硬件地址
  3. 将硬件地址写入MAC帧,然后通过局域网将MAC帧发往此硬件地址
  4. 若ARP高速缓存中无B的IP地址、则ARP进程在本局域网上广播发送一个ARP请求分组,收到ARP响应分组后,将得到的IP地址到硬件地址的映射写入高速缓存

ARP协议作用: 解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题
若所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于局域网上的一个路由器,然后让这个路由器将分组转发给下一个网络,剩下的工作就由一个网络来做

从IP地址到硬件地址的ARP解析是自动进行的(主机的用户对这种地址解析过程是不知道的)

使用ARP的四种典型情况:

  1. 发送方是主机,要把IP数据报发送到 本网络上的另一个主机 ,这时用ARP找到目的主机的硬件地址

  2. 发送方是主机,要把IP数据报发送到 另一个网络上的一个主机,这时利用ARP找到本网络的的一个路由器的硬件地址,剩下的工作交给路由器

  3. 发送方是路由器,要把IP数据报转发到 本网络的一个主机,利用ARP找到主机的硬件地址

  4. 发送方是路由器,要把IP数据报转发到 另一个网络的一个主机,利用ARP找到本网络的一个路由器,剩下的工作交给那个路由器

  • 为什么不直接使用硬件地址通信?

因为全世界存在各式各样的网络,它们使用不同的硬件地址,要使这些个异构的网络互相通信就必须进行非常复杂的硬件地址转换工作。

IP地址通过网络号与主机号使每个连接到互联网的主机都拥有一个唯一的IP地址。且调用ARP实现IP地址到硬件地址的映射是由计算机软件自动实现的,用户看不到

于是在虚拟的IP网络上就可以直接用IP地址进行通信,因为内部的ARP解析转化已经自动完成了


【4】IP数据报的首部格式

一个IP数据报由首部和数据两部分组成

IP数据报的首部又分为两个部分:

  • 固定部分
  • 可变部分:1~2字节,取决于所选择的项目
    在这里插入图片描述

固定部分:

  • 版本:4位,IP协议的版本号
  • 首部长度
  • 总长度
  • 标志flag
  • 片偏移:较长的分组在分片后某片在原分组中的相对位置
  • 生存时间:数据报能经历的路由器数量的最大值
  • 协议:数据报携带的数据使用的协议
  • 首部检验:只检验数据报的首部,不验证数据部分
  • 源地址和目的地址

IP数据报可以封装多种协议PDU(Protocol Data Unit 协议数据单元)
在这里插入图片描述
IP数据报分组转发流程:IP数据报的首部没有指明下一个路由器的地址

  1. 当路由器接收到待转发的数据报时,不是将下一个路由器的IP地址写入IP数据报,而是送交下层网路接口软件
  2. 网络接口软件使用ARP解析协议将下一跳的IP地址转化为硬件地址,并将硬件地址放到链路层的MAC帧的首部,然后根据这个硬件地址找到下一个路由器
  3. IP数据报最终一定可以找到目的主机(可能要经过多次交付)
  4. 只有到达最后一个路由器时,才会试图向目的主机进行直接交付

【5】IP数据报片

在这里插入图片描述


【6】子网划分(Subnetting)

子网划分是从2级IP地址划分成3级IP地址

1985年开始,增加了一个子网号字段

子网划分是单位内部设置的,外部并不知道

对内3级IP地址,对外2级IP地址

子网字段是从主机号字段划分出来的一部分

  • 子网号:subnet_id
  • 主机号:host_id

(1)当没有划分子网时,IP地址是2级结构
(2)当划分子网后,IP地址是3级结构
(3)划分子网只是把IP地址的主机号host_id这部分进行再划分,不改变IP地址的原网络号net_id

在这里插入图片描述

IP地址:{<网络号>, <子网号>, <主机号>}

子网划分的优点: 分组转发变的更加简单,通过目的子网号能过滤掉许多主机

流程:

  1. 凡是从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号net_id,先找到那个网络的路由器
  2. 此路由器收到数据报后,再按照目的子网号subnet_id找到主机所在的子网
  3. 最后再将IP数据报交付给主机
    在这里插入图片描述

从外部看依然是一个整体网络,只是从内部划分成了多个子网,提高转发效率

子网划分的优点:

  • 减少了IP地址的浪费——路由器减少了
  • 使得网络的组织更加灵活——由一个总路由器管理
  • 更方便维护和管理——由一个总路由器管理

子网划分的缺点: 减少了能够在网络上连接的主机数


【6.1】子网划分小结

在这里插入图片描述

  1. 某个单位/某个网络内部划分成多个子网,对外仍然是2级网络
  2. 子网字段是从主机号字段分出来的
  3. 每个子网都连接到一个路由器,由其进行管理

减少了路由器的数量;网络的管理更加灵活;更便于维护和管理;缺点是网络上连接的主机数减少了


【7】子网掩码

子网掩码是子网划分之后才有的,从一个IP数据报的首部无法判断源主机所连接的网络是否进行了子网划分

子网掩码作用判断IP是否进行了子网划分

子网掩码规则:

  • 长度32位
  • 某位=1:IP地址中对应为网络号和子网号
  • 某位=0:IP地址中的主机号

网络地址计算公式:<IP地址> AND <子网掩码> = 网络地址

在这里插入图片描述

例如:子网掩码=255.255.224.0;IP地址=141.14.72.24 求网络地址
在这里插入图片描述

在子网划分的情况下,从IP地址不能唯一的得出网络地址,这是因为网络地址取决于那个网络所采用的子网掩码,IP数据报的首部也没有提供子网掩码的信息


【8】无分类编址CIDR

CIDR提出的背景: 互联网遇到了瓶颈,B类地址在1992年就已经分配了一半,互联网主干路上的路由表中的项目数量急剧增长,整个IPv4的地址空间最终将全部耗尽

CIDR干了什么:

  • 消除了传统的A类、B类、C类地址以及划分子网的概念,因而可以更加有效的分配IPv4的地址空间
  • CIDR使用各种长度的“网络前缀”来代替分类地址中的网络号和子网号
  • IP地址从3级降到了2级

CIDR规则:“斜线记法(slash notation)”,在IP地址面加上一个斜线“/”,然后写上网络前缀所占的位数。例如:220.78.168.0/24
在这里插入图片描述

路由聚合:

  • 一个CIDR地址块可以表示很多地址——路由聚合,使得路由表中的一个项目可以表示很多个原来传统分类地址的路由
  • 路由聚合有利于减少路由器之间的路由选择信息的交换,提高了整个互联网的性能
  • CIDR可以根据客户需求分配适当大小的CIDR地址块

【9】路由信息协议RIP

路由信息协议RIP(Routing Information Protocol)是内部网关协议IGP中最先被广泛使用的协议

  • RIP要求网络中的每一个路由器都要维护从它自己到其他每一个目的网路的距离记录

距离(“跳转”):路由器的数量

  • RIP是一种分布式、基于距离向量的路由选择协议
  • RIP不允许在两个网络中选择多条路由

RIP协议路由选择标准: 路由器数量最少(距离最短),哪怕另一条路由的路由器延时更低,只以数量判断

RIP协议的三个特点:

  • 仅仅和相邻路由器交换信息

路由器之间交换路由表,相当于相互讨论得出最短路径(路由器数量最少)

  • 按固定的时间间隔交换信息
  • 交换的信息是路由器自身所知道的全部信息

RIP工作过程:

  1. 路由器初始化阶段只知道直接相连的网络(距离为1),此时路由表空
  2. 每一个路由器开始与数量有限相邻的路由器交换路由表,不断更新信息
  3. 经过若干次交换信息后,所有的路由器都知道到达下一个网络的最短距离和下一跳路由器的地址

RIP的优点: 实现简单,开销小
RIP的缺点:

  • RIP限制了网络规模,最大距离为15
  • 路由器之间交换的信息是路由表,随着网络规模增大,开销也会增大
  • 更新时间的收敛时间较长

RIP小结: RIP就是选择路由距离最短(即路由器数量最少)的路径,不考虑其他因素。为了得到最短路径,路由器之间需要互相交流(交换路由表)得到最短距离。


【10】IPv6

IPv6第六版IP地址,我国在2014年到2015年也逐步停止了向新用户和应用分配IPv4地址,采用具有更大空间的IPv6地址

IPv6的新变化:

  • 更大的地址空间,32位变成了128位
  • 扩展了层次结构
  • IPv6定义了许多可选的扩展首部
  • 允许协议继续扩充
  • 支持即插即用,自动配置
  • 支持资源的预分配

IPv6数据报由2大部分组成:

  1. 基本首部(base header)
  2. 有效载荷(payload):又名“净负荷”,允许后面有多个扩展首部
    在这里插入图片描述

【10.1】IPv4向IPv6过渡

向IPv6过度只能采用逐步演进的方法,同时,还必须使新安装的IPv6系统能够向后兼容(即IPv6系统可以接收和转发IPv4数据报)

两种过度策略:

  • 双协议栈方法
  • 隧道技术方法

双协议栈方法: 双协议栈的主机在和IPv6主机通信的时候是采用IPv6地址,在和IPv4主机通信时采用IPv4地址。会根据DNS服务器返回的地址类型确定IPv4还是IPv6地址
在这里插入图片描述

隧道技术方法: 在IPv6数据报要进入IPv4网络时,将其封装成IPv4数据报,将整个IPv6数据报放到IPv4数据报的数据部分。离开IPv4网络时再取出来
在这里插入图片描述


【11】网络地址转换NAT

(1)特殊主机:专网上的主机
(2)普通主机:互联网上的主机

NAT(Network Address Translation 网络地址转换)

使用场景: 在专用网络上使用专用地址的主机如何与互联网上的普通主机交互,且不用加密?(特殊主机如何与普通主机通信

利用装有NAT的路由器实现特殊主机与普通主机的通信

装有NAT的路由器至少有一个有效的外部全球IP地址,所有在专网上的主机要和外部通信时都要先在NAT路由器上将本地地址转化为全球IP地址。

可以这样理解: 整个专网看作一个整体,整体对外拥有至少一个全球IP地址可以与外界通信,专网上的主机想要与外界通信都要利用这个全球IP地址,这个全球IP地址由NAT路由器实现,这个NAT路由器负责管理整个专网和外部信息的交互
在这里插入图片描述

注意: 只能由专网上的特殊主机发起请求

总结: NAT路由器就是专网和互联网的桥梁


Python 面试100讲(基于Python3.x)

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值