中科大计网学习记录笔记(十八):网络层:数据平面:导论

news2025/1/13 13:42:37

前言:

学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第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 网络层服务

网络层提供的服务

  1. 路由选择:网络层负责决定数据包从源主机传输到目标主机的路径。这包括确定最佳路径、转发数据包以及处理数据包的转发。
  2. 转发:网络层根据目标地址信息将数据包从一个网络设备传输到另一个网络设备。转发过程涉及查找路由表、确定最佳输出接口等操作。
  3. 拥塞控制:网络层可以帮助监测网络中的拥塞情况,并采取措施来减轻拥塞,以保证网络的性能和稳定性。
  4. 分组传输:网络层将数据分成更小的数据包或分组进行传输,每个数据包包含了目标地址等信息,以便在网络中进行路由选择和转发。
  5. 错误检测和纠正:网络层可以在数据包中添加差错检测码,以便接收方能够检测并纠正传输过程中发生的错误。
  6. 数据路由:网络层可以根据不同的网络协议(如IP协议)进行数据路由,决定数据包从源节点到目标节点的路径。
4.1.2 数据平面和控制平面

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

💡 网络层的数据平面和控制平面是网络功能分离(NFV)和软件定义网络(SDN)等技术中常见的概念,用于描述网络功能的两个关键方面。

  1. 数据平面(Data Plane)
    • 数据平面是网络设备中负责处理数据包转 发和处理 的部分,它实际上执行网络中的数据传输和路由功能。
    • 在网络层,数据平面主要包括路由器、交换机等网络设备中的硬件和软件组件,用于根据数据包的目标地址进行转发和路由选择。
    • 数据平面的主要任务是根据网络层协议(如IP协议)中的目标地址信息,将数据包从输入端口转发到输出端口,以实现数据在网络中的传输。
  2. 控制平面(Control Plane)
    • 控制平面是网络设备中负责配置和管理数据平面行为的部分,它通常运行网络设备的控制软件,控制 网络设备的行为和路由选择策略
    • 在网络层,控制平面主要包括路由器、交换机等网络设备中的控制软件和管理协议,用于配置路由表、生成路由信息、处理路由更新等功能。
    • 控制平面的主要任务是根据网络中的拓扑结构和路由策略,生成路由表并更新网络设备中的转发表,以指导数据平面进行数据包的转发和路由选择。
4.1.3 传统方式与 SDN 软件定义网络

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

💡 在传统网络中,路由器和交换机等网络设备既负责数据包的转发(数据平面),又负责路由计算、路径选择等控制功能(控制平面),这就带来了如下的问题:

  1. 静态配置和管理: 在传统网络中,网络设备的配置和管理通常是静态的,需要手动配置 每个 设备的路由信息、访问控制列表(ACL)等,这样的配置不够灵活和自动化,容易导致配置错误和网络故障。
  2. 硬件依赖性: 传统网络通常依赖专用硬件设备,如路由器、交换机等,这些设备成本高昂且功能相对固定,难以快速适应不断变化的网络需求。
  3. 难以扩展: 传统网络的扩展性有限,当网络规模增大或者需要新增功能时,往往需要进行 大规模 的更改和升级,这会增加管理和维护的成本。
  4. 难以实现灵活的流量控制: 传统网络对于流量的控制和管理相对较为困难,难以实现细粒度的流量控制、优先级和质量服务(QoS)等功能。
  5. 对故障的应对能力较弱: 传统网络中的故障难以及时发现和快速恢复,可能导致网络中断或者性能下降。

所以相对于难以维护的分布式的架构,更希望有一种集中式的解决方案,来增强灵活性、可拓展性和管理效率等方面,这就是 SDN 网络。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

💡 SDN 网络的控制平面和数据平面是按照如下的方式进行架构的:

  1. 控制平面(Control Plane):负责网络的控制和管理,包括路由计算、流量工程、安全策略等功能。在 SDN 中,控制平面被抽象出来,集中在一个或多个控制器 中,通过控制器来对网络设备进行 配置和管理
  2. 数据平面(Data Plane):负责实际的数据转发和处理,包括数据包的交换、路由和转发等操作。在 SDN 中,数据平面通常由网络设备(如交换机、路由器)实现,但它们的行为受控制器的指令影响。

