计算机网络原理(谢希仁第八版)第四章课后习题答案_计算机网络第八版谢希仁课后答案-程序员宅基地

技术标签: 计算机网络原理(谢希仁第八版)  tcp/ip  

第四章

1.网络层向上提供的服务有哪两种?是比较其优缺点。
答:网络层向运输层提供 “面向连接”虚电路(Virtual Circuit)服务或“无连接”数据报服务前者预约了双方通信所需的一切网络资源。
优点是能提供服务质量的承诺。即所传送的分组不出错、丢失、重复和失序(不按序列到达终点),也保证分组传送的时限。
缺点是路由器复杂,网络成本高;后者无网络资源障碍,尽力而为,优缺点与前者互易。
2.网络互连有何实际意义?进行网络互连时,有哪些共同的问题需要解决?
答:网络互联可扩大用户共享资源范围和更大的通信区域。
进行网络互连时,需要解决共同的问题有:
不同的寻址方案不同的最大分组长度
不同的网络接入机制
不同的超时控制
不同的差错恢复方法
不同的状态报告方法
不同的路由选择技术
不同的用户接入控制
不同的服务(面向连接服务和无连接服务)
不同的管理与控制方式
3.作为中间设备,转发器、网桥、路由器和网关有何区别?
答:中间设备又称为中间系统或中继(relay)系统。
物理层中继系统:转发器(repeater)。
数据链路层中继系统:网桥或桥接器(bridge)。
网络层中继系统:路由器(router)。
网桥和路由器的混合物:桥路器(brouter)。
网络层以上的中继系统:网关(gateway)。
4.试简单说明下列协议的作用:IP、ARP、ICMP。
答:IP协议:实现网络互连。使参与互连的性能各异的网络从用户看起来好像是一个统一的网络。网际协议IP是TCP/IP体系中两个最主要的协议之一,与IP协议配套使用的还有四个协议。
ARP协议:是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
ICMP:提供差错报告和询问报文,以提高IP数据交付成功的机会
因特网组管理协议IGMP:用于探寻、转发本局域网内的组成员关系。
5.IP地址如何表示?
答:分为ABCDE 5类;每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。各类地址的网络号字段net-id分别为1,2,3,0,0字节;主机号字段host-id分别为3字节、2字节、1字节、4字节、4字节。
6.IP地址的主要特点是什么?
答:(1)IP 地址是一种分等级的地址结构。分两个等级的好处是:第一,IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。
(2)实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口。当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机(multihomed host)。由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。
(3) 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。
(4) 所有分配到网络号 net-id 的网络,范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。
7.试说明IP地址与MAC地址的区别,为什么要使用这两种不同的地址?
答:IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。从而把整个因特网看成为一个单一的、抽象的网络在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
MAC地址在一定程度上与硬件一致,基于物理、能够标识具体的链路通信对象、IP地址给予逻辑域的划分、不受硬件限制。
8.IP地址方案与我国的电话号码体制的主要不同点是什么?
答:IP地址方案与网络的地理分布无关,我国的电话号码需要根据地理位置进行排序号码。
9.IP数据报中的首部检验和并不检验数据报中的数据。这样做的最大好处是什么?坏处是什么?
答:在首部中的错误比在数据中的错误更严重,例如,一个坏的地址可能导致分组被投寄到错误的主机。许多主机并不检查投递给他们的分组是否确实是要投递给它们,它们假定网络从来不会把本来是要前往另一主机的分组投递给它们。数据不参与检验和的计算,因为这样做代价大,上层协议通常也做这种检验工作,从前,从而引起重复和多余。因此,这样做可以加快分组的转发,但是数据部分出现差错时不能及早发现。
10.当某个路由器发现一IP数据报的检验和有差错时,为什么采取丢弃的办法而不是要求源站重传此数据报?计算首部检验和为什么不采用CRC检验码?
答:纠错控制由上层(传输层)执行 IP首部中的源站地址也可能出错请错误的源地址重传数据报是没有意义的 不采用CRC简化解码计算量,提高路由器的吞吐量
11.设IP数据报使用固定首部,其各字段的具体数值如图所示(除IP地址外,均为十进制表示)。试用二进制运算方法计算应当写入到首部检验和字段中的数值(用二进制表示)。
在这里插入图片描述
把以上数据写成二进制数字,按每 16 位对齐,然后计算反码运算的和:
在这里插入图片描述

