SDN和NFV笔记

news2024/11/24 19:18:31

目录

SDN

SDN的引入

SDN的概念

SDN网络部署的方式

SDN架构

OpenFlow

SDN与传统网络的区别

SDN的应用

SDN的优点

NFV

NFV的概念:

NFV的架构:

NFV相比于传统物理网元:

NFV与SDN的关系

NFV与SDN的相似点

NFV与SDN的不同


SDN

SDN的引入

MPLS存在的问题:

•控制协议 (如 LDP)比较复杂,扩展性差,运行维护较困难。
•协议 LDP无法做到基于时延或带宽等要求的流量调度。
•为灵活地选择流量的转发路径,还需要再使用资源预留协议RSVP。但是RSVP的信令非常复杂,每个节点都要维护一个庞大的链路信息数据库。并且RSVP 只会选择一条最优路径,不支持等价多路径路由选择 ECMP(Equal-Cost Multipath Routing)。

所以出现了:段路由选择协议SR(Segment Routing)

段(segment): 标签,是转发指令的一种标识符。
SR的工作原理:
•基于标签交换,但不需要使用协议LDP。

•由源节点为发送的报文指定路径,并将路径转换成有序的段列表(Segment List),即 MPLS 标签栈,它被封装在分组首部。

•网络中的其他节点就执行首部中的指令 (即标签)进行转发。

其中就需要SDN控制器负责:

收集并掌握全网的拓扑信息和链路状态信息,计算出分组应传送的整个路径。
•给分组分配 SR 标签,指明分组从源点到终点的路径。

注:SR向IPv6 演进,这就是 SRv6。SRv6 直接利用IPv6 字段作为标签寻址(Locator)。

SDN的概念

SDN(软件定义网络):

SDN是一种网络管理方法,它支持动态、高效的网络配置,以提高网络性能和监控,其方式比传统网络管理更类似于云计算。SDN 旨在解决传统网络的静态架构问题,可用于通过将网络数据包的转发过程(数据平面)与路由过程(控制平面)分离来将网络智能集中在一个网络组件中。控制平面由一个或多个控制器组成,被视为 SDN 网络的大脑,其中包含了整个智能。然而,集中化在安全性、可扩展性和弹性方面存在一定的缺点。
自 2011 年 OpenFlow 出现以来,SDN 通常与OpenFlow协议(用于与网络平面元素进行远程通信,以确定网络数据包跨网络交换机的路径)联系在一起。但是,自 2012 年以来,专有系统也使用了该术语。其中包括Cisco Systems的开放网络环境和Nicira的网络虚拟化平台。
SD-WAN将类似的技术应用于广域网(WAN)。

OpenFlow是SDN 体系结构中控制层面和数据层面之间的通信接口。

•使控制层面的控制器可以对数据层面中的物理或虚拟设备进行直接访问和操纵。

•在逻辑上是集中式的、基于流的。

注:SDN未规定必须使用OpenFlow

SDN网络部署的方式

Underlay的网络
所有的转发行为都由控制器通过OpenFlow协议或定制的BGP协议将转发表下发给转发器,转发器仅仅执行动作,没有单独控制面。

Overlay的网络
这种网络的转发器一般都是传动设备,不支持OpenFlow,或者私有定制协议不能部署时,就要用隧道技术,基础网络还是传统网络形式,通过路由协议打同各个节点,但是在服务器接入点,才用隧道技术将数据报文进行封装或者解封装。对传统网络来说见到的就是普通数据报文,转发即可。隧道技术实际上就是报文的马甲,迷惑网络设备,让设备以为时自己人,但实际上报文的心是虚拟化的心。现一般才用Vxlan,GRE,NVGRE等隧道技术,而这些新增的协议,也需要升级现有网络设备才能支持(不支持上述协议的网络设备)。穿马甲索然能够在不进行大改造的情况下增加新的功能,但无疑会降低网络性能。


原文链接:https://blog.csdn.net/AtlanSI/article/details/95613225

SDN架构
通信层:完成SDN 控制器与受控网络设备之间的通信。通信层与数据层面的接口叫做南向接口,基本上采用 OpenFlow。
网络规范的状态管理层:完成核心功能管理和维护链路、主机、交换机等网络状态;确定和维护流表等。
到网络控制应用程序层的接口:SDN 控制器与网络控制应用程序交互的接口称为北向接口。该API接口允许网络控制应用程序对状态管理层里的网络状态和流表进行读写操作。

