gpt4 book ai didi

networking - 什么是开销、有效负载和 header

转载 作者:行者123 更新时间:2023-12-03 20:18:11 25 4
gpt4 key购买 nike

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

7年前关闭。




Improve this question




有人可以解释一下什么是开销、有效负载、 header 和数据包。据我所知,数据包是要传输的全部数据。这个数据包由我认为是有效载荷的实际数据组成,数据包的源/目标信息在 header 中。所以一个数据包由头部和有效载荷组成。那么这个开销是多少呢?开销是标题的一部分吗?我从互联网上得到这个“偷听的数据包包括存储在数据包头中的所有额外信息字节”。
header 已经包含源/目标信息。这个数据包开销有哪些额外的信息字节?我很困惑。

最佳答案

像您说的数据包具有“有效负载”,即它需要传输的数据本身(通常是用户的数据),“ header ”包含各种内容,具体取决于您使用的协议(protocol),例如 UDP header 中仅包含简单的内容,例如 Destination 和 Source IP/PORT,TCP在另一端包含更多信息,例如数据包的序列号以确保有序交付,许多标志以确保数据包实际在其目的地接收,以及数据校验和以确保它没有被损坏并正确接收它的决心。
现在,“开销”部分实际上是发送有效负载所需的额外数据。在我上面谈到的情况下,它是 header 部分,因为您需要将其添加到要通过 Internet 发送的每个有效负载中。 TCP 比 UDP 具有更大的开销,因为它需要向您的有效负载添加更多数据,但您可以保证您的数据将按照您发送它的顺序在其目的地被接收并且不会损坏。 UDP 没有此功能,因此无法保证。
有时您会阅读/听到关于根据您要发送的数据使用什么协议(protocol)的讨论。例如,假设您有一个游戏,并且您想在玩家每次移动时更新其位置,它自身的有效载荷将包含以下内容:

int playerID;
float posX;
float posY;
有效载荷的大小是 12 字节,假设我们使用 TCP 发送它,现在整个数据包将如下所示:
-------------
TCP_HEADER
-------------
int playedID;
float posX;
float posY;
现在整个数据包的大小是有效载荷 + TCP_HEADER,即 12 字节 +(32 字节到 72 字节),您现在有 32 到 72 字节的数据开销。您可以阅读有关 TCP 的 header here .请注意,开销甚至比数据本身还要大!
现在您需要确定它是否是您要用于游戏的协议(protocol),如果您不需要 TCP 为您提供更好的使用 UDP 的功能,因为它的开销较小,因此要发送的数据较少。

关于networking - 什么是开销、有效负载和 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24879959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com