5G和LTE中的HARQ协议
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协议的更多相关文章
- Android 中多点触摸协议
http://blog.csdn.net/zuosifengli/article/details/7398661 Android 中多点触摸协议: 参考: http://www.kernel.org/ ...
- C# WCF学习笔记(二)终结点地址与WCF寻址(Endpoint Address and WCF Addressing) WCF中的传输协议
URI的全称是 Uniform Rosource Identifire(统一资源标识),它唯一标识一个确定的网绐资源,同时也表示资源所处的位置及访问的方式(资源访问所用的网络协议). 对于Endpoi ...
- 详解Objective-C中委托和协议
Objective-C委托和协议本没有任何关系,协议如前所述,就是起到C++中纯虚类的作用,对于“委托”则和协议没有关系,只是我们经常利用协议还实现委托的机制,其实不用协议也完全可以实现委托. AD: ...
- PHP中的http协议
PHP中的http协议 http协议基本组成 报文:用于Http协议交互的信息 请求行:包括请求的方法,URL和HTTP协议版本 状态行:包括响应结果的状态码,状态描述和Http版本 首部字段:包括请 ...
- springboot中通过cors协议解决跨域问题
1.对于前后端分离的项目来说,如果前端项目与后端项目部署在两个不同的域下,那么势必会引起跨域问题的出现. 针对跨域问题,我们可能第一个想到的解决方案就是jsonp,并且以前处理跨域问题我基本也是这么处 ...
- objective-C中的"非正式协议"和“正式协议”
objective-C中的接口与泛型 先承认我是标题党,因为在obj-c的世界中,官方根本没有"接口"与"泛型"这样的说法. 不过在obj-c中有二个与之接近的 ...
- LTE 中基于X2的切换
LTE 中基于X2的切换 (36.300, 23.401)SGW 保持不变 http://blog.sina.com.cn/s/blog_673b30dd0100j4pe.html 1:eNod ...
- Java中的UDP协议编程
一. UDP协议定义 UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层——传输层,处于IP协议的上一层.UDP有不提供数据报分组.组装和不能对数据包 ...
- Python中的端口协议之基于UDP协议的通信传输
UDP协议: 1.python中基于udp协议的客户端与服务端通信简单过程实现 2.udp协议的一些特点(与tcp协议的比较) 3.利用socketserver模块实现udp传输协议的并 ...
随机推荐
- Elasticsearch与Solr优缺点比较
Elasticsearch简介 Elasticsearch是一个实时的分布式搜索和分析引擎.它可以帮助你用前所未有的速度去处理大规模数据. 它可以用于全文搜索,结构化搜索以及分析,也可以将这三者进行组 ...
- docker swarm和compose 的使用(阿里)
基本的docker使用参考:Docker 入门 到部署Web 程序- (阿里面试常用的docker命令和优点) 昨天去阿里面试 问我如果给你5台服务器 如何部署docker,我说一个个拷贝,面试官听了 ...
- 线程:Java中wait、notify、notifyAll使用详解
基础知识 首先我们需要知道,这几个都是Object对象的方法.换言之,Java中所有的对象都有这些方法. public final native void notify(); public final ...
- 解决vue项目路由出现message: "Navigating to current location (XXX) is not allowed"的问题(点击多次跳转)
如果网页跳转用的方法传参去跳转: (点击多次链接会出现错误) <a class="" href="javascript:void(0);" @click= ...
- Windows curl开启注意事项
php.ini 开启curl扩展 设置有时候开启之后,curl还是不行:将php目录下的libssh2.dll复制到apache/bin下.(基本上可以成功) 如果没有开启成功,将php安装目录下 ...
- DateUtils.formate()函数的“bug”
写在前面 项目功能测试, 日期格式转换出现个诡异的问题, 转换后的时间总是和系统当前时间相差8小时, 问题是另一个项目和这个代码完全一样, DateUtils.java, 包括formatDate() ...
- wikiquote
發現了一個很好玩的網站wikiquote,上面有很多引用的句子 比如關於編程語言的說法 https://en.m.wikiquote.org/wiki/Category:Programming_lan ...
- x264 b_annexb格式和多slice
实际应用环境:iOS,Android x264_param_t中有下面两个参数值得注意下int i_threads; /* encode multiple frames in paral ...
- openvswitch2.11.0修改源码后重新编译(2)
一:前提 已经正常安装了SDN环境(mininet和openswitch2.11.0和Ryu) 使用前面教程安装环境SDN实验---使用git安装Mininet (一)测试ovs是否正常使用 1.ry ...
- CardUtil算出当前身份证持有者的性别和年龄
import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util ...