计算机网络知识点(网络层)

重要内容

虚拟互联网的概念。

IP地址与物理地址的关系。

传统的分类的IP地址(包括子网掩码)和无分类域间路由选择CIDR。

路由选择协议的工作原理。

4.1 网络层提供的两种服务

  • 面向连接:虚电路服务(打电话使用面向连接的通信方式)。
  • 无连接:数据报服务 。

在互联网中,网络层向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务,即网络层不提供服务质量的承诺。

4.2 网际协议IP

  • 地址解析协议 ARP(Address Resolution Protocol)
  • 网际控制报文协议 ICMP(Internet Control Message Protocol)
  • 网际组管理协议 IGMP(Internet Group Management Protocol)

ARP画在最下面,因为 IP 经常要使用这个协议,ICMP 和 IGMP 画在这一层的上部,因为它们要使用 IP 协议。
图

4.2.1 虚拟互联网络

虚拟互联网络即逻辑互联网络,忽略物理层的客观异构性,在网络层看起来好像是一个统一的网络,即互联网可以有多种异构的网络组成

网络互联的一些中间设备:

  • 物理层:转发器
  • 数据链路层:网桥
  • 网络层:路由器
  • 网络层以上:网关

4.2.2 分类的IP地址

IP地址:用来唯一标识全球连接在互联网上的主机的接口的标识符。

IP地址的划分方式历史:分类的IP地址 – > 子网的划分 – > 构成超网
在这里插入图片描述
IP地址前几位为类位别,标明该IP地址属于哪类。

IP地址的点分十进制表示法:把IP地址的每八位用十进制表示,便于记忆书写。

本网络:A类地址中网络号全为0的IP地址。

环回测试:A类地址中网络号为01111111的IP地址用作本地软件环回测试本主机的进程之间的通道。

路由器仅根据目的主机IP地址中的网络号来转发分组。

实际IP地址是主机与网络链路之间的一条链路的标识(一个主机连接在两个不同的网络上时,该主机对应的就有两个IP地址)。

一个网络是指具有相同网络号的主机的集合,因此用网桥或转发器连接起来的若干局域网属于同一个网络

互联网上的网络号都是平等的,与其范围大小没有关系。

无名网络:两个路由器直接相连时并不分配IP地址,这两个路由器之间的网络称为无名网络,或无编号网络。

4.2.3 IP地址与硬件地址

硬件地址时物理层和数据链路层使用的地址。

IP地址是IP数据报在网络层及以上各层使用的一种逻辑地址。

MAC帧中的源地址和目的地址都是硬件地址,整个IP数据报在物理层被封装在数据部分,IP地址对数据链路层不可见。

数据报在路由其之间传送时,途径的路由器地址不出现在IP数据报中,当前路由器根据目的IP地址自主路由出下一路由器地址。

分组每次经过路由器转发时都要将MAC的首部和尾部丢弃重新封装,即变换MAC帧中的目的地址和源地址
在这里插入图片描述

4.2.4 地址解析协议ARP

ARP协议:根据已知的IP地址解析出该主机的硬件地址。

RARP协议:根据硬件地址解析出该主机对应的IP地址。

主机ARP高速缓存:用来存放从IP地址映射硬件地址的映射表,并且动态更新(方法:新增或超时删除)这个映射表。

新增的方法:通过向本局域网内所有的主机发送ARP请求分组,在得到响应分组后便将这个目的主机的硬件地址写入ARP高速缓存中。同时,ARP高速缓存中对每个硬件地址都设置了生存时间,超过生存时间的硬件地址便进行删除操作,便于进行动态更新,防止出现发送到错误(过时的)硬件地址处。

ARP工作流程:

  1. 当A要向本局域网的B发送IP数据报,就现在其ARP高速缓存中查看有无B的IP地址。若有,则发到IP对于的硬件地址。
  2. 若无,则A自动运行ARP,按以下步骤找到B的硬件地址。
    1)ARP进程在本局域网上广播一个ARP请求分组。内容是“我的IP是xx,硬件地址是xx。我想知道IP地址xx的主机的硬件地址是多少” 。
    2)本局域网所有主机运行的ARP进程收到此ARP请求分组。
    3)主机B的IP与请求分组里面的IP一致,收下并向A发送ARP响应分组(单播);其他主机则不理睬;并且B将A的IP地址到硬件地址的映射写入自己的ARP高速缓存。
    4)主机A收到B的ARP响应分组后,就在其ARP高速缓存写入B的IP到硬件地址的映射。

