[MPTCP小课堂 Sec.2] 在爆炸中了解MPTCP工作原理
简而言之:MPTCP就是在TCP的三次握手中加了料。
通过第一个TCP连接交换key建立初始连接,之后创建一个新的TCP连接作为额外通道附属在第一个连接之下。
假设现在有2条线路,电信和移动通过2条GRE隧道连接VPS,客户端是Clash,服务端是SS。
Clash填电信对端隧道IP作为SS服务端IP地址。
服务端参数:
ip mptcp endpoint add 电信隧道IP signal
ip mptcp endpoint add 移动隧道IP signal
ip mptcp limits set subflow 8 add_addr_accepted 8
客户端:
ip mptcp endpoint add 电信隧道IP fullmesh
ip mptcp endpoint add 移动隧道IP fullmesh
ip mptcp limits set subflow 8 add_addr_accepted 8
看似一切就绪,利用MPTCP能双向连接的特性配好了Server到Client的反向连接,感觉这样网络就永远不会断。
于是你打开Youtube,播放 Japan in 8K - Tokyo, 刚开始放就把电信给拔了,流量立刻切换到了移动线路,一切按照预料中进行。欣赏完东京的风景后准备换一个视频,这时点下网页毫无反应,再换了个视频依然没有反应,之后就显示您的网络已爆炸。
奇怪,我不是配好Server端反向连接了么?怎么没有把网给续下去呢?
此时,你的SS服务端仿佛在说:我册那娘のB,侬只戆哒哒の恁,糊哒哒の卵,侬看到过哪只SS服务器倒过来连Client?
此时,你的Clash仿佛在说:只戆卵就叫我连电信,我又不能自说自话连移动。tcp-concurrent 不用,OSPF+BFD也不用。你Server想连我Client做啥,我这里又没Youtube,连回来看《Bakamai谈治国理政》?
原来MPTCP的故障转移只针对单个TCP连接。打开一个新视频包括新的缩略图都要建立新的TCP连接,CDN服务器IP都和之前不一样。MPTCP的额外通道不可能附属到后续新的TCP连接上。反向连接则需要该程序对MPTCP特性额外进行开发,反向连接要由程序发起,而不是MPTCP本身发起。
那么爆炸解决方案待本章知识补充...
#mptcp
简而言之:MPTCP就是在TCP的三次握手中加了料。
通过第一个TCP连接交换key建立初始连接,之后创建一个新的TCP连接作为额外通道附属在第一个连接之下。
假设现在有2条线路,电信和移动通过2条GRE隧道连接VPS,客户端是Clash,服务端是SS。
Clash填电信对端隧道IP作为SS服务端IP地址。
服务端参数:
ip mptcp endpoint add 电信隧道IP signal
ip mptcp endpoint add 移动隧道IP signal
ip mptcp limits set subflow 8 add_addr_accepted 8
客户端:
ip mptcp endpoint add 电信隧道IP fullmesh
ip mptcp endpoint add 移动隧道IP fullmesh
ip mptcp limits set subflow 8 add_addr_accepted 8
看似一切就绪,利用MPTCP能双向连接的特性配好了Server到Client的反向连接,感觉这样网络就永远不会断。
于是你打开Youtube,播放 Japan in 8K - Tokyo, 刚开始放就把电信给拔了,流量立刻切换到了移动线路,一切按照预料中进行。欣赏完东京的风景后准备换一个视频,这时点下网页毫无反应,再换了个视频依然没有反应,之后就显示您的网络已爆炸。
奇怪,我不是配好Server端反向连接了么?怎么没有把网给续下去呢?
此时,你的SS服务端仿佛在说:我册那娘のB,侬只戆哒哒の恁,糊哒哒の卵,侬看到过哪只SS服务器倒过来连Client?
此时,你的Clash仿佛在说:只戆卵就叫我连电信,我又不能自说自话连移动。tcp-concurrent 不用,OSPF+BFD也不用。你Server想连我Client做啥,我这里又没Youtube,连回来看《Bakamai谈治国理政》?
原来MPTCP的故障转移只针对单个TCP连接。打开一个新视频包括新的缩略图都要建立新的TCP连接,CDN服务器IP都和之前不一样。MPTCP的额外通道不可能附属到后续新的TCP连接上。反向连接则需要该程序对MPTCP特性额外进行开发,反向连接要由程序发起,而不是MPTCP本身发起。
那么爆炸解决方案待本章知识补充...
#mptcp