美文网首页
计算机网络自顶向下方法 - 第二章课后习题解答

计算机网络自顶向下方法 - 第二章课后习题解答

作者: Mrfang1 | 来源:发表于2020-10-03 15:33 被阅读0次

复习题

R1 列出5种非专用的因特网应用以及他们所使用的的应用层协议

web应用: HTTP协议
文件传输应用: FTP协议
邮件应用: SMTP协议
P2P应用:Bittorrent协议
远程登录应用:telnet协议
因特网电话:SIP协议

R2 网络体系结构与应用程序体系结构之间有什么区别

网络体系结构又叫因特网体系结构,指的是五层因特网协议栈模型:
分为应用层,传输层,网络层,链路层,物理层
应用程序体系结构指的是对等(P2P)体系结构或者客户-服务器体系结构

应用程序体系结构可以通过应用网络体系结构使应用程序拥有网络传输的功能

R3 对两进程之间的通信回话而言,那个进程是客户,哪个进程是服务器

发起请求的是客户,接收请求的是服务器

R4 对一个P2P文件共享应用,你同意“一个通信回话不存在客户端和服务器端的概念”的说法吗?

不同意,P2P文件共享应用虽然能够相互传输文件,看起来每个用户既是客户也是服务器。但是具体到每一次通信回话中,发送文件的对等方通常被称为服务器,接收文件的对等方被称为客户端

R5 运行在一台主机上的一个进程,使用什么信息来标识运行在另一台主机上的进程

IP地址标识另一台主机,端口号标识主机上的程序

R6 假定你想尽快处理从远程客户端到服务器的事务,你将使用UDP还是TCP

UDP, 因为TCP是面向连接的,在传输之前需要进行三次握手,而UDP是无连接的,可以直接选定合适速率向外传送

R7 设想一个既要求无数据丢失又高度时间敏感的应用程序

发射火箭的程序,即时通讯等

R8 列出一个运输协议能够提供的4种宽泛类型的服务,对于每种服务类型,指出是UDP还是TCP提供的该服务

服务 TCP/UDP
可靠数据传输 TCP
吞吐量 TCP
定时 TCP
安全性 SSL

R9 TCP协议能用SSL强化以提供进程到进程的安全性服务,包括加密。SSL运行在运输层还是应用层?如果某应用程序想要用SSL来强化UDP,应当做什么工作

  • SSL运行在应用层
  • SSL在TCP的握手阶段完成了双方的身份确认,生成秘钥等操作。如果研制者要用SSL来强化UDP,因为UDP是面向无连接的,所以SSL首先要解决UDP传输中的身份确认问题

R10 握手协议的作用是什么

  • 使客户端和服务器建立起连接,能够开始传递信息

R11 为什么HTTP,SMTP,POP3都运行在TCP上,而不是UDP上

  • TCP的特性:面向连接,可以保证数据的完整性,可以保证数据的有序到达,有拥塞控制功能。而UDP没有
  • 用户通过浏览器以HTTP协议向服务器发起请求,如果请求数据不完整,服务器将无法给出正确响应,用户也得不到想要的结果
  • SMTP和POP3两个邮件协议也需要保证数据的完整性,并且要保证数据的有序到达,所以选择TCP

R12 考虑一个电子商务网站需要保留每一个客户的购买记录。描述如何使用cookie来完成该功能

  • HTTP服务器是无状态的,允许数以千计的TCP连接高性能的web服务器。但是HTTP使用了cookie,允许站点对用户进行追踪
  • 用户首次访问电子商务网站时,服务器会产生一个唯一标识,并以该标识在后台数据库产生一个表项,并返回一个setCookie的首部行。浏览器收到响应报文后,会在自己管理的特定cookie文件中添加一行,包含该服务器的主机名和在SetCookie中的标识码。往后的每一次请求浏览器都会抽取该网站的标识码,放在HTTP请求报文中的Cookie首部行内。 电商网站便能保留每个客户的购买记录了

R13 Web服务器是如何减少接收被请求对象的时延的,Web缓存器将减少一个用户请求的所有对象或只是其中的某些对象的时延吗?

  • Web缓存器设置在用户和初始服务器之间,当用户要向初始服务器发起请求时,浏览器会先将请求定位到Web缓存器上,如果缓存器上有请求对象的副本则直接将该副本响应给客户。如果缓存器中没有,则从Web缓存器向初始服务器发起对该对象的请求,Web缓存器收到来自初始服务器的响应对象后,自己会保留一份该对象的副本,然后再响应给用户
  • Web缓存器只能减少缓存过的对象的时延

R14 Telnet到一台Web服务器并发送一个多行的请求报文. 在该请求报文中包含If-modified-since: 首部行, 迫使响应报文中出现"304 Not Modified"状态代码

  • 条件GET (conditional GET)
  • 客户向Web 服务器发起请求,请求首先会被缓存器拦截,为了保证请求的内容在服务器上也是最新的,缓存器会向服务器发送一个GET请求,GET请求包含首部行if-modified-since,该首部行的内容是该对象在缓存器中的最新副本
  • 如果服务器中被请求对象和缓存器中的最新副本一样, 就没必要再发送一次了, 这时就会响应一个"304 Not Modified"状态码, 不带任何多余数据. 如果服务器中的对象更新过, 和缓存器中的副本不一样了, 服务器会将最新的副本发送给缓存器.

R26 UDP服务器仅需要一个套接字,而TCP服务器需要两个套接字。为什么,如果TCP服务器支持n个并行链接,每条连接来自不同的客户主机,那么TCP服务器将需要多少个套接字

  • 因为UDP是面向无连接的,它只需要有一个套接字用于发送请求和接收请求,并且可以接收来自不同地址主机的UDP。
  • 而TCP是面向连接的,除了接收访问的套接字,每和一个客户连接就要创建一个专用的套接字
  • n+1 个套接字

R27 运行在TCP之上的客户-服务器应用程序, 服务器程序为什么必须先于客户程序运行? 对于运行在UDP之上的客户-服务器应用程序, 客户程序为什么可以先于服务器程序运行.

  • 建立TCP连接需要经过一个三次握手的过程,如果服务器没有启动无法握手,无法创建连接
  • UDP是面向无连接的,就算服务器没有启动,客户程序一样可以把UDP发出去,服务器收不到信息就是。

参考链接:
https://blog.csdn.net/God_woodson/article/details/106729110

相关文章

网友评论

      本文标题:计算机网络自顶向下方法 - 第二章课后习题解答

      本文链接:https://www.haomeiwen.com/subject/gjuwuktx.html