•前面讲了运输层、网络层和接口层。在实际应用中,运输层、网络层和接口层通常在操作系统内核中实现,一个内核中实现了TCP/IP协议的操作系统可称为TCP/IP网络操作系统。
•这样一个网络操作系统为上层(应用层)提供了网际应用进程间的通信能力
•为实现网际进程间通信需要预先解决的几个问题:
–进程标识:
由于进程可处在不同的主机,因此首先要标识主机,其次,如果进程号的分配任意,那么提供相同服务的进程可能在不同时刻有不同的进程号,不利于通信实现,因此采用比进程号更为稳定的:端口作为进程标识。合起来即为:
(本地地址,本地端口)
–协议标识
网际:不同协议工作方式、数据格式等都不同,加上协议即为:
(协议,本地地址,本地端口),而一个完整的网际进程通信要有遵守相同协议的两个进程参加,因此一个完整的网际进程通信标识要用五元组:
(协议,本地地址,本地端口,远程地址,远程端口)
•为实现网际进程间通信需要预先解决的另外一个问题:
•进程间通信的作用模式
–不同进程交换信息、数据的方式,在TCP/IP中,最主要的进程间相互作用模型是客户-服务器模型,大部分应用层服务都利用此作用模式。
•客户-服务器模式
–服务器:指任何提供(通过网络可以访问的)服务的程序。服务器通过网络接收请求,并进而提供服务返回给请求者。如果一台计算机主要用于执行某个服务程序,则也可以把该计算机称为提供某个服务的服务器。
–客户:向服务器发送请求并等待响应的程序都可称为客户。
•客户-服务器模式的示意图(下页)
–请求
–响应
•为何采用客户-服务器模式?
–需求上:网络状况资源、运算能力、信息量的不平等,导致对非对等作用的需求
–技术上:网上通信的异步,客户-服务器提供通信的同步机制
•
•其它相互作用模式
–分布式系统:
•特点:每台主机都必须有一个不断的并法进程,搜集或发送信息
•例子:路由系统,每一个路由器
–中间状态系统:
类似IDC
•客户-服务器模式中非对等双方的位置:
–服务器 和客户机的生存期不同:服务器在通信前就应启动,而后不间断地等待、接收请求、响应请求。而客户机可以是任何时候启动、发出请求并等待响应,之后就可以终止。
–服务器在一个为服务而保留的周知端口等待请求。而客户为了进行通信可以任意指定一个未用的、非保留的端口。
•可见,服务器的建立通常比客户机要困难,除了运行服务之外,还必须实现对主机的访问和保护策略,并对所有可能的错误实施必要的保护措施。
•服务器实现中的并发请求处理:两个方案
–并发服务器
•启动时启动守护进程
•有请求时,产生新子进程响应请求
–重复服务器
•请求队列
•FIFO
•通常实时性要求较高的应采用并发方式。
领取专属 10元无门槛券
私享最新 技术干货