下行PDCP数据接收的时候,PDCP SDU解出后是先存放在PDCP的缓冲区中,那么什么时候开始向上层提交呢?在协议中没有看到明确定义向上层提交数据的触发条件,
这个在PDCP协议中没有明确写出,实际是这样的: 2. 在没有切换时(即普通工作模式下),PDCP是不用重排序的,因为无论是UM还是AM模式,RLC在向PDCP实体递交PDCP PDU时,已经保证是顺序的了(即在RLC中,已通过RLC Header中的SN进行过重排序) ; 3. 假设SGW作为锚点(即与UE相关的SGW不发生变化),在切换时(各无线承载相关联的PDCP实体都要进行重建立),如果无线承载的RLC实体是AM模式,那么在目的eNobeB中,与该无线承载相关的PDCP实体就需要完成重排序(以及重复检测和删除)了,原因如下: 源eNodeB在收到切换指令时,源eNodeB已经向UE发出了5个包1、2、3、4、5;如果UE只收到了1、2、4这三个包,那么UE只向eNobeB回复1和2的ACK(因为少了3,所以认为2、4是不连续的),但UE会将4也保存在PDCP的重排序缓存中; 然后源eNobeB会认为UE没有收到3、4、5,所以它会把重传缓存中相应的PDCP SDU 3、4、5 通过X2接口(连同一个结束标志),发给目的eNobeB,目的eNodeB会将3、4、5发给UE,然后看到结束标志后,开始发它自己从SGW收到的新的PDCP SDU,例如6、7、8、9、10。 这时,UE PDCP实体的重排序缓存中,PDCP SDU的顺序就是:1、2、4、3、4、5、6、7、8、9、10,所以要进行重排序,同时把重复的4检测出来,然后丢掉。 4. 由于在UM模式下,源eNobeB只将未处理的PDCP SDU转发给目的eNodeB,换句话说,那些已发出但尚未得到UE确认的PDCP SDU将不再像AM模式那样转发给目的eNodeB,所以对于UE来说,不会收到顺序颠倒和重复的PDCP SDU,因此也就不存在重排序和重复检测的问题。也就是说,在AM模式下,要保证进行切换后,PDCP SDU是无损的(代价是延迟比较大,适用于TCP业务,例如FTP等),而对于UM,则允许丢失一些SDU,当然延时会小,所以适用于UDP业务,例如VoIP等。 5. 对于上行方向eNodeB对PCDP SDU进行重排序的问题,原理与UE基本相同,当然也有一些区别,可以自己想一下。 |