【计算机网络自顶向下】简答题习题总结(二)

目录

第二章 应用层

HTTP

FTP文件传输协议

电子邮件

域名系统DNS

内容分发网络CDN

常考问题

题目


第二章 应用层

HTTP

网页(Web页,或称文档)由许多对象组成,每个对象被一个URL(Uniform Resource Locator统一资源定位符)寻址(协议名、主机名、路径名)。

HTTP: 超文本传输协议

(1)client/server模式:客户端浏览器请求+ Web服务器响应 (2)工作过程: 客户初始化一个与HTTP服务器80端口TCP连接 (创建套接字) HTTP服务器接受来自客户的TCP连接请求, 建立连接 Browser (HTTP client)和Web服务器 (HTTP server) 交换HTTP消息(应用层协议消息)包括HTTP请求和响应消息 最后结束(或叫关闭)TCP连接 (3)HTTP是一个无状态的协议【不维护客户先前的状态信息】

  • HTTP持久连接和非持久连接

流水持久性、非流水持久性

  • HTTP1.0默认非持久性连接,一次传送一个对象,下载多个对象需要建立多个TCP连接

  • HTTP1.1默认持久性连接,一个TCP连接上可以传送多个对象

  • 不带流水的持久HTTP连接:客户必须收到响应才能继续发送请求,多个资源之间不能并发

  • 带流水的持久HTTP连接:客户可以在收到响应之前发送新的请求,多个请求可以同时发送,只需要一个RTT获得所有资源

响应时间(RTT)计算

  • 一个小分组从客户主机到服务器再到客户主机所花费的时间

  • 一个RTT用来建立TCP连接,一个RTT用来HTTP请求/响应消息的交互

  • 【计算机网络自顶向下】简答题习题总结(二)_第1张图片

     

例题:现在有一个客户向服务器请求一个Web页面,假设这个Web页面里面含有一个HTML基本文件和10个JPEG图形,并且这11个对象位于同一台服务器上。现在要把网页和引用对象都取回来。

注意:需要先把HTML文件取回来,才能取其他对象

  • 使用非持久连接的串行方式

建立连接+传输HTML文件=2RTT,然后连接断开

建立连接+传输JPEG1=2RTT,然后连接断开

...

建立连接+传输JPEG10=2RTT,然后连接断开

总共22RTT

  • 使用非持久连接的并行的方式

假设最多可以并行3条TCP连接

首先需要建立TCP并传输HTML文件=2RTT

剩余的10个文件分四组,每组2RTT

一共10RTT

  • 使用持久连接的带流水方式

先连接+传输HTML=2RTT

一次请求1RTT

一共3RTT

  • 使用持久连接的不带流水方式

先连接+传输HTML=2RTT

在传输10个JEPG,一共10RTT

一共12RTT

  • HTTP2:增加了服务器向客户端发送对象的灵活性

    • 基于客户端指定的对象优先级的请求对象传输数据。

    • 对象分为帧传送

  • HTTP3:新增安全性

  • HTTP 响应的状态码

位于服务器响应客户的响应消息的第一行 几个常见的样本状态码:

  • 200:请求成功,所请求信息在响应消息中返回

  • 301:所请求的对象已永久迁移,新的URL在本响应信息的头部指出

  • 400:该请求不能被服务器解读

  • 404:服务器不存在所请求文档

  • Cookies

目的:提高用户和服务的交互性

  • cookie头部行在HTTP请求消息

  • cookie头部行在HTTP响应消息

  • cookie文件保存在用户主机中并被用户浏览器管理

  • cookie信息也保存在Web站点的后端数据库中

  • Web缓存

  • 目标: 代表起始服务器满足HTTP请求【在不访问服务器的前提下满足客户端的HTTP请求】

  • 用户配置浏览器: Web 访问经由缓存

  • 所有HTTP请求指向缓存

    • 对象在缓存中:缓存器返回对象

    • 否则缓存器向起始服务器发出请求,接收对象后转发给客户机

  • 减少对客户机请求的响应时间

  • 减少内部网络与接入链路上的通信量

  • 能从整体上大大降低因特网的Web流量

  • 条件GET

