有没有人成功在Android上使用TCP Fast Open Option?
我在Android NDK C程序中使用此代码:
sfd = socket(AF_INET, SOCK_STREAM, 0);
sendto(sfd, data, data_len, MSG_FASTOPEN, (struct sockaddr *) &server_addr, addr_len);
建议http://lwn.net/Articles/508865/
它在Linux和Android上编译都很好。
它在Linux上运行完美,但在Android上调用sendto()程序时会退出。
我在Android 4. *和5.1(设备)上尝试过,甚至在Android 6(仅限现在的模拟器)上尝试过。
PS
我注意到在Android 4. *上/proc/sys/net/ipv4/
没有tcp_fastopen
文件,在Android 5.1上,该文件存在,但它包含0。
答案 0 :(得分:2)
TCP快速开放需要Linux内核3.7+。首先检查内核版本。
这是AOSP中内核版本的a sheet。请注意,它可能代表您设备上的真实内核版本。
如果支持,则需要使用echo 3 > /proc/sys/net/ipv4/tcp_fastopen
启用它。它需要root权限。