gpt4 book ai didi

java - 为什么 java 发送一个大小大于最大 MTU 大小的 tcp 包并且它有效?

转载 作者:可可西里 更新时间:2023-11-01 02:41:03 24 4
gpt4 key购买 nike

我通过发出以下命令从我的 linux 主机找到我的服务器的 mtu 值:

ping -s 1312 my.sever.com  --> 100% successful
ping -s 1313 my.sever.com --> 100% failed

所以我假设我的最大 MTU 是 1340 (1312 + 28)。

但是,当我从我的 java 客户端捕获到该服务器的 http post 时,我可以在 wireshark 中看到一个大小为 1354 的 tcp 包,并且整个请求/响应都是成功的。

4 0.054168000 my.ip -> server.ip TCP 1354 80 59060  [TCP segment of a reassembled PDU]

我想知道包大小 > 最大 MTU 大小如何才能成功?

谢谢,

最佳答案

Internet 协议(protocol)实现了数据报分段,将其分成更小的 block ,因此可以形成可以通过最大传输单元小于原始数据报大小。如果路由器接收到的协议(protocol)数据单元大于下一跳的MTU,它有两个选择:丢弃PDU并发送ICMP> 指示条件数据包太大或 IP 数据包分片的消息。

关于java - 为什么 java 发送一个大小大于最大 MTU 大小的 tcp 包并且它有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21795307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com