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

news2024/12/23 22:31:58

目录

第二章 应用层

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)平均接入时延=Δ/(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三次握手

 

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

=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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/671719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

帅呆!接口开发不用写Controller、Service、Dao、Mapper、XML、VO,全自动生成

今天给小伙伴们介绍一个Java接口快速开发框架-magic-api 简介 magic-api 是一个基于 Java 的接口快速开发框架&#xff0c;编写接口将通过 magic-api 提供的 UI 界面完成&#xff0c;自动映射为 HTTP 接口&#xff0c;无需定义 Controller、Service、Dao、Mapper、XML、VO 等…

MySQL连环炮,你抗的住嘛?

最近后台好多小伙伴发私信咨询阿Q&#xff0c;问马上就是金九银十的面试黄金期了&#xff0c;该如何在三个月内突击一下&#xff0c;以便更好地通过面试呢&#xff1f; 有想赚点外块|技术交流的朋友&#xff0c;欢迎来撩 阿Q的想法就是需要对自己掌握的知识进行归纳整理&#x…

云原生应用交付平台Orbit设计理念与价值主张

本文作者&#xff1a;何文强——腾讯云 CODING 高级架构师。 负责 CODING DevOps产品解决方案架构设计和技术产品布道以及 CODING 云原生技术研究与落地实践。在多个技术大会担任演讲嘉宾&#xff0c;腾讯云 CODING DevOps 课程认证出品人&#xff0c;腾讯云云原生训练营核心初…

论文解读:DETRs Beat YOLOs on Real-time Object Detection

发表时间&#xff1a;2023 论文地址&#xff1a;https://arxiv.org/abs/2304.08069 项目地址&#xff1a;https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/rtdetr 【官方】 或 https://github.com/ultralytics/ultralytics/tree/main/ultralytics/vit/r…

大数据云计算运维之HA高可用服务搭建

HA高可用服务搭建 1、HA Cluster高可用集群 HA是High Available缩写。 HA Cluster是指高可用性集群&#xff0c;是保证业务连续性的有效解决方案&#xff0c;一般 有两个或两个以上的节点&#xff0c;且分为活动节点及备用节点。 FailOver&#xff1a;故障自动切换&#xff…

前端后端交互-ElementUI(日期选择器)

日期选择器 页面效果 页面效果 组件源码 <!-- daterange: 范围选择类型format: 绑定后表单中显示的格式value-format: 传递时显示的格式--> <template><el-date-picker v-model"rangeTime" type"daterange" range-separator"至" …

RabbitMQ使用延迟插件,代码量直接减少一半!

今天介绍一下使用RabbitMQ的延迟插件方便实现延迟消息的方案。 RabbitMQ 是一个由 Erlang 语言开发的 AMQP(高级消息队列协议) 的开源实现。 RabbitMQ 是轻量级且易于部署的&#xff0c;能支持多种消息协议。 RabbitMQ 可以部署在分布式和联合配置中&#xff0c;以满足高规模…

【立体视觉(四)】之极线校正与双目视觉

【立体视觉&#xff08;四&#xff09;】之极线校正与双目视觉 一、极线校正一&#xff09;Fusiello校正法1. 转换矩阵计算1&#xff09;计算旋转矩阵 R n R_n Rn​2&#xff09;计算内参矩阵 K n K_n Kn​3&#xff09;计算转换矩阵 T T T 2. 核线影像生成 二、双目视觉 此…

css基础知识五:CSS中,有哪些方式可以隐藏页面元素?区别?

一、前言 在平常的样式排版中&#xff0c;我们经常遇到将某个模块隐藏的场景 通过css隐藏元素的方法有很多种&#xff0c;它们看起来实现的效果是一致的 但实际上每一种方法都有一丝轻微的不同&#xff0c;这些不同决定了在一些特定场合下使用哪一种方法 二、实现方式 通过…

【IC设计】ICC1 workshop lab guide 学习笔记——Lab 2 Design Planning Task1-4

文章目录 Lab 2 Design Planning2.1 Load the Design2.2 Initialize the Floorplan2.3 Preplace the Macros Connected to I/O Pads2.4 Perform Virtual Flat Placement Lab 2 Design Planning 2.1 Load the Design 进入lab2_dp目录并打开icc_shell&#xff0c;打开orca_lib.…

雪花去噪算法学习记录(一)之基础知识

在进行实验过程中&#xff0c;需要完成对雪天图像的处理&#xff0c;其中一个主要操作为去雪。相较于去雾&#xff0c;去雨模型&#xff0c;去雪模型相对较少&#xff0c;因此在研究时所能够借鉴的资料有限&#xff0c;这对我们的研究造成了一定困扰。 模型算法 DesnowNet网络…

[VPN]华为SecoClient客户端Linux使用

准备 安装环境&#xff1a;CentOS 下载安装包&#xff1a; # wget http://www.corem.com.cn/sites/default/files/tools/secoclient/secoclient-linux-64-7.0.2.26.run 安装 在root用户下&#xff0c;执行&#xff1a; # chmod x secoclient-linux-64-7.0.2.26.run # ./secoc…

瞎搞!你真的懂什么是ERP、中台、低代码吗?

企业数字化领域从来都不缺新概念 从制造资源计划到中台&#xff0c;企业MRP报表数字还没对齐&#xff0c;就要忙着“去烟囱”化&#xff1b; 从中台到低代码&#xff0c;企业“数据孤岛”还没打通&#xff0c;又要忙着“赋能数字化能力”给业务人员了。 这一来二去&#xff0c;…

已有仓库,上传代码,如果你是先写代码,想上传git上你可以这样操作

已有仓库,上传代码&#xff0c;如果你是先写代码&#xff0c;想上传git上你可以这样操作 第一步&#xff1a;初始化 git git init 第二步&#xff1a;添加文件 git add * 第三步&#xff1a;提交文件 git commit -m "完整项目可直接下载使用" 第四步&#xff1a;配置…

【MySql】MySql索引的操作

文章目录 索引结构问题聚簇索引与非聚簇索引索引操作创建主键索引唯一索引创建普通索引创建全文索引创建删除索引查询索引索引创建原则 索引结构问题 InnoDB 在建立索引结构来管理数据的时候&#xff0c;其他数据结构为何不行 链表:线性遍历,在效率上是不合适的 二叉搜索树&am…

如何用Jmeter提取和引用Token

1.执行获取token接口 在结果树这里&#xff0c;使用$符号提取token值。 $根节点&#xff0c;$.data.token表示提取根节点下的data节点下的token节点的值。 2.使用json提取器&#xff0c;提取token 变量路径就是把在结果树提取的路径写上。 3.使用BeanShell取样器或者BeanShell后…

在 Navicat Premium 中管理 MySQL 用户 | 第 2 部分:创建新用户

第 2 部分&#xff1a;创建新用户 第 2 部分&#xff1a;创建新用户 第 1 部分 中&#xff0c;我们学习了如何使用 Navicat Premium 用户管理工具保护 MySQL 的 root 帐号。本篇文章将集中介绍如何设置新用户的帐号详细信息、帐号限制和 SSL 设置。如果你想边学边用&#xff1…

做好用户体验设计 关键看5个方面

用户来了就走&#xff0c;用户吐槽不好用&#xff0c;用户留不住&#xff0c;好的功能没人用&#xff0c;这到底是怎么回事&#xff1f;问题关键在于好的用户体验设计&#xff0c;而做好用户体验设计&#xff0c;关键看5个方面&#xff1a; 1、是否有用 我们需要考量产品。对用…

如何用数字人技术让课堂活起来?番职院和3DCAT实时云渲染给出答案

2023年4月20日&#xff0c;广州市第二届智慧教育成果巡展活动在番禺职业技术学院&#xff08;下文简称番职院&#xff09;举行&#xff0c;本次活动的主题是智能AI助教—让课堂活起来。 活动现场&#xff0c;瑞云科技受邀展示了其自主研发的瑞云数字人课堂互动教学解决方案。数…

实时监控Active Directory用户登录操作

用户登录到其域计算机是任何企业中发生的日常活动。一开始&#xff0c;这可能看起来是一个简单的Active Directory事件&#xff0c;但分配了不同角色的管理员可以将这些有价值的数据用于各种审计&#xff0c;合规性和运营需求。组织需要审核“AD 用户登录日志”的详细信息&…