15. The frame is . The generator is 1001. The message after appending three zeros is . The remainder on dividing by 1001 is 100. So, the actual bit string transmitted is . The received bit stream with an error in the third bit from the left is .
Dividing this by 1001 produces a remainder 100, which is different from zero. Thus, the receiver detects the error and can ask for a retransmission.
16. 答:CRC 是在发送期间进行计算的。一旦把最后一位数据送上外出线路,就立即把CRC编码附加在输出流的后面发出。如果把CRC 放在帧的头部,那么就要在发送之前把整个帧先检查一遍来计算CRC。这样每个字节都要处理两遍,第一遍是为了计算检验码,第二遍是为了发送。把CRC 放在尾部就可以把处理时间减半。
17. 答:当发送一帧的时间等于信道的传播延迟的2 倍时,信道的利用率为50%。或者说,当发送一帧的时间等于来回路程的传播延迟时,效率将是50%。而在帧长满足发送时间大于延迟的两倍时,效率将会高于50%。
现在发送速率为4Mb/s,发送一位需要。
只有在帧长不小于160kb 时,停等协议的效率才会至少达到50%。
18. 答;为了有效运行,序列空间(实际上就是发送窗口大小)必须足够的大,以允许发送方在收到第一个确认应答之前可以不断发送。信号在线路上的传播时间为
6×3000= 18000
,即18ms。
在T1 速率,发送64 字节的数据帧需花的时间:64×8÷×106) = 。
所以,发送的第一帧从开始发送起, 后完全到达接收方。确认应答又花了很少的发送时间(忽略不计)和回程的18ms。这样,加在一起的时间是。发送方应该
有足够大的窗口,从而能够连续发送。 36. 33/=110
也就是说,为充满线路管道,需要至少110 帧,因此序列号为7 位。
19. It can happen. Suppose that the sender transmits a frame and a garbled
acknowledgement comes back quickly. The main loop will be executed a second time and a frame will be sent while the timer is still running.
20. Let the sender’s window be (Sl , Su) and the receiver’s be (Rl , Ru). Let the window size be W. The relations that must hold are:
0 ≤ Su- Si + +1 ≤ W1
Ru -Rl + 1 = W Sl ≤ Rl ≤ Su + 1
21. 答:改变检查条件后,协议将变得不正确。假定使用3 位序列号,考虑下列协议运行过程:
A 站刚发出7 号帧;B 站接收到这个帧,并发出捎带应答ack。A 站收到ack,并发送0~6 号帧。假定所有这些帧都在传输过程中丢失了。B 站超时,重发它的当前帧,此时捎带的确认号是7。考察A 站在=7 到达时的情况,关键变量是ack_expected=0,=7,next_frame_to_send_=7。修改后的检查条件将被置成“真”,不会报告已发现的丢失帧错误,而误认为丢失了的帧已被确认。另一方面,如果采用原先的检查条件,就能够报告丢失帧的错误。所以结论是:为保证协议的正确性,已接收的确认应答号应该小于下一个要发送的序列号。
22. 答:可能导致死锁。假定有一组帧正确到达,并被接收。然后,接收方会向前移动窗口。
现在假定所有的确认帧都丢失了,发送方最终会产生超时事件,并且再次发送第一帧,接收方将发送一个NAK。然后NONAK 被置成伪。假定NAK 也丢失了。那么从这个时候开始,发送方会不断发送已经被接收方接受了的帧。接收方只是忽略这些帧,但由于NONAK 为伪,所以不会再发送NAK,从而产生死锁。如果设置辅助计数器(实现“else”子句),超时后重发NAK,终究会使双方重新获得同步。
23. 答:删除这一段程序会影响协议的正确性,导致死锁。因为这一段程序负责处理接收到的确认帧,没有这一段程序,发送方会一直保持超时条件,从而使得协议的运行不能向前进展。
24. It would defeat the purpose of having NAKs, so we would have to fall back to timeouts. Although the performance would degrade, the correctness would not be affected. The NAKs are not essential.
25. 答:这里要求+1 A 站发送0 号帧给B 站。B 站收到此帧,并发送ACK帧,但ACK丢失了。A 站发生超时,重发0 号帧。但B 站现在期待接收1 号帧,应此发送NAK,否定收到的0 号帧。显然,现在A 站最好不重发0 号帧。由于条件+1 26. 答:不可以。最大接收窗口的大小就是1。现在假定该接收窗口值变为2。开始时发送方发送0 至6 号帧,所有7 个帧都被收到,并作了确认,但确认被丢失。现在接收方准备接收7 号和0 号帧,当重发的0 号帧到达接收方时,它将会被缓存保留,接收方确认6 号 帧。当7 号帧到来的时候,接收方将把7 号帧和缓存的0 号帧传递给主机,导致协议错误。因此,能够安全使用的最大窗口值为1。 27. 答:发送1 位用时间1,发送1000bit 的最长帧花时间1ms。由于超时间隔是10ms,而1s 才能产生一个新的数据帧,所以超时是不可避免的。假定A 站向B 站发送一个帧,正确到达接收方,但较长时间无反向交通。不久,A 站发生超时事件,导致重发已发过的一帧。 B 站发现收到的帧的序列号错误,因为该序列号小于所期待接收的序列号。因此B 站将发送一个NAK,该NAK 会携带一个确认号,导致不再重发该帧。结果每个帧都被发送两次。 28. 答:不能,协议的运行将会失败。当MaxSeq=4,序列号的模数=4+1=5,窗口大小将等于:NrBufs<=5/2=,即得到,NrBufs=2。因此在该协议中,偶数序号使用缓冲区1。这种映射意味着帧4 和0 将使用同一缓冲区。假定0 至3 号帧都正确收到了,并且都确认应答了,并且都确认应答了。如果随后的4 号帧丢失,且下一个0 号帧收到了,新的0 号帧将被放到缓冲区0 中,变量arrived[0]被置成“真”。这样,一个失序帧将被投递给主机。事实上,采用选择性重传的滑动窗口协议需要MaxSeq 是奇数才能正确的工作。然而其他的滑动窗口协议的实现并不具有这一性质。 29. 答:对应三种协议的窗口大小值分别是1、7 和4。 使用卫星信道端到端的典型传输延迟是270ms,以1Mb/s 发送,1000bit 长的帧的发送时间为1ms。我们用t=0 表示传输开始的时间,那么在t=1ms 时,第一帧发送完毕;t=271ms时,第一帧完全到达接收方;t=272ms,对第一帧的确认帧发送完毕;t=542ms,带有确认的帧完全到达发送方。因此一个发送周期为542ms。如果在542ms 内可以发送k 个帧,由于每一个帧的发送时间为1ms,则信道利用率为k/542,因此: (a) k=1,最大信道利用率=1/542=% (b) k=7,最大信道利用率=7/542=% (c) k=4,最大信道利用率=4/542=% 30. 答:使用选择性重传滑动窗口协议,序列号长度是8 位。窗口大小为128。卫星信道端到端的传输延迟是270ms。以50kb/s 发送,4000bit(3960+40)长的数据帧的发送时间是*4000=80ms。我们用t=0 表示传输开始时间,那么,t=80ms,第一帧发送完毕; t=270+80=350ms,第一帧完全到达接收方;t=350+80=430ms,对第一帧作捎带确认的反向数据帧可能发送完毕;t=430+270=700ms,带有确认的反向数据帧完全到达发送方。因此,周期为700ms,发送128 帧时间80*128=10240ms,这意味着传输管道总是充满的。每个帧重传的概率为,对于3960 个数据位,头开销为40 位,平均重传的位数为4000*=40位,传送NAK 的平均位数为40*1/100= 位,所以每3960 个数据位的总开销为 位。 因此,开销所占的带宽比例等于(3960+=%。 31. 答:使用卫星信道端到端的传输延迟为270ms,以64kb/s 发送,周期等于604ms。发送一帧的时间为64ms,我们需要604/64=9 个帧才能保持通道不空。 对于窗口值1,每604ms 发送4096 位,吞吐率为4096/=s。 对于窗口值7,每604ms 发送4096*7 位,吞吐率为4096*7/=s。 对于窗口值超过9(包括15、127),吞吐率达到最大值,即64kb/s。 32. 答:在该电缆中的传播速度是每秒钟200 000km,即每毫秒200km,因此100km 的电缆将会在 内填满。T1 速率125传送一个193 位的帧, 可以传送4 个T1 帧,即193*4=772bit。 33. Each machine has two key variables: next3frame3to3send and frame3expected, each of which can take on the values 0 or 1. Thus, each machine can be in one of four possible states. A message on the channel contains the sequence number of the frame being sent and the sequence number of the frame being ACKed. Thus, four types of messages exist. The channel may contain 0 or 1 message in either direction. So, the number of states the channel can be in is 1 with zero messages on it, 8 with one message on it, and 16 with two messages on it (one message in each direction). In total there are 1 + 8 + 16 = 25 possible channel states. This implies 4 × 4 × 25 = 400 possible states for the complete system. 34. The firing sequence is 10, 6, 2, 8. It corresponds to acceptance of an even frame, loss of the acknowledgement, timeout by the sender, and regeneration of the acknowledgement by the receiver. 35. The Petri net and state graph are as follows: The system modeled is mutual exclusion. B and E are critical sections that may not be active simultaneously, ., state BE is not permitted. Place C represents a semaphore that can be seized by either A or D but not by both together. 36. PPP was clearly designed to be implemented in software, not in hardware as HDLC nearly always is. With a software implementation, working entirely with bytes is much simpler than