计算机网络——运输层概述

424 阅读5分钟

这一篇主要内容为:交替地讨论运输层的原理和这些原理在现有的协议中是如何实现的。我们将特别关注因特网协议,即TCP和UDP运输层协议。

1.1 概述和运输层服务

运输层协议是在端系统而不是路由器中实现的。

报文段:在发送端,运输层将从发送应用程序进程接收到的报文转换成运输层分组,该分组成为运输层报文段。

实现的方法(可能)是将应用报文划分为较小的块,并为每块加上一个运输层首部以生成运输层报文段。

然后,在发送端系统中,运输层将这些报文段传递给网络层,网络层将其封装成网络层分组(即数据报)并向目的地发送。

(网络路由器仅作用于该数据报中提取运输层报文段,并将该报文段向上交给运输层。运输层则处理接收到的报文段,使该报文段中的数据为接受应用进程使用。)

1.1.1运输层和网络层的关系

在协议栈中,运输层位于网络层之上。

网络层提供了主机之间的逻辑通信,而运输层位运行在不同主机上的进程之间提供了逻辑通信。

运输层协议只工作在端系统中。

运输协议能够提供的服务常常受制于底层网络层协议的服务模型。如果网络层协议无法为主机之间发送的运输层保卫段提供时延或带宽保证的话,运输层协议也就无法为进程之间发送的应用程序报文提供时延或带宽保证。

1.1.2 Internet运输层概述

Internet为应用层提供了两种截然不同的可用运输层协议:

  1. UDP,它为调用它的应用程序提供了一种不可靠、无连接的服务
  2. TCP,它为调用它的应用程序提供了一种可靠的、面向连接的服务

为了简化术语,我们将TCP和UDP的分组统称为报文段,将网络层分组称为数据报

IP:Internet protocol,网际协议

IP的服务模型是尽力而为服务(best-effort delivery service),也叫不可靠服务,即:

  • 不确保报文段的交付
  • 不保证报文段的按序交付
  • 不保证报文段中数据的完整性

而UDP和TCP提供的服务模型,即是将两个端系统间的IP的交付服务扩展为运行在端系统上的两个进程之间的交付服务。将主机间交付扩展到进程间交付被称为运输层的多路复用与多路分解

TCP

TCP提供可靠数据传输,通过使用流量控制、序号、确认和定时器,TCP确保正确地、按序地将数据从发送进程交付给接受进程。这样TCP就将两个端系统间的不可靠IP服务转换成了一种进程间的可靠数据传输服务。

TCP还提供拥塞控制。 不太严格地说,TCP拥塞控制防止任何一条TCP连接用过多流量来淹没通信主机之间的链路和交换设备。TCP力求为每个通过一条拥塞网络链路的连接平等地共享网络链路带宽。

1.2 多路复用与多路分解

多路复用与多路分解是所以计算机网络都需要的。

在目的主机,运输层从紧邻其下的网络层接收报文段。运输层负责将这些报文段中的数据交付给在主机上运行的适当应用程序进程。

一个进程有一个或多个socket,它相当于从网络向进程传递数据和从进程向网络传递数据的门户。因此,在接收主机中的运输层实际上并没有直接将数据交付给进程,而是将数据交给了一个中间的socket。

每个socket都有唯一的标识符,标识符的格式取决于它是UDP还是TCP socket。

image.png 每个运输层报文段中具有几个字段。在接收端,运输层检查这些字段,标识出接收socket,进而将报文段定向到该socket。

将运输层报文段中的数据交付到正确的socket的工作称作多路分解。

在源主机从不同socket中手机数据块,并为每个数据块封装上首部信息(将用于以后分解)从而生成报文段,然后将报文段传递到网络层,所以这些工作称为多路复用。

运输层多路复用要求:

  1. socket有唯一标识符
  2. 每个报文段有特殊字段来只是该报文段所要交付的socket

这些特殊字符是源端口字段和目的端口号字段。

接收主机怎样将一个到达的运输层报文段定向到适当的socket:

在主机上的每个socket能够分配一个端口号,当报文段到达主机时,运输层检查报文段中的目的端口号,并将其定向到相应的socket,然后报文段中的数据通过socket进入其所连接的进程。

1. 无连接的多路复用与多路分解

一个UDP socket是由一个二元组来全面标识的,该二元组包含一个目的IP地址和一个目的端口号。因此,如果两个UDP报文段有 不同的源IP地址和/或源端口号,但具有相同的目的IP和目的端口号,将每个报文段定向(分解)到相应的socket。

2. 面向连接的多路复用与多路分解

TCP socket是一个由四元组(源IP地址、源端口号、目的IP地址、目的端口号)来标识的。

当一个TCP报文段从网络到达一台主机时,该主机使用全部4个值来将报文段定向(分解)到相应的socket。

服务器主机可以支持很多并行的TCP socket,每个socket与一个进程相联系,并由四元组 来标识每个socket。

3. Web服务器与TCP

未完待续