终端可以是任何设备,如PC、手机、联网电视等,为了方便,我们通常可以简单的理解为电脑。
把一个又一个的电脑连接起来,并让它们相互可以交流信息,这就构成了网络。网络不一定是Internet(英特网、互联网),英特网只是众多网络的一种形式,也是全球最大的计算机网络。其它的网络形式可以是教育网,公司企业的内部局域网,家庭里几台电脑组成的小局域网等等。
很简单,通过网卡(当然也有别的技术,为了简化,这里就只理解为网卡,我们也不去深入讨论各种复杂的协议)。网卡内包含了互联网的基础协议(TCP/IP),我们不需要深入了解这个协议怎么工作的,总之,电脑如同一个房子,网卡就是房子通向外边世界的那个大门。
前面提到了,网卡是连接网络的必要出口。然而,这个出口并不只有一个通道与网络连接。这好比你走出你家大门,然后看到N多条途径可以通往大街一样。这些我们理解为端口。受限于16为二进制码,电脑的端口一共为65535个。你不需要记下这个,其实,这些端口的作用都一样——就是与网络交换数据信息。只不过,为了避免出现“哄抢”某一端口导致网络堵塞的情况,0到1024端口被限制并分配给了固定的协议或程序,如远程桌面的3389、FTP的20和21等等。虽然你也可以更改这些程序所使用的端口,但业界里,这些程序是默认使用分配好的端口的。
65535个端口,看似用不完,但是要知道,每一个终端只有65535个。这就产生了一个问题:
假设有一个巨大的庄园,里面的布局是这样的:有N多个房子,每个房子有一个大门(网卡)通往庄园的出口,而走出这个大门,你都会看见65535条途径可以通往庄园的出口。而当你走到庄园的出口(另一个大门,另一个网卡,通常在现实生活中会表现为路由器),又会看见65535条途径通往外边的世界。
虽然比喻不是那么的恰当,但是这应该能帮助一些人理解端口映射和转发等概念了。如有不恰当的地方,欢迎大家指正。