精华内容
下载资源
问答
  • 2015-04-28 14:55:16
    linux进程间通信的几种机制的比较及适用场合 
    
    1.# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
    
    # 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
    
    # 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
    
    # 消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
    
    # 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
    
    #共享内存( shared memory):共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由
    一个进程创建,但多个进程都可以访问。共享内存是最快的IPC方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。
    
    # 套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。
    
    管道的主要局限性正体现在它的特点上:
    只支持单向数据流;
    只能用于具有亲缘关系的进程之间;
    没有名字;
    管道的缓冲区是有限的(管道制存在于内存中,在管道创建时,为缓冲区分配一个页面大小);
    管道所传送的是无格式字节流,这就要求管道的读出方和写入方必须事先约定好数据的格式,比如多少字节算作一个消息(或命令、或记录)等等;
    
    
    2.
    用于进程间通讯(IPC)的四种不同技术: 
    1. 消息传递(管道,FIFO,posix和system v消息队列) 
    2. 同步(互斥锁,条件变量,读写锁,文件和记录锁,Posix和System V信号灯) 
    3. 共享内存区(匿名共享内存区,有名Posix共享内存区,有名System V共享内存区) 
    4. 过程调用(Solaris门,Sun RPC) 
    消息队列和过程调用往往单独使用,也就是说它们通常提供了自己的同步机制.相反,共享内存区通常需要由应用程序提供的某种同步形式才能正常工作.解决某个特定问题应使用哪种IPC不存在简单的判定,应该逐渐熟悉各种IPC形式提供的机制,然后根据特定应用的要求比较它们的特性. 
    
    必须考虑的四个前提: 
    1. 联网的还是非联网的.IPC适用于单台主机上的进程或线程间的.如果应用程序有可能分布到多台主机上,那就要考虑使用套接字代替IPC,从而简化以后向联网的应用程序转移的工作. 
    2. 可移植性. 
    3. 性能,在具体的开发环境下运行测试程序,比较几种IPC的性能差异. 
    4. 实时调度.如果需要这一特性,而且所用的系统也支持posix实时调度选项,那就考虑使用Posix的消息传递和同步函数. 
    
    各种IPC之间的一些主要差异: 
    1. 管道和FIFO是字节流,没有消息边界.Posix消息和System V消息则有从发送者向接受者维护的记录边界(eg:TCP是没有记录边界的字节流,UDP则提供具有记录边界的消息). 
    2. 当有一个消息放置到一个空队列中时,Posix消息队列可向一个进程发送一个信号,或者启动一个新的线程.System V则不提供类似的通知形式. 
    3. 管道和FIFO的数据字节是先进先出的.Posix消息和System V消息具有由发送者赋予的优先级.从一个Posix消息队列读出时,首先返回的总是优先级最高的消息.从一个System V消息队列读出时,读出者可以要求想要的任意优先级的消息. 
    4. 在众多的消息传递技术—管道,FIFO,Posix消息队列和System V消息队列—中,可从一个信号处理程序中调用的函数只有read和write(适用于管道和FIFO). 
    
    比较不同形式的消息传递时,我们感兴趣的有两种测量尺度: 
    1.带宽(bandwidth):数据通过IPC通道转移的速度.为测量该值,我们从一个进程向另一个进程发送大量数据(几百万字节).我们还给不同大小的I/O操作(例如管道和FIFO的write和read操作)测量该值,期待发现带宽随每个I/O操作的数据量的增长而增长的规律. 
    2. 延迟(latency):一个小的IPC消息从一个进程到令一个进程再返回来所花的时间.我们测量的是只有一个1个字节的消息从一个进程到令一个进程再回来的时间(往返时间) 
    
    在现实世界中,带宽告诉我们大块数据通过一个IPC通道发送出去需花多长时间,然而IPC也用于传递小的控制信息,系统处理这些小消息所需的时间就由延迟提供.这两个数都很重要.
    3.
    进程间数据通信方式和特点(转)
    2010-09-03 18:29
    由于不同的进程运行在各自不同的内存空间中.一方对于变量的修改另一方是无法感知的.因此.进程之间的信息传递不可能通过变量或其它数据结构直接进行,只能通过进程间通信来完成。
    根据进程通信时信息量大小的不同,可以将进程通信划分为两大类型:控制信息的通信和大批数据信息的通信.前者称为低级通信,后者称为高级通信。
    低级通信主要用于进程之间的同步、互斥、终止、挂起等等控制信息的传递。
    高级通信主要用于进程间数据块的交换和共享 常见的高级通信有管道(PIPE)、消息队列(MESSAGE)、共享内存(SHARED MEM0RY)等。
    
    这里主要比较一下高级通信的这三种方式的特点。
    
    管道通信(PIPE)
          两个进程利用管道进行通信时.发送信息的进程称为写进程.接收信息的进程称为读进程。管道通信方式的中间介质就是文件.通常称这种文件为管道文件.它就像管道一样将一个写进程和一个读进程连接在一起,实现两个进程之间的通信。写进程通过写入端(发送端)往管道文件中写入信息;读进程通过读出端(接收端)从管道文件中读取信息。两个进程协调不断地进行写和读,便会构成双方通过管道传递信息的流水线。
    
          利用系统调用PIPE()可以创建一个无名管道文件,通常称为无名管道或PIPE;利用系统调用MKNOD()可以创建一个有名管道文件.通常称为有名管道或FIFO。无名管道是一种非永
    久性的管道通信机构.当它访问的进程全部终止时,它也将随之被撤消。无名管道只能用在具有家族联系的进程之间。有名管道可以长期存在于系统之中.而且提供给任意关系的进程使用,但是使用不当容易导致出错.所以操作系统将命名管道的管理权交由系统来加以控制管道文件被创建后,可以通过系统调用WRITE()和READ()来实现对管道的读写操作;通信完后,可用CLOSE()将管道文件关闭。
    
          多个独立的进程之间可以通过消息缓冲机制来相互通信.这种通信的实现是以消息缓冲区为中间介质.通信双方的发送和接收操作均以消息为单位。在存储器中,消息缓冲区被组织成队列,通常称之为消息队列。消息队列一旦创建后即可由多进程共享.发送消息的进程可以在任意时刻发送任意个消息到指定的消息队列上,并检查是否有接收进程在等待它所发送的消息。若有则唤醒它:而接收消息的进程可以在需要消息的时候到指定的消息队列上获取消息.如果消息还没有到来.则转入睡眠状态等待。
    共享内存通信(SHARED MEMORY)
    
          针对消息缓冲需要占用CPU进行消息复制的缺点.OS提供了一种进程间直接进行数据交换的通信方式一共享内存 顾名思义.这种通信方式允许多个进程在外部通信协议或同步,互斥机制的支持下使用同一个内存段(作为中间介质)进行通信.它是一种最有效的数据通信方式,其特点是没有中间环节.直接将共享的内存页面通过附接.映射到相互通信的进程各自的虚拟地址空间中.从而使多个进程可以直接访问同一个物理内存页面.如同访问自己的私有空间一样(但实质上不是私有的而是共享的)。因此这种进程间通信方式是在同一个计算机系统中的诸进程间实现通信的最快捷的方法.而它的局限性也在于此.即共享内存的诸进程必须共处同一个计算机系统.有物理内存可以共享才行。
    
    三种方式的特点(优缺点):
    
    1.无名管道简单方便.但局限于单向通信的工作方式.并且只能在创建它的进程及其子孙进程之间实现管道的共享:有名管道虽然可以提供给任意关系的进程使用.但是由于其长期存在于系统之中,使用不当容易出错。
    2.消息缓冲可以不再局限于父子进程.而允许任意进程通过共享消息队列来实现进程间通信.并由系统调用函数来实现消息发送和接收之间的同步.从而使得用户在使用消息缓冲进行通信时不再需要考虑同步问题.使用方便,但是信息的复制需要额外消耗CPU的时间.不适宜于信息量大或操作频繁的场合。
    3.共享内存针对消息缓冲的缺点改而利用内存缓冲区直接交换信息,无须复制,快捷、信息量大是其优点。但是共享内存的通信方式是通过将共享的内存缓冲区直接附加到进程的虚拟地址空间中来实现的.因此,这些进程之间的读写操作的同步问题操作系统无法实现。必须由各进程利用其他同步工具解决。另外,由于内存实体存在于计算机系统中.所以只能由处于同一个计算机系统中的诸进程共享。不方便网络通信。
    
    
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jeffcjl/archive/2010/04/24/5523569.aspx
    更多相关内容
  • 使用 动态分配 IP 地址:就是当设备联网的使用分配一个 IP 地址给当前设备,如果当前设备不联网了,那么就不分配。但是这种方案是治标不治本的; NAT机制 使用 NAT 机制:把 IP 分为 外网 IP 和 内网 IP,用一...

    IPv4 不够使用的原因

    IPv4 能够表示的 IP 地址数量: 256 * 256 * 256 * 256 = 4,228,250,625。(42 亿多个 IP地址)
    但是随着网络的发展,通信设备的增加,IP 地址现在是完全不够用的

    动态分配

    • 使用 动态分配 IP 地址:就是当有设备联网的使用分配一个 IP 地址给当前设备,如果当前设备不联网了,那么就不分配。但是这种方案是治标不治本的;

    NAT机制

    • 使用 NAT 机制:把 IP 分为 外网 IP内网 IP,用一个 外网 IP 代替 N 个内网 IP。就好比网上购物,收货地址填写学校,而学校里有很多人,每个人用姓名和手机号区分。
      而进入 内网 IP 后则是使用 端口号 区分。

    示例

    背景:主机 A 于主机 B 都访问服务器的 8080 端口

    • 场景演示:
      在这里插入图片描述

    注意观察主机的源 IP 变化:在发送给路由器之前,主机 A 和 B 的源 IP 都是路由器的内网 IP,经过路由器的转发,变成了外网 IP,而源端口号相同的情况下,路由器也是对其进行了修改。
    服务器收到请求后,会根据相对的 源端口号 进行不同的 响应

    IP 地址专门划分出一部分表来 局域网

    • 10.*
    • 172.16.* —— 172.31.*
    • 192.168.*

    除此之外,剩下的 IP 就都是外网 IP

    NAT 机制与代理服务器的区别

    • 从应用上讲, NAT设备是网络基础设备之一, 解决的是IP不足的问题. 代理服务器则是更贴近具体应用, 比如通过代理服务器进行翻墙, 另外像迅游这样的加速器, 也是使用代理服务器.
    • 从底层实现上讲, NAT是工作在网络层, 直接对IP地址进行替换. 代理服务器往往工作在应用层.
    • 从使用范围上讲, NAT一般在局域网的出口部署, 代理服务器可以在局域网做, 也可以在广域网做, 也可以跨网.
    • 从部署位置上看, NAT一般集成在防火墙, 路由器等硬件设备上, 代理服务器则是一个软件程
      序, 需要部署在服务器上.

    为什么部署项目要在外网 IP 上。

    • 场景演示

    我将我的项目通过 Tomcat 部署在本地在这里插入图片描述
    内网 IP 是 192.168.0.108,而每个局域网都可能存在 192.168.0.108,因此全世界有很多个 192.168.0.108,所以当其他电脑访问 192.168.0.108 时,系统也不知道访问的是哪个局域网的 192.168.0.108。因此部署项目需要一个 外网 IP,外网 IP 是唯一的。可以通过外网 IP 来确认唯一一台主机。
    因此需要通过升级 IPv6 来根本的解决 IP 地址数量的问题!

    升级 IPv6

    IPv6:IPv6 并不是 IPv4 的简单升级版,他们是两个互不相干的协议,彼此并不兼容。而 IPv6 用 16 个字节 128 个比特位来表示一个地址,相比于 IPv4 的 4 个字节 32 个比特位,大了不止一点点。使用 IPv6 地球上的每一粒沙子分配一个 IP 地址都是够用的。

    展开全文
  • 下行RB的资源分配(Resource Allocation)方式,分别是 资源分配方式0 、 资源分配方式1 和 资源分配方式2 。在上一篇博文《 LTE下行物理层传输机制(5)-DCI格式的选择和DCI1A 》中提到DCI1A的时候,提到DCI...

    下行RB的资源分配(Resource Allocation)有三种方式,分别是资源分配方式0资源分配方式1资源分配方式2。在上一篇博文《LTE下行物理层传输机制(5)-DCI格式的选择和DCI1A》中提到DCI1A的时候,提到DCI1A只能分配连续的VRB,以及这种方式下RIVResource Indication Value )的计算,那么这种分配方式其实就是资源分配方式2。而DCI2和DCI2A格式使用的则是另外2种不同的分配方式,即资源分配方式0资源分配方式1。因此在讲DCI2和DCI2A之前,有必要先介绍这2种资源分配方式。

    1.资源分配方式0

    采用资源分配方式0的DCI有:DCI1DCI2DCI2ADCI2B,这些DCI里都有个资源分配字段,用于表示哪些RB是分配给这个UE的。比如下图的DCI2A格式,当使用资源分配方式0的时候,有ceil(N_DL_RB / P)个比特的bitmap表用于表示RB的分配情况,N_DL_RB是带宽占用的RB总个数,参数P则与带宽大小有关,具体见后文描述。


    在RB资源分配方式0(Resource Allocation Type 0)中,所有的RB资源构成不同的RBG(RB Group),因此分配方式0就是以RBG为基本单位进行分配的。在这种分配方式里,DCI中的资源分配字段将使用一个bitmap表来分配RB资源,这个bitmap表的每个bit位就表示一个RBG。每个RBG由P个RB组成,P值与下行带宽相关,如下表格所示。这P个连续的VRB与PRB是一一对应的。


    比如下行是20MHz的带宽(N_DL_RB=100),那么如果按照资源分配方式0分配RB资源,每个RBG将包括4个RB(P=4)。如果是1.4MHz的带宽(N_DL_RB=6),那么每个RBG就只包括1个RB。

    不同的带宽,资源分配方式0所能使用的RBG个数也是固定的。如果用变量N_RBG来表示这个值的话,N_RBG=(N_DL_RB P)向上取整每个资源分配方式0的DCI,都对应着一个N_RBG比特长度的bitmap资源分配表,这个bitmap分配表被编码到DCI码流中,UE从这个分配表就可以推导出该PDSCH使用的RB资源

    比如3MHz的下行带宽,它的RB个数N_DL_RB=15,P=2,因此N_RBG=N_DL_RB / P)向上取整=(15 / 2)向上取整=8。但是需要注意,如果是N_DL_RB mod P)!= 0的带宽,它的最后一个RBG的大小和其它的RBG大小是不一样的:最后一个RBG包含的RB个数=N_DL_RB - P *N_DL_RB / P),而其它位置的RBG包含的RB个数=P。比如3MHz下行带宽,除了最后一个RBG,其他(N_DL_RB / P=15 / 2=)7个RBG,每个RBG都有2个RB,此时这7个RBG共占用了7*2=14个RB,小于整个带宽的15个RB,因此最后一个RBG包含的RB个数=N_DL_RB - P *N_DL_RB / P)= 15 - 2 * (15 / 2)=1个。如下图所示,最后一个RB14构成了一个RBG7。


    另外,既然是bitmap表,就有高低位问题。协议也明确规定,RBG_0对应着这个bitmap的高位即MSB,而RBG_(N_RBG-1)则对应着这个bitmap表的低位即LSB。如果UE解码到某个bit位=1,则表示对应的RBG分配给了这个UE。比如3M带宽时,bitmap表占用的bit位数N_RBG=(15/2)向上取整=8,bitmap码流=二进制Bin(00001011),那么表示该UE使用的RBG资源组分别是RBG4、RBG6和RBG7,因此使用的RB-ID分别是:RB8-RB9,RB12-RB14。所以说,分配方式0可以分配离散的RB资源,只是带宽越大,分配的RB粒度P就越粗。

    2.资源分配方式1

    采用资源分配方式1的DCI有:DCI1DCI2DCI2ADCI2B,与资源分配方式0相同。每个DCI里都有个资源分配字段,用于表示哪些RB是分配给这个UE的。只是与分配方式0不同的是,资源分配方式1的资源分配字段有个域,而不是只有一个bitmap域。比如下图的DCI2A格式,当使用资源分配方式1的时候,3个不同的信息域如图中绿色标识区域所示。关于更详细的内容,见后文描述。


    在资源分配方式1中,所有的RB资源构成了不同的RBG(这点与资源分配方式0相同),而不同的RBG又构成了不同的RBG子集(RBG subset),因此资源组成方式是 RB -> RBG -> RBG子集。所有的RBG构成P个不同的RBG子集。当eNB给某个UE分配资源时,就选择一个RBG子集,然后将该子集中包含的所有RB置1。总之,每个带宽包含了P个RBG子集,每个RBG子集又包含了若干个RBG,每个RBG同样也包含了P个连续的RB(最后一个RBG包含的RB个数与分配方式0相同),组成示意如下。


    上图示意的就是带宽为10MHz时各RBG子集的构成情况,此时N_DL_RB=50,P=3,所以此时所有的RBG构成了3个RBG子集,每个RBG包含了3个连续的RB。

    从上面的示意图中也可以看到,如果使用分配方式1,那么每个DCI中,必须携带当前选择的子集索引,以及该子集使用的bitmap。不过需要注意的是,此时bitmap表中的每个bit位表示的是对应的RB-ID,而不是RBG,这点与分配方式0不同

    还是以带宽10MHz为例介绍DCI中的RB分配信息如何理解。如下图所示,可以看到,该DCI使用了RBG子集1来指示资源分配,而具体的bitmap表中,bit2、bit3、bit5均等于1,表示子集1的第3个RB、第4个RB和第6个RB均被分配给了这个UE。另外也可以看到,每个UE使用的RB分配指示信息是通过RB-bitmap的形式给出的,这种RB-bitmap(RB0/RB1/RB2/...)是属于同一个RBG子集内的索引,不同RBG子集的逻辑相对位置RB0/RB1/RB2/...指代的实际位置RB-ID是不同的。比如子集0内的bit2是指实际位置RB2,而子集1内的bit2指的是实际位置RB5。


    上图还可以看到,并不是所有的RBG子集包含的RBG和RB个数都是一样的,比如子集0包含的RBG个数是6个,共有18个RB;而虽然子集1包含的RBG个数也是6个,但只有17个RB;而子集2包含的RBG个数则只有5个,RB个数只有15个。

    上面介绍了资源分配方式1的一种实际使用情况,这里还有几个地方没有提到:DCI里面shift字段的含义、上图中RB分配bitmap表占用的bit位个数怎么计算等等。下面就详细说明采用资源分配方式1的DCI中,它的资源分配内容怎么填写。

    协议规定,资源分配方式1的资源分配字段占用的bit个数为(N_DL_RB / P)向上取整,包含3个域,这3个域分别是(参考前文DCI2A的码流格式):

    (1)RBG子集指示域。该域表示当前的资源分配是在P个RBG子集中选择的是哪个子集,该域占用的bit位个数N = log2(P)向上取整。比如10MHz带宽,P=3,那么N=log2(P)向上取整=log2(3)向上取整=(1.58)向上取整=2,即DCI码流中的RB资源分配字段的前2个bit,是用来表示当前使用的是哪个RBG子集。上图中subset=01,就是表示该DCI分配的子集是子集1。

    (2)shift资源偏移域该域固定占用1个bit,如果该域的值=0,表示选中的RBG子集内的RB不做偏移,值=1表示选中的RBG子集内的RB需要执行偏移,协议使用变量delta_shift(p)来表示第p个子集内的RB偏移量,这个偏移量是从RB低位(即RB0端而不是RB99端)开始偏移的,或者说是从bitmap的MSB位开始偏移的。具体怎么偏移详见下文。

    (3)bitmap表域该域占用的bit位个数N_TYPE1_RB = (N_DL_RB / P)向上取整 - log2(P)向上取整 - 1,每个bit值表示当前RBG子集中的一个RB,该bitmap表的MSB比特位对应着频率低的RB-ID,而LSB比特位则对应RB频率高的RB-ID(这个规则与分配方式0相同)。

    上面介绍了采用资源分配方式1时DCI里的资源分配字段所包含的各个域的内容,可以看到,shift域决定了bitmap表域的理解,下面以10M带宽(50个RB)为例再具体解释一下。

    (A) 如果各个子集都不偏移即三个子集的shift=0,每个子集的偏移量delta_shift(p)=delta_shift(0)=delta_shift(1)=delta_shift(2)=0,那么:

    RBG子集0由RBG0(RB0/RB1/RB2)、RBG3(RB3/4/5)、RBG6(RB6/7/8)、RBG9(RB9/10/11)、RBG12(RB12/13/14)、RBG15(RB15/16/17)组成。

    RBG子集1由RBG1(RB0/RB1/RB2)、RBG4(RB3/4/5)、RBG7(RB6/7/8)、RBG10(RB9/10/11)、RBG13(RB12/13/14)、RBG16(RB15/16)组成。

    RBG子集2由RBG2(RB0/RB1/RB2)、RBG5(RB3/4/5)、RBG8(RB6/7/8)、RBG11(RB9/10/11)、RBG14(RB12/13/14)组成。

    不过需要注意的是,上面每个子集包含的RB个数其实是不一样的(子集0有18个RB,子集1有17个RB,子集2有15个RB),而根据DCI的bitmap表域的计算公式,每个子集只能包含的bit个数N_TYPE1_RB = (50/3)向上取整 - log2(3)向上取整 - 1 = 17 - 2 - 1 = 14,即每次调度的时候,eNB只能分配14个RB给UE,所以在shift=0的条件下,实际上每个子集只有前14个RB能够使用(从RBG0或者RB低频端开始),而对子集0来说,RB高频端还有4个RB不能分配使用,对子集1来说,RB高频端还有3个RB不能分配使用,对子集2来说,RB高频端还有1个RB不能分配使用,如下图所示。


    由于每次调度时RB个数有限制,因此某些情况下并不适合使用资源分配方式1,比如测试吞吐量的时候。

    (B) 如果子集0使用了偏移即shift=1,则表示需要对组成RBG子集0的RB进行偏移调整,偏移量delta_shift(p)= N_RBGsubset_RB(p) - N_TYPE1_RB= N_RBGsubset_RB(0) - N_TYPE1_RB。其中,参数N_RBGsubset_RB(p)表示RBG子集p内的RB个数(如果是子集0的话,注意该值等于18而不是等于14),N_TYPE1_RB是bitmap域的比特长度,如下图示意。


    从上面的公式中也可以看到,偏移量delta_shift(p)= N_RBGsubset_RB(p) - N_TYPE1_RB 也表示了每个子集中不能分配的RB个数,如子集0中有4个RB不能使用,子集1中有3个RB不能使用,而子集2中则有1个RB不能使用。那么如何决定哪几个RB不能使用,就是shift域的真正目的:如果shift=0,则表示RBG高频端的几个RB不使用,而如果shift=1,则意味着RBG低频段的几个RBG不能使用

    仍然以10MHz带宽为例,此时N_DL_RB=50,P=3。那么shift=1时,判断条件[(N_DL_RB - 1)/P 向下取整] mod P = [(49/3)向下取整] mod 3 = 16 mod 3 =1。因此:

    对于子集0来说,p=0<1,所以RB偏移量delta_shift(0)= N_RBGsubset_RB(0) - N_TYPE1_RB = [(50 - 1)/9]向下取整 * 3 + 3 - (17 - 2 - 1) = 5 * 3 + 3 - 14 =4

    对于子集1来说,p=1=1,所以RB偏移量delta_shift(1)= N_RBGsubset_RB(1) - N_TYPE1_RB = [49/9]向下取整 * 3 + (49 mod 3) + 1 - (17 - 2 - 1) = 15 + 2 - 14 =3

    对于子集2来说,p=2>1,所以RB偏移量delta_shift(2)= N_RBGsubset_RB(2) - N_TYPE1_RB = [(50 - 1)/9]向下取整 * 3 - (17 - 2 - 1) = 5 * 3 - 14 =1

    根据公式计算得到三个子集的偏移量delta_shift(p)分别是4、3、1,这与前文示意图中描述的“每个子集中不能分配的RB个数”数值一致。此时实际的分配如下图所示。


    从图上可以看到,子集0包含的RB从实际位置RB10开始直到RB47,共14个RB,在DCI的bitmap域里,第一个RB对应的就是RB10,其它的依次类推。协议也给出了在shift=1的情况下,每个子集中每个RB的序列,如下图所示。


    以10MHz带宽为例,P=3,N_TYPE1_RB=14,i的范围是0~13,因此:

    对于子集0,delta_shift(0)=4,i=0(第一个RB位置)时,n_RBGsubset_VRB(0)= (0+4)/3 * 9 + 0*3 +(0+4)mod3 = 9 + 0 + 1 =10;i=13(最后一个RB位置)时,n_RBGsubset_VRB(0)=(13+4)/3 * 9 + 0*3 + (13+4)mod3 = 45+0+2=47

    对于子集1,delta_shift(1)=3,i=0(第一个RB位置)时,n_RBGsubset_VRB(1)= (0+3)/3 * 9 + 1*3 +(0+3)mod3 = 9 + 3 + 0 = 12;i=13(最后一个RB位置)时,n_RBGsubset_VRB(1)=(13+3)/3 * 9 + 1*3 + (13+3)mod3 = 45+3+1=49

    对于子集2,delta_shift(2)=1,i=0(第一个RB位置)时,n_RBGsubset_VRB(2)= (0+1)/3 * 9 + 2*3 +(0+1)mod3 = 0 + 6 + 1 = 7; i=13(最后一个RB位置)时,n_RBGsubset_VRB(2)=(13+1)/3 * 9 + 2*3 + (13+1)mod3 = 36+6+2=44

    根据公式计算的结果,与上面示意图的移位结果一致。

    综上,资源分配方式1的分配粒度是RB,相对分配方式0的RBG分配粒度,更加灵活自由,但由于每次只能分配一个子集的RB资源,所以使用分配方式1时,可供分配的RB最大个数受到了限制,最大流量也会因此受到限制。如果要最大化LTE系统的下行流量,eNB就不能采用资源分配方式1,而需要采用资源分配方式0下的双流模式

    3.资源分配方式2

    采用资源分配方式2的DCI有:DCI1ADCI1B、DCI1CDCI1D,与资源分配方式0和1没有重叠。这种方式已经在博文《LTE下行物理层传输机制(5)-DCI格式的选择和DCI1A》中提到,这里不再累述。

    参考文献:

    (1)3GPP TS 36.212 V9.4.0 (2011-09) Multiplexing and channel coding

    (2)3GPP TS 36.213 V9.3.0 (2010-09) Physical layer procedures

    (3)3GPP TS 36.321 V9.6.0 (2012-03) Medium Access Control (MAC) protocol specification

    (4)http://www.sharetechnote.com/


    展开全文
  • 【摘要】本文拟通过对Ceph、HDFS、Swift、GFS、Luster等几种主流的分布式存储技术实现原理的阐述,并总结其各自的特点和合适的使用场景,以帮助架构师在进行存储架构规划时,选择合适的存储技术。 【作者】范永清,...
     

    【摘要】本文拟通过对Ceph、HDFS、Swift、GFS、Luster等几种主流的分布式存储技术实现原理的阐述,并总结其各自的特点和合适的使用场景,以帮助架构师在进行存储架构规划时,选择合适的存储技术。

    【作者】范永清,高级工程师,现就职于厦门银行信息技术部,目前主要负责厦门银行技术架构设计。

     

    存储根据其类型,可分为块存储,对象存储和文件存储。在主流的分布式存储技术中,HDFS/GPFS/GFS属于文件存储,Swift属于对象存储,而Ceph可支持块存储、对象存储和文件存储,故称为统一存储。

     

    一、 Ceph

    Ceph最早起源于Sage就读博士期间的工作、成果于2004年发表,并随后贡献给开源社区。经过多年的发展之后,已得到众多云计算和存储厂商的支持,成为应用最广泛的开源分布式存储平台。

    Ceph根据场景可分为对象存储、块设备存储和文件存储。Ceph相比其它分布式存储技术,其优势点在于:它不单是存储,同时还充分利用了存储节点上的计算能力,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡。同时,由于采用了CRUSH、HASH等算法,使得它不存在传统的单点故障,且随着规模的扩大,性能并不会受到影响。

    1.Ceph的主要架构

    Ceph的最底层是RADOS(分布式对象存储系统),它具有可靠、智能、分布式等特性,实现高可靠、高可拓展、高性能、高自动化等功能,并最终存储用户数据。RADOS系统主要由两部分组成,分别是OSD和Monitor。

    RADOS之上是LIBRADOS,LIBRADOS是一个库,它允许应用程序通过访问该库来与RADOS系统进行交互,支持多种编程语言,比如C、C++、Python等。

    基于LIBRADOS层开发的有三种接口,分别是RADOSGW、librbd和MDS。

    RADOSGW是一套基于当前流行的RESTFUL协议的网关,支持对象存储,兼容S3和Swift。

    librbd提供分布式的块存储设备接口,支持块存储。

    MDS提供兼容POSIX的文件系统,支持文件存储。

    2.Ceph的功能模块

    Ceph的核心组件包括Client客户端、MON监控服务、MDS元数据服务、OSD存储服务,各组件功能如下:

     Client客户端:负责存储协议的接入,节点负载均衡

     MON监控服务:负责监控整个集群,维护集群的健康状态,维护展示集群状态的各种图表,如OSD Map、Monitor Map、PG Map和CRUSH Map

     MDS元数据服务:负责保存文件系统的元数据,管理目录结构

     OSD存储服务:主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查等。一般情况下一块硬盘对应一个OSD。

    3.Ceph的资源划分

    Ceph采用crush算法,在大规模集群下,实现数据的快速、准确存放,同时能够在硬件故障或扩展硬件设备时,做到尽可能小的数据迁移,其原理如下:

    当用户要将数据存储到Ceph集群时,数据先被分割成多个object,(每个object一个object id,大小可设置,默认是4MB),object是Ceph存储的最小存储单元。

    由于object的数量很多,为了有效减少了Object到OSD的索引表、降低元数据的复杂度,使得写入和读取更加灵活,引入了pg(Placement Group ):PG用来管理object,每个object通过Hash,映射到某个pg中,一个pg可以包含多个object。

    Pg再通过CRUSH计算,映射到osd中。如果是三副本的,则每个pg都会映射到三个osd,保证了数据的冗余。

    4.Ceph的数据写入

    Ceph数据的写入流程

    1) 数据通过负载均衡获得节点动态IP地址;

    2) 通过块、文件、对象协议将文件传输到节点上;

    3) 数据被分割成4M对象并取得对象ID;

    4) 对象ID通过HASH算法被分配到不同的PG;

    5) 不同的PG通过CRUSH算法被分配到不同的OSD

    5.Ceph的特点

     Ceph支持对象存储、块存储和文件存储服务,故 称为统一存储。

     采用CRUSH算法,数据分布均衡,并行度高,不需要维护固定的元数据结构;

     数据具有强一致,确保所有副本写入完成才返回确认,适合读多写少场景;

     去中心化,MDS之间地位相同,无固定的中心节点

    Ceph存在一些缺点:

     去中心化的分布式解决方案,需要提前做好规划设计,对技术团队的要求能力比较高。

     Ceph扩容时,由于其数据分布均衡的特性,会导致整个存储系统性能的下降。

     

    二、 GFS

    GFS是google的分布式文件存储系统,是专为存储海量搜索数据而设计的,2003年提出,是闭源的分布式文件系统。适用于大量的顺序读取和顺序追加,如大文件的读写。注重大文件的持续稳定带宽,而不是单次读写的延迟。

    1.GFS的主要架构

    GFS 架构比较简单,一个 GFS 集群一般由一个 master 、多个 chunkserver 和多个 clients 组成。

    在 GFS 中,所有文件被切分成若干个 chunk,每个 chunk 拥有唯一不变的标识(在 chunk 创建时,由 master 负责分配),所有 chunk 都实际存储在 chunkserver 的磁盘上。

    为了容灾,每个 chunk 都会被复制到多个 chunkserve

    2.GFS的功能模块

     GFS client客户端:为应用提供API,与POSIX API类似。同时缓存从GFS master读取的元数据chunk信息;

     GFS master元数据服务器:管理所有文件系统的元数据,包括命令空间(目录层级)、访问控制信息、文件到chunk的映射关系,chunk的位置等。同时 master 还管理系统范围内的各种活动,包括chunk 创建、复制、数据迁移、垃圾回收等;

     GFS chunksever存储节点:用于所有 chunk的存储。一个文件被分割为多个大小固定的chunk(默认64M),每个chunk有全局唯一的chunk ID。

    3.GFS的写入流程

    1) Client 向 master 询问要修改的 chunk在哪个 chunkserver上,以及 该chunk 其他副本的位置信息;

    2) Master 将Primary、secondary的相关信息返回给 client;

    3) Client 将数据推送给 primary 和 secondary;

    4) 当所有副本都确认收到数据后,client 发送写请求给 primary,primary 给不同 client 的操作分配序号,保证操作顺序执行;

    5) Primary 把写请求发送到 secondary,secondary 按照 primary 分配的序号顺序执行所有操作;

    6) 当 Secondary 执行完后回复 primary 执行结果;

    7) Primary 回复 client 执行结果。

    由上述可见,GFS在进行写数据时,有如下特点:

     GFS在数据读写时,数据流与控制流是分开的,并通过租约机制,在跨多个副本的数据写入中, 保障顺序一致性;

     Master将chunk租约发放给其中一个副本,这个副本称为主副本,由主副本确定chunk的写入顺序,次副本则遵守这个顺序,这样就保障了全局顺序一致性;

     Master返回客户端主副本和次副本的位置信息,客户端缓存这些信息以备将来使用,只有当主副本所在chunkserver不可用或返回租约过期了,客户端才需要再次联系Master;

     GFS采用链式推送,以最大化利用每个机器的网络带宽,避免网络瓶颈和高延迟连接,最小化推送延迟;

     GFS使用TCP流式传输数据,以最小化延迟。

    4.GFS特点

     适合大文件场景的应用,特别是针对GB级别的大文件,适用于数据访问延时不敏感的搜索类业务

     中心化架构,只有1个master处于active状态

     缓存和预取,通过在client端缓存元数据,尽量减少与master的交互,通过文件的预读取来提升并发性能

     高可靠性,master需要持久化的数据会通过操作日志与checkpoint的方式存放多份,故障后master会自动切换重启。

     

    三、 HDFS

    HDFS(Hadoop Distributed File System),是一个适合运行在通用硬件(commodity hardware)上的分布式文件系统,是Hadoop的核心子项目,是基于流数据模式访问和处理超大文件的需求而开发的。该系统仿效了谷歌文件系统(GFS),是GFS的一个简化和开源版本。

    1.HDFS的主要架构

     HDFS Client(客户端):从NameNode获取文件的位置信息,再从DataNode读取或者写入数据。此外,client在数据存储时,负责文件的分割;

     NameNode(元数据节点):管理名称空间、数据块(Block)映射信息、配置副本策略、处理客户端读写请求;

     DataNode(存储节点):负责执行实际的读写操作,存储实际的数据块,同一个数据块会被存储在多个DataNode上;

     Secondary NameNode:定期合并元数据,推送给NameNode,在紧急情况下,可辅助NameNode的HA恢复。

    2.HDFS的特点(vs GFS)

     分块更大,每个数据块默认128MB;

     不支持并发,同一时刻只允许一个写入者或追加者;

     过程一致性,写入数据的传输顺序与最终写入顺序一致;

     Master HA,2.X版本支持两个NameNode,(分别处于Active和Standby状态),故障切换时间一般几十秒到数分钟

    3.HDFS适合的应用场景

     适用于大文件、大数据处理,处理数据达到 GB、TB、甚至PB级别的数据。

     适合流式文件访问,一次写入,多次读取。

     文件一旦写入不能修改,只能追加。

    4.HDFS不适合的场景:

     低延时数据访问。

     小文件存储

     并发写入、文件随机修改

     

    四、 Swift

    Swift 最初是由Rackspace公司开发的分布式对象存储服务, 2010 年贡献给 OpenStack 开源社区。作为其最初的核心子项目之一,为其 Nova 子项目提供虚机镜像存储服务。

    1.Swift的主要架构

    Swift 采用完全对称、面向资源的分布式系统架构设计,所有组件都可扩展,避免因单点失效而影响整个系统的可用性。

    Swift 组件包括

     代理服务(Proxy Server):对外提供对象服务 API,转发请求至相应的账户、容器或对象服务

     认证服务(Authentication Server):验证用户的身份信息,并获得一个访问令牌(Token)

     缓存服务(Cache Server):缓存令牌,账户和容器信息,但不会缓存对象本身的数据

     账户服务(Account Server):提供账户元数据和统计信息,并维护所含容器列表的服务

     容器服务(Container Server):提供容器元数据和统计信息,并维护所含对象列表的服务

     对象服务(Object Server):提供对象元数据和内容服务,每个对象会以文件存储在文件系统中

     复制服务(Replicator):检测本地副本和远程副本是否一致,采用推式(Push)更新远程副本

     更新服务(Updater):对象内容的更新

     审计服务(Auditor):检查对象、容器和账户的完整性,如果发现错误,文件将被隔离

     账户清理服务(Account Reaper):移除被标记为删除的账户,删除其所包含的所有容器和对象

    2.Swift的数据模型

    Swift的数据模型采用层次结构,共设三层:Account/Container/Object(即账户/容器/对象),每层节点数均没有限制,可以任意扩展。数据模型如下:

    3.一致性散列函数

    Swift是基于一致性散列技术,通过计算将对象均匀分布到虚拟空间的虚拟节点上,在增加或删除节点时可大大减少需移动的数据量;

    为便于高效的移位操作,虚拟空间大小通常采用 2 n;通过独特的数据结构 Ring(环),再将虚拟节点映射到实际的物理存储设备上,完成寻址过程。如下图所示:

    散列空间4 个字节(32为),虚拟节点数最大为232,如将散列结果右移 m 位,可产生 2(32-m)个虚拟节点,(如上图中所示,当m=29 时,可产生 8 个虚拟节点)。

    4.环的数据结构

    Swift为账户、容器和对象分别定义了的环。

    环是为了将虚拟节点(分区)映射到一组物理存储设备上,并提供一定的冗余度而设计的,环的数据信息包括存储设备列表和设备信息、分区到设备的映射关系、计算分区号的位移(即上图中的m)。

    账户、容器和对象的寻址过程。(以对象的寻址过程为例):

    1) 以对象的层次结构 account/container/object 作为键,采用 MD5 散列算法得到一个散列值;

    2) 对该散列值的前 4 个字节进行右移操作(右移m位),得到分区索引号;

    3) 在分区到设备映射表里,按照分区索引号,查找该对象所在分区对应的所有物理设备编号。如下图:

    5.Swift的一致性设计

    Swift 采用 Quorum 仲裁协议

     定义:N:数据的副本总数;W:写操作被确认接受的副本数量;R:读操作的副本数量

     强一致性:R+W>N, 就能保证对副本的读写操作会产生交集,从而保证可以读取到最新版本; 

     弱一致性:R+W<=N,读写操作的副本集合可能不产生交集,此时就可能会读到脏数据; 

    Swift 默认配置是N=3,W=2,R=2,即每个对象会存在 3 个副本,至少需要更新 2 个副本才算写成功;如果读到的2个数据存在不一致,则通过检测和复制协议来完成数据同步。

    如R=1,就可能会读到脏数据,此时,通过牺牲一定的一致性,可提高读取速度,(而一致性可以通过后台的方式完成同步,从而保证数据的最终一致性)

    Quorum 协议示例如下所示:

    6.Swift特点

     原生的对象存储,不支持实时的文件读写、编辑功能

     完全对称架构,无主节点,无单点故障,易于大规模扩展,性能容量线性增长

     数据实现最终一致性,不需要所有副本写入即可返回,读取数据时需要进行数据副本的校验

     是OpenStack的子项目之一,适合云环境的部署

     Swift的对象存储与Ceph提供的对象存储区别:客户端在访问对象存储系统服务时,Swift要求客户端必须访问Swift网关才能获得数据。而Ceph可以在每个存储节点上的OSD(对象存储设备)获取数据信息; 在数据一致性方面,Swift的数据是最终一致,而Ceph是始终跨集群强一致性)

     

    五、 Lustre分布式存储

    Lustre是基于Linux平台的开源集群(并行)文件系统,最早在1999年由皮特•布拉姆创建的集群文件系统公司(Cluster File Systems Inc.)开始研发,后由HP、Intel、Cluster File System和美国能源部联合开发,2003年正式开源,主要用于HPC超算领域。

    1、Lustre的主要架构

    Lustre组件包括:

     管理服务器(MGS):存放集群中所有Lustre文件系统的配置信息,Lustre客户通过联系MGS获取信息,可以与MDS共享存储空间。

     元数据服务器(MDS): 管理存储在MDT中的元数据,使存储在一个或多个MDT中的元数据可供Lustre客户端使用,每个MDS可管理一个或多个MDT。

     元数据目标(MDT): MDS用于存储元数据(例如文件名,目录,权限和文件布局),一个MDT可用于多个MDS,但一次只能有一个MDS访问。

     对象存储服务器(OSS):为一个或多个本地OST提供文件I / O服务和网络请求处理, 通常,OSS服务于两个到八个OST。

     对象存储目标(OST):用户文件数据存储在一个或多个对象中,每个对象位于单独OST中。

     Lustre客户端:运行Lustre客户端软件的计算节点,可挂载Lustre文件系统。客户端软件包括一个管理客户端(MGC),一个元数据客户端(MDC)和多个对象存储客户端(OSC)。每个OSC对应于文件系统中的一个OST。

     逻辑对象卷(LOV)通过聚合OSC以提供对所有OST的透明访问,逻辑元数据卷(LMV)通过聚合MDC提供一种对所有MDT透明的访问。

    2、Lustre特点

     支持数万个客户端系统,支持PB级存储容量,单个文件最大支持320TB容量

     支持RDMA网络,大文件读写分片优化,多个OSS能获得更高的聚合带宽

     缺少副本机制,存在单点故障。如果一个客户端或节点发生故障,存储在该节点上的数据在重新启动前将不可访问

     适用高性能计算HPC领域,适用于大文件连续读写。

     

    六、 主流分布式存储技术的比较

    几种主流分布式存储技术的特点比较如下:


    此外,根据分布式存储系统的设计理念,其软件和硬件解耦,分布式存储的许多功能,包括可靠性和性能增强都由软件提供,因此大家往往会认为底层硬件已不再重要。但事实往往并非如此,我们在进行分布式存储系统集成时,除考虑选用合适的分布式存储技术以外,还需考虑底层硬件的兼容性。一般而言,分布式存储系统的产品有三种形态:软硬件一体机、硬件OEM和软件+标准硬件,大家在选择时,需根据产品的成熟度、风险规避、运维要求等,结合自身的技术力量等,选择合适的产品形态。

    原题:主流分布式存储技术的对比分析与应用

    如有任何问题,可点击文末阅读原文到社区原文下评论交流

     

     资料/文章推荐:

    • 分布式存储技术路线选型探讨

      http://www.talkwithtrend.com/Question/424127

    • 金融行业分布式存储方案设计

      http://www.talkwithtrend.com/Document/detail/tid/416333

    展开全文
  • 几种常见的负载均衡方式

    千次阅读 2018-07-13 21:12:46
    LVS的后两模式下,由于响应都不经过调度器,除了响应速度更快以外,还可以节省大量网络带宽。LVS原理简单,调度时消耗很小,所以性能比应用层负载均衡高,其性能级别在十万级,由于LVS工作在网络底层,具有更好的...
  • SAN的概念 SAN(Storage Area Network)存储...SAN将通道技术和网络技术引入存储环境中,提供了一新型的网络存储解决方案,能够同时满足吞吐率、可用性、可靠性、可扩展性和可管理性等方面的要求。 1FC-SAN 通...
  • 广域网宽带接入技术七GPON技术

    千次阅读 2022-02-15 13:35:33
    未来10年趋势,伴随着云计算、物联网的爆炸式增长,...现有的10G/40G 网络已不能满足需求,25G/100G升级方案作为一带宽、高密度、低成本、低功耗的解决方案,推动着数据中心网络朝着更高性能和灵活性的方向发展。
  • 广域网宽带接入技术三PON技术

    千次阅读 2022-01-30 19:26:39
    一、PON技术 我国在2013年发布“宽带中国”战略时首次提出到2020年发达城市部分家庭固定网络接入速率可达1Gbit/s的目标。之后工业和信息化部连续发布了多项落实“宽带中国”和“提速降费”战略的具体行动方案。 运营...
  • 无人驾驶 | 自动驾驶技术和机器人技术的对比

    千次阅读 多人点赞 2021-01-09 13:06:36
    机器人技术的核心是运动控制,包括定位、导航、感知、决策、跟踪等,可广泛应用在家庭服务机器人、工业自动化机器人等领域。自动驾驶是人工智能领域最炙手可热的方向,互联网巨擎(谷歌、Uber、百度等)、传统汽车大...
  • 直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通讯等技术,每一个技术都够你学年...
  • 常见的几种加密算法比较

    千次阅读 2020-09-04 10:58:48
    “加密”,是一限制对网络上传输数据的访问权的技术。原始数据(也称为明文,plaintext)被加密设备(硬件或软件)和密钥加密而产生的经过编码的数据称为密文(ciphertext)。将密文还原为原始明文的过程称为解密,它...
  • 假如这里100个slot,queueA分配20%的资源,可配置最多运行15个task,queueB 分配50%的资源,可配置最多运行25个task,queueC分配30%的资源,可配置最多运行25个task。这三个队列同时按照任务的先后顺序依次执行,...
  • linux 中几种bond模式详解 bonging

    千次阅读 2020-11-29 14:38:30
    bonding---关于提高服务器的带宽策略 1 一:bonding的概念 所谓bonding就是将多块网卡绑定同一IP地址对外提供服务,可以实现网卡的带宽扩容、高可用或者负载均衡。 二:bonding的优势 ...
  • 学习笔记:防火墙带宽管理

    千次阅读 2020-03-03 21:25:56
    FW带宽管理带宽管理功能带宽管理带宽管理处理流程带宽通道的功能带宽策略规则多级策略带宽复用接口带宽管理 带宽管理指的是设备基于源地址、目的地址、源安全区域/入接口、目的安全区域/出接口、服务、用户和应用等...
  • WebRTC的拥塞控制和带宽策略

    千次阅读 2018-05-29 14:30:53
    网络的波动带来的卡顿直接影响着用户的体验,在WebRTC中设计了一套基于延迟和丢包反馈的拥塞机制(GCC)和带宽调节策略来保证延迟、质量和网路速度之间平衡,本文中重点是介绍基于trendline滤波的评估模型。...
  • 实现负载均衡的几种方式

    万次阅读 多人点赞 2018-07-21 09:56:13
    负载均衡(Load Balance)是集群技术(Cluster)的一应用。负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力。目前最常见的负载均衡应用是Web负载均衡。根据实现的原理不同,常见的web负载均衡技术...
  • 不同应用系统之间数据交互的几种方式

    万次阅读 多人点赞 2020-05-12 23:59:30
    信息系统的普及应用导致原有系统间的信息孤岛需要通过系统间接口进行数据交互,信息交互的接口常见以下几种: (1)数据库交互:服务方提供表或存储过程,由调用方控制commit或rollback。 (2)文件交互:双方对请求...
  • 经济|通证经济学:机制设计、激励相容与VCG机制 通证经济学的主要研究方向大致分为三个: 以比特币为代表的区块链1.0时代的私营货币(Private Money)话题; 由博弈论引出的,用于研究通证经济体系中各方博弈...
  • 除了快,5G 哪些关键技术

    千次阅读 2019-12-13 16:42:15
    阿里妹导读:5G不仅仅只是网速更快,更多的是生活方式的颠覆,对各行各业都会起到催化作用。5G里不仅仅只有大带宽,而是会很多与B端用户(企业)相结合的点。接下来,跟阿里大文娱的梓烁一起了解5G的关键技术
  • 数据交换的三种技术

    千次阅读 2019-09-18 05:30:46
    1.电路交换技术 ...公众电话网(PSTN网)和移动网(包括GSM网和CDMA网)采用的都是电路交换技术,它的基本特点是采用面向连接的方式,在双方进行通信之前,需要为通信双方分配一条具有固定带宽的通信电路...
  • 1.什么是动态频谱共享DSS? 2. 动态频谱共享DSS与静态射频共享的比较 3. 如何部署动态频谱共享? 4动态频谱共享的好处? 5.动态频谱共享的技术实现
  • 目前应用最为广泛的集群计算技术可以分为三大类:高可用性集群技术、高性能计算集群技术和高可扩展性集群技术。下面我们将对这三集 群技术进行一下简单的介绍。  1、高可用性集群技术 高可用性集群,英文...
  • 但是,与清晰定义的“云计算”(NIST SP 800-145和ISO/IEC 17788)不同,业界对“云安全”从概念、技术到产品都还没有形成明确的共识。 从发展的脉络分析,“云安全”相关的技术可以分两类: 一类为使用云计算...
  • 在【腾讯技术开放日 · 云视频会议专场】中,腾讯多媒体实验室视频技术专家王诗涛针对视频编码技术优化实践进行了分享,讲述如何利用视频技术达到清晰流畅,低延时的用户体验。 屏幕分享场景编码技术优化实践 ...
  • 作者 |张晓宇(衷源) 阿里云容器平台技术专家 关注『阿里巴巴云原生』公众号,回复关键词“1010”,可获取本文 PPT。 导读:资源利用率一直是很多平台管理和研发人员关心的话题。本文作者通过阿里巴巴容器平台团队...
  • 在传统技术中,常用更换高速率的接口板或更换支持高速率接口板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。        采用链路聚合技术可以在不进行硬
  • QOS队列调度机制简介

    千次阅读 2017-07-26 14:04:17
    1 简介队列调度机制在QoS技术体系中属于拥塞管理的范畴。虽然企业和运营商想尽一切办法去扩展自己的链路带宽,但是现实网络上各种应用对带宽的消耗速度远远超出企业和运营商带宽扩充能力,也就是说网络的拥塞是无法...
  • 深圳大学现代通信技术测试题

    千次阅读 2020-09-01 19:24:40
    深圳大学现代通信技术测试题 目录 简述1到4G特点(从代表的系统、主要技术及传输的指标三方面): 2 5G的主要KPI指标(列表给出5个) 2 5G的主要核心技术(给出10个) 3 5G手机(华为mate30,小米9pro,oppo ...
  • 多路复用技术

    千次阅读 2018-11-28 12:59:27
    多路复用就是把多个低速信道组合成一个高速信道的技术,这个技术当中要用到两个设备。多路复用器:在发送端根据某种规则把多个低带宽的信号复合成一个高带宽的信号。多路分配器:在接收端根据同一规则将高带宽的信号...
  • 将使用5G的应用程序在速度、带宽、延迟和各种其他因素方面不同的需求。增强现实、自动驾驶汽车和其他物联网应用往往使用5G来实现可靠和快速的通信。要在这种情况下无缝和安全地工作,就需要一更专业和更有效的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,609
精华内容 20,643
关键字:

动态带宽分配技术分别有哪几种机制