28TCP可靠传输的实现

滑动窗口概念:

(1)TCP 的滑动窗口是以字节为单位的。

(2)现假定 A 收到了 B 发来的确认报文段,其中窗口是 20 字节,而确认号是 31(这表明 B 期望收到的下一个序号是 31,而序号 30 为止的数据已经收到了)。

(3)根据这两个数据,A 就构造出自己的发送窗口.

 

图例解释

 

 

 

发送缓存与接收缓存

 

 

 

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

(1)发送缓存用来暂时存放:

a.发送应用程序传送给发送方 TCP 准备发送的数据;

b.TCP 已发送出但尚未收到确认的数据。

(2)接收缓存用来暂时存放:

a.按序到达的、但尚未被接收应用程序读取的数据;

b.不按序到达的数据。

注意:

第一,A 的发送窗口并不总是和 B 的接收窗口一样大(因为有一定的时间滞后)。

第二,TCP 标准没有规定对不按序到达的数据应如何处理。通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。

第三,TCP 要求接收方必须有累积确认的功能,这样可以减小传输开销。 

 

 

接收方发送确认:

接收方可以在合适的时候发送确认,也可以在自己有数据要发送时把确认信息顺便捎带上。

但请注意两点:

第一,接收方不应过分推迟发送确认,否则会导致发送方不必要的重传,这反而浪费了网络的资源。

第二,捎带确认实际上并不经常发生,因为大多数应用程序很少同时在两个方向上发送数据。

 

posted @ 2017-09-30 15:57  gd_沐辰  阅读(224)  评论(0编辑  收藏  举报