[Binder学习篇三:抽象Binder] Binder和TCP/IP
Binder的四大部分:
① Binder Driver
② Service Manager
③ Binder Client
④ Binder Server
与TCP/IP类比:
① Binder Driver ——> 路由器
② Service Manager ——> DNS
③ Binder Client ——> 客户端
④ Binder Server ——> 服务器
TCP/IP中一个典型的服务器连接过程(如客户端通过浏览器访问Google主页)如下图所示:

上图中的四种角色:Client、Server、DNS和Router。它们的目标是让Client和Server建立连接,分为如下几个步骤:
① Client向DNS查询Google.com的IP地址
显然,Client一定得先知道DNS的IP地址,才有可能向它发起查询。DNS的IP设置是在客户端接入网络前就完成的,否则Client将无法正常访问域名服务器。
如果Client已经知晓了Server的IP,那么完全可以跨越这一步而直接与Server连接。比如Windows操作系统就提供了一个hosts文件,用于查询常用网址域名与其IP地址的对应关系。当用户访问某个网址时,系统会先从这个文件中判断是否已经存在这个域名的对应IP。如果有就不需要向DNS查询了,从而加快访问速度。
② DNS将查询结果返回Client
③ Client发起连接
Router的作用:将数据包投递到用户设定的目标IP中,即Router是整个通信结构中的基础。
通过上述类比,很容易发现TCP/IP模型和Binder模型结构上的相似性。
那么ServiceManager作为Binder的”DNS“,当Client访问某个Service时,首先需要通过”DNS“也就是Service Manager查询该Service,那么”DNS“也就是Service Manager的”IP“地址是多少呢?Binder机制有如下规定:
Service Manager 在Binder通信中的唯一标志永远都是0.

浙公网安备 33010602011771号