【计算机网络】【自顶向下课后习题-2】

b40d0d86fbf64a9cb20ff420a74f8e98.jpeg

R1.  浏览器:HTTP      对等文件传输:FTP       网络安全协议:SSH 

电子邮件:SMTP      远程连接:Telent

R2.网络体系结构:将通信过程组织成层,例如五层结构

应用程序结构:客户-服务器体系结构,或P2P体系结构

R3.发起通信的进程是客户端,等待被联系的进程是服务器

R4.不同意。对于P2P文件共享而言,下载文件的为客户进程,上传文件的为服务器进程。

R5.目标主机的IP地址和目标进程的端口号(套接字)

R6.我选择UDP。使用UDP,事务可以在一次往返时间(RTT)中完成--客户端将事务请求发送到UDP套接字,服务器将回复发送客户端UDP套接字。对于TCP,至少需要两个RTTs:一个用于建立TCP连接,另一个用于客户端发送请求,以及服务器发送回复。

R7.秒杀系统。时间非常敏感,而且订单不能出现问题。

R8.运输服务:                     TCP                  UDP

有可靠数据传输                  可以                  不可以

恒定吞吐量                        不可以              不可以

定时                                  不可以               不可以

安全保障                           不可以               不可以

R9.SSL运行在应用层。SSL套接字从应用层接收未加密的数据,对其进行加密,然后将其传递给TCP套接字。如果应用程序开发人员希望使用SSL增强TCP,则必须在应用程序中包含SSL代码。

R10.握手协议的作用是:两个通信实体在发送数据之前,需要通过握手来确认一些控制信息,如发送窗口大小、接收窗口等。

如果两个通信实体在互相发送数据之前先交换控制包,则协议使用握手。SMTP在应用层使用握手,而HTTP不使用握手。

R11.HTTP:超文本传输协议    SMTP:简单邮件传输协议

POP3:即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议,用来接收电子邮件的。

使用这三个协议的应用程序是数据敏感的,所以需要可靠的数据传输协议。

与这些协议相关联的应用程序要求以正确的顺序接收所有应用程序数据,并且不存在间隔,TCP提供此服务,而UDP不提供此服务。

