窗口技术

来源:百度文库 编辑:神马文学网 时间:2024/04/29 19:18:50
滑动窗口与流量控制
TCP窗口技术在RFC793和RFC813中进行了说明
窗口技术
上文中介绍了可靠性的实现方法是:发送方发出一个数据段之后要等待接收方相应的确认信息,而
不是直接发送下一个分组。
TCP使用窗口技术来改善流量控制,一边通信双方能够充分利用带宽。滑动窗口允许发送方在收到接
收方的确认之前发送多个数据段。窗口大小决定了在收到接收方确认之前,一次可以传送的数据段
的最大数目。
窗口越大,主机一次可以传输的数据段就越多。当主机传输窗口大小数目的数据段后,就必须等收到
确认,才可以再传下面的数据段。例如,窗口的大小为1,则传完数据段后,都必须经过确认,才可
以再传下一个数据段;当窗口大小等于3时,发送方可以一次传输3个数据段,等待对方确认后,再依
次传输后面的3个数据段。
窗口左边的是已经成功传输、被接收、确认的数据段,窗口中是已经发送但还没有收到确认的数据段,
窗口右边的是还没有发送的数据段。窗口技术大大提高了网络带宽的利用率。
流量控制
窗口的大小在通信双方在通信双方连接期间是可变的,通信双方可以通过协商动态修改窗口大小。在
TCP的每个确认中,除了之处希望收到的下一个数据段的序列号之外,还包括一个窗口通告,通告中
指出了接收方还能子啊接收多少数据段(可以把通过堪称接收缓冲区的大小)。如果通告值增大,窗口
大小也相应增大;通告值减小,窗口大小也相应减小。这种机制也可以防止网络拥塞。例如,当网络
拥塞导致数据包丢失时,窗口大小自动减小一半,以保证数据传输。
TCP的应用特点
TCP的连接分为3个阶段:三次握手、数据传输、通话结束。其中"三次握手"和"结束通话"过程就需要
交换不少数据,如果中间的"数据传输"只传输几个字节的信息的话,这种开销将显得十分昂贵。例如
在DNS域名查询时,中间只要传输几个字节的消息,此时"三次握手"和"结束通话"的开销就显得非常大
了因此DNS使用UDP作为传输层协议,而不是TCP。
像DNS这种需要传输很少字节的通信被称为轻权通信,轻权通信一般交由UDP来完成。