【计算机网络】网络层

发布时间 2023-10-15 01:07:51作者: 影麟

网络层的功能

网络层向上提供简单灵活的、无连接的、尽最大努力交付数据报服务,因此路由器就设计的比较简单,价格低廉。而可靠性由传输层负责。这种设计使得网络造价低、运行灵活。

异构网络互连

异构网络互连(Heterogeneous Network Interconnection)是指将不同类型和技术的网络相互连接起来,实现互通和协同工作。在异构网络互连中,可以将各种网络类型和技术,如局域网(LAN)、广域网(WAN)、无线网络、传感器网络等,通过网关或者协议转换器连接起来,以实现信息的传递和资源的共享。

在实际应用中,异构网络互连常常涉及到网络协议的转换和数据格式的转换。例如,通过网关设备可以将以太网和无线局域网(Wi-Fi)连接起来,使得使用Wi-Fi的终端设备可以与以太网上的设备进行通信。

网关或者协议转换器也叫中间设备(又称中继系统)。

?不同层次的中间设备:

  • 物理层中继系统:转发器,集线器
  • 数据链路层中继系统:网桥交换机
  • 网络层中继系统:路由器
  • 网络层以上的中继系统:网关

异构网络互连使得在不同结构网络中的主机通信时如同在单一网络中通信一样。

路由与转发

?路由器的两个主要功能:路由选择和分组转发。

  • 路由选择:根据分布式算法以及从相邻路由器得到的关于整个网络拓扑的变化情况,动态改变所选择的路由;
  • 分组转发:路由器根据转发表将用户的IP数据报从合适的端口转发出去。

路由表是由路由选择协议生成,同时时而与相邻路由器交换路由信息来维护路由表。

路由器通过路由表进行分组转发,而不是通过转发表

路由表是路由器中存储的重要数据结构,用于决定数据包的最佳转发路径。路由表中包含了网络目的地址和相应的下一跳信息。当路由器接收到一个数据包时,它会查找路由表以确定数据包的下一跳,并将数据包转发到相应的接口。

转发表是路由器中的一部分,用于实际的数据包转发操作。它是根据路由表的信息进行填充的,其中包含了接口、MAC地址等信息。转发表记录了数据包从输入端口到输出端口的映射关系。当路由器收到一个数据包时,它会根据转发表中的映射关系来决定数据包的转发路径。

路由器使用路由表来确定数据包的最佳路径,而转发表则用于实际的数据包转发操作。路由表是决策过程的一部分,而转发表是执行过程的一部分。

在讨论路由选择原理时,往往将路由表和转发表统称为路由表

SDN

软件定义网络(Software-Defined Networking,SDN)是一种网络架构和管理方法,通过将网络的控制平面(Control Plane)与数据平面(Data Plane)分离,并使用集中化的控制器来对网络进行集中管理和编程。SDN的核心思想是将网络控制和数据转发功能分离,使网络可以更加灵活、可编程和可自动化。

在传统网络中,控制平面和数据平面通常集成在网络设备中,例如路由器和交换机。这种集成导致网络的配置和管理依赖于特定的硬件设备,并且难以实现网络的灵活性和可编程性。而SDN的关键创新点是将控制平面集中化,并使用控制器来统一管理和控制网络中的所有设备。

SDN架构中的主要组件包括:

  1. 控制器(Controller):控制器是SDN的核心组件,负责集中化地管理和控制整个网络。控制器与网络设备进行通信,下发控制指令,对网络进行配置和编程。常见的SDN控制器包括OpenDaylight、ONOS和Floodlight等。
  2. 数据平面设备(Data Plane Devices):数据平面设备包括传统的交换机、路由器以及支持SDN的交换机。它们负责实际的数据转发和流量处理,根据控制器的指令进行数据包的转发和处理
  3. 协议(Protocol):SDN使用开放的协议来实现控制器与数据平面设备之间的通信,常见的协议包括OpenFlow、NETCONF和RESTCONF等。

