浅谈计算机网络02 | SDN控制平面

计算机网络控制平面

  • 一、现代计算机网络控制平面概述
    • 1.1 与数据平面、管理平面的关系
    • 1.2 控制平面的发展历程
  • 二、控制平面的关键技术剖析
    • 2.1 网络层协议
      • 2.1.1 OSPF协议
      • 2.1.2 BGP协议
    • 2.2 SDN控制平面技术
      • 2.2.1 SDN架构与原理
      • 2.2.2 OpenFlow协议
      • 2.2.3 SDN控制器

在这里插入图片描述

一、现代计算机网络控制平面概述

控制平面是计算机网络架构中负责管理网络设备通信与数据转发路径的核心部分,通过执行路由决策、网络拓扑管理、流量调控等关键职能,依据网络实时状态制定并执行策略,为网络数据的高效、准确、可靠传输提供保障,满足不同用户和应用场景的多样化需求,在计算机网络中起着无可替代的重要作用。

1.1 与数据平面、管理平面的关系

在计算机网络的架构体系中,控制平面并非孤立存在,而是与数据平面、管理平面紧密协作,共同构建起一个高效、稳定且可靠的网络运行环境。这三个平面相互依存、相互制约,各自承担着独特的功能,却又通过紧密的交互与协同,实现了网络的整体目标。

在这里插入图片描述

控制平面与数据平面之间存在着明确的分工与协作关系。数据平面,犹如网络中的“执行者”,负责实际的数据转发操作,它按照控制平面所制定的规则,将数据包准确无误地从源节点传输至目标节点。而控制平面则扮演着“指挥官”的角色,为数据平面提供精确的转发规则。在传统网络架构中,路由器的控制平面通过运行路由协议,如开放最短路径优先(OSPF)协议,收集网络拓扑信息,并计算出最佳的路由路径。这些路由信息会被转化为转发表项,下发给数据平面。数据平面在接收到数据包后,依据转发表中的规则,迅速做出转发决策,将数据包转发至下一跳节点。在软件定义网络(SDN)架构中,这种分工协作关系体现得更为明显。SDN的控制平面通过南向接口协议,如OpenFlow协议,与数据平面中的交换机进行通信。控制平面能够根据网络的实时状态和用户需求,灵活地生成流表项,并下发给交换机。交换机则严格按照流表中的规则,对数据包进行处理和转发。这种集中式的控制方式,使得控制平面能够更加精准地掌控数据平面的行为,实现对网络流量的精细化调度。

控制平面与管理平面在网络管理过程中协同合作,共同保障网络的稳定运行。管理平面主要负责网络的整体管理与监控工作,包括设备配置管理、性能监测、故障管理以及安全管理等诸多方面。而控制平面则为管理平面提供了关键的网络状态信息和控制能力。管理平面通过与控制平面的交互,能够获取网络的拓扑结构、路由信息以及流量状态等重要数据,从而对网络的运行状况有一个全面且清晰的了解。基于这些信息,管理平面可以制定出合理的网络管理策略,并将这些策略传达给控制平面。控制平面在接收到管理平面的指令后,会对网络进行相应的调整和优化。在网络性能监测方面,管理平面可以设定性能指标的阈值,如带宽利用率、延迟等。当控制平面监测到网络性能指标超出阈值时,会及时将这一情况反馈给管理平面。管理平面则会根据具体情况,指示控制平面采取相应的措施,如调整路由路径、进行流量整形等,以确保网络性能恢复到正常水平。在网络安全管理方面,管理平面制定安全策略,如访问控制列表(ACL)等。控制平面会根据这些策略,在数据平面中实施相应的安全控制措施,阻止非法流量的传输,保障网络的安全。

1.2 控制平面的发展历程

在这里插入图片描述