二进制计算规则:例如,最低位相加,一共有 4 个 1,相加后得二进制的 100,把最低位的 0 写下,作为和的最低位。进位中的 0 不必管它,进位中的 1 要与右边第 3 位相加。 右边第 2 位相加时,只有一个 1,相加后得 1,没有进位。把 1写在右边第 2 位上。
右边第 3 位相加时,共有 4 个 1 和一个进位的 1,即总共 5 个 1,相加后得 101。把这个和最右边的 1 写在和的右边第 3
位上。进位的 1 应当与右边第 5 位的数字相加,等等。

12.重新计算上题,但使用十六进制运算方法(每16位二进制数字转换为4个十六进制 数字,再按十六进制加法规则计算)。比较这两种方法。
解:和11题的解题方式一样:
在这里插入图片描述
两者相互比较,一个是8B,一个是B1。
13.什么是最大传送单元MTU?它和IP数据报的首部中的哪个字段有关系?
答:IP层下面数据链里层所限定的帧格式中数据字段的最大长度,与IP数据报首部中的总长度字段有关系。
14.在互联网中将IP数据报分片传送的数据报在最后的目的主机进行组装。还可以有另一种做法,即数据报片通过一个网络就进行一次组装。试比较这两种方法的优劣。
答:在目的站而不是在中间的路由器进行组装是由于:
(1)路由器处理数据报更简单些;效率高,延迟小。 
(2)数据报的各分片可能经过各自的路径。因此在每一个中间的路由器进行组装可能总会缺少几个数据报片; 
(3)也许分组后面还要经过一个网络,它还要给这些数据报片划分成更小的片。如果在中间的路由器进行组装就可能会组装多次。 为适应路径上不同链路段所能许可的不同分片规模,可能要重新分片或组装。
15.一个3200位长的TCP报文传到IP层,加上160位的首部后成为数据报。下面的互联网由两个局域网通过路由器连接起来。但第二个局域网所能传送的最长数据帧中的数据部分只有1200位。因此数据报在路由器必须进行分片。试问第二个局域网向其上层要传送多少比特的数据(这里的“数据”当然指的是局域网看见的数据)?
解:第二个局域网所能传送的最大数据帧中的数据只有 1200 bit,可见每一个IP数据报的最大长度是1200bit,故其数据部分最多为:
IP数据报的总长度 - IP数据报的首部 = 1200 - 160 = 1040 bit
而 TCP 交给 IP 的数据共 3200 bit = 1040 + 1040 +1040 + 80,因此 3200 bit 的数据必须划分为 4 个数据报片
四个数据报片的首部均为 160 bit(但里面内容并不相同),这四个数据报片的总长度(首部加上数据部分)分别为 1200 bit,1200 bit,1200 bit 和 240 bit。
上面这些就是第二个局域网向其上层传送的数据。
因此,第二个局域网向上传送 1200 + 1200 + 1200 + 240 = 3840 bit。
16.(1)试解释为什么ARP高速缓存每存入一个项目就要设置10~20分钟的超时计时器。这个时间设置的太大或太小会出现什么问题?
答:考虑到IP地址和MAC地址的映射可能发生变化(更换网卡,或动态主机配置)。10-20分钟更换一块网卡是合理的。超时时间太短会使ARP请求和响应分组的通信量太频繁,而超时时间太长会使更换网卡后的主机迟迟无法和网络上的其他主机通信。
(2)至少举出两种不需要发送ARP请求分组的情况(即不需要请求将某个目的IP地址解析为相应的MAC地址)。
答:在源主机的ARP高速缓存中已经有了该目的IP地址的项目;源主机发送的是广播分组;源主机和目的主机使用点对点链路。
17.主机A发送IP数据报给主机B,途中经过了5个路由器。试问在IP数据报的发送过程中总共使用了几次ARP?  
答:6次,主机用一次,每个路由器各使用一次。
18.设某路由器建立了如下路由表: 
目的网络-------------------下一跳 
192.4.153.0/26--------------R3
128.96.39.0/25-------------接口m0 
128.96.39.128/25---------接口m1 
128.96.40.0/25-------------R2 
192.4.153.0/26-------------R3
(默认)--------------------R4  
现共收到5个分组,其目的地址分别为: 
(1)128.96.39.10 
(2)128.96.40.12 
(3)128.96.40.151 
(4)192.4.153.17 
(5)192.4.153.90 
试分别计算下一跳。

