Telegram Group & Telegram Channel
Forwarded from Welcome to the Black Parade
前天和超级大鹅 @SUPER_GOOSE0 (who 写过一篇极好的 mtu 文章 https://www.kawabangga.com/posts/4983) 又一次讨论 mtu,我这两天也间歇性做了一些学习🤬

1. 现代 Linux 早就把 MSS 和 GSO 绑定了。不知道大家纸面上学习 mss 的时候是怎么想的,我的古早理解是 tcp socket 发出的 skb 总是小于等于 mss,这在 2.4 的时候确实如此实现,但是在 2.6 引入 GSO 之后 mss 分片被极大推迟,就算 mss 是 1400,一个 skb 依然可以把 4k 的 payload 塞入非线性区 (struct skb_shared_info*)(skb->head+skb->end),然后在“最终时刻”再分。

2. “最终时刻”往往比大家想象中的还要晚。考虑云原神环境里的 pod to pod via vxlan tunnel,设置 pod mtu 需要减去隧道包头已是常识,那么 MSS 分段和 IP 分包会发生在什么时候呢?在我本地 ubuntu 2404 默认情况下,最终时刻发生在在 vxlan 隧道封包之后,处理完 nf POSTROUTING 之后,eth0 dev_xmit 之前,先做 MSS 分段,如果分段成后长度 > eth0 mtu,再做 IP 分包。

3. 因此用 ping -s 1500 / ping -M do -s 1500 做 mtu 连通性测试的意义不明,MSS 分段和 ICMP 分包实现如此不同,ping 的连通性和分包状态无法推断出 tcp 发同样大小 payload 的连通性和分包状态。

这些破细节不能指望任何人通过看书学会,就连那本经典的《TCP/IP详解》也远落后于时代,成书于 1994,十年后的 GSO 才成为 MSS 底层逻辑。“我们需要一本现代的、符合时代精神的《TCP/IP详解》”,我看着超级大鹅的眼睛说。
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/ManjusakaH/475
Create:
Last Update:

前天和超级大鹅 @SUPER_GOOSE0 (who 写过一篇极好的 mtu 文章 https://www.kawabangga.com/posts/4983) 又一次讨论 mtu,我这两天也间歇性做了一些学习🤬

1. 现代 Linux 早就把 MSS 和 GSO 绑定了。不知道大家纸面上学习 mss 的时候是怎么想的,我的古早理解是 tcp socket 发出的 skb 总是小于等于 mss,这在 2.4 的时候确实如此实现,但是在 2.6 引入 GSO 之后 mss 分片被极大推迟,就算 mss 是 1400,一个 skb 依然可以把 4k 的 payload 塞入非线性区 (struct skb_shared_info*)(skb->head+skb->end),然后在“最终时刻”再分。

2. “最终时刻”往往比大家想象中的还要晚。考虑云原神环境里的 pod to pod via vxlan tunnel,设置 pod mtu 需要减去隧道包头已是常识,那么 MSS 分段和 IP 分包会发生在什么时候呢?在我本地 ubuntu 2404 默认情况下,最终时刻发生在在 vxlan 隧道封包之后,处理完 nf POSTROUTING 之后,eth0 dev_xmit 之前,先做 MSS 分段,如果分段成后长度 > eth0 mtu,再做 IP 分包。

3. 因此用 ping -s 1500 / ping -M do -s 1500 做 mtu 连通性测试的意义不明,MSS 分段和 ICMP 分包实现如此不同,ping 的连通性和分包状态无法推断出 tcp 发同样大小 payload 的连通性和分包状态。

这些破细节不能指望任何人通过看书学会,就连那本经典的《TCP/IP详解》也远落后于时代,成书于 1994,十年后的 GSO 才成为 MSS 底层逻辑。“我们需要一本现代的、符合时代精神的《TCP/IP详解》”,我看着超级大鹅的眼睛说。

BY Manjusaka 的碎碎念(以及摇曳露营 S4 制作确定!)


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/ManjusakaH/475

View MORE
Open in Telegram


telegram Telegram | DID YOU KNOW?

Date: |

How Does Telegram Make Money?

Telegram is a free app and runs on donations. According to a blog on the telegram: We believe in fast and secure messaging that is also 100% free. Pavel Durov, who shares our vision, supplied Telegram with a generous donation, so we have quite enough money for the time being. If Telegram runs out, we will introduce non-essential paid options to support the infrastructure and finance developer salaries. But making profits will never be an end-goal for Telegram.

Telegram is riding high, adding tens of million of users this year. Now the bill is coming due.Telegram is one of the few significant social-media challengers to Facebook Inc., FB -1.90% on a trajectory toward one billion users active each month by the end of 2022, up from roughly 550 million today.

telegram from us


Telegram Manjusaka 的碎碎念(以及摇曳露营 S4 制作确定!)
FROM USA