第五章 运输层
主要内容:运输层协议的概念及其作用(UDP、TCP),可靠传输的工作原理、TCP可靠传输的实现,TCP的流量控制和拥塞控制方法,掌握TCP的运输连接管理机制,了解TCP的有限状态机。
运输层的作用:为相互通信的应用进程提供了逻辑通信
(简易理解)功能:提供端到端(进程-进程)的可靠通信,即向高层用户屏蔽通信子网的细节,提供通用的传输接口。
只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。
运输层根据应用程序的不同需求,又两种不同的运输协议:面向连接的TCP和无连接的UDP。
端口
一台主机(对应一个IP地址)可以提供很多服务,比如web服务,ftp服务等等。如果只有一个IP,无法却分不同的网络服务,所以我们采用”IP+端口号”来区分不同的服务。
- 在协议栈层间的抽象的协议端口是软件端口。
- 路由器或交换机上的端口是硬件端口。
端口用一个 16 位端口号进行标志。
两大类端口:
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。
两大类端口:服务器端使用的端口号;客户端使用的端口号;
用户数据报协议UDP
只能提供不可靠的交付;
特点:
(1) UDP 是无连接的
(2) UDP 使用尽最大努力交付,
(3) UDP 是面向报文的。
(4) UDP 没有拥塞控制
(5) UDP 支持一对一、一对多、多对一和多对多的交互通信。
(6) UDP 的首部开销小
一次交付一个完整的报文。
UDP有两个字段:数据字段和首部字段;
首部字段8个字节。
传输控制协议TCP
特点:面向字节流!
TCP 连接是一条虚连接而不是一条真正的物理连接。
TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)。
每一条TCP连接有两个端点,叫做套接字或插口。
端口号拼接到 (contcatenated with) IP 地址即构成了套接字。
应用编程接口 API 称为 socket API, 简称为 socket。
可靠传输的工作原理:
-
停止等待协议:“停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
- 流水线传输:
- 流水线传输:
-
连续ARQ协议:发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
TCP报文的格式:
首部的最小长度是20字节,后面有4n字节是根据需要增加。
序号位seq
确认号ack
确认位ACK,确认号ack一同出现
TCP连接管理
TCP连接建立:
TCP 建立连接的过程叫做握手。
握手需要在客户和服务器之间交换三个 TCP 报文段。称之为三报文握手。
ack=x+1说明B希望A下次发来的报文段的第一个数据字节为序号=x+1的字节;ack=y+1说明A希望B下次发来的报文段的第一个数据字节为序号=y+1的字节。
TCP的连接释放:
四次握手
TCP流量控制
A向B发送数据,连接建立时,B告诉A:我的rwnd=400(字节),设每一个报文段100B,报文段序号初始值为1.
seq为序号位
TCP拥塞控制
四种算法:
慢开始和拥塞避免:
(一开始翻倍增长,然后加一增长)
一个传播轮次:发送了一批报文段并收到它们的确认的时间。也称为一个往返时延RTT。
快重传和快恢复:
(优化了上述算法,类似)
考点:
掌握:
试述拥塞控制的一般原理;增加资源能解决拥塞吗?什么情况下只能
试述TCP的主要特点有哪些?TCP协议中滑动窗口的概念、大小的度量、作用。
TCP报头的组成,其固定部分有哪些字段组成,各字段的作用是什么?
简述TCP连接中套接字的概念、组成,以及各部分的作用?
TCP流量控制和拥塞控制的概念、原理、方法?TCP拥塞控制算法的4个算法,及其详细过程。
-----------p227-228页;P245-247页习题:5-22、5-23、5-26、54-37、54-38、5-39、4-30