TCP与UDP协议初步学习——网络环境中分布式进程通信的基本概念

TCP与UDP协议初步学习——网络环境中分布式进程通信的基本概念

一、单机系统中进程通信方法

进程和进程通信是操作系统中最基本的概念,首先通过回忆操作系统课程中,关于单击系统中进程和进程通信的问题描述:
1)程序是一个在时间上按照严格次序的前后相继的操作序列,是一个静态的概念,程序体现了编程人员要求计算机所要完成的功能应该采取的顺序步骤。
2)进程是一个动态的概念,它是程序对某个数据的执行过程进程具有并发的特性,是分配计算机资源的基本单位,进程的静态描述是由三个部分组成程序控制块,有关程序段和对其操作的数据。
3)单机系统中多个进程共享单一的CPU,因此在一个时刻某个进程在使用CP有而有的进程,在等待分配CPU有的进程,在等待其他的条件,一个进程在不同的时刻处于不同的状态,正在运行的进程叫做运行状态,等待分配CPU的进程叫做序态,而等待其他条件的进程叫做等待态。进程的状态反映出进程执行过程的变化。
4)要保证系统正常的工作操作系统,必须对进程的创建撤销与状态转换进行控制,在操作系统的支持下,计算机系统的各个进程相互独立并发运行。
5)进程在并发运行过程中需要进行信息交换,目前通常用的通信机制有消息缓冲区,通信,管道通信和信箱通信。进程调度程序记录系统中所有进程的执行状态,选择占有处理机的进程,进行一个进程上下文的切换,所有这些均在操作系统的控制下有条不紊的进行。
6)从进程的观点来看,操作系统是由可以独立运行的程序和一个对这些程序进行协调的核心所组成,这些同时运行的程序叫做进程,每一个进程完成一种测定的任务,而操作系统的核心则是控制和协调这些进程的运行解决进程之间的通信。

操作系统一般包含两层意义:
一是指操作系统的内核;
二是指包括操作系统在内的广义的服务功能,它应该包括除内核之外的一组外部命令以及软件开发环境与窗口系统等。

二、网络环境中分布式进程通信的特点

1.网络环境中进程通信必须解决的主要问题

“计算机网络是分布在不同地理位置多台独立计算机系统的集合”

“独立的计算机”系统意味着联网的每一台计算机的操作与资源是由自己的操作系统管理,用户共享,网络资源及网络所能提供的服务,最终是通过网络环境中分布式进程通信来实现的,这种网络环境中的进程通信与单机系统内部的进程通信的主要区别在于网络主机的高度自主性,因为网络中不同的主机系统之上,没有一个高层的操作系统进行统一的进程与资源控制管理,因此网络中一台主机对某一台主机的活动状态,对于这台主机系统中的各个进程状态。这些进程什么时间参与网络活动,以及他们希望网络中哪一台主机的什么进程通信等情况一概无从知道,如果实现网络环境中,分布在不同主机系统中的进程间实现通信这些重要的问题都必须提出解决办法。
网络中分布式进程通信的实现必须解决以下三个主要问题:进程命名与寻址方法,多重协议的识别,进程间相互作用的模式。

2.网络环境中的进程标识(端口号)

进程标识:在一台计算机中不同进程可以用进程号或进程标识唯一的表示出来。
网络环境中进程标识需要使用主机地址,网络环境中一个完整的进程标识应该是本地主机地址,本地进程标识,远程主机地址,远程进程标识;
用户使用的角度看。用户服务程序是用名字表述的。例如:文件传送协议FTP、域名服务DNS、电子邮件Email等。
但是计算机系统需要使用它可以理解的数字代码及进程地址,因此必须建立进程名字与进程地址之间的映射关系,并且通过名字服务程序来完成进程名字与进程地址之间的转换。

进程地址也叫做端口号port number。端口号是TCP与UDP协议与应用程序连接的访问点是TCP与UDP协议软件的一部分,TCP/IP的传输层协议规定了一些标准保留端口号用于服务器进程,用户可以申请使用非保留端口号,在这些非保留端口号,在本机中也是唯一的,因此端口后可以作为网络环境中的进程标识。

如果网络环境中两台主机要实现通信,那么首先要约定好传输层协议类型,考虑到进程标识和多重协议的识别,那么网络环境中一个进程的全网唯一标识需要一个三元组来表示:协议-本地地址-本地端口号(半相关)
网络环境中进程通信是涉及到两个不同主机的进程,因此一个完整的进程通信标识需要一个五元组来表示:协议-本地地址-本地端口号-远地地址-远地端口号(全相关)

三、对进程间相互作用模式client/server的理解

1.什么是client/sever模式

发起通信进程的本机计算机进程叫做客户进程client,远程计算机提供服务的进程就服务器进程server,网络环境中通信进程采用client进程发出服务,请求远程server进程响应客户端请求提供服务的进程之间的通信模式叫做client/server模式。

2.采用client server模式的理由。

一)网络资源分布的不均匀性。
1.硬件网络主机系统类型,作用和能力存在着巨大的差异。
2.软件出于所有权管理与运行环境要求等原因,很多大型应用软件都是安装在某一台主机系统中,网络用户可以通过网络去访问成为合法用户,然后提出和完成计算任务。
3.信息资源在网络中,某些信息以数据库方式集中在一台或几台具有收集维护和更新特权的主机中,其他合法用户可以访问这些信息资源,这样做保证信息使用合法性、安全性以及保证数据的完整性与一致性是非常必要的。
4.网络资源分布不均匀性客观存在。能力强,资源丰富的充当server能力弱,需要某种资源的成为client。
二)网络环境中进程的异步性。
1.分布在不同主机系统中的进程进程,什么时间发出通信请求?希望哪一台主机的哪一个进程通信以及对方进程是否能够接受通信请求全然不知。
2.不存在一个统一调度的协调的高层操纵系统。
3.client/server模式的工作实质是请求驱动,每一次由client经常随机发起
4.server进程从开机之时就处于等待状态,以保证及时响应client的服务请求,为了实现server的功能,在server的设计中要解决server的并发请求处理能力,并发sever进程标识以及server安全等几个主要问题。

四、通信进程中client server模式实现方法

1.server对并发请求处理的能力。

client的进程发出请求是完全随机的,因此server必须要处理并发请求的能力,解决server处理并发请求的方案基本有以下两种:一是设计并发服务器;二是采用重复服务器的方法。
并发服务器的核心是使用一个守护程序,该程序在系统启动的时候随之启动,在没有客户请求到达时并发服务器处于等待状态,一旦客户服务请求到达服务器,根据客户服务请求的进程后去激活相应的子进程,由紫禁城为客户提供服务,而服务器回到等待状态,服务器必须拥有一个全网熟知的进程地址网络中的。客户进程可以根据服务器进行数值地址向服务器提出服务请求,在实现进程通信的过程中,服务器与服务器进程分别形成自己得办相关三原组织的进程地址建立全相关的五元组。
重复服务器是通过设置一个请求队列来储存客户的服务请求,服务器,采用先来先驱动的原则来顺序处理客户的服务请求。

2.UNIX进程通信实现方法(略)

小结:在client/server模式中所有的进程通信都是由客户发起,如连接请求服务请求等。因此客户必须要知道服务器socket地址,包括服务器的#IP地址#和#服务器端口号#,而服务器端口号是熟知的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值