InfoQ 研究中心诚意出品,一份报告带你走进中国 2000 万开发者 了解详情
写点什么

我们是如何实现边缘计算与网络动态加速的?

  • 2019-11-11
  • 本文字数:2065 字

    阅读完需:约 7 分钟

我们是如何实现边缘计算与网络动态加速的?

边缘计算:一种通俗理解是将计算和存储等服务放在网络逻辑边缘节点上的一种分散式架构,通过将原本中心化的服务分散到边缘节点处理,让数据的运算和存储更接近数据来源,减少网络传输的数据量和访问延时。它不但侧重边缘节点,还强调节点之间的连接,因此就有了与网络加速的契合。


我们在许多城市运营商的机房(节点)提供计算和存储资源,并利用动态加速技术来优化节点之间的传输网络,并搭建了一个机房、服务器层面的边缘计算平台(UODN)。这种方式适用于数据源能够在各地存储或运算、且较为依赖网络传输的业务,例如网络音视频教育、医疗数据分析等。


在实现上,边缘计算平台与动态加速网络也依赖了路由、DNS 等一些基础服务,几个产品之间的关系如下图:



从上至下,边缘计算平台由分布在各个城市、运营商的节点组成,节点间物理网络可以互通。如果需要在网络进一步优化,则依赖动态加速网络,而动态加速网络的实现除了加速服务器本身以外,还需要路由服务、DNS 服务来提供路由和域名解析等数据。另外,路由和 DNS 也为 CDN、直播平台提供基础服务。


那么,边缘计算、动态加速、路由/DNS 这些关键服务又是如何实现的呢?首先,我们来看看边缘计算。


1 边缘计算

边缘计算的核心理念是将数据的存储、传输、计算和安全交给边缘节点来处理。边缘计算并非是让终端自己负责所有计算,而是在离终端更近的地方部署边缘平台,终端与之通信可以有多种形式,这样可以避免集中式云计算中心的网络延迟和传输带宽问题。


在边缘计算的实现上,我们提供了开放式分发节点 UODN,将计算节点分布在全国的上百个数据中心,通过虚拟化、Docker 等方式提供计算和存储资源,用户可以通过软件自定义内容分发服务。



计算、存储等资源分配上,建议将大量实时需要交互的计算如部分实施决策和自主协作过程在边缘节点实现,一些需要集中式处理的计算如大数据挖掘、大规模学习等则继续交由数据中心完成。


国内环境下,在边缘节点提供计算和存储,能够让数据能就近上传、访问,节点之间只传输核心的计算结果,即可减少非必要网络传输带来的延迟。然而,在跨国、跨运营商等弱网络环境下,链路质量差,节点之间的网络传输依然可能影响业务,因此我们需要融合动态加速网络优化传输。


2 动态加速

区别于 CDN,UCloud 动态加速网络并非依赖于缓存数据,而是通过对路由、协议等的优化来实现加速,因此在跨国、跨运营商这种质量差的网络中有比较好的表现。下图是 UCloud 动态加速网络的网络拓扑图, 由分布在各地的加速点组成。



其加速原理和实现过程,主要包括四点:


首先,接入方式设置了 HTTP(S)、TCP、UDP 三种模式:


将域名 CNAME 到加速平台后,加速点服务器就能接收到用户数据包,HTTP 通过域名(TCP/UDP 根据端口查找配置),服务器根据配置获取源站以及到源站和到路由的信息,并选择路由将数据转发往目标源站。


其次,加速网络内部统一使用私有协议 UTP 传输数据:


每个加速点有接入和中转双重身份,直接对接用户客户端或源站的定义为接入点,接入点收到的数据一般通过 UTP 协议发往中转点,中转点之间也通过 UTP 传输。UTP 是 UCloud 在 UDP 的基础上实现可信传输的协议,支持流量控制、拥塞控制、快速重传等,可以消除握手的时间,使传输控制更灵活。


然后,与边缘计算平台的融合,实现对用户透明的动态加速:


我们会为边缘计算节点提供加速 IP,用户程序使用 IP 地址即可使用加速网,不需要域名配置和修改程序。传输 TCP、UDP 数据时,内核模块会捕获并修改 TCP/IP 包,将数据包发送到加速网,同时在加速网注册,以此实现对用户透明的动态加速。


最后,如何达到更优的加速效果,主要有以下几点思路:


  • 链路层/网络层:选择更优的链路,这里主要是基础设施的建设;

  • 传输层:对传输协议进行优化如下:1)加速网络内部采用 UDP 实现可信传输,优化握手时间;2)调整拥塞控制,采用更灵活的发送策略例如 UTP;3)根据链路 MTU 大小进行切片发送,减少报文重组;

  • 应用层:优化业务程序,尽量使用长连接传输,减少频繁建立短连接的时间和失败概率。


