应用进程(包括服务器和客户端)可以将自己关联到一个TSAP(实际上就是端口号)上,以便与远程的TSAP建立连接。我们知道,只有少数的服务有固定的TSAP地址,绝大多数服务并没有与固定的端口进行绑定,所以这些服务的发送端就需要知道接收端对应的应用进程的TSAP地址。
这就导致了一个问题,一个服务器上有大量潜在的服务进程,但是大多数的进程都不常用,让每个服务进程都进行监听一个TSAP地址是非常不明智的,会浪费大量的服务器资源。以下就有两种传输层的寻址方案来解决这些问题:
一、进程服务器的TSAP地址分配方案
它是先由进程服务器为各应用进程集中建立初始传输连接,然后再转移给对应的服务进行正式的传输连接。
使用一个特殊的进程服务器来集中为那些使用较少的服务提供监听代理功能。它可以同时监听一组端口,等待外来连接的到来。
流程图如下:
详细步骤说明如下:
1、用户向服务器发送一个传输连接请求,如果没有专门的服务器在等待,则会得到一个与“进程服务器”之间的连接。
2、进程服务器接到了用户的连接请求后。装在对应的用户进程,启动与该请求对应的服务。
3、进程服务器为该用户进程分配一个临时的TSAP地址,用户与对应的服务器初始连接,允许对应的服务执行用户请求的工作,而进程服务器则继续监听新的请求。
二、名称服务器的TSAP地址分配方案
在一些特殊情况下,有些服务的运行必须独立于进程服务器。在一些知名的服务中,用户主机应用进程非常多,但不是所有应用进程都繁忙,就会导致一系列问题。有的主机可能只担当少数几种服务器角色,绝大多数知名服务在这台主机中并没有实际提供。因此需要对这些知名服务进行集中管理。
名称服务器,又称目录服务器,即我们常说的DNS服务器。
名称服务器总是在监听一个特定的知名服务端口。在这种方案中为了找到与给定的服务名字相对应的TSAP地址(端口),用户需要和名称服务器建立连接,然后用户发送一条消息指定它想要的服务名字,名称服务器则发回相应的TSAP地址。
随后,用户将它与名称服务器之间的连接释放,再与期望的服务建立连接。
一个新的服务被创建时必须向名称服务器注册,并把它的服务名字和TSAP地址告诉名称服务器。名称服务器把新服务的信息记录到它的内部数据中,在以后用户查询时就知道了。