计算机端口的自我学习总结

 

计算机端口的定义

在搜狗百科中,给端口这样的定义:

软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。(看不懂看不懂看不懂)

结合网络上的各种材料以及自己的理解,我这样“说端口”:

计算机操作系统给每个进程分配一个独一无二的进程号(PID,在任务管理器中可以看到),其中包括操作系统自身的系统进程,以及由用户执行的用户进程。如果报文里携带进程号,操作系统(TCP/IP协议栈)只要把报文转交给该进程号对应的进程就可以了。但数据报文里并没有携带进程号,那么操作系统如何能将报文准确无误地转交给真正的接收进程?操作系统设计者这样解决:给每个进程规定:如果各位想与外界(可以是同一台计算机上的其它进程,也可以是互联网上的任何计算机上的进程。)通信,必须将自己的进程号与本地的IP地址、端口号绑定起来!

简单地说,端口就像是一个班级中学生的学号,我一喊学号,对应的那个同学就会站起来。(这瓶旺仔牛奶给001号同学,此时001号同学就站起来取走了旺仔牛奶;我要把这个文件传输给某某进程(端口号001),此时这个进程就准确无误拿到了文件)

可以这么说:不同的进程有不同的端口号,用来区分软件。

端口数量

规定端口数量是0-65535(一共65536个端口号)

而端口分为TCP协议端口和UDP协议端口,因此端口数量翻倍,即65536*2

注意:同一个协议的端口号不能重复,不同协议的端口号可以重复(例如:软件A使用了tcp的50端口,则软件B不能使用tcp的50端口,但可以使用udp的5.0端口)。

计算机端口的分类

1. 公有端口0-1023

例如:

  • HTTP:80

  • HTTPS:443

  • FTP:21

  • Telent:23

    这部分端口专供系统内部使用。

2. 程序注册端口1024-49151

  • Tomcat:8080

  • SQL server:1433

  • MySQL:3306

  • Oracle:1521

    这部分端口分配给用户和程序使用

3. 动态、私有端口49152-65535

端口查询的常用DOS命令

netstat -ano        # 查询系统所有端口
netstat -ano|findstr "1433" # 查看指定的端口
tasklist|finstr "1433" #查询指定端口的进程

 

 

 

 

原文地址:https://www.cnblogs.com/awong18/p/13110936.html