精华内容
下载资源
问答
  • 传输层:多路复用/多路分用

    千次阅读 2019-03-06 10:44:27
    多路复用和分用 多路分用 无连接分用 面向连接分用 参考:哈工大国家精品课程《计算机网络》

    多路复用和分用


    在这里插入图片描述

    多路分用

    在这里插入图片描述

    无连接分用

    在这里插入图片描述
    在这里插入图片描述

    面向连接分用

    在这里插入图片描述
    在这里插入图片描述


    参考

    哈工大国家精品课程《计算机网络》

    展开全文
  • 本文承接 基于UDP的新一代多路传输协议—QUIC(一)QUIC核心技术QUIC能够处理传输可靠性、丢包或无序数据包等一系列UDP默认未处理的问题。1. 多路复用QUIC的多路传输指协议使用多个通道传输数据,所以当其中一个...

    本文承接  基于UDP的新一代多路传输协议—QUIC(一)

    QUIC核心技术

    QUIC能够处理传输可靠性、丢包或无序数据包等一系列UDP默认未处理的问题。

    1.   多路复用

    QUIC的多路传输指协议使用多个通道传输数据,所以当其中一个数据流丢包时,其他的通道并不会因此阻塞等待丢失的数据包,而这会发生在SPDY上,因为SPDY虽然是多路传输但是只有一个通道Shade说,QUIC的方法解决了TCP传输的线端阻塞问题。

    基于UDP的新一代多路传输协议—QUIC(二) - rayliwong - rayliwong的博客
     1 SPDY的多路传输

     

    基于UDP的新一代多路传输协议—QUIC(二) - rayliwong - rayliwong的博客

      2 SPDY数据丢包时阻塞

    基于UDP的新一代多路传输协议—QUIC(二) - rayliwong - rayliwong的博客

     3 QUIC的多路传输

     

    基于UDP的新一代多路传输协议—QUIC(二) - rayliwong - rayliwong的博客

      4 QUIC数据丢包时不阻塞

     类似于SCTP的多流设计,可以通过一个连接同时进行多个请求,不必等待上一个请求返回浪费时间,也不必同时建立若干个连接浪费资源。

       另外单流情况下若发生丢包则会有等待重传阻塞,影响整个连接的传输速度。 

    2.   等待时延(Latency

    以往典型的安全TCP连接(TCP+TLS)往往需要在发送与接收端先进行23轮的握手通信才能正式开始数据传输。而使用QUIC的一个主要优势是如果双方此前通信过的话在客户端和服务器首次连接时不需要握手步骤,某种程度上与TCP快速开启(TCP Fast Open类似。TCP快速开启在2011年面世,但是目前尚没有大范围使用。根据Shade的说法,采用TLS时,在一次跨大西洋的连接中TCP握手要耗时300ms,而QUIC可以将延迟降为100ms。即便双方此前未通信过时延也只有100毫秒,是TCP+TLS用时的1/3。

    基于UDP的新一代多路传输协议—QUIC(二) - rayliwong - rayliwong的博客
    基于UDP的新一代多路传输协议—QUIC(二) - rayliwong - rayliwong的博客

    当被问到为什么不使用TCP+TLSShade解释说,虽然TCPTLS持续升级,但协议的迭代及部署非常慢,而QUIC是部署在客户端级别,而不是在内核级别,这样就能以更快的速度进行迭代,迭代周期由以年计算加速为以周计算。

    根据Shade的介绍,将来SPDY能够运行在QUIC之上,使其比现在更好。将来Google实际使用QUIC的经验和教训可以合并到TCP中。

    3.   加密技术

    可媲美TLS的隐私数据保证(不需要按顺序的传输或按顺序的解密),QUIC对每个散装的UDP包都进行了加密和认证的保护,并且避免使用前向依赖的处理方法(CBC模式),这样每个UDP包可以独立地根据IV进行加密或认证处理。

    QUIC采用了两级密钥机制:初始密钥和会话密钥。初次连接时不加密,并协商初始密钥。初始密钥协商完毕后会马上再协商会话密钥,这样可以保证密钥的前向安全性,之后可以在通信的过程中就实现对密钥的更新。接收方意识到有新的密钥要更新时,会尝试用新旧两种密钥对数据进行解密,直到成功才会正式更新密钥,否则会一直保留旧密钥有效。

    详情可参见(中文)http://blog.csdn.net/this_capslock/article/details/42006801(英文文档) https://docs.google.com/document/d/1g5nIXAIkN_Y-7XJW5K45IblHd_L2f5LTaDUDwvZ5L6g/edit?pli=1

    4.  前向纠错

    QUICTCP一个主要的核心区别就是:TCP采用重传机制,而QUIC采用纠错机制。

    如果发生丢包的话,TCP首先需要一个等待延时来判断发生了丢包,然后再启动重传机制,在此期间会对连接造成一定的阻塞(并且TCP窗口是缓慢增大的,Web这种突发性快速连接情况下窗口会相对较小),从而影响传输时间。

    QUIC采用了一种脑洞极大的前向纠错(FEC)方案,类似于RAID5,将N个包的校验和(异或)建立一个单独的数据包发送,这样如果在这N个包中丢了一个包可以直接恢复出来,完全不需要重传,有利于保证高速性,N可以根据网络状况动态调整。

    5.   连接保持

    QUIC通信通道的定义基于ID而不是IP+端口,这使得切换网络后继续转发连接成为可能,在IP地址和端口变化的情况下(比如从Wi-Fi切换到流量),可以无需重新建立连接,继续通信。对移动设备的用户体验较为友好。

    6. 启用实验性QUIC协议

    Google新版的Chrome浏览器中,支持QUIC协议,在 Chrome 浏览器中打开实验性功能页面(chrome://flags/),启用实验性 QUIC 协议经由实验性 QUIC 协议发出的 HTTPS 请求,重启浏览器后可以正常登陆 Google 相关服务(DNS污染的除外)。对于被DNS污染的Google服务,还需要设置HostsIP,然后通过HTTPS才能访问。

     基于UDP的新一代多路传输协议—QUIC(二) - rayliwong - rayliwong的博客

    刚开始这样做的时候可以绕过墙,但现在我对Chrome进行设置时,发现已经不能绕过墙了。查了一些资料,有人说有可以是当时墙方的人员还没有抓利用此协议越狱的解决方案的数据包。

    7.  QUIC优点

    ?  拥有SPDY的所有优点(多路传输,支持优先级,等等)

    ?  零往返时间连接

    ?  数据包同步,有效降低数据丢包率

    ?  向前纠错

    ?  自适应拥塞控制(对TCP友好),有效减少移动客户端重新连接的次数与TLS等效的加密措施

    ?  Chrome支持与GoogleQUIC通信

    7 QUIC不足

    ?  QUIC需要在包头打入flowid,这个特性会使很多场景无法使用QUIC

    ?  为了对抗DDos,一般防火墙都严格过滤UDP

    谷歌表示,TCP的支持往往是直接内置到操作系统内核,谷歌没有任何控制权,QUIC可以让谷歌来测试和试验新的想法,谷歌希望如果QUIC被证明有效,那么其功能将很快会迁移到TCPTLS。谷歌还表示,它计划向IETF提交基于QUICHTTP2作为未来一个新的互联网标准。

     
    展开全文
  • stm32之adc多路采集+dma传输

    千次阅读 多人点赞 2020-08-05 17:14:58
    模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。 ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。对于小容量、中容量和大容量产品. ADC主要特征:   ● 12位分辨率 ● 转换结束、注入...

    STM32 ADC简介
      12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。 ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。对于小容量、中容量和大容量产品.
    ADC主要特征:
      ● 12位分辨率 ● 转换结束、注入转换结束和发生模拟看门狗事件时产生中断
      ● 单次和连续转换模式
      ● 从通道0到通道n的自动扫描模式
      ● 自校准
      ● 带内嵌数据一致性的数据对齐
      ● 采样间隔可以按通道分别编程
      ● 规则转换和注入转换均有外部触发选项
      ● 间断模式
      ● 双重模式(带2个或以上ADC的器件)
      ● ADC转换时间: ─ STM32F103xx增强型产品:时钟为56MHz时为1μs(时钟为72MHz为1.17μs) ─ STM32F101xx基本型产品:时钟为28MHz时为1μs(时钟为36MHz为1.55μs) ─ STM32F102xxUSB型产品:时钟为48MHz时为1.2μs ─ STM32F105xx和STM32F107xx产品:时钟为56MHz时为1μs(时钟为72MHz为1.17μs)
      ● ADC供电要求:2.4V到3.6V
      ● ADC输入范围:VREF- ≤ VIN ≤ VREF+
      ● 规则通道转换期间有DMA请求产生。

    DMA简介:
      直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。 两个DMA控制器有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权。

    以上为adc和dma的基本知识,具体细节如何配置?我们在分析代码的时候详解。

    本例程代码:使用ADC1多通道循环连续采集,并通过dma传输数据。 实测有效。
    本文用到的宏定义:

    #define    ADC1_DR_Address ((u32)0x40012400+0x4c)
    
    #define    N    31                             //采样次数
    #define    M    2                              //采样通道个数
    vu16       ADC_ConvertedValue[N][M];           //采集数据的存储地址
    

    1:使能adc和dma的时钟

        //CONFIG DMA1 AND ADC1   CLOCK
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);							//DMA1挂载到AHP总线上
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
    

    查看手册上的时钟树可知:
    在这里插入图片描述
    2:配置DMA参数

        //配置DMA的参数
        DMA_DeInit(DMA1_Channel1);  								//复位
        DMA_InitStructure.DMA_PeripheralBaseAddr=ADC1_DR_Address;	//外设地址,这里就是adc1的地址
        DMA_InitStructure.DMA_MemoryBaseAddr=(u32)&ADC_ConvertedValue;//存储器地址
        DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC;//传输方向,外设-->内存
    
        DMA_InitStructure.DMA_BufferSize=M*N;	//存储数据大小
        DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Disable;	//外设地址不增量
        DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Enable;	//内存地址增量
    
        DMA_InitStructure.DMA_PeripheralDataSize=DMA_PeripheralDataSize_HalfWord;   //外设数据宽度,半字16位
        DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord; //外设与内存数据宽度应为一样
        DMA_InitStructure.DMA_Mode=DMA_Mode_Circular;//DMA传输模式为循环传输
    
        DMA_InitStructure.DMA_Priority=DMA_Priority_High;	//通道优先级为高
        DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;	//关闭从存储器到存储器模式
        DMA_Init(DMA1_Channel1,&DMA_InitStructure);	
    

      第一个参数 DMA_PeripheralBaseAddr 用来设置 DMA 传输的外设基地址
      第二个参数DMA_MemoryBaseAddr 为内存基地址,也就是我们存放DMA传输数据的内存地址,为自定义的存储buf。
       第三个参数 DMA_DIR 设置数据传输方向,决定是从外设读取数据到内存还送从内存读取数据发送到外设,也就是外设是源地还是目的地。
      第四个参数 DMA_BufferSize 设置一次传输数据量的大小,可以理解成buf的大小
      第五个参数 DMA_PeripheralInc 设置传输数据的时候外设地址是不变还是递增。我们这里设置成不变,都是从adc中搬运。
      第六个参数 DMA_MemoryInc 设置传输数据时候内存地址是否递增。这个参数和DMA_PeripheralInc 意思接近,只不过针对的是内存。
      第七个参数 DMA_PeripheralDataSize 用来设置外设的数据长度是为字节传输(8bits),半字传输 (16bits) 还是字传输 (32bits) ,
      第八个参数 DMA_MemoryDataSize 是用来设置内存的数据长度,外设与内存数据宽度应为一样
      第九个参数 DMA_Mode 用来设置 DMA 模式是否循环采集,DMA传输模式为循环传输,因为adc配置的是连续循环模式,所以dma也得是循环模式。
      第十个参数是设置 DMA 通道的优先级,有低,中,高,超高三种模式,这个在前面讲解过,这里我们设置优先级别为中级,所以值为 DMA_Priority_Medium。如果要开启多个通道,那么这个值就非常有意义,由于我们这里只使用一个通道,优先级就不关心了,随便设置一个即可。
      第十一个参数 DMA_M2M 设置是否是存储器到存储器模式传输,这里我们选择DMA_M2M_Disable。

    常见问题:
      为什么是 DMA1_Channel1 看下图既可知,dma1使用通道1用于搬运adc1的采集数据。
    在这里插入图片描述
    宏定义:#define ADC1_DR_Address ((u32)0x40012400+0x4c) 很多人不理解 ,为什么是这个地址?查看参考手册可知:adc1的基地址为0x40012400, 数据寄存器偏移0x4c。
    在这里插入图片描述
    在这里插入图片描述
    3:配置adc参数

        ADC_DeInit(ADC1);
        ADC_InitStructure.ADC_Mode=ADC_Mode_Independent; 			//配置成独立工作模
        ADC_InitStructure.ADC_ScanConvMode=ENABLE;      			//多通道循环扫描
        ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;  			//使能自动连续转换
    
        ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//转换由软件触发启动
        ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;		//数据选择右对其
        ADC_InitStructure.ADC_NbrOfChannel=	M;						//转换通道数目
        ADC_Init(ADC1,&ADC_InitStructure);							//初始化adc
      
    

      第一个参数 ADC_Mode 故名是以是用来设置 ADC 的模式。ADC 的模式非常多,包括独立模式,注入同步模式等等,这里我们选择独立模式,所以参数为 ADC_Mode_Independent。
      第二个参数 ADC_ScanConvMode 用来设置是否开启扫描模式,因为是多通道采集,采集完一个通道后自动转换到下一个通道采集。
      第三个参数 ADC_ContinuousConvMode 用来设置是否开启连续转换模式,说的简单点就是是否开启循环模式,采完最后一个通道后自动又从第一个通道开始采集。
      第四个参数 ADC_ExternalTrigConv 是用来设置启动规则转换组转换的外部事件,这里我们选择软件触发,选择值为 ADC_ExternalTrigConv_None 即可。
      第五个参数 DataAlign 用来设置 ADC 数据对齐方式是左对齐还是右对齐,这里我们选择右对齐方式ADC_DataAlign_Right。 因为adc是12位的,所以有效数据最大只有12位,这时候就需要查看对齐方式,避免处理数据时出错。
      第六个参数 ADC_NbrOfChannel 用来设置规则序列的长度,就是你使能了几个采集通道就写几个。我这里M是宏定义2个.

        RCC_ADCCLKConfig(RCC_PCLK2_Div6);     	//配置adc的时钟72/8
        //配置adc通道转换顺序和采样周期,(55.5+12.5)/12M=5.6us
        ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5); //PA0
        ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 2, ADC_SampleTime_55Cycles5); //PA1
        
        ADC_DMACmd(ADC1, ENABLE);								//adc传输选用dma1工作模式,
        ADC_Cmd(ADC1,ENABLE);									//使能ADC1
      
        //复位校准寄存器
        ADC_ResetCalibration(ADC1);
        //等待校准寄存器复位完成
        while(ADC_GetResetCalibrationStatus(ADC1));			//ADC校准
        ADC_StartCalibration(ADC1);							// 等待校准完成
        while(ADC_GetCalibrationStatus(ADC1));
         DMA_Cmd(DMA1_Channel1,ENABLE);	 					//使能DMA																				// 由于没有采用外部触发,所以使用软件触发ADC转换
        ADC_SoftwareStartConvCmd(ADC1, ENABLE);
    

      前面我们只是打开挂载adc1 的总线时钟,这里需要设置adc的输入时钟。分频因子要确保 ADC1 的时钟(ADCCLK)不要超过 14Mhz。 这个我们设置分频因子位 6,时钟为 72/6=12MHz,原则上不超过14Mhz即可。
      ADC_RegularChannelConfig()这个函数是用于设置采样顺序和采样周期的。对于关于adc的采样时钟,采样率,采样周期,很多人不是很清楚,迷糊。我会再新开一片文章来详细讲解和计算,这里不赘述。
      ADC_DMACmd(ADC1, ENABLE);使能adc使用dma传输的功能,不能忘了,否则你前面配置正确,你不打开这个开关也是白忙活一场。
      adc的校准,这个是必须的,否则有可能会导致数据不准确。
       软件使能,因为我们在前面设置了软件触发

    至此,配置结束,项目模块,功能实测有效。
    链接:https://pan.baidu.com/s/1TQDHcMGNiF3wqFWBGBhUVg
    提取码:ml4p

    展开全文
  • 计算机网络运输层之多路复用与多路分解

    万次阅读 多人点赞 2014-03-21 00:13:10
    一、什么是多路复用和多路分解 我们知道,在网络上主机与主机之间的通信,实质上是主机上运行的应用进程之间的通信。例如,当你通过Http上网浏览网页时,实质上是你所访问的主机的服务器进程与你本机的浏览器进程在...
    一、什么是多路复用和多路分解
    我们知道,在网络上主机与主机之间的通信,实质上是主机上运行的应用进程之间的通信。例如,当你通过Http上网浏览网页时,实质上是你所访问的主机的服务器进程与你本机的浏览器进程在进行通信。试想一下,当你在上网的同时,还挂着QQ,还使用ftp下载大文件,这时就有三个网络上的进程与你的主机上的三个进程进行通信,那么系统是怎么样正确地把接收到的数据定位到指定的进程中的呢?也就是说,系统是怎么把从ftp服务器发送过来的数据交付到ftp客户端,而不把这些数据交付到你的QQ上的呢?反过来考虑,系统又是如何精确地把来自各个应用进程的数据发到网络上指定上的主机(服务器)上的对应进程的呢?这就是多路分解与多路复用的作用了。

    为了说明这个问题,先来补充一下操作系统方面的知识,以Linux对文件和设备的管理和使用方式为例。

    为了方便资源的使用,提高机器的性能、利用率和稳定性等等原因,我们的计算机都有一层软件叫做操作系统,它用于帮我们管理计算机可以使用的资源,当我们的程序要使用一个资源的时候,可以向操作系统申请,再由操作系统为我们的程序分配和管理资源。通常当我们要访问一个内核设备或文件时,程序可以调用系统函数,系统就会为我们打开设备或文件,然后返回一个文件描述符fd(或称为ID,是一个整数),我们要访问该设备或文件,只能通过该文件描述符。可以认为该编号对应着打开的文件或设备。

    而当我们的程序要使用网络时,要使用到对应的操作系统内核的操作和网卡设备,所以我们可以向操作系统申请,然后系统会为我们创建一个套接字Socket,并返回这个Socket的ID,以后我们的程序要使用网络资源,只要向这个Socket的编号ID操作即可。而我们的每一个网络通信的进程至少对应着一个Socket。向Socket的ID中写数据,相当于向网络发送数据,向Socket中读数据,相当于接收数据。而且这些套接字都有唯一标识符——端口号。

    有了上面的了解后,再来说说什么是多路分解和多路复用

    每个运输层的报文段中设置了几个字段,包括源端口号和目的端口号等。多路分解就是,在接收端,运输层检查这些字段并标识出接收套接字,然后将该报文定向到该套接字。其工作方式可以简单地认为是这样的,主机上的每个每个套接字被分配一个端口号,当报文到达主机时,运输层检查报文段中的目的端口号,并将其定向到相应的套接字。

    多路复用就是从源主机的不同套接字中收集数据块,并为每个数据块封装上首部信息从而生成报文段,然后将报文段传递到网络层中去。

    二、无连接的多路复用和多路分解
    在运输层,无连接的网络传输是通过UDP来实现的。UDP报文中只有源端口号和目的端口号,一个UDP套接字是由一个含有目的IP地址和目的端口号的二元组来全面标识的。在客户端,源端口号是客户进程套接字的端口号,目的端口号是服务器的端口号。而在服务器端,源端口号是服务器的创建的套接字的端口号,而目的端口号是客户端的套接字的端口号。

    例如主机A产生了一个UDP报文段,报文段中就会包括源端口号(11111)、目的端口号(22222)、程序数据(还有两个其他的值,在这里我们不关心)。然后,运输层将生成的报文段交给网络层。网络层将其放到一个IP数据报中,并提供尽力而为的交付,将其发送到主机B中。如果该报文到达主机B,主机B运输层就会检查该报文的端口号,并将该报文段传递给套接字的端口号为接收到的报文段的目的端口号(22222)的套接字。从而实现了进程间的网络通信。而源端口号的作用是为了让主机B能向主机A发送信息的,也就是说,当主机B在接收到主机A的数据后,要向主机A发送一个回应时,主机B发送的报文段的目的端口号就是11111.

    注意:我们看到使用UDP来传输报文段时,一个UDP套接字是由一个含有目的IP地址和目的端口号的二元组来全面标识的。因此,如果两个UDP报文段有不同的源IP地址和源端口,但具有相同的IP地址和目的端口号,那么这两个报文段将通过相同的目的端口号定向到相同的目的进程。这里没有过多地说明IP地址,是因为IP地址是网络层的知识,所以没有提及,我们现在只须知道,IP地址对应着一台主机,而端口号对应着一台主机上的一个进程(或套接字)。

    三、面向连接的多路复用和多路分解
    从上面的解说中,我们可以知道,网络上主机间的进程间通信,实质上是通过套接字来实现的。在运输层中面向连接的网络传输多使用TCP,而TCP套接字和UDP套接字之间有一个细微的差别,就是,TCP套接字是由一个四元组(源IP地址、源端口号,目的IP地址,目的端口号)来标识的。这样,当一个TCP报文段从网络到达一台主机时,主机会使用全部4个值来将报文段定向,即多路分解到相应的套接字。

    与UDP不同的是,两个具有不同源IP或源端口号的到达的TCP报文段将被重定向到两个不同的套接字。

    尽管如此,而TCP的多路利用和多路分解的工作原理与无连接的UDP的多路复用和多路分解的原理还是大致一样的。

    想想为什么TCP的多路复用和多路分解要这样设计呢?个人认为,这是因为TCP和UDP对待接收到的数据的处理方式不同所致的。我们以服务器上的TCP套接字和UDP套接字为例,假定服务器接收客户端的数据,并把数据发送回客户端。

    当一个UDP服务器接收到一个UDP报文段时,它会根据收到的UDP报文段的源IP和源端口号,把数据发送回客户端,它并不需要创建一个新的套接字来处理该报文段;

    而对于一个TCP服务器,当它接受一个连接时,它会产生一个新的套接字,然后通过新的套接字来与客户端通信,也就是通过新的套接字来把数据发送回给客户端。由于每一个连接都会产生一个新的套接字,所以具有不同的源IP或源端口号的连接就是一个不同的连接,对应着产生的新的不同的套接字。

    试想一下,如果TCP套接字也是使用像UDP那样的只用源端口号和目的端口号来完全标识一个套接字,那么当客户机A有一个Http连接时,该TCP报文的目的端口号为80,目的IP地址为TCP服务的IP地址。TCP服务器产生一个新的套接字来处理该请求,此时,客户机B又有一个Http连接,TCP报文的目的端口号也为80,目的IP地址也为TCP服务的IP地址。而TCP套接字也是使用像UDP那样,两个具有不同的源Ip或源端口号但具有相同目的IP和目的端口的报文段定位到同一个套接字中,那么这个客户机B的TCP报文段则会多路分解到客户机A的套接字上,而该套接字并不应该被客户机B的Http连接使用。

    PS:如果对于这个解说不太明白,可以看看本人写的一个用TCP和UDP进行通信的小例子,

    展开全文
  • 多路复用和多路分用

    千次阅读 2017-10-13 22:20:54
    1 多路复用/分用如果某层的一个协议对应直接上层的多个协议/实体,则需要复用/分用。2 分用如何工作? 主机接收到IP数据报(datagram) 每个数据报携带源IP地址、目的IP地址。 每个数据报携带一个传输层的段(Segment ...
  • 常用多媒体传输协议简介

    千次阅读 2019-03-08 16:39:20
    实时消息传递协议(RTMP)最初是由Macromedia开发的专有协议,用于通过因特网在Flash播放器和服务器之间传输音频,视频和数据。Macromedia现在归Adobe所有,该公司已发布该协议规范的不完整版本供公众使用。 RTMP...
  • 多路复用技术

    千次阅读 2018-11-28 12:59:27
    多路复用就是把多个低速信道组合成一个高速信道的技术,这个技术当中要用到两个设备。多路复用器:在发送端根据某种规则把多个低带宽的信号复合成一个高带宽的信号。多路分配器:在接收端根据同一规则将高带宽的信号...
  • 关键技术2:新型天线传输    天线技术经历了从无源到有源,从二维(2D)到三维(3D),从高阶MIMO到大规模阵列的发展,将有望实现频谱效率提升数十倍甚至更高,是目前5G技术重要的研究方向之一。由于引入了...
  • 传输层总结

    千次阅读 2018-06-08 16:05:25
    所有应用进程的数据通过传输传输到IP层,即多路复用; 传输层收到的数据交付给相应的应用进程,即多路分解。 端口 1.熟知(系统)端口号(0~1023) 2.登记端口号(1024~49151):供服务提供商使用,需要在IANA...
  • 尽管如此,而TCP的多路利用和多路分解的工作原理与无连接的UDP的多路复用和多路分解的原理还是大致一样的。 想想为什么 TCP的多路复用和多路分解要这样设计呢? 个人认为,这是因为TCP和UDP对待接收到的数据的处理...
  • 多路RTSP播放器直播与点播技术实现

    千次阅读 2013-11-24 17:13:01
    多路RTSP播放器直播与点播技术实现 多路RTSP高清视频播放器下载地址:http://download.csdn.net/detail/u011352914/6604437 多路RTSP播放器源码下载地址:...
  • IO多路复用—由Redis的IO多路复用yinch

    万次阅读 多人点赞 2018-04-23 16:56:40
    linux IO多路复用有epoll, poll, select,epoll性能比其他几者要好。 名词比较绕口,理解涵义就好。一个epoll场景:一个酒吧服务员(一个线程),前面趴了一群醉汉,突然一个吼一声“倒酒”(事件),你小跑过去...
  • 定义 在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧在信道上的“透明”传输。 1)封装成帧  在一段数据的前后分别添加首部和尾部,确定帧的界限,进行帧定界 正常情况...
  • CDM(码分多路复用技术)总结

    万次阅读 多人点赞 2016-09-29 21:29:43
    码分多路复用是一种数学上的规律运用在数据链路层。当想起CDM时,脑海中应该想起的是一个坐标系,简单的是二维平面直角坐标系,再复杂些是三维的空间直角坐标系。更高维的就难想象了。But, try it.为什么想到坐标系...
  • 网络技术原理之多路复用技术

    千次阅读 2018-12-10 23:21:43
    时分多路复用(TDM) 信号分割的参量是信号占用的时间,故要使复用的各路信号在时间上互不重叠,在传输时把时间分成小的时隙,每一时隙由复用的一个信号占用。 频分多路复用(FDM) 首先,传输媒体的可用带宽被划分...
  • 一文读懂I/O多路复用技术

    万次阅读 多人点赞 2017-11-21 12:54:24
    I/O多路复用,I/O就是指的我们网络I/O,多路指多个TCP连接(或多个Channel),复用指复用一个或少量线程。串起来理解就是很多个网络I/O复用一个或少量的线程来处理这些连接。 现在大部分讲述I/O多路复用的文章用到的...
  • 平衡传输和不平衡传输

    千次阅读 2013-01-30 14:58:03
    当有共模干扰存在时,由于平衡传输的两个端子上受到的干扰信号数值相差不,而极性相反,干扰信号在平衡传输的负载上可以互相抵消,所以平衡电路具有较好的抗干扰能力。 为什么采用差分信号技术来传输各种信号?...
  • 模拟传输与数字传输[查看定义] 1.模拟传输系统 背景 尽管模拟传输劣于数字传输传输过程中,模拟传输容易受干扰,信号易衰减,安全性也不高),但由于采用模拟传输技术的电话网在计算机网络出现以前就已运行了近一...
  • 数据链层: 可靠性传输 六个协议

    万次阅读 2018-05-03 19:13:02
    可靠性传输 1. 差错控制 发送方将数据帧发送, 但是当发送方发送的是一个 1的时候此时接受方却接受的是一个 0. (1)校验 接收方如果帧校验接受到的帧没有问题, 则对发送方发送一个肯定性的确认, 当对这个数据...
  • 一个串口同时传输多个数据

    万次阅读 2016-05-02 16:29:12
    程序目标:实验中在调试程序时,需要在只用到一个串口的条件下,用... 2,定义一个字符串USART_RX_BUF[]接收收据,然后在该字符串中查找相应的分隔符并得到它们在字符串中的位 置,最后根据这些位置从字符串中提取
  • 啊哈,多路访问协议?

    千次阅读 多人点赞 2020-06-14 01:32:55
    多路访问链路和协议 1. 信道划分协议 2. 随机接入协议 3. 轮流协议
  • 多路访问控制(MAC)协议

    万次阅读 2017-11-05 20:06:28
    1 多路访问控制(MAC)协议1.1 两类“链路” 点对点链路 拨号接入的PPP 以太网交换机与主机间的点对点链路 广播链路 (共享介质)早期的总线以太网 HFC的上行链路 802.11无线局域网 单一共享广播信道两个或者两个以上...
  • CAN总线传输协议

    万次阅读 多人点赞 2019-06-29 22:12:57
    一、控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线、同轴电缆或光纤来传输信号,因其高性能、高可靠性和高实时性等特点,已经成为了世界上应用最广泛的...
  • CSMA/CA(多路访问/冲突避免)

    千次阅读 2012-02-13 17:14:17
    1.原理: (1)检测到介质空闲后,发送请求帧RTS,表明需要占用介质的时间 (2)目标收到RTS后,若空闲,向所有站点发送“准备发送帧”,表明将被占用 (3)发送方接收数据,目标...定义帧的类型和其它控制信息 (2
  • KCP传输原理

    万次阅读 2019-05-23 17:53:42
    KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,...
  • 集成多路模拟开关的应用技巧

    万次阅读 2016-05-18 16:32:48
    集成多路模拟开关(以下简称多路开关)是自动数据采集、程控增益放大等重要技术领域的常用器件,其实际使用性能的优劣对系统的严谨和可靠性重要影响。 关于多路开关的应用技术,些文献上介绍有两点不足:一是对器件...
  • 异步传输与同步传输

    千次阅读 2016-01-23 22:06:13
    这时,增加的比特位使传输的比特总数增加2.5%,这与异步传输中25 %的增值要小得。随着数据帧中实际数据比特位的增加,开销比特所占的百分比将相应地减少。但是,数据比特位越长,缓存数据所需要的缓冲区也越大,这...
  • 在OSPF中,每个广播多路访问网络都必须选出一个DR和一个BDR。 非广播多路访问(NBMA): 非广播多路网络是那些诸如帧中继、X。25和异步传输模式(ATM)等类型的网络。这此网络允许多路访问,但不具备以太网那样的...
  • 流媒体及流媒体传输协议简介

    千次阅读 多人点赞 2019-06-01 22:26:10
    流媒体(streaming media):是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个...
  • Socket编程一实现简易的聊天功能以及文件传输

    万次阅读 多人点赞 2017-02-21 21:26:11
    干程序是一件枯燥重复的事,每当感到内心浮躁的时候,我就会找小说来看。...看看今天实现的功能效果图:可以这里使用台手机进行通讯,【凤歌】我采用的服务器发送消息。是不是只有发送消息,有些显得太单调

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,092
精华内容 40,036
关键字:

多路传输定义