俗人俗语谈技术之端口地址

这篇是上周写的介绍端口地址的,已经授权发表于《电脑商情报·家用电脑》。

我们都知道,用IE浏览网站,通常使用HTTP 80端口,而连接FTP服务器下载软件,一般情况下使用的端口数字会是21。那么,这些奇怪的数字到底是什么,又有什么用途呢?

我们先来做一个假设,假设你在一家很大的公司工作,这个公司有许多的部门:市场部、销售部、售前支持部、售后服务部、行政部、人事部……,但这些部门共用同一个商业电话号码。这样,当某个客户拨打此电话号码寻求相应部门的服务时,肯定会陷入迷宫,因为他很难找到指定的人。还好,行政后勤部早想到了这些,他们为大家安装了电话分机,客户在拨通共同的商业电话号码后,再输入相应的分机号,便可以跟要找的人交谈,获取正确的服务。

这里的电话号码和分机号等同于网络中IP地址和端口地址。当你请求网络中的一项应用服务时,首先需要通过DNS找到某个特定的IP地址(公司对外统一的商业电话号码),然后在正确的端口地址寻求所请求的服务(拨打公司的分机号)。而为了将所请求的服务转发给客户,公司需要客户提供来源的电话和分机号。这样在互联网上,两个主机间端对端的通讯,需要4部分的地址,分别是:源端口号(客户的分机号)、源地址(客户电话号码)、目的端口号(公司部门分机)、目的地址(公司电话号码)。

实际上,上面的客户也是一家公司。网络中的每台联网设备都是一家很大的公司,它们都有自己的电话号码(IP地址)和分机号(请求或提供服务的端口地址)。根据理论,每个公司都有65536(2的16次方)个潜在的分机(端口地址),为便于交流,公司间相互协商,将其中的前256个保留用作常用服务,256至1024保留用作Linux特殊服务。比如80常被用作HTTP网页浏览,21则用来提供FTP下载;Telnet用端口23,SMTP用端口25。(更多请用记事本打开C:\WINDOWS\system32\drivers\etc\services文件)不过这只是一种约定俗成,你不必循规蹈矩,大可将这些服务的分机号改为1~65536之间的任何数字,只要不跟其它服务起冲突。

为了保护公司的某些部门免受骚扰,你还可以关闭、改变或限制某个分机号的访问,这便是防火墙。防火墙不仅可以控制端口地址,还可以控制访问的方向。举例来说,公司财务部的分机号是23,现在我关闭了此分机号方向为内向的访问,阻断了外界流向财务部的访问,但财务部却可以通过此分机号向外拨通电话,访问外部世界。

这就是网络世界中的端口地址,它在网络中有着巨大的作用。