【发布时间】:2019-06-01 14:44:13
【问题描述】:
是否可以强制 SCTP 发送完全有序的所有数据?
让我们做这个实验:
1) 拿着这个SCTP-discard-server 和这个SCTP-client。
2) 让客户端多次数到100,每次分别发送一个字节给服务器。
for(long i=0; i< 1000000000; i++){
char temp = (char)(i%100) + 1;
usrsctp_sendv(
sock, (void *)&temp, 1,
NULL, 0, NULL, 0, SCTP_SENDV_NOINFO, 0
);
}
3) 让服务器以同样的方式计数,并将其数量与收到的数量进行比较。
printf("%d %d\n", (int)buffer[0], (int)(test));
if ((int)test != (int)buffer[0]) break;
几秒钟后:
66 66
67 67
68 68
69 69
51 70
瞧!
我在我的 Ubuntu 18.04 机器上使用 gcc7.3.0 使用 $ gcc discard_server.c -Wall -lusrsctp 编译了这个。是的,我已经尝试通过SCTP_NODELAY 禁用各种 nagel 算法。
我错过了什么?提前感谢您的任何提示。
【问题讨论】:
标签: c packet sctp partial-ordering