对于end mark丢失问题,实际end mark 走的是s1-u 用户面接口,但是该通道是sgw与mme的s11接口以及mme与eNb s1口来维护的,cp面切换完成后,target对source的释放是有信令交互决定的,对于用户面没受到end mark的处理,通常sgw-cp面会作异常处理的,因此我的理解,如果sgw考虑周全的话,不去死等,及时通知target eNb的话,也许会导致一些丢包,或者短暂断流,但整个SAE up面是可以维护好的。 当然如果断流太久,对于tcp/ftp类数据因需要等ack,会导致up异常,这个是另一个问题
时间: 2013-4-27 17:07
作者: net666
当UE接入TeNB后(reconfiguration complete 或者 Reestablishment complete),TeNB 会向EPC发送 Handover Notify,这时EPC会向SeNB的正常数据GTP 隧道发送一个endMarker-------23.401协议里没有这样写啊!而且此时,TENB只建立了UE的上行承载和转发承载,下行承载还未建立,从PDN下来的数据流还是会下发到SENB啊 ,EPC此时怎么会向SENB发送ENDMARKER(此时下行数据转发途径是:PGW---S-SGW---SENB---S-SGW---T-SGW---TENB---UE)?
END MARKER是可以多个发送的,可以避免单个消息丢失造成的问题。你领导说的是对的,SENB不应该主动发endMarker。因为SENB不能决定数据流何时由转发承载切换到目标承载。对于上行数据,TENB早早为UE准备好了上行承载,UE一切换过来就可以直接发送上行数据流;对于下行数据流,是由PGW或SGW决定何时由转发承载切换到目标下行承载。
另外,还要搞清end marker的作用是干嘛的?由协议handover一节,我们可以知道它是用来帮助TENB对数据包排序的。“If the Serving GW does not change, the Serving GW shall send one or more "end marker" packets on the old path immediately after switching the path in order to assist the reordering function in the target eNodeB.”
所以我们可以看到,23.401协议中关于S1口HANDOVER的流程说明中,仅在SGW不变的情况下,提到了SGW会向老的路径发送END MARKER。因为对于SGW变化的场景,下发数据的转发承载(SGW-TENB这段)和新下行承载是不同的,TENB可以根据承载的不同将数据包区分开,不需END MARKER。只有在SGW不变的情况下,下发数据的转发承载和新下行承载是相同的,所以此时需要end marker进行区分。