目的:证实缓存器中的对象是否为最新

在请求报文中包含对象最后修改时间:if-modified-since:

如果对象是最新的服务器范围HTTP/1.0 304 Not Modified

FTP文件传输协议

传输文件到远程主机/从远程主机下载文件 client/server模式 client: 发起传输的一方 server: 远程主机

ftp服务器: 端口号 21

  • FTP客户首先发起建立1个与FTP服务器端口号21之间的TCP控制连接, 指定TCP作为传输层协议

  • 客户在建立的控制连接上获得身份认证

  • 客户在建立的控制连接上发送命令来浏览远程主机的目录.

  • 当服务器接收到1个文件传输命令时, 在服务器端口号20创建1个与客户的TCP数据连接

  • 1个文件传输后,服务器结束这个TCP数据连接.

  • 服务器创建第2个TCP与客户的数据连接来传输下一个文件.

  • 控制连接: 带外发送控制信息

  • FTP 服务器要维护用户状态信息: 当前目录, 先前的身份认证

电子邮件

SMTP、POP3、IMAP、HTTP

  • 用户代理user agents

    • 允许用户阅读,回复,转发,保存,编辑邮件消息

    • 发送, 接收邮件消息到/从服务器

  • 邮件服务器mail servers

    • 邮箱mailbox 存放用户接收的邮件消息

    • 外出报文队列outgoing message queue

  • SMTP

  • 客户端使用TCP来可靠传输到服务器端口号25

  • 邮件消息必须是7-bit ASCII

  • 直接传送:用于发送服务器到接收服务器

  • 邮件消息的格式: 多媒体扩展:增添额外信头头部声明MIME

总结:

  • SMTP使用持久连接

  • 要求邮件信息必须是7bit ASCII

  • 使用CRLF.CRLF来判断邮箱信息的结束

SMTP HTTP
推协议 拉协议
都有ASCII命令/应答交互,状态码
一个邮箱内各个对象置于同一个邮件消息的多目部分发送 每个对象封装在它各自的HTTP响应消息中发送
  • SMTP:递送/存储邮件信息到接收者邮件服务器【用来交换邮件信息的协议】

  • 邮件访问协议:从服务器获得邮件信息

    • POP:身份验证并下载邮件信息

      • 分为身份认证阶段和传输阶段

      • 会话无状态

    • IMAP:允许用户像对待本地邮箱那样操纵远程邮箱的邮件

      • 所有邮件消息保存在一个位置:服务器

      • 允许用户利用文件夹组织管理邮件消息

      • 支持跨会话的用户状态

    • HTTP

域名系统DNS

  • DNS实现的功能

  • 主机到IP地址的转换

  • 主机别名的转换

  • 邮件服务器别名

  • 负载均衡

    • DNS实现冗余服务器:一个IP地址集合对应同一个规范主机名

  • 域名系统

  • 分布式数据库:一个由多层DNS服务器实现的分布式数据库

  • 应用层协议

  • 各级域名服务器

根名字服务器负责记录顶级域名服务器的信息

顶级域服务器(top-level domain servers):负责顶级域名 com, org, net, edu, etc, 和所有国家的顶级域名 uk, fr, ca, jp.

权威DNS服务器(authoritative DNS servers): 负责保存公共可访问的DNS记录

本地DNS服务器:Local DNS Name Server

  • 每个ISP都有一个本地DNS服务器,也叫默认服务器

  • 当主机发出DNS请求时,该请求被发往本地DNS服务器,起着代理的作用,转发请求到层次结构中

  • DNS查询方法:

主机向本地域名服务器查询一般采用:递归查询,如果主机访问的本地域名服务器不知道被查询域名的IP地址,本地域名服务器就以DNS客户的身份向其他根域名服务器发出查询请求报文

