【计算机网络复习之路】应用层(谢希仁第八版)

news2024/11/9 10:04:59

专栏:计算机网络复习之路

目录

 一、域名系统DNS

1.1 本地域名服务器采用迭代查询

1.2 本地域名服务器采用递归查询  

二、文件传送协议FTP

三、远程终端协议TELNET

四、万维网WWW (World Wide Web)

4.1 万维网需要解决的问题

【1】怎样标志分布在整个互联网上的万维网文档?

【2】用什么协议来实现万维网上的各种链接?

非持续连接:

持续连接:

并发TCP连接: 

代理服务器:

HTTP的报文结构:

万维网站点使用 Cookie 来识别、跟踪用户:

【3】怎样使不同作者创作的不同风格的万维网文档都能在互联网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接?

【4】怎样使用户能够很方便地找到所需的信息?

五、电子邮件 (SMTP, POP3, IMAP)

5.1 基于万维网的电子邮件 

5.2 通用互联网邮件扩充 MIME 

 六、动态主机配置协议DHCP

七、简单网络管理协议SNMP(略)

总结:

结束语


应用层:负责最直观的应用请求的封装、发起;

表示层:将应用层的请求表述成符合网络协议和应用要求的会话层可理解的请求数据;

会话层:请求过程的会话管理;网络安全、交互逻辑、缓存处理、认证等与会话相关但与直接请求不相关的辅助逻辑。


应用层是七层OSI模型的第七层。应用层直接和应用程序接口并提供常见的网络应用服务。应用层也向表示层发出请求,应用层是开放系统的最高层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务而为了达到这个,就需要有不同的应用层协议(具体内容就是精确制定通信的规则,例如DNS、HTTP..............

这里对于表示层和会话层了解就行了,不做过多介绍(毕竟重点是应用层)。

具体来说,应用层协议应当定义:

(1)应用进程交换的报文类型,如请求报文和响应报文。
(2)各种报文类型的语法,如报文中的各个字段及其详细描述。
(3)字段的语义,即包含在字段中的信息的含义。
(4)进程何时、如何发送报文,以及对报文进行响应的规则。

如下都是本节应用层要介绍的重要协议,这个表格也希望大家都能记住哦:

 一、域名系统DNS

连接在互联网上的主机不仅IP 地址,还有便于用户记忆的主机名字域名系统 DNS (Domain Name System) 能够把互联网上的主机名字转换IP 地址。 

前瞻:互联网采用层次树状结构的命名方法。任何一个连接在互联网上的主机,都有一个唯一的层次结构的名字,即域名 (domain name)域名中的每一个层次叫做(domain) 。最高层次的域可以划分子域,每一个子域还可继续划分子域,这样就形成了顶级域二级域三级域,等等

规定:域名由标号label)序列组成,各标号之间用.)隔开,各标号分别代表不同级别的域名。域名中的标号都由英文字母和数字组成,标号不超过 63 个字符,也不区分大小写标号中除连字符(-)外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的顶级域名则写在最右边。由多个标号组成的完整域名总共不超过 255 个字符。

从上面规则可以算出域名最多127级,但现实中,三级或四级域名已经足够满足大多数网站的需要了。 例如抖音的域名:www.douyin.com。这就是一个三级域名。

