改进"尽最大努力交付"的服务

网络层的作用就是负责在不同的网段尽力转发数据包,但是负责中专数据包的路由器并不关心数据包的内容和优先顺序。而是先到达的数据包先处理,后到达的数据包排队等待处理,路由器处理不过来就丢弃。

但是,有的在互联网上传输的音频视频数据就应该优先传输,这就要求要改进网络层的功能,即改进网络层 "尽最大努力交付" 的服务,以保证着急的数据优先传输。

1.1.使因特网提供质量保证的服务

  • 服务质量 QoS 是服务性能的总效果,此效果决定了一个用户对服务的满意程度。因此在最简单的意义上,有服务质量的服务就是能够满足用户的应用需求的服务。
  • 服务质量可用若干基本的性能指标来描述,包括可用性、差错率、响应时间、吞吐量、分组丢失率、连接建立时间、故障检测和改正时间等。服务提供者可向其用户保证某一种等级的服务质量。

1.2.改善的方面

主机 H1 和 H2 分别向主机 H3 和 H4 发送数据可通过以下方式实现流量控制:

  • 为数据分组打上标记:

需要给不同性质的分组打上不同的标记。当 H1 和 H2 的分组进入 R1 时, R1 应能识别实时数据分组,并使这些分组以高优先级进入输出队列,先进行传输,而仅在队列有多余空间时才准许低优先级的 FTP 数据分组进入。

即1.5Mb/s带宽的链路优先使用1Mb/s带宽传输实时音频数据,满足它的传输需求,剩下的0.5Mb/s带宽再用来传输优先级低的FTP文件数据。这样FTP文件数据的传输带宽最多只能占到0.5Mb/s,以此优先保证实时音频数据的传输带宽需要。

  • 为路由器增加分类机制:

应当使路由器增加分类(classification)机制,即路由器根据某些准则对输入分组进行分类,然后对不同类别的通信量给予不同的优先级

例如,在路由器上设置只要遇到 源 / 目标 地址为某个地址的就优先传输。这样即使数据包没有设置优先级,路由器通过识别数据包的 源/目标 地址也能判断优先顺序。

  • 对数据流进行通信量的管制(policing):

路由器应能将对数据流进行通信量的管制(policing),使该数据流不影响其他正常数据流在网络中通过。例如,可将 H1 的数据率限定为 1 Mb/s。R1 不停地监视 H1 的数据率。只要其数据率超过规定的 1 Mb/s,R1 就将其中的某些分组丢弃。

比如:限定传输音频数据的带宽为1Mb/s,如果传输某一音频数据需要的带宽为1.2Mb/s那么路由器丢弃多于1Mb/s的0.2Mb/s带宽传输的数据包。

  • 在路由器中再增加调度机制:

应在路由器中再增加调度(scheduling)机制。利用调度功能给实时音频分配 1.0 Mb/s 的带宽,给传送FTP文件数据分配 0.5 Mb/s 的带宽(相当于在带宽为 1.5 Mb/s 的链路中划分出两个逻辑链路,彼此互不干扰),因而对这两种应用都有相应的服务质量保证。

  • 在路由器中再增加呼叫接纳机制:

总数据率已超过了 1.5 Mb/s 链路的带宽。比较合理的做法是让一个数据流通过 1.5 Mb/s 的链路,而阻止另一个数据流的通过。这就需要呼叫接纳(call admission)机制。数据流要预先声明所需的服务质量。

比如:带宽为1.5Mb/s的链路,先对带宽需求为1Mb/s的第一个数据进行传输。随后路由器收到带宽需求也为1Mb/s的第二个数据传输请求,路由器一看剩下的0.5Mb/s带宽不能满足第二个数据传输的需求,于是路由器拒绝传输第二个数据。

