如何在Android中使用SCTP协议(protocol)?

我已经知道Android系统默认情况下不支持SCTP,但是可以通过插入SCTP内核模块或通过在模块配置中启用SCTP来重建内核来启用它。

我需要对这个问题有一些见识。是否可以?如何使android支持协议(protocol)?如何构建内核模块并正确插入?如果我们能够成功地使该系统支持该协议(protocol),那么我们如何使用该协议(protocol)? Android上的Java API是否支持SCTP?

最佳答案

用模块进行处理是正确的方法。要回答您的问题:

  • SCTP已作为Linux源树中的内核模块提供-“CONFIG_IP_SCTP = m”将启用该模块。而且您可以将其更改为“y”到硬链接(hard link),尽管这可能不可行,因为您必须为此重建整个内核。
  • 该模块仍必须按内核版本构建。因此,基本上每个供应商都需要获取其内核源(可行),然后针对该源编译模块。

  • 使用方法:在用户模式下-通过调用s = socket(AF_INET [6],SOCK_STREAM,IPPROTO_SCTP)创建套接字;从那时起,套接字API的工作原理完全相同,但有一些异常(exception)(即,setsockopt,这对于协议(protocol)类型而言是特殊的)。

    从Java开始-实际上确实支持最新版本的协议(protocol)(从里程碑3开始为JDK7),但是Java支持它并不意味着Dalvik(Android的“java vm”)可以支持。尽管Android确实已经“准备好”了SCTP支持,但Dalvik尚不支持(至少在4.2中还没有)。但是,您可以像包装中那样创建Java类,该类将使用SCTP调用包装 native 库。由于具有NET权限,因此在Android中有些棘手,但仍可根据经验进行管理。

    10-08 08:17