计算机网络知识笔记详解

网络层知识

第四章、网络层

4.1 网络层提供的两种服务

4.1.1 虚电路服务

该服务采用面向连接的通信方式,使典型网络能够向用户提供可靠传输的服务。该服务的设计理念是模仿打电话所使用的面向连接的通行方式。当两台计算机进行通信时,也当先建立连接(但在分组交换中是建立一条虚电路VC)以预留双方通信的一切资源。然后双方就沿着建立的虚电路发送分组。
在这里插入图片描述

4.1.2 数据包服务

该服务的设计理念是:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据包服务。网络在发送分组时不需要建立连接。每一个分组独立发送,网络层不提供服务质量的承诺,也就是所传送的数据可能出错、丢失、重复和失序。如果主机中的进程之间的通信需要是可靠的,那么就由网络的主机的传输层负责(包括差错处理、流量控制 )
在这里插入图片描述

4.1.3 服务对比

在这里插入图片描述

4.2 网际协议IP

4.2.1 简介

网际协议IP是TCP/IP体系中两个最重要的协议之一。是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通,与IP协议配套使用的还有三个协议:

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

4.2.2 网络互连的中间设备

从一般概念来讲,将网络互相连接起来要使用一些中间设备。根据中间设备所在层次,可以有一下时钟不同的中间设备。

  • 物理层使用的中间设备–转发器
  • 数据链路层使用的中间设备–网桥或桥接器
  • 网络层使用的中间设备–路由器
  • 网路层以上使用的中间设备–网关。用网关连接两个不兼容系统需要高层协议的的转换

4.2.3 IP地址分类

4.2.3.1 何为IP分类

所谓分类就是将IP地址划分为若干个固定类,这里面的A类、B类和C类地址都是由两个固定长度的字段组成,第一个字段是网络号,标志主机所在的网络、第二个字段是主机号。IP地址=网络号+主机号
在这里插入图片描述

4.2.3.2 为什么要划分IP分类

在这里插入图片描述

4.2.3.3 各类IP地址的指派范围

在这里插入图片描述

4.2.3.4 各类IP地址的特殊IP地址

在这里插入图片描述

4.2.3.5 IP地址的重要特点

在这里插入图片描述

4.2.4 IP地址和硬件地址

4.2.4.1 IP地址和硬件地址区别

从层次的角度上看,物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上使用的地址,是一种逻辑地址(称IP地址为逻辑地址是因为IP地址是用软件实现的)在这里插入图片描述

4.2.4.2 数据包的传输过程解析

在发送数据是,数据从高层下到底层,然后才通过通信链路上传输,使用IP地址的数据包一旦交给了数据链路层,就被封装成MAC帧。MAC帧在传送时使用的原地址和目的地址都是硬件地址,这两个地址都写在MAC帧的首部。
连接在通信链路上的设备(主机或路由器)上接收到MAC帧时,根据MAC帧首部的硬件地址决定手下或丢弃。只有在剥去MAC帧的首部和尾部后把MAC层的数据上交给网络层,网络层才能在IP数据报的首部找到源IP地址和目的地址。在这里插入图片描述
数据包传输过程需要注意的地方:

  • IP层抽象的互联网上只能看到IP数据包。虽然IP数据报要经过路由器R1和R2的两次转发,但是在它的首部中的源地址和目的地址始终是不变的,路由器只根据目的站的IP地址的网络号进行路由选择的。==但是路由器中的路由表是如何得出的呢?解答看–>4.2.4.3
  • 在局域网的数据链路层,只能看见MAC帧。IP数据包被封装在MAC帧中。MAC在不同的网络上传送时,其MAC帧的首部中得到源地址和目的地址是要变化的。比如图中开始在H1到R1之间传送时,MAAC帧首部中写的是硬件底子好HA1发送到硬件地址HA3,路由器R1收到此MAC帧后,在数据链路层丢弃原来的MAC帧首部和尾部。在转发时,在数据链路层要重新添加MAC帧的首部和尾部。这时首部中的源地址和目的地址便成为了HA4和HA5,以此变化。。。这里有一个问题,主机或路由器怎么知道应当在MAC帧的首部填入什么样的硬件地址呢?解答看–>4.5
