4G-Lte 由不同层的协议栈组成。我已经了解该堆栈的图表。我没有得到的一件事是它们是协议还是只是一个层。如果它们是协议,我可以获得 C 中每个协议的开放源代码吗?
4 回答
我猜“层”是指您在 LTE 用户平面/控制平面协议栈中看到的 PDCP、RLC、MAC、NAS、RRC。是的,它们是 UE(用户设备)和 LTE 网络(eNB、MME 等)之间的协议,并且在 3GPP 中为每个协议定义了协议规范。例如,RRC 在 36.331 中定义,RLC 在 36.322 中定义。我认为对于一些更简单的协议,如 PDCP 或 RLC,您可以找到一些开源编码。但是,对于 RRC、NAS 或 MAC 等更复杂的协议,我还没有看到开源。
协议栈是一组协议层。设计使得它们是具有用于层/网络实体之间互通的协议的层。
寻找此类工具的挑战在于,LTE 标准的发展非常迅速,因此需要付出大量努力来使其与复杂层的变化保持一致。
简短的回答是您不会获得协议栈的 C 开源代码。有些公司向您出售 c 代码(以惊人的价格),但它们是从 SDL 图派生的,这些图源自通过 casetool 生成 C 代码的规范。
不过,有一些方法可以解决这个问题,通过转换规范中提到的 SDL 序列,并在 haskel 或 erlang 等函数式编程环境中按顺序设计实现它们。其实这就是网络设备制造商的做法。
实际上,LTE 是一个完整的系统(或堆栈)。它分为不同的功能,我们称之为层。层设计的方式我们称之为协议。协议映射到层。
所以。NAS、RRC、PDCP、RLC、MAC、PHY 既是层又是协议。正如 Alex Wang 所说,你可以在 3GPP 中找到协议规范。
你可以找到开源代码。但是质量不是很好。
作为参考:</p>