解:

这里一共给出了两种目的网络,即子网掩码是255.255.255.128。还有子网掩码是255.255.255.192的。这里首先将目的地址与子网掩码255.255.255.128进行相与得出的结果则是目的网络的IP码,如果没用得到相对应得下一跳,再与子网掩码255.255.255.19进行相与得出目的网络的码,进行路由表对照即可。相与(将目的地址与子网掩码都化为二进制表示,然后进行相与即and,两数都为1时输出1,否则输出0)。这里感谢粉丝天师物联网的帮助!

(1)分组的目的地址为:128.96.39.10先与子网掩码255.255.255.128相与得128.96.39.0,由路由表对照,则下一跳接口为m0。
(2)分组的目的地址为:128.96.40.12先与子网掩码255.255.255.128相与得128.96.40.0,由路由表对照,则下一跳接口为R2。
(3)分组的目的地址为:128.96.40.151先与子网掩码255.255.255.128相与得
128.96.40.128,由路由表对照,则下一跳接口R4。
(4)分组的目的地址为:192.4.153.17先与子网掩码255.255.255.192相与得192.4.153.0,由路由表对照,则下一跳接口R3。
(5)分组的目的地址为:192.4.153.90与子网掩码255.255.255.192相与得192.4.153.64,经查路由表知,该分组转发选择默认路由,则下一跳接口为R4。
19.某单位分配到一个地址块为129.250/16。该单位有4000台机器,分布在16个不同的地点。试给每一个地点分配一个地址块,并算出每个地址块中IP地址的最小值和最大值。
解:4000台机器,16个地点,即每个地点有250个主机,根据地址块129.250/16,我们可以得知用16位表示主机号,其中后八位就有256-2=254个主机号,所以250个完全够用。即从答案如下:
地点: 子网号-----------子网网络号---------IP最小值---------IP最大值

1: 00000001---------129.250.1.0-------129.250.1.1-------129.250.1.254

2: 00000010---------129.250.2.0-------129.250.2.1-------129.250.2.254

3:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_51344334/article/details/120637198

智能推荐

while循环&CPU占用率高问题深入分析与解决方案_main函数使用while(1)循环cpu占用99-程序员宅基地