R12.当新的客户访问网站时,生成cookie并返回给客户,给浏览器保管,同时浏览器也记录一份cookie。等整个客户再次访问或买东西时,服务器再在对应的cookie上添加商品记录。(存储数据结构可用Map<Cookie,List<Order>>来模拟。

R13.客户发出请求后,先在web缓存器中寻找有无请求对象,如果有,就直接作为响应返回给客户,这样的话客户就不用直接请求初始服务器了;相同的,如果web缓存器里没有请求对象,那就向初始服务器请求该对象,由于上一步就解决了一大批请求,初始服务器链路的流量竞争也缓解了许多。所以web缓存器能减少请求的所有对象的时延。

R15.SMS:短信息服务

脸书、微信、Snapchat都使用不同的协议作为SMS

d74d86d12760449cb65a5e48eeb0a66e.jpeg

R16.Alice使用浏览器作为用户代理,基于HTTP协议将邮件发送到Alice的邮件服务器中。然后从Alice的邮件服务器使用SMTP协议将邮件发送到Bob的邮件服务器中。Bob使用POP3协议从他的邮件服务器中下载目标邮件到主机。

R18.对于下载和删除,用户从POP服务器检索邮件后,邮件将被删除。这给四处奔波的用户带来了一个问题,它们可能希望从不同的机器(办公室PC、家庭PC等)来访问邮件。

在下载和保留中,邮件不会在被用户检索后被删除。这也很不方便,因为每次用户从新机器检索储存的邮件时,所有未删除的邮件都将转移到下机器(包括非常旧的邮件)。

R19.RR:资源记录。DNS储存的资源记录

组织的邮件服务器和web服务器可以具有与主机名相同的别名。包含邮件主机名的RR有MX类型和A类型,MX记录邮件服务器的简写全名映射,A记录邮件服务器的全名的IP地址映射。

R20.可以;但是如果用户使用GMAIL账户,您将无法看到发件人的IP地址。

R21.Bob也没有必要为Alice提供块。Alice必须是Bob的前4位邻居,Bob才能向她发送块;即使Alice在30秒的间隔内向Bob提供块,也不会发生这种情况。

补充:这里要了解一下,响应文件块中的机灵:对换算法

在决定该响应哪些邻居对文件块的请求中,BT使用了一种机灵的对换算法。对换算法基本思路:根据当前能够以最高速率向她提供数据的邻居,给出优先权。我的主机会持续的测量我对每个邻居的接收速率,并确定最高速率流入的4个邻居。每过10s,重新计算速率,并可能更新这4个邻居。用BT的术语来说,这4个对等方的集合被称为疏通。更重要的是,每过30s,我的主机也要随机地选择另一个邻居(假设叫A)并向其发送块,如果我的主机同发送过块,成为了A之际的前4位上载者,A也会开始向我的主机发送块,这样A的主机也可能成为了我的主机的前4位上载者。每过30s会再次随机选择一名新的对换伴侣并开始与这位对换伴侣进行对换,我们希望找到更好的对换伴侣,使对等方能够以趋向与找到彼此的协调的速率上载。随机选择邻居也允许新的对等方得到块。除了这5个对等方的所有其它相邻对等方均被“阻塞”,既它们不能从我的主机接收任何块。这种交换激励机制又被称为“一报还一报”。

R22.回想一下,在BT中,一个对等点选择一个随机的对等点,并乐观的在短时间内解除该对等点的阻塞。因此,Alice最终会被她的一个邻居解除阻塞,在此期间,她会从邻居那里收到数据块。

R23.P2P文件共享系统中的覆盖网络由参与文件共享系统的节点和节点之间的逻辑链接组成。如果A和B有一个半永久的TCP连接,则从节点A到节点B有一个逻辑链路(图论术语中的“边缘”)。覆盖网络不包括路由器。

R24.一种服务器布局理念称为Enter Deep,它通过在全世界的ISP中部署服务器集群,深入到Internet服务提供商的接入网中。目标是减少延迟,提高终端用户和CDN服务器之间的吞吐量。另一种理念是将ISP带回家,在较小数量的站点上构建大型CDN服务器集群,并通常将这些服务器集群放置在IXP中。这带来了居家设计典型的结果是较低的维护和管理成本,与进入深度的设计理念。

补充:CDN意为内容分发网络,它是在现有网络基础之上的智能虚拟网络,分布在各地的边缘服务器。其基本思路是避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使得内容传输的更快、更稳定。CDN就是把原服务器上的数据复制到其它服务器上。用户访问时,可以在复制了数据内容的服务器进行。其目的是为了更快更好的获取所需内容,解决为了拥挤的状况,提高用户访问网站的响应速度。

R25.除了与网络相关的因素外,还有一些重要的因素需要考虑,例如负载均衡(客户端不应指向过载集群)、日效应、网络中DNS服务器之间的变化、很少访问视频的可用性有限以及需要环节流行视频内容可能产生的热点。

R26.对于UDP服务器,没有欢迎套接字,来自不同客户端的所有数据都通过这个套接字进入服务器。对于TCP服务器,有一个欢迎套接字,每次客户端启动到服务器的连接时,都会创建一个新的套接字。因此为了支持n个同时连接,服务器需要n+1个套接字。

R27.对于TCP应用程序,一旦客户端被指向,它就会尝试与服务器的TCP连接。如果TCP服务器没有允许,则客户端将无法建立连接。对于UDP应用程序,客户端在执行时不会立即启动连接(或尝试与UDP服务器通信)。

P1.1)错。文本和图像是通过不同的URL请求的,应该对应4个请求报文。

2)对。HTTP提供持续连接。

3)错。非持续连接时,客户发送一个请求报文,服务器做出响应后就关闭了。

4)错。相应报文中的Date指的是服务器将相应内容封装好准备发送的时间(接近与客户受到响应的时间)

5)错。304类型的响应就是空报文体,告诉客户:访问的资源是最新的。

P3.需要应用层的DNS协议来找到对应的IP地址,DNS寻址过程中会使用运输层的UDP协议来传输信息。当客户获取到IP地址后,就会基于HTTP协议访问目的IP地址的资源。

