前言:
学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程
该视频是B站非常著名的计网学习视频,但相信很多朋友和我一样在听完前面的部分发现信息量过大,有太多无法理解的地方,在我第一次点开的时候也有相同的感受,但经过了一段时间项目的学习,对计网有了更多的了解,所以我准备在这次学习的时候做一些记录并且加入一些我的理解,希望能够帮助到大家。
往期笔记可以看专栏中的内容😊😊😊
文章目录
- 04. 网络层:数据平面
- 4.1 导论
- 4.1.1 网络层服务
- 4.1.2 数据平面和控制平面
- 4.1.3 传统方式与 SDN 软件定义网络
- 4.1.3 网络服务模型
04. 网络层:数据平面
4.1 导论
4.1.1 网络层服务
网络层提供的服务
- 路由选择:网络层负责决定数据包从源主机传输到目标主机的路径。这包括确定最佳路径、转发数据包以及处理数据包的转发。
- 转发:网络层根据目标地址信息将数据包从一个网络设备传输到另一个网络设备。转发过程涉及查找路由表、确定最佳输出接口等操作。
- 拥塞控制:网络层可以帮助监测网络中的拥塞情况,并采取措施来减轻拥塞,以保证网络的性能和稳定性。
- 分组传输:网络层将数据分成更小的数据包或分组进行传输,每个数据包包含了目标地址等信息,以便在网络中进行路由选择和转发。
- 错误检测和纠正:网络层可以在数据包中添加差错检测码,以便接收方能够检测并纠正传输过程中发生的错误。
- 数据路由:网络层可以根据不同的网络协议(如IP协议)进行数据路由,决定数据包从源节点到目标节点的路径。
4.1.2 数据平面和控制平面
💡 网络层的数据平面和控制平面是网络功能分离(NFV)和软件定义网络(SDN)等技术中常见的概念,用于描述网络功能的两个关键方面。
- 数据平面(Data Plane):
- 数据平面是网络设备中负责处理数据包转 发和处理 的部分,它实际上执行网络中的数据传输和路由功能。
- 在网络层,数据平面主要包括路由器、交换机等网络设备中的硬件和软件组件,用于根据数据包的目标地址进行转发和路由选择。
- 数据平面的主要任务是根据网络层协议(如IP协议)中的目标地址信息,将数据包从输入端口转发到输出端口,以实现数据在网络中的传输。
- 控制平面(Control Plane):
- 控制平面是网络设备中负责配置和管理数据平面行为的部分,它通常运行网络设备的控制软件,控制 网络设备的行为和路由选择策略。
- 在网络层,控制平面主要包括路由器、交换机等网络设备中的控制软件和管理协议,用于配置路由表、生成路由信息、处理路由更新等功能。
- 控制平面的主要任务是根据网络中的拓扑结构和路由策略,生成路由表并更新网络设备中的转发表,以指导数据平面进行数据包的转发和路由选择。
4.1.3 传统方式与 SDN 软件定义网络
💡 在传统网络中,路由器和交换机等网络设备既负责数据包的转发(数据平面),又负责路由计算、路径选择等控制功能(控制平面),这就带来了如下的问题:
- 静态配置和管理: 在传统网络中,网络设备的配置和管理通常是静态的,需要手动配置 每个 设备的路由信息、访问控制列表(ACL)等,这样的配置不够灵活和自动化,容易导致配置错误和网络故障。
- 硬件依赖性: 传统网络通常依赖专用硬件设备,如路由器、交换机等,这些设备成本高昂且功能相对固定,难以快速适应不断变化的网络需求。
- 难以扩展: 传统网络的扩展性有限,当网络规模增大或者需要新增功能时,往往需要进行 大规模 的更改和升级,这会增加管理和维护的成本。
- 难以实现灵活的流量控制: 传统网络对于流量的控制和管理相对较为困难,难以实现细粒度的流量控制、优先级和质量服务(QoS)等功能。
- 对故障的应对能力较弱: 传统网络中的故障难以及时发现和快速恢复,可能导致网络中断或者性能下降。
所以相对于难以维护的分布式的架构,更希望有一种集中式的解决方案,来增强灵活性、可拓展性和管理效率等方面,这就是 SDN 网络。
💡 SDN 网络的控制平面和数据平面是按照如下的方式进行架构的:
- 控制平面(Control Plane):负责网络的控制和管理,包括路由计算、流量工程、安全策略等功能。在 SDN 中,控制平面被抽象出来,集中在一个或多个控制器 中,通过控制器来对网络设备进行 配置和管理。
- 数据平面(Data Plane):负责实际的数据转发和处理,包括数据包的交换、路由和转发等操作。在 SDN 中,数据平面通常由网络设备(如交换机、路由器)实现,但它们的行为受控制器的指令影响。
💡 要理解 SDN 网络首先要知道它由哪些部分构成:
- 控制器(Controller):是 SDN 网络的核心组件,负责管理和控制网络中的所有设备。控制器根据网络策略和需求生成相应的路由表,并向数据平面中的设备发送配置指令,实现网络的动态调整和管理。
- 北向接口(Northbound Interface):控制器与上层应用程序之间的接口,用于接收和传递应用层的网络策略、需求和配置信息。
- 南向接口(Southbound Interface):控制器与网络设备之间的接口,用于向数据平面中的设备发送配置指令,如 OpenFlow 协议就是一种常用的南向接口协议。
- 应用层(Application Layer):SDN 架构中的应用程序层,包括网络监控、流量优化、安全管理等各种应用,通过北向接口与控制器交互,实现对网络的管理和控制。
在典型的 SDN 网络中,路由器(或交换机)通过向 SDN 控制器发送信息来请求路由表、流表等数据,并接收来自控制器的指令以执行相应的操作。
同时,控制器也与应用层进行通信,接收来自应用层的策略、需求等信息,并根据这些信息来指导网络的行为。
💡 什么是流表?
- 流表(Flow Table)是SDN(软件定义网络)中交换机或路由器上存储的数据结构,用于定义数据包的处理规则。每个流表项包含匹配条件和相应的操作指令。
- 流表中的匹配条件通常由数据包的各个字段组成,例如源 IP 地址、目标 IP 地址、源端口、目标端口、协议类型等。当数据包到达交换机或路由器时,会与流表中的各个项 逐一进行匹配。当找到与数据包匹配的流表项时,交换机或路由器会执行与该流表项关联的操作,例如转发数据包到特定的端口、丢弃数据包、修改数据包的字段值等。
- 控制器可以通过应用层下发指令或策略来修改流表。应用层可以根据网络的需求或特定的策略来生成相应的指令,然后将这些指令传递给控制器,控制器再将其转化为对流表的操作,从而实现网络的动态管理和控制。
4.1.3 网络服务模型
💡 服务模型:是指在计算机网络中定义和描述服务提供方式的一种抽象概念。它描述了网络中的各种服务类型、服务质量、数据处理方式等,以及用户和应用程序可以期望从网络中获得的特定服务。
网络层的服务可以用一个模型来评估
- 对单个数据包的服务可以评估其传输是否可靠、延迟是否有保障
- 对数据包流的传输需要保证流的保序、带宽、延迟等情况
网络层除了以上的服务还可以提供连接建立的服务,与 TCP 在传输层建立的逻辑的链接不同,这里的连接上每个路由器都会去维护两个主机之间的连接,所以说 TCP 是 面向连接,而在网络层提供的连接服务是 有连接。
一下是几个网络服务模型,展示了 ATM 网络和 Internet 提供的服务