传输层

# 传输层

# 5.1 运输层概述

从本节课开始,我们进入第5章运输层的学习。本节课我们对运输层进行概述,之前课程所介绍的计算机网络体系结构中的物理层,数据链路层以及网络层,他们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信,

如图所示,局域网一上的主机与局域网二上的主机,通过互联的广域网进行通信,网络层的作用范围是主机到主机,但实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程。例如AP1和AP2是局网一上这台主机中的与网络通信相关的两个应用进程。Ap3和AP4是局域网二上这台主机中的与网络通信相关的两个应用进程。Ap是应用进程的英文缩写词,如何为运行在不同主机上的应用进程提供直接的通信服务,是运输层的任务,运输层协议又称为端到端协议,如图所示运输层的作用范围是应用进程到应用进程,也称为端到端。

image.png

接下来我们从计算机网络体系结构的角度来看运输层。这是通信双方应用层中的应用进程。假设AP1与AP 4之间进行基于网络的通信,AP2与AP3之间进行基于网络的通信,在运输层需要不同的端口来对应不同的应用进程,然后通过网络层及其下层来传输应用层报文。如图所示,接收方的运输层通过不同的端口将收到的应用层报文交付给应用层中相应的应用进程。

需要注意的是这里的端口并不是指看得见摸得着的物理端口,而是指用来区分不同应用进程的标识符。为了简单起见,在学习和研究运输层时,我们可以简单的认为,运输层直接为应用进程间的逻辑通信提供服务。逻辑通信的意思是运输层之间的通信好像是沿水平方向传送数据,但事实上这两个运输层之间并没有一条水平方向的物理连接,要传送的数据是沿着涂装上下多次的虚线方向传送的,运输层向高层用户屏蔽了下面网络核心的细节,如网络拓扑所采用的路由选择协议等,它是应用层看见的,就好像是在两个运输层实体之间,有一条端到端的逻辑通信信道,根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输层协议,且面向连接的TCP和无连接的udp。这两种协议就是本章要讨论的主要内容。

image.png

image.png

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

复用:就是可以重复使用的意思,即各个应用层协议都可以使用TCP协议;

分用:就是TCP根据端口号,将报文分给不同的应用进程。

本节课我们介绍运输层、端口号、复用与分用的概念。在上节课中我们对运输层进行了概述,运输层的任务是直接为应用进程间的逻辑通信提供服务,运输层使用端口号来区分不同的应用进程。

我们知道运行在计算机上的进程是使用进程标识符PID来标志的。然而因特网上的计算机并不是使用统一的操作系统,不同操作系统例如WINDOWS、LINUX、MAC OS等,又使用不同格式的进程标识符,为了使运行不同操作系统的计算机的应用进程之间,能够进行网络通信,就要必须使用统一的方法,对TCPIP体系的应用进程进行标识。

TCP体系的运输层使用端口号来区分应用层的不同应用进程。端口号是用16比特来标识,取值范围是0~65535,分为以下三种

  • 第一种是熟知端口号,取值范围是0~1023,因特网数字分配机构IANA把这些端口号指派给了TCPIP体系中最重要的一些应用协议。例如 FTP协议使用21和22号端口,HTTP协议是要80号端口,DNS使用53号端口。
  • 第二种是登记端口号,取值范围是1024~49151,为没有熟知端口号的应用程序所使用,使用这类端口号必须在IANA按照规定的手续登记,以防止重复。例如微软远程桌面应用程序,使用的端口号是3389。
  • 第三种是短暂端口号,取值范围是49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
  • 需要注意的是端口号只具有本地意义,即端口号只是为了标识本计算机应用层中的各进程,在因特网中不同计算机中的相同端口号是没有联系的。

image.png