给我讲讲Selective repeat: 发送/接收窗口
时间: 2023-11-14 22:06:20 浏览: 48
Selective repeat是一种可靠的数据传输协议,它在发送端和接收端都维护了一个窗口(window)来控制数据的传输。发送窗口和接收窗口的作用和原理如下:
发送窗口:
发送窗口是发送端维护的,用于控制已经发送的数据和等待发送的数据。发送窗口的大小(即发送窗口中能够容纳多少个数据包)是由网络参数和传输协议决定的。
在Selective Repeat协议中,发送窗口中可以同时存储很多个数据包,即使其中某些数据丢失或出错,发送方也不会立即停止发送数据。当发送方发送一个数据包时,它会将该数据包标记为已发送,并将其添加到发送窗口中。当接收方收到一个确认消息时,发送方会将该数据包标记为已确认,并从发送窗口中删除。
如果发送方在等待确认消息时收到了一个新的数据包,它会将该数据包添加到发送窗口中,并继续等待确认消息。如果在等待确认消息的过程中出现了超时或出现了错误,发送方会重新发送未确认的数据包,直到它们被确认为止。
接收窗口:
接收窗口是接收端维护的,用于控制已经接收的数据和等待接收的数据。接收窗口的大小(即接收窗口中能够容纳多少个数据包)是由网络参数和传输协议决定的。
在Selective Repeat协议中,接收窗口中可以同时存储很多个数据包,即使其中某些数据丢失或出错,接收方也不会立即停止接收数据。当接收方收到一个数据包时,它会将该数据包标记为已接收,并将其添加到接收窗口中。接收方会向发送方发送一个确认消息,告知发送方它已经接收到该数据包。
如果接收方在接收数据时发现某个数据包出现错误,它会向发送方发送一个丢失消息,告知发送方该数据包已经丢失。接收方会在接收窗口中标记该数据包,但不会将其向上层应用程序传递。发送方在收到丢失消息后,会重新发送该数据包。
总之,Selective Repeat协议通过发送窗口和接收窗口的控制,实现了可靠的数据传输。即使出现了数据包丢失或出错的情况,Selective Repeat协议也能够重新发送并接收数据包,从而确保数据传输的成功。