gpt4 book ai didi

networking - 究竟什么时候创建网络数据包?

转载 作者:可可西里 更新时间:2023-11-01 02:56:41 25 4
gpt4 key购买 nike

在从客户端到主机(或反之亦然)的消息传输中,消息实际上是在哪个点被分割成数据包?

根据我目前的理解,应用程序将整个文件放入套接字并将其完全交给 TCP。 TCP 首先缓冲文件/消息,然后在合适的时候(什么时候合适?)切割缓冲区数据 block (创建数据包)并添加 TCP header 以将 block 转换为段。

如果应用层根本没有数据包,为什么还要讨论应用层的数据包呢?只是整个文件...这不正确。

谁能证实我的理解?

最佳答案

基于 TCP 的应用程序有一个消息要发送。消息是什么取决于应用程序——它可能只是一个小请求,也可能是整个文件。它将消息传递到传输层 (TCP),后者将消息分成,然后将它们一个接一个地传递到网络层(Internet 协议(protocol))。网络层为每个数据包添加一个 header ,并将其传递给处理的链路层(以太网)。

因此,原则上,我们有:

  • 消息在应用层;
  • 在传输层;
  • 数据包 在网络层;和
  • 在链路层。

然而,在实践中,人们并没有那么迂腐,而且往往会混淆这些概念。你会经常听到人们谈论 TCP 数据包(正确的术语应该是带有 TCP 负载的 IP 数据包),他们甚至会谈论发送数据包的应用程序(正确的表述是应用程序将消息传递给传输层)。大多数时候,不准确的术语不是问题,因为上下文可以消除歧义。

关于networking - 究竟什么时候创建网络数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37746596/

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