rpc服务器不可用无法上网,rpc服务器无法使用怎么解决

首页 > 游戏 > 作者:YD1662023-11-18 04:33:36

TCP是什么

这三个特点概括的是非常精辟,但是每个特点都够我们喝一壶的,而今天我们需要关注的是基于字节流这一点。

所谓流就是一个传送带,上面的货物代表的就2个不同类型的包裹:0和1,随着传送带的传输,源源不断的0和1排队从起始端传输到目的端。

rpc服务器不可用无法上网,rpc服务器无法使用怎么解决(5)

01二进制字节流

你会发现,0和1排队流式传输,居然没有任何边界。举个例子当我们用TCP发送"夏洛"和"特烦恼"的时候,接收端收到的就是"夏洛特烦恼"。你这时有什么想法?

接收端没办法知道你要具体表达什么意思,它没法根据这5个字给你断句。你是想要表达"夏洛" "特烦恼"还是"夏洛特" "烦恼"呢?更搞笑的是,如果传送的中途,0和1被掉包了(拜占庭问题),那你还会收到“特烦恼夏洛”。。。

rpc服务器不可用无法上网,rpc服务器无法使用怎么解决(6)

消息对比

聊这个案例就是为了告诉大家,赤裸裸的TCP是不能直接拿来用的,你需要在这个基础上加入一些自定义的规则,用于区分消息边界,还要有些机制保障类似“我爸是李刚”而不是“我是李刚爸”,这就乱套了。于是我们会把每条要发送的数据都包装一下,比如加入消息头消息头里写清楚一个完整的包长度是多少,根据这个长度可以继续接收数据,截取出来后它们就是我们真正要传输的消息体

rpc服务器不可用无法上网,rpc服务器无法使用怎么解决(7)

消息边界长度标志

而这里头提到的消息头,还可以放各种东西,比如消息体是否被压缩过和消息体格式之类的,只要大家都认这个约定,我们就可以欢乐的你组装我拆包,快递就会这样收的不亦乐乎了,这就是所谓的协议。

TCP只是传输的时候大家对齐了的一个标准,至于我想发什么快递给你,我需要自己先打包在标上一个标签,这个标签就是一个附加的头。有了这样一个自定义的头部能力,我们就可以尽情地发不同的快递了。他们可能有区别,但原理都类似。

于是基于TCP,就衍生了非常多的协议,比如HTTP和RPC。

HTTP vs RPC

除了开篇的7层分类,我们还有简单的4层分类协议,如下:

rpc服务器不可用无法上网,rpc服务器无法使用怎么解决(8)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.