这只是一个基于好奇心的问题,但我可能会学到一些有用的东西。
使用我的 Node.js 服务器,当我通过 net.Server 接收数据时,我让它打印出每个数据“数据包”的大小(以字节为单位)。
socket.on 'data', (data) -> console.log data.length
我注意到大多数时候它是 1374 字节。所有其他时间都是 1374 的倍数。我从大约 200 个数据事件中得到的最高值是 17,862。
这个 1374 号码是从哪里来的?为什么数据长度偶尔会是它的倍数?
我最好的猜测是,对于 TCP,1500 字节是以太网最常见的 MTU,其他 126 个字节构成 TCP 数据包的标头。如果 Node.js 足够快地接收到这些数据包,有时可能会将它们聚集在一起,这就是为什么有时它们会以多个形式到达。