4.2.4.3 地址解析协议ARP(IP地址–>硬件地址)

问题:在实际应用中,我们经常遇到这个问题:已经知道了一个主机或路由器的IP地址,在网络层上传递给数据链路层的时候就需要找到其相对应的硬件地址,也就是MAC的目的地址和源地址。地址解析协议ARP就是用来解决这样的问题的

4.2.4.3.1 地址解析协议ARP的作用:

从网络层使用的IP地址解析出在数据链路层使用的硬件地址。

4.2.4.3.2 逆地址解析协议RARP的作用:

将自己知道的硬件地址通过RARP协议找到其IP地址

4.2.4.3.3 ARP协议的工作过程(如何查找硬件地址):

每台主机都设有一个ARP高速缓存(存放着IP地址到硬件地址的映射表,若存有目的IP地址便无需广播查询),当主机A向**本局域网**的某台主机B发送IP数据报时,就先在ARP高速缓存中查看有无主机B的IP地址,如果找到主机B的IP地址,就在ARP高速缓存中查询其对应的硬件地址,在把该硬件地址写入MAC帧,然后通过局域网把该MAC帧发往该硬件地址。
如果找不到B主机的IP地址,那么主机A就会主动运行ARP进程,在本局域网上广播一个ARP请求分组。ARP请求分组的主要内容是:“我的IP地址是209.0.0.5,硬件地址是00-00-C0-15-AD-18。我想知道IP地址为209.0.0.6的主机的硬件地址”。在本局域网双的所有主机运行的ARP进程都收到该ARP请求分组,主机B的IP地址与ARP请求分组中要查询的IP地址一致就收下这个ARP请求分组,并向主机A发送ARP响应分组,同时在这个ARP响应分组中写入自己的硬件地址,但需要主机该响应分组不是广播,而是普通的单播,直接发送给主机A,即一个源地址和一个目的地址。主机A收到主机B的ARP响应分组后,就在其ARP告诉缓存中写入主机B的IP地址到硬件地址的映射数据。

4.2.4.3.4 使用ARP的典型情况

,

  • 发送方式主机(如H1),要把IP数据包发送给同一个网络上的另一台主机(如H2)。这时H1发送ARP请求分组(在网1上广播),找到目的主机H2的硬件地址同时写入主机H1的ARP高速缓存中
  • 发送方是主机(如H1),要把IP数据包发送到另一个网络上的一台主机(如H3或H4)。这时H1发送ARP请求分组(在网1上广播),找到网上上的一个路由器R1的硬件地址。剩下的工作有路由器R1完成。
4.2.4.4 既然在网络链路层传送的帧时按照硬件地址找到主机的,那么为什么还需要抽象的IP地址,而不直接使用硬件地址进行通信?

由于全世界存在着各式各样的网络,它们使用不同的硬件地址(可能位数不同、进制不同。。。),要使这些异构的网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此由用户或用户主机来完成这项工作几乎是不可能的事(连接在互联网上的主机数不胜数)。但IP编址能把这个问题解决了。连接到互联网上的主机只需要各自拥有唯一一个IP地址,它们之间就像连接在同一个网络撒花姑娘那样方便,因为调用ARP的复杂过程都是由计算机软件自动进行的,对用户来说不知道的。因此在虚拟的IP网络上用IP地址进行通信给广大的计算机用户带来了极大的方便。

4.2.5 IP数据报的格式

