51学通信技术论坛

 找回密码
 立即注册
搜索
查看: 14450|回复: 2
打印 上一主题 下一主题

SNDCP协议介绍     [复制链接]

Rank: 2Rank: 2

楼主
发表于 2012-7-10 11:01:31 |显示全部楼层
对于非确认模式的N-PDU是否重发的问题,我来说两句,首先,如果不同业务的话,pdp不同,nsapi不同,所以这是可以区分的。如果对于同一个pdp的话,如果QoS等级不同,则可以根据sapi来区分。如果是同一个pdp且Qos等级相同,那肯定就是同一个业务,所以也没问题

使用道具 举报

Rank: 2Rank: 2

沙发
发表于 2012-7-10 11:49:22 |显示全部楼层
不好意思,没仔细看上面的讨论,另外我自己的回复也错了,重新翻了一下44.065. 非确认的每个都需要N-PDU number,还是因为你这个例子,需要区分,我上面输错了。对于确认数据不需要除了第一个分段不需要N-PDU number,因为llc层保证了向上投递的数据块都是顺序的。拿这个例子来说,如果是非确认数据的话,就根据n-pdu number和segment number可以区分出来。如果是确认数据。手机llc收到1和4之后,因为是确认数据,此时llc不会立刻给sndcp,llc再等到2,3,5,6全部收齐之后,才按顺序的将1,2,3,4,5,6送到sndcp。则sndcp可以根据F bit以及M bit以及第一个分段里的N-PDU num将sn-pdu重组成N-PDU投递上去。
sndcp与Qos关系不大,主要是用来区分不同的sapi,sapi的选择在sm层完成。sndcp可以根据reliabilityClass来确定llc和rlc是采用确认模式还是非确认模式进行传输,以及llc的保护模式以及非保护模式。其他就没什么用处了。

使用道具 举报

Rank: 2Rank: 2

板凳
发表于 2012-7-10 12:23:19 |显示全部楼层
接上面的回复,llc如何保证确认数据按顺序投递。对于确认数据,llc本地保存了变量V(S),V(R),V(A).  比如上述中sndcp分成了三个分段1,2,3. llc发送一个分段V(S)值加1,则三个分段发送完毕之后V(S)=3. V(R)表示接收到一个I帧,值加1。 这里只考虑发送I帧,则V(S)等于3,V(R)=0。V(A)表示需要peer的ack。即llc发了3个I帧之后,在I帧里面的A bit位设置为1,并启动T201定时器,peer收到带A为的I frame之后,需要给发送端发ack,此时为S帧。此时peer的llc也维护三个本地变量V(S),V(R),V(A),正好相反,peer的V(S)=0,V(A)=0.V(R)的值就表示发送端发送了几个llc帧,若正常发送,peer的V(R)=3,则peer发送RR帧(S帧的一种),发送端接到RR帧之后,表示peer正常接收。而peer顺序收到之后,就往sndcp发送。  

异常情况下,peer收到了1。而2,3没有收到,又收到了4.则llc在队列里面给2,3预留了两个位置,直到2,3全部收到之后再往sndcp投递。若2,3没有收到,并且发送端要求会ACK(I frame的Abit为1),则peer就根据V(R)与接收到的I frame的N(S)做比较,此刻发送SACK帧,SACK的bitmap里面会告诉发送端哪些frame丢失,发送端再重传,直到peer端正常接收到1,2,3,4,5,6

点评

爱卫生  非常感谢!介绍得很详细,学习了!  发表于 2012-7-13 21:18:38

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

站长邮箱|Archiver|51学通信 ( 粤ICP备11025688 )

GMT+8, 2024-5-20 19:11 , Processed in 0.092594 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部