在5G(SA)网络中语音业务VoNR(Voice Service)中,可以通过ROHC(Robust Header Compression)–鲁棒头压缩对语音数据包头进行压缩。ROHC有助于减少无线链路上语音数据包的头开销,也有助于降低BER,缩短延迟和减少无线资源 (RB) 消耗。在IPv4 和 IPv6 协议中都可以使用ROHC。
阅读资料
VONR终端支持Rohc
鲁棒标头压缩算法
VoNR with Robust Header Compression (ROHC)
4G/LTE - Header Compression
3GPP协议
大部分科技博主的文章都来自38.323协议关于Rohc和PDCP的描述
38.323协议5.7章——Robust header compression and decompression,描述了整一个开启/支持rohc的vonr通话过程。
Profile Identifier | Usage | Reference |
---|---|---|
0x0000 | No compression | RFC 4995 |
0x0001 | RTP/UDP/IP | RFC 3095, RFC 4815 |
0x0002 | UDP/IP | RFC 3095, RFC 4815 |
0x0003 | ESP/IP | RFC 3095, RFC 4815 |
0x0004 | IP | RFC 4996 |
0x0006 | TCP/IP | RFC 5225 |
0x0101 | RTP/UDP/IP | RFC 5225 |
0x0102 | UDP/IP | RFC 5225 |
0x0103 | ESP/IP | RFC 5225 |
0x0104 | IP | RFC 5225 |
38.323协议定义了如上表格中10种rohc功能选项,实际使用时,一般只有0x0000~0x0002这3种,大部分基站都不支持其余功能。
ROHC归属于RFC 3095系统数据管理,其中有四种不同类型配置文件:
- Profile 0 (ROHC 未压缩):压缩数据包,不能被以下任何配置文件压缩;
- Profile 1 (ROHC RTP):使用IP/UDP/RTP协议标头压缩数据包;
- Profile 2 (ROHC UDP):使用 IP/UDP 协议标头压缩数据包;
如何使用ROHC功能进行VONR通话
首先,UE接入后在ue capability information信令中,检查UE是否支持rohc功能,并不是每一个UE都支持。其次,基站必须也开启或支持rohc功能,否则即使UE支持rohc,也不会进行rohc通话。
这里参考一下两款不同的UE在支持rohc的基站上通话的信令流程
ue1支持rohc,ue2不支持rohc
ue capability information中,rohc在rrc-container—drb—pdcp里面,可以直接在wireshark过滤器里输入nr-rrc.profile0x0001~104就可以筛选出该IE。
- nr-rrc.profile0x0001==0过滤规则表示false,即UE不支持rohc
- nr-rrc.profile0x0001==1过滤规则表示false,即UE支持rohc
其余类似
ROHC通话中
在信令里,有专门的ie指示UE是否进行了rohc通话
nr-rrc.headerCompression过滤器,rohc表示进行了压缩,not used表示没有进行压缩。
左侧为支持rohc的ue进行rohc通话,在rrc container中,可以看到信令支持rohc且已经进行压缩。右侧为不支持rohc的ue,即使基站支持rohc,也没有进行压缩。