网络端口理解

这里讨论的是TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。

端口是由计算通信协议TCP/IP协议定义的。 其中规定,用IP地址和端口作为套接字,它代表TCP链接的一个连接端,一般称为socket,具体来说,就是用[ip:端口]来定位一台主机中的进程

socket最初的确被译为“媒介”,但是不久后ARPANET【网络之父,逐步被NSFnet所替代】就将其翻译为“套接字”,理由如下:由于每个主机系统都有各自命名进程的方法,而且常常是不兼容的,因此,要在全网范围内硬把进程名字统一起来是不现实的。所以,每个计算机网络中都要引入一种起媒介作用的、全网一致的标准名字空间。这种标准名字,在ARPA网中称作套接字,而在很多其他计算机网中称作信口。更确切地说,进程之间的连接是通过套接字或信口构成的。

什么是端口

在Internet上,各主机间通过TCP/TP协议发送和接收数据报,各个数据报根据其目的主机的IP地址来进行互联网络中的路由选择。可见,把数据报顺利的传送到目的主机是没有问题的。我们知道大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据报传送给众多同时运行的进程中的哪一个?显然这个问题有待解决,端口机制便由此被引入了进来。

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

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

端口是用来在不同操作系统进程间通信用的

端口的作用

我们知道,一台拥有IP地址的主机可以提供许多服务,比如Web服务,FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP地址与网络服务的关系是一对多的关系。实际上是通过"IP地址+端口号"来区分不同的服务的。
客户端通常对它所使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以了。客户端端口号又称作临时端口号(即存在时间很短)。这是因为它通常只是在用户运行该客户程序时才存在,而服务器则只要主机开着,其服务就运行。

端口被设计出来主要是为了给协议栈和应用对应:

  • 协议栈用端口号将数据分配给不同的应用层程序
  • 应用层程序用端口号去区分不同的连接

查看端口

可以使用Netstat命令:开始->运行,键入"cmd"并回车,打开命令提示符窗口。在命令提示符状态下键入"netstat -a -n",按下回车键后就可以看到以数字形式显示的 TCP和UDP连接的端口号及状态。

端口分类

按协议类型划分,可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口。

(1)TCP端口
TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Telent服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等。

(2)UDP端口
UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口等等。

端口在入侵中的作用

有人曾经把服务器比作房子,而把端口比作通向不同房间(服务)的门。入侵者要占领这间房子,势必要破门而入(物理入侵另说),那么对于入侵者来说,了解房子开了几扇门,都是什么样的门,门后面有什么东西就显得至关重要。
入侵者通常会用扫描器对目标主机的端口进行扫描,以确定哪些端口是开放的,从开放的端口,入侵者可以知道目标主机大致提供了哪些服务,进而猜测可能存在的漏洞,因此对端口的扫描可以帮助我们更好的了解目标主机,而对于管理员,扫描本机的开放端口也是做好安全防范的第一步。

参考
https://www.jianshu.com/p/d8a601323670

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值