在早期的传统网络中,路由器控制模式占据主导地位。在这种模式下,每台路由器都独立运行着路由协议,如RIP(路由信息协议)和OSPF(开放最短路径优先)等。这些协议赋予路由器收集周边网络拓扑信息、计算路由路径以及维护转发表的能力。以RIP协议为例,它基于距离向量算法,路由器定期向相邻路由器发送自身的路由表信息,相邻路由器接收到信息后,会根据跳数来更新自己的路由表。每台路由器都如同一个独立的决策者,在各自的小范围内进行路由决策,这种分散式的控制方式在网络规模较小时,能够较为有效地实现网络的连通性。然而,随着网络规模的不断扩张,这种模式的局限性逐渐显现。由于每台路由器都需要独立进行复杂的路由计算和拓扑信息维护,网络的管理成本急剧增加,路由收敛速度也变得极为缓慢。当网络拓扑发生变化时,例如链路故障或新链路的添加,路由器之间需要花费较长时间来同步和更新路由信息,这在一定程度上会导致网络性能的下降,甚至可能引发网络拥塞等问题。

在这里插入图片描述

为了突破传统路由器控制模式的瓶颈,逻辑集中式控制模式应运而生,软件定义网络(SDN)便是这一模式的典型代表。SDN的核心创新在于将网络的控制平面与数据平面进行了彻底分离。在SDN架构中,控制平面被集中到一个或多个控制器上,这些控制器宛如网络的“超级大脑”,负责收集全网的拓扑信息,依据网络的实时状态和用户需求,制定统一的路由策略,并将这些策略以流表的形式下发给数据平面中的交换机。OpenFlow协议作为SDN南向接口的重要协议,为控制器与交换机之间的通信搭建了桥梁。控制器通过OpenFlow协议,能够精确地控制交换机的转发行为,实现对网络流量的灵活调度。当网络中出现流量拥塞时,控制器可以实时感知到拥塞的位置和程度,然后迅速调整流表项,将部分流量引导至其他空闲链路,从而有效地缓解拥塞。这种逻辑集中式控制模式,使得网络的管理变得更加集中化和智能化,网络管理员可以通过控制器对整个网络进行全局把控,大大提高了网络的管理效率和灵活性。

二、控制平面的关键技术剖析

2.1 网络层协议

2.1.1 OSPF协议

开放最短路径优先(OSPF)协议作为一种链路状态路由协议,在自治系统内部的路由选择中发挥着关键作用,具有诸多显著特点。

在这里插入图片描述

区域划分是OSPF协议的一大特色。它将自治系统划分为多个区域,每个区域都有其独特的标识。其中,骨干区域(Area 0)如同网络的主干道,负责连接其他非骨干区域,并在区域之间传递链路状态信息。在一个大型跨国企业的网络中,其分布在全球各地的分支机构可被划分为不同的非骨干区域,而骨干区域则确保了这些区域之间的高效通信。通过区域划分,减少了每个路由器需要维护的链路状态信息数量,从而降低了路由表的规模和复杂度,提高了网络的可管理性和稳定性。当某一非骨干区域内的网络拓扑发生变化时,该区域内的路由器会先在本区域内进行路由计算和更新,只有涉及到区域间通信的信息才会传递到骨干区域,进而减少了对整个网络的影响范围,提高了网络的收敛速度。

链路状态通告(LSA)是OSPF协议的核心机制之一。网络中的每个路由器都会收集其周边链路的状态信息,包括链路的带宽、延迟、可靠性等,并将这些信息封装成LSA,然后通过洪泛的方式在所属区域内进行广播。当一个路由器收到其他路由器发送的LSA时,它会将其更新到自己的链路状态数据库(LSDB)中,从而确保每个路由器都能拥有整个区域的完整拓扑信息。在一个园区网络中,当新增一条链路连接两座建筑物内的路由器时,相关路由器会立即生成包含该链路信息的LSA,并在园区网络所属区域内进行广播,使得其他路由器能够及时知晓网络拓扑的变化。

快速收敛是OSPF协议的重要优势。由于每个路由器都持有完整的区域拓扑信息,当网络拓扑发生变化时,如链路故障或新增链路,路由器能够迅速感知到这一变化,并基于Dijkstra算法重新计算最短路径。在一个数据中心网络中,若某条服务器与交换机之间的链路出现故障,运行OSPF协议的路由器能够在极短的时间内重新计算路由,将流量切换到其他可用链路,确保数据的不间断传输,大大提高了网络的可靠性和稳定性。

2.1.2 BGP协议

BGP的主要作用是在不同自治系统的边界路由器之间交换路由信息,从而构建起全球范围内的互联网路由网络。在互联网的架构中,各个互联网服务提供商(ISP)都拥有自己的自治系统,BGP使得这些自治系统能够相互通信,实现数据的跨网络传输。当一个用户在国内访问国外的网站时,数据需要经过多个不同ISP的自治系统,BGP协议负责在这些自治系统的边界路由器之间传递路由信息,确保数据能够准确无误地到达目标网站所在的网络。

