一个进程可以被认为是一个运行在端系统中的一个程序,当程序运行在相同的端系统上时,它们使用进程间通信机制相互通信。进程间通信的规则由运行在端系统上的操作系统确定。当程序运行在不同的端系统上时,需要通过计算机网络交换报文而相互通信。发送进程生成并向网络中发送报文;接收进程接收这些报文并可能通过将报文发送回去进行相应。
进程与计算机网路之间的接口
进程通过一个称为套接字(socket)的软件接口向网络发送报文和从网络接收报文。进程类似于一座房子,而它的套接字就类似于它的门。应用程序开发者可以控制套接字在应用层端的一切,但对于运输层端的控制仅限于:1. 选择运输层协议;2. 设定几个运输层参数,如最大缓存和最大报文段长段等。
进程寻址
一台主机上运行的进程要向另一台主机上运行的进程发送分组,发送进程需要知道接收进程的地址,为了唯一标识接收进程,需要定义两种信息:
1. 主机地址:主机地址由IP地址标识。一个IP地址唯一标识一台主机。
2.进程标识符:由端口号标识。在同一台主机上,一个端口号唯一标识一个进程。也就是唯一标识了一个套接字。
服务的概念
整个计算机网络是分层的,下层为上层提供服务,上层只需要调用适合自己的服务就可以了,不必关心该服务是怎么实现的。应用程序想发送消息,只需要将消息发送给套接字就行了,套接字的另一端,运输层会提供相应的服务(封装消息,然后继续往下层传递消息)。