首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TPC丢失段

TPC丢失段
EN

Server Fault用户
提问于 2019-10-17 14:27:08
回答 1查看 174关注 0票数 0

我正在调查应用程序(基于Java的)没有接收到整个消息的问题,该消息被分割在两个TCP段上。我有一个线索可以证明这两个片段都被发送到了服务器。

根据我的调查,我没有在NIC上发现任何丢失的数据包,但是我在netstat -s上注意到了以下内容:

代码语言:javascript
复制
16 packets pruned from receive queue because of socket buffer overrun
845 packets collapsed in receive queue due to low socket buffer

我假设丢失的TCP段可能是这16个被修剪的数据包之一。

问题(S)如下:

尝试调优tcp_rmem是否有意义?我是否应该期望一个经过良好调整的服务器/网络删除数据包为0?

EN

回答 1

Server Fault用户

发布于 2019-10-17 15:08:28

这个问题不太可能需要在系统级别而不是应用程序级别上解决。如果在TCP中丢失了什么,它就会受到对等方的不满--这就是TCP的设计方式。

更有可能的是,对于TCP在Java应用程序中的工作方式存在错误的假设。例如,将TCP视为基于消息的协议而不是字节流,并假设单个读取将接收刚才发送的所有数据,这是常见的错误。由于这不能保证这将导致Java应用程序有时只读取消息的一部分,即使其馀部分最终可供应用程序读取。

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

https://serverfault.com/questions/988403

复制
相关文章

相似问题

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