路由信息通告是BGP的核心功能之一。BGP通过建立TCP连接,在边界路由器之间交换BGP路由更新消息。这些消息包含了目的网络的可达性信息以及相关的路径属性。当一个自治系统发现了一条新的到达某目的网络的路径时,它会将该信息封装在BGP路由更新消息中,并发送给与之相邻的自治系统的边界路由器。在一个跨国企业的网络中,其位于不同国家的分支机构通过不同的ISP接入互联网。当其中一个分支机构的网络发生变化,发现了一条新的更优的访问总部网络的路径时,该分支机构所在自治系统的边界路由器会将这条新路径的信息通过BGP路由更新消息发送给相邻自治系统的边界路由器,从而实现路由信息的传播。

在这里插入图片描述

路径属性是BGP协议的重要组成部分,它为路由决策提供了丰富的信息。常见的路径属性包括起源(Origin)、自治系统路径(AS - Path)、下一跳(Next - Hop)、MED(Multi - Exit - Discriminator)等。起源属性用于标识路由信息的来源,是通过IGP(内部网关协议)发现的,还是通过EGP(外部网关协议)学习到的,亦或是通过其他方式引入的。自治系统路径属性记录了路由信息经过的所有自治系统的编号,这使得路由器能够避免路由环路的产生。下一跳属性则指定了数据包在转发到目的网络时的下一个路由器的地址。MED属性用于在多个自治系统向同一个目的网络提供多条路径时,影响相邻自治系统的路由选择,通常数值越小表示路径越优。在一个复杂的网络环境中,当存在多个自治系统都可以到达某一目的网络时,路由器会根据这些路径属性进行综合判断,选择最优的路径进行数据转发。

策略路由是BGP协议的一大优势,它允许网络管理员根据特定的策略来控制路由的选择和流量的转发。网络管理员可以根据业务需求、网络拓扑结构以及与其他自治系统的商业合作关系等因素,制定灵活的路由策略。在一个企业网络中,为了确保关键业务的服务质量,网络管理员可以配置BGP策略,使得关键业务的流量优先通过与某一ISP建立的高速链路进行传输,而普通业务流量则可以通过其他链路进行转发。这样可以有效地保障关键业务的带宽需求和低延迟要求,提高业务的可靠性和用户体验。

2.2 SDN控制平面技术

2.2.1 SDN架构与原理

软件定义网络(SDN)作为网络领域的创新架构,其核心特性在于控制平面与数据平面的清晰分离,这种独特的设计理念为网络带来了前所未有的灵活性与可编程性。

SDN将控制平面从网络设备中剥离出来,集中到一个或多个控制器上。这些控制器宛如网络的“智慧大脑”,掌控着全局的网络信息,负责收集网络拓扑、链路状态以及流量统计等关键数据。通过对这些信息的深度分析与整合,控制器能够依据网络的实时需求,制定出精准的转发策略。在一个大型数据中心网络中,当多台服务器同时面临大量数据请求时,SDN控制器可以实时感知各服务器的负载情况以及网络链路的带宽使用状态,然后根据预先设定的规则,合理调配网络流量,将请求分配到负载相对较低且链路带宽充足的服务器上,确保数据的高效传输。

在这里插入图片描述

集中式控制是SDN架构的一大显著优势。借助集中式的控制器,网络管理员能够从全局视角对整个网络进行统一管理和灵活配置。这意味着管理员只需在控制器上进行操作,便可轻松实现对网络拓扑的动态调整、路由策略的优化以及流量的精细化调度,无需再像传统网络那样,逐个对网络设备进行繁琐的配置。当网络中需要新增一个子网时,管理员只需在SDN控制器上进行简单的配置操作,控制器便能自动将相关的配置信息下发到数据平面的交换机上,实现子网的快速接入和网络的无缝扩展。这种集中式控制方式大大提高了网络管理的效率,降低了管理成本,使得网络能够更加迅速地响应业务需求的变化。