2cf6e66a59e346ee92c6aff7a558a9b8.jpeg

P4.  a)文档请求是 http://gaia.cs.umass.edu/cs453/index.html    host:字段表示服务器的名称,/cs453/index,html表示文件名

b)HTTP1.1

c)浏览器正在请求持久连接,如连接所示:keep-alive

d)这是个刁钻的问题。此信息不包含在任何地方的HTTP消息中。因此,仅看HTTP消息的交换就无法区分这一点,你需要从IP数据包(承载HTTPGET请求的TCP段)中获得信息来回答这个问题。

e)Mozilla/5.0。服务器需要浏览器类型信息将同一对象的不同版本发送到不同类型的浏览器。

P5.  a)状态代码200和短语ok表示服务器能够找到文档成功。答复于2008年3月7日星期二GMT标准时间12:39:45。

b)上一次修改index.html文档是在2005年12月10日星期六18:27:46GMT

c)3874     d)返回文件的前五个字节是:<!doc 。服务器同意持久连接,如connection:Keep Alive 字段所示。

P6. a)在RFC 2616的第8节中讨论了持久连接(这一点的真正目的是让你检索并阅读一份RFC)两者都能发送信令通知连接关闭。客户端或服务器在连接头字段标识 Connection:close,即可通知对方关闭连接。

b)HTTP不提供任何加密服务

c)来自持久连接的客户端应该限制同时维护到给定服务器的连接。单用户客户端与任何服务器或代理服务器的连接不应该超过2个。

d)是可能的。在服务器决定关闭“idle”连接的同时,客户端可能已经开始发送新请求。从服务器的角度来看,连接是在空闲时关闭的,但送客户端的角度来看,请求正在进行中。

P7.获取IP地址的总时间为RTT1+RTT2+...+RTTn。一旦知道IP地址,RTT0就会以建立TCP连接消逝,而另一个RTT0则会以请求和接收小对象消逝。总响应时间为2RTT0+RTT1+RTT2+...+RTTn。(需要消耗RTT0来建立TCP握手连接,又需要消耗RTT0的时间来建立数据连接)

 P8. 注意,这里是引用8个小对象,而不是请求8个小对象,所以之前的页面是要算进去的。

a)RTT1+RTT2+...+2RTT0+8*2RTT0

b)RTT1+RTT2+...+RRTTn+2RTT0+2*2RTT0(?这里不理解)

c)使用管道的持久连接。这是HTTP的默认模式:

RTT1+...+RTTn+2RTT0+RTT0

使用非管道的持久连接,没有并行连接:

RTT1+...+RTTn+2RTT0+8RTT0

管道连接其实就是把多个HTTP请求放到一个TCP连接中一一发送,而在发送过程中不需要等待服务器对前一个请求的响应。

P10.这种情况下,无论是并行还是不并行,持续连接和非持续连接时间上都是差不多的。

这里要理解并行的优势在哪,只有在宽带足够大的情况下,才能吃香。这里带宽才屁大点才150bps。并行下载将允许10个连接共享150位/秒的宽带,每个连接只有15位/秒。区别就是这些对象是一个个到的还是一起到的,但总时间几乎相同。

持续连接的优势在于避免了每次建立控制连接(握手)的开销,但这数据对象相对于控制分组实在是太大了,一个数据包100000比特,一个控制分组200比特。而且这里只有10给数据包需要发送,多开10对控制连接并不会有大的影响,连一个数据包耗时的零头都比不上。

P11.  a)是的,因为Bob有更多的连接,他可以获得更大的链路宽带份额。

b)是的,Bob仍然需要执行并下载。否则他得到的带宽将少于其它四个用户。(?有点不理解,不是问Bob有没有好处吗?为什么还有好处?为啥感觉答非所问)

P13.SMTP中的MAIL FROM指的是来自SMTP客户端的消息,它标识发送给SMTP服务器的邮件的发送方。邮件消息本身的From不是SMTP邮件消息,而是邮件消息正文中的一行。