由此具有以下特点: 

直接可编程:网络控制是直接可编程的,因为它与转发功能解耦。
敏捷:从转发中提取控制,使管理员能够动态调整网络范围内的流量以满足不断变化的需求。
集中管理:网络智能(逻辑上)集中在基于软件的 SDN 控制器中,这些控制器维护网络的全局视图,对于应用程序和策略引擎而言,网络智能就像单个逻辑交换机一样。
以编程方式配置:SDN 允许网络管理员通过动态、自动化的 SDN 程序非常快速地配置、管理、保护和优化网络资源,他们可以自己编写这些程序,因为这些程序不依赖于专有软件。
基于开放标准且供应商中立:当通过开放标准实施时,SDN 简化了网络设计和操作,因为指令是由 SDN 控制器而不是多个供应商特定的设备和协议提供的。

OpenFlow

OpenFlow在数据层面通过完成“匹配+动作”完成广义转发

匹配是对不同层次(链路层,网络层,运输层)首部中的字段进行匹配。

动作则例如:转发,重写,丢弃等。

OpenFlow的流表规定了“匹配+动作”

每个OpenFlow交换机有一个或一个以上的流表。

每个流表可以包括多个流表项(flow entry)。

注:流表示穿过网络的一种分组序列,而在此序列中的分组都共享分组首部某些字段的值。

流表由远程控制器(SDN)管理

SDN远程管理控制器通过一个安全信道,使用OpenFlow协议来管理OpenFlow交换机中的流表。

流表由三个字段组成:头域,计数器和动作

(1)头域(首部字段值,也称匹配字段):

一组字段(12 个),用来使入分组的对应首部与之相匹配。匹配不上的分组被丢弃,或发送到远程控制器做更多的处理。

(2)计数器:

一组计数器,可包括已经与该表项匹配的分组数量,以及从该表项上次更新到现在经历的时间。

(3)动作:

一组动作。当分组匹配某个流表项时,把分组转发到指明的端口,或丢弃该分组,或把分组进行复制后再从多端口转发出去或重写分组的首部字段(第二,三和四层的首部字段)等。

OpenFlow的应用:

简单转发:

S1:

负载均衡

防火墙

总结:SDN的四个关键特征

1.基于流的转发。流表规定转发规则
2.数据层面与控制层面分离。二者不在同一个设备中
3.网络控制功能位于数据层面交换机之外,用软件实现
4.可编程的网络

SDN与传统网络的区别

SDN功能分散。交换机、SDN控制器、网络控制应用程序都是可以分开的实体,并且可以由不同的厂商和机构来提供。

传统网络中控制层面、数据层面、协议的实现都垂直集成在一个机器里。由单独的厂商提供。

SDN的应用

SD-WAN 

SD -WAN是使用软件定义网络原理进行管理的 WAN。SD-WAN 的主要驱动力是使用更实惠且商业化的租赁线路来降低 WAN 成本,作为更昂贵的MPLS线路的替代或部分替代。控制和管理通过中央控制器与硬件分开管理,从而更容易配置和管理。
 

SD-LAN

SD-LAN 是围绕软件定义网络原理构建的局域网 (LAN),尽管在拓扑、网络安全、应用程序可见性和控制、管理和服务质量方面存在重大差异。SD-LAN 将控制管理和数据平面解耦,从而为有线和无线 LAN 提供策略驱动的架构。SD-LAN 的特点是使用云管理系统和无线连接,无需物理控制器。

使用SDN的安全性:

