原贴地址:https://blog.csdn.net/djl806943371/article/details/89400112

多终端对多终端传输过程中,将来自多个发送者的数据包发送到不同接收者的过程是如何实现的呢?这就是本节主要内容。目前主要有三种实现方式:

  • Output queueing:如下图,缓存区在output一侧。这样有一个缺点,就是当所有input的包都要转发到同一个output链路时,这一个output queue的内存处理速率需要达到(假设n个输入,输入速率均为R)(n+1)R。对内存运行速度提出很高的要求。

  • Input queueing:如下图,缓冲区设置在input一侧,向output中某个目的地发送数据包时是一个一个进行的,多的数据包暂存在input中的缓冲区中。优点就是将缓冲区处理速率降低到了2R。

但是单纯的input queueing存在一个问题,就是head of line blocking,如下图。当input各个入口来的数据包中最前面一个都是通向同一个目的地时,即使其他目的地是空闲的,后面的数据包也无法发送,要分别等各自前面的红色数据包发送完毕才能发送。这样output中各个出口的效率没有充分利用,延迟也变大。

  • Virtual output queueing:如下图,每个入口缓冲区按照出口分别缓冲,避免head of line blocking的影响。

最后再看一下各种方式的延迟负载关系图。蓝色曲线为output queueing,红色为input queueing,由于 head of line blocking的影响,渐近线出现在负载为58%,延迟急速上升。而将input queueing与virtual output queueing结合使用则可以将渐近线提高到100%,而对内存的处理速度要求相比output queueing降低到了最小。

Introduction to Computer Networking学习笔记(十八):Switching 交换工作实现相关推荐

  1. Introduction to Computer Networking学习笔记(十五):Queue Model 包交换中的缓冲模型

    本章知识点比较零散,因此一篇文章进行总结,并且不具有连贯性,仅记录自己认为有价值的内容. 将较大的包拆分为小包进行传输,可以减小端对端延迟,原因如下图: 数据传输时,突发大量的数据包会增加延迟,简单周 ...

  2. python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置...

    python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置 Download JetBrains Python IDE :: PyCharm http://ww ...

  3. windows内核开发学习笔记十八:IRP 处理的标准模式

    windows内核开发学习笔记十八:IRP 处理的标准模式 在 Windows 内核中的请求基本上是通过 I/O Request Packet 完成的. I/O manager ---> Dis ...

  4. Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件

    Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件 插件是由PolyWorks加载的动态链接库(DLL文件),然后查询Polyworks模块,以确定它们具有哪些功能,提供给 ...

  5. 学习笔记(十八):MoRe-Fi用深度学习网络从非线性信号中恢复呼吸波形

    <MoRe-Fi: Motion-robust and Fine-grained Respiration Monitoring via Deep-Learning UWB Radar>学习 ...

  6. 【D3D11游戏编程】学习笔记十八:模板缓冲区的使用、镜子的实现

    (注:[D3D11游戏编程]学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 模板缓冲区(Stencil Buffe ...

  7. three.js学习笔记(十八)——调整材质

    介绍 到现在为止,我们都在创建新的着色器材质,但是如果我们想要修改一个Three.js内置的材质呢?或许我们对MeshStandardMaterial的处理结果感到满意,但是希望往里边添加顶点动画. ...

  8. 【theano-windows】学习笔记十八——混合蒙特卡洛采样

    #前言 继续之前的Theano学习,本次主要学习混合蒙特卡洛(Hybrid Monte-Carlo Sampling)采样算法. 国际惯例,参考网址 Hybrid Monte-Carlo Sampli ...

  9. JavaScript权威设计--事件冒泡,捕获,事件句柄,事件源,事件对象(简要学习笔记十八)...

    1.事件冒泡与事件捕获 2.事件与事件句柄   3.事件委托:利用事件的冒泡技术.子元素的事件最终会冒泡到父元素直到跟节点.事件监听会分析从子元素冒泡上来的事件. 事件委托的好处:     1.每个函 ...

  10. JSTL标签引入(web基础学习笔记十八)

    一.JSTL包下载和引入 1.0.简介 JSTL全名为JavaServer Pages Standard Tag Library 1.1.下载包 下载地址:http://archive.apache. ...

最新文章

  1. 你不应该关注区块链的“杀手级应用”
  2. 《深入理解计算机系统》第七章读书笔记
  3. shell之$@和$*的区别
  4. 自定义弹框(手机端),定时消失
  5. (一) shario教程资料
  6. Object Detection API 相关
  7. SPH(光滑粒子流体动力学)流体模拟实现:算法总览
  8. 学习笔记之rpm程序包管理功能解析
  9. 二十、Oracle学习笔记:编写存储过程
  10. nginx 与fastcgi通信方式
  11. Optional容器类
  12. MOOC 数据结构 第九周 树与二叉树(下)
  13. 批处理bat中@echo on/off是什么意思?
  14. Python—WebSocket爬虫实战
  15. 小米6刷peixl安卓8详细教程
  16. uniapp 引入第三方包发起网络数据请求
  17. long类型保留两位小数_Java保留两位小数的几种写法总结
  18. SSL_2278 Oliver的救援
  19. Python基础:第25课——使用类和实例
  20. 深度学习平台——Paddle核心框架介绍

热门文章

  1. 最雷视频集合贴:优酷啊优酷啊
  2. Java集合Collection之实现原理解读(LinkedList)
  3. Web开发之Session
  4. YII2中behavior行为的理解与使用
  5. 31个实用find命令的案例
  6. 颠覆传统网络管理 Aruba新一代网络解决方案重磅呈现
  7. 【AtCoder010】A - Addition(奇偶)
  8. 用.htaccess禁止某IP访问
  9. fooking文档(不定期更新)
  10. SSH集成项目,使用注解方式,竟然还有这样的问题!!