在这里插入图片描述

  • 版本:通信双方的IP协议版本必须一致,广泛使用IPv4
  • 首部长度:4字节为单位,其十进制是15,也就是首部长度最大为60字节
  • 区分服务:不必理会
  • 总长度:首部和数据之和的长度,字节为单位,最大长度为65535字节
  • 标识:IP软件在存储器中维持一个计数器,每产生一个数据包,计数器就加1,赋值给该字段,辨识的作用是将数据分片进行恢复,而不是标识该数据报,因为IP是无连接服务。
  • 标志:占3位,最低位为MF,MF=1表示后面还有分片,MF=0表示这个最后一个分片;中间字段是DF,当DF=0表示不能分片。
  • 片偏移:该分片在原分组中的偏移位置,每个分片的长度一定是8字节的倍数
  • 生存时间TTL: 占8位,表示数据包在互联网中的寿命,经过一个路由器的转发,TTL减1,为0丢弃
  • 协议:占8位,协议字段指出此数据包携带的数据是使用何种协议,以便目的主机的IP层知道将数据部分上交给哪个协议进行处理
  • 首部检验和:占16位,是为了检查该数据包是否出错,这个字段值检验数据包的首部,但不包括数据部分,每经过一个路由器都要重新计算首部检验和(一些字段,如生存时间,标志,片偏移等都可能发生变化)
  • 源地址:占32位
  • 目的地址:占32位
  • IP数据报首部的可变部分:支持排错,测量以及安全等措施

4.2.6 IP层路由器转发分组的流程解析

在这里插入图片描述
如果目的主机在本网络中,那么发送方便可通过地址解析协议找到目的主机直接交付,如果不在同一个网络那么便需要发送给路由器,直到找到目的主机所在网络,对于每一个路由器最主要的信息便是目的网络地址(目的IP地址的网络号)和下一跳地址,那么路由器如何知道下一跳的路由地址呢?–>通过目的网络地址来确定下一跳路由器
解答:当路由器接收到一个IP数据报时,根据其目的IP地址的网络号从路由表得出下一跳路由器的IP地址的网络号后(如图中路由表),交给数据链路层的网络接口软件。网络接口软件负责把下一条路由器的IP地址转换成硬件地址(必须使用ARP协议),并将此硬件地址放在数据链路层MAC帧的首部,然后根据这个硬件地址找到下一跳的路由器。

4.3 划分子网和构造超网

4.3.1 划分子网

4.3.1.1 划分子网的缘由:
  • 传统的IP地址空间的利用率有时很低:当一个单位申请一个B类网络,可是连接的主机数并不多,可是又不想申请一个足够的C类网络就会导致IP地址的浪费
  • 网络号过多会导致路由器的项目过多,查找耗时,性能下降
  • 两级IP地址不够灵活:有时情况紧急,一个单位需要在新的地点马上开通新的网络。但是在申请到一个新的IP地址之前,新增加的网络是不可能连接到互联网上的。
    为了较好地解决以上问题,从1985年起IP地址 中又增加了一个“子网号字段”,使两级IP地址变成三级IP地址,这种做法便叫做划分子网或子网寻址或子网路由选择
4.3.1.2 子网IP地址格式

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

4.3.1.3 划分子网的思路:

本单位当拥有一个网络号之后,便可将该网络号划分成若干个子网络号,比如B类网络号145.13.0.0,如果该单位决定子网号占8位,那么便可划分子网如:145.13.3.0、145.13.7.0、145.13.21.0等,其子网的主机号便是8位,凡是从其他网络发送给本单位某台主机的IP数据包,仍是根据IP数据报的目的网络号找到连接在本单位上的路由器。但此路由器在接收到IP数据包后,在按目的网路号和子网号找到目的子网号,把IP数据报交付给目的主机。

4.3.1.4 子网掩码

假定一个IP数据报已经到达了目的主机所在的网络号,那么它是否进行了划分子网,这个我们是不知道的,因为IP数据报中的首部无法看出源主机和目的主机所连接的网络是否划分了子网,因此我们必须想出另外的方法,那便是使用子网掩码
在这里插入图片描述
那么如何确定该网络是否划分了子网?
解答:利用三级IP地址的子网掩码与接收到的数据报的目的IP地址145.13.3.10逐位相’与‘操作,如果能得到145.13.3.0,那么便代表进行了子网划分,并且目的子网地址是145.13.3.0,否则没有划分子网

