TCP拆包粘包
RPC协议是建立在传输层协议之上的应用层协议,其中传输层协议包括TCP、UDP等。TCP协议因其高可靠性和全双工的特点,成为许多应用层协议的选择,包括gRPC所使用的HTTP/2协议。
然而,TCP协议传输的是一串无边界的二进制流。由于底层网络并不了解应用层数据的具体含义,它会根据TCP缓冲区(Buffer Cache)的情况进行数据包的划分。这就可能导致一个完整的应用层数据包被TCP拆分为多个小包进行发送,或者将多个小包封装成一个大的数据包进行发送。这种现象通常被称为TCP拆包(Packet splitting)和粘包(Packet sticking)问题。

【干货】这些Claude Code使用技巧对你应该有用
关注公众号:【前端欧阳】,加入我的AI交流群。
ConcurrentHashMap的Null禁令:一场针对“渣男”Null的完美防卫战
这个设计决策常常让刚从HashMap转来的开发者困惑不已。为什么HashMap可以坦然接受null,而CHM却如此决绝?背后究竟隐藏着怎样的深意?今天,让我们揭开这个设计背后的思考,看看CHM如何在这场与null的较量中捍卫了并发世界的秩序。
Django事务
Django 默认使用自动提交模式,每个查询都会立即提交到数据库。但你可以手动控制事务。
CMake构建学习笔记24-使用通用脚本构建PROJ和GEOS
在
《CMake构建学习笔记22-libxml2库的构建》这篇文章中使用这个脚本构建了libxml2库:
NVIDIA Kernel级性能分析工具Nsight Compute入门详解

我的后台管理项目报Error: spawn …esbuild.exe ENOENT了
对于开发er来说换设备是件比较痛苦的事,因为一堆开发环境和开发工具需要重新配置和安装,这次也不例外,大概经过小半天的时间,终于可以干活了,但是当我启动我的后台管理项目的时候报如下错:
ReactPHP、Swoole、Webman、FrankenPHP 深度对比 找到最适合你的 PHP 异步方案
现在不一样了,异步编程和多线程技术让 PHP 也能”一心多用”,不再被慢操作拖累。问题是,工具这么多,该选哪个?
我一个写Java的,怎么就开始玩K8s和Jenkins了?!
但这次不一样了,老板希望上线流程能更自动化,得用Jenkins实现一键部署,减少人工操作,省时省力。说实话,对于我这开发来说,哪干过这活啊。都是已经做好的流水线直接用就行了,奈何人手不够用,直接让我上。
独立做项目,拿得起放得下
划定时间周期,然后走一步看一步。
小狮博客