IKEv2 如何在没有原始套接字的情况下在 Android 上工作
How does IKEv2 work on Android without raw sockets
我正在研究 IKEv2
StrongSwan Android 的客户端实现。我无法理解的是 Android
和 Java
不支持 原始套接字 ,而 IKEv2 / IPSec
在 Transport
层下工作,这似乎违反直觉。在 CHILD_SA
aka IPSec SA
建立后,通信究竟是如何发生的?
参考文献:
- IKE Charon keying daemon 的官方文档确实在架构图中提到了
socket
的使用,但我找不到任何进一步的参考。
- 我知道 StrongSwan 的 Android 客户端使用
libipsec
的用户 space 实现,但 libipsec
如何在没有原始套接字的情况下进行通信?
非常感谢任何帮助填补我理解上的空白的人!
客户端仅支持UDP封装的ESP。这些数据包 sent/received 通过已用于 IKEv2 的相同 UDP 套接字。 app's wiki 页面上提到了此限制。
我正在研究 IKEv2
StrongSwan Android 的客户端实现。我无法理解的是 Android
和 Java
不支持 原始套接字 ,而 IKEv2 / IPSec
在 Transport
层下工作,这似乎违反直觉。在 CHILD_SA
aka IPSec SA
建立后,通信究竟是如何发生的?
参考文献:
- IKE Charon keying daemon 的官方文档确实在架构图中提到了
socket
的使用,但我找不到任何进一步的参考。 - 我知道 StrongSwan 的 Android 客户端使用
libipsec
的用户 space 实现,但libipsec
如何在没有原始套接字的情况下进行通信?
非常感谢任何帮助填补我理解上的空白的人!
客户端仅支持UDP封装的ESP。这些数据包 sent/received 通过已用于 IKEv2 的相同 UDP 套接字。 app's wiki 页面上提到了此限制。