1.运输层的功能和服务
2.运输层的SAP:端口
3.UDP协议:报文格式、工作原理
4.TCP协议:
n报文格式
nTCP的可靠传输机制
n序号与确认
n流量控制
n拥塞控制
n连接管理
二、运输层的地位和作用
1.位置:面向通信功能的最高层,用户功能的最地层,仅存在于用户主机中。
●
作用:基于网络层提供的主机数据通信服务,在网络边缘的主机之间提供可靠的进程通信。
1.多进程对一条IP链路的复用:端口机制
2.进程消息的差错控制:IP仅提供首部校验
3.适应不同用户对网络的QOS需求:
TCP、UDP
4.对用户应用屏蔽核心网络的细节
四、运输层的两个重要协议
n两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)。
nTCP 传送的数据单位协议是 TCP 报文段(segment)
UDP 传送的数据单位协议是 UDP 报文或用户数据报。
五、运输层的端口机制
1.因特网使用统一进程标识:端口(port)
2.端口的本质:是一个抽象的软件结构(包括一些数据结构和I/O缓冲区)。进程通过系统调用与某端口建立关联(binding)后,传输层传给该端口的数据都被相应的进程接收。
3.端口的实现
o端口号:长度为16bit (0~65535)
o不同的OS,实现上有差异;
o仅具有本地意义;
4.端口的分类
o服务器使用的端口:
1.熟知端口:又称系统端口0~1023,IANA定义的常用因特网服务;
2.登记端口:1024~49151,在IANA登记的服务;
o客户进程端口:临时端口,49152~65535,一般程序使用,操作系统动态管理。
5.在因特网上唯一标识进程:
SOCKET=(IP,Port)
nUDP是最简单的传输层协议。特点有:
1.无连接的:仅在IP基础上增加端口和差错检测的功能,首部固定8字节,开销少,处理时延小;
2.尽力交付:几乎不提供任何可靠性措施,使用UDP的应用程序须自己进行可靠性控制;
3.面向报文:对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界,报文整体传送,大小受底层MTU限制;
4.无拥塞控制:适合实时应用,时延小;
5.通信形式多样化:支持全双工点播、广播、多播。
一、工作原理
? 发送方发完一数据后,不必停下来等待对方的应答,可以连续发送;
? 如果在发送过程中收到接收方的肯定应答,可以继续发送;
? 若其中某一数据的确认超时,则从该数据开始的后续数据全部重发。(因此该协议又称为“GO-BACK-TO-N”协议)
优点:连续发送提高了信道利用率
缺点: 回走重传(Go-back-N),导致某些已正确接收的数据的重传,因此降低了发送效率。
所以,信道误码率大时,连续ARQ协议不一定优于停等ARQ
存在问题:正确数据的重传,效率低;序号的开销增加;
优化办法:限制未确认的数据数;序号的循环使用
二、滑动窗口概念
1.发送窗口:用来对发送端进行流量控制,而发送窗口的大小WT就代表在还没有收到对方确认信息的情况下发送端最多可以连续发送数据个数。
2.接收窗口:其大小WR代表可以连续接收的最多数据个数,窗内是当前欲接收的数据的发送序号(只有序号在窗口内的数据才可以接收,否则丢弃)。
3.接收窗口驱动发送窗口的转动
三、滑动窗口协议效率
由于数据中包含有控制信息,所以信道利用率不可能是100%,理想的全双工信道(忽略出错和确认帧长度)的利用率为:
四、序号及其与窗口的关系:
1.序号需要在分组中传递,因此不允许无限增大
2.序号位数=nbit时,接收窗口和发送窗口的最大值=?
?Wt+Wr=2n ,Wt 、Wr≥1;
?n=1; 序号可用值在[0,1],Wt =?
?n>1;序号可用值在[0, 2n-1], Wt =?
1.编号与确认:面向字节的编号
2.流量控制:大小可变的滑动窗口
3.拥塞控制:慢启动、拥塞避免、快恢复、快重传
4.连接建立和释放:三次握手
五、TCP的拥塞控制
慢开始、拥塞避免、快重传、快恢复:
拥塞窗口CWnd (congestion window) :是发送端根据自己估计的网络拥塞程度而设置的窗口值;
发送窗口SWnd的上限值= Min[通知窗口,拥塞窗口]
通知窗口:是接收端根据其目前的接收缓存大小所许诺的最新的窗口值,来自接收端报文的窗口字段。
TCP拥塞控制算法根据网络状态动态地调节拥塞窗口。
TCP拥塞控制算法的操作可以划分成三个阶段:
第1阶段是慢启动生长阶段:
①连接建立时拥塞窗口(Cwnd)初始值为该连接允许的一个最大段长MSS,门限值(Ssthresh)初始为64KB;
②每收到一个对新报文段的确认,CWnd就增加一个MSS的大小;
③这样,每经过一个传输轮次(1个RTT的时间),CWnd将增加一倍;
④重复上一步,直至发生丢包超时事件,或拥塞窗口大于门限值。
第2个阶段:拥塞避免阶段
① 慢启动不会长久地增加拥塞窗口,当拥塞窗口达到拥塞门限值时,慢启动停止:
② 若拥塞窗口大于门限值: CWnd > Ssthresh 从此时开始,改用拥塞避免算法。拥塞窗口线形增长,而不是指数增长。对于每一往返时间RTT增加拥塞窗口一个MSS段大小。
慢开始门限 Ssthresh 的用法:
1.当 Cwnd < Ssthresh 时,使用慢开始算法。
2.当 Cwnd > Ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。
3.当 Cwnd = Ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。
第3个阶段:拥塞控制阶段
拥塞窗口不可以无限制地增加。当TCP检测到网络拥塞的时候(超时或重复的确认出现)拥塞窗口停止增加。进入第三阶段:
① 首先把拥塞门限值Ssthresh设置成当前发送窗口尺寸的一半SWnd/2 ,但至少为两个MSS段;
② 接着把拥塞窗口设置成CWnd=1MSS;
③ 然后再重新开始慢启动算法。
这样做的目的就是要迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕。
2. 快重传
快重传算法首先要求接收方每收到一个失序的报文段后就立即发出重复确认。这样做可以让发送方及早知道有报文段没有到达接收方。
发送方在超时时间不到的情况下,只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段。
不难看出,快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段
3、快恢复算法
(1) 当发送端收到连续三个重复的确认时,就执行“乘法减小”算法,把慢开始门限 Ssthresh 减半。但接下去不执行慢开始算法;
(2) 由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,即拥塞窗口 Cwnd 现在不设置为 1,而是设置为慢开始门限 Ssthresh 减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。
RED将路由器的到达队列划分成为三个区域,对每一个到达的数据报都先计算平均队列长度 LAV:
当 LAV < Thmin 时,丢弃概率 p = 0。
当 LAV >Thmax 时,丢弃概率 p = 1。
当 THmin < LAV < THmax时, 0 < p < 1 。
一、TCP连接的建立:三次握手
TCP建立连接时要解决的问题:
-使每一方确认对方的存在
-允许双方进行参数的协商
-进行资源的分配