SDN可编程接口分类:

  1. 北向接口:服务上层应用开发者,使其不必关心底层硬件细节;
  2. 南向接口:SDN控制器与转发设备建立的双向会话接口;
  3. 东西向接口:SDN控制器集群内部的控制器之间的通信接口,用于增强整个控制平面的可靠性和可扩展性。

SDN的优点:

  1. 全局集中式控制和分布式高速转发;
  2. 灵活可编程和性能的平衡,控制和转发功能分离后,使得网络可以由专门自动化工具以编程方式配置;
  3. 降低成本,网络设备的制造与功能软件的开发相分离。

SDN的问题:

  1. 安全风险:集中管理易受攻击,如果崩溃,整个网络都会受影响;
  2. 瓶颈问题:随着网络规模增大,控制器可能成为网络性能瓶颈。

拥塞控制

拥塞:通信子网中出现过量分组从而引起网络性能下降的现象。

“过量分组”意味着链路带宽较大,当链路带宽与传输速率接近时,时延会较大。

判断拥塞状态的方法

  1. “轻度拥塞”:随着网络负载的增加,网络的吞吐量明显小于正常的吞吐量;
  2. 拥塞:随着网络负载的增加,网络吞吐量减小;
  3. 死锁状态:随着网络负载的增加,网络吞吐量减小为0.

流量控制与拥塞控制的区别:流量控制要做的是抑制发送端的发送速率,使接收端来得及接收,而拥塞控制是确保通信子网能够传送待传送的数据,是一个全局性问题。

拥塞控制的两种方法

  1. 开环控制:基于事先设定的规则,以预测和调整数据流量。在开环控制中,系统根据预测的网络条件和性能指标来设置发送方的发送速率,而不考虑实际的网络反馈信息。优点是简单快速,无需接收方的反馈信息,但是无法适应动态的网络环境和拥塞状态的变化。
  2. 闭环控制:基于实际反馈信息的控制方法,在闭环控制中,系统根据网络的反馈信息,如延迟丢包等来调整发送方的发送速率。优点是适应网络的变化和拥塞情况,缺点是相对较复杂,需要引入额外的控制信道和协议,也就是给数据头部增加字段。

路由算法

静态路由与动态路由

静态路由算法:又称为非自适应路由算法,由网络管理员手工配置路由信息。静态路由算法简单,开销小,适合拓扑变化小的小型网络。

动态路由算法:又称为自适应路由算法,是指路由表是通过相邻路由之间相互交换路由信息,然后按照一定的算法优化出来的,并且会在一定时隙内不断更新。常用的动态路由算法有距离-向量路由算法链路状态路由算法

距离-向量路由算法

距离-向量路由算法定期地结点的整个路由选择表发送给直接相邻的结点。路由选择表包含目的结点与到目的结点的距离。这个距离是指通过链路的代价。

结点A收到结点B的路由选择更新信息后,有两种改变策略:

  • 新路由,直接添加;
  • 已存在路由,先比较与旧路由的代价大小,于是更新路由代价=Min(旧路由代价,新路由代价+A到B的代价)。

距离-向量路由算法不能一次计算出最佳路由,需要迭代计算,故花费时间较长,收敛较慢。

该算法也可能出现路由环路问题:路由环路是指数据报不断在网络传输,始终到达不了目的地。环路产生原因在路由环路-百度百科中有例子。

链路状态路由算法

该算法要求每个结点都具有所在自治系统完全的网络拓扑信息

每个结点将所有直接链路的状态信息A发送给其他所有结点(这种方式称为洪泛),因此每个结点可以收集到整个网络的链路状态信息B。只有当链路状态发生变化,结点才将B利用Dijkstra算法重新计算路由并将A发送给其他结点。与距离-向量路由算法对比来看,大有“唱反调”的意味。