本地域名服务器向根服务器的查询通常是:迭代查询,当根域名服务器收到本地域名服务器的迭代查询报文时,要么给出查询的IP,要么告诉本地域名服务器:下一步应该向哪个域名服务器进行查询,然后让本地域名服务器进行后续查询

一旦域名服务器获得DNS映射,将缓存至局部内存

将在一定时间后丢弃缓存的信息,本地DNS服务器可以缓存顶级域名服务器的IP地址

  • DNS记录

DNS是存储资源记录(RR)的分布式数据库

RR格式:(name,value,type,ttl)

有几种类型

  • Type=A:主机名到IP地址的转换

    • name为主机,value为IP地址

  • Type=NS:域名别名到权威服务器域名转换

    • name=域名

    • value为该域名的权威服务器的主机名

  • Type=CNAME:

    • name为规范名字的别名

    • value=真实的规范主机名

  • Type=MX

    • name=邮件服务器的主机别名

    • value=邮件服务器的真实规范主机名

  • 在DNS数据库插入记录

需要提供你自己的基本权威DNS服务器和辅助权威DNS服务器的名字和IP地址 该注册登记机构将下列两条资源记录插入注册机构的DNS系统中:

(network.com, dns1.network.com, NS) (dns1.network.com, 212.212.212.1, A)

假设用一个全新的浏览器(第一次启动的那种),访问百度(百度一下,你就知道),在敲入网址并按下回车之后:

1、获得IP地址 (1)首先搜索浏览器DNS 缓存,缓存中维护一张域名与 IP 地址的对应表 (2)若没有命中,则继续搜索操作系统的 DNS 缓存(Linux,/etc/hosts;Windows,C:\WINDOWS\system32\drivers\etc\hosts) (3)若仍然没有命中,则操作系统将域名发送至本地域名服务器,本地域名服务器采用递归查询自己的 DNS 缓存,查找成功则返回结果 (4)若本地域名服务器的 DNS 缓存没有命中,则本地域名服务器向上级域名服务器进行迭代查询

  • 本地域名服务器向根域名服务器发起请求,根域名服务器返回顶级域名服务器地址给本地服务器

  • 本地域名服务器拿到顶级域名服务器地址后,向其发起请求,获取权威域名服务器地址

  • 本地域名服务器根据权威域名服务器地址,向其发起请求,得到该域名对应的 IP 地址

  • 本地域名服务器将得到的 IP 地址返回给操作系统,同时自己将 IP 地址缓存起来

(5)操作系统将 IP 地址返回给浏览器,同时自己也将 IP 地址缓存。浏览器得到域名对应的 IP 地址,并将 IP 地址缓存(缓存时间)。 2、和起始服务器(或者Web缓存/代理服务器),建立TCP连接 得到百度的IP,下一步是使用TCP协议,建立TCP连接。 3、向起始服务器(或者Web缓存/代理服务器)发送请求报文,用HTTP协议请求网页内容, 4、浏览器收到响应报文,并解析

内容分发网络CDN

将多份拷贝存储在地理上分散的不同站点来提供服务(CDN)

CDN: 将内容的拷贝存储在CDN节点中

  • 用户向CDN请求内容

    • 被定向到附近的拷贝,取得内容

    • 如果网络路径拥塞,则可能选择其他的拷贝

常考问题

  • 域名服务器中的高速缓存的作用是什么?

可大大减轻根服务器的符合,使得因特网上DNS的查询请求和回答报文的数量大大减少

  • 简述SMTP通信的三个阶段

  • 连接建立:连接是在发送主机的SMTP客户和接收主机的SMTP服务器之间建立的

  • 邮件传送

  • 连接释放:邮件发送完毕后,SMTP应该释放TCP连接

  • 试述邮局协议POP的工作流程。IMAP和POP有何区别

POP使用客户机服务器的工作方式。在接收邮件的用户PC机中必须运行POP客户机程序,而在其ISP的邮件服务器中则允许POP服务器程序。POP服务器只有在用户输入鉴别信息后才允许对邮箱进行读取。

