运输层端口及相关linux命令


阅读目录:

一、 端口概念引入

二、 软件端口与硬件端口

三、 TCP/IP协议端口

四、 三类端口

五、 相关Linux命令


一、 端口概念引入:

  端口概念的引入,是为了赋予应用层每个进程一个明确的标识。

  应用层的所有应用进程都可以通过传输层再传送到IP层(网络层),这就是复用。传输层从IP层收到数据后必须交付指明的应用进程。这就是分用。显然,给应用层的每个进程赋予一个明确的标识是至关重要的。

  由于进程的创建和撤销都是动态的,发送方几乎无法识别其他机器上的进程。有势我们会改变接收报文的进程,但并不需要通知所有发送方。我们往往需要利用目的主机提供的功能来识别终点,而不需要知道实现这个功能的进程。

  解决这个问题的方法就是在运输层使用协议端口号(protocol port number),或通常简称为端口(port)。虽然通信的终点是应用进程,但我们可以把端口想象是通信的终点,因为我们只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由 TCP 来完成。

附:为什么不用进程标识符作为应用层进程标识?

  运行在计算机中的进程是用进程标识符来标志的。但是在因特网上使用的计算机的操作系统种类很多,不同的操作系统又使用不同格式的进程标识符。同时,同一台主机,开启同一个应用,进程标识符也存在差异。为了使运行在不同操作系统的计算机的应用进程能够互相通信,就必须采用统一的方法(这种方法与特定的操作系统无关),对TCP/IP体系应用进程进行标志。


二、 软件端口和硬件端口:

  这种协议栈层间抽象的协议端口是软件端口,和路由器与交换机上的硬件端口是完全不同的概念,硬件端口是不同的硬件设备进行交互的接口,软件端口是应用层的各种协议与运输实体进行层间交互的一种地址。

  在UDP和TCP的首部格式中,他们都有源端口和目的端口这两个重要字段。当运输层收到IP层交上来的运输层报文时,就能够根据其首部中的目的端口号把数据交付给应用层的目的应用进程。

运输层端口及相关linux命令

上图为UDP协议首部格式

运输层端口及相关linux命令

上图为TCP首部格式


三、 TCP/IP协议端口:

  TCP/IP的运输层用一个16位的端口号来标志一个端口,端口号只具有本地意义,它只是为了标志本计算机应用层中各个进程在和运输层交互时的层间接口。在因特网的不同计算机中,相同的端口号是没有关联的。16位的端口号可以允许有65536个不同的端口号,这个数目对于一个计算机来说是足够用的。

  由此可见,两个计算机中的进程要互相通信,不仅必须知道对方的IP地址(找目的主机),而且还要知道对方的端口号(找目的主机中的应用进程)。依据IP地址及端口寻找目标主机应用进程的过程,和我们寄信的过程类似。当我们给某人写信时,需要知道他的通信地址,在信封上还要写明自己的地址。当收件人回信时,很容易在信封上找到发件人的地址。


四、 三类端口:

  因特网上的计算机通信是采用客户—服务器的方式。客户在发起通信请求时,必须先知道对方服务器的IP地址和端口号。因此运输层的端口号共分为下面三类:

(1) 熟知端口(well-known port number)或称系统端口。数值为 0~1023,
IANA把这些端口号指派给了TCP/IP最重要一些应用程序,让所有用户都知道。当一种新的应用进程出现后,IANA必须为它指派一个熟知端口,否则因特网上的其他进程无法和它进行通信。这些数值可以在http://www.iana.org/assignments/port-numbers查看。

运输层端口及相关linux命令

(2) 登记端口号,数值为1024~49151,这类端口号是为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA登记,以防止重复。我们常用的QQ默认采用UDP通讯方式,端口8000,8001.如果UDP的两个端口不通,会自动转换到TCP80端口,或者TCP的443端口进行通讯。

(3)客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。可以把数据发送给客户进程。通信结束后,刚才使用的端口号就不复存在,这个端口号可供其他客户进程以后使用。

五、 Linux中端口查看:

1、 使用cat /etc/services命令,查看所有服务默认的端口列表信息

运输层端口及相关linux命令

2、 使用netstat命令,查看正在连接的端口【连接】列表信息

运输层端口及相关linux命令

3、 使用netstat –ap查看所有服务端口和对应的程序名称

运输层端口及相关linux命令

4、 其它netstat使用,可以直接查看man手册,man netstat

运输层端口及相关linux命令

相关文章:

  • 2022-12-23
  • 2021-12-27
  • 2021-12-23
  • 2021-08-23
  • 2021-05-20
  • 2021-05-27
  • 2021-11-29
猜你喜欢
  • 2021-11-18
  • 2022-01-27
  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
相关资源
相似解决方案