当前位置: 代码网 > 服务器>网络>网络协议 > 5.2、运输层端口号、复用与分用的概念

5.2、运输层端口号、复用与分用的概念

2024年08月06日 网络协议 我要评论
运行在计算机上的进程使用进程标识符PID来标志。因特网上的计算机并不是使用统一的操作系统不同格式的进程标识符为了使运行不同操作系统的计算机的应用进程之间能够进行网络通信使用统一的方法对TCPIP体系的应用进程进行标识TCP/IP体系的运输层使用端口号来区分应用层的不同应用进程。端口号使用16比特表示,取值范围065535;熟知端口号01023IANA把这些端口号指派给了TCP/IP体系中最重要的一些应用协议,FTP21/20HTTP80DNS53登记端口号1024。

1、端口号

运行在计算机上的进程使用 进程标识符 p i d \color{red}进程标识符 pid 进程标识符pid来标志。

因特网上的计算机并不是使用统一的操作系统

  • 不同的操作系统(windows,linux,mac os)又使用 不同格式的进程标识符 \color{red}不同格式的进程标识符 不同格式的进程标识符

为了使运行不同操作系统的计算机的应用进程之间能够进行网络通信

  • 就必须 使用统一的方法对 t c p / i p 体系的应用进程进行标识 \color{red}使用统一的方法对 tcp/ip 体系的应用进程进行标识 使用统一的方法对tcp/ip体系的应用进程进行标识

tcp/ip 体系的运输层使用端口号来区分应用层的不同应用进程。

  • 端口号使用 16 16 16 比特表示,取值范围 0 0 0 ~ 65535 65535 65535;

    • 熟知端口号 \color{blue}熟知端口号 熟知端口号 0 0 0 ~ 1023 1023 1023iana 把这些端口号指派给了 tcp/ip 体系中最重要的一些应用协议,

      • 例如:ftp 使用 21 / 20 21/20 21/20http 使用 80 80 80dns 使用 53 53 53
    • 登记端口号 \color{blue}登记端口号 登记端口号 1024 1024 1024 ~ 49151 49151 49151,为没有熟知端口号的应用程序使用。

      • 使用这类端口号必须在 iana 按照规定的手续登记,以防止重复。
      • 例如:microsoft rdp 微软远程桌面使用的端口是 3389 3389 3389
    • 短暂端口号 \color{blue}短暂端口号 短暂端口号 49152 49152 49152 ~ 65535 65535 65535,留给客户进程选择暂时使用。

      • 当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。
      • 通信结束后,这个端口号可供其他客户进程以后使用。

端口号只具有本地意义 \color{red}端口号只具有本地意义 端口号只具有本地意义,即端口号只是为了 标识本计算机应用层中的各进程 \color{red}标识本计算机应用层中的各进程 标识本计算机应用层中的各进程

  • 在因特网中, 不同计算机中的相同端口号是没有联系的 \color{red}不同计算机中的相同端口号是没有联系的 不同计算机中的相同端口号是没有联系的

2、发送方的复用和接收方的分用

image-20230104161526976

发送方的某些应用进程所发送的不同应用的报文在运输层使用 udp 协议进行封装

  • 这称为 udp 复用

而另一些应用进程所发送的报文在运输层使用 tcp 协议进行封装

  • 这称为 tcp 复用

运输层使用端口号来区分不同的应用进程。

不管是使用运输层的 udp 协议封装成的 udp 用户数据报,还是使用运输层的 tcp 协议封装成的 tcp 报文段

  • 在网络层都需要使用 ip 协议封装成 ip 数据报(称为 ip 复用)

ip 数据报首部中协议字段的值用来表明 ip 数据报的数据载荷部分封装的是何种协议数据单元

  • 取值为 6 6 6,表示封装的是 tcp 报文段,
  • 取值为 17 17 17 ,表示封装的是 udp 用户数据报

image-20230104162539615


接收方的网络层收到 ip 数据报后进行 ip 分用

  • ip 数据报首部中协议字段的值为 17 17 17,则把 ip 数据报中的数据载荷部分所封装的 udp 用户数据报上交运输层的 udp
  • ip 数据报首部中协议字段的值为 6 6 6,则把 ip 数据报中的数据载荷部分所封装的 tcp 报文段上交运输层的 tcp

运输层对 udp 用户数据报进行 udp 分用,对 tcp 报文段进行 tcp 分用

  • 也就是根据端口号将他们交付给上层相应的应用进程

3、tcp/ip 体系的应用层常用协议所使用的运输层熟知端口号

这些是 tcp/ip 体系的<u>应用层</u>常用协议

image-20230104163027341

各自在运输层使用的树脂端口号

image-20230104163113172

不管运输层使用的是 tcp 还是 udp 协议,在网络层都需要使用 ip 协议

ip 数据报首部中协议字段的值,表明了 ip 数据报数据载荷部分封装的时何种协议数据单元

image-20230104163256845


4、运输层端口号的作用

如下所示,用户 pcdns 服务器、web 服务器其通过交换机进行互联

  • 它们属于同一个以太网中