💡 要理解 SDN 网络首先要知道它由哪些部分构成:

  1. 控制器(Controller):是 SDN 网络的核心组件,负责管理和控制网络中的所有设备。控制器根据网络策略和需求生成相应的路由表,并向数据平面中的设备发送配置指令,实现网络的动态调整和管理。
  2. 北向接口(Northbound Interface):控制器与上层应用程序之间的接口,用于接收和传递应用层的网络策略、需求和配置信息。
  3. 南向接口(Southbound Interface):控制器与网络设备之间的接口,用于向数据平面中的设备发送配置指令,如 OpenFlow 协议就是一种常用的南向接口协议。
  4. 应用层(Application Layer):SDN 架构中的应用程序层,包括网络监控、流量优化、安全管理等各种应用,通过北向接口与控制器交互,实现对网络的管理和控制。

在典型的 SDN 网络中,路由器(或交换机)通过向 SDN 控制器发送信息来请求路由表、流表等数据,并接收来自控制器的指令以执行相应的操作。

同时,控制器也与应用层进行通信,接收来自应用层的策略、需求等信息,并根据这些信息来指导网络的行为。

💡 什么是流表?

  • 流表(Flow Table)是SDN(软件定义网络)中交换机或路由器上存储的数据结构,用于定义数据包的处理规则。每个流表项包含匹配条件和相应的操作指令。
  • 流表中的匹配条件通常由数据包的各个字段组成,例如源 IP 地址、目标 IP 地址、源端口、目标端口、协议类型等。当数据包到达交换机或路由器时,会与流表中的各个项 逐一进行匹配。当找到与数据包匹配的流表项时,交换机或路由器会执行与该流表项关联的操作,例如转发数据包到特定的端口、丢弃数据包、修改数据包的字段值等。
  • 控制器可以通过应用层下发指令或策略来修改流表。应用层可以根据网络的需求或特定的策略来生成相应的指令,然后将这些指令传递给控制器,控制器再将其转化为对流表的操作,从而实现网络的动态管理和控制。
4.1.3 网络服务模型

💡 服务模型:是指在计算机网络中定义和描述服务提供方式的一种抽象概念。它描述了网络中的各种服务类型、服务质量、数据处理方式等,以及用户和应用程序可以期望从网络中获得的特定服务。

网络层的服务可以用一个模型来评估

  • 对单个数据包的服务可以评估其传输是否可靠、延迟是否有保障
  • 对数据包流的传输需要保证流的保序、带宽、延迟等情况

网络层除了以上的服务还可以提供连接建立的服务,与 TCP 在传输层建立的逻辑的链接不同,这里的连接上每个路由器都会去维护两个主机之间的连接,所以说 TCP 是 面向连接,而在网络层提供的连接服务是 有连接

一下是几个网络服务模型,展示了 ATM 网络和 Internet 提供的服务

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1514015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

今天做了两个工具

URL可用性检测 2.影视 第一个工具为第二个工具服务,一定程度上检测了搜集到视频解析接口是否可用。

AI知识库也太方便了吧,中小型企业都要知道它!

生活在这个信息爆炸的时代,信息的获取变得前所未有的方便,但随之而来的却是信息筛选和管理的难题。对于中小型企业来说,如何有效运用自身积累的各类信息,直接影响着企业的运营效率和市场竞争力。而这,正是AI知识库可以…

linux系统adb调试工具

adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb可以在Eclipse中通过DDMS来调试Android程序,说白了就是调试工具。 adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会…

电脑丢失msvcr120.dll文件怎么办-丢失msvcr120.dll文件的五种解决方法

今天有看到小伙伴们在问msvcr120.dll文件是什么,所以今天的这篇文章将给大家科普msvcr120.dll文件是什么,msvcr120.dll文件在电脑系统中的重要性,如果你的电脑中出现了关于msvcr120.dll文件丢失的问题,也可以参考这篇文章&#xf…

2024 年中国高校大数据挑战赛赛题 C:用户对博物馆评论的情感分析完整思路以及源代码分享

博物馆是公共文化服务体系的重要组成部分。国家文物局发布, 2021 年我国新增备案博物馆 395 家,备案博物馆总数达 6183 家,排 名全球前列;5605 家博物馆实现免费开放,占比达 90%以上;全国 博物馆举办展览 3…

汇编课设——秒表2

1. 设计要求 基于 51 开发板,利用键盘作为按键输入,将数码管作为显示输出,实现电子秒表。 功能要求: (1)计时精度达到百分之一秒; (2)能按键记录下5次时间并通过按键回看 (3)设置时间,实现倒计时,时间到,数码管闪烁 10 次,并激发蜂鸣器,可通过按键解除。 2. 设计思…

走进网络世界 了解一些基础知识

