计算机端口

“I would trade all of my technology for an afternoon with Socrates.”-----Steve Jobs

   我愿意用我所有的科技去换取和苏格拉底相处的一个下午。                                                              


在Internet上,各主机间通过TCP/IP协议发送和接收数据报,把数据 顺利的传送到目的主机是没有问题的。大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据报传送给众多同 时运行的进程中的哪一个呢?为解决此问题,端口机制便由此被引入进来。

本地操作系统会给那些有需求的进程分配 端口,每个协议端口由一个正整数标识,如:80,139,445,等等。当目的主机接收到数据报后,将根据报文首部的目的端口 号,把数据发送到相应端口,而与此端口相对应的那个进程将会领取数据并等待下一组数据的到来

端口其实就是队,操作系统为各个进程分配了不同的队,数据报按照目的端口被推入相应进程的相应的队中,等待被进程取用,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。不光接受数据报的进程需要开启它自己的端口,发送数据报的进程也需要开启端口,这样,数据报中将会标识有源端口,以便接受方能顺利的回传数据报到这个端口。


端口的分类
在Internet上,按照协议类型分类,端口被分为TCP端口和UDP端口两类,虽然他们都用正整数标识,但这并不会引起歧义,比如TCP的80端口和UDP的80端口,因为数据报在标明端口的同时,还将标明端口的类型 

从端口的分配来看,端口一般被分为固定端口和动态端口两大类(第三类:私有端口):

固定端口(0-1023):
服从一个管理机构对端口的指派。这些端口紧绑于一些服务,所以我们会经常扫描这些端口来判断对方 是否开启了这些服务,如TCP的21(ftp),80(http),139(netbios),UDP的7(echo),69(tftp)等等一些大家熟 知的端口;

动态端口(1024-49151):
这些端口并不被固定的捆绑于某一服务,操作系统将这些端口动态的分配给各个进程, 同一进程两次分配有可能分配到不同的端口。不过一些应用程序并不愿意使用操作系统分配的动态端口,他们有其自己的‘商标性’端口,如oicq客户端的4000端口,木马冰河的7626端口等都是固定而出名的。


端口操作:

windoes命令行输入:netstat -an 查看自己所开放端口的最方便方法。


Ref:


posted @ 2018-05-20 22:36  JadeCicada  阅读(181)  评论(0编辑  收藏  举报