LTE中有两种重传机制:MAC层的HARQ机制,以及RLC层的ARQ(只针对AM(aknowledgement mode确认模式)数据传输)机制。

HARQ:

HARQ(HybridAutomatic Repeat reQuest混合自动重传请求),是一种结合FEC(ForwardError Correction,前向纠错)与ARQ(Automatic RepeatreQuest)方法的技术。

FEC通过添加冗余信息,使得接收端能够纠正一部分错误,从而减少重传的次数。

对于FEC无法纠正的错误,接收端会通过ARQ机制请求发送端重发数据。接收端使用检错码,通常为CRC校验,来检测接收到的数据包是否出错。如果无错,则接收端会发送一个肯定的确认(ACK)给发送端,发送端收到ACK后,会接着发送下一个数据包。如果出错,则接收端会丢弃该数据包,并发送一个否定的确认(NACK)给发送端,发送端收到NACK后,会重发相同的数据。

前面介绍的ARQ机制采用丢弃数据包并请求重传的方式。虽然这些数据包无法被正确解码,但其中还是包含了有用的信息,如果丢弃了,这些有用的信息就丢失了。通过使用HARQ with softcombining(带软合并的HARQ),接收到的错误数据包会保存在一个HARQ buffer中,并与后续接收到的重传数据包进行合并,从而得到一个比单独解码更可靠的数据包(“软合并”的过程)。然后对合并后的数据包进行解码,如果还是失败,则重复“请求重传,再进行软合并”的过程。

根据重传的比特信息与原始传输是否相同,HARQ with softcombining分为chase combining和incrementalredundancy(增量冗余)两类。chase combining中重传的比特信息与原始传输相同;incremental redundancy 中重传的比特信息不需要与原始传输相同。LTE中只使用incremental redundancy机制。

只有DLSCH和ULSCH传输支持HARQ,其他信道不支持HARQ。

HARQ process:

HARQ使用stop-and-waitprotocol(停等协议)来发送数据。

在停等协议中,发送端发送一个TB后,就停下来等待确认信息。接收端会使用1比特的信息对该TB进行肯定(ACK)或否定(NACK)的确认。但是每次传输后发送端就停下来等待确认,会导致吞吐量很低。因此LTE使用多个并行的stop-and-wait process:当一个HARQprocess在等待确认信息时,发送端可以使用另一个HARQ process来继续发送数据。

这些HARQ process共同组成了一个HARQ实体(HARQ entity),这个实体结合了停等协议,同时允许数据的连续传输。

每个UE都有一个HARQ实体。但在载波聚合中,一个UE对应每个载波单元(Component Carrier)都有各自的HARQ实体。

每个HARQ process在一个TTI只处理一个TB(TransportBlock,传输块)。

每个HARQ process在接收端都需要有独立的HARQbuffer,以便对接收到的数据进行软合并。

在空分复用中,一个TTI会并行传输2个TB,此时每个TB有各自独立的HARQ确认信息,1个HARQ实体包含2个HARQprocess集合。

HARQ相关概念:

HARQ process number:也称为HARQprocess ID,唯一地指定一个HARQ process。

NDI:New Data Indicator的缩写。每个HARQprocess会保存一个NDI值,该值使用1比特来指示被调度的数据是新传还是重传。如果同一HARQ process的NDI值与之前相比发生了变化(NDItoggled),则表示当前传输是一个新的TB的初传,否则(NDI not toggled)表示当前传输是同一个TB的重传。

RV:Redundancy Version的缩写。用于指示传输所使用的冗余版本,其取值范围为0~3。

MCS:Modulation and CodingScheme的缩写。DCI使用5比特的MCSindex(0~31)来指示当前传输所使用的调制和编码样式,并影响到TBS的选择。MCS共计32种组合,其中3种组合(索引为29~31)是预留的,且这3种组合只用于重传。

同步/异步、自适应/非自适应

HARQ协议在时域上分为同步(synchronous)和异步(asynchronous)两类;在频域上分为自适应(adaptive)和非自适应(non-adaptive)两类。

异步HARQ(asynchronousHARQ)意味着重传可以发生在任一时刻,也意味着能以任意顺序使用HARQ process。同步HARQ(synchronousHARQ)意味着重传只能在前一次传输之后的固定时刻发送,也意味着某个特定的子帧,只能使用某个特定的HARQ process。

同步HARQ的好处在于HARQprocess号可以直接从系统帧号/子帧号中推导出来,而无需显式地发送HARQ process number;异步HARQ的好处在于重传调度更加灵活。

自适应HARQ(adaptiveHARQ)意味着可以改变重传所使用的PRB资源以及MCS。非自适应HARQ(non-adaptiveHARQ)意味着重传必须与前一次传输(新传或前一次重传)使用相同的PRB资源和MCS。

在LTE中,下行使用异步、自适应HARQ;上行使用同步HARQ,但重传可以是自适应的,也可以是非自适应的。