注意:地址解析协议ARP只能用来解决同一个局域网(包括该网络和与该网络相连的路由器)内的地址映射,网络之间的路由并能不能做到,不同局域网,需要先转发到路由器,路由器再查表进行转发

从硬件地址到IP地址的解析每次转发分组时都要重复进行,但这种开销是不可避免的,是为方便的在各种异构网络之间进行转发工作而屏蔽网络硬件之间的异构性,从而体现出虚拟网络的含义。

4.2.5 IP数据报的格式

标识字段:该标识不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

标志:MF = 1,表示后面“还有分片”;MF = 0,表示这是若干数据报片的最后一个。DF = 1,表示“不能分片”。

片偏移:指出较长分组在分片后,某片在原分组中的相对位置。片偏移以8字节为偏移单位。每个分片的长度一定是8字节的整数倍

生存时间:现在的意义改为“跳数限制”,指明数据报在因特网中至多可经过多少个路由器
在这里插入图片描述

4.2.6 IP层转发分组的流程

路由表的每一条路由信息,最主要的信息是:(目的网络地址,下一跳地址)

既然IP数据报中没有下一跳路由器的IP地址,那么待转发的数据报又怎样能够找到下一跳路由器:

  1. 当路由器收到一个待转发的数据报,根据数据报中的目的IP地址,从路由表中得出下一跳路由器的IP地址。
  2. 将IP地址交由数据链路层的网络接口软件,网络接口软件将IP地址转换成硬件地址(ARP)。
  3. 将此硬件地址放在链路层的MAC帧首部,然后根据这个硬件地址找到下一跳路由器。

路由器分组转发算法:

  1. 从数据报的首部提取目的主机IP地址D,得出目的网络地址为N。
  2. 若N就是与此路由器直接相连的某个网络地址,则进行直接交付(将D转换为硬件地址)。
  3. 若路由表中有目的地址D的特定主机路由,则将数据报交给路由表中所指明的下一跳路由器。
  4. 若路由表中有到达网络N的路由,则将其交给路由表指明的下一跳路由器。
  5. 如有路由表中有默认路由,则将其交给默认路由。
  6. 报告转发分组出错。

4.3 划分子网和构造超网

4.3.1 划分子网

分类地址存在的问题: IP地址空间的利用率有时很低(A类、B类)。 给每一个物理网络分配一个网络号会使路由表变得太大,因为使网络性能变坏。两级IP地址不够灵活(需要新开网络,但是在申请到新的IP地址之前,是不可能连接到因特网)

划分子网:

  1. 一个拥有多个物理网络的单位,可将所属的物理网络划分为若干个子网。这个单位对外仍然表现为一个网络
  2. 划分子网的方法是从网络的主机号借用若干位作为子网号。IP地址 ::= {<网络号>,<子网号>,<主机号>}。
  3. 从其他网络发给本单位某个主机的IP数据报:
    1)根据IP数据报的目的网络号找到连接在本单位网络上的路由器。
    2)路由器按照目的网络号和子网号找到目的子网,把IP数据报交付目的主机。

注意:当没有划分子网时,IP地址是两级结构。划分子网后IP地址就变成了三级结构。划分子网只是把IP地址的主机号 host-id 这部分进行再划分,而不改变IP地址原来的网络号 net-id。

子网掩码:从一个IP数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。使用子网掩码可以找出IP地址中的子网部分
在这里插入图片描述

4.3.2 使用子网时分组的转发

在不划分子网的两级IP地址下,从IP地址得出网络地址是个很简单的事。但在划分子网的情况下,从IP地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。因此分组转发的算法也必须做相应的改动。

在划分子网的情况下路由器转发分组的算法:

  1. 从收到的数据报首部提取目的IP地址D。
  2. 先判断是否直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相与,看结果是否和相应的网络地址相同。若相同,则直接交付。
  3. 路由表中有目的地址为D的特定主机路由。
  4. 对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和D相与,其结果为N,若N等于该行的目的网络地址,则把数据报传送给改行指明的下一跳路由器。
  5. 默认路由。
  6. 报告转发分组出错。

