运输层
运输层是作为法律标准的OSI体系结构自下而上的第4层,其主要任务是为相互通信的应用进程提供逻辑通信服务。
在计算机网络中实际进行通信的真正实体,是位于通信两端主机中的进程。
如何为运行在不同主机上的应用进程提供直接的逻辑通信服务,就是运输层的主要任务。运输层协议又称为端到端协议。
5.1运输层概述
TCP/IP体系结构运输层中的两个重要协议
运输层端口号、复用与分用的概念
-
运输层端口号:运行在计算机上的进程是使用进程标识符PID来标识的
5.2UDP和TCP的对比
-
无连接的UDP和面向连接的TCP
-
UDP和TCP对单播、多播和广播的支持情况
-
UDP和TCP对应用层报文的处理
-
UDP和TCP对数据传输可靠性的支持
-
UDP首部和TCP首部的对比
5.3传输控制协议
TCP报文段的首部格式
同步标志位SYN、终止标志位FIN和复位标志位RST
推送标志位PSH
紧急指针字段和紧急标志位URG
5.4TCP
TCP是面向连接的协议,它基于运输连接来传送TCP报文段。
TCP运输连接有以下三个阶段
-
通过“三报文握手”来建立TCP连接。
-
采用“三报文握手”而不是“两报文握手”来建立TCP连接,是为了防止已失效的TCP连接请求报文段突然又传送到了TCP服务器进程,因而导致错误。
-
-
基于已建立的TCP连接进行可靠的数据传输。
-
在数据传输结束后,还要通过“四报文挥手”来释放TCP连接。
TCP规定终止标志位FIN等于1的TCP报文段即使不携带数据,也要消耗掉一个序号。
TCP保活计时器的作用
TCP的流量控制
TCP的拥塞控制
-
拥塞控制分类
-
衡量网络拥塞的指标
-
闭环拥塞控制算法的分类
-
拥塞控制需要付出代价
TCP的四种拥塞控制方法
TCP拥塞控制与网际层拥塞控制的关系
为了避免网络中出现全局同步问题,在1998年提出了主动队列管理AQM。
-
所谓“主动”,就是在路由器的队列长度达到某个阈值但还未满时就主动丢弃IP数据报,而不是要等到路由器的队列已满时才不得不丢弃后面到达的IP数据报,这样就太被动了。
-
应当在路由器队列长度达到某个值得警惕的数值时,也就是网络出现了某些拥塞征兆时,就主动丢弃到达的IP数据报来造成发送方的超时重传,进而降低发送方的发送速率,因而有可能减轻网络的拥塞程度,甚至不出现网络拥塞。
主动队列管理AQM可以有不同的实现方法,其中曾流行多年的就是随机早期检测RED。
-
路由器需要维护两个参数来实现RED:队列长度最小门限和最大门限。当每一个IP数据报到达路由器时,RED就按照规定的算法计算出当前的平均队列长度。
-
若平均队列长度小于最小门限,则把新到达的IP数据报存入队列进行排队。
-
若平均队列长度大于最大门限,则把新到达的IP数据报丢弃。
-
若平均队列长度在最小门限和最大门限之间,则按照某一丢弃概率p把新到达的IP数据报丢弃(这体现了丢弃IP数据报的随机性)。
注意: ack,在选择重传协议与TCP协议中并不完全相同。
在选择重传协议中,ack,表明序号到n为止的数据已正确接收,现在期望收到序号为n+1的数据.
在TCP协议中,ack,表明序号到n-1为止的数据已正确接收,现在期望收到序号为n的数据.
TCP超时重传时间的选择
TCP的选择确认SACK
TCP窗口和缓存的关系
-
TCP发送方的发送窗口和发送缓存
-
发送窗口用来存放
-
发送方应用进程交付给TCP准备发送的数据
-
TCP已发送但尚未收到确认的数据
-
-
TCP接收方的接收窗口和接收缓存
-
TCP接收缓存用来存放
-
按序到达的、但尚未被接收方应用进程读取的数据
-
未按序到达的数据
-