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

前言:

学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第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.mzph.cn/news/742740.shtml

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

相关文章

从汇编来角度剖析C语言函数调用过程

目录 1.引言 2.寄存器 3.栈帧 4.函数调用前调用者的动作 5.被调用者在函数调用后的动作 6.被调用者返回前的动作 7.调用者在返回后的动作 8.总结 1.引言 当一个c函数被调用时,一个栈帧(stack frame)是如何被建立,又如何被消除的。这些细节跟操作…

解决 version GLIBCXX_*.*.* not found

1. 情况描述 linux机器,编译程序正常,但是运行程序报错 2. 错误原因 查看 libstdc.so 中CXXABI 版本,命令: strings /lib64/libstdc.so.6 | grep CXXABI 结果: 发现是libstdc版本过低导致 3. 解决问题 a> 查找当前环境上是否…

离散化算法,以Acwing802.区间和为例子(C++实现)

目录 1.例题2.算法实现思路3.代码 1.例题 假定有一个无限长的数轴,数轴上每个坐标上的数都是 0现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c接下来,进行 m 次询问,每个询问包含两个整数 l 和 r&#…

从0到1:如何用AI完成高质量的科研论文写作?

人工智能革命:如何让聊天机器人更懂你 人工智能正在以其强大的数据处理和语言生成能力改变世界。在学术界,大语言模型(LLM)为科学交流带来了一种新的工具。我们旨在有效地将AI工具与学术写作相结合,以更有效和更有影响…

【零基础学习04】嵌入式linux驱动中信号量功能基本实现

大家好,为了进一步提升大家对实验的认识程度,每个控制实验将加入详细控制思路与流程,欢迎交流学习。 今天给大家分享一下,linux系统里面信号量操作的具体实现,操作硬件为I.MX6ULL开发板。 第一:信号量基本简介 信号量是同步的一种方式,linux内核也提供了信号量…

HTML5+CSS3+移动web——CSS 文字控制属性

系列文章目录 HTML5CSS3移动web——HTML 基础-CSDN博客https://blog.csdn.net/ymxk2876721452/article/details/136070953?spm1001.2014.3001.5502HTML5CSS3移动web——列表、表格、表单-CSDN博客https://blog.csdn.net/ymxk2876721452/article/details/136221443?spm1001.2…

反无人机电子护栏:原理、算法及简单实现

随着无人机技术的快速发展,其在航拍、农业、物流等领域的应用日益广泛。然而,无人机的不规范使用也带来了安全隐患,如侵犯隐私、干扰航空秩序等。为了有效管理无人机,反无人机电子护栏技术应运而生。 目录 一、反无人机电子护栏…

JavaScript---VConsole插件配置使用,一步到位简单实用!

1. 寻找到自己需要的VConsole插件js文件 个人喜欢BootCDN这个平台(直接在线引用或者下载本地引入均可~) vConsole (v3.15.1) - A lightweight, extendable front-end developer tool for mobile web page. | BootCDN - Bootstrap 中文网开源项目免费 C…

【Web】浅聊XStream反序列化本源之恶意动态代理注入

目录 简介 原理 复现 具体分析之前 我们反序列化了个什么? XStream反序列化的朴素通识 具体分析 第一步:unmarshal解组 第二步:readClassType获取动态代理类的Class对象 第三步:调用convertAnother对动态代理类进行实例…

JS数组相关知识

获取数组的最大值/最小值&#xff1a; let arrary [2,5,4] let max arrary[0] for(let i 0;i<arrary.length;i){if(arrary[i]>max){max arrary[i]} }console.log(max);//查询数组最小值let arr [2,21,34,23,45] let min arr[0] for(let i 0;i<arr.length;i){if…

mybatis-编写mapper.xml SQL语句时无提示

你们好&#xff0c;我是金金金。 场景 可以看见sql颜色都是白色的&#xff0c;而且编写的时候没有提示&#xff0c;简直痛苦 排查 中途有设置过SQL方言等&#xff0c;都没有解决我的问题 解决 很简单&#xff0c;https 改成 http 就有提示了&#xff01;&#xff01;&#x…

【Java并发知识总结 | 第二篇】乐观锁和悲观锁详讲

文章目录 2.乐观锁和悲观锁详讲2.1悲观锁2.2乐观锁2.3如何实现乐观锁2.3.1版本号机制2.3.2CAS算法2.3.3CAS底层 2.4乐观锁存在的问题2.4.1ABA问题&#xff08;1&#xff09;问题描述&#xff08;2&#xff09;解决 2.4.2循环时间长、开销大2.4.3只能保证一个共享变量的原子操作…

rust学习(手动写一个线程池)

哈哈&#xff0c;主要是为了练习一下rust的语法&#xff0c;不喜勿喷。 一.Executor申明 struct AExecutor<T> {results:Arc<Mutex<HashMap<u32,T>>>, //1functions:Arc<Mutex<Vec<ATask<T>>>> //2 } 1.results&#xff1a…

使用python实现一个dicom影像解析入库程序demo

简介 DICOM&#xff08;Digital Imaging and Communications in Medicine&#xff09;是医学图像和相关信息的国际标准。它定义了医学影像的格式和通信协议&#xff0c;使得不同设备和系统之间可以交换和共享医学图像和相关数据&#xff0c;如CT扫描、MRI图像、超声波图像等。…

原来jmeter接口测试还可以这么做...

JMeter是一个Java应用程序&#xff0c;是基于开源的性能测试工具。它可以用来对Web应用程序或FTP服务器进行压力测试&#xff0c;以便确定它们在高负载下还能否正常运行。JMeter支持各种协议&#xff0c;如HTTP、HTTPS、FTP、SOAP、REST等。 本文将介绍JMeter的详细使用教程&a…

VB 数据质量诊断软件(分析数据的完整性,合理性,准确性)-139-(代码+程序说明)

转载地址http://www.3q2008.com/soft/search.asp?keyword139 前言: 为何口出狂言,作任何VB和ASP的系统, 这个就是很好的一个证明 :) 又有些狂了... 数据库操作谁都会,接触的多了也没什么难的,VB编程难在哪?算法上,这个是一个算法题的毕业设计 哈哈忙活了足足有一○小时, …

解决Git:Author identity unknown Please tell me who you are.

报错信息&#xff1a; 意思&#xff1a; 作者身份未知 ***请告诉我你是谁。 解决办法&#xff1a; git config --global user.name "你的名字"git config --global user.email "你的邮箱"

kangle一键安装脚本

Kangle一键脚本&#xff0c;是一款可以一键安装KangleEasypanelMySQLPHP集合的Linux脚本。 脚本本身集成&#xff1a;PHP5.38.2、MYSQL5.68.0&#xff0c;支持极速安装和编译安装2种模式&#xff0c;支持CDN专属安装模式。同时也对Easypanel面板进行了大量优化。 脚本特点 ◎…

python实现卡普均值最小回路算法

如果给定一个含有环的有向图&#xff0c;要在这个图中找出所有的环并计算这些环的路径长度&#xff0c;然后除以环的边数&#xff0c;所得到的结果也就是环的平均值&#xff0c;这里也就是如何计算这个环的最小均值问题。 首先可以确定的是&#xff0c;如果图中均值最小的环的…

会禁止直播带货吗?

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 种种迹象表明&#xff1a;直播带货已经到了被抑制的阶段&#xff0c;提高线上购物成本&#xff0c;促进消费回归线下实体&#xff0c;好像是主流声音了。 (1)“稳定和扩大传统消费”早就写在了中央经济工作会议和政…