因特网应用一般要涉及不同主机中两个进程跨网络进行的通信。这两个进程通过经由各自的套接字(socket)发送和接收报文彼此通信。可以把因特网套接字看作进程与网络之间的“门槛”:进程须经自身的套接字把报文发送到网络或从网络接收报文。当某个进程想给另一主机中的对等实体发送报文时,就把该报文送出自家门槛。该进程可确信在这门槛外有专门的设施会把报文传输到信宿进程的门口。
图4-22展示了通过因特网彼此通信的两个进程间的套接字通信。可见,套接字是主机内应用层和传输层之间的接口。或者说,套接字是主机操作系统进程与网络之间的门户。一旦选定某个可用的传输协议,就使用由该协议提供的传输层服务来构造应用程序。要让因特网上的某台主机中的进程给另一主机中的进程发送报文,发送进程必须能够识别接收进程。
图4-22 套接字
为了理解套接字,让我们先考虑主机地址。在因特网应用中,接收主机是用其IP地址(IP address)标识的。现在,只要知道IP地址是唯一地标识每个端口接入系统的一个32位二进制数值就足够了(确切地说,IP地址唯一地标识了各主机上连接因特网的接口)。除了知道接收进程所在端口接入系统的地址外,发送进程还得指定可让接收端口接入系统把所传送报文定位到接收进程的信息。因特网中用于此目的的是接收进程的端口号。换句话说,套接字实际上就是“IP地址+端口号”(参见图4-23)。(www.xing528.com)
流行的应用层协议已被赋予特定的端口号。例如,一般Web服务器进程的默认端口号为80,邮件服务器(SMTP)默认端口号为25。RFC1700列出了所存因特网标准协议的公开端口号。在开发新的网络应用程序时,必须赋予它一个新的端口号。
图4-23 端口号IP地址
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。