linuxrpc顺序和重传

linux rpc order and retransmision

我们在应用程序中使用 RPC(udp 套接字),我们注意到当目标应用程序未收到(或确认)消息时,RPC 会重新传输消息。

RPC 是否呈现消息的顺序?假设我们有消息 1 和消息 2,它是否等待消息 1 被接收方确认然后发送消息 2?

我也无法找到它默认重试了多少次,如果在 x 次重试后发送失败,它是否将其记录在某处以便我们检查?

谢谢

RPC 库有一个调用来控制在重试请求之前等待多长时间:

 struct timeval tv;
 clnt_control(cl, CLSET_TIMEOUT, (char *) &tv);

当您调用 rpc 调用时,您提供总超时:

 enum clnt_stat clnt_call(CLIENT *clnt, unsigned long procnum,
                       xdrproc_t inproc, char *in,
                       xdrproc_t outproc, char *out,
                       struct timeval tout);

如果用 clnt_control 设置的值除以 tout,您将得到重试次数。

sync/async 行为仅取决于您的应用程序。