Network-Layer
网络层的功能概述
网络层提供的服务
- 面向无连接,不负责提供可靠的服务
- 将确保数据可靠的任务交给了上层的运输层(TCP)
- 网络层负责为互联网上任意两台主机提供分组交换服务
- 在发送主机和接收主机对之间传送段(segment)
网络层功能划分
- 转发——数据平面:将分组从路由器的一个输入端口移到合适的输出端口
- 本地每个路由器的功能
- 转发功能
- 传统方式(基于目标地址+转发表)
- SDN[software-defined-networking]方式(基于多个字段+流表)
- 路由——控制平面:确定分组从源到目标的路径
- 网络范围内的逻辑
- 决定数据报如何在路由器之间路由,决定数据报从源到目标主机之间的端到端路径
- 控制平面方法
- 传统的路由算法:在路由器中被实现
- SDN:在远程的服务器中实现
网络层:数据平面
路由器的组成
- 路由器结构概况
- 路由:运行路由选择算法/协议(RIP,OSPF,BGP)生成路由表
- 转发:从输入到输出链路交换数据报——根据路由表进行分组的转发
- 输入端功能
- 基于目标的转发
- 最长前缀匹配转发
- 输入端口缓存:当交换机构的速率小于输入端口的汇聚速率时,在输入端口可能要排队
- 交换结构:将分组从输入缓冲区传输到合适的输出端口
- 通过内存交换
- 通过总线交换
- 通过互联网路的交换
- 输出端口:当数据报从交换机构的到达速度比传输速度快就需要输出端口缓存,由调度规则选择排队的数据报进行传输
- 调度策略:FIFO(先进先出)、优先权调度、RR(轮转调度)等
IP:Internet protocol
-
位于网络层的协议
- 路由协议:负责路由选择,如RIP,OSPF,BGP
- IP协议:地址约定、数据报格式、分组处理的约定
- ICMP协议:错误报告,路由器信令
-
IP数据报的格式
-
IP分片和重组:链路层有最大的携带数据长度,对于大的IP数据报需要分割成若干个小的数据报,最后在目标主机进行分片的重组,IP头部信息用于标识,排序相关分片,因此每个分片都有一个20字节的头部
-
IPv4地址
-
IP编址:32位标识,对主机或路由器的接口编址
-
一个IP地址和一个接口关联
-
接口:路由器和主机通常有多个接口
-
一个主机/路由器有多个IP地址,IP地址不固定
-
IP地址分类(分等级的地址机构)
-
IP编址:CIDR(Classless Inter Domain Routing)
-
特殊的IP地址
- 网络号全0:当前网络
- 网络号全1:在本网络上进行广播
- 网络号127:本机,用于本地环回测试
- 主机号全0:当前主机
- 主机号全1:所有主机
-
IP地址的表示方法:点分十进制,将每8个二进制转换为一个三位的十进制数,方便人类记忆
-
-
子网
- 概念:IP地址被划分为子网部分(高位)和主机部分(低位)。若一个子网内的节点它们的IP地址的高位部分相同,这些节点构成的网路的一部分叫做子网,子网内各主机可以在物理上直接到达
- 子网掩码(划分子网和主机部分):子网掩码用于指示一个IP地址的哪部分是网络地址,哪部分是主机地址的32位二进制数。子网掩码与IP地址一起使用,用于确定一个IP地址所属的子网。
-
DHCP : Dynamic Host Configuration Protocol
- 功能:用于动态地为计算机网络中的设备分配IP地址、子网掩码、网关地址等网络配置信息,以及其他一些网络参数
- 租约机制: DHCP采用了租约(Lease)机制来管理分配的IP地址。每个设备在获取到IP地址后,会与DHCP服务器建立一个租约,约定了该IP地址的使用期限。一旦租约到期,设备需要向DHCP服务器发送请求来续租或者释放IP地址。
- 简化网络管理: DHCP使网络管理更加简化和灵活。网络管理员可以集中管理DHCP服务器,而无需手动管理每个设备的IP地址和配置信息。
- DHCP的连接步骤:
- 发现(Discover): 客户端在刚刚连接到网络时,会向网络中的广播地址(通常为255.255.255.255)发送DHCP Discover消息,以发现可用的DHCP服务器。这个消息包含了客户端的MAC地址等信息。
- 提供(Offer): DHCP服务器接收到DHCP Discover消息后,会向客户端发送DHCP Offer消息,提供可用的IP地址以及其他网络配置信息。服务器为客户端分配一个可用的IP地址,并将该地址与客户端的MAC地址进行绑定。
- 请求(Request): 客户端收到DHCP Offer消息后,会选择其中一个提供的IP地址,并向网络中的广播地址发送DHCP Request消息,请求使用该IP地址。如果有多个DHCP服务器提供了IP地址,客户端会选择其中一个进行请求。
- 确认(Acknowledge): DHCP服务器收到DHCP Request消息后,会向客户端发送DHCP Acknowledge消息,确认分配的IP地址和其他网络配置信息。同时,服务器会更新内部状态,标记该IP地址已经分配给了客户端,并为该IP地址设置租约时间。
通用转发和SDN
-
转发和路由
- **转发:**对于从某个端口到来的分组转发到适合的输出端口(局部)
- **路由:**决定分组从源端口到目标端口的路径(整体)
-
SDN(Software Defined Networking):逻辑上集中的控制平面
SDN详解:SDN(Software-Defined Networking,软件定义网络)是一种网络架构和技术范式,旨在通过软件化和集中化的方式,实现网络的灵活性、可编程性和自动化。传统的网络架构中,网络设备(如交换机、路由器)的控制平面(Control Plane)和数据平面(Data Plane)通常是紧密耦合的,控制功能和数据转发功能是由网络设备本身完成的。而在SDN中,控制平面和数据平面被分离开来,网络控制逻辑被集中到了一个或多个控制器中,从而实现了网络的可编程性和灵活性。
网络层:控制平面
路由选择算法:将网络进行图抽象
- Link State
- 邻居发现: 每个路由器通过发送链路状态信息来发现相邻的路由器,并建立邻居关系。这些链路状态信息包括了路由器所连接的网络接口、连接状态、带宽、延迟等信息。
- 链路状态广播: 每个路由器定期广播自己所知道的链路状态信息到整个网络中。这些广播消息包含了本路由器的链路状态以及它所知道的相邻路由器的链路状态。
- 链路状态数据库更新: 每个路由器收到链路状态广播消息后,会更新自己的链路状态数据库。链路状态数据库记录了整个网络的拓扑信息,包括了每个路由器的邻居关系和链路状态。
- 最短路径计算: 每个路由器使用Dijkstra算法基于链路状态数据库来计算到达网络中所有其他路由器的最短路径。Dijkstra算法的基本思想是从起点出发,逐步扩展已知的最短路径集合,直到到达目标节点。
- Distance Vector(DP:)
- 初始化: 每个路由器首先初始化自己的距离向量,将自己到达目的地的距离设置为0,将所有其他目的地的距离设置为无穷大(或者一个较大的初始值)。同时,每个路由器也记录了到达邻居路由器的距离,这些距离可以通过直接相连的接口得知。
- 距离向量更新: 每个路由器周期性地向它的相邻路由器发送自己的距离向量,告诉相邻路由器它到达各个目的地的距离。相邻路由器收到距离向量后,会更新自己的距离向量,根据接收到的距离向量更新到达目的地的距离。
- 距离向量传播: 更新后的距离向量被传播到相邻的路由器,然后再传播到它们的相邻路由器,依此类推,直到整个网络中的所有路由器的距离向量都得到更新。这个过程持续进行,直到网络中的每个路由器的距离向量不再发生变化。
- 距离向量计算: 每个路由器根据收到的距离向量和自己的距离向量计算到达目的地的最短路径距离。通常采用的计算方式是Bellman-Ford算法,即通过比较相邻路由器的距离向量来更新自己的距离向量
Internet中自治系统内部的路由选择:RIP
-
路由信息协议 RIP RoutingInformationProtocol𝑅𝑜𝑢𝑡𝑖𝑛𝑔𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛𝑃𝑟𝑜𝑡𝑜𝑐𝑜𝑙 是内部网关协议 IGP 中最先得到广泛使用的协议。
-
RIP 是一种分布式的、基于距离向量的路由选择协议。
-
RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
-
RIP中的距离也称为**“跳数”hopcountℎ𝑜𝑝𝑐𝑜𝑢𝑛𝑡,**因为每经过一个路由器,跳数就加 1。直接相连的路由器跳数为1。
-
RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。(但其实不一定,有的路径可能速度更快但路由数较多)
ISP之间的路由选择:BGP
ICMP协议:Internet Control Message Protocol 网际控制报文协议
- ICMP的功能:ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。从而更有效地转发IP数据报和提高交付成功的机会。
- ICMP属于网络层协议,**ICMP报文存在于IP数据报的数据部分。**ICMP报文分为差错报告报文和询问报文。
- ICMP差错报告报文类型
- 终点不可达
- 时间超过
- 参数问题
- 改变路由(重定向)Redirect𝑅𝑒𝑑𝑖𝑟𝑒𝑐𝑡(存在更好的路径)
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2542608082@qq.com