由于控制器的网络中心视图及其随时重新编程数据平面的能力,SDN 架构可以启用、促进或增强网络相关的安全应用。虽然 SDN 架构本身的安全性仍然是一个悬而未决的问题,研究界已经研究过几次,以下仅关注已成为可能或重新审视的安全应用程序使用SDN。
一些关于 SDN 的研究工作已经研究了基于 SDN 控制器构建的安全应用程序,并具有不同的目标。分布式拒绝服务(DDoS)检测和缓解,以及僵尸网络和蠕虫传播,是此类应用程序的一些具体用例:基本上,这个想法在于定期收集网络以标准化方式(例如使用Openflow)从网络转发平面获取统计数据,然后对这些统计数据应用分类算法以检测任何网络异常。如果检测到异常,应用程序会指示控制器如何对数据平面重新编程以缓解异常情况。
另一种安全应用程序通过实施一些移动目标防御 (MTD) 算法来利用 SDN 控制器。MTD 算法通常用于通过定期隐藏或更改给定系统或网络的关键属性,使对该系统或网络的任何攻击比平时更加​​困难。在传统网络中,实现 MTD 算法并不是一项简单的任务,因为很难建立一个能够确定(对于要保护的系统的每个部分)哪些关键属性被隐藏或更改的中央机构。在 SDN 网络中,由于控制器的中心地位,此类任务变得更加简单。例如,一个应用程序可以定期向网络内的主机分配虚拟 IP,然后由控制器执行虚拟 IP/真实 IP 的映射。另一个应用程序可以在网络中的随机主机上模拟一些假的打开/关闭/过滤端口,以便在攻击者执行的侦察阶段(例如扫描)期间添加显着的噪声。还可以分别使用 FlowVisor 和 FlowChecker获得有关支持 SDN 的网络安全性的附加价值。前者尝试使用共享多个独立逻辑网络的单个硬件转发平面。采用这种方法,相同的硬件资源可用于生产和开发目的,以及分离监控、配置和互联网流量,其中每个场景都可以有自己的逻辑拓扑,称为切片。结合这种方法,FlowChecker实现了用户使用自己的切片部署的新 OpenFlow 规则的验证。
SDN控制器应用大多部署在大规模场景中,需要对可能的编程错误进行全面检查。2012 年描述了一个名为 NICE 的系统。引入总体安全架构需要采用全面且长期的 SDN 方法。自推出以来,设计人员一直在寻找在不影响可扩展性的情况下保护 SDN 安全的可能方法。一种架构称为SN-SECA(SDN+NFV)安全架构。

使用SDN进行分组数据传输

跨数据中心运行的分布式应用程序通常出于同步、故障恢复、负载平衡和让数据更接近用户的目的而复制数据(这减少了用户的延迟并增加了他们感知的吞吐量)。此外,许多应用程序(例如 Hadoop)会在数据中心内跨多个机架复制数据,以提高容错能力并使数据恢复更容易。所有这些操作都需要将数据从一台机器或数据中心传输到多台机器或数据中心。将数据从一台机器可靠地传送到多台机器的过程称为可靠组数据传送(RGDD)。
通过安装允许转发到多个传出端口的规则,SDN 交换机可用于 RGDD。例如,OpenFlow 从版本 1.1 开始提供对组表的支持,这使得这成为可能。使用SDN,中央控制器可以仔细、智能地为RGDD设置转发树。可以在构建此类树的同时关注网络拥塞/负载状态以提高性能。例如,MCTCP 是一种向数据中心内的许多节点进行交付的方案,依赖于数据中心网络的常规和结构化拓扑,而 DCCast 和 QuickCast 是跨数据中心快速高效地复制数据和内容的方法。私有广域网。

SDN的优点

•提高网络带宽利用率;

•网络运行更加稳定;

•管理更加高效简化;

•运行费用明显降低;

NFV

NFV的概念:

网络功能虚拟化(Network Functions Virtualization,NFV)是一种关于网络架构的概念。我们平时使用的x86服务器由硬件厂商生产,在安装了不同的操作系统以及软件后实现了各种各样的功能。而传统的网络设备并没有采用这种模式,路由器、交换机、防火墙、负载均衡等设备均有自己独立的硬件和软件系统。NFV借鉴了x86服务器的架构,它将路由器、交换机、防火墙、负载均衡这些不同的网络功能封装成独立的模块化软件,通过在硬件设备上运行不同的模块化软件,在单一硬件设备上实现多样化的网络功能。

NFV的架构:

不同于传统物理设备中软件与硬件强绑定的关系,在NFV架构中,实现各种网络功能的标准化软件必须能够应用在同一台硬件设备上。这就要求NFV需要有一个统一的标准。NFV架构由基础网络功能虚拟化架构、虚拟网络功能功能、管理自动化及网络编排三个部分组成:

基础网络虚拟化架构(Network Functions Virtualization Infrastructure, NFVI)NFVI就好比各手机厂商推出的手机系统,它给硬件设备赋予基本的组件,支持网络应用所需要的软件或者容器管理平台。
虚拟网络功能(Virtual Network Functions, VNF)VNF是实现网络功能(转发服务、IP配置等)的软件应用,就好比手机上的APP。在NFV架构中,各种VNF在NFVI的基础上实现。由于NFVI是标准化的架构,使得不同的VNF获得了通用性,不再依赖于原来的黑盒设备。
管理自动化及网络编排(Management and orchestration, MANO)MANO是用于管理各VNF以及NFVI的统一框架,方便运维人员进行业务编排与设备管理。

