3.1.1 端口

通过前面章节的学习,我们知道在IP协议层提供了主机之间传输数据的能力,每个数据报根据其目的主机的IP地址进行互联网中的路由。但是,在目的主机上往往运行着多个网络应用程序,并且它们分别发送和接收数据包。那么,TCP/IP互联网如何能够区分不同应用程序的数据呢?这就是如何在IP层上复用同一个网络接口。在TCP/IP互联网中,通过引入端口的概念来解决应用程序复用网络接口的问题。

端口的作用好比日常生活中寄送邮件中的寄件人或收件人姓名,IP地址的作用好比是寄件人或收件人的地址。当邮件寄到了某个地址后,还必须通过收件人的姓名才能确定邮件最终的接收者。

TCP/IP互联网在IP层上的运输层引入了两个协议,分别是UDP协议TCP协议,其中TCP协议在后面的章节讨论。两个协议中都采用了端口的方式来提供网络接口复用功能。端口是一个16比特的二进制代码,运输层的报文(包括UDP报文TCP报文)结构中有一个源端口和目的端口字段,分别用来存放源端口号和目的端口号,以标识该报文由源主机的哪个端口发送出来,需要发送给目的主机的哪个端口去。

因此,端口为TCP/IP互联网在运输层提供了一种面向应用层的应用程序的复用机制,使多个应用程序可以共同分享同一个网络接口资源。

端口和IP的共同点和区别:端口号用两个字节(16位)表示,范围为0-65535。它是一个具有网络功能的应用软件的标识号。IP地址唯一标识了一台电脑,而端口号唯一标识了此电脑上的一个网络应用程序。通过这种地址组合,网络上的数据包能够准确的到达某台电脑的某个应用程序,从而进行通信。