当前位置:
文档之家› 计算机网络课后习题答案中文版
计算机网络课后习题答案中文版
因此,D = 2.048 * 5 + 2 * 6 + 1 * 5 + 1.024 * n B / 4Mbps = 27.24 ms + 1.024 * n B/4 Mbps
在电路交换中,总时延: D = 链路建立时延 +传输时延= 2 * 分组持续时间+ 传输时延 = 2 * (Tpkt * 5 + Tp * 6 + Ts * 5 + Tpkt) + (Tp * 6 + Tt )
解答:在这种情况下,有六条链路和五个交换机
(a) 在分组交换中,系统开销是所有的头部之和; 总的传输字节=数据包的数目 *头部长度+数据长度 =[n/1000]*24+n=1.024n 在电路交换中,系统开销由在往返路径上建立链路的信息组成 总的传输字节=建立链路信息长度 +数据长度 =(1KB+1KB)+n=2048+n 为了使电路交换在传输上比分组交换更有效率 , 1.024n>2048+n n>85333 因为 s 应该是 1000 比特的整数倍,所以 n>86000 比特。
意填充比特之后的帧,指出可能出现引入帧的任何差错。
解答:HDLC 和 PPP 协议的帧标志位 01111110,。0 比特位填充法用来确认一个数 据的的开始和结束。如果这里有五个连续的 1,发送方将会增加一个 0 作为填充 比特。如果接收方接收到 7 个连续的 1,那么在数据帧的尾部一定产生了差错。
下图是关于上述问题的 matlab 数字分析的仿真结果为:
(b) 在分组交换中,总延迟 D=在交换机上的时延*交换机的数目+在最后一跳的时延 = Tp + Tpkt +Ts)*5 + (Tp + Tt ) = Tpkt * 5 + Tp * 6 + Ts * 5 + Tt
在这里,Tpkt = 数据包长度/带宽= 1 KB / 4Mbps = 1024 *8 / (4 * 106) = 2.048 ms Tp = 2 ms, Ts = 1 ms, Tt = 1.024 * n B / 4Mbps
的计算结果是什么,接收方如何知道发生了一个差错? 解答:(a)原始的信息是 M=11001001
CRC 多项式为 C(x)=x3+1,所以 C=1001;然后给 M 附加 000 得到 T=11001001000,
商为 11010011,余数为 R=011,我们传输的是附加了 R 的 M,即,11001001011 (b)接收到的信息为 T’=01001001011 CRC 多项式为 C=1001,然后我们用 C 除 T’
会发生什么?
解答:我们假设 ACK 携带了一个额外的变量 k,它表示接收方的缓冲中剩余的 空间。在接收到 k 之后,发送方能够用它作为最大的发送 SWS,如果 k=0,发送方 将停止发送。在这种情况下,发送方的发送速率将会完全被接收方缓冲区剩余的 空间控制,实现了流控制的功能 。
T=0 时,发送方发送帧 1----帧四,在短时间内,接收到 ACK1...ACK4,然后发送方分 别设置 SWS 为 3,2,1,0. T=1 时,接收方释放第一个缓冲区,发送 ACK4/k=1,发送方滑动窗口向前移动同 时发送帧 5;接收方发送 ACK5/k=0; T=2 时,接收方释放第二个缓冲区; 发送 ACK5/k=1.发送方发送帧 6; 接收方发送
解答:时延带宽积 1Mbps * ( 2 * 1.25 sec) = 2.5Mb = 312500 Byte 这相当于 312500B / 1024 (B/pkt) = 305.2 pkt 滑动窗口应该长度应该大于 305 数据包的长度, 产生的序号应该是这个长度 的 2 倍, 即,610 个数据包的长度. 因为 29 < 610 < 210, 因此至少需要 10 个比特 位用来作序号。
交换机的数量 (k)
PS: 没有影响
PS: k 越大,延时越大
CS: 没有影响
CS: k 越大,延时越大
平均链路带宽 (b)
PS: 没有影响Βιβλιοθήκη PS: k 越大,延时越小
CS: 没有影响
CS: k 越大,延时越小
数据包头部长度比例 PS: a 越大,传输的数据越 PS: k 越大,延时越大
(a)
多
CS: 没有影响
在这里, Tpkt = 2.048 ms, Tp = 2 ms, Ts = 1 ms, Tt = n B / 4Mbps = Tpkt * 12 + Tp * 18 + Ts * 10 + Tt
因此, D = 2.048 * 12 + 2 * 18 + 1 * 10 + n B / 4Mbps = 70.58 ms + n B / 4Mbps
(iii) 我们假设 ACK[5]丢失了,然后发送方在一定时间范围内没有收到那 么它将重新发送 DATA[0]。当接收方希望接收数据 DATA[7]时,7 和 0 不能在 绝对值的计算上区分开来,因此接收方将会把 DATA[0]当做 DATA[7]接收,于 是产生了差错。
(a) MaxSeqNum SWS + RWS
ACK6/k=0. T=3 时,接收方释放第三个缓冲区; 发送 ACK6/k=1. 发送方发送帧 7; 接受方发送
ACK7/k=0. T=4, 接收方释放第四个缓冲区; 发送 ACK7/k=1. 发送方发送 8; 接受方发送
ACK8/k=0.
2-35.假设我们运行 SWS=5 和 RWS=3 的滑动窗口算法,并且没有错序的到达。 (a)求 MaxSeqNum 的最小值。你可以假设,下列条件对于求最小的 MaxSeqNum 是充分的,如果 DATA[MaxSeqNum]在滑动窗口内,那么 DATA[0]不会到达。 (b)给出一个例子,说明 MaxSeqNum-1 不是充分的。 (c) 给出最小化 MaxSeqNum 的通用规则,用 SWS 和 RWS 表示它。 解答:(a) MaxSeqNum 的最小值为 8;
从这个 CRC 结果上看,计算的商为 01000001,余数为 010。因为 T’没有被 C 整除,即,余数不为 0,接收方将会发现在接受的数据中一定出现了差错。
2-24.假设你为到月球的一个 1Mbps 点到点链路设计一个滑动窗口协议,单程 时延为 1.25 秒。假设每帧携带 1KB 数据,最少需要多少比特作序号?
为了使电路交换在时延上比分组交换的效率更高,需满足 27.24 ms + 1.024 * n B/4 Mbps > 70.58 ms + n B / 4Mbps n > 902917
因为 s 为 1000 比特的整数倍,所以 n > 903000 Byte 关于上述问题的 matlab 数值分析的仿真结果为:
电路交换的时延 = 2 * ((Tp + Tpkt +Ts)*k + (Tp + Tpkt )) + (Tp * (k+1) + Tt ) = (3Tp + 2Ts) * k + 2s*k/b + 2s/b + n/b + 3Tp
总结: (PS=分组交换, CS=电路交换)
参数
对需要的传输的影响
对获得的时延的影响
我们将五个 1 之后的 0 用红色表示。 接收的序列: 1101011111010111110010111110110 去掉填充物 0: 1101011111^1011111^01011111^110 在这里,没有连续的七个没有被填充物 0 阻断的 1,因此接收方不能检测出
任何差错。
2-18.假设我们想要传输消息 11001001,并用 CRC 多项式 x3 + 1 防止它出错. (a)使用多项式长除法确定应传输的消息。 (b)假设由于传输链路上的噪声使得消息最左端的比特发生发转。接收方的 CRC
2-29.给出当接收方用完缓冲区空间时,你如何通过让 ACK 携带额外的信息以减 少 SWS 来扩充带有流量控制的滑动窗口协议的一些细节。假设初始 SWS 和 RWS 都是 4,链路速度是瞬时的,并且接收方能够以每秒一个的速率释放缓冲区(即接 收方是瓶颈);用传输的一条时间线说明你的协议。说明在 T = 0, T = 1, ... , T = 4s 时
因为没有无序的到达方式,所以 DATA[0] 将永远不会到达。.
(b) MaxSeqNum – 1 = 7 是不充分的 证明:(i) 我们假设发送方发送 { DATA[0] , DATA[1], …, DATA[4] },并且全部到达。
(ii) 接收方发送 ACK[5]作为反馈,接收方的窗口将会移动到{ DATA[5], …, DATA[7]}.
2-44.令 A 和 B 是试图在一个以太网上传输的两个站。每个站有一个准备发送的 帧的稳定队列;A 的帧被编号为 A1、A2,等等,B 的帧类似。令 T=51.2µs 是指 数退避的基本单元 假设 A 和 B 同时想发送帧 1,导致冲突,并分别发生选择退避时间 0*T 和 1*T, 这意味着 A 在竞争中获胜并传输 A1 而 B 等待。在这次传输结束时,B 将试图重 传 B1 而 A 试图传输 A2,这种首次尝试又会冲突,但现在 A 退避 0*T 或 1*T,而 B 退避时间等于 0*T,1*T,2*T,3*T 中之一。 (a).给出第一个冲突后 A 立即在第二次退避竞争中获胜的概率;就是说,A 第一 次选择的退避时间 K*51.2 小于 B 的退避时间; (b) 假设 A 在第二次退避竞争中获胜,A 传输 A3,当传输结束时,在 A 试图传输 A4 而 B 试图再一次传输 B1 时,A 和 B 又一次产生了冲突,给出第一次冲突后 A 立即在第三次退避竞争中获胜的概率; (c) 为 A 在所有余下的退避竞争中获胜的概率给出一个合理的下界; (d) 然后对帧 B1 发生什么?