5G和LTE中的HARQ协议的更多相关文章

  1. Android 中多点触摸协议

    http://blog.csdn.net/zuosifengli/article/details/7398661 Android 中多点触摸协议: 参考: http://www.kernel.org/ ...

  2. C# WCF学习笔记(二)终结点地址与WCF寻址(Endpoint Address and WCF Addressing) WCF中的传输协议

    URI的全称是 Uniform Rosource Identifire(统一资源标识),它唯一标识一个确定的网绐资源,同时也表示资源所处的位置及访问的方式(资源访问所用的网络协议). 对于Endpoi ...

  3. 详解Objective-C中委托和协议

    Objective-C委托和协议本没有任何关系,协议如前所述,就是起到C++中纯虚类的作用,对于“委托”则和协议没有关系,只是我们经常利用协议还实现委托的机制,其实不用协议也完全可以实现委托. AD: ...

  4. PHP中的http协议

    PHP中的http协议 http协议基本组成 报文:用于Http协议交互的信息 请求行:包括请求的方法,URL和HTTP协议版本 状态行:包括响应结果的状态码,状态描述和Http版本 首部字段:包括请 ...

  5. springboot中通过cors协议解决跨域问题

    1.对于前后端分离的项目来说,如果前端项目与后端项目部署在两个不同的域下,那么势必会引起跨域问题的出现. 针对跨域问题,我们可能第一个想到的解决方案就是jsonp,并且以前处理跨域问题我基本也是这么处 ...

  6. objective-C中的"非正式协议"和“正式协议”

    objective-C中的接口与泛型 先承认我是标题党,因为在obj-c的世界中,官方根本没有"接口"与"泛型"这样的说法. 不过在obj-c中有二个与之接近的 ...

  7. LTE 中基于X2的切换

    LTE 中基于X2的切换 (36.300, 23.401)SGW  保持不变 http://blog.sina.com.cn/s/blog_673b30dd0100j4pe.html   1:eNod ...

  8. Java中的UDP协议编程

    一. UDP协议定义   UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层——传输层,处于IP协议的上一层.UDP有不提供数据报分组.组装和不能对数据包 ...

  9. Python中的端口协议之基于UDP协议的通信传输

    UDP协议: 1.python中基于udp协议的客户端与服务端通信简单过程实现 2.udp协议的一些特点(与tcp协议的比较)        3.利用socketserver模块实现udp传输协议的并 ...

随机推荐

  1. NULL与nullptr

    [https://blog.csdn.net/weixin_40237626/article/details/82560012] 其实啊,在编译器进行解释程序时,NULL会被直接解释成0,所以这里的参 ...

  2. 创建第一个react项目

    前提:已安装部署好nodejs环境 查看nodejs是否安装以及版本 1,win+r输入cmd打开命令行页面 2,路径换到nodejs目录 3,输入node -v查看版本 创建项目 1,win+r输入 ...

  3. Net core学习系列(十)——Net Core配置

    一.前言 选项(Options)模式是对配置(Configuration)的功能的延伸.在12章(ASP.NET Core中的配置二)Configuration中有介绍过该功能(绑定到实体类.绑定至对 ...

  4. Spring Boot通过Configuration配置多数据源

    本文结合SpringBoot + MyBatis + MySql进行多数据源配置,DataSource信息采用自定义dataSource.properties进行配置. 1.文件结构如下: 2.1 p ...

  5. 如何在 Apache Hive 中解析 Json 数组

    我们都知道,Hive 内部提供了大量的内置函数用于处理各种类型的需求,参见官方文档:Hive Operators and User-Defined Functions (UDFs).我们从这些内置的 ...

  6. 虚拟机ubuntu16下cheese打开摄像头黑屏问题

    在win7上安装了一个ubuntu1604的虚拟机: 在虚拟机下打开电脑上连接的摄像头时,用ubuntu16自带的cheese软件查看是黑屏: 但是cheese上有摄像头名字显示,就是打不开:如下图 ...

  7. Mini UI tree上万复杂节点加载缓慢处理设计

    最直接的方式是设置tree顶级不展开,可以解决一定效率. expandOnLoad Boolean/Number 加载后是否展开.比如:true展开所有节点:0展开第一级节点.以此类推. 1. 解决问 ...

  8. android ------ 高版本的 Tablayout 下划线宽度

    前面呢,有写过TabLayout的博客,最近开发用到了高本版遇到一些问题,来总结一下 Android--------TabLayout实现新闻客户端顶部导航栏 Android中Tablayout设置下 ...

  9. C#-DllImport 路径问题

    原文:C# DllImport 相对路径无法找到dll DllImport DLL查找顺序:1.应用程序所在目录2.Windows目录和Windows\System32目录3.环境变量目录 只需要你把 ...

  10. centos7.5环境下elasticserch5.6.15集群升级6.8.4

    节点的角色分片: node01 eus_mp_web01 : master,false node,false, ingest,true node02 eus_mp_es01 : master,true ...