网络中的大包和小包相关问题总结

简介: 网络中的大包和小包相关问题总结

所谓大包就是一个数据包内,包含的数据字段比较多。整个数据包最大不超过1500字节。小包也是一样的,就是包含的数据字段比较少,整个包最小可以在64字节。一般来说,数据包的大小主要由程序来控制。比如游戏,他要求强烈的实时性,低延迟。报文交互频繁,但是速度一定要快。游戏类的数据包基本都是小包。大包主要是,视频,下载之类的,因为这种报文需要尽可能的为你提供更高的下载速率。他的报文基本上都是最大的。小包一般用于控制,比如dns请求,网络游戏等。

如果你玩游戏,看网页,一般小包居多。如果你下载文件,看视频,大包居多。

路由设备在转发的过程中,其实转发的只是MAC跟IP,一般的路由都不会去窥探报文数据的。(越界的不算)。所以,小包的转发速度就意味着设备的转发性能。当然了,大包转发的速度一般来说会更低。大包的数据字段也是要转发传输的。协议不论,大包小包就是简单的 : 数据包的大小。

网络传输小包数据的潜在问题:

同样数据量的buffer,比如1500字节的数据,分10包 x 150发送和1包 x·1500发送,对比如下:

(1)10包数据,需要10个20字节ip头信息,7字节帧前导,1字节帧首界定符及帧与帧之间的12字节的默认帧间距,而这些都是通常意义的网络带宽的一部分,所以小包会造成带宽的浪费。

(2)在存储转发的模型下,报文的收发及查表都需要访存,那么小包的处理,需要访存的次数x10,降低了cache命中的几率,而cache未命中,消耗的是cpu的时钟周期,所以小包处理增加了cpu的负担。

(3)150字节的包的时间间隔约为35ns,而1500的包的时间间隔约为300ns,35x10的间隔时间要大于1x300ns,所以小包处理增加了报文处理的时延。

所以在x86的平台上,应尽量避免小包的发送,当然大包的大小也需要考虑交换机,路由器的最大MTU的设置而定,通常是1500字节为宜。

在网络情况良好的情况下,当然是一次发送一个大包更加快,因为这样就减少了接收和发送缓冲区确认的时间了。

在网络不佳的情况下,建议还是拆包发送比较好,因为这样就降低了丢包重传的成本。

如果你在应用层组包太小的话,会在发送缓冲区自动粘包发送的。

相关文章
|
弹性计算 测试技术
阿里云服务器网络收发包PPS是什么意思?5万PPS/10万/20万/80万/100万PPS
阿里云服务器网络收发包PPS是衡量云服务器网络质量的一项重要指标,单位是PPS,PPS是指Packets Per Second,每秒发包数量
8475 0
阿里云服务器网络收发包PPS是什么意思?5万PPS/10万/20万/80万/100万PPS
|
9月前
|
人工智能 测试技术 芯片
AMD Ryzen AI Max+ 395四机并联:大语言模型集群推理深度测试
本文介绍了使用四块Framework主板构建AI推理集群的过程,并基于AMD Ryzen AI Max+ 395处理器进行大语言模型推理性能测试,重点评估其并行推理能力及集群表现。
927 0
AMD Ryzen AI Max+ 395四机并联:大语言模型集群推理深度测试
|
XML NoSQL 大数据
大数据中半结构化数据
【10月更文挑战第18天】
1379 4
|
负载均衡 监控 网络协议
玩核心交换机,必须掌握的6个知识点!
玩核心交换机,必须掌握的6个知识点!
1427 1
|
负载均衡 网络协议 算法
|
Linux 网络性能优化 网络安全
Linux(openwrt)下iptables+tc工具实现网络流量限速控制(QoS)
通过以上步骤,您可以在Linux(OpenWrt)系统中使用iptables和tc工具实现网络流量限速控制(QoS)。这种方法灵活且功能强大,可以帮助管理员有效管理网络带宽,确保关键业务的网络性能。希望本文能够为您提供有价值的参考。
3101 28
|
NoSQL MongoDB 关系型数据库
13个Mongodb GUI可视化管理工具,总有一款适合你
本文介绍了13个好用的MongoDB可视化工具。Robomongo,MongoDB Compass,phpMoAdmin等
116575 0
13个Mongodb GUI可视化管理工具,总有一款适合你
|
Linux 数据安全/隐私保护 C语言
新手向导:轻松离线搭建最新版OpenVPN(含一键安装脚本)
OpenVPN 是常用的虚拟私有网络工具,通过 Docker 搭建非常简单。但常用的 kylemanna/openvpn 镜像已三年未更新,停留在 OpenVPN 2.4 版本。为了升级到最新版本(如 2024 年 2 月发布的 v2.6.9),可以通过官方开源社区获取最新安装包并手动编译安装。步骤包括安装依赖、下载并编译 OpenSSL 和 OpenVPN、生成证书和配置文件等。此外,GitHub 上有一键安装脚本 openvpn-install.sh,简化了安装过程,但其版本可能不是最新的。安装完成后,还需配置 iptables 以确保客户端能正常使用代理网络。
16786 1
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
23239 31
|
存储 网络协议 大数据
一文读懂RDMA: Remote Direct Memory Access(远程直接内存访问)
该文档详细介绍了RDMA(远程直接内存访问)技术的基本原理、主要特点及其编程接口。RDMA通过硬件直接在应用程序间搬移数据,绕过操作系统协议栈,显著提升网络通信效率,尤其适用于高性能计算和大数据处理等场景。文档还提供了RDMA编程接口的概述及示例代码,帮助开发者更好地理解和应用这一技术。