A类地址的默认子网掩码是255.0.0.0或0xFF000000
B类地址的默认子网掩码是255.255.0.0或0xFFFF0000
C类地址的默认子网掩码是255.255.255.0或0xFFFFFF00

子网掩码是一个网络或一个子网的重要属性。路由器在和相邻路由器交换路由信息时,必须把自己所在网络或子网的子网掩码告诉路由器。路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出网络的子网掩码。若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。

4.3.2 使用子网时分组的转发

在划分子网的情况下,分组转发算法必须做相应的改动,我们应该知道,使用子网划分之后,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳地址

  1. 从收到的数据包的首部提取目的IP地址D
  2. 先判断是否为直接交付。对路由器直接相连的网络逐个进行检查;用各网络的子网掩码和D逐位相与操作,看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付(当然还需要把D转换成物理地址,把数据封装成帧发送出去),转发结束。否则就是间接交付,执行3
  3. 若路由表中有目的地址为D的特定主机路由,则把数据报发送给路由表中所指明的下一跳路由器;否则执行4
  4. 对路由表中的每一行(目的网络地址,子网掩码、下一跳地址),用其中的子网掩码和D逐位相与操作,其结果为N。若N与该行的目的网络地址匹配,则把数据报发送给指明的下一跳路由器,否则执行5
  5. 若路由表中有一个默认路由器,则把数据报传送给路由表所指明的默认路由器;否则执行6
  6. 报告转发分组出错
    在这里插入图片描述
    在这里插入图片描述

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

4.3.3.1 无分类编址出现的原因:

划分子网在一定程度上减轻了IP地址浪费的情况,但仍面临一下问题:

  • B类网络在1992年已经分配一半,差不多全部分配
  • 互联网主干网杀昂的路由表中的项目数急剧增加(几千到几万)
  • 整个IPv4地址空间即将耗尽
4.3.3.2 什么是无分类编址

其实早在1087年,RFC1009就指明了在一个划分子网的网络中可同时使用几个不同的子网掩码。使用变长子网掩码VLSM,可进一步提高IP地址的利用率。在VLSM的基础上有进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择CIDR

4.3.3.3 无分类编址的特点
  • CIDR消除了传统的A类、B类和C类地址以及划分子网的概念。CIDR把32位的IP地址划分为前后两个部分。前面部分是“网络前缀”,用来指明网络,后面部分则是用来指明主机。因此CIDR使IP地址从三级编址又回到两级编址,但这已是无分类的两级编址。其格式是:
    IP地址 ::={<网络前缀>,<主机号>}
    CIDR还使用“斜线记法”,或称CIDR记法,即在IP地址后面加上斜线/,然后写上网络前缀所占的位数
  • CIDR把网络前缀都相同的连续IP地址组成一个“CIDR地址快”,我们只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的起始地址、最大地址和中间地址。
    在这里插入图片描述
  • 为了更方便的进行路由选择,CIDR使用32位的地址掩码,跟子网掩码是一样的
  • 分配到一个CIDR地址块的单位,仍然可以在本单位内根据需要划分出一些子网
4.3.3.4 路由聚合(也叫构成超网)

在这里插入图片描述

4.3.3.5 CIDR的好处

在这里插入图片描述

4.3.3.6 最长前缀匹配

在这里插入图片描述

4.3.3.7 二叉线索查找路由表

4.4 网际控制报文协议ICMP

4.4.1 ICMP的作用

为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP(Internet Control Message Protocol),ICMP不是高层协议,ICMP报文是转在IP数据保中,作为其中的数据部分,它允许主机或路由器报告差错情况和提供有关异常情况的报告。

4.4.2 ICMP报文格式

