目录
前言
一、进程
1.1 进程是什么?
1.2?进程有什么用?
1.3?进程如何标识?
二、端口
2.1 进程标识符是否可供计算机之间使用呢?
2.2 端口号的由来
2.3?端口号是什么?
2.4?如何使用端口号进行通信?
2.5?端口号如何分配?
总结
前言
问题:进程号和端口号有什么联系?它们分别有什么作用?
提示:以下是本篇文章正文内容,下面案例可供参考
一、进程
1.1 进程是什么?
????????进程(Process)是计算机中的程序关于某数据集合上的一次运行活动;
1.2?进程有什么用?
? ? ? ? 通过将计算机中程序关于某数据集合上的一次运行活动进行数据抽象化,即将进程数据抽象化,通过控制数据来控制进程对CPU的使用,同时控制数据来控制对计算机资源的使用;
例1:通过控制数据在队列中的排列,来控制进程对CPU的使用情况;
例2:将I/O设备抽象成数据,通过将数据分配给进程,进而实现将I/O设备的使用权分配;
1.3?进程如何标识?
? ? ? ? 进程由进程标识符进行标识,存储在PCB(进程控制块)中;
但是这些都是发生在计算机内部,是否计算机间也可以这样操作呢?
二、端口
2.1 进程标识符是否可供计算机之间使用呢?
????????这主要是计算机网络涉及的内容,应用层代表的就是我们的应用进程,既然进程代表着应用层,那为什么进程标识符不能作为应用层的标识来进行计算机之间传输呢?
(1)首先:?单个计算机中的进程使用进程标识符来标志的,但是在互联网环境下使用的计算机操作系统种类很多,而不同的操作系统又使用不同格式的进程标识符,为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须使用统一的方法对TCP/IP体系的进程进行标识;
(2)其次:一个机器上运行的进程不能成为互联网上通信的最后终点,因为进程的创建和撤销都是动态的,通信的一方几乎无法识别对方机器的进程是哪一个;
例如:要和互联网上某个邮件服务器联系,几乎无法得知其服务器邮件进程的进程标识符,因为进程标识符是随机分配的;所以,我们并不一定要知道这个服务器服务是由目的主机那个进程实现的;
所以,不能使用进程标识符来做计算机之间的进程通信标识;
2.2 端口号的由来
????????我们通过在运输层使用协议端口号:
????????(1)首先,各个操作系统的主机都统一;
????????(2)另外我们不必知道目的进程的进程标识符,我们只需要知道某端口号是作为什么功能而开放的即可,我们只需要将数据交给目的主机的某个合适的端口,剩下的工作(即最后交付目的进程)由TCP或UDP完成;
例如:服务器的目的进程,通过监听以及TCP的Receive()来完成最后交付,将数据包交付给目的进程的工作;
2.3?端口号是什么?
????????这种在协议层间的抽象的协议端口是软件端口,不同于机器上实实在在存在的硬件端口,软件端口是作为应用层进程与运输层数据交互的一种地址;
2.4?如何使用端口号进行通信?
????????两个计算机中进程要互相通信,除了必须指定对方的IP地址,还需要知道对方的端口号;
例如:我们寄信的过程说明,当我们要给某人写信时,除了通讯地址还要有收件人的名字,这里的通讯地址就是IP地址,但是收件人的名字却不是进程标识符,因为有可能这个人用的是法文、德文、英文名字,快递员无法识别,因此采用 “菜鸟驿站" 的模式,为每个地址配备多个快递箱(端口号),快递员只是将包裹放置具体的快递箱(端口号),收件人通过监听某个快递箱是否有快递(TCP或者UDP),来进行数据接收,最终拿到需要的包裹(数据);
2.5?端口号如何分配?
????????因为目前互联网上的计算机通信主要采用客户-服务器的方式,针对客户和服务器设置了一些端口号;
????????(1)服务器使用的端口号:
? ? ? ? 一类为熟知端口号或系统端口号(0~1023),将一些重要的应用程序进行登记,所以将一些端口号固定的分配给它们,以便于让所以的用户的了解,与之建立联系;?
? ? ? ? 另一类为登记端口号(1024~49151),为那些不知名的应用程序使用;
????????(2)客户机使用的端口号:
????????也称为短暂端口号,由于这类端口仅仅在客户进程进行时才动态选择,留给客户进程短暂使用,当通信结束后,刚才使用过的客户端口号不复存在,可以继续供其他客户进程使用;
总结
????????进程用于多道程序系统,对不同应用进程的处理;
????????但由于操作系统不同,进程标识符无法统一,而且进行由于进程标识符的随机分配,通信双方的进程无法得知目的进程的标识符;
????????所以通过端口号来标识进程提供的服务,通过端口号来寻找具体服务,进而将数据传递给相应的进程;
|