各种计算机之间通过互联网进行通信主要依靠TCP/IP协议。该协议分为4层,由上到下分别为应用层、传输层、网际层和链路层
。
TCP/IP协议总是下层为上层协议服务,下层协议的细节对上层协议来说是透明的。TCP/IP协议在每层协议中都定义了非常多的不同的协议,
比如网际层的ICMP协议、IGMP协议,传输层的TCP协议、UDP协议等。
在众多协议中,最具有代表性的是TCP/IP协议。
IP协议是“Internet Protocol”的简称,它是计算机网络相互连接进行通信而设计的协议。在IP协议中最重要的就是IP地址
,IP地址是用来在网络上唯一标识一台计算机主机的地址。
互联网中没有两个机器
有相同的IP地址,因此它是用来标识一台网络主机的。所有的IP地址都是32位长,它用点分十进制表示,比如“10.10.30.16”。
IP地址指定的不是主机,而是网络接口设备
。因此,一台主机有两个网络接口,那么就会有两个IP地址。通常情况下,对于一台普通主机只有一个网络接口设备,也就只有一个IP地址。比如:个人使用的PC通常只有一个IP地址;
而对于服务器来说,则会有多个网络接口设备,每个网络接口设备都有一个IP地址,比如WEB服务器可能就会有多个IP地址。
IP地址被分为5类,分别是A类、B类、C类、D类和E类。各类IP地址范围如下所示。
传输层有两大协议,分别是TCP协议和UDP协议。
TCP协议是“Transmission Control Protocol”的简称,其意思是传输层控制协议。TCP协议是一种面向连接的、可靠的通信协议。TCP协议是IP协议的上层协议,IP协议服务于TCP协议。
UDP协议是“User Datagram Protocol”的简称,其意思为用户包协议。UDP协议是一种无连接
的传输层协议,提供面向事务的简单不可靠
信息传送服务。
传输层是为应用层提供服务的,应用层的协议一部分是基于TCP协议的,比如FTP、HTTP。而一部分是基于UDP的,比如DNS协议。IP层提供了IP地址
用来标识网络主机,而传输层提供端口
来标识主机中的进程。确定了IP地址和端口号,就确定了网络上的主机以主机上通信的进程。
传输层提供了标识通信进程的端口号。按照协议划分,端口号分为TCP端口和UDP端口,TCP端口和UDP端口各有65536个。对于应用程序而言,一般使用大于1024
的端口号,因为小于1024的端口属于保留端口。Internet上的很多服务都是用小于1024的端口号。为避免冲突,程序员自己编写的应用程序不要使用小于1024的端口号。同一协议的端口不能冲突,比如Web服务器占用主机TCP协议的80端口,那么另外的程序就不可以再使用TCP协议的80端口。
常见的端口号如下图所示。
除了小于1024端口号外,还有一些比较有名的端口号,比如MY SQL Server的端口号是1433,Windows的远程桌面端口号是3389等。程序员在编写自己的网络应用程序时,要避免与这些常用端口冲突。