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

目录

第二章 应用层

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请求/响应消息的交互

例题:现在有一个客户向服务器请求一个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:<date>

如果对象是最新的服务器范围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来判断邮箱信息的结束

SMTPHTTP
推协议拉协议
都有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是对象对该接入链路的平均到达率。

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

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

1)由题意:总平均响应时间=平均接入时延+平均因特网时延。
其中,平均因特网时延=3秒
平均接入时延=△/(1-△B)
△=850000bit/15Mbps=850000bit / 15000000bit/s=0.0567s
B=16请求/s
△B=16*0.0567≈0.907
平均接入时延=0.0567/(1-0.907)≈0.6s
总平均响应时延=0.6+3=3.6s
(2)未命中率0.4,所以有60%可以通过缓存器立即响应。
平均接入时延=△/(1-△B)=0.0567/(1-0.4*0.907)≈0.089s
所以总响应时间=0.6 * 0 +(0.089+3) * 0.4 ≈ 1.24s

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

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

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

先进行TCP三次握手

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

=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

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值