网络节点

Service Function Chaining Resource Allocation: A Survey

一个人想着一个人 提交于 2019-12-03 13:07:47
摘要: 服务功能链(SFC)是未来Internet的一项关键技术。 它旨在克服当前部署模型的僵化和静态限制。 该技术的应用依赖于可以将SFC最佳映射到衬底网络的算法。 这类算法称为“服务功能链资源分配(SFC-RA)”算法或“ VNF放置(VNFP)”算法。 本文介绍了SFCRA算法的最新研究概况。 介绍了公式和相关问题后,总结了SFC-RA问题的几种变体。 最后,我们讨论了几个未来的研究方向 I 介绍 随着Internet和网络服务的快速发展,出于技术原因,增值原因等原因,越来越多的中间箱被部署在网络中。最近的一篇论文表明,中间箱的数量与企业网络中的路由器数量相当[ 1]。 但是,中间盒意味着较高的资本支出(CAPEX)和运营支出(OPEX),此外,中间盒的部署或重新部署需要专业知识,这会增加OPEX并降低灵活性。 出现其他问题的事实是,通常需要流以特定顺序通过一系列中间盒,这通常称为服务功能链(SFC)[2]。 例如,当前的服务功能链部署模型是拓扑相关的和特定于设备的; 因此,添加,删除和修改服务功能链可能很麻烦且容易出错,更糟糕的是,这些任务可能无法完成。 所有这些功能都显示了当前部署模型的不足之处 在本文中,我们遵循IETF服务功能链工作组(IETF SFC WG)的约定使用术语“服务功能链”,其中SFC表示NFV和SDN上下文中的新型服务链部署模型。

从0到1 快速建一个区块链

▼魔方 西西 提交于 2019-12-03 10:37:54
近期的区块链重回热点,如果你想深入了解区块链,那就来看一下本文,手把手教你构建一个自己的区块链。 弄懂区块链的最快方法-亲自构建一个 看到这篇文章,说明您也是对加密货币的兴起感兴趣,想知道区块链是如何工作的和其背后运行的技术原理。 但是想要搞懂区块链并不容易。我在众多的视频中苦苦钻研,跟随着漏洞百出的教程,经历着因区块链相关案例太少而产生的挫败感。 我喜欢从行动中学习。它迫使我从代码层面处理问题,从而解决问题。如果您和我一样做,那么在本指南的最后,您将拥有一个运行正常的区块链,并对它们的工作原理有深入的了解。 上手准备 请记住,区块链是一个不可变的、连续的记录链,称为块。它们可以包含事务、文件或您喜欢的任何数据。但是重要的是,它们通过使用哈希而被链接在一起。 如果您不确定什么是哈希值,请参考这里。 教程面向的人群? 可以轻松地阅读和编写一些基本的Python,并且对HTTP请求的工作方式有所了解,因为本文将通过HTTP与区块链进行交流。 需要准备什么? 确保已安装 Python 3.6 +(以及pip)。您还需要安装Flask和很棒的Requests库: pip install Flask==0.12.2 requests==2.18.4 您还需要HTTP客户端,例如Postman或cURL。 源代码可在此处获得。 步骤1:构建一个区块链 打开你最喜欢的文本编辑器或IDE

云平台核心架构设计要点

旧巷老猫 提交于 2019-12-03 04:40:13
云平台核心架构设计要点 1.1 架构设计介绍 1.全异步架构:异步消息、异步方法、异步HTTP调用。 使用消息总线进行各服务的通信连接,在调用服务时,源服务发消息给目的服务,并注册一个回调函数,然后立即返回;一旦目的服务完成任务,就会触发回调函数回复任务结果。异步消息可以并行处理。 服务之间采用异步消息进行通信,对于服务内部,一系列相关组件或插件,也是通过异步方法来调用,调用方法与异步消息一致。 采用的插件机制,给每个插件设置相应的代理程序。 为每个请求设置了回调 URL在HTTP的包头,任务结束后,代理程序会发送应答给调用者的URL。 基于异步消息、异步方法、异步 HTTP调用这三种方式, 构建了一个分层架构,保证了所有组件均能实现异步操作。 基于全异步架构机制,单管理节点的 每秒可并发处理上万条 API请求,还可同时管理上万台服务器和数十万台云主机。 2.无状态服务:单次请求不依赖其他请求。 • 的计算节点代理、存储代理、网络服务、控制台代理服务、配置服务等,均不依赖其他请求,一次请求可包含所有信息,相关节点无须维护存储任何信息。 • 使用一致性哈希环对管理节点、计算节点或者其他资源以 UUID为唯一ID进行认证的哈希环处理,消息发送者无需知道待处理消息的服务实例,服务也无须维护、交换相关的资源信息,服务只需单纯的处理消息即可。 • 管理节点间共享的信息非常少

