计算机网络——运输层

345 阅读5分钟

5.1 运输层协议概述

5.1.1 进程之间的通信

从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。

当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能

image.png

应用进程之间的通信

两个主机进行通信实际上就是两个主机中的应用进程互相通信

应用进程之间的通信又称为端到端的通信

运输层的一个很重要的功能就是复用分用。应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。

运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。

运输层协议和网络层协议的主要区别

image.png

运输层的主要功能

运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。

运输层还要对收到的报文进行差错检测。

运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP 。

两种不同的运输协议

运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。

当运输层采用面向连接的 TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道

当运输层采用无连接的 UDP 协议时,这种逻辑通信信道是一条不可靠信道

5.1.2 运输层的两个主要协议

TCP/IP 的运输层有两个不同的协议:

(1)用户数据报协议 UDP (User Datagram Protocol)

(2)传输控制协议 TCP (Transmission Control Protocol)

TCP 与 UDP

两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)。

TCP 传送的数据单位协议是 TCP 报文段(segment)

UDP 传送的数据单位协议是 UDP 报文用户数据报

UDP 在传送数据之前不需要先建立连接。对方的运输层在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。

TCP 则提供面向连接的服务。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。

运输层的UDP用户数据报与网际层的IP数据报有很大区别。IP数据报要经过互连网中许多路由器的存储转发,但UDP用户数据报是在运输层的端到端抽象的逻辑信道中传送的。

TCP 报文段是在运输层抽象的端到端逻辑信道中传送,这种信道是可靠的全双工信道。但这样的信道却不知道究竟经过了哪些路由器,而这些路由器也根本不知道上面的运输层是否建立了TCP连接。

TCP/IP 体系中的运输层协议

image.png

TCP 与 UDP

UDP 在传送数据之前不需要先建立连接。对方的运输层在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。

TCP 则提供面向连接的服务。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。

5.1.3 运输层的端口

image.png

端口号(protocol port number)

image.png

软件端口与硬件端口

image.png

TCP 的端口

image.png

三类端口

image.png

5.2 用户数据报协议 UDP

5.2.1 UDP 概述

image.png

UDP 的主要特点

image.png

面向报文的 UDP

image.png

image.png

5.2.2 UDP 的首部格式

image.png

5.3 传输控制协议 TCP 概述

5.3.1 TCP 最主要的特点

image.png

TCP 面向流的概念

image.png

应当注意

image.png

5.3.2 TCP 的连接

image.png

套接字 (socket)

image.png

5.4 可靠传输的工作原理

5.4.1 停止等待协议

image.png

确认丢失和确认迟到

image.png

可靠通信的实现

image.png

信道的利用率 U

image.png

image.png

流水线传输

image.png

5.4.2 连续 ARQ 协议

image.png

累积确认

image.png

Go-back-N(回退 N)

image.png

TCP 可靠通信的具体实现

image.png

5.5 TCP 报文段的首部格式

image.png

5.6 TCP 可靠传输的实现

5.6.1 以字节为单位的滑动窗口

image.png

image.png

image.png

image.png

发送缓存

image.png

接收缓存

image.png

发送缓存与接收缓存的作用

image.png

5.6.2 超时重传时间的选择

image.png

往返时延的方差很大

image.png

加权平均往返时间

image.png

超时重传时间 RTO

image.png

Karn 算法

image.png

修正的 Karn 算法

image.png

5.8 TCP的拥塞控制

5.8.1 拥塞控制的一般原理

image.png

拥塞控制与流量控制的关系

image.png

拥塞控制所起的作用

image.png

开环控制和闭环控制

image.png

5.8.2 几种拥塞控制方法

1. 慢开始和拥塞避免

image.png

慢开始算法的原理

image.png

image.png

设置慢开始门限状态变量ssthresh

image.png

当网络出现拥塞时

image.png

慢开始和拥塞避免算法的实现举例

image.png

乘法减小

image.png

加法增大

image.png

2. 快重传和快恢复

image.png

image.png

快恢复算法

image.png

从连续收到三个重复的确认转入拥塞避免

image.png

发送窗口的上限值

image.png

5.9 TCP 的运输连接管理

5.9.1 TCP 的连接建立

image.png

image.png