改进"尽最大努力交付"的服务的更多相关文章

  1. QNJR-GROUP/EasyTransaction: 依赖于Spring的一个柔性事务实现,包含 TCC事务,补偿事务,基于消息的最终一致性事务,基于消息的最大努力交付事务交付QNJR-GROUP/EasyTransaction: 依赖于Spring的一个柔性事务实现,包含 TCC事务,补偿事务,基于消息的最终一致性事务,基于消息的最大努力交付事务交付

    QNJR-GROUP/EasyTransaction: 依赖于Spring的一个柔性事务实现,包含 TCC事务,补偿事务,基于消息的最终一致性事务,基于消息的最大努力交付事务交付 大规模SOA系统的分 ...

  2. kubernetes实战-交付dubbo服务到k8s集群(四)使用blue ocean流水线构建dubbo-demo-service

    使用jenkins创建一个新的项目:dubbo-demo,选择流水线构建 勾选保存构建历史和指定项目为参数化构建项目: 添加构建参数:以下配置项,是王导根据多年生产经验总结出来的甩锅大法: 除了bas ...

  3. kubernetes实战-交付dubbo服务到k8s集群(一)准备工作

    本次交付的服务架构图:因为zookeeper属于有状态服务,不建议将有状态服务,交付到k8s,如mysql,zk等. 首先部署zk集群:zk是java服务,需要依赖jdk,jdk请自行下载: 集群分布 ...

  4. 改进基于Boost.Asio的聊天服务

    Boost.Asio是个非常易用的C++异步网络库,官方文档中一个示例是聊天服务,分为chat_message.chat_client.chat_server三个部分.chat_server的启动代码 ...

  5. kubernetes实战-交付dubbo服务到k8s集群(六)使用blue ocean流水线构建dubbo-consumer服务

    我们这里的dubbo-consumer是dubbo-demo-service的消费者: 我们之前已经在jenkins配置好了流水线,只需要填写参数就行了. 由于dubbo-consumer用的gite ...

  6. 实战交付一套dubbo微服务到k8s集群(7)之交付dubbo服务的消费者集群到K8S

    构建dubbo-demo-consumer,可以使用和dubbo-demo-service的流水线来构建 1.登录jenkins构建dubbo-demo-consumer 2.填写构建dubbo-de ...

  7. kubernetes实战-交付dubbo服务到k8s集群(五)交付dubbo-monitor监控服务到k8s

    首先下载 dubbo-monitor源码包7-200 dubbo-monitor是监控zookeeper状态的一个服务,另外还有dubbo-admin,效果一样,感兴趣的可以自己研究一下. # cd ...

  8. kubernetes实战-交付dubbo服务到k8s集群(三)安装配置maven和java运行时环境的底包镜像

    maven 官方地址: 官方地址 下载maven,shdd7-200 # cd /opt/src # wget https://archive.apache.org/dist/maven/maven- ...

  9. kubernetes实战-交付dubbo服务到k8s集群(二)交付jenkins到k8s集群

    首先下载jenkins镜像并上传到我们自己的私有仓库:7-200 # docker pull jenkins/jenkins:2.190.3 # docker tag 22b8b9a84dbe har ...

随机推荐

  1. Python数据分析与展示第2周学习笔记(北理工 嵩天)

    单元4:Matplotlib库入门 matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式 import matplotlib.pyplot as plt # -*- cod ...

  2. HDU-1828 Picture(扫描线 求矩形并的周长)

    http://acm.hdu.edu.cn/showproblem.php?pid=1828 Time Limit: 6000/2000 MS (Java/Others)    Memory Limi ...

  3. 三十二、http与www服务介绍

    一.用户访问百度(www.baidu.com) 用户访问在url中输入地址后,首先会访问本地的缓存和hosts文件,如果没有,会访问本地DNS,在就是根域和顶级域名等,在前面已经说过了,这里不再赘述. ...

  4. vue中v-on支持的事件总结

    资源事件 事件名称 何时触发 error 资源加载失败时. abort 正在加载资源已经被中止时. load 资源及其相关资源已完成加载. beforeunload window,document 及 ...

  5. EXAM-2018-8-3

    EXAM-2018-8-3 D H 喜闻乐见的水题 J lower_bound + upper_bound 一个可以查找第一个大于,另一个可查找第一个不小于. F 找规律+奇偶分析 偶数好找,就是奇数 ...

  6. 浏览器加载、渲染html的顺序和页面优化

    浏览器加载和渲染html的顺序 1. IE下载的顺序是从上到下,渲染(就是把请求的内容显示到浏览器屏幕上)的顺序也是从上到下,下载和渲染是同时进行的. 2. 在渲染到页面的某一部分时,其上面的所有部分 ...

  7. android适配全机型悬浮框、视频APP项目、手势操作、Kotlin妹子App、相机图片处理等源码

    Android精选源码 图片滤镜处理,相机滤镜实时处理,相机拍照录制 android仿爱壁纸App更换壁纸效果源码 基于Kotlin+MVP+Retrofit+RxJava+Glide 等架构实现短视 ...

  8. Introduction to Computer Science and Programming in Python--MIT

    学习总结--(Introduction to Computer Science and Programming in Python--MIT) 导论 主题 重新利用数据结构来表达知识 理解算法的复杂性 ...

  9. django框架进阶-ModelForm组件-长期维护

    ############################################################ """ 通常在Django项目中,我们编写的大部 ...

  10. Excel-DNA开发包:ExcelDna-0.34.6.zip下载

    Excel-DNA可以用VB.Net或C#开发Excel自定义函数.制作.xll格式的加载宏. 点此下载 ExcelDna-0.34.6.zip