当前课程知识点:计算机网络 >  第五章 运输层 >  5.4 字节为单位的滑动窗口实现 >  字节为单位的滑动窗口实现

返回《计算机网络》慕课在线视频课程列表

字节为单位的滑动窗口实现在线视频

下一节:网络应用层

返回《计算机网络》慕课在线视频列表

字节为单位的滑动窗口实现课程教案、知识点、字幕

今天要讲解字节为单位的

滑动窗口实现单元内容

我们首先介绍以字节为单位的滑动窗口

为了讲述可靠传输原理的方便

我们假定数据传输只在一个方向上进行

即A发送数据 B给出确认

TCP的滑动窗口是以字节为单位的

为了便于说明 字节编号取得很小

先假定A收到B发来的确认报文字段

其中窗口是20字节

而确认号是31字节

这表明B期望接收到的下一个序号是31

序号30之前的数据已经收到了

根据这些数据

A可以构造出自己的发送窗口

A的发送窗口表示

在没有收到B的确认的情况下

可以连续把窗口内的数据发送出去

凡是已经发送过的数据

在未收到确认之前都必须暂时保留

以便超时重传使用

发送窗口有如下特点

一 发送窗口里面的序号

表示允许发送的序号(如31~50)

显然 窗口越大

发送方就可以在收到对方确认之前

连续发送更多的数据

因而可能获得更高的传输效率

二 发送窗口的位置

由窗口的前沿和后沿的位置共同确定

没有收到确认

发送窗口的后沿可能不动

如果收到新的确认则前移

发送窗口的前沿通常是不断的向前移动

但也可能不动

现在假定A发送了序号为31-41的数据

如图所示

图中可以看出要描述一个发送窗口的状态

需要三个指针P1 P2 P3

小于P1的是已发送并收到确认的部分

大于P3的是不允许发送部分

P3-P1=A的发送窗口

又称为通知窗口

P2-P1=已发送但尚未收到确认的字节数

P3-P2=允许发送但尚未收到的字节数

又称为可用窗口或有效窗口

B的接收过程如下

B的接收窗口大小为20

在接收窗口外面

到30号为止的数据

均发送过确认并交付主机使用

因此B不再保留之前的数据

B收到了32和33的数据

这些数据没有按序到达

因为序号为31的数据没有收到

由于B只能对按序到达的数据中的

最高序号给出确认

因此B的发送的确认号仍然是31

而不能是32或33

B如果收到序号为31数据

并把序号为31-33的数据交付给主机

然后B删除这些数据

接着把接收窗口向前移动3个序号

同时给A发出确认

其窗口值仍为20 但确认号34

表明B已经接收到序号33为止的数据

而B收到的37 38 40的数据没有按序到达

先暂存在接收窗口中

A收到B确认后

把发送窗口向前移动3个序号

但指针P2不动

A的可发送序号范围为42-53

A继续发送

直到可用窗口为0

如果按照以上的方法进行发送数据

当发送窗口已满

可用窗口减小到0

因此发送停止

如果发送窗口内所有数据都正确到达B

而发出的确认由于网络问题没有到达A

为保证传输

此时A只能认为B还没有收到这部分数据

于是A经过一段时间

由超时计时器控制

重传这部分数据

直到收到B的确认为止

三 缓存机制

发送方的应用进程把字节流

写入了TCP的发送缓存

接收方的应用进程

从TCP的接受缓存中读取字节流

我们假设缓存空间和序号空间

都是有限的并且循环使用的

那么发送方的情况如下

发送缓存用来暂时存放

一 发送应用程序传送给发送方TCP准备的数据

二 TCP已发送但尚未收到确认的数据

发送窗口通常只是发送缓存的一部分

已被确认的数据应当从发送缓存中删除

因此发送缓存与发送窗口的后沿是重合的

发送应用程序必须控制写入缓存的速率

不能太快

否则发送缓存就会没有存放数据的空间

接收方的情况如下

接收缓存用来暂时存放

第一 按序到达的

但尚未被接收应用程序读取的数据

第二 未按序到达的数据

如果收到的分组检测出有差错

则要丢弃

如果接收应用程序来不及读取收到的数据

接收缓存最终就会被填满

使接收窗口减小到0

反之 接收进程应该及时从接收缓存中

读取到数据

这时接收窗口就会变大

但最大也不能超过接收缓存的大小

根据上述讨论 需要强调以下几点

一 A的发送窗口并不总是

和B的接收窗口一样大

这时因为有一定的时间滞后

二 TCP标准没有规定

对不按序到达的数据应如何处理

通常是先临时存放在接收窗口中

等到字节流中所缺少的字节收到后

再按序交付上层的应用进程

三 TCP要求接收方必须有累积确认的功能

这样可以减小传输开销

计算机网络课程列表:

第一章 概述

-1.1 计算机网络的发展历程及其在信息时代中的作用

--计算机网络的发展历程及其在信息时代中的作用

-1.2 互联网的组成

--互联网的组成

-1.3 电路交换和分组交换

--电路交换和分组交换

-1.4 计算机网络的性能

--计算机网络的性能

-1.5 计算机网络体系结构和层次划分

--计算机网络体系结构和层次划分

-第一章

第二章 物理层

-2.1 数据通信系统模型

--数据通信系统模型

-2.2 导向型传输媒体

--导向型传输媒体

-2.3 光导纤维

--光导纤维

-2.4 非导向型传输媒体

--非导向型传输媒体

-2.5 信道的极限容量

--信道的极限容量

-2.6 信道复用技术

--信道复用技术

-2.7 ADSL

--ADSL

-第二章

第三章 数据链路层

-3.1 数据链路层的三个基本问题

--数据链路层的三个基本问题

-3.2 CSMA/CD协议

--CSMA/CD协议

-3.3 虚拟局域网

--虚拟局域网

-3.4 扩展的以太网

--扩展的以太网

-3.5 高速以太网

--高速以太网

-第三章

第四章 网络层

-4.1 分类的IP地址-划分子网

--分类的IP地址-划分子网

-4.2 无分类编址-构造超网

--无分类编址-构造超网

-4.3 ICMP协议

--ICMP协议

-4.4 路由器结构

--路由器结构

-4.5 RIP协议

--RIP协议

-4.6 IP多播

--IP多播

-第四章

第五章 运输层

-5.1 用户数据报协议UDP

--用户数据报协议UDP

-5.2 TCP报文段首部格式

--TCP报文段首部格式

-5.3 可靠传输工作原理

--可靠传输工作原理

-5.4 字节为单位的滑动窗口实现

--字节为单位的滑动窗口实现

-第五章

第六章 应用层

-6.1 网络应用层

--网络应用层

-6.2 DNS

--DNS

-6.3 FTP

--FTP

-6.4 HTTP

--HTTP

-6.5 P2P

--P2P

-6.6 计算机网络面临的安全性威胁

--计算机网络面临的安全性威胁

-6.7 防火墙

--防火墙

--第六章

第七章 网络实验

-7.1 交换机基本配置

--交换机基本配置

-7.2 路由器基本配置

--路由器基本配置

-7.3 交换机端口隔离

--交换机端口隔离

-7.4 跨交换机实现相同VLAN通信

--跨交换机实现相同VLAN通信

-7.5 动态路由

--动态路由

-7.6 静态路由

--静态路由

字节为单位的滑动窗口实现笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。