开放接口是SDN架构的另一大亮点。SDN通过定义标准化的南向接口和北向接口,为网络的可编程性提供了有力支持。南向接口,如OpenFlow协议,实现了控制器与数据平面设备之间的通信,使得控制器能够对交换机等设备进行精确的控制,灵活地定义数据包的转发规则。而北向接口则为上层应用与控制器之间的交互搭建了桥梁,开发者可以利用北向接口提供的API,根据不同的业务需求,开发出各种定制化的网络应用程序。在智能交通系统中,开发者可以基于SDN的北向接口,开发出专门用于交通流量监测与调控的应用程序。该程序可以实时获取道路上的车辆流量信息,并将这些信息传递给SDN控制器。控制器根据这些信息,通过南向接口对网络中的交换机进行控制,调整网络流量的转发路径,确保交通数据的实时、准确传输,从而实现对交通流量的智能调控。

2.2.2 OpenFlow协议

OpenFlow协议在SDN架构中占据着核心地位,它作为SDN南向接口的关键协议,肩负着控制器与数据平面设备之间通信的重任,为实现SDN的创新理念提供了坚实的技术支撑。

流表是OpenFlow协议的核心数据结构,它犹如数据平面设备的“行动指南”,决定了数据包的转发路径和处理方式。流表由一系列的流表项组成,每个流表项都包含了精确的匹配字段和相应的动作。匹配字段涵盖了数据包的多个关键属性,如源IP地址、目的IP地址、源端口、目的端口、协议类型等。当数据平面设备接收到一个数据包时,会依据流表中的匹配字段,对数据包进行逐一匹配。在一个企业网络中,若流表中存在一条流表项,其匹配字段设置为源IP地址为192.168.1.0/24,目的IP地址为10.0.0.0/8,协议类型为TCP,动作设置为将数据包转发到端口3。当设备接收到一个源IP地址为192.168.1.5,目的IP地址为10.0.0.10,协议类型为TCP的数据包时,便会与该流表项成功匹配,并按照动作指示,将数据包转发到端口3。

动作则定义了设备在匹配到数据包后应执行的具体操作,常见的动作包括转发到指定端口、丢弃数据包、修改数据包的某些字段等。除了上述简单的转发动作外,还可以进行更为复杂的操作。在网络安全防护场景中,可以设置流表项,当匹配到来自特定恶意IP地址的数据包时,将其直接丢弃,从而有效阻止恶意流量的入侵;或者对数据包的源IP地址进行修改,实现网络地址转换(NAT)功能,隐藏内部网络的真实IP地址,增强网络的安全性。

OpenFlow协议支持多种消息类型,这些消息在控制器与数据平面设备之间传递着丰富的信息,确保了双方的高效通信和协同工作。其中,配置消息用于控制器对数据平面设备的基本配置,如设置设备的端口状态、流表的最大容量等。在网络部署初期,控制器可以通过配置消息,将数据平面交换机的某个端口设置为开启状态,并设置其流表最大容量为1000条流表项,以满足网络的基本运行需求。状态消息用于设备向控制器汇报自身的运行状态,包括端口的流量统计信息、流表的使用情况等。交换机可以定期向控制器发送状态消息,汇报其各个端口的实时流量,以便控制器及时了解网络的流量分布情况,为后续的流量调度提供依据。

在这里插入图片描述

在实际的网络通信过程中,当数据平面设备接收到一个数据包,且在本地流表中未找到匹配的流表项时,会通过Packet - In消息将数据包发送给控制器。控制器在接收到Packet - In消息后,会根据网络的全局信息和预先设定的策略,为该数据包计算出最佳的转发路径,并生成相应的流表项。然后,控制器通过Flow - Mod消息将这些流表项下发到数据平面设备,设备在接收到Flow - Mod消息后,将新的流表项添加到本地流表中。当下一次接收到相同类型的数据包时,便可以直接依据本地流表中的流表项进行转发,无需再向控制器发送Packet - In消息,从而提高了数据包的转发效率。

2.2.3 SDN控制器

SDN控制器作为SDN架构的核心组件,犹如网络的“指挥中枢”,肩负着众多关键功能,对网络的稳定运行和高效管理起着决定性作用。

