精华内容
下载资源
问答
  • 多路复用技术

    2021-11-04 17:23:00
    1.频分多路复用 频分多路复用(FDM)是在一条传输介质上使用多个频率不同的模拟载波信号进行多路传输。该技术对整个物理信道的可用带宽进行分割,利用载波调制技术实现原始信号的频谱迁移,使得多路信号在整个物理...

    1.频分多路复用

    频分多路复用(FDM)是在一条传输介质上使用多个频率不同的模拟载波信号进行多路传输。该技术对整个物理信道的可用带宽进行分割,利用载波调制技术实现原始信号的频谱迁移,使得多路信号在整个物理信道带宽允许的范围内,实现频谱上的不重叠,从而共用一个信道。为了防止相互干扰,子信道间留有一定宽度的隔离频带。

    2.时分多路复用

    时分多路复用(TDM)用于数字信道的复用。当物理信道可支持的位传输速率超过单个原始信号要求的数据传输速率时,可以将该物理信道划分成若干个时间片,并将各个时间片轮流地分配给多路信号,使得他们在时间上不重叠。时间片的宽度可以容纳一位、一字节或一个固定大小的数据块。

    3.波分复用

    波分复用(WDM)用于光纤通信中,不同的子信道用不同波长的光波承载,多路复用信道同时传送所有子信道的波长。因此要使用能够对光波进行分解和合成的多路器。

    4.码分多路复用

    码分多路复用(CDMA)也叫码分多址,是一种扩频多址的数字通信技术。在CDMA系统中,每个移动站都有相互正交的一个码片(Chip),当发送码片序列时表示1,当发送码序的反码时表示0。典型的应用是目前流行的3G技术。

    展开全文
  • 1.多路复用介绍多路复用即一个信道传输多路信号典型的多路复用方法:a.频分多路复用(Frequency division multiplexing——FDM)b.时分多路复用(Time division multiplexing——TDM)c.波分多路复用(Wavelength ...

    1.多路复用介绍

    85f08f9c12e6ee142cc2fb55eba47921.png

    多路复用即一个信道传输多路信号

    典型的多路复用方法:

    a.频分多路复用(Frequency division multiplexing——FDM)

    b.时分多路复用(Time division multiplexing——TDM)

    c.波分多路复用(Wavelength division multiplexing——WDM)

    d.码分多路复用(Code division multiplexing——CDM)

    2.频分多路复用

    b5a6d74dfea4c0a0a8f35edc9e734d5e.png

    3.时分多路复用

    原理:时分复用是将时间划分为一段等长的时分复用帧(TDM帧),每个用户在每个TMD帧中占用固定序号的时隙。

    特点:每用户所占用的时隙是周期性出现的(周期为TMD帧长度)。

    9b662285c3d06ea3964acd204178df84.png

    实质:时分复用的所有用户是在不同的时间占用相同的频带宽度。

    7a38c5e6cc5f78bd513ebfa5d3105a87.png

    4.波分多路复用

    波分复用就是光的频分复用

    00e2cad8b6910a26c44da0abbdaad1f7.png

    波分复用模型:

    cc4bfb3cb968a1be7a1930547e7a8417.png

    5.码分多路复用

    原理:为每个用户分配一个唯一的码片序列(chipping sequence),其中“0”用“-1”表示、“1”用“+1”表示。各用户使用相同频率载波,利用各自码片序列编码数据。

    3040a2676d7588ca305797add7d601d0.png

    5c5be1512b475fafab151c2be0386e93.png

    码分复用模型:

    9a0e645d2bab25a1e2745c8b6a8631ba.png

    (码分复用广泛应用于无线链路共享)

    展开全文
  • 计算机网络的 『多路复用技术

    千次阅读 2020-12-31 19:09:24
    多路复用(DG9453EN-T1-E4)技术分为以下四种: 频分多路复用 特点是:把电路或空间的频带资源分为多个频段,并将其分配给多个用户,每个用户终端的数据通过分配给它的子通路传输。 主要用于电话和电缆电视系统。 ...

    多路复用(DG9453EN-T1-E4)技术分为以下四种:

    频分多路复用
    • 特点是:把电路或空间的频带资源分为多个频段,并将其分配给多个用户,每个用户终端的数据通过分配给它的子通路传输。
    • 主要用于电话和电缆电视系统。
    时分多路复用

    在这里插入图片描述

    • 特点是按传输的时间进行分割,将不同信号在不同时间内传送。
    • 包含两种方式:同步时分复用和异步时分复用。

    同步时分复用(ATDM):

    • 时隙预先分配且固定不变,每一路信号具有相同大小的时间片。时间片轮流分配给每路信号,该路信号在时间片使用完毕以后要停止通信,并把物理信道让给下一路信号使用。当其他各路信号把分配到的时间片都使用完以后,该路信号再次取得时间片进行数据传输。

    异步时分复用(STDM):

    • 即将所要传输的信息分成小块,并附加标记。同一路信号可以占用同一帧中的不同时隙,不同路的信号根据标记加以区分。将用户的数据划分为一个个数据单元,不同用户的数据单元仍按照时分的方式来共享信道,但是不再使用物理特性来标识不同用户,而是使用数据单元中的若干比特,也就是使用逻辑的方式来标识用户。
    波分多路复用
    • 特点是对于光的频分复用
    • 做到用一根光纤来同时传输与多个频率很接近的光波信号。
    码分多路复用
    • 特点是每个用户可在同一时间使用同样的频带进行通信,是一种共享信道的方法。
    • 通信各方面之间不会相互干扰,且抗干扰能力强。
    展开全文
  • 针对这种困境的一个解决办法就是I/O多路复用技术。基本思路就是使用select函数,要求内核挂起进程,只有在一个或多个I/O事件发生后,才将控制返回给应用程序。--《UNIX网络编程》 我们以书中的这段描述来引出我们要...

    前言

    当我们要编写一个echo服务器程序的时候,需要对用户从标准输入键入的交互命令做出响应。在这种情况下,服务器必须响应两个相互独立的I/O事件:1)网络客户端发起网络连接请求,2)用户在键盘上键入命令行。

    我们先等待哪个事件呢?没有哪个选择是理想的。如果在acceptor中等待一个连接请求,我们就不能响应输入的命令。类似地,如果在read中等待一个输入命令,我们就不能响应任何连接请求。针对这种困境的一个解决办法就是I/O多路复用技术。基本思路就是使用select函数,要求内核挂起进程,只有在一个或多个I/O事件发生后,才将控制返回给应用程序。--《UNIX网络编程》

    我们以书中的这段描述来引出我们要讲述的I/O多路复用技术。

    I/O多路复用概述图1

    I/O多路复用,I/O就是指的我们网络I/O,多路指多个TCP连接(或多个Channel),复用指复用一个或少量线程。串起来理解就是很多个网络I/O复用一个或少量的线程来处理这些连接。现在大部分讲述I/O多路复用的文章用到的上面这张图是《UNIX网络编程》一书的。那么这也是当前我们理解I/O多路复用技术的基础知识。从这张图里面我们GET到哪些点呢?

    个人理解有:

    1、怎么区分的应用进程与内核

    2、有两次系统调用分别是select和recvfrom

    3、两次系统调用进程都阻塞

    4、等待哪些数据准备好

    下面我们逐一阐述。

    二、用户进程和内核

    图2

    根据网络OSI七层模型和网际网协议族的同比,我们可以知道这里说的用户进程和内核是以传输层为分割线,传输层以上(不包括)是指用户进程,传输层以下(包括)是指内核。上三层,web客户端比如浏览器、web服务器这些都属于应用层,里面跑的程序则是应用进程。下四层处理所有的通信细节,发送数据,等待确认,给无序到达的数据排序等等。这四层也是通常作为操作系统内核的一部分提供。由此可见图1中说的系统调用的地方正是第四层和第五层之间的位置。

    为了理解用户进程和内核,再来看一张图,网络数据流向图。也清晰的标明了用户进程和内核的位置。值得注意的一点是客户与服务器之间的信息流在其中一端是向下通过协议栈的,跨越网络后,在另一端是向上通过协议栈的。这张图描述的是局域网内,如果是在广域网那么就是通过很多个路由器承载实际数据流。

    图3

    三、select和recvfrom

    3.1、select

    理解了select就抓住了I/O多路复用的精髓,对应的操作系统中调用的则是系统的select函数,该函数会等待多个I/O事件(比如读就绪,写)的任何一个发生,并且只要有一个网络事件发生,select线程就会执行。如果没有任何一个事件发生则阻塞。我们在下面小节中会重点讲述。函数如下:

    #include

    #include

    int select(int maxfdpl,fd_set *readset,fd_set *writeset,fd_set *exceptset,const struct timeval *timeout);

    从这个函数的定义中的参数,我们能够看出它描述的是,当调用select的时候告知内核对那些事件(读就绪,写)感兴趣以及等待多长时间。

    为了方便我们理解select调用,可以参照下面这张图,是jdk的基于I/O多路复用技术的NIO实现。重点在于理解Selector复用器。

    图4

    大致代码如下:

    ServerSocketChannel serverChannel = ServerSocketChannel.open();// 打开一个未绑定的serversocketchannel

    Selector selector = Selector.open();// 创建一个Selector

    serverChannel .configureBlocking(false);//设置非阻塞模式

    serverChannel .register(selector, SelectionKey.OP_READ);//将ServerSocketChannel注册到Selector

    while(true) {

    int readyChannels = selector.select();

    if(readyChannels == 0) continue;

    Set selectedKeys = selector.selectedKeys();

    Iterator keyIterator = selectedKeys.iterator();

    while(keyIterator.hasNext()) {

    SelectionKey key = keyIterator.next();

    if(key.isAcceptable()) {

    // a connection was accepted by a ServerSocketChannel.

    } else if (key.isConnectable()) {//连接就绪

    // a connection was established with a remote server.

    } else if (key.isReadable()) {//读就绪

    // a channel is ready for reading

    } else if (key.isWritable()) {//写就绪

    // a channel is ready for writing

    }

    keyIterator.remove();

    }

    }

    3.2、recvfrom

    recvfrom一般用于UDP协议中,但是如果在TCP中connect函数调用后也可以用。用于从(已连接)套接口上接收数据,并捕获数据发送源的地址。也就是我们本文中以及书中说的真正的I/O操作。

    四、阻塞、非阻塞

    图5

    这张图可以看出阻塞式I/O、非阻塞式I/O、I/O复用、信号驱动式I/O他们的第二阶段都相同,也就是都会阻塞到recvfrom调用上面就是图中“发起”的动作。异步式I/O两个阶段都要处理。这里我们重点对比阻塞式I/O(也就是我们常说的传统的BIO)和I/O复用之间的区别。

    阻塞式I/O和I/O复用,两个阶段都阻塞,那区别在哪里呢?就在于第三节讲述的Selector,虽然第一阶段都是阻塞,但是阻塞式I/O如果要接收更多的连接,就必须创建更多的线程。I/O复用模式下在第一个阶段大量的连接统统都可以过来直接注册到Selector复用器上面,同时只要单个或者少量的线程来循环处理这些连接事件就可以了,一旦达到“就绪”的条件,就可以立即执行真正的I/O操作。这就是I/O复用与传统的阻塞式I/O最大的不同。也正是I/O复用的精髓所在。

    从应用进程的角度去理解始终是阻塞的,等待数据和将数据复制到用户进程这两个阶段都是阻塞的。这一点我们从应用程序是可以清楚的得知,比如我们调用一个以I/O复用为基础的NIO应用服务。调用端是一直阻塞等待返回结果的。

    从内核的角度等待Selector上面的网络事件就绪,是阻塞的,如果没有任何一个网络事件就绪则一直等待直到有一个或者多个网络事件就绪。但是从内核的角度考虑,有一点是不阻塞的,就是复制数据,因为内核不用等待,当有就绪条件满足的时候,它直接复制,其余时间在处理别的就绪的条件。这也是大家一直说的非阻塞I/O。实际上是就是指的这个地方的非阻塞。

    当我们阅读《UNIX网络编程》(第三版)一书的时候。P124,6.2.3小节中“而不是阻塞在真正的I/O系统调用上”这里的阻塞是相对内核来说的。P127,6.2.7小节“因为其中真正的I/O操作(recvfrom)将阻塞进程”这里的阻塞是相对用户进程来说的。明白了这两点,理解起来就不矛盾了,而且一通到底!

    五、适用场景

    当服务程序需要承载大量TCP链接的时候,比如我们的消息推送系统,IM通讯,web聊天等等,在我们已经理解Selector原理的情况下,知道使用I/O复用可以用少量的线程处理大量的链接。I/O多路复用技术以事件驱动编程为基础。它运行在单一进程上下文中,因此每个逻辑流都能访问该进程的全部地址空间,这样在流之间共享数据变得很容易。

    六、总结

    我们通常说的NIO大多数场景下都是基于I/O复用技术的NIO,比如jdk中的NIO,当然Tomcat8以后的NIO也是指的基于I/O复用的NIO。注意,使用NIO != 高性能,当连接数<1000,并发程度不高或者局域网环境下NIO并没有显著的性能优势。如果放到线上环境,网络情况在有时候并不稳定的情况下,这种基于I/O复用技术的NIO的优势就是传统BIO不可同比的了。那么使用select的优势在于我们可以等到网络事件就绪,那么用少量的线程去轮询Selector上面注册的事件,不就绪的不处理,就绪的拿出来立即执行真正的I/O操作。这个使得我们就可以用极少量的线程去HOLD住大量的连接。https://www.jianshu.com/p/db5da880154a

    來源:简书

    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    觉得有用的话就点个赞吧,让更多人看到!

    展开全文
  • $2.2.4 多路复用技术在数据通信系统或计算机网络系统中,传输媒体的带宽或容量往往超过传输单一信号的需求,为了有效地利用通信线路,希望一个信道同时传输多路信号,这就是所谓的多路复用技术(MultiplexiI1g)。采用多路...
  • Java IO多路复用技术简介/*** @author qifuguang* @date 15-2-4 下午2:07*/public class TimeServerMain {public static void main(String[] args) throws Exception {// 启动时间服务器new Thread(new ...
  • 8、多路复用技术

    2021-06-24 15:11:01
    多路复用技术 先从字面上来理解,多路复用,大概的意思就是,把多路来源的信号通过一定的技术处理,让它们在同一条信道上传输而不产生相互的干扰。 我们想象这样一种情况,有6个用户,用户1、用户2、用户3,分别要...
  • Gir章节或项目名称多路复用技术/宽带接入技术本次授课类型理论□实验□理实一体□实训□实习班级地点周次星期节次授课进度符合□超前□滞后□符合□超前□滞后□符合□超前□滞后□符合□超前□滞后教学目标1、了解...
  • redis的io多路复用技术

    2021-03-21 21:02:40
    2.io多路复用技术 什么是io多路复用? 一、简单理解就是:一个服务端进程可以同时处理多个套接字描述符。 多路:多个客户端连接(连接就是套接字描述符) 复用:使用单进程就能够实现同时处理多个客户端的连接 以上...
  • 3.IO多路复用技术4.Redis线程模型4.1 I/O多路复用程序、文件事件分派器 前言 redis 是一个单线程却性能非常好的内存数据库, 主要用来作为缓存系统。 redis 采用网络IO多路复用技术来保证在多连接的时候, 系统的高...
  • I/O多路复用技术 在I/O编程中,当需要同时处理多个客户端接入请求时,可以利用多线程或者I/O多路复用技术进行处理。I/O多路复用技术通过把多个I/O阻塞复用到同一个select阻塞上,从而实现系统在单线程的情况下可以...
  • 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: ...(3)IO多路复用(IOMultiplexing):即经典的Reactor设计模式,有时也称为异步阻塞IO,Java中的Selector和Linux中的epoll都是这...
  • 展开全部多路复用技术分为62616964757a686964616fe59b9ee7ad9431333365663538以下四种:1、频分多路复用,特点是把电路或空间的频带资源分为多个频段,并将其分配给多个用户,每个用户终端的数据通过分配给它的子...
  • 多路复用中,用户上固定接入的,或是半固定接入的,而多址接入时网络资源是动态分配的。 频分复用FDM: 一般采用单边带调制技术。——数字和模拟通信均可使用。 12路频分复用电话系统称为一个基群,5个基群组成一个...
  • 典型应用于以下场合1....一个服务器要处理多个服务和协议I/O多路复用不局限于网络编程,也可以用于其他程序。UNIX中五种I/O模型1.阻塞I/O2.非阻塞I/O3.I/O多路复用4.异步I/O5.信号驱动I/O信号驱动模型5种I...
  • IO多路复用技术详解

    2021-03-01 17:24:42
    IO多路复用:I/O是指网络I/O,多路指多个TCP连接(即socket或者channel),复用指复用一个或几个线程。意思说一个或一组线程处理多个TCP连接。最大优势是减少系统开销小,不必创建过多的进程/线程,也不必维护这些进程/...
  • 多路复用

    2021-12-03 22:26:56
    这就是IO多路复用技术。用一句话总结就是,一个客户端建立好连接后,就可以立刻等待新的客户端连接,而不用阻塞在原客户端的 read 请求上。 多路复用的实现 select, poll, epoll 都是I/O多路复用的具体的实现。epoll...
  • 解读I/O多路复用技术

    2021-01-04 22:51:02
    前言 当我们要编写一个echo服务器程序的时候,需要对用户从标准输入键入的交互命令做出响应。...针对这种困境的一个解决办法就是I/O多路复用技术。基本思路就是使用select函数,要求内核挂起进程,只有在一个或多个I/
  • 首先,多路复用(multiplexing) 是计算机里面很常见的一个概念,我觉得他的核心思想就是利用一组资源做很多件事。 常见的多路复用(multiplexing)除了网络编程里面的IO多路复用;还有计算机网络的时分多路复用,频分...
  • TCP/IP多路复用

    千次阅读 2021-02-28 17:08:43
    所有网络通信的本质目标就是...因此这里需要用到一个叫作多路复用(Multiplex)的技术多路复用,就是多个信号,复用一个信道。 传输层多路复用 多个请求复用一个 TCP 连接。 多个请求相当于并行的发送请求。即使其
  • I/O 多路复用技术概述

    2021-08-18 11:26:59
    -1,其中也涉及到系统调用,存在上下文切换,效率不高 总的来说,从应用程序角度是没法实现真正的多路复用技术的,因为无论你怎么处理,涉及到系统调用、阻塞这种操作系统内核维护的问题无法解决 到这里,第一代操作...
  • 多路复用:使用一个线程来检查多个文件描述符的就绪状态 如果有一个文件描述符就绪,则返回 否则阻塞直到超时 得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(线程池) 本质上是没有阻塞...
  • 假如你想了解IO多路复用,那本文或许可以帮助你 本文的最大目的就是想要把select、epoll在执行过程中干了什么叙述出来,所以具体的代码不会涉及,毕竟不同语言的接口有所区别。 基础知识 IO多路复用涉及硬件、...
  • IO多路复用技术

    2021-03-04 15:42:39
    首先说一下,什么是IO多路复用技术。 比如,现在我们模拟一个tcp服务器处理30个客户的socket,如何快速的处理掉这30个请求呢? 在不了解原理的情况下,我们类比一个实例:在课堂上让全班30个人同时做作业,做完后...
  • Linux中IO多路复用机制

    2021-05-17 10:32:49
    弹性云服务器 ECS弹性云服务器(Elastic Cloud Server)是一种可随时自助获取、可弹性伸缩的云服务器,帮助用户打造可靠、安全、灵活、高效的应用环境,确保服务持久稳定运行,提升运维效率三年低至5折,多种配置可选...
  • I/O多路复用技术详解

    2021-03-09 12:13:43
    一、为什么要用多路复用技术 比如一个问题: 如果我们先前创建的几个进程承载不了目前快速发展的业务的话,是不是还得增加进程数?我们都知道系统创建进程是需要消耗大量资源的,所以这样就会导致系统资源不足的情况...
  • IO多路复用被视为是非常好的性能助力器。但是一般我们在使用DB时,还是经常性采用c3p0,tomcat connection pool等技术来与DB连接,哪怕整个程序已经变成以Netty为核心。这到底是为什么?首先纠正一个常见的误解。IO...
  • IO多路复用技术是操作系统级的技术,也就是我们常说的底层原理。好多框架,中间件都是使用了IO多路复用技术,才使其具备更高的性能,比如我们经常使用的Redis、Nginx和我们耳熟能详的高性能通信框架Netty。本篇文章...
  • IO多路复用详解

    2021-07-11 23:34:27
    文章目录IO多路复用详解IO多路复用的实现方式Socket通信的流程普通的Socket管理Select的实现Epoll的实现 IO多路复用详解 IO多路复用的实现方式 我们这里只讨论linux两个典型的实现,select和epoll select 方式,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 79,291
精华内容 31,716
关键字:

多路复用技术作用