在这里插入图片描述

  • 种类:ICMP差错报告报文、ICMP询问报文
  • 代码字段:是为了进一步区分某种类型中的几种不同情况
  • 校验和字段:是用来校验整个ICMP报文,我们应该还记得,IP数据报首部的校验和并不校验IP数据报的内容
  • ICMP差错报文类型详解:
    • 终点不可达
      当路由器或主机不能交付数据报时就向源点发送终点不可达报文,当经过16个路由器时就认为该数据报不可达。
    • 时间超过
      当路由器收到生存时间为0的数据报时,除了丢弃该数据报外,还要向源点发送时间超过报文。当终点在预定规定的时间内不能收到一个数据报的全部数据报片时,就把已经收到的数据报片都丢弃,并向源点发送时间超过报文
    • 参数问题
      当路由器或目的主机收到的数据报的首部中有的字段不正确时,就该丢弃该数据报,并向源点发送参数问题报文
    • 改变路由(重定向
      路由器把改变路由报文发送给主机,让主机知道**下次应将数据报发送给另外的路由器–>怎么知道发给另外路由是最好的呢?**(可通过更好的路由)
      解答:互联网中的单主机的数据远大于路由器的数量,出于效率的考虑,这些主机不和连接在网络上的路由器定期交换路由信息。在主机刚开始工作的时候,一般在路由表中设置一个默认路由器的IP地址。不挂数据包要发送给哪个目的地址,都一律先把数据报发送给这个默认路由器,而这个默认路由器知道每一个目的网络的最佳路由(可通过其他路由器交换路由信息知道的)如果默认路由器发送主机发往某个目的地址的数据报的最佳路由器应该经过网络撒花姑娘的另一个路由器时,叫改变路由报文把这个情况告诉主机,于是,该主机就在其路由表中增加一个项目,到某某目的地址应该经过路由器R
    • ICMP差错报告报文的数据字段的内容
      在这里插入图片描述

4.4.3 ICMP的应用举例

在这里插入图片描述

4.5 互联网的路由选择协议

本章是讨论路由表中的路由是怎样得来的

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

4.5.1.1 理想的路由算法
  • 算法必须是正确和完整的
    所谓正确是指管着各路由表中所指引的路由,分组一定能够最终到达目的网络和目的主机
  • 算法在计算上应简单
  • 算法能够适应网络通信量和网络拓扑的变化
    当网络汇总得到通信量发生变化时,算法能自适应地改变路由以均衡各链路的负载。当某个或某些结点、链路发生故障不能工作时,或者修理好了在投入使用,算发也能及时的改变路由。
  • 算法应具有稳定性,路由不会不停地改变
  • 算法应是公平的,路由选择算法对所有用户都是平等的
  • 算法应是最佳的,路由选择算法应当能够找出最好的路由,使得分组平均时延最小而网络的吞吐量最大
4.5.1.2 分层次的路由选择协议

互联网采用的路由选择协议主要是自适应的(动态的)、分布式路由选择协议。由于以下两个原因,互联网采用分层次的路由选择协议:

  • 互联网的规模非常大,如果让所有的路由器知道所有的网路应怎样到达,则这种路由表将非常大,而所有的路由器之间交换路由信息所需要的带宽就会使得互联网的通信链路饱和
  • 许多单位不愿意了解自己单位网络的布局细节和本部门所采用的路由选择协议,但还希望连接到互联网上

为此,可以把整个互联网划分为许多较小的自治系统(Autonomous System)。自治系统AS是在单一技术管理下的一组路由器,而这些路由器使用一种自治系统内部的路由选择协议和共同的度量。一个AS对其他的AS表现出的就是一个单一的和一直的路由选择策略,这样就将互联网上的路由器划分为许多的AS,这样就划分了层次,一个大的ISP就是一个自治系统。这样,互联网就可以把路由选择协议划分了两大类

  • 内部网关协议IGP(Interior Gateway Protocol)
    自治系统内部使用的路由选择协议,而这与在互联网中其他自治系统选用什么路由选择协议无关。这类协议使用最多是RIP、OSPF协议。
  • 外部网关协议EGP(External Gateway Protocol)
    处在不同的自治系统边界的主机实现通信需要该协议,目前使用最多的协议是BGP的版本4。

4.5.2 内部网关协议RIP

4.5.2.1 RIP协议的工作原理

RIP是一种分布式的基于距离定量的路由选择协议,是互联网的标准协议,其最大的优点就是简单,它要求网络中的每一个路由器都要维护从让自己到其他每一个目的网络的距离记录,到相邻的路由器的距离记为1,以此类推!那么我们就想知道,它是怎么知道和其他路由器之间的距离呢?它又是跟哪些路由器交换信息呢?交换什么信息呢?
要解决这个问题我们需要明白RIP协议的三大特点:

  • 哪些路由器?------仅和相邻路由器交换路由信息。
  • 交换什么信息-?-----路由器交换的信息是当前本路由器知道的全部信息,及自己现在的路由表
  • 什么时候交换信息?------按固定的时间间隔交换路由信息。

网络连接:A–>B–>C–>D
简单来说:一开始我们的路由器中的路由表A是空的,然后它就跟相邻的路由器交换各自的路由信息,比如路由器B,其中路由器B又相邻路由器C,当然路由器B还有许多相邻路由器,这时候路由器B就和刚加入网络的路由器A交换信息,告诉A说,我距离路由器C的距离是1,那么A收到信息之后便明白它距离C的距离–就是在B的基础上加1,也就是2,同理可知A距离D的距离就是3,路由器之间各自不断地跟相邻的路由器交换信息那么每一个路由器便能知道到达网络上所有路由器的路由信息。

4.5.2.2 RIP协议的报文格式

在这里插入图片描述
RIP协议的数据包时封装在传输层的用户数据报UDP里面。

  • 命令:指出报文的意义。1代表请求路由信息,2代表路由响应信息或未被请求而主动发出路由更改信息
  • 地址族标志符:标志所使用的地址协议,IP协议为2
  • 路由标记:自制系统号ASN
4.5.2.3 RIP协议的缺点

在这里插入图片描述

4.5.3 内部网关协议OSPF

开放最短路径优先OSPF(Open Shotrest Path First),它是为了克服RIP协议的缺点在1989年开发出来的,但我们需注意OSPF只是一个名字,它并不代表其他的路由选择协议不是最短路径优先,实际上,所有的在自治系统内部使用的路由选择协议都是要寻找最短路径的

4.5.3.1 OSPF协议与RIP协议的区别

OSPF协议最主要的特征就是使用分布式的链路状态协议,而不是像RIP协议那样的距离向量路径。RSPF的三个特征也和RIP不同

  • 发给哪些路由器?------向本自治系统中所有路由器发送信息。这里使用洪泛法,路由器通过所有的端口向相邻路由器发送信息,而每一个相邻路由器又向其将该信息发送给其相邻路由器(但不再发送给刚刚发来的信息的那个路由器),最终网络上所有路由器都能得到该路由信息
  • 发送什么信息?------就是本路由器与相邻的所有路由器的链路状态,但这只是路由器知道的部分信息。所谓链路状态就是说明:本路由器都和哪些路由器相邻,以及该链路的度量(表示费用、距离、时延、带宽等等)
  • 什么时候发送信息?------只有当链路状态发生变化时,路由器才向所有路由器发送信息,不像RIP需要定期交换路由信息

因此我们可以知道最终OSPF协议网络中的所有路由器最终能建立一个链路状态数据库,这个数据库就是全网的拓扑结构图,而RIP协议中的每一个路由器知道到所有网络的距离以及下一跳路由器,但是不知道全网的拓扑结构(只有知道了下一路由器才知道下一跳怎么走)

4.5.3.2 OSPF自治系统划分区域

在这里插入图片描述

  • 划分区域的好处
    把利用洪泛法交换链路状态信息的范围局限在每一个区域而不是整个自治系统,这就减少了整个网络的通信量。在一个区域内部的路由器自知道本区域的完整网络拓扑,而不知道区域的网络拓扑情况。为了是每一个区域能够和本区域意外的区域进行通行,OSPF使用层次结构的区域划分。
  • 主干区域:规定标识符0.0.0.0
    主干网的作用便是用来连接其他在下层的区域,从其他区域来的信息都有区域边界路由器进行概括,如R3、R4、R7 。
  • 边界路由器
    每个区域内都有一个区域边界路由器,该路由器和主干区域进行通信
  • 主干路由器:
    在主干区域内的路由器叫做主干路由器
  • 自治系统边界路由器
    该路由器专门和本门自治系统之外的其他自治系统t交换路由信息
4.5.3.3 OSPF协议报文格式

在这里插入图片描述
注意:OSPF不像RIP协议那样将报文封装在UDP中,然后UDP在封装在IP数据报中,它是直接用IP数据报进行传输的(其IP数据报首部的协议字段值是89,代表使用OSPF协议传输数据)
OSPF分组使用24字节的固定长度首部,分组的数据部分可是5种类型分组中的一种

  • 版本:当前的版本为2
  • 类型:可以是5种类型分组中的一种
  • 分组长度:包括OSPF首部在内的分组长度,以字节为单位
  • 路由器标识符:标志发送该分组的路由器的接口的IP地址
  • 区域标识符:分组属于的区域的标识符
  • 检验和:用来检测分组中的差错
  • 鉴别类型:目前只有两种,0(不用)和1(口令)
  • 鉴别:鉴别类型为0时就填入0,鉴别类型为1时就填入8个字符的口令
  • 五种分组类型
    • 类型1:问候分组
      用来发现和维持邻站的可达性
    • 类型2:数据库描述分组
      向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息(摘要信息就是哪些路由器的链路状态信息以及其序号已经写入了数据库)
    • 类型3:链路状态请求分组
      向对方请求发送某些链路状态项目的详细信息
    • 类型4:链路状态更新分组
      用洪泛法对全网更新链路状态,路由器使用这种分组将其链路状态通知给邻站
    • 类型5:链路状态确定分组
      对链路更新分组的确定
4.5.3.4 OSPF协议的特点

在这里插入图片描述

4.5.3.5 OSPF的基本操作

在这里插入图片描述

在这里插入图片描述
在网络运行的过程中,只要一个路由器的链路状态发生变化,该路由器就要使用链路状态更新分组,用洪泛法向全网更新链路状态。

4.5.4 外部网关协议BGP

4.5.4.1 选择外部网关协议的原因
  • 互联网的规模太大,使得自治系统AS之间的路由选择非常困难。对某些AS来说,1000的代价可能不算什么,但是对于另一个AS来说可能就是不可接受的怀路由。那么比较合理的做法便是在自治系统之间交换可达性信息,告诉目的网路可经过ASx。
  • 第二、自治系统AS之间的路由选择必须考虑有关策略。由于相互连接的网络的性能差异很大,根据最短距离找出的路径可能不太合适。可能到达目的网络经过AS1的代价是最好的,但是由于AS1不愿意让这些数据通过本自治网络。
  • 由于上述情况,边界网关协议BGP只能是力求寻找一跳能够到达目的网络且比较好的路由,而并且要寻找一条最佳路由。
4.5.4.2 路径向量路由选择协议

在配置BGP时,每一个自治系统的管理员都要选择至少一个路由器作为该自治系统的BGB代言人,一般来说,两个BGP发言人都是通过一个共享网络连接在一起的,而BGP发言人往往就是BGP边界路由器,但也可以不是BGP边界路由器。
一个BGP代言人与其他AS的BGP发言人要交换路由信息,就要先建立TCP连接端口号为179,然后在此连接上交换BGP报文建立BGP会话,利用BGP会话交换路由信息,如增加了新的路由,或撤销过时的路由,以及报告差错的情况等等。使用TCP连接能提供可靠的服务,也简化了路由选择协议。使TCP连接交换路由信息,彼此成为对方的邻站。
在这里插入图片描述

  • BGP的四种报文
    • OPEN报文:与其他代言人连接关系
    • UPDATE报文:通告某一路由的信息,以及列出要撤销的多条路由
    • KEEPALIVE报文:周期性证实邻站的连通性,说明继续维持这种关系
    • NOTIFICATION报文:用来发送检测到的差错
4.5.3.3 BGP会话建立过程

在这里插入图片描述

4.5.3.4 BGP报文格式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.5.5 路由器的构成

在这里插入图片描述

从图中可以看出,整个路由器结构可以划分为两大部分:路由选择部分和分组转发部分

  • 路由选择部分(控制部分)
    其核心构件是路由选择处理机。路由选择处理机的任务就是通过所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表
  • 分组转发部分
    • 交换结构
      根据转发表,对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去,其本身就是包含在路由器的网络。
    • 输入端口
    • 输出端口
      输入端口和输出端口都包含物理层、数据链路层和网络层的处理模块,物理层记性比特流的接收。数据链路层按照数据链路层接收传送的分组的帧。网络层将帧的首部和尾部去除。若结构到的IP数据包时路由器之间交换路由信息的分组(RIP或OSPF分组等)则把这种分组送给路由器的的路由选择部分中的路由选择处理机。若接收到的分组时数据分组,则按照首部中的目的地址查找转发包,根据得出的结果,分组就经过交换结构到达合适的输出端口。
4.5.5.1 路由器分组处理过程

在这里插入图片描述
从以上的讨论可以看出,分组在路由器的输入端口和输出端口都可能会在队列中排队等候处理。若分组处理的速率或分组的输出速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面在进入队列的分组由于没有存储空间而只能被丢弃。以前我们提到故宫的分组丢就是发生在路由器中的输入或输出队列产生溢出的时候,当然,设备或线路出故障也可能使分组丢失。

4.5.5.2 路由器的交换结构

交换结构是路由器的关键构建,正是这个交换构构件把分组从一个输入端口装一袋某个合适的输出端口。图中no给出了三种交换方法
在这里插入图片描述
最早使用的路由器就是利用普通的计算机,用计算机的CPU作为路由器的路由选择处理机。路由器的输入和输出端口的功能和传统的操作系统中的I/O设备一样。当路由器的某个输入端口收到一个分组时,就用中断方式通知路由选择处理机。然后分组就从输入端口复制到存储器中。路由器处理机从分组首部提取目的地址,査找路由表,再将分组复制到合适的输出端口的缓存中。若存储器的带宽(读或写)为每秒M个分组,那么路由器的交换速率(即分组从输入端口传送到输出端口的速率)一定小于M2。这是因为存储器对分组的读和写需要花费的时间是同一个数量级

图445(a)的示意图表示分组通过存储器进行交换。与早期的路由器的区别就是,目的地址的查找和分组在存储器中的缓存都是在输入端口中进行的。

图4-45(b)是通过总线进行交换的示意图。采用这种方式时,数据报从输入端口通过共享的总线直接传送到合适的输出端口,而不需要路由选择处理机的干预但是,由于总线是共享的,因此在同一时间只能有一个分组在总线上传送。当分组到达输入端口时若发现总线忙(因为总线正在传送另一个分组),则被阻塞而不能通过交换结构,并在输入端口排队等待。因为每一个要转发的分组都要通过这一条总线,因此路由器的转发带宽就受总线速率的限制。

图4-45©画的是通过纵横交换结构( crossbar switch fabric进行交换。这种交换机构常称为互连网络( (interconnection network),它有2N条总线,可以使N个输入端口和N个输出端口相连接,这取决于相应的交叉结点是使水平总线和垂直总线接通还是断开。当输入端口收到一个分组时,就将它发送到与该输入端口相连的水平总线上。若通向所要转发的输出端口的垂直总线是空闲的,则在这个结点将垂直总线与水平总线接通,然后将该分组转发到这个垂直输出端口。但若该垂直总线已被占用(有另一个分组正在转发到同一个输出端口),则后到达的分组就被阻塞,必须在输入端口排队。
持续更新中·········

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值