扩容区块链:分片技术分析

北慕城南 提交于 2019-12-03 04:33:25
转载: https://cloud.tencent.com/developer/news/370656 分片是区块链扩容的热门方向之一。不仅以太坊基金会把分片作为官方钦定的扩容方向,有分片概念的一众公链在也受到投资界热捧。本文就分片技术的分类和实现方法进行讨论。 01 .分片是什么 1.1分片解决区块链的扩容问题 目前区块链的扩容方案主要分为三个不同的Layer。分片和DAG (有向无环图)同属对区块链本身架构进行改变的Layer 1。分片目前被关注的热度很高,主打分片技术的公链被投资机构热捧, 分片也和Layer 2的侧链、子链、状态通道等方向一起被列入以太坊官方的扩容方案。 1.2分片的原理 分片其实是一种传统数据库技术,它将大型数据库分成更小、更快、更容易管理的部分,这些部分叫做数据碎片。在公链中,它是通过使用多个网络设备来获得平行处理转账的功能,从而分散那些转账验证的工作量。这样会自动地把网络分成很多更小的部分,或者说进行“分片”处理,从而每一个小网络只需要运行一个更小范围的共识协议。网络上的交易将被分成不同的碎片,其由网络上的不同节点组成。 因此,每个节点只需处理一小部分传入的交易,并且通过与网络上的其他节点并行处理就能完成大量的验证工作。将网络分割为碎片会使得更多的交易同时被处理和验证。所以,分片技术使用的是平行处理的方式,有越多的节点加入,网络中批准的速度也会加快

Hyperledger Fabric(4)链码ChainCode

别等时光非礼了梦想. 提交于 2019-12-03 04:15:35
智能合约,是一个抽象的概念,智能合约的历史可以追溯到 1990s 年代。它是由尼克萨博(Nick Szabo)提出的理念,几乎与互联网同龄。 我们这里所说的智能合约只狭义的指区块链中。它能够部署和运行在区块链环境中,由 一段代码 来 描述 相关的 业务逻辑 。部署后的智能合约在区块链中 无法修改 ,智能合约的执行完全由代码决定,不受人为因素的干扰。一般来说,参与方通过 智能合约 规 定 各自 权利和义务 、 触发合约的条件 以及 结果 ,一旦该智能合约在 区块链环境 中运行就可以得出 客观 、 准确 的结果。 什么是ChainCode   ChainCode(链码)是智能合约在Fabric区块链网络的实现形式。分为 用户链码 和 系统链码 ,通常指的是用户链码。链码是 访问账本 的 基本方法 ,一般是用 Go 等高级语言编写的、 实现规定接口的代码 。上层 应用 可以通过 调用链码 来 初始化和管理账本的状态 。只要有适当的 权限 , 链码 之间也可以 互相调用 。   链码被部署在Fabric网络节点上,运行在隔离沙盒(目前为Docker容器)中,并通过gRPC协议与相应的Peer节点进行交互,以操作分布式账本中的数据。   启动Fabric网络后,可以通过命令行或SDK进行链码操作,验证网络运行是否正常。   它扮演的角色如下图所示:

k8s网络插件flannel模式剖析:vxlan、host-gw、directrouting

孤街醉人 提交于 2019-12-03 01:41:11
跨节点通讯,需要通过NAT,即需要做源地址转换。 k8s网络通信:   1) 容器间通信:同一个pod内的多个容器间的通信,通过lo即可实现; 2) pod之间的通信,pod ip <---> pod ip,pod和pod之间要不经过任何转换即可通信; 3) pod和service通信:pod ip <----> cluster ip(即service ip)<---->pod ip,他们通过iptables或ipvs实现通信,另外大家要注意ipvs取代不了iptables,因为ipvs只能做负载均衡,而做不了nat转换; 4) Service与集群外部客户端的通信 [root@master pki]# kubectl get configmap -n kube-system NAME DATA AGE coredns 1 22d extension-apiserver-authentication 6 22d kube-flannel-cfg 2 22d kube-proxy 2 22d kubeadm-config 1 22d kubelet-config-1.11 1 22d kubernetes-dashboard-settings 1 9h [root@master pki]# kubectl get configmap kube-proxy -o yaml -n

redis主从复制详述

