3.计算机网络_端口号

端口号的由来

运输层的作用:

在计算机网络中,运输层处在用户功能的最底层、通信部分的最高层的位置,也就是说运输层是用户数据和实际网络通信的桥梁。因此运输层屏蔽了网络的实现部分,以协议的方式向用户层提供了接口,使得用户层可以通过网络进行通信。

运输层提供的两种信道:

|-----|--------------|-----------------|
| | TCP (传输控制协议) | UDP (用户数据报协议) |
| 信道 | 全双工可靠信道 | 不可靠信道 |
| 连接 | 面向连接的协议 | 无连接的协议 |
| 侧重点 | 可靠性 | 时效性 |
| 其他 | 没有广播、多播 | 收到UDP后不需要给出任何确认 |

什么是运输协议数据单元TPDU:

PDU是协议数据单元,在5层结构的每一层都有一个PDU,在运输层的PDU叫做TPDU。

运输层有TCP和UDP两种协议,TCP传送的数据单位协议是TCP报文段,UDP传送的数据单位协议是UDP报文或用户数据报。

为什么要使用端口号:

数据在网络中传输的过程是:用户A->运输层1->网络->运输层2->用户B。

因为运输层是一个通用的协议,这意味着用户A的所有信息都可以通过运输层1进入网络传入到运输层2,在用户B中又存在多个进程去执行任务,那么运输层2究竟交给哪一个进程去处理用户A所发过来的工作,这就需要一个标识,这个标识就是协议端口号,简称为端口。

端口号

端口号是什么:

端口号是一个16位的数,允许有65535个端口号(0不使用)。端口号只具有本地意义,作用是为了标识该计算机应用层中的个进程,因此不同计算机的相同端口号没有任何联系。

IANA组织规定的端口号的分类:

端口号的范围是1~65535,其中1~49151为服务器使用的端口号,49152~65535是客户端使用的端口号。

在服务器端口号中,1~1023为熟知端口,这些端口是早期互联网通信时常常使用的端口;1024~49151是登记端口。对于客户端使用的端口49152~65535,这些都是短暂端口,也称为动态或私有端口,这些端口在通信结束之后端口号会被回收。具体划分框图如下:

Linux中使用的端口:

Linux使用的端口是BSD端口,端口号划分如下:

  • 0:不使用
  • 1~1023:BSD保留端口,也叫系统端口,这些端口只有root才可使用。 这就是IANA的熟知端口
  • 1024~65535:用户端口
    • 1024~5000:BSD的临时端口,一般的应用程序使用1024~4999进行通讯
    • 5001~65535:BSD的服务器(非特权)端口,用于给用户自定义端口。

从上述划分可以看出,用户所使用的进程的端口号范围应该是5001~65535,这包含了用户自定义的服务器端口和客户端端口。根据配置文件可以查询到,客户端端口范围是32768~61000**(由系统自动分配)**,因此用户自定义的服务器端口范围应该是5001~32767,常选用8888作为服务器的端口(没有特殊意义,可以选择在这个范围中的其他的端口号)。

查询客户端端口范围的配置文件为:cat /proc/sys/net/ipv4/ip_local_port_range

相关推荐
say_fall1 小时前
【Linux网络编程】计算机网络基础:局域网与广域网、OSI七层模型与TCP/IP五层模型、封装解包与MAC/IP地址、端口号与socket编程接口
linux·网络·tcp/ip·计算机网络·信息与通信
Joy T2 小时前
Gzip 压缩原理与实践:HTTP 响应压缩、性能收益与工程配置
网络·网络协议·http
叼烟扛炮2 小时前
Linux 学习笔记(五十四):内网穿透实战——用 frp 让外网访问你的私人电脑
linux·服务器·网络·笔记·学习
流浪0012 小时前
计算机网络篇21:网络层——网段划分与子网掩码,从分类地址到 CIDR 与可用主机数
计算机网络·子网划分·nat·子网掩码·cidr·网络层协议
咔_2 小时前
有IPv6地址,为什么外面还是连不进来?让同一台服务分别卡在四个位置
linux·计算机网络
流浪0013 小时前
计算机网络篇22:网络层——公网的三级地址划分与逐跳转发,从私网出口替换到 IP 分片组装
tcp/ip·计算机网络·路由器·公网搭建·报文分篇
CodeYp20193 小时前
第3讲:网络命令
linux·网络·命令
Java成神之路-17 小时前
TCP Socket 与 UDP Socket
tcp/ip·计算机网络·udp
承渊政道20 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
爱和冰阔落1 天前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络