【网络】网络原理中的端口号

1.端口号的概念

数据链路和IP中的地址,分别指的是MAC地址个IP地址,前者用来识别同一链路中不同的计算机,后者用来识别TCP/IP网络中互连的主机和路由器。在传输层中,端口号(Port)标识了一个主机上进行通信的不同的应用程序,它是32位。因此,他也被称为程序地址

在网络中,端口大致有两种意思:一是物理上的端口,比如:集线器、交换机、路由器用于连接其它网络设备的接口,如RJ-45端口、SC端口等等。二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如浏览网页服务的80端口,用于FTP服务的21端口等等。

端口号作用:他用来标识一个进程,告诉操作系统,当前的数据要交给哪一个进程来处理;端口号+IP地址就可以组成一个套接字,用来标识一个进程。

那么TCP/IP协议中的端口指的是什么呢?如果把IP地址比作一间房子,端口就是出入这间房子的门。端口号就是打开门的钥匙。真正的房子只有几个门,但是一个IP地址的端口可以有65536个之多。端口是通过端口号来标记的,范围是从0到65535。

                          【网络】网络原理中的端口号

 

2.通过IP地址、端口号、协议号进行通信识别

仅仅凭目标端口识别某一个通信是远远不够的。在TCP/IP通信中通常采用5个信息来识别一个通信(可以通过netstat -n查看)。它们是“源IP地址”、“目标IP地址”、“协议号”、“源端口号”、“目标端口号”。只要其中某一项不同,则被认为是其他通信。

                        【网络】网络原理中的端口号

 

3.端口号范围划分

0-1023:指明端口号,HTTP,FTP(文件传输),SSH(加密的远程登录系统)等这些广为使用的应用层协议,他们的端口号都是固定的;

1024-65535:操作系统动态分配的端口号,客户端程序的端口号,就是由操作系统从这个范围分配的;

4.端口号与协议

端口号由其使用的传输层协议决定的。因此,不同的传输协议可以使用相同的端口号。例如,TCP与UDP使用同一个端口号,但使用的目的各不相同。这是因为端口号上的处理是根据每个传输协议的不同而进行的。

数据到达IP层后,会先检查IP首部中的协议号,再传给相应协议的模块。如果是TCP则传给TCP模块、如果是UDP则传给UDP模块去做端口号的处理。即使是同一个端口号,由于传输协议是各自独立地进行处理,因此相互之间不会受到影响。

此外,那些知名端口号与传输层协议并无关系,只要端口号一致都将分配同一种程序进行处理。例如,53端口在TCP与UDP中都用于DNS服务。而80端口用于HTTP通信。

一些常用的服务器使用以下固定的端口号:

  • SSH(加密的远程登录系统)服务器,使用22端口;
  • FTP(文件传输)服务器:使用21端口;
  • Telent(远程连接服务)服务器,使用23端口;
  • HTTP(超文本传输协议)服务器,使用80端口;
  • HTTPS(安全的超文本传输协议)服务器,使用443端口

参考文章:https://blog.****.net/if9600/article/details/73441380