第六章 | 计算机网络原理 谢希仁(第八版)_ 习题答案(Part 5)


计算机网络原理 谢希仁(第八版)

第六章 应用层 习题答案 (Part 5)


6-41

(略)

6-42

对 TCP 的 OBJECT IDENTIFIER 是什么?

答:

{1.3.6.1.2.1.6}

在这里插入图片描述

6-43

(略)

6-44

什么是应用编程接口 API?它是应用程序和谁的接口?

答:

当某个应用进程启动系统调用时,控制权就从应用进程传递给了系统调用接口。此接口再将控制权传递给计算机的操作系统,操作系统将此调用给某个内部过程,并执行所请求的 操作。内部过程一旦执行完毕,控制权就又通过系统调用接口返回给应用程序。只要应用进 程需要从操作系统获得服务,就要将控制权传递给操作系统,操作系统在执行必要的操作后将控制权返回给应用进程,这种系统调用接口又称为应用编程接口 API。API 是应用程序和操作系统之间的接口。

6-45

试举出常用的几种系统调用的名称,说明它们的用途。

答:

bind 系统调用:用来指明套接字的本地地址(本地端口号和本地IP 地址);
listen 系统调用:服务器收听,以便随时接受客户的服务请求;
accept 系统调用:服务器接受, 以便把远地客户进程发来的连接请求提取出来;
send 系统调用:客户和服务器都在 TCP 连接上使用send 系统调用传送数据;
recv 系统调用:客户和服务器都在TCP 连接上使用 recv 系统调用接收数据。

6-46

下图表示了各应用协议在层次中的位置。
(1)简单讨论一下为什么有的应用层协议要使用 TCP 而有的却要使用 UDP?
(2)为什么 MIME 画在 SMTP 之上?
(3)为什么路由选择协议 RIP 放在应用层?

在这里插入图片描述

答:

(1)应用层协议根据各自功能的需求,有的需要使用面向连接的 TCP 服务,提供可靠的数据传输服务,如 FTP,HTTP 等;而有的协议使用无连接的 UDP 服务,提供比较灵活的 服务,如 DHCP,SNMP
(2)MIME协议是扩展了的 SMTP 协议,是基于 SMIP 的,所以要放在 SMTP 上画。
(3)由于 RIP 协议是基于 UDP 协议而创建的。所以 RIP 协议应该放在 UDP 协议的上一层, 即应用层协议。

6-47

现在流行的 P2P 文件共享应用程序都有哪些特点,存在哪些值得注意的问题?

答:

(1)P2P 文件共享程序的特点:在 P2P 工作方式下,需要使用集中式的媒体服务器,这就解决了集中式媒体服务器可能出现的瓶颈问题。这种工作方式所有的音频/视频文件都是 在普通的因特网用户间传播。这其实是相当于有径多分散在各地的媒体服务器(由普通用户的 PC 机充当这种服务器)其他用户提供所要下载的音频/视频文件。
(2)P2P 文件共享程序也面临一些问题:文件的知识产权保护问题;P2P 流量的有效管 理问题;占用大量带宽资源问题;制定流量收费标准问题。

6-48

使用客户-服务器方式进行文件分发一台服务器把一个长度为 F 大文件分发给 N个对等方。假设文件传输的瓶颈是各计算机(包括服务器)的上传速率 u。试计算文件分发到所有对等方的最短时间。

解:

从服务器端角度考虑,N 台主机共需要从服务器得到的数据总量(比特数)是 NF。如果服务器能够不停地一起上传速率 u 向各主机发送数据,一直到各主机都收到文件 F,时间为(NF)/(u)s。则等待的最短时间为(NF)/(u)s。

6-49

重新考虑上题文件分发任务,但采用 P2P 文件分发方式,并且每个对等方只能在接收完整个文件后才能向其他对等方转发。试计算文件分发到所有 N 个对等方的最短时间。

答:

传送一次的时间为F/u。
第一次只能传送给 1 个对等方,第二次可以传送给 2 个对等方,第三次可以传送给 4 个对等方,到了最后的第 n 次可以传送给 2 n − 1 2^{n-1} 2n−1个对等方。
因此N=1+2+…+ 2 n − 1 2^{n-1} 2n−1,即 2 n − 1 2^n-1 2n−1=N。解得n=[log2(N+1)],所以求得最短时间为nF/u=[log2(N+1)]F/u.

6-50

再重新考虑上题文件分发任务,但可以把这个非常大的文件划分为一个个非常小的数据块进行分发,即一个对等方在下载完一个数据块后就能像其他对等方转发,并同时可以下载其他数据块。不考虑分块增加的控制信息,试计算整个大文件分发到所有对等方的最短时间。

