-
复用(Multiplexing)的概念
- 定义:在传输层,复用是指多个应用进程可以使用同一个传输层协议(如 TCP 或 UDP)来发送数据。从应用层的角度看,不同的应用进程(如网页浏览器、邮件客户端等)都有自己的数据要发送,这些数据会通过传输层协议进行封装后发送到网络层。传输层通过在发送端为不同应用进程的数据添加适当的头部信息(包括端口号等),使得这些数据能够共享网络层提供的服务,就好像多个乘客共用一辆公共汽车一样。
- 示例:以 TCP 协议为例,一个主机上可能同时运行着多个网络应用程序,如 Web 浏览器、文件传输程序和电子邮件客户端等。这些应用程序都需要通过 TCP 协议将数据发送到网络中。TCP 会为每个应用程序的数据添加不同的端口号(如 Web 浏览器使用 80 端口,文件传输程序使用 21 端口等),然后将这些带有不同端口号标记的数据一起发送到网络层。这就实现了多个应用程序复用 TCP 协议进行数据发送。
-
分用(Demultiplexing)的概念
- 定义:分用是复用的逆过程,它发生在接收端。当网络层将接收到的数据交给传输层后,传输层会根据数据中的端口号等信息,将数据准确地分发给相应的应用进程。就好像公共汽车到达目的地后,乘客根据自己的目的地信息(类似于端口号)下车前往各自的地方。
- 示例:在接收端主机上,传输层收到来自网络层的多个数据包。这些数据包带有发送端添加的端口号信息。传输层会检查每个数据包的端口号,然后将数据转发给与该端口号对应的应用进程。例如,如果一个数据包的端口号是 80,传输层就知道这个数据包是发给 Web 服务器应用程序的,于是将它分发给该应用程序进行处理。
-
端口号在复用分用中的作用
- 端口号是实现传输层复用和分用的关键。它作为一种标识符,用于区分不同的应用进程。在 TCP 和 UDP 协议中,端口号是一个 16 位的整数,范围是 0 - 65535。其中,0 - 1023 被称为熟知端口号,用于一些著名的网络服务(如 HTTP 的 80 端口、FTP 的 21 端口等)。应用程序在发送和接收数据时,通过指定正确的端口号,使得传输层能够准确地进行复用和分用操作,确保数据能够在正确的应用进程之间