如何在Android中使用SCTP协议?

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

我需要对这个问题有所了解。 可能吗? 如何让android支持协议? 如何构建内核模块并正确插入? 如果我们能够成功地使系统支持它,我们如何使用该协议? android上的Java API是否支持SCTP?

#1楼 票数:8 已采纳

使用模块来实现它是正确的方法。 回答你的问题:

  • SCTP已作为Linux源代码树中的内核模块提供 - “CONFIG_IP_SCTP = m”将启用该模块。 你可以将它改为“y”到硬链接,虽然这可能是不可行的,因为你必须为此重建整个内核。

  • 该模块仍然必须按照内核版本构建。 所以基本上每个供应商,你需要获得他们的内核源代码(可行),然后针对它编译你的模块。

使用:在用户模式下 - 通过调用s = socket(AF_INET [6],SOCK_STREAM,IPPROTO_SCTP)创建套接字; 从那时起,套接字API工作完全相同,但有一些例外(即setsockopt,这是协议类型特有的)。

从Java - 事实上确实支持最新版本的协议(JDK7,作为里程碑3),但Java支持它并不意味着Dalvik(Android的“java vm”)。 虽然Android确实有“准备好”的SCTP支持,但它还没有在Dalvik(至少不是4.2)。 但是,您可以创建一个Java类,就像在包中一样,它将使用SCTP调用包装本机库。 由于.NET权限,它在Android中有点棘手,但仍然可以管理(来自经验)。

  ask by Meti translate from so

未解决问题?本站智能推荐:

3回复

各种Windows版本都支持哪种SCTP?

各种Windows版本都支持哪种SCTP ?
3回复

SCTP是否适合点对点应用程序?

我正在考虑用C编写的p2p应用程序使用SCTP而不是TCP。我应该这样做吗? 另外,SCTP的速度与TCP的速度相比如何? 编辑:我发现SCTP可以通过UDP进行隧道传输 ,唯一的问题是隧道化SCTP无法与未隧道化的SCTP互操作。
1回复

具有多宿主的SCTP作为TCP的替代品

SCTP具有本机多宿主支持,如果我理解正确,则如果主接口出现故障,它将自动通过辅助NIC重新路由您的数据包。 我编写了一个自定义路由守护程序,以在主NIC发生故障时修改路由表,从而使用TCP复制了此功能。 我想尝试改用SCTP 。 在第288页的Steven的Unix网络编程V1第三版
2回复

有关计算机网络中传输层协议实现的书籍

我正在尝试为我的项目实现传输层协议。 我将使用Linux作为操作系统。 您能否建议我一些解释传输层(例如TCP)实现的书或链接? 谢谢.. 谢谢,巴拉
1回复

关于linux中自定义第2层实现的说明

我有一些机器在同一个网络上运行。 一个节点是控制节点,它将流向它的流量分配给其他节点。 问题是我想在MAC头和输入到控制节点的IP(或其他)有效载荷之间有一个自定义协议头。 控制节点收到这样的任何数据包: 此数据包应该像这样分发给其他节点 我想要一些方向来做这样的事情,
1回复

并发 sctp 读取线程和非阻塞模式

从 sctp 套接字并发读取是线程安全的。 SCTP 堆栈可能使用一些同步原语(例如互斥锁)来实现它。 我的问题是(sctp)套接字是否处于非阻塞模式。 如果 sctp 代码无法立即获得锁定或仅在套接字缓冲区已满时才阻塞,则读取会返回。
1回复

Python2.6 SCTP通过sctp套接字发送和接收十六进制值

我正在尝试使用Python2.6和pysctp软件包进行sctp编程。 我能够从服务器捕获消息,但无法从sctp套接字提取接收到的消息的十六进制转储。 以及如何使用相同的套接字将我的responseHex作为响应发送到连接的服务器。 假设我的服务器独立于该客户端,并且它不断尝试与192
2回复

SCTP比TCP更好吗? (在交通情况下)

SCTP使用多个流发送单个文件,而TCP使用单个流发送单个文件。 现在的问题是 SCTP比TCP更好吗? ”( 在交通情况下 )