4.3.3 无分类编址CIDR(构成超网)

划分子网在一定程度上缓解了因特网在发展中遇到的困难。然而在1992年因特网仍然面临三个必须尽早解决的问题,这就是B类地址在1992年已分配了近一半,眼看就要在1994年3月全部分配完毕。因特网主干网上的路由表中的项目数急剧增长,整个IPv4的地址空间将全部耗尽。

无分类域间路由选择 CIDR:

  1. CIDR消除了传统的A类、B类和C类地址以及划分子网的概念。CIDR 把32位的IP地址划分为两个部分 IP地址 ::= {<网络前缀>,<主机号>},网络前缀用来指明网络,后面的部分用来指明主机。IP地址从三级编址(使用子网掩码)又回到了两级编址。
  2. CIDR还使用“斜线记法”,它又称为CIDR记法,即在IP地址面加上ー个斜线 / 然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中1的个数)。CIDR把网络前缀都相同的连续的IP地址组成“CIDR地址块”

路由聚合:一个CIDR地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的个项目可以表示很多个原来传统分类地址的路由。路由聚合也称为构成超网。CIDR虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)。对于/20地址块,它的掩码是20个连续的1。斜线记法中的数字就是掩码中1的个数。

最长前缀匹配:使用CIDR时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配。网络前缀越长,其地址块就越小,因而路由就越具体。

使用二叉线索查找路由表:当路由表的项目数很大时,怎样设法减小路由表的查找时间就成为一个非常重要的问题。为了进行更加有效的查找,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的就是二叉线索。IP地址中从左到右的比特值决定了从根结点逐层向下层延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址。为了提高二叉线索的查找速度,广泛使用了各种压缩技术。
在这里插入图片描述

4.4 网际控制报文协议ICMP

为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议ICMP。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。

注意:ICMP不是高层协议,而是IP层的协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去
在这里插入图片描述

4.4.1 ICMP报文的种类

ICMP分为两种:ICMP差错报告报文和ICMP询问报文。
在这里插入图片描述
改变路由(重定向):出于效率考虑,主机不和连接在网络上的路由器定期交换路由信息。主机刚开始都发到默认路由,若默认路由发往某个地址的最佳路径时经过另一个R,则用该报文通知主机。该主机在其路由表中增加一项:到某目的地址应经过路由器R(而不是默认路由)。

4.4.2 ICMP的应用举例

ping:用来测试两个主机之间的连通性。ping使用了ICMP回送请求与回送回答报文。PING是应用层直接使用网络层ICMP的例子,它没有通过运输层的TCP或UDP

traceroute:跟踪一个分组从源点到终点的路径。从源主机向目的主机发送一连串IP数据报,数据报中封装的是无法交付的UDP用户数据报。第一个数据报P1的生存时间TTL设置为1。到达R1时,R1丢弃P1,并向源主机发送一个ICMP时间超过报文。第二个数据报P2,TTL设置为2。P2先经过R1,再到R2,丢弃P2,并向源主机发送一个ICMP时间超过报文 … 最后一个数据报到达目的主机时,TTL=1,不转发,因此不减1。但是无法交付,使用了非法的端口号。因此目的主机向源主机发送ICMP终点不可达报文。

4.5 因特网的路由选择协议

4.5.1 有关路由选择协议的几个基本概念

理想的路由算法的特点:

  • 正确和完整的:“正确”的含义:沿着路由表所指引的路由,分组一定能够最终到达目的网络、主机。
  • 计算简单。
  • 自适应性:能适应通信量和网络拓扑的变化
  • 稳定性:在通信量和网络拓扑相对稳定的情况下,路由算法应该收敛于一个可以接受的解
  • 公平的。
  • 最佳的:相对于某一种特定要求最佳。

分层次的路由选择协议:因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上。因此互联网将互联网划分为许多较小的自治系统

自治系统 AS:在单一技术管理下的一组路由器(一个AS对其他AS表现出的是一个单一的和一致的路由选择策略)。