网络拓扑管理是SDN控制器的重要职责之一。控制器通过与数据平面设备进行持续的通信,能够实时收集网络中的拓扑信息,包括设备的连接关系、链路的状态等。在此基础上,控制器能够构建出一幅精确、实时的网络拓扑图。在一个复杂的园区网络中,当新的交换机接入网络或者现有链路的状态发生变化时,SDN控制器能够迅速感知到这些变化,并及时更新网络拓扑图。这种实时的拓扑管理能力,使得控制器能够全面了解网络的结构,为后续的路由计算和流量调度提供了准确的基础信息。

路由计算是SDN控制器的核心功能之一。基于所掌握的网络拓扑信息,控制器能够运用先进的路由算法,如最短路径算法、流量工程算法等,为数据包计算出最优的传输路径。在一个大型数据中心网络中,当有多条链路可供选择时,控制器可以根据链路的带宽、延迟、拥塞程度等因素,综合运用路由算法,计算出一条既能满足数据传输需求,又能优化网络资源利用的最佳路径。通过这种精确的路由计算,能够确保数据在网络中高效、稳定地传输,避免因路由选择不当导致的网络拥塞和性能下降。

流表下发是SDN控制器实现对数据平面设备控制的关键手段。控制器在完成路由计算后,会将计算得到的路由信息转化为流表项,并通过南向接口协议(如OpenFlow协议)将这些流表项下发到相应的数据平面设备。在一个企业网络中,当控制器计算出某个部门的数据包需要通过特定的路径进行转发时,它会生成包含该转发路径信息的流表项,并将其下发到相关的交换机上。交换机在接收到流表项后,会按照流表的指示对数据包进行转发,从而实现控制器对网络流量的精确控制。

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

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

相关文章

网络层协议-----IP协议

