📜  DCN-客户端服务器模型

📅  最后修改于: 2021-01-12 02:54:04             🧑  作者: Mango


两个远程应用程序进程可以主要以两种不同的方式进行通信:

  • 对等:两个远程进程都在同一级别执行,并且它们使用某些共享资源交换数据。

  • 客户端-服务器:一个远程进程充当客户端,并从另一个充当服务器的应用程序进程中请求一些资源。

在客户端-服务器模型中,任何进程都可以充当服务器或客户端。不是服务器的类型,计算机的大小或计算机的计算能力就可以使它成为服务器。服务请求的能力使机器成为服务器。

系统可以同时充当服务器和客户端。也就是说,一个进程充当服务器,另一个进程充当客户端。客户端和服务器进程都位于同一台计算机上,也可能会发生这种情况。

通讯

客户端-服务器模型中的两个流程可以通过多种方式进行交互:

  • 插座

  • 远程过程调用(RPC)

插座

在此范例中,充当服务器的进程使用一个众所周知的(或客户端已知的)端口打开套接字,并等待直到某些客户端请求到来。充当客户端的第二个进程也打开一个套接字,但是客户端不等待传入的请求,而是处理“请求优先”。

当请求到达服务器时,它得到服务。它可以是信息共享或资源请求。

远程过程调用

这是一种机制,其中一个进程通过过程调用与另一个进程进行交互。一个进程(客户端)调用位于远程主机上的过程。远程主机上的进程称为服务器。这两个进程都分配有存根。这种通信以下列方式发生:

  • 客户端进程调用客户端存根。它传递与本地程序有关的所有参数。

  • 然后打包(编组)所有参数,并进行系统调用以将其发送到网络的另一端。

  • 内核通过网络发送数据,另一端接收数据。

  • 远程主机将数据传递到未存入数据的服务器存根。

  • 将参数传递给过程,然后执行过程。

  • 结果以相同的方式发送回客户端。