POP是一个脱机协议,所有对邮件的处理都在用户的PC机上进行;IMAP是一个联机协议,用户可以操纵ISP邮件服务器的邮箱

题目

  • p7、假定你在浏览器中点击一条超链接获得Web页面。相关联的URL的IP地址没有缓存在本地主机上,因此必须使用DNS lookup以获得该IP地址。如果主机从DNS得到IP地址之前已经访问了n个DNS服务器;相继产生的RTT依次为RTT1、…、RTTn。进一步假定与链路相关的Web页面只包含一个对象,即由少量的HTML文本组成。令RTT0表示本地主机和包含对象的服务器之间的RTT值。假定该对象传输时间为零,则从该客户点击该超链接到它接收到该对象需要多长时间?

首先是获得IP地址:RTT1+...+RTTn

再和服务器发送请求建立连接、传输数据,需要两个RTT0

总共:2RTT0 + RTT1 + .... + RTTn

  • P8、参照习题P7,假定在同一服务器上某HTML文件引用了 8个非常小的对象。忽略发送时间,在下列情况下需要多长时间:

(1)没有并行TCP连接的非持续HTTP。

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

(2)配置有5个并行连接的非持续HTTP。

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

(3)持续HTTP.

非流水

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

流水

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

  • P9、考虑图2-12,其中有一个机构的网络和因特网相连。假定对象的平均长度为850 000bits,从这个机构网的浏览器到初始服务器的平均请求率是每秒16个请求。还假定从接入链路的因特网一侧的路由器转发一个HTTP请求开始,到接收到其响应的平均时间是3秒。将总的平均响应时间建模为平均接入时延(即从因特网路由器到机构路由器的时延)和平均因特网时延之和。对于平均接入时延,使用△/(1-△B),式中△是跨越接入链路发送一个对象的平均时间,B是对象对该接入链路的平均到达率。

  • 【计算机网络自顶向下】简答题习题总结(二)_第2张图片

    (1)求出总的平均响应时间。

    (2)现在假定在这个机构LAN中安装了一个缓存器。假定未命中率为0.4,求出总的响应时间。

(1)平均接入时延=Δ/(1-ΔB)=(850000b/1.5x10^6) / (1 - 850000b/1.5x10^6) = 0.6s

总平均响应时间=0.6+3=3.6S

(2)平均接入时延=(850000b/1.5x10^6) / (1 -0.4x850000b/1.5x10^6)

总平均响应时间=(平均接入时延+平均因特网时延)x0.4=1.24S

  • P10.考虑一条10米短链路,某发送方经过它能够以150bps速率双向传输。假定包含数据分组是 100Kbits,仅包含控制(如ACK或握手)的分组是200bits。假定N个并行连接每个都获 得1/N的链路带宽。现在考虑HTTP协议,并且假定每个下载对象是100Kbits,这些初始下载对象包含10个来自相同发送方的引用对象。在这种情况下,经非持续HTTP的并行实例的并行下载有意义吗?现在考虑持续HTTP。你期待这比非持续的情况有很大增益吗?评价并解释你的答案。

假设客户端和服务器之间的单向传播延迟为Tp

首先考虑使用非持久连接的并行下载。并行下载将允许10个连接共享150bps的带宽,每个连接只有15bps

先进行TCP三次握手

【计算机网络自顶向下】简答题习题总结(二)_第3张图片

 

三次握手花费时间是分组的传播时间+控制信息的传输时间

=3Tp + (200b/150bps) x 3

传输第一个HTML文件=10000 / 150 +Tp

之后再并行传输,由于无连接的需要再建立TCP连接

=(200/15)x3+Tpx3 + 100000/15 + Tp

总共=7377+8Tp

再考虑持久HTTP

握手一样

=(200/150)x3 + 3xTp

传输HTML数据

=(100000/150) + Tp

传输十个对象

=(100000/150+ Tp + 200/150 + Tp) x 10

总共=7351+24Tp

你可能感兴趣的:(计算机网络,服务器,网络,tcp/ip,网络协议,电子科技大学)