两种路由选择协议:

  • 内部网关协议IGP:在自治系统内部使用的路由选择协议,域间路由选择,有多种,如RIP,OSPF。
  • 外部网关协议EGP:在自治系统之间使用的路由选择协议,域内路由选择,目前使用的是BGP协议。

4.5.2 内部网管协议RIP

工作原理:RIP是一种分布式基于距离向量的路由选择协议。

  • 分布式:每个路由器不断地和相邻路由器交换信息(所交换的式当前路由器知道的所有路由信息)。
  • 距离向量:从当前路由器每经过一个路由器则距离加一,记录到达每个路由器的距离,以找出最小距离。

三个要点:

  • 和哪些路由器交换信息:仅和相邻的路由器交换信息。
  • 交换什么信息:交换当前本路由器所知道的全部信息,即自己的路由表。
  • 在什么时候交换信息:按固定时间间隔交换路由信息(例如每隔30秒)。

距离向量算法:

  1. 对地址X的相邻路由器发来的RIP报文,先修改报文中的所有项目:下一跳改为X,距离加1(每个项目的三个关键数据:到目的网络N,距离d,下一跳路由器X)。
  2. 对修改后RIP报文中的每一个项目,重复以下步骤:
    若原来路由表中无目的网络N,则添加。
    若有,且下一跳是X,则替换为新的。
    若有,且下一跳不是X,但是距离更短,则更新;否则什么都不做。
  3. 若3分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(距离为16表示不可达)。

RIP2可以支持变长子网掩码和无分类域间路由选择CIDR。

特点:好消息传播的快,坏消息传播的慢

RIP报文通过运输层的用户数据报UDP传送,使用UDP端口520
算法的本质是:A->B = A->X + X->B(A->B最小,则X->B最小,因为A->X为1)

4.5.3 内部网管协议OSPF

特点:开放最短路径优先(为克服RIP协议制定的协议),使用了Dijkstra的最短路径算法。并不表示其他的路由选择协议不是最短路径优先(实际上所有在自治系统内的路由选择协议都是要找一条最短路径),使用分布式的链路状态协议。

链路状态:就是说明本路由器都和哪些路由器相邻,以及该链路的度量(费用、距离、时延、带宽等)。

三个要点:

  • 和哪些路由器交换信息:向本自治系统的所有路由器发送信息。
  • 交换什么信息:发送的信息是与本路由器相邻的所有路由器的链路状态,也即链路的度量(费用、距离、时延、带宽等)。
  • 在什么时候交换信息:当链路状态发生变化时

OSPF可以支持变长子网掩码和无分类域间路由选择CIDR。

洪范法:路由器通过所有的端口向所有的相邻路由器发送信息,而所有的相邻路由器也是同样的做法,(但发送的对象不包括之前向他发送信息的那个路由器),从而最终使得整个局域网都得到该信息的一个副本,而发送的信息就是与本路由器相邻的所有路由器的链路状态(链路状态是指相邻路由器及到达该路由器的代价),只有链路状态发生变化时,才使用洪范法发送信息,(不是定期交换)。

所有路由器最终都能建立一个链路状态数据库,这个数据库实际就是全网的拓扑结构图。

OSPF直接用IP数据报传送。OSPF的五种分组类型:问候分组,数据库描述分组,链路状态请求分组,链路状态更新分组,链路状态确认分组。
在这里插入图片描述

4.5.4 外部网管协议BGP

在不同自治系统AS之间的路由选择为什么不使用内部网管协议,如RIP或OSPF:

  • 因特网规模太大,使得AS之间路由选择非常困难(路由表数据巨大,不适合用最短路径算法;且度量的标准在各个AS不同),比较合理的是在自治系统之间交换“可达性”信息。
  • AS之间的路由选择必须考虑有关策略。(政治、经济、安全的考虑)。

外部网关协议:用来解决不同自治系统之间的路由选择策略。边界网关协议不追求寻找最佳路径,而是在可到达的基础上找到一条相对较好的路径

BGP发言人:在BGP协议中,一个自治系统中用来与其他自治系统(通过TCP连接)交换路由信息的路由器。

交换信息的两个BGP发言人彼此成为临站或对等站,所交换的信息是可达性信息。

每个发言人除了要运行BGP协议外,还要运行本自治系统内部的协议。
在这里插入图片描述

