我们知道传输层是负责数据从发送端到接收端,负责端对端的通信。
端口号(port)标识了一个主机上进行通信的不同的应用程序。,因此被称为程序地址。
传输层正是利用这些端口号识别本机中正在进行通信的应用程序。
但是仅凭目标端口识别某一个通信是远远不够的。
如上图所示:①和②的目标端口是相同的,但是源端口不同,就可以根据原端口进行区分。
同理③和①的目标端口和源端口都是相同的,但源IP地址不同,就可以根据源IP地址区分。
所以通常用==源IP”、“目标IP”、“源端口”、“目标端口”、“协议号”==这样一个五元组来唯一标识一个通信。
(可以通过netstat -n查看)
端口范围划分
0 ~ 1023:知名端口号,HTTP , FTP , SSH等这些广为使用的应用层协议
1024 ~ 65535: 操作系统动态分配的端口号. 客户端程序的端口号, 就是由操作系统从这个范围分配的.
认识知名端口号
ssh服务器:使用22端口
ftp服务器:使用21端口
telnet服务器:使用23端口
http服务器:使用80端口
https服务器:使用443端口