匿名 (未验证) 提交于 2019-12-03 00:44:02
一、主从复制详述 原理其实很坚决,master启动会生成一个 run id ,首次同步时会发生给slave,slave同步命令会带上run id以及offset,显然,slave启动(初次,重启)内存中没有run id,所以 master收到后会全量同步,发生 网络抖动 时,slave发生的同步命令会带上run id以及offset,master就知道去缓存中对应的偏移量开始到结尾那一段的命令发送给slave进行增量 同步。在正常运行过程中,master每收到一个数据变更命令都会发送到所有slave上。 1 全量同步   Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。具体步骤如下:   1)从服务器连接主服务器,发送SYNC命令;   2)主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;   3)主服务器BGSAVE执行完后,向 所有从服务器(之所以是向所有从服务器发送应该是因为初始化是几乎同时收到SYNC命令, 归根到底是向所有发送了SYNC命令的slave发送RDB文件 ) 发送快照文件,并在发送期间 继续用 缓存区 记录被执行的写命令 ;   4)从服务器收到快照文件后丢弃所有旧数据,载入收到的快照;   5

分布式系统理论基础3 :CAP

匿名 (未验证) 提交于 2019-12-03 00:34:01
分布式系统理论基础 - CAP 12513 0 收藏 编辑 引言 CAP是分布式系统、特别是分布式存储领域中被讨论最多的理论,“ 什么是CAP定理? ”在Quora 分布式系统分类下排名 FAQ 的 No.1。CAP在程序员中也有较广的普及,它不仅仅是“C、A、P不能同时满足,最多只能3选2”,以下尝试综合各方观点,从发展历史、工程实践等角度讲述CAP理论。希望大家透过本文对CAP理论有更多地了解和认识。 CAP定理 CAP由 Eric Brewer 在2000年PODC会议上提出 [1][2] ,是Eric Brewer在Inktomi [3] 期间研发搜索引擎、分布式web缓存时得出的关于数据一致性(consistency)、服务可用性(availability)、分区容错性(partition-tolerance)的猜想: It is impossible for a web service to provide the three following guarantees : Consistency, Availability and Partition-tolerance. 该猜想在提出两年后被证明成立 [4] ,成为我们熟知的CAP定理: 数据一致性 (consistency):如果系统对一个写操作返回成功,那么之后的读请求都必须读到这个新数据;如果返回失败

以太坊源码分析--挖矿与共识

匿名 (未验证) 提交于 2019-12-03 00:33:02
挖矿(mine) 是指矿工节点互相竞争生成新区块以写入整个区块链获得奖励的过程. 共识(consensus) 是指区块链各个节点对下一个区块的内容形成一致的过程 在以太坊中, miner 包向外提供挖矿功能, consensus 包对外提供共识引擎接口 miner 包主要由 miner.go worker.go agent.go 三个文件组成 Miner 负责与外部交互和高层次的挖矿控制 worker 负责低层次的挖矿控制 管理下属所有Agent Agent 负责实际的挖矿计算工作 三者之间的顶层联系如下图所示 Miner Miner的定义如下 type Miner struct { mux *event.TypeMux worker *worker coinbase common.Address eth Backend engine consensus.Engine .... } 各字段作用如下, 其中标有 外 的字段表示与Miner包外部有联系 * mux 外 接收来自 downloader 模块的 StartEvent DoneEvent FailedEvent 事件通知。在网络中,不可能只有一个矿工节点,当 downloader 开始从其他节点同步Block时,我们就没有必要再继续挖矿了. * eth 外 通过该接口可查询后台 TxPool BlockChain ethdb

CAP理论

匿名 (未验证) 提交于 2019-12-03 00:30:01
CAP理论 小结: Consistency 一致性 就是数据的一致性。一致性根据时间长短来达到一致性,又分为 强,弱,最终一致性 Availability 可用性 可用性是针对用户角度,发送一个请求,一定回复。保证这一点就是可用性 分区容错性 就是分布式节点中 某一个节点挂了,系统还能满足一致性和可用性 CA without P:如果不要求P(不允许分区),则C(强一致性)和A(可用性)是可以保证的。但其实分区不是你想不想的问题,而是始终会存在,因此CA的系统更多的是允许分区后各子系统依然保持CA。 CP without A:如果不要求A(可用),相当于每个请求都需要在Server之间强一致,而P(分区)会导致同步时间无限延长,如此CP也是可以保证的。很多传统的数据库分布式事务都属于这种模式。 AP wihtout C:要高可用并允许分区,则需放弃一致性。一旦分区发生,节点之间可能会失去联系,为了高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。现在众多的NoSQL都属于此类。 因为 AP更为重要 所以一般都是C,使用最终以执行 版权 我仅对文章的排版和部分文字进行了润色 2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后,麻省理工学院的Seth Gilbert和Nancy