我上网时会上传什么?

Deb*_*Deb 24 networking upload download usb-modem

我正在使用调制解调器,它显示的下载速度为n kbps,上传速度为m kbps。当我检查它的日志时,它显示了下载和上传的数据量。我想知道为什么它显示我在一个小时内上传了 3 MB 的数据,当我从不上传任何内容或使用种子时,这似乎过多。

那么,当我在网上冲浪时,我在上传什么?

Tam*_*man 46

有关 TCP 连接和确认如何工作的更多详细信息,请参阅Diogo 的回答

当你访问一个网站时,会发生这样的事情:

  1. 与您的计算机已经知道其 IP 地址的 DNS 服务器(如果尚未完成)建立连接(或通过某种自动机制从您的 ISP 请求此信息),发送数据包以连接并确认连接已经完成。建立连接后,您的站点会询问您访问的站点的 IP 地址,以便它知道要联系哪台计算机才能访问该站点。这意味着它会发送一个包含域名的数据包来获得该响应。稍后它还会发送一个数据包来关闭连接。

  2. 与托管您要访问的站点的 Web 服务器建立连接,这再次发送数据包以进行连接并确认连接。之后它会请求您要访问的页面,再次发送一个数据包。然后它做出响应,并为您提供网页的 HTML,该 HTML 指示页面的结构(而不​​是布局)。

  3. 因为您只有结构,所以您仍然需要获取其余部分。因此,需要额外请求(一个 SU 问题类似于 40 个请求)来获取脚本、样式和媒体(如图像等)。并且由于其中一些可能与您访问的 Web 服务器不在同一 Web 服务器上,因此可能会进行额外的 DNS 解析,使您返回到第 1 步。

  4. 最重要的是,请注意,您收到的每个数据包都会被确认添加另一个上传的数据源,为了节省数据包,通常会同时确认多个数据包。因此,当您收到某些东西时,您会将收到的东西发送到服务器,这样它就知道它发送的东西不会在某处丢失。这样,服务器就不必再次尝试发送它。

最重要的是,如果不先连接并将一些请求上传到您正在下载的服务器,您就无法下载某些内容。这就是弥补一点上传的原因......

而且它不是你只点击,你做的不止这些,让我们以你的问题为例:你输入了大约 500 个字符,一个字符算作 1 个字节(如果是 ASCII 字符,都是在这种情况下)并且可以从 1 到 4 个字节(如果是 Unicode 字符)。因此,您的问题实际上需要 0.5 KB 或 0.00005 MB!但这不仅仅是发送给我们的问题,它还被 POST 或 AJAX 请求包围,该请求要求服务器存储您的问题和数据包标头本身。

如果你把所有东西加起来,在几个小时左右达到几兆字节就变得合理了。

  • 当我应该写这样一个详细的答案时,我试图快点!我似乎总是错过天空火箭的这些答案!!! (2认同)

Dio*_*ogo 26

您的上传主要取决于您在向网络服务器键入地址(例如 www.google.com)以请求与该站点建立HTTP连接时所做的请求。在这些请求之后,下一个上传点是握手过程中的ACK(来自HTTP 协议上的TCP连接的确认):

在数据网络中,确认(或确认)是在通信进程或计算机之间传递的信号,用于表示确认或响应的接收,作为通信协议的一部分。例如,ACK 数据包在传输控制协议中用于在建立连接时确认收到 SYN 数据包,在使用连接时确认收到数据包,并在终止连接时确认 FIN 数据包。

举个例子,看看 TCP 图(你在 Internet 上冲浪时使用 TCP):

图表


Wil*_*sum 15

当您在线时,很简单,来自远程目标的所有内容都是下载,而您发送的所有内容都是上传。

因此,即使只是简单地请求一个网页也将包括您的机器(最有可能)发出 DNS 请求、连接到 Web 服务器、发送对页面的请求,然后发送对该页面上的每个元素/图片/css/javascript 的请求.

3MB 一个小时的使用量并没有那么多!