[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.  

posted @ 2016-07-04 13:09  若离相惜  阅读(454)  评论(0)    收藏  举报