目录 1.认识IP地址 2.IP地址的分类 3.子网划分 4.公网IP和私网IP 5.IP协议 6.如何解决IP地址不够用 1.认识IP地址 IP 地址(Internet Protocol Address)是指互联网协议地址。 它是分配给连接到互联网的设备(如计算机、服务器、智能手机…

我国无人机新增实名登记110.3 万架,累计完成飞行2666万小时

据央视新闻从中国民航局了解到,2024 年我国全年新增通航企业 145 家、通用机场 26 个,颁发无人驾驶航空器型号合格证 6 个、新增实名登记无人机 110.3 万架,无人机运营单位总数超过 2 万家,累计完成无人机飞行 2666 万小时&#x…

【Linux】正则表达式

正则表达式是一种可供Linux工具过滤文本的自定义模板,Linux工具(如sed、gawk)会在读取数据时使用正则表达式对数据进行模式匹配。 正则表达式使用元字符来描述数据流中的一个或多个字符。它是由正则表达式引擎实现的。正则表达式引擎是一种底…

数据平台浅理解

定义 数据平台架构是指用于收集、存储、处理和分析数据的一系列组件、技术和流程的整体架构设计。它就像是一个复杂的数据生态系统的蓝图,旨在高效地管理数据从产生源头到产生价值的整个生命周期。 主要层次 数据源层 这是数据的起点,包含各种类型的数据…

Python入门10:高阶函数

一、什么是高阶函数 1.1、高阶函数的概念和作用: 高阶函数是指 接受函数作为参数 或者 返回函数 作为结果的函数。它在函数式编程中是一个重要概念(函数式编程(Functional Programming , FP )是一 种编程范式&#xf…

浅谈云计算12 | KVM虚拟化技术

KVM虚拟化技术 一、KVM虚拟化技术基础1.1 KVM虚拟化技术简介1.2 KVM虚拟化技术架构1.2.1 KVM内核模块1.2.2 用户空间工具(QEMU、Libvirt等) 二、KVM虚拟化技术原理2.1 硬件辅助虚拟化2.2 VMCS结构与工作机制 三、KVM虚拟化技术面临的挑战与应对策略3.1 性…

GO:GO程序如何处理缓存加载和大数据缓存

如果我们会在程序启动时,需要加载所有数据,最简单的方式就是程序启动,通过轮训从数据库拉取所有数据,并写入到本地缓存中。 问题:数据量较大的时候,程序加载慢,启动时间长,遇到问题不…

【优选算法篇】:分而治之--揭秘分治算法的魅力与实战应用

✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:优选算法篇–CSDN博客 文章目录 一.什么是分治算法1.分治算法的基本概念2.分治算法的三个步…

OpenAI Whisper:语音识别技术的革新者—深入架构与参数

当下语音识别技术正以前所未有的速度发展,极大地推动了人机交互的便利性和效率。OpenAI的Whisper系统无疑是这一领域的佼佼者,它凭借其卓越的性能、广泛的适用性和创新的技术架构,正在重新定义语音转文本技术的规则。今天我们一起了解一下Whi…

python+playwright自动化测试(一):安装及简单使用,截图录屏

目录 基本使用 浏览器调用 启用浏览器 创建窗口对象 访问URL 页面的刷新、返回、前进 关闭 截图、录屏、保存pdf 截图 录屏 保存为pdf 设置窗口大小 调试模式 手机模式及new_context的更多参数 手机模式 new_context的其他参数 设置语言和时区 设置和修改位置…

初识C++(二)

六、引用 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。 通俗地讲,可以理解为一个人能够拥有多个称呼,这些所有的称呼都是表示这一…

【RedisStack】Linux安装指南

【RedisStack】Linux安装指南.md 前言下载解压创建启动文件设置密码把密码设置到环境变量启动/停止相关命令测试&验证官网资料参考资料 前言 Redis Stack是使用Redis的最佳起点。我们将我们必须提供的最好的技术捆绑在一起,形成一个易于使用的软件包。Redis St…

达梦8-DMSQL程序设计学习笔记1-DMSQL程序简介

1、DMSQL程序简介 DMSQL程序是达梦数据库对标准SQL语言的扩展,是一种过程化SQL语言。在DMSQL程序中,包括一整套数据类型、条件结构、循环结构和异常处理结构等,DMSQL程序中可以执行SQL语句,SQL语句中也可以使用DMSQL函数。 DMSQ…

STM32 FreeRTOS 基础知识

多任务处理 内核是操作系统的核心组件。诸如 Linux 这样的操作系统采用的内核, 看似允许用户同时访问计算机。很明显,多个用户可以同时执行多个程序。 每个执行程序都是受操作系统控制的任务(或线程)。如果一个操作系统能够以这…

T-SQL编程

目录 1、T-SQL的元素 1.1 标识符 1. 常规标识符 2. 分隔标识符 1.2 变量 1. 全局变量 2. 局部变量 1.3 运算符 1. 算数运算符 2. 赋值运算符 3. 位运算符 4. 比较运算符 5. 逻辑运算符 6. 字符串连接运算符 7. 一元运算符 8. 运算符的优先级和结合性 1.4 批处…

js中的Object.defineProperty()详解

文章目录 一、Object.defineProperty()二、descriptor属性描述符2.1、数据描述符2.2、访问器描述符2.3、descriptor属性2.3.1、value2.3.2、writable2.3.3、enumerable (可遍历性)2.3.4、configurable (可配置性) 三、注意事项 一…

【搭建JavaEE】(2)Tomcat安装配置和第一个JavaEE程序

Tomcat–容器(Container) 下载 Apache Tomcat - Welcome! 下载完成 请求/响应 结构 测试 查看Jdk版本 改端口号localhost8080–>8099 学学人家以后牛逼了可以用自己名字当文件夹名 配置端口8099 找到server文件 用记事本打开 再打开另一个logging文件 ”乱码解决“步骤&…

centos7.6 安装nginx 1.21.3与配置ssl

1 安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel2 下载Nginx wget http://nginx.org/download/nginx-1.21.3.tar.gz3 安装目录 mkdir -p /data/apps/nginx4 安装 4.1 创建用户 创建用户nginx使用的nginx用户。 #添加www组 # groupa…

高级软件工程-复习

高级软件工程复习 坐标国科大,下面是老师说的考试重点。 Ruby编程语言的一些特征需要了解要能读得懂Ruby程序Git的基本命令操作知道Rails的MVC工作机理需要清楚,Model, Controller, View各司什么职责明白BDD的User Story需要会写,SMART要求能…

TrollFools 2.10-22 插件注入工具 官方版

《TrollFools巨魔设备专用插件注入工具》这是一款专为巨魔设备打造的插件注入神器,功能强大且操作便捷。它能够轻松地将插件注入通过AppStore商店下载的任意APP中,同时也能随时卸载,丝毫不影响APP的正常使用。注入后的APP仍可正常更新&#x…