答:①Web应用和HTTP协议
②电子邮件应用和SMTP(简单邮件传输协议)
③因特网的目录服务DNS和DNS协议
④BitTorrent和P2P协议
⑤远程终端访问和Telnet
⑥文件传输和FTP协议
知识点:2.1.1 网络应用程序体系结构
答:① 应用程序体系结构明显不同于网络的体系结构,从应用程序研发者的角度看,网络体系结构是固定的,并为应用程序提供了特定的服务集合。
② 应用程序体系结构由应用程序研发者设计,规定了如何在端系统上组织该应用程序。其所使用的两种主流体系结构之一分别是客户——服务器体系结构或对等(P2P)体系结构。
知识点:2.1.2 进程通信——客户和服务器进程
答:在一对进程的通信会话场景中,发起通话(即在会话开始时发起与其他进程的联系)的进程被标识为客户,在会话开始时等待联系的进程是服务器。
答:不同意,在P2P文件共享应用中,一个进程可以既是客户又是服务器。实际上,在P2P文件共享系统中,一个进程既能上载文件又能下载文件。无论如何,在给定的一对进程之间的通信会话中,我们仍能标志一个进程是客户机,标志另一个进程为服务器。在给定的一堆进程之间的通信会话中,发起通话的进程被标识为客户,在会话开始时等待联系的进程是服务器。
答:目标主机的IP地址和目标套接字的端口号。
答:UDP的发送端可以用任意速率向网络层注入数据,可以在一次往返时间(RTT)中完成——客户端将事务请求发送到UDP套接字,服务器将回复发送回客户端UDP套接字。对于TCP,至少需要两个RTTs,一个用于建立TCP连接,另一个用于客户机发送请求,以及服务器发送回复。
知识点:2.1.4 因特网提供的运输服务
答:对时间和订单信息敏感的应用程序:商品限时秒杀 、优惠券的限时发放、百亿补贴券限时抢购。
知识点:2.1.3 可供应用程序使用的运输服务
2.1.4 因特网提供的运输服务——因特网运输协议不提供的服务
运输服务 | TCP | UDP |
---|---|---|
可靠数据传输 | √ | × |
吞吐量 | × | × |
定时 | × | × |
安全性 | √(添加SSL) | × |
知识点:2.1.4 TCP安全
答:SSL在应用层运行。SSL套接字从应用层接收未加密的数据,对其进行加密,然后将其传递给TCP套接字。如果应用程序开发人员希望使用SSL增强TCP,则必须在应用程序中包含SSL代码。
SSL不能用来强化UDP。SSL是可靠协议,基于不可靠的UDP丢失关键信息就没意义了。
答:让客户端和服务器确认彼此的身份。
知识点:2.1.4 因特网提供的运输服务
答:首先要知道TCP几个重要的特性: 面向连接, 保证数据完整性, 保证数据有序到达, 有拥塞控制功能. 而上述功能UDP都没有.
首先HTTP, 用户通过浏览器以HTTP协议向服务器发起请求, 如果这个请求数据不完整, 服务器将无法给出正确响应, 用户也得不到想要的结果.
SMTP和POP3两个邮件协议也需要保证数据的完整性, 并且要保证按照一定的顺序交付, 所以选择TCP。
知识点:2.2.4 用户与服务器的交互:cookie
答:课本原话:Cookie可以用于标识一个用户。用户首次访问一个站点时,可能需要提供一个用户标识(可能是名字)。在后继会话中,浏览器向服务器传递一个cookie首部,从而向该服务器标识了用户。因此cookie可以在无状态的HTTP之上建立一个用户会话层。
当用户首先访问电子商务网站时,需要提供一个用户的唯一标识,电商网站根据用户标识查得用户信息,并将特定的用户信息作为cookie响应给用户,然后用户在电商网站发起的每个操作都带上该cookie,电商网站便能保留每个客户的购买记录了。
知识点:2.2.5 Web缓存器——代理服务器
答:Web缓存器设置在用户和初始服务器之间,当用户要向初始服务器发起请求时,浏览器会先将请求定位到Web缓存器上,如果缓存器上有请求对象的副本则直接将该副本响应给客户。如果缓存器中没有,则从Web缓存器向初始服务器发起对该对象的请求,Web缓存器收到来自初始服务器的响应对象后,自己会保留一份该对象的副本,然后再响应给用户。
因此,Web缓存器只能减少缓存过的对象的时延。
知识点:2.2.6 条件GET方法
答:
条件GET语句允许缓存器证实它的对象是最新的。
如果请求报文使用GET方法;并且请求报文中包含一个“If-Modified-Since:”首部行。那么,这个HTTP请求报文就是一个条件GET请求报文。
1、首先,一个代理缓存器(proxy cache)代表一个请求浏览器,向某Web服务器发送一个请求报文:
2、其次,该Web服务器向缓存器发送具有被请求的对象的响应报文:
3、该缓存器在将对象转发到请求的浏览器的同时,也在本地缓存了该对象。重要的是,缓存器在存储该对象时也存储了最后修改日期。最后,一个星期后,另一个用户经过该缓存器请求同一个对象,该对象仍在这个缓存器中。由于在过去的一个星期中位于Web服务器上的该对象可能已经被修改了,该缓存器通过发送一个条件GET执行最新检查。具体来说,该缓存器发送:
而此处的If-Modified-Since:首部行的值正好等于一星期前服务器发送的响应报文中的Last-Modified:首部行的值。该条件GET报文告诉服务器,仅当自指定日期之后该对象被修改过,才发送该对象。假设该对象没有被修改,接下来Web服务器向该缓存器发送一个响应报文:
4、在最后的响应报文中,状态行中为304 Not Modified,它告诉缓存器可以使用该对象,能向请求的浏览器转发它(该代理缓存器)缓存的该对象副本。
答:QQ、微信等。(用C/S架构模式也有B/S架构模式,详见https://baike.baidu.com/item/%E5%8D%B3%E6%97%B6%E9%80%9A%E8%AE%AF%E8%BD%AF%E4%BB%B6/9556908)
其中QQ使用的应用层协议是OICQ,OICQ使用的传输层协议是UDP。使用端口:4000用于发送信息,端口:8000用于接收信息。OICQ协议提供可靠的传输服务。
微信使用的应用层协议是HTTP。
它们不是使用相同的协议作为SMS。
知识点:2.3.4 邮件访问协议——POP3和基于Web的电子邮件
答:从Alice的用户代理到Alice的邮件服务器的是HTTP协议,从Alice的邮件服务器到Bob的邮件服务器是SMTP协议,从Bob的邮件服务器到Bob的用户代理是POP3协议。
答:略(等我做编程作业3再来答复。)
知识点:2.3.4 邮件访问协议——POP3
答:使用下载并删除方式的问题是,邮件接收方Bob可能是移动的,可能希望从多个不同的机器访问访问他的邮件报文,如从办公室的PC、家里的PC或他的便携机来访问邮件。例如,下载并删除方式将对Bob的邮件报文根据这3台机器进行划分,特别是如果Bob最先是在他办公室的PC收取了一条邮件,那么晚上当他回到家里时,通过他的手机将不能再收取该邮件。
使用下载并保留方式,用户代理下载某邮件后,该邮件仍保留在邮件服务器上。这时,Bob就能通过不同的机器重新读取这些邮件;他能在工作时收取一封报文,而在工作回家后再次访问他。
知识点:2.4.3 DNS记录和报文
答:资源记录是一个四元组:(Name,Value,Type,TTL),其中TTL是该记录的生存时间,它决定了资源记录应当从缓存中删除的时间。
①当Type的类型为A时,则Name是主机名,Value是该主机名对应的IP地址。 因此,一条资源类型为A的资源记录提供了标准的主机名到IP地址的映射。例如(relay1.bar.foo.com,145.37.93.126,A)就是一条类型A记录。
②当Type的类型为NS时,则Name是个域(如foo.com),而Value是个知道如何获得该域中主机IP地址的权威DNS服务器的主机名。这个记录用于沿着查询链来路由DNS查询。例如(foo.com,dns.foo.com,NS)就是一条类型为NS的记录。
③当Type的类型为CNAME时,则Value是别名为Name的主机对应的规范主机名。该记录能够向查询的主机提供一个主机名对应的规范主机名,例如(foo.com,relay1.bar.foo.com,CNAME)就是一条CNAME类型的记录。
④当Typle的类型为MX时,则Value是别名为Name的邮件服务器的规范主机名。例如,(foo.com,mail.bar.foo.com,MX)就是一条MX记录。
问题1的答案: MX服务器允许邮件服务器主机名具有简单的别名。通过使用MX记录,一个公司的邮件服务器可以和它的其他服务器(Web服务器)可以使用相同的别名。
问题2的答案:包含邮件服务器主机名的RR有两条记录,一条是MX类型,一条是A类型
答:.edu可以,Gmail不行
知识点:2.5 P2P文件分发——BitTorrent
答:不,Bob并不必须进行回报。因为Alice会选取一定数量的“邻居”(邻近对等方),并从它们那里获得块。而这个选择不是基于Alice向谁发送块就向谁获取块,而是根据一种“对换算法”,在Alice的对等方列表(追踪器提供)中向对等方发送请求,选取响应速度快的前四位上载者来获取块,每隔30秒Alice获取块的伴侣也是不停更新的。
知识点:2.5 P2P文件分发——BitTorrent
答:在BitTorrent中,对等方们每过30秒随机选择另外的一个邻居发送块,当Alice被随机选中时,她将得到第一个块。(一个试探的对等方)
知识点:2.5 P2P文件分发——DHT(分布式散列表)
DHT的知识补充
覆盖网络的知识补充
答:覆盖网络是一种应用层网络(对等方组成的逻辑网络,不是物理链路),在P2P协议中,覆盖网络由文件共享系统的节点与节点间的逻辑联系(两个对等方之间的TCP连接)构成,这条逻辑联系就是“边”,不包括路由器。
知识点:2.6.3 内容分发网——P98
答:①深入。该原则是通过在遍及全球的接入ISP中部署服务器集群来深入到ISP的接入网中。其目标是靠近端用户,通过减少端用户和CDN集群之间(内容从这里收到)链路和路由器的数量,从而改善了用户感受的时延和吞吐量。由于它是高度分布式设计,维护和管理集群的任务成为挑战。
②邀请做客。被大多数CDN公司所采用的,该原则是通过在少量(例如10个)关键位置建造大集群来邀请到ISP做客。这些CDN通常将集群放置在因特网交换点(IXP)。与深入设计原则相比,邀请做客设计通常产生较低的维护和管理开销,可能以对端用户的较高时延和较低吞吐量作为代价。
答: 负载均衡、昼夜问题、热点流量、ISP收费、服务器集群管理和维护开销等因素。
答:对于UDP服务器,没有欢迎套接字,来自不同客户机的所有数据都通过这个套接字进入服务器。对于TCP服务器,有一个欢迎套接字,每当客户机启动到服务器的连接时,就会创建一个新的链接套接字。因此,要支持n个同时连接,服务器需要n+1个套接字。
答:对于TCP应用程序,一旦执行客户机,它会尝试启动与服务器的TCP连接。如果TCP服务器没有运行,那么客户机将无法握手,当然也无法建立连接。对于UDP应用程序,客户端在执行时不会立即启动连接或尝试与UDP服务器进行通信。
参考文章:从输入URL到页面展示的详细过程(从输入url到页面展示到底发生了什么)
答:①输入URL地址
②应用层进行DNS解析
③应用层生成HTTP请求报文
④传输层建立TCP链接
⑤网络层使用IP协议来选择路线
⑥数据链路层实现网络相邻节点间可靠的数据通信
⑦物理层传输数据
⑧服务器处理反向传输
⑨服务器返回一个HTTP响应
⑩浏览器渲染