不管是 TCP 包还是 UDP 包,如果 size 太大,到了 IP 层,都会进行分包处理。
如何才算 size 太大呢?这个跟具体的网络类型有关。
以最常用的以太网为例,允许的最大包 size 为 1500 字节,也就是我们俗称的 MTU(Maximum Transmission Unit)值。
今天我们通过 Wireshark 工具,直观的感受一下 IP 层是如何对 TCP 或者 UDP 包进行分包处理的。
实验环境:两台电脑+网络互通
操作系统:Windows 或者 Linux 均可
软件:iPerf3+Wireshark
iPerf3 是一个著名的免费测试网络拥塞情况的测试软件。
我们通过 iPerf3 来给对方发送 TCP 或者 UDP 包。
iPerf3 可以在官方免费下载,下载后拷贝到两台电脑上。
其中一台电脑上使用 iPerf3 的服务端模式,命令为 iPerf3 -s -i 1 -p 10000
命令解析:-s 以服务端模式运行 -p 监听端口号 -i 报告打印时间间隔
另一台电脑则以客户端模式运行,命令为 iPerf3 -c 192.168.6.23 -b 100M -t 5 -p 10000 -u
命令解析:-c 以客户端模式运行,后面为服务端 ip 地址 -b 发包速率 -t 测试时间 -p 同上 -uUDP
大白话就是客户端每秒以 100Mbit 的速率向服务端 10000 端口发送 UDP 包,持续发送 5s。
那每个 UDP 的大小是多少呢?根据 iPerf3 的官方介绍,默认的单个 UDP 发包大小