如何在Android上排除TCP/UDP数据包碎片

如何在Android上排除TCP/UDP数据包碎片,android,tcp,network-programming,networkstream,tcpdump,Android,Tcp,Network Programming,Networkstream,Tcpdump,全部: 我对MTU设置并不陌生,我想知道如何处理TCP/UDP上出现的碎片(我们通过Android应用程序通过蜂窝网络发送数据包) 我们看到很多数据包碎片从android设备发送到服务器。我想了解更多关于这个主题的信息: 什么是MTU 我们可以使用哪些工具查看或验证数据包碎片(Wireshark、tcpdump等) 我们如何在Android设备上使用ping/traceroute等标准工具(这有用吗) 提前感谢MTU表示最大传输单元——它表示本机链路层将传输的最大数据包大小。例如,基于以太网的网

全部:

我对MTU设置并不陌生,我想知道如何处理TCP/UDP上出现的碎片(我们通过Android应用程序通过蜂窝网络发送数据包)

我们看到很多数据包碎片从android设备发送到服务器。我想了解更多关于这个主题的信息:

  • 什么是MTU
  • 我们可以使用哪些工具查看或验证数据包碎片(Wireshark、tcpdump等)
  • 我们如何在Android设备上使用ping/traceroute等标准工具(这有用吗)

  • 提前感谢

    MTU表示最大传输单元——它表示本机链路层将传输的最大数据包大小。例如,基于以太网的网络的MTU通常为1500字节。当系统希望发送大于网络MTU的IP数据报时,它必须将数据包分割成不大于MTU的数据块。请注意,TCP很少出现碎片,特别是因为大多数TCP实现现在都使用路径MTU发现。通常,只有当UDP与异常大的数据包一起使用时,才会出现碎片问题

    您确实可以使用各种监视原始网络的工具来观察数据包碎片,包括tcpdump、wireshark等


    如果您想了解像这样的低级TCP/IP机制,除了维基百科这样的常用资源之外,我建议您阅读史蒂文斯的《TCP/IP图解》,第1卷。

    MTU意味着最大传输单元——它意味着本机链路层将传输的最大数据包大小。例如,基于以太网的网络的MTU通常为1500字节。当系统希望发送大于网络MTU的IP数据报时,它必须将数据包分割成不大于MTU的数据块。请注意,TCP很少出现碎片,特别是因为大多数TCP实现现在都使用路径MTU发现。通常,只有当UDP与异常大的数据包一起使用时,才会出现碎片问题

    您确实可以使用各种监视原始网络的工具来观察数据包碎片,包括tcpdump、wireshark等

    如果你想了解像这样的低级TCP/IP机制,除了维基百科这样的常用资源,我建议你阅读史蒂文斯的《TCP/IP图解》,第1卷