SNDCP协议的压缩功能主要包括协议压缩和数据压缩。 Gb 接口的信令压缩和数据压缩都是在SNDCP层实现的,目前的信令压缩仅限于TCP/IP 报头的压缩,采用RFC1144 算法,数据压缩采用 ITU-T V.42 bis算法,MS 和SGSN间的压缩算法和参数通过 LLC XID流程来协商,如果手机支持压缩的话,在PDP 上下文激活后,手机会发起XID command(包含SNDCP层的压缩算法和参数)进行压缩参数的协商,如果SGSN 已经开启了压缩特性,SGSN会对压缩参数进行协商,并用XID response(包含SNDCP层的压缩算法和参数)进行应答。见图1和图2。其中,SNDCP Version 默认为0,Algorithm type默认为0,对信令压缩,表示RFC1144算法,对数据压缩,表示V.42 bis算法。 图1 SNDCP XID Ind 图2 SNDCP XID Rsp 随后的SN-UNITDATA-PDU就被压缩,SN-UNITDATA-PDU报头中的DCOMP和PCOMP指示了具体的压缩标识(取值为1到15,为0标识没有压缩),见图3,注意该压缩标识只在N-PUD 分片后的第一个SN-UNITDATA-PDU中存在,后续的SN-UNITDATA-PDU 就没有这个标识了,见图4。 图3 经过压缩的SN-UNITDATA-PDU(N-PDU的第一个分片) 图4 经过压缩的SN-UNITDATA-PDU(N-PDU的第二个分片) |