OSS/BSS
服务提供商的管理功能,不属于NFV框架内的功能组件,但MANO和网元需要提供对OSS/BSS 的接口支持。
VNF
Virtual Network Functions,指虚拟机及部署在虚拟机上的业务网元、网络功能软件等。
NFVI
NFV Infrastructure,NFV基础设施,包括所需的硬件及软件。为VNF提供运行环境。
•Hardware:硬件层,包括提供计算、网络、存储资源能力的硬件设备。
•Virtualization Layer:虚拟化层,主要完成对硬件资源的抽象,形成虚拟资源,如虚拟计算资源、虚拟存储资源、虚拟网络资源。NFV标准架构定义的主要功能模块。
MANO
Management and Orchestration,NFV的管理和编排。包括VIM,VNFM及NFVO,提供对VNF和NFVI资源的统一管理和编排功能。
•VIM:Virtualized Infrastructure Managers, NFVI管理模块,主要功能包括:资源的发现、虚拟资源的管理分配、故障处理等。
•VNFM:VNF Managers ,VNF管理模块,主要对VNF的生命周期(实例化、配置、关闭等)进行控制。
•NFVO:NFV Orchestrator,实现对整个NFV基础架构、软件资源、网络服务的编排和管理。

NFV相比于传统物理网元:

NFV适用于各种网络解决方案,目前使用较多的包括SD-WAN、网络切片、移动边缘计算等。由于NFV将软件功能与硬件设备进行了解耦,随着标准化架构的完善,NFV带来了诸多优势:

灵活的业务( Flexible services )

在服务器上运行不同的VNF,当网络需求变更时,根据需求变更和移动VNF即可,加快了网络功能交付和应用的速度。在测试新的网络功能时,无需建立专门的实验环境,只需请求新的虚拟机来处理该请求,当服务停用时释放该虚拟机即可,为网络功能测试提供了更便捷的方法。

更低的成本(Less Spending)

使用NFV后,网络通信实体将变为虚拟化的网络功能,这使得单一硬件服务器上可以同时运行多种网络功能,从而减少了物理设备的数量,实现了资源整合,降低了物理空间、功耗等带来的成本。但由于从传统设备切换为NFV在初期的投入较大,短期内的投资回报比并不比传统的物理网元具有足够的优势。

更高的资源利用率(Greater Resource Efficiency)

当网络需求发生变化时,无需更换硬件设备,避免了复杂的物理变更,通过软件重组快速更新基础网络架构,避免由业务变更带来的设备冗余和搬迁需求。

避免供应商锁定(Avoid Vendor Lock-in)

在统一制式的硬件上部署不同的网络功能,避免了某种功能被特定的供应商锁定,降低了网络设备维护带来的服务费用。

NFV与SDN的关系

NFV网络虚拟化技术是对SDN的补充概念。因此,NFV 不依赖于 SDN 或 SDN 概念。NFV 将软件与硬件分开,以实现灵活的网络部署和动态操作。NFV 部署通常使用商用服务器来运行以前基于硬件的网络服务软件版本。这些在 NFV 环境中运行的基于软件的服务称为虚拟网络功能 (VNF)。SDN-NFV 混合计划旨在实现高效、弹性和可扩展的 NFV 功能,旨在使用标准 IT 虚拟化技术加速服务创新和配置。SDN 提供了使用 SDN 控制器控制路由器和交换机等通用转发设备的灵活性。另一方面,通过使用虚拟化服务器为网络应用程序提供 NFV 敏捷性。使用现有网络和编排范例将虚拟化网络功能 (VNF) 作为独立实体实现是完全可能的。然而,利用 SDN 概念来实施和管理 NFV 基础设施具有固有的优势,特别是在考虑 VNF 的管理和编排时,这就是定义将 SDN 和 NFV 纳入协同生态系统的多供应商平台的原因。

NFV与SDN的相似点

