tcp、http和rpc

  1. tcp是传输层协议,http和rpc是应用层协议。
  2. http和rpc的底层都是tcp。
  3. tcp三大特点:面向连接、可靠、基于字节流。
  4. 纯tcp发送的消息是基于字节流,无边界的,接收方不知道哪些字节是一条完整的消息。所以,tcp不能直接使用。可以制定一些规则(消息格式)用于区分消息边界,根据规则把每条发送的数据都包装一下。根据这些规则的不同,衍生出各种协议,例如http和rpc。
  5. 既然tcp无边界,那直接将一个消息设置为一个数据包发送不行吗?不行。为了提高数据包传输效率,网络设备会将数据包进行合并和拆分,也就是粘包和拆包。粘包是将多个小数据包合并成一个,拆包是将一个大数据包拆分成多个。例如,在路由器中使用MTU定义一个数据包的大小。
  6. 区别消息边界的规则有3种:
    • 定长消息,消息的长度固定
    • 特殊分隔符分割消息
    • TLV:在消息头部存储消息长度
  7. 服务发现:要获取某个服务,首先需要知道该服务的ip地址和端口。在http中,知道服务的域名,就可以使用dns解析域名得到ip和端口,所以dns是服务发现的一种。在rpc中,一般有专门的中间服务保存服务名和ip,例如etcd。

参考视频:
https://www.bilibili.com/video/BV1Qv4y127B4
https://www.bilibili.com/video/BV1jh4y1D7Gh

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值