- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
例如,当通过 Internet 传输 1GB 的数据时,这些数据被分成数据包,每个数据包包含一小块数据,并且每个数据包都是帧的一部分。
例如。 Windows 报告您正在通过 TCP 连接以 100kb/s 的速度传输文件,但这似乎是每秒传输的文件数据量,并且似乎不包括 ip 或 tcp header 或以太网帧。
以这种速度传输所需的网络实际流量是多少?还是该数据实际上已经包含在传输速度中,但只是小到没有显着差异?
此外,IP 最多支持 1500 字节/数据包(我认为?),但是在加载 reddit 上的高清图像时,数据包的常见大小是多少?
很抱歉我现在可能应该自己弄清楚这些相当基本的问题......
最佳答案
这取决于您在哪里查看传输速率:
如果您查看任务管理器/网络,您可以看到传输的字节数以及传输的数据包数量(单播或非单播)。
该数据来自网络驱动程序(或至少与其接近的东西),因此在此处报告数据总量是有意义的(否则需要检查每个数据包以计算有效负载)。
还有一个显示传输速率的图表。这些数字可以很容易地与文件传输软件中报告的数字进行比较。
另一方面,文件传输程序不知道有关在较低层创建的数据包的详细信息(可以是任何大小)。所以这里唯一的选择是报告传输的有效负载数据/文件的一部分,这对用户也更有意义。
在普通网络上(也可能是 jumbo frames ),完全加载 时,一个 TCP 数据包(完整的以太网帧)大约为 1500 字节(在我的系统 (IPv4) 上,数据包是 1514总 header 大小为 54 字节的字节 -- Ethernet header 为 14 个,IP header 为 20 个,TCP header 为 20 个)。这些可以在网络中沿途拆分为更小的数据包,但在大多数情况下它们不会。
当传输文件(或其他大数据流)时,平均每次发送 2 个完整数据包(1514 字节),并接收 1 个小数据包(54 字节)([ACK]
数据包)。在这种最佳情况下,我们有 2 x 1460 的有效载荷,发送端有 2 x 54 字节的开销 + 接收端有 54 字节。在与互联网连接的最大传输速率进行比较时,我们还必须考虑一些延迟。
并非所有传输都是最佳的:
可能存在从未到达的数据包或校验和错误的地方,因此需要重新传输。
在某些情况下,数据可以分成更小的部分发送,从而导致更高的开销/有效负载比率(但使用小块 Nagle's algorithm 可以解决这个问题)。
某些软件可能会将文件内容读入小缓冲区(比如 4096 字节)。然后可以将它们分成 2 x 1460 和 1 x 1176,引入一些额外的开销。
很难说出或计算出 transferred_bytes/payload 的确切比率。这取决于互联网连接的质量(丢失数据包、重新传输)、用于传输数据的软件或 API 调用,甚至底层网络(例如小帧与巨型帧)。
关于networking - 传输 100kb/s 的网络的实际位传输速率是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34290948/
我需要一次发送至少 200 条消息。程序启动后,给15或17发邮件成功,然后报错: 消息错误: com.sun.mail.smtp.SMTPSendFailedException: 421 4.4.2
我目前正在开发一个使用 AVSynthesizer 将文本转换为语音的 iOS 应用程序。 我想要做的是,当合成器在说话时,可以通过 slider 改变发声率,并且说话的速度会发生变化。 我在 sli
假设我们有以下场景: 包含 10,000 条消息的服务总线队列 Azure Functions(使用计划),其中函数设置为 SB 队列的触发器 外部(不受我们控制)系统无法超过特定请求率 如果我尽快对
TextToSpeech有设置语速的方法:setSpeechRate() .但它没有查询当前速度的相反方法。 有没有办法向系统查询该值? 最佳答案 您可能会得到默认的 TTS 语速 Settings.
我有一个关于 NGINX 速率限制的问题。 是否可以根据 JWT token 的解码值进行速率限制?我在文档中找不到任何这样的信息。 或者即使有一种通过创建纯自定义变量(使用 LuaJIT)来进行速率
我有一个带有方向键和 2 个按钮的游戏 handle 。所有这些都是数字的(不是模拟的)。 我有一个处理他们的事件的程序: -(void)gamepadTick:(float)delta {
所以我需要在 OpenCV 中获取网络摄像头的 fps 速率。哪个功能可以做这样的事情? 最佳答案 int cvGetCaptureProperty( CvCapture* capture, int
我四处寻找 CURL 设置文件,但没有在/etc/中找到它,也没有在 curl 站点 ether 上找到太多... 所以基本上我想做的是设置 curl 可以上传的最大速度限制(无论它正在运行多少个实例
我有一个在 Atom 上运行的嵌入式 Linux 系统,这是一个足够新的 CPU,可以有一个不变的 TSC(时间戳计数器),内核在启动时测量其频率。我在自己的代码中使用 TSC 来保持时间(避免内核调
我正在寻找一种以高粒度单独限制 RPC 速率的方法,令我沮丧的是,针对此问题可用的选项并不多。我正在尝试用 gRPC 替换 REST API,对我来说最重要的功能之一是能够为每个路由添加中间件。不幸的
我正在使用 PHP、MySQL 和 Redis 开发 API,并希望对特定调用进行速率限制。 API 位于 CloudFlare 后面。为实现这一点,我将增加每个 IP 地址每小时在 Redis 中进
我正在寻找一种以编程方式(无论是调用库还是独立程序)监视 linux 中实时 ip 流量的方法。我不想要总数,我想要当前正在使用的带宽。我正在寻找与 OS X 的 istat 菜单的网络流量监视器类似
所以我注意到 Apple 更改了 SKStoreProductViewController,禁用了“写评论”按钮。此问题是否有任何解决方法或修复方法? 最佳答案 SKStoreProductViewC
我今天浏览了 Amazon RDS 定价网站,现在确实想知道他们实际上如何计算 I/O 速率? “每 100 万个请求 0.10 美元”到底是什么意思? 谁能举出一些简单的例子,从 EC2 到 RDS
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 5 年前。 Improve
在旧的 API 中,剩余的允许容量显然作为 X-Ratelimit-Remaining 返回HTTP header 。 然而,current version's documentation对此一无所获
在我的 Android 应用程序中,我观察到前置摄像头录制的视频以 7-10 fps 的速度录制,而后置摄像头的工作正常, native 摄像头应用程序确实以 29fps 的速度录制前置摄像头的视频。
我正在编码一个里面有 dvb_teletext 的视频。打开输出流 #1:2 的编码器时出现错误提示。我使用以下命令对我的视频进行编码。 ffmpeg -threads 8 -i input.ts -
我正在使用以下命令为我的视频添加淡入淡出效果 {"-y", "-ss", "" + startMs / 1000, "-t", "" + (endMs - startMs) / 1000, "-i",
我正在尝试使用以下命令通过 FFMPEG 将 avi 视频文件转换为 flv 格式: -i C:\files\input\test.avi -y -ab 448k -ar 48000 -vcodec
我是一名优秀的程序员,十分优秀!