全球顶级域名按功能可分为两类,一类是国际通用顶级域名(gTLD),另一类是国家顶级域名(nTLD)。(还用一种基础结构域名,但这种顶级域名只有一个,即arpa。用于反向域名解析,又称为反向域名

国际通用顶级域名包括:

  • .com:商业
  • .org:非盈利组织
  • .net:网络服务提供商
  • .int:国际组织
  • .edu:教育机构
  • .gov:政府机构
  • .mil:军事机构

国家顶级域名(ccTLD)则是各个国家或地区独立分配和管理的域名,如.cn表示中国,.jp表示日本,.uk表示英国,.us表示美国等等,各国和地区都有自己的ccTLD。并且在国家顶级域名下注册的二级域名均由该国家自行确定(比如edu,在小日本叫ac)我国把二级域名划分为“类别域名”和“行政区域名”两大类,这里就不做过多介绍了。

互联网的域名空间结构:


从域名到 IP 地址的解析由多个域名服务器共同完成。

域名系统由分布在世界各地的域名服务器来实现。

域名系统不是以“域”为管理单位,而是以 (zone)为管理单位。区可能等于或小于域,但一定不能大于域。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射。

权限域名服务器负责最终的域名到 IP 地址的解析当一个权限域名服务器不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。

比如,abc.com y.abc.com 设有一权限域名服务器,对于域名 t.y.abc.com 的解析,最终由 y.abc.com 这台权限域名服务器来负责。

1.1 本地域名服务器采用迭代查询

根据域名服务器所起的作用,可以把域名服务器划分为以下四种不同的类型:

(1)根域名服务器:不管是哪一个本地域名服务器,只要自己无法解析,就首先求助于根域名服务器。

(2)顶级域名服务器:当收到 DNS 查询请求时,一般情况下会给出下一步应当找权限域名服  务器的 IP 地址(但也可能是最后的结果)。

(3)权限域名服务器:权限域名服务器负责最终的域名到 IP 地址的解析。

(4)本地域名服务器本地域名服务器也称为默认域名服务器一个主机发出 DNS 查询请求时,该查询请求报文就首先发送给本地域名服务器。并且本地域名服务器会缓存其最近查询过的域名的解析,当所要查询的主机位于本地域名服务器的缓存中时,本地域名服务器就能立即所查询的主机名转换为它的 IP 地址,而不需要再去询问其他的域名服务器(有些题让你求最短查询时间,就是这个原因)


注意:这里的本地域名服务器只提供递归查询服务(标题说本地域名服务器采用迭代查询,只是强调后者),其他域名服务器均只提供迭代查询服务,还有上图的前缀dns.可以不用管。

详细步骤:

   ➊主机 m.xyz.com 向其本地域名 服务器 dns.xyz.com 进行 递归查询
❷本地域名服务器采用 迭代查询 。它先向一个根域名服务器查询。
❸根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器 dns.com 的 IP 地址。
❹本地域名服务器向顶级域名服务器 dns.com 进行 查询
❺顶级域名服务器 dns.com 告诉本地域名服务器,下一次应查询的权限域名 服务器 dns.abc.com IP 地址。
❻本地域名服务器向权限域名服务器 dns.abc.com 进行 查询
❼权限域名服务器 dns.abc.com 告诉 本地域名服务器,所查询的主机 IP 地址。
❽本地域名服务器最后把查询结果告诉主机 m.xyz.com。

  

有了上面的学习,趁热打铁!(这题还得再学习了HTTP协议后才能做,答案在文末)

1.2 本地域名服务器采用递归查询  

 

 根据途上图中标号顺序理解就行了~


最后,为什么DNS支持UDP和TCP呢 ?

大多数情况下 DNS 使用 UDP 进行传输(因为一般返回的内容不会超过 UDP 报文的最大长度,即 512 字节。用 UDP 传输时,不需要经过 TCP 三次握手的过程,从而大大提高了响应速度),因此这也要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性。但在两种情况下会使用 TCP 进行传输:

  • 如果返回的响应超过的 512 字节(UDP 最大只支持 512 字节的数据)。
  • 区域传送(区域传送是主域名服务器向辅助域名服务器传送变化的那部分数据,这个数据量一般都很大的)。

二、文件传送协议FTP

文件传送协议 FTP (File Transfer Protocol) 使用 TCP 可靠的运输服务,是互联网上使用得最广泛的文件传送协议FTP 使用客户-服务器方式,并且一个 FTP 服务器进程可同时为多个客户进程提供服务。

FTP 的服务器进程由两大部分组成:一个主进程,另外有若干个从属进程

两种区别主进程是打开端口,让外部发送的数据可以进来,并且将这些数据逐个分配各从属进程。从属进程则是单独为这些数据服务

主进程的工作步骤:

(1 打开熟知端口(端口号为   21),等待客户进程发出连接请求。
(2)启动 从属进程 处理 客户进程 发来的请求,处理完毕后即终止从属进程。
(3)回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是 并发 进行的。

下图的控制进程和数据传输进程就是两个从属进程(但为了简单起见,主进程不画出)。当客户进程向服务器进程请求建立连接时,需要向服务器的熟知端口 21 发送请求,同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接

根据数据连接是否是服务器端主动建立,FTP 有主动和被动两种模式:

(1)主动模式:服务器端主动建立数据连接,其中服务器端的端口号为 20,客户端的端口号随机,但是必须大于 1024,因为 0~1023 是熟知端口号。

(2)被动模式:客户端主动建立数据连接,其中客户端的端口号由客户端自己指定,服务器端的端口号随机。

但一般是主动模式。

从上面我们还能学到一点就是:在上面主动模式下,客户端使用的端口号不是严格的在49152~65535,而是大于等于1024都是可以的,同理,在被动模式下,服务器端也一样,这里随便提一下,也提醒大家不要局限于这一点上。

三、远程终端协议TELNET

TELNET在以前被广泛使用,但由于其安全性较差,逐渐被SSH协议所取代(这里不介绍)。现在TELNET的应用越来越少 ,因此简单介绍一下吧。

(1)用户用 TELNET 就可在其所在地通过 TCP 连接登录到远地的另一台主机上。

(2)TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。

(3)TELNET 使用客户-服务器方式,在本地系统运行 TELNET 客户进程,而在远地主机则运行 TELNET 服务器进程

(4)TELNET 可以适应许多计算机和操作系统的差异(TELNET 定义了数据和命令的标准格式,即网络虚拟终端 NVT 格式)。

客户软件把用户的击键和命令转换NVT 格式,并送交服务器。服务器软件把收到的数据和命令NVT 格式转换成远地系统所需的格式。向用户返回数据时,服务器把远地系统的格式转换NVT 格式,本地客户再NVT 格式转换到本地系统所需的格式。

四、万维网WWW (World Wide Web)

万维网 WWW (World Wide Web) 并非某种特殊的计算机网络,而是一个大规模的、联机式的信息储藏所。

万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。(比如你现在在看我的博客,我链接我的主页:我的主页,然后你就能关注我了

 注意:万维网是一个分布式的超媒体 (hypermedia) 系统,是超文本 (hypertext) 系统的扩充。而超文本是指包含指向其他文档的链接的文本

超媒体与超文本的区别:文档内容不同。

●  超文本文档仅包含 文本信息
●  超媒体文档还包含其他形式的信息 ,如图形、图像、声音、 动画 以及 视频等


万维网的工作方式:

万维网以客户-服务器方式工作。在万维网文档所驻留的主机上运行服务器程序这个主机也称为万维网服务器;在客户主机上运行客户程序,万维网客户程序又叫做浏览器。客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。在客户程序主窗口上显示出的万维网文档称为页面 (page)

这可以和我在运输层讲端口号时举的栗子,一起理解。

4.1 万维网需要解决的问题


【1】怎样标志分布在整个互联网上的万维网文档?

●  使用 统一资源定位符 URL (Uniform Resource Locator) 。
●  使每一个文档在整个互联网的范围内具有 唯一 的标识符 URL。

URL 用来表示互联网上的资源的位置和访问这些资源的方法URL 实际上就是互联网资源的地址,互联网上的所有资源都有一个唯一确定的 URL。也可理解为,URL 相当于文件名在网络范围的扩展,是与互联网相连的主机上的任何可访问对象的一个指针。 

URL 的一般形式是:

 下面用非常详细的图解阐述:

 ​​​​​​

 ​​

 ​​

 ​​


【2】用什么协议来实现万维网上的各种链接?

●  使用 超文本传送协议 HTTP ( HyperText Transfer Protocol)。
●  HTTP 是一个应用层协议,使用 TCP 连接进行可靠的传送。
●  HTTP 定义 了浏览器与万维网服务器通信的 格式 规则

既然是TCP,那肯定要三报文握手建立TCP连接后才能传输数据。在上一章,我们学习到TCP 建立连接的三报文握手的第三个报文段可以携带数据,因此第三个报文段就是客户对万维网文档的请求报文。 请求一个万维网文档所需的时间是该文档的传输时间(与文档大小成正比)加上两倍往返时间 RTT (一个 RTT 用于建立 TCP 连接,另一个 RTT 用于请求和接收万维网文档)。

非持续连接:

HTTP/1.0 每请求一个文档就要有两倍 RTT 开销。若一个页面上有很多链接的对象(如图片等)需要依次进行链接,那么每一次链接下载都导致两倍 RTT 开销。

万维网服务器往往要同时服务于大量客户的请求,这种非持续连接会使万维网服务器的负担很重。

持续连接:

HTTP/1.1 使用持续连接:万维网服务器在发送响应后仍然在一段时间内保持这条 TCP 连接,使同一个客户和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文,只要这些文档都在同一个服务器上就行。

持续连接有两种工作方式:

(1)非流水线方式

非流水线方式:客户在收到前一个响应才能发出下一个请求。在 TCP 连接建立后,客户每访问一次对象都要用去一个往返时间 RTT。这比非持续连接要用去两倍 RTT 开销,节省了建立 TCP 连接所需的一个 RTT 时间。

但非流水线方式还是有缺点的,因为服务器在发送完一个对象后,TCP 连接就处于空闲状态,浪费了服务器资源。

(2)流水线方式

流水线方式:客户在收到 HTTP 响应报文之前能够接着发送新的请求报文。连续的多个请求报文到达服务器后,服务器就可连续发回响应报文。(这和滑动窗口机制很像)

流水线工作方式使 TCP 连接中的空闲时间减少,提高了下载文档的效率

并发TCP连接: 

无论 HTTP 使用持续连接还是非持续连接,浏览器都可以打开多个并行TCP 连接以提高访问速度。

补充:(了解即可)

HTTP/2 HTTP/1.1 的升级版本,其新增特性如下:

●  服务器可以 使用 同一个 TCP 连接 并行地 响应。
●  允许客户复用 TCP 连接进行多个 请求,节省连续多次建立和释放 TCP 连接所花费的时间。
●  把所有的报文都划分为许多较小的二进制编码的帧,并采用新 的压缩算法,不发送重复的首部字段,大大减小了首部的开销,提高了传输效率。

代理服务器:

代理服务器(proxy server)是一种网络硬件设备,又称为万维网高速缓存(Web cache),它一般工作在中间系统上。以代理服务器方式构成的内容分发网络 CDN 在互联网应用中起到了很大的作用。

代理服务器把最近的一些请求响应暂存在本地磁盘中。当与暂时存放的请求相同的新请求到达时,代理服务器就返回暂存的响应,而不需要按 URL 去互联网访问该资源。

下面从有和无的角度探讨它的好处:

【1】没有使用代理服务器的情况

 当链路过载时,时延很大!!!

【2】使用代理服务器的情况

 工作模式:

1、浏览器访问互联网的服务器时,先与校园网的代理服务器建立 TCP 连接,并向代理服务器发出 HTTP 请求报文。

2、若代理服务器已经存放了所请求的对象,则将此对象放入 HTTP 响应报文中返回给浏览器。

3、若未存放,代理服务器就代表浏览器与互联网上的源点服务器建立 TCP 连接,并发送 HTTP 请求报文。

4、源点服务器将所请求的对象放在 HTTP 响应报文中返回给校园网的代理服务器。

5、代理服务器收到对象后,先保存到本地存储器中然后将该对象放在 HTTP 响应报文中,通过已建立的 TCP 连接,返回给请求该对象的浏览器。


HTTP的报文结构:

HTTP 有两类报文:请求报文响应报文

这两种报文都由三部分组成:

开始行用于区分是请求报文还是响应报文。这两种报文的区别就是开始行不同。

首部行说明浏览器、服务器或报文主体的一些信息。可以有多行,也可以不使用。首部行每一个字段的值都是一些 ASCII 码串因此每个字段的长度是不确定的。

实体主体请求报文中一般不用;响应报文中一般是万维网文档,但也可不用。

方法(method):对所请求的对象进行的操作,实际上就是一些命令。

请求报文的类型是由它所采用的方法决定的。

URL:所请求资源URL 

版本:HTTP 的版本。

这里给出一个栗子,考试一般都是这种形式:

考试例题:

 答案:logo.png在服务器中的绝对路径是C:\web\static\images\logo.png。

版本:HTTP 的版本。

状态码:服务器操作完成的状态。

短语:解释状态码的简单短语。


万维网站点使用 Cookie 来识别、跟踪用户:

 

解释:

1、用户 A 浏览某个使用 Cookie 的网站时,该网站的服务器就为 A 生成一个唯一的识别码,并作为索引写入数据库。服务器在给 A HTTP 响应报文中添加一个叫做Set-cookie 的首部行,其值就是赋予该用户的识别码。

2、浏览器收到后就把服务器的主机名和识别码作为一项写入 Cookie 文件。

3、当用户 A 继续浏览此网站时,每发送一个 HTTP 请求报文,浏览器都会从其 Cookie 文件中取出这个网站对应的识别码,并放到 HTTP 请求报文的 Cookie 首部行中。利用此识别码,这个网站就能够跟踪该用户在该网站的活动。

4、服务器并不是想通过 Cookie 获得用户 A 真实姓名等信息,只是想知道 A 都做了些什么以提供更加便利、友好的服务。(比如你在网上购物,或者点外卖,需要加入购物车中,一起购买…………)


【3】怎样使不同作者创作的不同风格的万维网文档都能在互联网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接?

●  使用 超文本标记语言 HTML ( HyperText Markup Language)

超文本标记语言 HTMLHyperText Markup Language)是一种制作万维网页面的标准语言。目前,HTML 最新的版本是 5.0

HTML 定义了许多用于排版的命令,这些命令叫做标签(tag)。仅当 HTML 文档以 .html .htm 为后缀时,浏览器才对文档中的标签进行解释。

例如:

万维网文档的类别:

●  静态文档 文档 创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变。
●  动态文档 浏览器访问万维网服务器 时由 应用程序动态 创建。
●  活动文档 浏览器端运行活动文档程序,使浏览器的屏幕显示连续更新。

如果你选择前端的话,HTTP协议你还会更加深入去学习它 ,我们现在学的只是皮毛!!!

【4】怎样使用户能够很方便地找到所需的信息?

●  使用各种搜索 工具(即 搜索引擎

五、电子邮件 (SMTP, POP3, IMAP)

电子邮件系统由三个主要构件组成:用户代理邮件服务器,以及邮件发送协议邮件读取协议 

● 用户代理,是用户与电子邮件系统的接口,又被称为电子邮件客户端软件。

● 邮件服务器,主要用来发送和接收邮件,同时还要向发件人报告邮件传送的结果。

● 用户代理向邮件服务器发送邮件邮件服务器之间发送邮件,使用简单邮件传送协议 SMTP。

● 用户代理从邮件服务器读取邮件时,使用邮局协议3 POP3。

SMTP 和 POP3 使用 TCP 连接来可靠地传送邮件,并且都使用客户-服务器的工作方式。

详细步骤:

发件人调用 PC 用户代理撰写和编辑要发送的邮件。

发件人的用户代理把邮件用 SMTP 协议发给发送方邮件服务器。(推)

发送方邮件服务器把邮件临时存放在邮件缓存队列中,等待发送到接收方的邮件服务器

发送方邮件服务器SMTP 客户接收方邮件服务器SMTP 服务器建立 TCP 连接,把邮件缓存队列中的邮件依次发送出去。  

运行在接收方邮件服务器中的 SMTP 服务器进程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人读取。

收件人在打算收信时,就运行 PC 中的用户代理,使用 POP3 协议读取发送给自己的邮件。(拉)

这里没有介绍网际报文存取协议IMAP,是因为它和pop3一样,属于邮件读取协议。

区别(了解就行):

POP3 ,的特点是只要用户从服务器上读取了邮件,就把该邮件删除。但最新版本的 POP3 可以不删除邮件。

IMAP 协议,中客户端和服务器上的邮件保持同步,如果不手动删除邮件,那么服务器上的邮件也不会被删除。IMAP 这种做法可以让用户随时随地去访问服务器上的邮件。

5.1 基于万维网的电子邮件 

前面介绍的电子邮件的实现,需要在自己使用的计算机中安装用户代理软件UA(不同用户的电脑可能不同),如果你出门在外没带自己电脑,就要用别人的电脑,这是很不方便的。因此基于万维网的电子邮件就出世了,你可以非常方便的在一种浏览器上收发电子邮件。比如QQ邮箱、网易邮箱(163)……

● 电子邮件从 A 的浏览器发送到 A 的邮件服务器使用 HTTP 协议的 POST 方法。

● 两个邮件服务器之间传送邮件仍然使用 SMTP 协议。

● 邮件从 B 的邮件服务器传送到 B 的浏览器使用 HTTP 协议的 GET 方法。

5.2 通用互联网邮件扩充 MIME 

SMTP不能传送可执行文件或其他二进制文件,只能传送7位的ASCII文本文件。所以需要使用MIME对邮件内容的格式进行转换。

 六、动态主机配置协议DHCP

 连接到互联网的计算机的协议软件需要配置以下项目:

●   IP 地址
●   子网掩码
●     默认路由器的 IP 地址(即默认网关)
●    域名服务器的 IP 地址

不可能这东西要人工手动配置吧,因此,动态主机配置协议 DHCP (即插即用的连网方式) 允许主机自动获取以上配置信息而不需要手工干预。 

大概步骤:(DHCP 使用客户-服务器方式)

(1)需要 IP 地址的主机在启动广播发送发现报文(DHCPDI-SCOVER) (目的 IP 地址255.255.255.255),这时该主机就成为 DHCP 客户。发送广播报文是因为现在还不知道 DHCP 服务器在什么地方,因此要发现(DISCOVER) DHCP 服务器的 IP 地址。这台主机目前还没有自己IP 地址,因此它IP 数据报IP 地址设为全 0

(2)本地网络上的所有主机都能够收到这个广播报文,但只有 DHCP 服务器才回答此广播报文。DHCP 服务器先在其数据库中查找该计算机的配置信息,若找到,则返回找到的信息;若找不到,则从服务器IP 地址池(address pool) 中取一个地址分配给该计算机。DHCP 服务器使用提供报文(DHCPOFFER) 将配置信息返回给请求方。

DHCP 中继代理

广播发送的发现报文无法跨网络传输,而在每一网络中设置一个 DHCP 服务器又会使 DHCP 服务器的数量太多,因此需要在每一个网络中至少部署一个 DHCP 中继代理(relay agent) (路由器大多具有中继代理功能),它配置DHCP 服务器的 IP 地址信息

然后,DHCP 中继代理收到主机 A 广播形式发送的发现报文后,就以单播方式DHCP 服务器转发此报文,并等待其回答。收到 DHCP 服务器回答的提供报文后,DHCP 中继代理再把此提供报文发回给主机 A。

租用期:

DHCP 服务器分配给 DHCP 客户的 IP 地址是临时的,因此 DHCP 客户只能在一段有限的时间内使用这个分配到的 IP 地址。DHCP 协议称这段时间为租用期(lease period),其值可在 DHCP 服务器中设定。

DHCP 服务器DHCP 客户发送提供报文的选项中给出租用期的数值。若租用期过半DHCP 客户需要发送请求报文(DHCPREQUEST) 更新租用期(即续租)。

那为啥,需要两个67、68的熟知端口呢?

下面从DHCP协议的工作原理阐述:

DHCP 服务器被动打开 UDP 端口 67,等待客户端发来的报文。

2 、 DHCP 客户从 UDP 端口 68 发送 DHCP 发现报文

3 、 凡收到 DHCP 发现报文的 DHCP 服务器都发出 DHCP 提供报文,因此 DHCP 客户可能收到多个 DHCP 提供报文。

4、 DHCP 客户从几个 DHCP 服务器中选择一,并向其发送 DHCP 请求报文

5、被选择的 DHCP 服务器发送确认报文 DHCP 客户收到确认报文后就可以使用这个 IP 地址了。

6、DHCP 客户现在要根据服务器提供的租用期 T 设置两个计时器 T1 T2,它们的超时时间分别是 0.5T 0.875T

7、租用期过半T1 时间到),DHCP 客户发送请求报文,要求更新租用期。

8、DHCP 服务器同意,则发回确认报文 DHCP 客户得到了新的租用期,需要重新设置计时器

9、DHCP 服务器不同意,则发回否认报文。这时 DHCP 客户必须立即停止使用原来的 IP 地址,而必须重新申请 IP 地址(回到步骤 2

但是,DHCP 服务器不响应步骤 7 请求报文,则在租用期过了 87.5% (T2 时间到)DHCP 客户必须重新发送请求报文(重复步骤 7),然后继续后面的步骤。  

最后,DHCP 客户可随时终止服务器所提供的租用期,这时只需向 DHCP 服务器发送释放报文即可。

七、简单网络管理协议SNMP(略)

需要的可以看这篇博客,我们学校不要求掌握。

SNMP(简单网络管理协议)详解_Jeremy_Lee123的博客-CSDN博客

总结:

如果你想把上面重要的协议串联起来,那么这个栗子,绝对通俗易懂!!!

Web页面请求过程(详细版)

1、假设主机最开始没有 IP 地址以及其它信息,那么就需要先使用 DHCP 协议来获取。

1、那么主机收到该帧后,不断分解得到 DHCP 报文。之后就配置它的 IP 地址、子网掩码和 DNS 服务器的 IP 地址,并在其 IP 转发表中安装默认网关。(DHCP 配置主机信息


2、但是主机还需要知道网站的域名对应的 IP 地址,因此生成一个 DNS 查询报文,该报文具有 53 号端口,因为 DNS 服务器的端口号是 53。

2、DHCP 过程只知道网关路由器的 IP 地址,为了获取网关路由器的 MAC 地址,需要使用 ARP 协议,最后得到网关的MAC地址。然后网关路由器就能接收到包含 DNS 查询报文的以太网帧后,抽取出 IP 数据报,并根据转发表决定该 IP 数据报应该转发的路由器。因为路由器具有内部网关协议(RIP、OSPF)和外部网关协议(BGP)这两种路由选择协议,因此路由表中已经配置了网关路由器到达 DNS 服务器的路由表项。 ARP 解析 MAC 地址


3、到达 DNS 服务器之后,DNS 服务器抽取出 DNS 查询报文,并在 DNS 数据库中查找待解析的域名。

3、找到 DNS 记录之后,发送 DNS 回答报文,将该回答报文放入 UDP 报文段中,然后放入 IP 数据报中,通过路由器反向转发回网关路由器,并经过以太网交换机到达主机。(DNS 解析域名


4、有了 HTTP 服务器的 IP 地址之后,就能像HTTP服务器请求页面了(但必须先与 HTTP 服务器进行三次握手来建立TCP连接)。(HTTP 请求页面

以上就是大概的过程,实际上做题时,没有这么复杂,一般只需要【DNS 解析域名HTTP 请求页面】这两种进行考察,另外两种分开考察大家。

比如这题:

 答案:

(1)题目说的是访问Internet的RTT,忽略访问本地域名服务器的时间。因访问网站使用的是HTTP协议基于TCP,所以要先建立连接,因此主机访问网站获得数据最少需要两个RTT时间20ms(即本地域名服务器有相应域名解析的缓存),最多需要五个RTT时间50ms(即加上本地域名服务器迭代访问根域名服务器、顶级域名服务器和权限域名服务器的三个RTT)。

(2)在持续连接的非流水线工作方式下,每一次请求及回复需要一个RTT,本题共产生6次请求(第一次web请求,请求index.html;然后5次请求是对于链接的5个图片的请求),所以需要6个RTT时间60ms

(3)根据DHCP协议的要求,此IP数据报中源IP地址为:0.0.0.0,目的IP地址为:255.255.255.255;由于DHCP在运输层使用UDP协议,因此 IP数据报的数据部分是UDP用户数据报,根据IP数据报协议字段的定义,此IP数据报的协议字段的值是17


结束语

好了,到目前为止你就复习完了应用层,如果有什么建议,欢迎在评论区下方讨论,并且最近也在资源里上传了选择题和解答题(期末版),有时间可以去看看哦。

期待您的点赞、收藏、关注,你的支持是我最大的动力 ₍ᐢ..ᐢ₎ 

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

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

相关文章

在 Swift 中使用 async let 并发运行后台任务

文章目录 前言长期运行的任务阻塞了UI使用 async/await 在后台执行任务在后台执行多个任务使用 "async let " 下载多个文件结论 前言 Async/await 语法是在 Swift 5.5 引入的,在 WWDC 2021中的 Meet async/await in Swift 对齐进行了介绍。它是编写异步代…

实时日志管理分析解决方案

什么是日志管理 组织网络可能很复杂,由大量互连的系统、应用程序和设备组成。这些组件中的每一个都会生成大量日志数据,捕获有关系统事件、用户活动和网络流量的详细信息。生成的日志数据量庞大,因此难以有效管理和分析。 日志管理是收集、…

使用 DFS 解决排列数字问题并使用 pythontutor 可视化

使用 DFS 解决排列数字问题并使用 pythontutor 可视化 问题描述 给定一个整数 n n n,将数字 1 ∼ n 1∼n 1∼n 排成一排,将会有很多种排列方法。 现在,请你按照字典序将所有的排列方法输出。 输入格式 共一行,包含一个整数…

盘点内核中常见的CPU性能卡点

我们的应用程序都是运行在各种语言的运行时、操作系统内核、以及 CPU 等硬件之上的。大家平时一般都是使用Go、Java等语言进行开发。但这些语言的下面是由运行时、内核、硬件等多层支撑起来的。 我们的程序在运行的时候,很多时候性能卡点可能并不一定是自己的应用代…

Win系统下同时访问公司内网及公网设置

一、修改系统配置 修改系统配置,使公网默认不走VPN路由; 连接VPN,并查看路由表; route print可以看到,多了些路由信息,此时测试公网能否正常访问,如能正常访问,则继续往下。 二、…

入职字节两个月,实在卷不动,还是离职了

对自己收入不满意,就看下自己每天做了什么,把每天记录下来,看下自己的时间都用在哪里了。 对自己的时间分配搞清楚了,就可以着手去改进,如果一直糊涂的过,时间到了报复就来了。 时间管理很简单&#xff0c…

零代码、一键生成、低成本,深兰科技硅基大脑SaaS平台国内首发

在6月20日举行的2023中国(苏州)独角兽企业大会上,深兰科技创始人、董事长陈海波在主旨演讲中宣布,深兰科技推出“深兰科技硅基大脑SaaS平台”,旨在为个人和企业提供更便捷、更全面的大语言模型智能化应用。 AI大模型驱动“智慧涌现”&#xf…

Redis实战篇(一)

Redis实战篇基于哔哩哔哩中黑马程序员的黑马点评项目 一.缓存 1.1 缓存概述 1.什么是缓存 缓存,就是数据交换的缓冲区,俗称的缓存就是缓冲区内的数据,一般从数据库中获取,存储于本地代码 2.为什么要使用缓存 缓存数据存储于…

性能测试-压测问题分析,生产环境性能压测优化(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 项目背景&#xf…

从0到1精通自动化测试,pytest自动化测试框架,allure2生成html报告(史上最详细)(九)

一、前言 allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面。 环境准备: python3.6windows环境pycharmpytest-allure-adaptorallure2.7.0java1.8 二、pytest-allu…

在 Blender 和 3DCoat 中创建风格化的幻想屋

今天云渲染小编给大家带来的是CG艺术家Brian Nguyen 最近的项目“一个风格化的幻想屋”幕后制作,讨论了 Blender 中的建模过程和 3DCoat 中的纹理过程,并详细介绍了如何设置灯光和K动画。 介绍 我是 Brian Nguyen,程式化的 3D 艺术家&#…

阿里云EMAS超级App助力Agmo电动车超级应用程序发布

近日,阿里云宣布与马来西亚本土数字方案专家Agmo控股(Agmo Holdings Berhad,简称Agmo)展开合作,签署谅解备忘录,联手推出马来西亚首个Agmo电动车超级应用程序。此次合作也标志着阿里云在中国以外的市场首次…

电商营销小程序优势有哪些?电商营销小程序功能推荐

随着流量成本越来越高、流量逐渐被平台所垄断,因此转化公域流量至私域成为越来越多企业的选择,对于电商营销而言,电商营销小程序也是一种较为轻便的私域沉淀工具。与传统的电商模式相比,电商营销小程序具有以下几大优势&#xff1…

【嵌入式】MIMXRT685SFVKB 32位微控制器、5CGXFC4C7F27C8N FPGA现场可编程门阵列

MIMXRT685SFVKB i.MX RT600交叉MCU是双核微控制器,设有32位Cortex-M33和Xtensa HiFi4音频DSP CPU。i.MX RT600 MCU是NXP EdgeVerse™边缘计算平台的一部分。Cortex-M33 CPU配有两个硬件协处理器,为一系列复杂算法提供增强性能。 核心处理器:A…

【博客671】prometheus如何选择数据点以及处理counter跳变

prometheus如何选择数据点以及处理counter跳变 1、prometheus如何选择数据点 时间是怎么进来的?范围和即时查询! 您可能已经注意到,PromQL 查询中对时间的唯一引用是相对引用(例如[5m],回顾 5 分钟)。那…

嵌入式界面神器 littleVGL

​1、littleVGL 介绍 littleVGL 是近几年开始流行的一个小型开源嵌入式 GUI 库,具有界面精美,消耗资源小,可移植度高,响应式布局等特点,全库采用纯 c 语言开发,而且 littleVGL 库的更新速度非常快,随着 littleVGL 的认知度越来越大,官方资料也逐渐丰富起来。 相比 emWin&…

kali安装Nessus并更新插件包的详细步骤

1. 下载 https://www.tenable.com/downloads/nessus 2. 安装 dpkg -i Nessus-10.5.2-debian10_amd64.deb3. 开启nessus服务 sudo systemctl start nessusd.service4. 浏览器访问Nessus服务 访问 https://$ip:8834选择Managed Scanner,点击Continue选择Tenable.sc,点击Con…

Linux Perf

文章目录 一、简介二、使用方法1、子命令2、Tips 三、perf-list1、事件类型2、事件修饰符 四、perf-top1、输出结果2、选项3、交互命令4、示例 五、perf-stat1、选项2、示例 六、perf-record1、选项2、示例 七、perf-report1、选项2、示例 八、perf-script1、选项2、示例3、火焰…

SpringBoot(一)使用itelliJ社区版创建SpringBoot项目

工欲善其事,必先利其器。目前市面上有很多优秀的开发工具,例如 IntelliJ IDEA、Visual Studio Code 和 Eclipse 等,那么我们该如何选择呢?最好的选择是使用IntelliJ IDEA的Ultimate版本,但Ultimate版本试用期只有30天&…

【JavaWeb基础】RestController的使用

一、学习笔记 RestControllerControllerResponseBody 其中,ResponseBody将方法返回值直接响应,如果返回值类型是实体对象/集合,将会转换为Json格式响应。 二、代码展示 创建两个类 代码如下: package com.example.controller…