基本原理

概述

传输层位于网络层和应用层之间,它的目的是为运行在不同主机上的进程之间的通信提供支持。传输层将网络层提供的不同主机之间的通信服务扩展到了运行在不同主机上的进程之间。

主要功能

传输层协议为运行在不同主机上的应用之间提供了逻辑通信功能,而网络层则是提供了主机之间的逻辑通信服务。。传输层运行在主机上即端系统上。其基本通信过程为

  • 发送方:传输层接收到来自应用进程的报文,并将其转换为传输层分组,因特网中称为传输层报文段,然后传输层将分组交给网络层,网络层将其交付到目的主机。
  • 接收方:网络层从数据中提取传输层报文段,并将其提交给传输层。

与网络层的关系

传输层建立在网路层之上,因而传输层所能提供的服务要受到网络层提供服务的限制,比如假如网络层不能提供带宽和时延保证,那么传输层也无法提供该服务。但是传输层仍能够提供网络层所不能提供的服务,比如IP层是不可靠地服务,但是传输层仍能提供可靠服务。

三种传输层协议

  • UDP:用户数据报协议,它为应用程序提供了一种不可靠的无连接的服务
  • TCP:传输控制协议,它为应用程序提供了可靠地面向连接的服务
  • SCTP:流控制传输协议,它为应用程序提供了可靠地面向连接的服务。它在两个端点之间提供稳定、有序的数据传递服务(非常类似于 TCP),并且可以保护数据消息边界(例如 UDP)。然而,与 TCP 和 UDP 不同,SCTP 支持多宿主(Multi-homing)和多流(Multi-streaming) 。

2 多路复用与多路分解

运输层的基本任务是将网络层提供的不同主机之间的通信服务扩展到运行在不同主机上的进程之间。这种扩展称为运输层的多路复用和多路分解。运输层通过socket来提供这种多路复用和多路分解。

概念

  • 多路复用:在源主机从不同套接字中收集数据块,并为每个数据块封装上首部信息,从而生成报文段,然后将报文段传递到网络层

  • 多路分解:将运输层报文段中的数据交付到正确的套接字的工作

工作要求

  • 主机接收 IP 数据报。每个数据报有一个源 IP 地址,目标 IP 地址。每个数据报携带一个运输层报文段。每个报文段含有源端口号和目的端口号。
  • 主机利用 IP 地址和端口号将报文段交付到适当的 socket

UDP的多路分解与多路复用

UDP 套接字由一个二元组标识,含有目的 IP 地址和目的端口号
如果两个 UDP 报文拥有不同的 IP 源地址或源端口号,只要拥有相同的目的 IP 地址和目的端口号,这两个报文段会通过相同的 socket 定向到相同的进程

TCP 的多路复用和多路分解

TCP socket 由一个四元组标记:源端口号,源 IP 地址,目的端口号,目的 IP 地址
两个具有不同的 IP 源地址或源端口号的到达 TCP 报文段会被定向到两个不同的 socket ,除非 TCP 报文段携带了初始创建连接的请求