走进网络 1.认识计算机 1.计算机网络是由计算机和通讯构成的,网络研究的是“通信”。 ------1946 世界上第一台计算机 2.终端:只有输入和输出功能,没有计算和处理功能。3.数据:一串数字(二进制数)&#x…

CentOS7.4+REDHAWK2.3.1安装教程——折腾篇

文章目录 前言一、CentOS7.4 安装二、REDHAWK2.3.1 安装1、第1个问题及解决方案2、第2个问题及解决方案3、第3个问题及解决方案 三、打开 REDHAWK 测试 前言 之前安装的 REDHAWK2.3.1 在使用过程中存在着问题,花了整整三天才把问题解决,期间尝试了不同的…

Docker进阶:深入了解容器数据卷

Docker进阶:深入了解容器数据卷 一、前言二、容器数据卷的作用三、容器数据卷的使用方法四、实战--使用docker部署前端项目(数据卷挂载)4.1 重要:准备工作,先在本地创建挂载目录4.2 启动一个临时的nginx容器&#xff0…

苍穹外卖学习-----2024/03/010---redis,店铺营业状态设置

1.Redis入门 2.在Java中操作Redis 3.店铺营业状态设置 BUG!!! 今天在启动项目时,用到了Redis缓存数据库,但是却出现了报错信息: ERR Client sent AUTH, but no password is set。Caused by: io.lettuce.core.RedisCommandExecutionException…

ThreeJs 射线拾取不准确设置

欢迎关注进来点个关注; 关注获取更多咨询!关注获取答案! 1、效果图如下: 2、问题描述:点击一开始无法获取当前的位置,官方推荐直接使用 mouseClick.x = (event.offsetX / window.innderWidth) * 2 - 1; mouseClick.y = -(event.offsetY / window.innderHeight) * 2 + 1;…

真空泵系统数据采集远程监控解决方案

行业背景 半导体制造业可以说是现代电子工业的核心产业,广泛应用于计算机、通信、汽车、医疗等领域。而在半导体生产加工过程中,如刻蚀、 镀膜、 扩散、沉积、退火等环节,真空泵都是必不可少的关键设备,它可以构建稳定受控的真空…

UE5 GAS开发p30 创建UI HUD 血条

新建AuraUserWidget,AuraWidgetController,AuraHUD 首先设置AuraWidgetController.h // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "AbilitySystemComponent.h" #in…

数据结构系列-链表实现

🌈个人主页: 会编辑的果子君 💫个人格言:“成为自己未来的主人~” #define _CRT_SECURE_NO_WARNINGS #include"List.h" void ListTest01() {LTNode* plist LTInit();LTPushFront(plist, 1);LTPushFront(plist, 2);LTPushFront(plist, 3);…

yum安装mysql、数据库tab自动补全,快来浅了解下 ?

centos7上面没有mysql,它的数据库名字叫做mariadb [rootlocalhost ~]#yum install mariadb-server -y [rootlocalhost ~]#systemctl start mariadb.service [rootlocalhost ~]#systemctl stop firewalld [rootlocalhost ~]#setenforce 0 [rootlocalhost ~]#ss -na…

UE5 局域网联机,寻找会话失败。

目录 参考资料: 尝试解决办法 1.1在【项目名.Build.cs】脚本中添加该行,添加后关闭编辑器,重新生成解决方案。​编辑 2.检查是否在同一个C类子网 参考资料: 1.Cant find session in LAN - Programming & Scripting / Mul…

外包干了30天,技术明显退步。。。。

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 这次来聊一个大家可能也比较关心的问题,那就是就业城市选择的问题。而谈到这个问题&a…

前端之用html做一个用户登陆界面

用户登陆界面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>用户注册页面</title></head> <body><form action"https://www.baidu.com" method"post">…

JavaScript进阶3之参数按值传递、call,apply,bind和new的实现、继承的多种方式

JavaScript基础 参数按值传递按值传递共享传递 call、apply、bind和new的实现this软绑定硬绑定 call的实现第一步第二步第三步 apply的实现bind的实现返回函数的模拟实现传参的模拟实现构造函数效果的模拟实现构造函数效果的优化实现 new的实现初步实现 继承的多种方式&优缺…

代码随想录算法训练营第25天|216.组和总和三、17.电话号码的字母组合

目录 一、力扣216.组合总和三1.1 题目1.2 思路1.3 代码 二、力扣17.电话号码的字母组合2.1 题目2.2 思路2.3 代码 一、力扣216.组合总和三 1.1 题目 1.2 思路 自己的想法&#xff1a;和总和问题思路类似&#xff0c;回溯法。 &#xff08;1&#xff09;k个数的组合&#xff0…