NFV也是一种网络架构,它将传统物理设备的网络功能封装成独立的模块化软件,通过在硬件设备上运行不同的模块化软件,在单一硬件设备上实现多样化的网络功能。
SDN和NFV的相似之处主要体现在如下方面:
•都以实现网络虚拟化为目标,实现物理设备的资源池化。
•都提升了网络管理和业务编排效率。
•都希望通过界面操作或者编程语言来进行网络编排。

NFV与SDN的不同

SDN抽象物理网络资源(交换机、路由器等),并将决策转移到虚拟网络控制平面。控制平面决定将流量发送到哪里,而硬件继续引导和处理流量,无需依赖标准的硬件设备。NFV的目标是将所有物理网络资源进行虚拟化,允许网络在不添加更多设备的情况下增长,这依赖于标准的硬件设备。
其实经典SDN架构也将硬件与软件解耦作为目标,但在实现过程中由于软件研发成本、设备替换等原因的影响,现行的SDN方案弱化了控制面的分离,仅以网络可编程和自动化运维为目标。
华为NFV架构中,虚拟化层及VIM的功能由FusionSphere云操作系统实现,即华为FusionSphere可以实现计算资源、存储资源和网络资源的全面虚拟化,并能够对物理硬件虚拟化资源进行统一的管理、监控、优化。

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

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

相关文章

EXPLAIN详解(MySQL)

EXPLAIN概述 EXPLAIN语句提供MySQL如何执行语句的信息。EXPLAIN与SELECT, DELETE, INSERT, REPLACE和UPDATE语句一起工作。 EXPLAIN返回SELECT语句中使用的每个表的一行信息。它按照MySQL在处理语句时读取表的顺序列出了输出中的表。MySQL使用嵌套循环连接方法解析所有连接。…

2022年12月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 有n个按名称排序的商品,使用对分查找法搜索任何一商品,最多查找次数为5次,则n的值可能为?()(2分) A.5 B.15 C.30 D.35 答案:C 答案解析:对分查找最多查找次数m与个数之间n的…

高斯过程回归 | GPR高斯过程回归

高斯过程回归(Gaussian Process Regression, GPR)是一种强大的非参数回归方法,它通过假设数据是从一个高斯过程中生成的来预测新的数据点。 高斯过程是一种定义在连续输入空间上的随机过程,其中任何有限集合的观测值都呈多变量高斯分布。 实现GPR的Python代码import numpy …

Coding面试题之手写线程池

原理图 JDK线程池原理 实现代码 1.线程类&#xff08;PoolThread&#xff09; 这个类用于执行任务队列中的任务。 public class PoolThread extends Thread {private final Queue<Runnable> taskQueue;private boolean isStopped false;public PoolThread(Queue<…

Python---练习:求幸运数字6

案例&#xff1a; 幸运数字6&#xff08;只要是6的倍数&#xff09;&#xff1a;输入任意数字&#xff0c;如数字8&#xff0c;生成nums列表&#xff0c;元素值为1~8&#xff0c;从中选取幸运数字移动到新列表lucky&#xff0c;打印nums与lucky。 思考&#xff1a; 要求是6的…

说说 React中的setState执行机制

一、是什么 一个组件的显示形态可以由数据状态和外部参数所决定&#xff0c;而数据状态就是state 当需要修改里面的值的状态需要通过调用setState来改变&#xff0c;从而达到更新组件内部数据的作用 如下例子&#xff1a; import React, { Component } from react export d…

ARM 基础学习记录 / ARM 裸机编程

汇编程序调用 C 程序详情 在 C 程序和 ARM 汇编程序之间相互调用时必须遵守 ATPCS 规则&#xff0c;其是基于 ARM 指令集和 THUMB 指令集过程调用的规范&#xff0c;规定了调用函数如何传递参数&#xff0c;被调用函数如何获取参数&#xff0c;以何种方式传递函数返回值。 寄存…

Linux内核有什么之内存管理子系统有什么第六回 —— 小内存分配(4)

接前一篇文章&#xff1a;Linux内核有什么之内存管理子系统有什么第五回 —— 小内存分配&#xff08;3&#xff09; 本文内容参考&#xff1a; linux进程虚拟地址空间 《趣谈Linux操作系统 核心原理篇&#xff1a;第四部分 内存管理—— 刘超》 特此致谢&#xff01; 二、小…

SpringData、SparkStreaming和Flink集成Elasticsearch

