假设你正在设计一个滑动窗口协议,用于连接在3×10^4公里高度绕地球演化的静止卫星的1-Mbps点对点链路。假设每帧携带1kB的数据,那么在以下情况下,序列号所需的最小位数是多少?假设光速是每秒3×10^8米。 (a) 接收窗口大小=1。 (b) 接收窗口大小=发送窗口大小。
时间: 2023-05-28 09:06:32 浏览: 126
(a) 当接收窗口大小为1时,序列号所需的最小位数为11位。因为接收窗口大小为1,所以发送方只能发送一个未确认的帧。假设传输延迟为1秒,那么在一个往返时间(RTT)内,发送方只能发送一个帧并等待确认。因此,序列号需要足够大,以便在一个RTT内发送的所有帧都有唯一的序列号。由于光速是每秒3×10^8米,因此信号在一个RTT内可以传播6×10^8米。在这种情况下,序列号所需的最小位数为log2(6×10^8/1000)=20.6,向上取整为21位。但是,每个帧都需要一个位来指示它是ACK(确认)还是NACK(否定确认),因此,实际的序列号位数为11位。
(b) 当接收窗口大小等于发送窗口大小时,序列号所需的最小位数为14位。因为接收窗口大小等于发送窗口大小,所以发送方可以发送多个未确认的帧。假设发送窗口大小为N,传输延迟为1秒,那么在一个RTT内,发送方可以发送N个帧并等待确认。因此,序列号需要足够大,以便在一个RTT内发送的所有帧都有唯一的序列号。在这种情况下,序列号所需的最小位数为log2(6×10^8/1000×N)=17.9+log2(N),向上取整为14+log2(N)位。因此,如果发送窗口大小为1,则序列号所需的位数为15位;如果发送窗口大小为100,则序列号所需的位数为17位。
相关问题
设计一个滑动窗口协议,用于连接在3×10^4公里高度绕地球公转的静止卫星的1-Mbps点对点链路。假设每帧携带1kB的数据,接收窗口大小=发送窗口大小,序列号所需的最小位数是多少?假设光速是每秒3×10^8米。
由于卫星距离地球较远,信号传输需要一定的时间延迟,因此需要使用滑动窗口协议来保证可靠传输。
假设发送窗口大小和接收窗口大小均为N,则发送方可以发送N个连续的帧,等待接收方确认收到其中的哪些帧,并将未确认的帧重传。因此,序列号需要足够多的位数来表示N个连续的帧。
假设每帧携带1kB的数据,则每帧的传输时间为:
t = 1kB / 1 Mbps = 8 μs
由于卫星距离地球约3×10^4公里,传输信号需要经过地球与卫星之间的两次传输延迟,因此传输时间为:
t_tr = 2 × 3 × 10^4 km / (3 × 10^8 m/s) = 0.2 s
因此,每个帧的传输时间相对于总传输时间可以忽略不计,可以假设发送方连续发送N个帧,而接收方在t_tr时间内确认收到其中的哪些帧。
假设序列号需要n位来表示N个连续的帧,则N可以表示为:
N = 2^n
因此,序列号所需的最小位数为:
n = log2(N) = log2(2^n) = n
因此,序列号需要的最小位数为N的二进制表示位数,即:
n = log2(N) = log2(2^10) = 10
因此,序列号需要的最小位数为10位。
假设你正在设计一个滑动窗口协议,用于连接在3×10^4公里高度绕地球公转的静止卫星的1-Mbps点对点链路。假设每帧携带1kB的数据,那么在以下情况下,序列号所需的最小位数是多少?假设光速是每秒3×10^8米。 (a) 接收窗口大小=1。 (b) 接收窗口大小=发送窗口大小。
(a) 当接收窗口大小为1时,序列号所需的最小位数为6位。这是因为在一个往返时间(即从发送方到卫星再到接收方再返回卫星到发送方所需的时间)内,最多只能传输2个帧。因此,序列号需要能够表示0和1,以便在同一时间内发送两个帧。
(b) 当接收窗口大小等于发送窗口大小时,序列号所需的最小位数为8位。在这种情况下,发送方可以连续发送多个帧,而接收方可以在同一时间内接收多个帧。因此,序列号需要能够表示更多的数字,以便更好地区分这些帧。8位序列号可以表示256个不同的数字,足以满足这个要求。