优点

  1. 每个结点都使用相同的原始状态信息独立地计算路径,而不依赖其他结点的计算结果,这种特点使得链路状态路由算法更具有分布式特性
  2. 链路状态报文在传播过程中不被改变,使得该算法易于查找故障
  3. 收集到所有链路状态报文后,可以一步计算出最佳路由,这就是更快的收敛速度
  4. 链路状态报文只承载单个结点的直接链路的信息,故有更好的规模伸展性

典型链路状态路由算法是OSPF。

层次路由

层次路由(Hierarchical Routing)是一种路由组织和管理的方法,它将网络划分为多个层次结构,以提高路由表的可扩展性和管理效率。在层次路由中,网络被分割成不同的区域或域,每个域内部可以使用内部路由协议进行路由选择,而域之间使用外部路由协议进行跨域路由

层次路由的关键思想是将网络划分为多个自治系统(Autonomous System,AS),每个自治系统可以是一个网络运营商、企业网络或组织内的一个独立网络。每个自治系统具有自己的内部路由协议,用于在自治系统内部进行路由选择。自治系统之间通过外部路由协议交换路由信息。

层次路由的优点在于它提供了更好的可扩展性和管理性,减少了全局路由表的大小和计算负载。通过将网络划分为自治系统和使用层次结构的路由组织,层次路由使得互联网能够有效地支持大规模的网络。

IPv4

IPv4是IP协议版本4。

IPv4分组格式

一个IP分组由首部和数据部分组成。首部前一部分长度为固定20B,后一部分是可选字段,其长度可变。

在这里插入图片描述