本文代码链接&#xff1a;https://download.csdn.net/download/shangjg03/88522188 1 Spring Data框架集成 1.1 Spring Data框架介绍 Spring Data是一个用于简化数据库、非关系型数据库、索引库访问&#xff0c;并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快…

vue项目pdf文件的预览

1.下载 您可以在以下网址下载pdfjsLib&#xff1a;https://github.com/mozilla/pdf.js pdfjsLib是一个开源项目&#xff0c;您可以在GitHub上找到其源代码和相关资源。 2.放置文件位置 3.进入 在index.html引入 <script src"<% BASE_URL %>static/pdfjs-dist/b…

赛宁网安入选国家工业信息安全漏洞库(CICSVD)2023年度技术组成员单

近日&#xff0c;由国家工业信息安全发展研究中心、工业信息安全产业发展联盟主办的“2023工业信息安全大会”在北京成功举行。 会上&#xff0c;国家工业信息安全发展研究中心对为国家工业信息安全漏洞库&#xff08;CICSVD&#xff09;提供技术支持的单位授牌表彰。北京赛宁…

WPF ToggleButton 主题切换动画按钮

WPF ToggleButton 主题切换动画按钮 仿造最近看到的html中的一个效果&#xff0c;大致思路是文章这样&#xff0c;感觉还可以再雕琢一下。 代码如下 XAML: <UserControl x:Class"WPFSwitch.AnimationSwitch"xmlns"http://schemas.microsoft.com/winfx/200…

8255 boot介绍及bring up经验分享

这篇文章会简单的介绍8255的启动流程&#xff0c;然后着重介绍8255在实际项目中新硬件上的bring up工作&#xff0c;可以给大家做些参考。 8255 boot介绍 下面这些信息来自文档&#xff1a;《QAM8255P IVI Boot and CoreBSP Architecture Technical Overview》 80-42847-11 R…

Django debug page XSS漏洞复现_(CVE-2017-12794)

Django debug page XSS漏洞复现_(CVE-2017-12794) 复现过程 首先进入靶场环境 按照他写的&#xff0c;需要给这个变量赋值 创建一个用户&#xff0c;用弹窗做用户名 http://10.4.7.137:8000/create_user/?username<script>alert(1)</script>返回&#xff0c;然…

Unity中Shader的间接光的产生Meta Pass

文章目录 前言Unity中Shader的间接光的产生Meta Pass&#xff0c;这也是属于全局光照 GI 的内容。主要实现像现实生活中&#xff0c;光线照到有颜色的物体后&#xff0c;该物体有反射出该颜色的光的效果。 一、我们先使用Unity自带的Shader看看间接光效果1、先按照如下设置搭建…

C++ | 继承和多态

目录 继承 继承的概念及用法 继承的作用域 向上转型和向下转型 继承过程中的默认生成函数 菱形继承及其解决方案 - 虚继承 虚继承的原理 - 虚基类表 继承和组合 多态 虚函数 多态的定义及使用 纯虚函数与抽象类 多态的原理 小点补充 虚表的位置 父类指针new一个…

聊聊测试左移到需求阶段

这是鼎叔的第七十九篇原创文章。行业大牛和刚毕业的小白&#xff0c;都可以进来聊聊。 欢迎关注本公众号《敏捷测试转型》&#xff0c;星标收藏&#xff0c;大量原创思考文章陆续推出。本人新书《无测试组织-测试团队的敏捷转型》​​​​​​​已出版&#xff08;机械工业出版…

单链表的基本操作代码

#include<stdio.h> #include<stdlib.h> typedef int Status;//函数类型&#xff08;当return值为函数结果状态时用&#xff09;需要自定义&#xff01; typedef int ElemType;//相当于给 int起个别名 typedef struct LinkList{ ElemType data; struct L…

JMeter实现持续压测websocket

1、安装插件&#xff1a;JMeter WebSocket Samplers pjtr / JMeter WebSocket Samplers / Downloads — Bitbuckethttps://bitbucket.org/pjtr/jmeter-websocket-samplers/downloads/ 将下载的Jar包放在安装jmeter的/lib/ext路径下&#xff0c;重启生效 查看测试计划--》配置…

python爬虫怎么翻页

爬虫程序的代码实现如下&#xff1a; #include <iostream> #include <string> #include <curl/curl.h>int main() {CURL *curl;CURLcode res;std::string readBuffer;curl_global_init(CURL_GLOBAL_DEFAULT);curl curl_easy_init();if(curl) {curl_easy_se…