TCP数据包的最小大小是多少


11

此处的帖子:

http://blogs.adobe.com/dreamweaver/2011/02/optimal-css-tiled-background-image-size.html

有这样的说法:“浏览器可以下载的最小文件为1K字节。”

这是由于网络上数据包的最小大小吗?如果不是,原因是什么(如果确实如此)?


2
如果要避免混淆,请遵循标准条款。“数据包”是IP级别的术语。您说“ IP数据包”,也不说“ TCP数据包”,也不说“以太网数据包”。
vtest

您引用的句子(“浏览器可以下载的最小下载量是1K字节。”)肯定是不正确的-没有最小下载大小;并且虽然最小TCP / IP数据包的大小(如由@ DMA57361解释),这肯定是不1KB。
Piskvor在2011年

Answers:


20

数据包在这里是一个模糊的术语,因为有时会误用它来指代传输中的不同元素。让我们看看您的数据包含在其中,您将明白我的意思,并希望得到想要的答案:


假设您正在通过TCP / IP模型通过Internet 发送1字节的数据1

数据应用水平和需求开始在头的较低水平,以便它可以传递周围包裹起来。

首先,将数据包装在TCP段中,该添加20字节的标头(现在最小大小为21字节)。
这使我们处于运输层面。

然后将其包装在IP数据包中,该数据包会添加另一个20字节的标头(现在最小大小为41字节)。
现在我们处于互联网级别。
请注意,每次新路由器将您的数据转发到新子网时,都会更改此包装。

它被包裹在某种类型的链接框架中-标题和页脚的大小取决于所使用的框架的类型,而框架的类型也取决于所使用的链接的类型。
这是在链接级别。
每当单位在两个实体之间传输时,此包装都会更改。

最后是物理传输(例如电缆上的电信号,无线电波等)。

以下是Wikipedia TCP / IP模型页面上的一些有用的图像,可以直观地解释正在发生的事情:


使用UDP / IP的数据封装


通过TCP / IP模型中的层进行连接


1.我想您也许可以发送0字节...但尚未检查。实际上,我也没有检查是否允许1个字节,但是嘿。


4

这是不正确的,没有下载的最小大小。您可以通过在Web服务器上创建一个小文件并在下载该文件时使用Wireshark监视网络流量来验证这一点。

标准以太网数据包的最小大小为64字节。


3

从表面上看,您引用的博客文章不正确。HTTP没有“最小下载大小”。(而且关于最小数据包大小的理论也是不正确的。)

但是,这有一定道理。这就是说,如果要下载的文件的大小足够小,则HTTP响应消息(由文件和HTTP响应标头组成)将适合单个网络数据包。如果发生这种情况,则浏览器获取文件的速度可能要比两个或多个数据包发送响应的速度更快。

(在响应中有一个数据包的情况下,数据包被丢弃并需要重新发送的可能性较小,TCP / IP流量控制窗口不会为数据包确认增加额外的往返延迟的可能性更大。 )

对于以太网,发送/接收的数据包(最大传输单元)的典型最大大小为1500字节。如果将IP和TCP开销以及典型的HTTP响应标头的大小考虑在内,则可能会在响应的第一个数据包中留下约1K的文件数据空间。因此,博客评论中的真理。


这是正确的-如果您仅下载一个图像,而不下载网页及其相关资源(图像,JS,CSS),在这种情况下,无论如何您都使用keepalive和流水线处理多个资源,因此TCP开销和数据包大小无关紧要。在这种情况下是正确的(仅下载一个图像),但是这种情况多久发生一次呢?博客作者似乎陷入了1999年,每个HTTP请求都需要自己的TCP连接。
Piskvor在2011年

2

比你想的还要糟。

页面加载缓慢是因为浏览器在渲染1x1像素800000次时遇到问题(例如,将浏览器窗口设置为1000x800)。很多年前,也许是在1999年,我读了一篇文章,该文章规定16x16是“最快” x最小的平铺。当然,现在渲染可能会有所不同。

如果您阅读该博客文章,则投诉实际上是有关页面加载缓慢的问题。下载速度不慢。尽管它是一个有趣的讨论,但它与数据包无关。

因此,也许应该重新措辞这个问题。


在这种情况下,我可能完全误解了该博客文章-我认为这句话的核心是:“浏览器可以进行的最小下载为1K字节[因此,将图像大小调整为1K]”,我读为“ ...因为无论如何您传输的图像都是50字节,因为无论如何您都传输1K字节”(这显然是胡说八道)。这里的问题可能是size在像素尺寸字节数上都使用了“ ” ,并将它们混合在一起。您的解释是合理的,但与图像的字节数无关(与博客所说的相反)。
Piskvor在2011年

在重新阅读了博客文章之后,他似乎偏离了路线,因为第三段不连贯。
模拟人2011年

在重新阅读您的评论之后...他的意图是要解决开头段落中提出的问题。但是,他错误地将此问题归因于数据包大小,并将其余的帖子都花在了上面。我的回答解释了页面加载缓慢的原因。正如其他人指出的,数据包特征不是原因。
模拟人2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.