image-20230104163402592


4.1、用户 pc 中进程 与 dns 服务器进程的通信

如下所示,假设这是 web 服务器的域名,

  • dns 服务器中记录有该域名所对应的 ip 地址

我们在用户 pc 中使用网页游览器来访问 web 服务器的内容

在网页游览器上的地址栏上输入 web 服务器的域名

  • 用户 pc 中的 dns 客户端进行会发送一个 dns 查询请求报文(本机上没有该域名映射)

image-20230104163726090

dns 查询请求报文需要使用运输层的 udp 协议封装成 udp 用户数据报

  • 其首部中的源端口字段的值在短暂端口号 49151 49151 49151 ~ 65535 65535 65535 中挑选一个未被占用的

    • 用来表示 dns 客户端进程(例如: 49152 49152 49152
  • 目的端口字段的值设置为 53 53 53

    • 这是 dns 服务器端进程所使用的而熟知端口号
  • 其内容为:"域名 www.prottest.com 对应的 ip 地址是什么 "

image-20230104164128000

之后将 udp 用户数据报封装在 ip 数据报中,通过以太网发送给 dns 服务器


dns 服务器端收到该数据报后,从中解封出 udp 用户数据报

  • udp 首部中的目的端口号为 53 53 53

这表明应将该 udp 用户数据报的数据载荷部分(也就是 dns 查询请求报文)交付给本服务器中的 dns 服务器进程

  • dns 服务器端进程解析 dns 拆线呢请求报文的内容
  • 然后按照要求查找对应的 ip 地址

之后会给用户 pc 发送 dns 响应报文

  • 其内容为:“域名 www.porttest.com 所对应的 ip 地址是 192.168.0.3”

image-20230104164903621

dns 响应报文需要使用 udp 协议封装成 udp 用户数据报

  • 其首部中源端口字段的值设置为熟知端口号 53 53 53
    • 表明这是 dns 服务器端进程所发送的 udp 用户数据报
  • 其首部中目的端口字段的值设置为 49152 49152 49152
    • 这是之前用户 pc 中发送 dns 查询请求报文的 dns 客户端进程所使用的短暂端口号

之后将 udp 用户数据报封装在 ip 数据报中,通过以太网发送给用户 pc

image-20230104165537994


用户 pc 收到该数据报后,从中解封出 udp 用户数据报

  • udp 首部中的目的端口号为 49152 49152 49152

这表明应将该 udp 用户数据报的数据载荷部分(也就是 dns 响应报文)交付给用户 pc 中的 dns 客户端进程

dns 客户端进程解析 dns 响应报文的内容

  • 就可知道自己之前所请求的 web 服务器的域名所对应的 ip 地址为 192.168.0.3 192.168.0.3 192.168.0.3

image-20230104165507672


4.2、用户 pc 中进程与 web 服务器中进程的通信

用户 pc 中的 http 客户端进程可以向 web 服务器发送 http 请求报文了

  • 其内容为:“首页内容是什么?”

http 请求报文需要使用运输层的 tcp 协议封装成 tcp 报文段

  • 其首部中的源端口字段的值在短暂端口号 49151 49151 49151 ~ 65535 65535 65535 中挑选一个未被占用的

    • 用来表示 http 客户端进程(例如: 49152 49152 49152
  • 目的端口字段的值设置为 80 80 80

    • 这是 http 服务器端进程所使用的而熟知端口号

image-20230104170027514

之后将 tcp 报文段封装在 ip 数据报中,通过以太网发送给 web 服务器

image-20230104170050549


web 服务器收到该数据报后,从中解封出 tcp 报文段

  • tcp 首部中的目的端口号为 80 80 80

这表明应将该 tcp 报文段的数据载荷部分(也就是 http 请求报文)交付给本服务器

http 服务端进程解析 http 请求报文的内容

  • 然后按其要求查找首页内容

之后,会给用户 pc 发送 http 响应报文,

  • 其内容是:“http 客户端所请求的首页内容”

http 响应报文需要使用 tcp 协议封装成 tcp 报文段

  • 其首部中源端口字段的值设置为熟知端口号 80 80 80
    • 表明这是 http 服务器端进程所发送的 tcp 用户数据报
  • 其首部中目的端口字段的值设置为 49152 49152 49152
    • 这是之前用户 pc 中发送 http 请求报文的 http 客户端进程所使用的短暂端口号

之后将 tcp 报文段封装在 ip 数据报中,通过以太网发送给用户 pc

image-20230104170902999

用户 pc 收到该数据报后,从中解封出 tcp 报文段

  • tcp 首部中的目的端口号为 49152 49152 49152

这表明应将该 tcp 报文段的数据载荷部分(也就是 http 响应报文)交付给用户 pc 中的 http 客户端进程

http 客户端进程解析 http 响应报文的内容,并在网页游览器中显示

  • 这样我们可以在 web 服务器中看到 web 服务器所提供的首页内容

image-20230104171111776

5、小结

image-20230104171129898

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com