3 路由服务

路由是指从一个接口收到数据包后,根据数据包的目的地址进行定向并转发到另一个接口的过程。路由和域名解析服务主要提供对外接口,供给动态加速、CDN 使用。


路由计算方面,建议先重复测试任意节点之间分时段的网络质量数据,包括 ping 延时、丢包率、UDP 大小包丢包率等,然后计算出全部节点之间的最优、次优路径,最后根据历史数据预测最优路由。


这里,需要特别注意的是,时段不同、数据包大小不同,路由计算的结果可能不同。


总 结

本文主要讲解了边缘计算和动态加速网络的一些实现技术和优化方案,来帮助实现计算、存储、网络等资源的平衡。边缘计算方面,主要是提高边缘节点资源利用率,通过虚拟化技术让资源管理更有效;动态加速网络,则是通过优化路由、协议等方法,来优化两点之间的网络质量。


作者介绍:


梁旭:UCloud 研发工程师,先后负责 UCloud CDN、ODN、IDV 虚拟化产品的研发,熟悉边缘计算与动态加速等技术。


本文转载自公众号 UCloud 技术(ID:ucloud_tech)。


原文链接:


https://mp.weixin.qq.com/s/24N6NSC9PmINL6S--X5bBg


2019-11-11 17:48563

评论

发布
暂无评论
发现更多内容

基于华为云IOT设计智能称重系统(STM32)

DS小龙哥

7月月更

Qt|多个窗口共有一个提示框类

中国好公民st

qt 7月月更

千人规模互联网公司研发效能成功之路

laofo

互联网 DevOps 研发效能 工程效率

《HarmonyOS实战—入门到开发,浅析原子化服务》

攻城狮杰森

操作系统 HarmonyOS 7月月更

简单介绍一下闭包及它的一些应用场景

是乃德也是Ned

7月月更

LeetCode-144. 二叉树的前序遍历(java)

bug菌

Leet Code 7月月更

自律,提升自制力原来也有方法

沃德

程序员 7月月更

Qt 实现容器的DELETE的方式

小肉球

qt 7月月更

科普达人丨一文弄懂什么是云计算?

阿里云弹性计算

云计算 阿里云 虚拟化 神龙架构 IT资源利用

java零基础入门-Java正则表达式

喵手

Java 7月月更

一个开发者自述:我是如何设计针对冷热读写场景的 RocketMQ 存储系统

阿里巴巴中间件

阿里云 RocketMQ 云原生编程挑战赛

async / await

Jason199

Async await 7月月更

Java 9 中的字符串(String)压缩的改进

HoneyMoose

Android 面试知识点

沃德

android 程序员 7月月更

对比学习之 Unsupervised Learning of Visual Features by Contrasting Cluster Assignments

infoQ-LolitaAnn

人工智能 深度学习 7月月更

OpenSergo 即将发布 v1alpha1,丰富全链路异构架构的服务治理能力

阿里巴巴中间件

阿里云 微服务 云原生 云原生开源 OpenSergo

Nginx 主机配置文件中如何配置能够支持 IPv4 和 IPv6

HoneyMoose

盘点JS判断空对象的几大方法

猪痞恶霸

前端 js 7月月更

【玩转 RT-Thread】 RT-Thread Studio —— 按键控制电机正反转、蜂鸣器

攻城狮杰森

OS 7月月更 RT-Thread

Android自定义TextView实现高度和宽度,解决字体适配问题

芝麻粒儿

Android Studio TextView 7月月更

全链路压测:影子库与影子表之争

阿里巴巴中间件

阿里云 云原生 全链路压测 影子

LinkedBlockingQueue源码分析-初始化

zarmnosaj

7月月更

windows下设置TortoiseGit客户端连接git不用每次输入用户名和密码

乌龟哥哥

7月月更

想要在Linux中只显示隐藏文件,用对ls就可以实现

wljslmz

Linux 运维 7月月更

iOS开发:报错The sandbox is not in sync with the Podfile.lock. Run 'pod install' …的解决方法

三掌柜

7月月更

【LeetCode】 解密消息Java题解

Albert

LeetCode 7月月更

AI人脸编辑让Lena微笑

逝缘~

华为云 AI Gallery 7月月更

当我们谈论不可变基础设施时,我们在谈论什么

阿里巴巴中间件

阿里云 容器 云原生 托管

iOS基础--属性(setter方法 、getter方法、点语法、@property)

NewBoy

前端 移动端 iOS 知识体系 7月月更

electron添加SQLite数据库

空城机

sqlite Electron 7月月更

如何在博客中添加Aplayer音乐播放器

echeverra

前端

我们是如何实现边缘计算与网络动态加速的?_文化 & 方法_梁旭_InfoQ精选文章