?首部的重要字段含义如下:

  1. 版本:IP协议的版本,4位;
  2. 首部长度:4位,最大表示长度15单位,1单位是32位,即4字节,最长表示60字节。
  3. 总长度:16位,指首部与数据之和的长度,单位为字节,因此IP数据报的最大长度为\(2^{16}-1=65535\)字节。以太网的最大传输单元(Maximum Transmission Unit,MTU)为1500B,当IP数据报的长度超过以太网帧的最大传输单元时,就需要进行分片(Fragmentation)处理。
  4. 标识:16位,每产生一个数据报就加1,用于切片处理IP数据报时,标识属于同一个数据报的数据报片,以便以后能重装。
  5. 标志:3位,最低位为MF(More Fragments),MF=1时表示后面还有分片,MF=0时表示时最后一片分片。中间一位是DF(Dont't Fragment),DF=1时表示不允许分片,DF=0时表示允许分片。最高位保留位暂时没有使用,置为0。
  6. 片偏移:13位,表示分片在原分组中的相对位置,片偏移以8字节为单位,意味着除最后一个分片外,其他分片都是8B的整数倍
  7. 生存时间:TTL,Time to Live,8位,限制数据报在网络中传输的时间和跳数,以防止并数据报在网络中无限循环或过长时间滞留。路由器转发分组前,TTL减1,TTL=0时丢弃该分组,向发送方发送ICMP超时消息(Time Exceeded message)。
  8. 协议:8位,指出分组携带的数据适应什么协议,即分组的数据部分上交给哪个协议处理,如TCP、UDP等,6表示TCP,17表示UDP。
  9. 首部校验和:16位,只校验首部,不校验数据。
  10. 源地址字段:4B,发送方IP地址。
  11. 目的地址字段:4B,接收方IP地址。

IPv4地址

连接因特网的每台主机都会被分配一个32位的全球唯一标识符,即IP地址

互联网早期采用的是分类的IP地址,分类的IP地址有两个标识码:网络ID和主机ID。Internet委员会定义了5种IP地址类型以适合不同容量的网络,即A类~E类。主机ID在整个因特网范围唯一,主机ID在其所属的网络ID里唯一,所以IP地址在整个因特网范围也唯一。

类别 最大网络数 IP地址范围 单个网段最大主机数 私有IP地址范围
A 126(2^7-2) 1.0.0.1-127.255.255.254 \(2^{24}-2\) 10.0.0.0-10.255.255.255
B 16384(2^14) 128.0.0.1-191.255.255.254 \(2^{16}-2\) 172.16.0.0-172.31.255.255
C 2097152(2^21) 192.0.0.1-223.255.255.254 \(2^8-2\) 192.168.0.0-192.168.255.255

在这里插入图片描述

?减2的原因

  • A类地址可用网络数减2,减的是全0的保留地址(本网络)和127的环回地址。而B类和C类分别由于前两位和前三位固定为10110,所以不存在全0和127的情况。
  • 每个网络中的最大主机数减2:主机号全0表示整个网络,通常称为网络地址或网络标识符;主机号全1表示广播地址

在这里插入图片描述

?特殊IP地址:

  1. 主机号全0表示本网络
  2. 主机号全1表示网络的广播地址,又称直接广播地址
  3. 127.x.x.x保留位环回自检(Lookback Test)地址,表示主机本身,所以该地址的数据报不会出现在网络上。
  4. 全0表示本网络上的本主机
  5. 全1表示整个TCP/IP网络的广播地址,又称受限广播地址受限是指不会被路由器转发到其他网络

IP的重要特点:

  1. IP地址标志一台主机(或路由器)与一条链路的接口。主机可以有多个接口,也就拥有多个IP地址。一个路由器至少应具有两个IP。
  2. 同一个局域网的主机的IP地址网络号相同。

NAT

?NAT(Network Address Translation)将私有地址转换为公有地址。私有地址在不同私有网是可重复的,这节省了IP地址的消耗。同时隐藏了内部网络结构,降低了受攻击风险。

私有地址只能用于LAN,不能用于WAN。

路由器不转发目的地址是私有IP的数据报。

在这里插入图片描述

子网划分

两级分类IP缺点:IP地址空间利用率有时很低;给每个物理网络分配一个网络号导致路由表太大而使网络性能变差;不够灵活。

划分子网是指从主机号中划分几位作为子网号,IP地址={<网络号>,<子网号>,<主机号>}

对分类的IPv4地址进行子网划分时,子网号不能全0或全1,但在CIDR中可以使用,不过也得确认路由器是否支持。

子网掩码

使用子网掩码来表达对原网络中主机号的借位。

子网掩码是32位的一连串1跟着一连串0。将它与IP地址进行与运算得到相应子网的网络地址(网络地址主机号全0)。

在使用子网掩码技术的情况下,路由表中除了目的网络地址、下一跳地址,还必须增加目的网络的子网掩码一项。

内部主机访问公共资源的过程示例:

  1. 内部主机发送一个请求到外部服务器,例如发送一个HTTP请求给一个网站。
  2. 内部主机的IP地址是私有地址,例如192.168.1.2,而这个地址在公共互联网上是无法直接路由的。
  3. 路由器作为网关连接了内部网络和公共互联网,它有一个公有IP地址,例如203.0.113.1。
  4. 在发送数据包之前,内部主机将其数据包封装在一个IP数据包中,源IP地址为192.168.1.2,目标IP地址为外部服务器的公有地址。
  5. 路由器收到来自内部主机的数据包,并检查目标IP地址。
  6. 路由器使用子网掩码来确定目标IP地址是否位于本地网络之外
  7. 如果目标IP地址是外部网络的地址,路由器会对数据包进行NAT转换。它将源IP地址从私有地址(192.168.1.2)替换为自己的公有地址(203.0.113.1),同时记录该转换
  8. 路由器将转换后的数据包发送到公共互联网上,其中目标IP地址是外部服务器的公有地址。
  9. 外部服务器收到数据包后,将响应发送回路由器的公有地址(203.0.113.1)。
  10. 路由器收到响应后,使用先前记录的NAT转换信息将目标IP地址从公有地址转换回内部主机的私有地址。
  11. 路由器将转换后的响应发送回内部主机(192.168.1.2)。

通过这个过程,内部主机可以通过NAT、私有地址、公有地址和子网掩码来访问公共互联网上的资源。NAT充当了一个中间人,将私有地址转换为公有地址,以实现内部主机与公共互联网之间的通信。私有地址提供了对内部网络的本地标识,而公有地址允许内部主机与外部网络进行通信。子网掩码用于将IP地址划分为网络地址和主机地址,并帮助路由器确定目标地址的位置。

CIDR

CIDR(Classless Inter-Domain Routing),无分类域间路由选择,在变长子网掩码基础上提出。

CIDR使用网络前缀的概念代替子网络的概念,网络前缀的位数是不固定的

CIDR记法:IP::={<网络前缀>,<主机号>}或斜线记法IP::={/<网络前缀位数>}

例如,192.168.0.0/24表示前24位是网络前缀,后8位是主机号。

网络前缀相同的IP地址组成CIDR地址块,这种行为称为路由聚合,也叫做构成超网。路由聚合使得路由表的一项就可以表示多个原来传统分类地址的路由,减少了路由器之间的信息交换,从而提高网络性能。

CIDR地址块的地址数是2的整数次幂,实际可指派的地址数通常是\(2^N-2\),N表示主机号的位数。

内部可采用延长网络前缀的方法来划分子网。

最佳前缀匹配:使用CIDR时,在查找路由表时会得到不止一个结果,此时应选择最长网络前缀的路由,因为网络前缀越长,地址块越小,路由越具体。

路由器的分组转发过程

  1. 从收到的IP分组首部获取目的IP地址D。
  2. 逐行查找转发表,若查找到路由目的地址为D,将匹配到的路由的子网掩码与D相与,若运算结果与网络前缀相同,则开始向该路由的下一跳转发该分组。否则若转发表还有下一行,则重新执行步骤2,否则执行步骤3。
  3. 若转发表中有默认路由,则把分组传送给默认路由,否则报告转发分组出错。

默认路由:用0.0.0.0/0表示默认路由,任何IP地址都会与其相匹配。

IP地址与硬件地址

?为什么在网络通信中需要同时使用MAC地址和IP地址?

数据链路层(通常是以太网)使用MAC地址来唯一标识网络设备(如网卡)在局域网中的身份。MAC地址是硬件级别的标识符,用于在局域网中直接寻址和传递数据帧。

然而,使用MAC地址在以下几个方面存在限制:

  1. 路由和中间设备:当数据需要从一个网络发送到另一个网络时,需要经过路由器和其他中间设备进行转发。这些设备使用IP地址来决定如何路由数据包,因为IP地址是层次化的逻辑地址,能够跨越不同网络进行寻址。
  2. 网络扩展和灵活性:使用MAC地址限制了网络的扩展性和灵活性。MAC地址是在设备制造时分配的,因此无法方便地重新划分和分配。而IP地址使用CIDR和子网掩码的机制,使得网络管理员可以更灵活地划分和分配地址,适应不同网络规模和需求。
  3. 安全性和隐私:使用MAC地址直接进行通信可能暴露设备的真实标识,使得设备易受到攻击和追踪。通过使用IP地址和网络地址转换(NAT)等技术,可以提供额外的安全性和隐私保护,隐藏内部网络的真实标识。

因此,在网络通信中同时使用MAC地址和IP地址的主要原因是为了充分利用它们各自的优势。MAC地址用于数据链路层,提供了局域网内设备之间的直接通信,而IP地址用于网络层,实现了在不同网络之间的路由和通信。

IP分组经过多次路由转发后到达目标网络,再根据MAC地址在目标LAN中以广播方式寻址。

ARP

ARP-地址解析协议-Address Resolution Protocol。由于封装帧需要MAC地址,就需要一个协议来根据IP地址获取MAC地址,这就是ARP。

?ARP工作在网络层,因为ARP涉及到了IP地址。其工作流程:主机A向主机B发送IP数据报,查看主机A的ARP高速缓存中有无主机B的IP地址。如果有,将其MAC地址写入MAC帧,如果没有,就封装目的MAC地址为FF-FF-FF-FF-FF-FF的帧并广播该ARP请求分组,局域网内的所有主机都会收到该分组,如果主机B在同一个局域网内,则直接向主机B发送ARP响应分组(单播),否则通过ARP找到A所在局域网中的一个路由器的MAC地址,然后把分组交给该路由器让其转发给其他网络。

DHCP

DHCP-Dynamic Host Configuration Protocol-动态主机配置协议。

DHCP提供了一种即插即用的联网机制,该机制允许一台主机加入新的网络时不用手动配置IP信息。

DHCP采用C/S模式,有DHCP客户端和DHCP服务器。

DHCP是基于UDP的应用层协议,使用UDP的原因是DHCP客户端未被分配地址,DHCP服务器IP地址也未知。

☘️DHCP的一般运作过程如下:

  1. DHCP客户端广播DHCP发现消息,源地址0.0.0.0,目的地址255.255.255.255.
  2. DHCP服务器收到DHCP发现消息后,广播DHCP提供消息,其中包含提供给DHCP客户端的IP地址,源地址为DHCP服务器地址,目的地址为255.255.255.255.
  3. DHCP客户端收到DHCP提供消息后,如果接受该IP地址,那么就广播DHCP请求消息向DHCP服务器请求提供该IP地址,源地址为0.0.0.0,目的地址为255.255.255.255.
  4. DHCP服务器收到DHCP请求消息后则广播DHCP确认消息,源地址为DHCP服务器地址,目的地址为255.255.255.255.

☘️同一局域网的多个主机选择了分配相同IP地址的DHCP提供消息,DHCP服务器会收到多个请求相同IP地址的DHCP请求消息,分配该IP地址会导致冲突,那么DHCP服务器会拒绝分配该IP。

分配的IP地址有租用期,客户端可以请求续租。

ICMP

ICMP-Internet Control Message Protocol-网际控制报文协议。

ICMP是网络层协议,可以认为是报告差错和异常情况的IP数据报,由此来提高IP数据报的交付成功率。

有两种ICMP报文:ICMP差错报文ICMP询问报文

ICMP类型参考ICMP类型

?不应发送ICMP差错报文的情况如下:

  1. ICMP差错报告报文。
  2. 第一个分片的数据报片的所有后续数据报片。
  3. 具有组播地址的数据报。
  4. 具有特殊地址的数据报。

ICMP的两个常见应用是PingTracert(win)/Traceroute(linux)。?前者工作在网络层,后者工作在应用层

IPv6

IP地址终有耗尽的一天,解决该问题的方法有:前面介绍的CIDR、NAT和接下来学习的IPv6。前两种只是缓兵之计,IPv6才解决根本问题。

IPv6主要特点

  • 更大的地址空间,从IPv4的32位扩展到128位的地址长度。
  • IPv6只允许在源结点分片。
  • IPv6的首部长度必须是8B的整数倍。
  • 更好的安全性,内置了IPsec协议套件,提供了端到端的加密和身份认证。

更多特点参考?IPv6优势特点

IPv6地址

IPv6数据报的寻址方式

  • 单播——传统的点对点通信。
  • 多播——一对多通信,分组被交付给一组计算机。
  • 任播——IPv6新增方式,分组被交给一组计算机之一。

IPv6地址表示说明

IPv6一共128位,16字节,4字节为一域,当某域的开头有多位0但不全是时,可以删掉,若全是0,简写为一个0,若有多个连续的简写0域,可以使用双冒号::代替,一个地址仅允许一个双冒号。

?IPv4到IPv6的过渡

该过渡应逐步演进,IPv6系统应兼容IPv4,能接收和转发IPv4分组。

实现采用两种策略:

  • 双协议栈:在一台设备同时安装IPv4和IPv6系统。
  • 隧道技术:将IPv6数据报封装到IPv4数据包中的数据部分。

路由协议

自治系统

自治系统(Autonomous System,AS):单一技术管理下的一组路由器,AS内部使用相同的路由选择协议和度量来确定分组在AS内的路由,AS之间亦是如此。前面层次路由提到过。

自治系统是层次路由的基本单元,它是一组具有相同路由策略和管理权限的网络组成的集合。自治系统被分配唯一的自治系统号(AS号),用于在互联网中标识和识别不同的自治系统。

域内路由与域间路由

外部网关协议(Exterior Gateway Protocol,EGP)用于自治系统之间的路由交换,常见的外部网关协议包括较早的Border Gateway Protocol(BGP)和现在更广泛使用的BGP-4。这些协议允许不同的自治系统之间共享路由信息,并根据自己的路由策略进行跨域路由选择。

内部网关协议(Interior Gateway Protocol,IGP)用于自治系统内部的路由选择,常见的内部网关协议包括较早的Routing Information Protocol(RIP)和现在更常用的Open Shortest Path First(OSPF)以及Intermediate System to Intermediate System(IS-IS)。这些协议用于在自治系统内部建立路由表,并根据本地网络的拓扑和链路状态选择最佳路径。

RIP

RIP-Routing Information Protocol-路由信息协议。

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

?RIP规定

  • 距离是跳数,每经过一个路由器跳数+1.
  • 每个路由器要维护自身到其他所有网络的距离记录。
  • 最大跳数是15,跳数达到16时视为不可达。限制跳数是为了防止出现环路。
  • 默认每30s广播一次路由更新信息。
  • RIP不支持子网掩码的广播,所以RIP中的网络子网掩码必须相同,RIP2支持变长子网掩码和CIDR。

?RIP特点

  • 仅和相邻路由器交换路由信息。
  • 交换全部信息。
  • 定期交换信息。

?RIP工作过程(每个路由表有三个关键字段:<目的网络N,距离D,下一跳路由器地址X>):

  1. 对地址为X的邻居路由器发来的RIP报文,把其下一跳地址改为X,并将其距离+1.
  2. 对于修改后的RIP报文中的每个项目:
    • 如果原路由表没有目的网络N,直接添加该路由
    • 如果原路由表有目的网络N且下一跳路由器地址是X时,直接替换。否则下一跳路由器地址不是X时,选择距离D小的路由。
  3. 如果180s还没有收到邻居路由器的RIP更新报文,则标记该邻居路由器为不可达,即设置该路由距离为16.

RIP的优点是简单、开销小、收敛过程较快。

?RIP的缺点有:

  • 由于跳数最大为15,所以网络规模受限。
  • 交换完整路由表,随着网络规模增大,开销也越大。
  • 网络故障消息传得慢。
  • 根据跳数选择的路由不一定是最佳路由。

?RIP是应用层协议,使用UDP传送数据,端口520.

OSPF

OSPF-开放最短路径优先协议。

OSPF与RIP的主要区别(也是特点):

  • OSPF向本自治系统的所有路由器发送信息(洪泛),而RIP只向邻居路由器发送信息。
  • OSPF发送的信息是直接相邻的路由器信息和链路状态,而RIP发送整个路由表。
  • OSPF在链路状态发送变化时才发送信息,而RIP时定期发送信息。
  • OSPF是网络层协议,直接使用IP数据报发送信息,而RIP是应用层协议,使用UDP发送信息。

此外,OSPF还有以下特点:

  • 对不同链路根据IP分组的不同服务类型(TOS)设置成不同的代价。
  • 可以将通信量分配给多条代价相同的路径,称为多路径间的负载均衡
  • 所有在OSPF路由器间交换的分组都具有鉴别功能,因此保证了仅在可信赖的路由器间交换链路状态信息。
  • 支持可变长子网掩码和CIDR。
  • 每个链路状态都带上一个32位的序号,序号越大,状态就越新。

OSPF将一个自治系统划分为若干区域,将链路状态信息的洪泛范围限制在区域内,减少了整个网络的通信量,可以适用于更大规模的网络。于是,区域内的路由器只需知道本区域的网络拓扑。上层区域称为主干区域,负责连通下层区域和其他自治域。

OSPF分组.

BGP

BGP-Boder Gateway Protocol-边界网关协议。

BGP用于位于不同AS的路由器的通信。

IP组播

组播概念

组播:源主机发送一个分组给用一个组地址标识的一组目标主机。即一对多通信。

组播使用UDP而非TCP,TCP要建立连接,故只能进行1对1通信。

组播通信在诸如视频流传输、实时音频、多播文件传输和网络游戏等场景中非常有用,因为它可以有效地减少网络带宽和处理资源的使用。通过使用组播,数据只需一次发送,就可以同时传输给一组接收者,而不需要为每个接收者单独发送副本。

一个有多个主机,主机也可以加入多个组。

IPv4中的D类地址就是分配给组播地址的。IPv6也有一些地址空间保留给组播组。

要加入组播组,需使用IGMP协议。

组播只有数据碰到传送路径分叉时才复制分组继续转发。

可以运行组播协议的路由器称为组播路由器

IP组播地址

?组播地址只能用于目的地址。

?组播数据包不能产生ICMP差错报文,因此不能Ping组播地址。

?并非所有的D类地址都能作为组播地址。

?IP组播分为本局域网的硬件组播因特网范围的组播

IPv4组播地址是在D类地址范围(224.0.0.0至239.255.255.255)内分配的,其中部分地址是保留的用于特定目的。IPv6组播地址是在ff00::/8的地址块中分配的,其中某些地址也是保留的。

对于以太网中的组播通信,使用多播MAC地址来表示组播地址。多播MAC地址的第一个字节是01(二进制),这是以太网地址的多播地址范围。接下来的23位用于标识特定的组播组。根据不同的组播协议和实现,剩余的24位可以用于区分更具体的组播组。

?组播IP地址与以太网硬件地址的映射不是唯一的,一个组播IP地址可以对应多个不同的多播MAC地址,因此在IP层还要过滤掉不是本主机要接收的组播数据报

IGMP和组播路由算法

IGMP-Internet Group Management Protocol-因特网组管理协议。顾名思义,是对组播组成员的管理。

IGMP封装在IP报文中,其协议号为2

IGMP的两个工作阶段

  1. 某主机想加入新的组播组,便向该组播组的组播地址发送一个IGMP报文,本地组播路由器接收到IGMP报文后,将其组播成员关系转发给因特网上的其他组播路由器。
  2. 组播路由器需要周期性地探询本地局域网上的主机是否还是组的成员。只要某个组有一个成员相应,那么就认为该组是活跃的,否则不再将该组成员关系转发。

组播路由器实际是找出以源主机为根节点的组播转发树,其中每个分组在每条链路上只传送一次,即组播转发树上的路由器不会收到重复的组播数据报。不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也有不同的多播转发树。

在许多路由器互连的支持硬件多点传送的网络上实现因特网组播时,主要有三种路由计算法:一是基于链路状态的;二是基于距离向量的;三是建立在任何路由协议之上,因此称为协议无关的组播(PIM)。

移动IP

移动IP的概念

传统IP网络中,移动设备从一个网络切换到另一个网络时,它的IP地址也会发生变化。

移动IP技术是指移动站以固定的IP地址实现跨越不同网段的漫游功能,并保证基于网络IP的网络权限在漫游过程中不发生任何改变。移动IP的目标是把分组自动地投递给移动站。

移动站是将其连接点从一个网络或子网改变到另一个网络或子网的主机

移动IP定义了三种功能实体:

  • 移动节点:具有永久IP地址的移动站。
  • 本地代理:通常是连接在归属网络(原始连接的网络)的路由器。
  • 外地代理:通常是连接到被访网络(移动到另一地点所接入的网络)上的路由器。

网络层设备