zoukankan      html  css  js  c++  java
  • 计算机网络第七版(谢希仁) 第一章 概述 1-10,1-17,1-28 作业答案

    计算机网络第七版 第一章 概述 1-10,1-17,1-28答案

    1-10: 试在下列条件下比较电路交换和分组交换。要传送的报文x(bit) 。从源点到终点共经过k 段链路,每段链路的传播时延为d(s), 数据率为b (bit/s) 。在电路交换时电路的建立时间为s (s) 。在分组交换时分组长度为p (bit), 且各结点的排队等待时间可忽略不计。问在怎样的条件下,分组交换的时延比电路交换的要小? (提示:画一下草图观察k 段链路共有几个结点。)
    解:电路交换:
    必须先建立连接,需要的时间是s 秒。
    发送x 比特的报文所需的时间是报文长度除以数据率b 。
    因此发送时延是x/b 。
    总的传播时延是链路数乘以每段链路的传播时延,即k*d=kd ,
    因此,电路交换的时延由以下三项组成:
    s+x/b+kd 。

    分组交换:
    不需要先建立连接,
    分组交换的传播时延,是k* d=kd 。
    发送n 个分组所需的发送时延是:(x/p)*(p/b)。
    在一段链路上发送一个分组的发送时延是p/b, (k - 1)段链路的发送时延是(k - 1)p/b。
    因此把以上三部分时延相加,就得出在分组交换的清况下的总时延:
    kd+(x/p)(p/b)+ (k-1)(p/b)

    由此可得:当s>(k-1)*(p/b)时,电路交换的时延比分组交换的时延大,当x>>p,得出分组交换时延较电路交换时延小的条件为:((k-1)p/b)<s。

    1-17:收发两端之间的传输距离为1000km,信号在媒体上的传播速率为2×〖10〗^8m/s。试计算以下两种情况的发送时延和传播时延:
    (1) 数据长度为〖10〗^7bit,数据发送速率为100kb/s。
    (2) 数据长度为〖10〗^3bit,数据发送速率为1Gb/s。
    从上面的计算中可以得到什么样的结论?

    在这里插入图片描述
    结论:若数据长度大而发送速率低,则在总的时延中,发送时延往往是大于传播时延。但若数据长度短而发送速率高,则传播时延就可能是总时延中的主要成分。

    (1-28) 假定要在网络上传送1.5MB 的文件。设分组长度为IKB, 往返时间RTT=80ms 。传送数据之前还需要有建立TCP 连接的时间,这需要2 x RTT = 160 ms 。试计算在以下几种情况下接收方收到该文件的最后一个比特所需的时间。
    (I) 数据发送速率为10 Mbit/s, 数据分组可以连续发送。
    (2) 数据发送速率为10 Mbit/s, 但每发送完一个分组后要等待一个RTT 时间才能再发送下一个分组。
    (3) 数据发送速率极快,可以不考虑发送数据所需的时间。但规定在每一个RTT
    往返时间内只能发送20 个分组。
    (4) 数据发送速率极快,可以不考虑发送数据所需的时间。但在第一个RTT 往返时间内只能发送一个分组,在第二个RTT 内可发送两个分组, 在第三个RTT 内可发送四个分组(即2^3- 1 = 2^2 = 4 个分组) 。( 这种发送方式见教材第5 章 TCP 的拥塞控制部分。)
    解:
    题目的已知条件中的M = 2^20 = 1048576, K = 2^10 = 1024 。

    (1) 1.5 MB= 1.5 x 1048576 B = 1.5 x 1048576 x 8 bit= 12582912 bit 。
    发送这些比特所需时间为: 12582912 / 〖10〗^7= 1.258 s 。
    最后一个分组的传播时间还需要:0.5 x RTT = 40 ms 。
    总共需要的时间= 2 x RTT + 1.258 + 0.5 x RTT = 0.16 + 1.258 + 0.04 = 1.458 s 。
    (2) 需要划分的分组数= 1.5 MB / 1 KB = 1536 。
    从第一个分组到达直到最后一个分组到达要经历:1535 x RTT = 1535 x 0.08 = 122.8 s 。
    总共需要的时间为:= 1.458 + 122.8 = 124.258 s 。
    (3) 在每一个RTT 往返时间内只能发送20 个分组。1536 个分组,需要76 个RTT, 76 个
    RTT 可以发送76x20=1520 个分组,最后剩下16 个分组,一次发送完。但最后一次发送的分组到达接收方也需要0.5 x RTT 。
    因此,总共需要的时间= 76.5 x RTT + 2 x RTT = 6.12 + 0.16 = 6.28 s 。
    (4) 在两个RTT 后就开始传送数据。
    经过n 个RTT 后就发送了1 + 2 + 4 + … + 2n =2^(n+1)- 1 个分组。
    若n =9, 那么只发送了2^10 - 1 = 1023 个分组。可见9 个RTT 不够。
    若n = 10, 那么可以发送2^11 - 1 = 2047 个分组。可见10 个RTT 足够了。
    这样,考虑到建立TCP 连接的时间和最后的分组传送到终点需要的时间,现在总共需要
    的时间= (2 + 10 + 0.5) x RTT = 12.5 x 0.08 = 1 s 。

  • 相关阅读:
    Ruby on rails3新手谈(1):Ruby on rails环境搭建
    更灵活,更易维护的WebHandler之通用webHandler编码方案(2)
    .Net Remoting之windows服务部署
    Ruby on rails3新手谈(2):简单的例子helloworld
    分组取最新记录的SQL
    验证日期的Javascript
    使用Javascript创建遮罩层并模拟Alert、Confirm对话框
    取得当前鼠标的X,Y坐标,及相关属性的介绍
    B/S结构系统中使用Session遇到的问题
    IE与FireFox的兼容性问题
  • 原文地址:https://www.cnblogs.com/liuawen/p/11809100.html
Copyright © 2011-2022 走看看