文章浏览阅读3.8k次,点赞9次,收藏28次。直接上一个工作中碰到的问题,另外一个系统开启多线程调用我这边的接口,然后我这边会开启多线程批量查询第三方接口并且返回给调用方。使用的是两三年前别人遗留下来的方法,放到线上后发现确实是可以正常取到结果,但是一旦调用,CPU占用就直接100%(部署环境是win server服务器)。因此查看了下相关的老代码并使用JProfiler查看发现是在某个while循环的时候有问题。具体项目代码就不贴了,类似于下面这段代码。​​​​​​while(flag) {//your code;}这里的flag._main函数使用while(1)循环cpu占用99

【无标题】jetbrains idea shift f6不生效_idea shift +f6快捷键不生效-程序员宅基地

文章浏览阅读347次。idea shift f6 快捷键无效_idea shift +f6快捷键不生效

node.js学习笔记之Node中的核心模块_node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是-程序员宅基地

文章浏览阅读135次。Ecmacript 中没有DOM 和 BOM核心模块Node为JavaScript提供了很多服务器级别,这些API绝大多数都被包装到了一个具名和核心模块中了,例如文件操作的 fs 核心模块 ,http服务构建的http 模块 path 路径操作模块 os 操作系统信息模块// 用来获取机器信息的var os = require('os')// 用来操作路径的var path = require('path')// 获取当前机器的 CPU 信息console.log(os.cpus._node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是

数学建模【SPSS 下载-安装、方差分析与回归分析的SPSS实现(软件概述、方差分析、回归分析)】_化工数学模型数据回归软件-程序员宅基地

文章浏览阅读10w+次,点赞435次,收藏3.4k次。SPSS 22 下载安装过程7.6 方差分析与回归分析的SPSS实现7.6.1 SPSS软件概述1 SPSS版本与安装2 SPSS界面3 SPSS特点4 SPSS数据7.6.2 SPSS与方差分析1 单因素方差分析2 双因素方差分析7.6.3 SPSS与回归分析SPSS回归分析过程牙膏价格问题的回归分析_化工数学模型数据回归软件

利用hutool实现邮件发送功能_hutool发送邮件-程序员宅基地

文章浏览阅读7.5k次。如何利用hutool工具包实现邮件发送功能呢?1、首先引入hutool依赖<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.19</version></dependency>2、编写邮件发送工具类package com.pc.c..._hutool发送邮件

docker安装elasticsearch,elasticsearch-head,kibana,ik分词器_docker安装kibana连接elasticsearch并且elasticsearch有密码-程序员宅基地

文章浏览阅读867次,点赞2次,收藏2次。docker安装elasticsearch,elasticsearch-head,kibana,ik分词器安装方式基本有两种,一种是pull的方式,一种是Dockerfile的方式,由于pull的方式pull下来后还需配置许多东西且不便于复用,个人比较喜欢使用Dockerfile的方式所有docker支持的镜像基本都在https://hub.docker.com/docker的官网上能找到合..._docker安装kibana连接elasticsearch并且elasticsearch有密码

随便推点

Python 攻克移动开发失败!_beeware-程序员宅基地

文章浏览阅读1.3w次,点赞57次,收藏92次。整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)近年来,随着机器学习的兴起,有一门编程语言逐渐变得火热——Python。得益于其针对机器学习提供了大量开源框架和第三方模块,内置..._beeware

Swift4.0_Timer 的基本使用_swift timer 暂停-程序员宅基地

文章浏览阅读7.9k次。//// ViewController.swift// Day_10_Timer//// Created by dongqiangfei on 2018/10/15.// Copyright 2018年 飞飞. All rights reserved.//import UIKitclass ViewController: UIViewController { ..._swift timer 暂停

元素三大等待-程序员宅基地

文章浏览阅读986次,点赞2次,收藏2次。1.硬性等待让当前线程暂停执行,应用场景:代码执行速度太快了,但是UI元素没有立马加载出来,造成两者不同步,这时候就可以让代码等待一下,再去执行找元素的动作线程休眠,强制等待 Thread.sleep(long mills)package com.example.demo;import org.junit.jupiter.api.Test;import org.openqa.selenium.By;import org.openqa.selenium.firefox.Firefox.._元素三大等待

Java软件工程师职位分析_java岗位分析-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏14次。Java软件工程师职位分析_java岗位分析

Java:Unreachable code的解决方法_java unreachable code-程序员宅基地

文章浏览阅读2k次。Java:Unreachable code的解决方法_java unreachable code

标签data-*自定义属性值和根据data属性值查找对应标签_如何根据data-*属性获取对应的标签对象-程序员宅基地

文章浏览阅读1w次。1、html中设置标签data-*的值 标题 11111 222222、点击获取当前标签的data-url的值$('dd').on('click', function() { var urlVal = $(this).data('ur_如何根据data-*属性获取对应的标签对象

推荐文章

热门文章

相关标签