zoukankan      html  css  js  c++  java
  • 计算机网络自顶向下方法:第一章 计算机网络和因特网 课后复习题

    有几题需要用到书本配套的网站, 由于注册不成功没能用上附带的java小程序, 但都从网上查到了数据, 网上许多答案都是重复的, 也不知哪个是原创就不表明出处了. 基本都是个人回答, 比较粗糙, 如有错误, 欢迎指出.

    第一章 计算机网络和因特网

    1.1节

    R1. "主机"和"端系统"之间由什么不同? 列举几种不同类型的端系统. Web服务器是一种端系统吗?

    • 在自顶向下中主机等同于端系统, 两者在概念上是统一的, 没有区别.
    • 生活中与因特网相连的计算机, 智能手机, 游戏机等都属于端系统.
    • Web服务器也属于端系统.

     

    R2. "协议"一词常被用于描述外交关系. 维基百科是怎样描述外交协议的?

    • 外交协议指国际礼仪规则. 这些规则以文明原则为基础, 使各国人民更容易生活和工作在一起.

     

    R3. 标准对于协议为什么重要?

    • 有了标准协议才能生效, 端系统才能基于协议制定的标准进行通信.

     

    1.2节

    R4. 列出六种接入技术. 将它们分类为住宅接入, 公司接入或广域无线接入.

    1. 住宅接入:
    • 数字用户线(Digital Subscriber Line, DSL): 用户从提供本地电话接入的本地电话公司处获得DSL因特网接入.
    • 电缆: 住宅从提供有线电视的公司获得电缆因特网连接.
    • 光纤入户.
    • 注: 现代家庭中, 住宅接入通常和局域网技术结合使用, 以产生强大的家用网络.
    1. 公司接入:
    • 使用局域网(LAN) 将端系统连接到边缘路由器, 再与更大的因特网相连.
    • 扩展: 局域网的实现方式有很多种, 其中最为留行的是以太网和WiFi.
    • 以太网用户使用双绞铜线与一台以太网交换机相连, 以太网交换机或这样的交换机网络和更大的因特网相连.
    • 基于IEEE802.11技术的无线LAN接入, 更通俗称为WiFi, 无线用户在几十米的范围内就能从接入点收发分组(数据报), 该接入点与企业网相连(很有可能使用以太网), 企业网再与有线因特网相连.
    1. 广域无线接入:
    • 通过蜂窝网提供商运营的基站来发送和接收分组.(数据)

     

    R5. HFC传输速率在用户间是专用的还是共享的? 在下行HFC信道中, 可能出现碰撞吗? 为什么?

    • HFC(混合光纤同轴电缆网)是用户共享的. 在下行HFC信道中可能出现碰撞, 因为信道是用户共享的, 所以有碰撞的可能性.

     

    R6. 列出你所在城市中的可供使用的住宅接入技术. 对于每种类型的接入方式, 给出所宣称的下行速率, 上行速率和每月的价格.

    • 这个到当地的移动或电信官网能查到哈.

     

    R7. 以太LAN的传输速率是多少?

    • 随着历史的发展, 以太网的速率在不断的提升, 它的速率可以从各种以太网标准的名字获得, 如: 10BASE-T, 100BASE-T, 1000BASE-LX等. 名字的第一部分指出了该标准的速率, 分别对应为10Mbps, 100Mbps, 1000Mbps. 各种标准的速率取决于它的物理层结构.

     

    R8. 能够运行以太网的一些物理媒介是什么?

    • 在以太网中传输的一个比特从一个"发射器"到一个"接收器"直接经过的路段就是一种物理媒介. 它包括: 双绞铜线, 同轴电缆, 多模光纤缆等.

     

    R9. 拨号调制解调器, HFC, DSL和FTTH都用于住宅接入. 对于这些技术, 给出每种技术的传输速率的范围, 并讨论它们的传输速率是共享的还是专用的.

    • 本题答案来源网络
    种类 速率 方式
    拨号调制解调器 56Kbps 专用
    HFC 下行42.8Mbps, 上行30.7Mbps 专用
    DSL 下行24Mbps, 上行2.5Mbps 共享
    FTTH 下行10-20Mbps, 上行2-10Mbps 专用

     

    R10. 描述今天最为流行的无线因特网接入技术. 对它们进行比较和对照.

    • 我们经常听到身边使用手机上网的朋友说: 没流量了, 要找个WiFi.
    • 毫无疑问最流行的无线因特网接入技术就是无线局域网IEEE802.11(WiFi)和蜂窝网络了(4G). 这里简单举一个简单的例子. 无线设备和更大的网络连接都要经过基站中继, 基站是一个概念, 具体到不同的技术上有不同的实现, 对于WiFi而言基站是无线局域网的接入点, 对于蜂窝网而言基站是蜂窝塔. 当我们使用WiFi的时候需要在基站几十米的范围内, 而使用4G的时可以离某个基站几百米甚至一公里.

     

    1.3节

    R11. 假定在发送主机和接收主机之间只有一台分组交换机. 发送主机和交换机间以及交换机和接收主机间的传输速率分别是R1和R2. 假设该交换机使用存储转发分组交换方式, 发送一个长度为L的分组的端到端总延时是什么? (忽略排队时延, 传播时延和处理时延)

    • 分组从发送主机到交换机的时延为L/R1
    • 分组从交换机到接收主机的时延为L/R2
    • 所以总时延为L/R1 + L/R2

     

    R12. 与分组交换网络相比, 电路交换网络有哪些优点? 在电路交换网络中, TDM比FDM有哪些优点?

    • 电路交换网相比于分组交换网的优点是它能预先分配链路的使用, 保证某个用户能以固定的速率进行网络传输.
    • FDM(频分复用)和TDM(时分复用)的区别见下图.
     
    • 如图, FDM把链路带宽分成固定的大小, 每个用户享用链路中的部分带宽.
    • 不同于FDM, TDM先把链路在时域上分割为帧, 然后在每帧中划分出时隙, 每个用户在每帧中享有一个时隙. 这样不仅做到了为用户分配链路, 而且每个用户在属于他的时隙中能享用整条链路的带宽.

     

    R13. 假定用户共享一条2Mbps链路. 同时假定每个用户传输时连续以1Mbps传输, 但每个用户仅传输20%的时间.

    a. 当使用电路交换时, 能够支持多少用户?
    b. 作为该题的后继问题, 假定使用分组交换. 为什么如果两个或更少的用户同时传输的话, 在链路前面基本没有排队时延? 为什么如果3个用户同时传输的话, 将有排队时延?
    c. 求出某指定用户正在传输的概率.
    d. 假定现在有3个用户. 求出在任何给定的时间, 所有3个用户在同时传输的概率. 求出队列增长的时间比率.

    • 答:
    • a.电路交换的特点是预先为用户分配好链路, 无论用户使用多长的时间, 链路只要一经分配便会在所有时间内为该用户预留一定的速率. 所以使用电路交换能够支持2Mbps / 1Mbps = 2 个用户.
    • b.因为两个或更少的用户同时传输时, 分组的聚合到达速率小于或等于该链路的输出速率, 所以通过该链路的分组流基本没有时延, 这和电路交换的情况一样. 当活跃用户达到3个, 分组的聚合到达速率可能大于链路的输出速率, 输出队列会变长, 排队时延增加.
    • c.根据用户仅传输20%时间得出用户正在传输的速率为0.2.
    • 3个用户同时传输导致队列增长的比率为 0.2 * 0.2 * 0.2 = 0.008

     

    R14. 为什么等级结构中级别相同的两个ISP通常相互对等? 某IXP是如何挣钱的?

    • ISP(Internet Service Provider)因特网服务提供商.
    • 如果两个级别相同的ISP通过上级ISP进行网络传输, 则需要向上一级的ISP支付费用. 而通过相互对等, 两个同级别ISP能绕过上级ISP直接进行网络传输, 节省了费用. 两个对等的ISP通常不进行结算.
    • IXP(Internet Exchange Point)因特网交换点, 是一个提供对等的地方, 通常位于一个有自己的交换机的独立建筑物中. 对等ISP在IXP中进行网络传输, IXP通过对这部分流量进行结算挣钱.

     

    R15. 某些内容提供商构建了自己的网络. 描述谷歌的网络. 内容提供商构建这些网络的动机是什么?

    • 谷歌有跨越全球的大小不一的数据中心, 假设用户要访问的内容存在于某个数据中心中, 如果通过各层ISP到达谷歌的服务器, 会产生一笔不小的流量费. 谷歌的数据中心通过一个遍布全球的网络互联, 这一专用网络独立于公共因特网, 并绕过高层的ISP直接与较低层的ISP对等或在IXP与它们连接, 因而减少了向顶层ISP支付的费用, 同时对其服务最终如何交付给客户有了更多的控制. (注: 由于部分用户仅能通过顶层ISP访问到谷歌, 因此谷歌也与顶层ISP相连)

     

    1.4节

    R16. 考虑从某源主机跨越一条固定路由向某目的主机发送一分组. 列出端到端时延中的时延组成成分. 这些时延中的哪些是固定的, 哪些是变化的?

    • 处理时延: 检查分组的首部, 决定分组流向何处, 检查差错等动作形成处理时延, 处理时延是固定的.
    • 排队时延: 当一个分组来到路由器准备传输前, 如果路由器正在传输已经到达的分组, 刚到达分组就要进行排队等待, 这是排队时延的概念. 但排队时延是变化的, 如果队列为空, 路由器会直接对来到的分组进行处理, 排队时延为0.
    • 传输时延: 传输时延指分组来到路由器后, 路由器把从接收到分组到把分组推向下一段链路所需要的时间. 它是分组长度与链路传输速率的函数. 传输时延是固定的.
    • 传播时延: 指分组从一台路由器传送另外一台路由器所需要的时间, 它由链路的物理媒介决定(光纤, 双铜绞线等), 所以传播时延也是固定的.

     

    R17. 访问配套Web网站上有关传输时延与传播时延的Java小程序. 在速率, 传播时延和可用的分组长度之中找出一种组合, 使得该分组的第一个比特到达接收方之前发送方结束了传输. 找出另一种组合, 使得发送方完成传输之前, 该分组的第一个比特到达了接收方.

    • 抱歉, 本人没能在该Web站点完成注册, 给出来源于网络的答案加上自己的分析.
    • 定义L为可用的分组长度, V为可用速率, T为传播时延
    • 第一种组合: L / V < T
    • 另一种组合: L / V > T
    • 解释: L / V 为传输时延, 当传输时延小于传播的时延的时候, 路由器完成了对分组传输后, 分组仍在在前往接收方的路上跑着, 所以该分组的第一个比特到达接收方之前发送方结束了传输.
    • 当传输时延大于传播时延的时候, 发送方还没有传输完, 先放到链路上的比特就已经传输到接收方了, 所以发送方完成传输之前, 该分组的第一个比特到达了接收方.

     

    R18. 一个长度为1000字节的分组经距离为2500km的链路传播, 传播速率为2.5*10^8m/s并且传输速率为2Mbps, 它需要用多长时间? 更为一般地, 一个长度为L的分组经距离为d的链路传播, 传播速率为s并且传输速率为Rbps, 它需要多长时间? 该时延于传输速率相关吗?

    • 注意这个问题问的是传播时间.
    • 传播需要的时间: 2500km / 2.5*10^5km/s = 0.01s
    • 一般地, 分组端到端需要的传播时间为: d / s
    • 求解传播时间只需要链路长度和传播速率, 与传输速率无关.

     

    R19. 假定主机A要向主机B发送一个大文件. 从主机A到主机B的路径上有3段链路, 其速率分别为R1=500kbps, R2=2Mbps, R3=1Mbps.

    a. 假定该网络中没有其他流量, 该文件传送的吞吐量是多少?
    b. 假定该文件为4MB. 用吞吐量除以文件长度, 将该文件传输到主机B大致需要多少时间?
    c.重复(a)和(b), 只是这时R2减少到100kbps.

    • 一个文件传送的吞吐量取决于端到端路径上瓶颈链路的传输速率. 也就是说路径上有多条链路, 但是吞吐量的值是其中传输速率最小的链路的传输速率.
    • a.该文件传送的吞吐量为500kbps.
    • b.注:文件大小除以吞吐率等于传送给所需要的时间
      时间: 8 * 4Mb / 500kbps = 32Mb / 0.5Mbps = 64s
    • c.当R2减少到100kbps时, R2所处链路就变成了瓶颈链路.
      吞吐量为: 100kbps
      传输时间为: 8 * 4Mb / 0.1Mbps = 320s

     

    R20. 假定端系统A要向端系统B发送一个大文件. 在一个非常高的层次上, 描述端系统怎样从该文件生成分组. 当这些分组之一到达某分组交换机时, 该交换机使用分组中的什么信息来决定将该分组转发到哪一条链路上? 因特网中的分组交换为什么可以与驱车从一个城市到另一个城市并沿途询问方向相类比.

    • 端系统A会以固定的大小把大文件拆分为多个小的数据块, 然后通过协议栈, 自顶向下地把数据封装为分组并发送到接收端.
    • 分组交换机接收到分组后, 会获取分组首部的一个或多个字段的值, 然后到自己的转发表中查询该值该对应转发到哪一条链路上.
    • 当我们驾车从一个城市到另一个城市时候, 我们只知道目的地, 而不知道具体要走的路径, 但我们可以通过询问路途中的油站或行人得知下一步的具体路径. 分组交换中同样也是只知道分组源地址和目的地址, 途中要经过数个路由器, 而路由器会根据目的地告诉分组下一条要走的具体路径.

     

    R21. 访问配套Web站点的排队和丢包Java小程序. 最大发送速率和最小的传输速率是多少? 对于这些速率, 流量强度是多大? 用这些速率运行该Java小程序并确定出现丢包要花费多长时间? 然后第二次重复该实验, 再次确定出现丢包花费多长时间. 这些值有什么不同? 为什么会有这种现象?

    • 本答案数据部分来源于网络.
    • 最大发送速率为500bps, 最小传输速率为350bps.
    • 流量强度为 最大发送速率 / 最小传输速率 = 500 / 350 = 10 / 7
    • 首次出现丢包需要的时间为: 90msec
    • 再次出现丢包需要的时间为: 62msec
    • 这些值是随机的.
    • 因为发送方发送分组也是随机的, 并不是周期性的. 可能一次发送很多个分组, 导致出现丢包的时间较快, 否则出现丢包的时间会比较慢. 而发送速率仅代表平均发送速率.

     

    1.5节

    R22. 列出一个层次能够执行的5个任务. 这些任务中的一个(或两个)可能由两个(或更多)层次执行吗?

    • 任务: 封装本层的报文段, 设置各种参数, 对接受到的报文段进行差错检查, 还可能进行流量设置, 分组重组等等.
    • 多个层是可能执行相同的一个(或两个)任务的, 比如差错检验.

     

    R23. 因特网协议栈中的5个层次有哪些? 在这些层次中, 每层的主要任务是什么?

    1. 应用层: 应用层协议用于各个端系统中的应用程序交换信息分组, 该信息分组称为报文.
    2. 运输层: 运输层的作用是在应用程序端点之间传送应用层报文段. 在因特网中有TCP和UDP两种运输协议, 任一个都能封装并运输应用层报文, 运输层的分组称为报文段.
    3. 网络层: 网络层负责将运输层的报文段和目的地址封装成数据报, 用于下一层的传输.
    4. 链路层: 链路层会把网络层的数据报封装成链路层的帧, 并把该帧传递给下一个结点.
    5. 物理层: 物理层的任务是将链路层每帧中的一个个比特移动到下一个节点,, 具体会落实到不同的物理媒介(双绞铜线, 光纤等).

     

    R24. 什么是应用层报文? 什么是运输层报文段? 什么是网络层数据报? 什么是链路层帧?

    • 应用层报文指的是在端系统的应用程序之间按照某种协议进行信息交换的分组.
    • 运输层报文段指的是通过TCP/UDP等运输层协议对应用层报文进行封装后所形成的分组, 报文段对报文的传输参数进行了一定的设置, 使其具有了某种特性, 比如面向连接, 确保传递等.
    • 网络层数据报是对运输层报文段和目的地址进行封装后产生的分组. 数据报确定了分组的目的地, 使得分组可以通过网络层从发送方传送到接收方.
    • 链路层帧是对网络层数据报的封装, 它添加了下一个节点的具体地址, 使得分组能够传递到下一个节点.

     

    R25. 路由器处理因特网协议栈中的哪些层次? 链路层交换机处理的是哪些层次? 主机处理的是哪些层次.

    • 各层对应: 一-物理层, 二-链路层, 三-网络层, 四-运输层, 五-应用层
    • 路由器处理第一层到第三层
    • 链路层交换机处理第一层和第二层
    • 主机处理所有五层.

     

    1.6节

    R26. 病毒和蠕虫之间有什么不同?

    • 病毒是一种需要某种形式的用户交互来感染用户设备的恶意软件. 比如说你收到了一封恶意电子右键, 里面包含了恶意可执行代码, 你只要执行了这些代码, 病毒就可能入侵你的系统.
    • 蠕虫是一种无须任何明显用户交互就能进入设备的恶意软件. 比如说你运行了一个脆弱的网络程序, 攻击者可能通过该软件植入蠕虫到你的系统中, 无声无息.

     

    R27. 描述如何产生一个僵尸网络, 以及僵尸网络是怎样被用于DDos攻击的.

    • DDos攻击(Distributed Denial-of-Service, 分布式拒绝服务攻击)
    • 攻击者会通过恶意软件入侵我们的设备, 并且进一步感染其他设备, 当被感染的设备达到一定数量后变形成可供攻击者操控的僵尸网络.
    • 攻击者利用由数以千计的受害主机形成的僵尸网络, 让每台主机向目标猛烈发送流量, 造成目标服务陷入瘫痪, 完成一次DDos攻击.

     

    R28. 假定Alice和Bob经计算机网络互相发送分组. 假定Trudy将自己安置在网络中, 使得她能够俘获由Alice发送的所有分组, 并发送她希望给Bob的东西; 她也能够俘获由Bob发送的所有分组, 并发送她希望给Alice的东西. 列出在这种情况下Trudy能够做的某些恶意的事情.

    • 她可以窃听Alice和Bob之间的对话内容.
    • 她可以模拟Alice或Bob发送分组给对方.

    扩展阅读:

  • 相关阅读:
    MySQLday04(剩余窗口函数,其他常用函数,存储引擎,如何选择数据类型,字符集,索引,存储过程,触发器,LOCK TABLES 和 UNLOCK TABLES,事务控制,分布式事务的使用,JDBC)
    MySQLday03(JSON类型,算术运算符,比较运算符,逻辑运算符,位运算符,运算符的优先级,字符串函数,数值函数,日期和时间函数,流程函数,JSON函数,窗口函数)
    Mysqlday02(导入外部sql文件,order by,group by,having,多表联查,查元数据,数值类型,日期类型,字符数据类型)
    Mysqlday01(Mysql简介,sql简介,分类)
    Spring Boot 入门实战(6)--JdbcTempalte、Mybatis 、多数据源及 Atomicos 整合(XA 事务)
    Spring Boot 入门实战(5)--JdbcTempalte、Mybatis及多数据源整合(单库事务)
    Java 操作 XML(11)--XMLBeans 使用
    Qt QThread 创建多线程程序
    C++Primer第五版 第十三章 拷贝控制
    QtCreator float与QString之间的转化
  • 原文地址:https://www.cnblogs.com/tanshaoshenghao/p/10638488.html
Copyright © 2011-2022 走看看