端口号详细理解
先理解网络通信中端口号扮演的角色,再理解端口号。
网络应用进程通信
在不同端系统上的进程,通过跨越计算机网络交换报文(应用层报文message)而互相通信。称之为客户机进程为发起通信的进程,服务器进程为等待通信请求的进程。
socket
应用程序之间的通信,由通信进程对组成,每对中的两个进程互发报文。
进程通过套接字socket的软件接口向网络发送报文和从网络中接收报文。
总结:不同端系统的应用进程通过进程对中的两个进程互发报文进行通信,利用套接字提供的API进行发送报文。
因为在两个不同端系统间互通,网络中进程的报文,必须通过下层网络。而套接字提供了应用程序和传输层的接口,实现上层网络和下层网络之间的通信。
进程寻址
进程间的通信需要借助IP地址+端口号来唯一标识网络中的进程。
总结:
主机之间的通信需要通过发送报文来进行通信,报文由应用程序中的进程对互相发送的,报文的发送必须要流过下层网络,由应用层到传输层需要通过socket提供的API进行传输;在进程对通信的过程中要利用到IP地址+端口号的方式来唯一标识网络中的进程。
端口号
-
在操作系统中,端口号是一个用于标识网络上特定进程或网络服务的数字。IP地址+端口号的方式用来确保进程通信的正确发送。
-
当使用基于TCP/IP协议的网络服务或者应用进程使,便会产生端口号,端口号用于区分一台主机中的不同进程/服务。
-
端口号主要用于TCP和UDP协议,两种协议工作在传输层。
作用
在网络中计算机通过IP地址来代表其身份,它只标识某台特定的主机,同一台主机中可以同时提供多种服务,如数据库服务、FTP服务、Web服务等,通过特定的端口号可以将不同的服务区分开来,或者说是区分网络通信中不同的应用程序进程。
端口号解决的问题:
多任务处理:在现代计算系统中,通常有多个应用程序同时运行,这些应用程序可能都需要使用网络进行数据交换。端口号允许同一台计算机上的不同应用程序同时使用同一个网络地址(即IP地址),而通过不同的端口号进行区分。
精确的数据传输:端口号确保数据能够被发送到正确的应用程序。例如,一台服务器可能同时运行Web服务(使用HTTP或HTTPS协议)和邮件服务(使用SMTP协议)。这些服务通过各自的端口(例如80或443用于Web,25用于SMTP)接收数据。因此,端口号帮助网络中的数据包找到正确的目的地。
安全和管理:通过监视和控制端口号的使用,网络管理员可以增强系统的安全性。例如,某些端口可能被防火墙或安全软件封锁,以防止未经授权的访问或减少潜在的网络攻击风险。
协议支持:某些网络协议和服务有固定的端口号。例如,HTTP通常使用端口80,而HTTPS使用443。这种标准化使得通信更加高效和可靠。
会话控制:在某些情况下,端口号可以用来区分同一应用程序内的不同通信会话。例如,一个Web浏览器可能同时打开多个网站,每个网站的数据流可能通过不同的端口来管理。
————————————————版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/wykqh/article/details/135119850
端口号类型
端口号地址占位为16比特,2的16次方为65536个,又因0为保留无效端口,故而端口号 数量为65535个,范围为1-65535。
端口号分布划分
- 知名端口号(Well-Known Ports)
范围0-1023,这些端口号一般固定分配给一些服务。
如:21端口分配给FTP,25端口分配给SMTP,80端口分配给HTTP,123端口分配给RPC等等。
- 动态端口(Dynamic Ports)
范围1024-65535,不固定分配给某个服务。运行的程序向系统提出访问网络申请,系统从这些端口号中分配给该程序使用。
动态端口也常常被病毒木马程序利用,如冰河默认连接端口是7626、WAY2.4是8011、Netspy3.0是7306等。