4.5.5 路由器的构成

路由器的结构:路由选择部分 和 分组转发部分。

  • 路由选择部分:控制部分,核心是路由选择处理机,路由选择处理机的作用是构造路由表,同时定期更新维护路由表路由表。
  • 分组转发部分:由三部分组成,输入输出端口、交换结构(交换结构的工作是将收到的分组根据路由表从输入端口转发到输出端口)。

三种转发方法:通过存储器进行交换,通过总线进行交换,通过纵横交换结构(总线网)进行交换。
在这里插入图片描述

4.6 IP多播

4.6.1 IP多播的基本概念

IP多播:许多应用需要由一个源点发送到许多终点,即一对多通信

在因特网中每一个主机必须有一个全球唯一的IP地址,如果某个主机想接收某个特定多播组的分组,怎样做:

  1. 在多播数据报的目的地址填写多播组的标识符(IP地址) 。
  2. 设法让加入到这个多播组的主机IP地址与多播组地址关联起来。

多播组的IP地址为D类IP地址,多播地址只能用来当作目的地址,不能用作源地址

4.6.2 在局域网上进行硬件多播

多播组的MAC地址:是由MAC地址和D类IP地址的后23位拼接起来的。

由于多播IP地址和以太网硬件地址的映射关系不唯一,因此收到多播数据报的主机还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。

4.6.3 网际组管理协议IGMP和多播路由选择协议

IGMP协议:IGMP协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出某个多播组。

多播组协议的特点:多播转发必须动态地适应多播组成员的变化。多播路由器在转发多播数据报时,不能仅根据数据包中的目的地址来转发数据报,还要知道数据报的来源(多播组内的成员发送信息时,就不用再向该成员转发数据报)。多播成员或非多播成员均可发送多播数据报。

多播路由选择协议 :连接在局域网上的多播路由器还必须和其他多播路由器协同工作,以便将多播数据报用最小的代价发送给所有组成员。多播路由选择实际上要找出以源主机为根节点的多播转发树

三种方法:

  • 方法一:洪泛与减除(适用于较小的多播组)
    洪泛:采用反向路径广播RPB策略。(每一个路由器在收到一个多播数据报时,先检查数据报是否从源点经最短路径传送过来的。检查方法:只要检查从本路由器寻找到源点的最短路径的第一个路由器是否是刚才把多播数据报发送来的路由器即可,若是,继续转发,否则,丢弃)。
    减除:在多播转发树的某个路由器发现它的下游树枝已没有改多播组的成员,就应该把它和下游树枝一起剪除。
    在这里插入图片描述
  • 方法二:隧道技术(适用于多播组的位置在地理上很分散的情况)
    将多播数据报封装在单播数据报中。
    在这里插入图片描述
  • 方法三:基于核心的发现技术
    对每一个多播组G指定一个核心路由器,给出它的IP单播地址。核心路由器创建对应于多播组G的转发树。

4.7 虚拟专用网VPN和网络地址转换NAT

4.7.1 虚拟专用网VPN

本地地址:仅在机构內部使用的IP地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。

全球地址:全球唯一的P地址,必须向因特网的管理机构申请。

10.0.0.0到10.255.255.255,172.16.0.0到172.31.255.255,192.168.0.0到192.168.255.255,这些地址只能用于ー个机构的內部通信,而不能用于和因特网上的主机通信。专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。
在这里插入图片描述

4.7.2 网络地址转换NAT

专用网内部分配了专用地址的主机,想和因特网上的主机通信,怎么办:使用NAT(网络地址转换协议)。这种方法需要专用网连接到因特网的路由器上安装NAT软件(至少有一个有效的外部全球IP地址)。所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。

网络地址转换的过程:

  1. 内部主机 X 用本地地址 IPx 和因特网上主机 Y 通信所发送的数据报必须经过NAT路由器。
  2. NAT路由器将数据报的源地址 IPx 转换成全球地址 IPg ,但目的地址 IPy 保持不变,然后发送到因特网。
  3. NAT路由器收到主机Y发回的数据报时,知道数据报中的源地址是 IPy 而目的地址是 IPg 。
  4. 根据NAT转换表,NAT路由器将目的地址 IPg 转换为 IPx ,转发给最终的内部主机X。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值