从客户端到主机(或反之亦然)的消息传输中的哪一点是实际切成数据包的消息?
根据我目前的理解,应用程序将整个文件放入套接字并将其完全交给TCP。 TCP首先缓冲文件/消息,当时间正确时(时间正确?)切割缓冲区数据块(创建数据包)并添加TCP标头以将块转换为段。
如果应用程序层中根本没有数据包,为什么还要讨论应用程序层中的数据包?只是整个文件...这不会添加正确。
有人可以证实我的理解吗?
答案 0 :(得分:3)
基于TCP的应用程序有消息要发送。消息的来源取决于应用程序 - 它可能只是一个小请求,也可能是整个文件。它将消息传递到传输层(TCP),传输层将消息切换为 segments 并将它们逐个传递到网络层(Internet协议)。网络层为每个数据包添加一个标头,并将其传递给处理帧的链路层(以太网)。
原则上,我们有:
答案 1 :(得分:1)
数据被传输层(UDP,TCP)中的 段 切片并封装。这些段由网络层(IPv4,IPv6等)通过 数据包 进行封装。数据包由数据链路层(以太网等)上的 帧 封装。