P14.SMTP使用一个点 "."来标识报文结束。HTTP使用“Content-Length hearder field”来表示消息正文的长度。不行。HTTP不能使用SMTP使用的方法,因为HTTP消息可以是二进制数据如图片、视频等,不能以符号“.”结束,而在SMTP中,消息主体必须是7位的ASCLL格式。

P15.MTA代表邮件传输代理。主机将消息发送到MTA,消息随后跟随一系列MTA达到接收者的邮件阅读器。我们看到这个垃圾邮件遵循一个MTA链。诚实的MTA应该报告它收到消息的位置。请注意,在此消息中,“asusus-4b96([58.88.21.177])”不报告它收到电子邮件的位置。由于我们假定只有发端人是不诚实的,少于“assusus-4b96..”必须是发起人。

P18.  a)对于给定的域名输入(如ccn.com)、IP地址或网络管理员名称,whois数据库可用于定位相应的注册服务器、whois服务器、DNS服务器等。

P20.我们可以定期拍摄本地DNS服务器中DNS缓存的快照。该组织在DNS缓存中出现最频繁的Web服务器是最流行的服务器。这是因为如果更多的用户对Web服务器感兴趣,那么DNS请求就会对此感兴趣服务器更频繁的由用户发送。因此,该Web服务器将出现在DNS中缓存更频繁。

P21.是的,我们可以在本地DNS服务器中使用DIG查询该网站。例如,dig cnn.com 将返回查找cnn.com的查询时间。如果cmm.com几秒钟前刚刚被访问,那么cnn.com的条目将缓存在本地DNS缓存中,因此查询时间为0毫秒。否则,查询时间很长。 

P25.在覆盖网络中存在N个节点。n(n-1)/2边。

P26.是的。只要有足够的对等人留在蜂群中,他的第一个声明就可能是可能的。Bob可以总是通过乐观的非阻塞来接收数据对等端。

他的第二次声明也是真实的。他可以在每一个主机上运行客户端,让每个客户端“免费乘坐”,并将收集的chunks从不同的主机合并为单个文件。他甚至可以编写应该小的调度程序,使不同的主机请求不同的chunks文件。这实际上是P2P网络中的一种Sybil攻击。(?不理解这里)

P27.  (?)

a)N文件,假设我们通过将视频版本与音频版本按质量和速率的顺序配对来进行一对一的匹配。

b)2N个文件。

P28.  a)如果首先运行TCPClient,则客户端将尝试与TCP连接不存在的服务器进程。将不进行TCP连接。

b)UDPClient不与服务器建立TCP连接。因此如果你首先运行UDPClient再运行UDPSerse,然后在键盘上输入一点输入,那么一切都可以正常工作。

c)如果使用不同的端口号,则客户端将尝试建立TCP连接错误的进程或不存在的进程。会出现错误。

P29.在原始程序中,UDPClient在创建端口时未指定端口号。在这种情况下,代码允许底层操作系统选择端口号。在执行UDPClient时使用附加行,使用端口创建UDP套接字5432号。

UDPServer需要知道客户端端口号,以便它可以将数据包发回给正确的客户端套接字。查看UDPServer,我们看到客户端端口号不“硬连线”进入服务器代码;相反,UDPServer确定客户端端口号通过解开从客户端接收的数据报。因此,UDP服务器将与任何客户端端口号,包括5432.因此,UDPServer不需要修改。

P30.是的,您可以配置许多浏览器来打开网站的多个同时连接。优点是您可以更快的下载该文件,缺点是您可能占用了带宽,从而大大减缓了共享相同物理链接的其它用户的下载速度。

P31.对于远程登录(telnet和ssh)之类的应用程序,面向字节流的协议是非常自然的,因为应用程序中没有消息边界的概念。当用户键入一个字符时,我们只需将该字符放到TCP连接中即可。在其它应用程序中,我们可能会发送一系列在它们之间固有边界的消息。

例如,当一个SMTP邮件服务器向另一个SMTP邮件服务器连续发送多个电子邮件时,由于TCP没有指示边界的机制,所以应用程序必须自己添加指示,以便应用程序的接收方能够区分一条消息和另一条消息。

如果将每条消息放入一个不同的UDP段中,则接收端能够在没有任何指示的情况下,区分各种讯息、申请。

 

  • 24
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值