[Linux]运输层的端口

来源:互联网 发布:热力地图制作软件 编辑:程序博客网 时间:2024/06/05 15:31

既然提到端口,我们就来分析一下为什么要使用端口的缘由吧。我们首先要知道的是,运输层有复用和分用的功能。应用层所有的应用进程都可以通过运输层再传送到IP层,这就是复用。运输层从IP层收到数据后必须交付到指明的应用进程,这就是分用。我们知道,单个进程是用进程标识符来标志的,但在计算机操作系统指派的进程标识符标志运行在应用层的进程是不行的,因为不同的操作系统使用不同的进程标识符。为了让不同操作系统间也实现进程间通信,因此得用一种方法对TCP/IP体系的应用进程进行标志。同时,我们在进行通信的时候,必须知道起点和终点,即通信的一方和另一方,那么我们如何识别终点呢,这里就要使用到协议端口号(端口)。虽然通信的终点是应用进程,但我们要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作就由TCP来完成。

关于端口,分为软件端口和硬件端口。

软件端口:在协议栈层间的抽象的协议端口,应用层的各种协议进程与运输实体进行层间交互的一种地址

硬件端口:不同硬件设备进行交互的接口

在TCP/UDP的首部格式中,都有源端口和目的端口。当运输层收到IP层交上来的运输层报文时,就能根据其首部中的目的端口把数据交付应用层的目的应用进程。

TCP/IP的运输层用一个16位端口号来标志一个端口,端口号只具有本地的意义。

注:不同的计算机具有相同的端口是没有关联的

16位的端口号可允许有65535个不同的端口号。

端口号的分类:

服务器端使用的端口号:分为两类,(1)熟知端口号(系统端口号):数值为0-1023;这些数值在www.iana.org中可查到。常用的熟知端口号为:

  1. FTP: 21
  2. TELNET: 23
  3. SMTP: 25
  4. DNS: 53
  5. TFTP: 69
  6. HTTP: 80
  7. SNMP: 161
  8. SNMP(trap): 162

(2)登记端口号,数值为1024-49151,这类端口号是为没有熟知端口号的应用程序使用的。使用这类端口号需在IANA按照规定的手续登记,防止重复。

客户端使用的端口号:数值为49152-65535,这类端口号在客户进程运行时动态选择,因此称为短暂端口号。当服务器进程收到客户进程的请求报文时,就知道客户进程的端口号,因而把数据发送给客户进程。通信结束后,客户端口号就不存在,此端口号也可以分配给其他客户进程使用。

原创粉丝点击