首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TCP如何处理大小较大的文件?

TCP如何处理大小较大的文件?
EN

Stack Overflow用户
提问于 2021-03-29 15:59:46
回答 1查看 267关注 0票数 0

关于TCP协议,我有两个问题:

  1. 对每个数据包的大小是否有限制?如果是,要发送的每个数据包的最大大小是什么?

  1. 和如何处理大容量的文件?它是同时发送它(1包)还是TCP将它转换成更小的包?

我使用python和套接字库。

EN

回答 1

Stack Overflow用户

发布于 2021-03-30 18:23:30

TCP是一种流协议。这意味着您作为发送方无法控制内核中实际执行了多少发送操作。这里有几种机制在发挥作用。客户端只需一个字节就可以多次调用send。TCP将尝试累积这些字节,直到填充L2的MTU,然后才发送,或者在到达超时时才发送。在一次发送操作中,您可以发送64K左右。要发送一个文件,您需要几个发送操作,直到整个文件被发送。

在TCP的接收端,发送操作的数量和接收操作的数量没有关系。如果发送者连续和快速地发送5次10字节,很可能在一次接收操作中接收到50字节。

实际上,对于TCP来说,没有像数据包这样的东西。它被称为框架。数据包用于UDP,因为UDP不是流协议。在UDP中,如果发送5个字节,由于UDP不面向连接,接收方将接收5个字节或什么也不接收。而TCP是。对于UDP,最大大小约为64k。这64k将被IP切碎,通过电线发送,IP将在接收时将其重新组合在一起。这一切都是因为L2的MTU。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66857509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档