在foolscap中,每个可以被访问的Referenceable对象有一个或者多个FURLs,当然,必须是安全的,我们使用权限安全来定义,意味着这些FURLs有以下2个特征:

l  获取FURL的唯一方式是从已经有这个furl的人那里获取,或者是第一个发布它的人。

l  只有最初的FURL创始人才会决定连接到哪一个Referenceable对象。如果你的tub.getReference(url)调用成功,那么你连接的Referenceable是正确的。

为了实现第一个目标,FURLs必须是不可猜测的。你可以注册一个适合读取的引用reference,若你的意图是使得别人能轻松的访问,但是一般使用tub.registerReference生成一个随机的名字,这样就保证了不可猜测性。

为了实现第二个目标,使用加密后的TubID作为主ID,位置提示就是:hints。若DNS被破坏了,将hostname指向不同的机器,或者认为的中途***导致连接到错误的box,TubID将与远端的不匹配,连接将会被丢弃。这样一些***可能导致服务的中断,但是不能导致连上错误的目标。

显然,只要你使用SSL才会有第二个特征。如果你选择使用unauthenticated Tubs,所有的安全特性都丢失了。

FURL的形式,如:pb://abcd123@example.com::5901,backup.example.com:8800/math-server,组成如下:

Ø  以字符串pb://开头

Ø  TubID

Ø  @字符

Ø  以逗号分来的“location hints”列表。每一个按照以下方式:

u  使用IPV4的TCP,经过DNS:HOSTNAME:PORTNUM

u  使用IPV4的TCP协议,不经过DNS: A.B.C.D:PORTNUM

Ø  字符/

Ø  引用reference的名称

转载于:https://blog.51cto.com/3572607/961033

foolscap实现rpc(四)相关推荐

  1. 手写RPC(一) 絮絮叨叨

    目录 前言 我的知识库 学会了? 学不动了? 前言 提到RPC(Remote Procedure Call)大家应该都不陌生,特别是像我一样做web开发的,可以说天天和rpc打交道.常见的rpc框架主 ...

  2. RPC 远程过程调用

    RPC简介 RPC,英文全称: Remote Procedure Call. 中文名: 远程过程调用,是一个计算机通讯协议.借助RPC可以像调用本地服务一样地调用远程服务.比如两台服务器订单服务器和商 ...

  3. hadoop如何学习?

    随着计算机网络基础设施的完善,社交网络和电商的发展以及物连网的推进,产生了越来越多的大数据,使得人工智能最近几年也有了长足的发展,大数据的存储和处理也越来越重要,国家对此也比较重视,学习大数据和人工智 ...

  4. openstack 逻辑构架真相

    转载自:http://blog.csdn.net/u010305706/article/details/52206175 别以为真懂OpenStack!先别着急骂我,我也没有说我真懂Openstack ...

  5. 【阅读总结】Improving IPC by kernel design

      该篇文章由Jochen liedtke所写,他发现自己L3操作系统还有很多可以提升的地方,主要就是IPC的效率提升,所以写了此文.该篇文章的确是引导做研究的好文章,在整体结构上,该篇文章首先抛出了 ...

  6. 第三十四期:花了一个星期,我终于把RPC框架整明白了!

    RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想. 作者:李金葵 RPC(Remote Procedure ...

  7. 微服务之RPC(远程过程调用)的四种方式

    微服务思想 微服务思想-注册中心zookeeper 微服务: 架构设计采用分布式思想,当服务器发生故障时,可以实现自动化的故障迁移.无需人为干预. 注册中心实现原理: ZK工作原理说明 Zookeep ...

  8. (三)四种流行的RPC框架(Dubbo/Motan/Thrift/Grpc)

    目录 ● Dubbo ● Motan ● Thrift ● Grpc 上述四种流行RPC框架的对比 ● Dubbo 本来阿里2014年就不在维护Dubbo了,直到2017年9月份又恢复了维护,可能一来 ...

  9. 第四篇 - 手写RPC框架

    Github源码下载地址:https://github.com/chenxingxing6/myrpc 一.前言 RPC(Remote Procedure Call)-远程过程调用,它是一种通过网络从 ...

最新文章

  1. 机器人流程自动化崛起,中国是否准备好迎接智能自动化时代?
  2. 装了mysql但是服务里没有反应_Mysql安装后在服务里找不到和服务启动不起来的解决方法...
  3. 数学建模_随机森林分类模型详解Python代码
  4. Winform中对DevExpress的RadopGroup的Description、Value、Tag、Text的理解与使用
  5. 伪类 选择器优先级
  6. GIt 从入门到放弃
  7. 嵌入式linux的驱动程序
  8. java中断线程_Java线程中断机制-如何中断线程
  9. 管理感悟:软件公司不加班还搞什么软件
  10. [源码和报告分享] 基于VC++的MFC类库实现的通讯录管理系统
  11. 【超全汇总】学习数据结构与算法,计算机基础知识,看这篇就够了
  12. 微信小程序前端登录模块设计
  13. Linux Backdoor
  14. 2021年中国消费金融行业贷款情况及发展趋势分析:互联网消费金融放款规模达到20.2万亿[图]
  15. amCharts使用方式
  16. Graham-Scan算法计算凸包的Python代码实现
  17. js判断数组,对象,是否为空,是否含有某个值,判断数组中对象是否有某个值
  18. Mybatis 之 二级缓存
  19. [翻译]C#和COM的互操作
  20. torch当中的MseLoss的reduction参数

热门文章

  1. 数字技术对就业的影响分析
  2. Facebook 重金挖不到,ASP.NET 之父,微软大神“红衣教主”传奇
  3. 为什么 Python 会成为程序员害怕的编程语言?
  4. 关于鸿蒙 2.0,那些开发者不知道的一切
  5. Hyperledger Fabric Docker 文件路径权限
  6. Mysql 源码安装
  7. Android -- Intent
  8. linux下apache服务器的配置和管理(启动、重启、中断服务)
  9. excel java concat
  10. 转载 :28 个 Unix/Linux 的命令行神器