gRPC不是银弹:为内网极致性能,如何设计自己的RPC协议?

TCP拆包粘包

RPC协议是建立在传输层协议之上的应用层协议,其中传输层协议包括TCP、UDP等。TCP协议因其高可靠性和全双工的特点,成为许多应用层协议的选择,包括gRPC所使用的HTTP/2协议。

然而,TCP协议传输的是一串无边界的二进制流。由于底层网络并不了解应用层数据的具体含义,它会根据TCP缓冲区(Buffer Cache)的情况进行数据包的划分。这就可能导致一个完整的应用层数据包被TCP拆分为多个小包进行发送,或者将多个小包封装成一个大的数据包进行发送。这种现象通常被称为TCP拆包(Packet splitting)和粘包(Packet sticking)问题。


赞(0)
未经允许不得转载:小狮博客 » gRPC不是银弹:为内网极致性能,如何设计自己的RPC协议?
分享到: 更多 (0)

联系我们