① 这个很大的文件可以划分为很多很多(例如,N 个,N 是对等方用户的数目)非常小的数据块。服务器把每一个小数据块分别发送给每一个对等方的用户。例如,第 k 个小数据块发送给第 k 个对等方用户。这样,总共用时间 F/u就能够把整个大文件发送完毕。请注意,每个小数据块只需要从服务器发送一次,以后不需要再重复发送。
② 现在这个大文件已经分散在 N 个对等方了,每个对等方只下载到其中的一个小数据块。所花费的时间是 (F/u)/(1/N),N 是对等方用户的数目。
③ 然后,大量对等方用户之间互相传送数据。只要设计很好的传送规则,那么每经过时间 F/u,所有的对等方用户就都能够把整个大文件下载完毕。例如,我们可以在以后的每一次传送时,令第 k 个对等方,把刚才收到的第 k 个小数据块,传送给第 k-1 个对等方用户。第 1 个对等方则把刚刚收到的小数据块传送给第 N 个对等方用户。
④ 可见,整个大文件分发到所有对等方的最短时间是 F/u。

6-51

假定某服务器有一文件 F = 15 G b i t F=15Gbit F=15Gbit要分发给分布在互联网各处得N个等待方。服务器上传速率 u s = 30 M b i t / s us=30Mbit/s us=30Mbit/s,每个对等方的下载速率 d = 2 M b i t / s d=2Mbit/s d=2Mbit/s,上传速率为 u = 300 k b i t / s u=300kbit/s u=300kbit/s。设 ( 1 ) N = 10 , ( 2 ) N = 1000 (1)N=10,(2)N=1000 (1)N=10,(2)N=1000。试分别计算在客户-服务器方式下和在P2P方式下,该文件分发时间的最小值

解:

(1) N = 10 N=10 N=10
客户-服务器: T c s = m a x ( N F ) / u s , F / d m i n Tcs=max{(NF)/us,F/dmin} Tcs=max(NF)/usF/dmin
( N F ) / u s = 5000 s (NF)/us=5000s (NF)/us=5000s
F / d m i n = 7500 s F/dmin=7500s F/dmin=7500s
则客户-服务器的最小分发时间为 7500 s 7500s 7500s
P2P: T p 2 p = m a x F / d m i n , F / u s , N F / ( u s + ∑ u i ) Tp2p= max{F/dmin,F/us,NF/(us+∑ui)} Tp2p=maxF/dminF/usNF/(us+ui)
F / d m i n = 7500 s F/dmin=7500s F/dmin=7500s
F / u s = 500 s F/us=500s F/us=500s
N F / ( u s + ∑ u i ) = ( 10 × 15 G b i t ) / ( 30 M b i t / s + 10 × 300 k b i t / s ) = 4545.5 s NF/(us+∑ui)=(10×15Gbit)/(30Mbit/s+10×300kbit/s)=4545.5s NF/(us+ui)=(10×15Gbit)/(30Mbit/s+10×300kbit/s)=4545.5s
则P2P的最小分发时间为 7500 s 7500s 7500s
(2) N = 100 N=100 N=100
客户-服务器: T c s = m a x ( N F ) / u s , F / d m i n Tcs=max{(NF)/us,F/dmin} Tcs=max(NF)/usF/dmin
( N F ) / u s = 50000 s (NF)/us=50000s (NF)/us=50000s
F / d m i n = 7500 s F/dmin=7500s F/dmin=7500s
则客户-服务器的最小分发时间为 50000 s 50000s 50000s
P2P: T p 2 p = m a x F / d m i n , F / u s , N F / ( u s + ∑ u i ) Tp2p= max{F/dmin,F/us,NF/(us+∑ui)} Tp2p=maxF/dminF/usNF/(us+ui)
F / d m i n = 7500 s F/dmin=7500s F/dmin=7500s
F / u s = 500 s F/us=500s F/us=500s
N F / ( u s + ∑ u i ) = ( 100 × 15 G b i t ) / ( 30 M b i t / s + 10 × 300 k b i t / s ) = 45454.5 s NF/(us+∑ui)=(100×15Gbit)/(30Mbit/s+10×300kbit/s)=45454.5s NF/(us+ui)=(100×15Gbit)/(30Mbit/s+10×300kbit/s)=45454.5s
则P2P的最小分发时间为 45454.5 s 45454.5s 45454.5s

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-09 14:34:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-09 14:34:05       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-09 14:34:05       82 阅读
  4. Python语言-面向对象

    2023-12-09 14:34:05       91 阅读

热门阅读

  1. Webpack技术入门与实践

    2023-12-09 14:34:05       71 阅读
  2. 第一百九十六回 通过蓝牙发送数据的细节

    2023-12-09 14:34:05       61 阅读
  3. DPDK系列之三十八网卡优化

    2023-12-09 14:34:05       49 阅读
  4. 数据结构和算法专题---7、负载均衡算法与应用

    2023-12-09 14:34:05       63 阅读
  5. 什么是git pr

    2023-12-09 14:34:05       47 阅读
  6. 浅谈低代码

    2023-12-09 14:34:05       62 阅读
  7. yaml工作常用语法总结

    2023-12-09 14:34:05       49 阅读
  8. yarn和npm的区别

    2023-12-09 14:34:05       72 阅读
  9. Mac系统升级node.js版本和npm版本

    2023-12-09 14:34:05       63 阅读
  10. 2-Spring

    2-Spring

    2023-12-09 14:34:05      54 阅读
  11. 54.Go类型转换库cast

    2023-12-09 14:34:05       59 阅读