为什么java发送的tcp包的大小大于最大MTU大小,并且可以正常工作?
我通过发出以下命令,从我的linux主机找到我的服务器的mtu值:为什么java发送的tcp包的大小大于最大MTU大小,并且可以正常工作?,java,networking,tcp,mtu,Java,Networking,Tcp,Mtu,我通过发出以下命令,从我的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
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大小,它是如何成功的
谢谢,互联网协议实现了数据报碎片化,将其分解成更小的片段,以便形成的数据包可以通过最大传输单元小于原始数据报大小的节点。在路由器接收到的协议数据单元大于下一跳的MTU的情况下,它有两个选项:丢弃PDU并发送一条ICMP消息,该消息指示条件数据包过大,或将IP数据包分割 看