使用 Socat 实验 SCTP 传输层协议

2023-08-15 05:59:41 +08:00
 testcaoy7
SCTP ,132 号 IP 协议,是 TCP 、UDP 之外的另一选择
不幸的是,就跟 IPsec 这位难兄难弟一样,过不了 NAT
但不幸中的万幸,我的宽带给了公网 IPv6

于是乎:
1 、香港云服务器,运行 wg ,分配地址 100.127.255.1
2 、有 v6 公网接入的 Ubuntu 虚拟机一台,运行 wg ,分配地址 100.127.255.2
3 、Ubuntu 虚拟机的隧道对端设置为 127.0.0.1:8132

4 、在香港云服务器运行 socat:
socat sctp6-listen:8080,fork udp4-sendto:127.0.0.1:51820

5 、在 Ubuntu 虚拟机 yu 运行 socat
socat udp4-listen:8132,fork sctp6-connect:[<云服务器的 v6>]:8080

6 、ping 命令结果
PING 100.127.255.1 (100.127.255.1) 56(84) bytes of data.
64 bytes from 100.127.255.1: icmp_seq=1 ttl=64 time=141 ms
64 bytes from 100.127.255.1: icmp_seq=2 ttl=64 time=34.8 ms
64 bytes from 100.127.255.1: icmp_seq=3 ttl=64 time=34.8 ms

emm ,看来封装对延迟几乎没有影响

7 、iperf3 测速
iperf3 -c 100.127.255.1 -P 10 -R -O 2
[SUM] 0.00-10.04 sec 8.26 MBytes 6.90 Mbits/sec sender
[SUM] 0.00-10.00 sec 8.34 MBytes 6.99 Mbits/sec receiver

比较拉跨……
1766 次点击
所在节点    奇思妙想
8 条回复
molezznet
2023-08-15 08:54:01 +08:00
还行, 至少浏览网页速度很好应该
yaott2020
2023-08-15 09:12:45 +08:00
本质还是跑在 udp 上,没有意义啊
codehz
2023-08-15 09:30:10 +08:00
@yaott2020 sctp 是单独的,和 quic 自己整的那个没有关系
yaott2020
2023-08-15 09:36:37 +08:00
@codehz 你搞错我意思了,我的意思是它的 sctp 跑在 wireguard 上,本质是还是 udp
testcaoy7
2023-08-15 09:59:45 +08:00
@yaott2020 不是的,是 wireguard 的 udp 跑在 sctp 里面,本地机器的 wg 隧道对端是 127.0.0.1 ,因为是要在本地把 udp 交给 socat 封装成 sctp 的
yaott2020
2023-08-15 12:23:57 +08:00
哦哦是这样
march1993
2023-08-15 12:46:40 +08:00
sctp 等一票协议都会被 QoS 限速。。想速度快只能 tcp/443
codehz
2023-08-15 15:03:54 +08:00
仔细想 udp 会假设信道不可靠自动重传,而 sctp 是可靠协议,于是遇到 qos 丢包的时候,udp 协议的客户端触发重传,但 sctp 还是要把所有数据包发送过去,这样就平白无故增加延迟了
(和之前 udp over tcp 一样的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/965317

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX