应用层


title: 应用层
date: 2023-12-20 21:03:48
tags: 知识总结
categories: 计算机网络

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

一、域名系统DNS

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

互联网采用层次树状结构的命名方式,任何一个连接在互联网上的主机,都有一个唯一的层次结构的名字,即域名。域名中的每一个层次叫做域,最高层次可以划分子域,每一个子域还可以继续划分子域,这样就形成了顶级域、二级域、三级域等
级别最低的域名写在最左边,级别最高的写在最右边,完整域名不超过255个字符,单个标号不超过63个字符标号由英文字母和数字组成,字符只能使用-

全球顶级域名

按功能:国际通用顶级域名gTLD,国家顶级域名nTLD

文件传输、访问和管理 FTP
电子邮件 SMTP POP3
虚拟终端 HTTP
查询服务和远程作业登录 DNS

互联网的域名空间结构
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

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

(1) 根域名服务器:不管哪一个本地域名服务器,只要自己无法解析,首先求助于根域名服务器
(2) 顶级域名服务器:当收到DNS查询请求时,一般情况下会给出下一步应当找的权限域名服务器的IP地址
(3) 权限域名服务器:负责最终的域名到IP地址的解析
(4) 本地域名服务器:本地域名服务器也叫默认域名服务器,当一个主机发送DNS查询请求时,该查询请求报文就首先发给本地域名服务器,并且本地域名服务器会缓存其最近查询过的域名的解析,当所要查询的主机位于本地域名服务器的缓存中时,本地域名服务器就能立即将所查询的主机域名转化为它的IP地址,而不需要再去查询其他的域名服务器

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

区域传送:主域名服务器向辅助域名服务器传送变化的那部分数据,一般很大。

DNS的通信方式有UDP和TCP两种,端口都为53,一般情况下是UDP进行DNS域名查询,一般来说,UDP支持的最大数据受限于以太网帧的MTU1500字节,计算下来应该是1500 - 20 - 8 = 1472,但是怎么就变成了512了。是因为在非局域网环境,如:在internet下的时候,MTU是各个路由器进行一个配置的。所以通常路由器默认的MTU为576字节,所以为了适应网络环境,DNS协议在返回的数据大于512的时候,就转化为TCP协议

二、文件传送协议FTP

使用TCP可靠的运输服务,最广泛的文件传送协议,使用客户-服务器方式,并且一个FTP服务器进程可同时为多个客户进程提供服务

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

主进程打开端口,让外部发送的数据可以进来,并且将这些数据逐个分配给各从属进程。从属进程则是单独为这些数据服务
主进程工作步骤:
1.打开熟悉窗口(端口号21),等待客户进程发出连接请求
2.启动从属进程处理客户进程发送来的请求,处理完毕后即终止从属进程。
3.回到等待状态,继续接受其他客户进程发来的请求,主进程和从属进程的处理是并发进行的

根据数据连接是否是服务端主动建立,FTP有主动和被动两种
主动:服务器主动建立数据连接,服务器端口号位20,客户端的端口号随机,但必须大于1024,一位0-1023是熟知端口号
被动:客户端主动建立数据连接,其中客户端的端口号由客户端自己决定,服务器端的端口号随机

三、万维网WWW

一个大规模的、联机式的信息储藏所

能够非常方便的从互联网上的一个站点访问另外一个站点,从而主动的按需获取丰富的信息

万维网是一个分布式的超媒体系统,是超文本系统的扩充,而文本指的是包含指向其他文档的链接的文本

万维网的工作方式:

客户-服务器方式工作,在万维网文档所驻留的主机上运行服务器程序,这个主机,这个主机也成为万维网服务器;在客户机上运行客户程序,万维网客户程序

万维网需要解决的问题
怎样标志分布在整个互联网的万维网文档上的万维网文档

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

URL表示互联网上的资源的位置和访问这些资源的方法。URL实际上就是就是互联网资源的地址

URL的一般形式
<协议>://<主机>:<端口>/<路径>

协议:ftp http https
主机:万维网文档所存放主机的域名,也可以使用IP地址,通常以WWW开头
端口:协议使用的端口号,使用默认的可以省略
路径:万维网文档所存放的目录

使用什么协议来实现万维网上的各种链接

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

TCP建立连接的三报文握手的第三个报文段可以携带数据,因此第三个报文段就是客户对万维网文档的请求报文。请求一个万维网文档所需的时间是该文档的传输时间(与文档大小成正比)加上两倍往返时间RTT(一个RTT用于建立TCP连接,另一个RTT用于请求和接受万维网文档)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

非持续连接:

HTTP/1.0 每请求一个文档都要有两倍RTT的开销,若一个页面与很多连接的对象需要依次进行链接,那么每一次链接下载都导致两倍的RTT的开销
在万维网服务器往往需要同时服务于大量客户的请求,这种非持续连接会使万维网服务器的负担很重

持续连接:

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

持续连接有两种工作方式
(1)非流水线方式

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

(2)流水线方式

在收到HTTP响应报文之前能够接着发送新的请求报文,连续的多个请求报文到达服务器后,服务器就可持续发回响应报文
流水线工作方式使TCP连接中的空闲时间减少,提高了文档的下载效率

并发TCP连接

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

HTTP/2.0

允许客户复用TCP连接进行多个请求,这样就节省了大量的TCP链接多次建立和释放连接所花费的时间

代理服务器

网络硬件设备,万维网高速缓存,一般工作在中间系统上,以代理服务器方式构成的内容分发网络CDN 在互联网应用中起到了很大的作用

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

没有代理服务器的情况下,当链路过载时,时延很大

使用代理服务器的情况
工作模式:
1.浏览器访问互联网的服务器时,先与校园网的代理服务器建立TCP连接,并向代理服务器发出HTTP请求报文。
2.若代理服务器已经存放了所请求的对象,则将此对象放入HTTP响应报文中返回给浏览器
3.若为存放,代理服务器就代表浏览器与互联网上的原点服务器建立TCP连接,并发送HTTP请求报文
4.源点服务器将所请求的对象放在HTTP 响应报文中返回给校园网的代理服务器
5.代理服务器收到对象后,先保存到本地缓存器,然后将该对象放在HTTP响应报文中,通过已经建立的TCP链接,返回个请求该对象但是浏览器

HTTP报文结构

请求报文和响应报文

组成

开始行 区分请求还是响应报文
首部行 说明浏览器、服务器或报文主题的一些信息
实体主体 请求报文一般不用;响应报文一般是万维网文档,但也可不用

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法:对所请求的对象进行的操作,实际上是一些命令
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

用户通过浏览器访问某一个网站,该网站的服务器会为其生成一个唯一的识别码,并且作为索引写入数据库当中,服务器会在响应报文的Set-cookie的首部行,写出赋予该用户的识别码。浏览器收到后会把服务器的主机名和识别码作为一项写入Cookie文件中,用户继续访问该网站的时候,每发送一个HTTP请求报文的时候,浏览器会从Cookie文件中取出该网站对于的识别码,放到HTTP请求报文的Cookie首部行中,利用次识别码,这个网站就能够跟踪该用户在该网站的活动(某音、宝等类似)。

使用超文本标记语言HTML可以使不同的作者创作不同的风格的万维网文档都能在互联网上的各种主机上显示出来,同时使用户清楚的知道在什么地方存在着连接

四、电子邮件

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

用户代理:用户与电子邮件系统的接口,电子邮件客户端软件
邮件服务器:用来发送和接受邮件,同时还要向发送人报告邮件传送的结果
用户代理向邮件服务器发送邮件或邮件服务器之间发送邮件,使用简单邮件传送协议SMTP
用户代理从邮件服务器读取邮件时,使用邮局协议第三版 POP3

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

基于万维网的电子邮件
电子邮件从浏览器发送到邮件服务器使用HTTP协议的POST方法
两个邮件服务器之间的传仍然使用SMTP协议
邮件从邮件服务器传送到浏览器使用HTTP协议的GET方法
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

五、动态主机配置协议DHCP

连接到互联网的计算机的协议软件需要配置以下项目:
IP地址 子网掩码 默认路由器IP地址(默认网关) 域名服务器的IP地址

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

使用客户-服务器方式

(1)需要IP地址的主机在启动时广播发送报文,将目的IP地址设为255:255:255:255,这时该主机就成为DHCP客户,发送广播报文是因为不知道DHCP服务器在什么地方,因此要发现DHCP服务器的IP地址,这台主机目前还没有自己的IP地址,因此它将IP数据报的源IP地址设为0
(2)本地网络上的所有主机都能够收到这广播报文,但只有DHCP服务器才回答此广播报文。DHCP服务器先在其数据库中查找该计算机的配置信息,若找到,则返回找到的信息,若找不到,则从服务器的IP地址池中取一个地址分配给计算机。DHCP服务器使用提供报文将配置信息返回给请求方

DHCP中继代理

广播发送的发现报文无法跨网络传输,而在每一个网络中设置一个DHCP服务器又会使DHCP服务器的数量太多,因此需要在每一个网络中至少部署一个DHCP中继代理,而路由器太多具有中继代理功能,它配置了DHCP服务器的IP地址信息
然后,当DHCP中继代理收到主机以广播形式发送的发现报文后,就以单播的形式向DHCP服务器转发此报文,并等待回答,收到DHCP服务器回答的提供报文后,DHCP中继代理再把此提供报文发回给主机

租用期

DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段时间内使用,其值可在DHCP服务器中设定

DHCP服务器在给DHCP客户发送的提供报文的选项中给出租用期的数值,过半1,DHCP客户需要发送请求报文更新租用期

1.DHCP服务器被动打开UDP端口67,等待客户端发来的报文
2.DHCP客户从UDP端口68发送报文
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客户可随时终止服务器所提供的租用期,这时只需要向DHCP服务器发送释放报文即可

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

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

相关文章

亲测有效:腾讯云免费服务器30天申请流程

腾讯云免费服务器申请入口 https://curl.qcloud.com/FJhqoVDP 免费服务器可选轻量应用服务器和云服务器CVM&#xff0c;轻量配置可选2核2G3M、2核8G7M和4核8G12M&#xff0c;CVM云服务器可选2核2G3M和2核4G3M配置&#xff0c;腾讯云百科txybk.com分享2024年最新腾讯云免费服务器…

【Unity】如何在Unity中使用C#的NuGet 包资源

【背景】 Unity的脚本语言是C#&#xff0c;而C#有很多功能和能力可以通过nuget包提供。有没有办法把这些能力结合到Unity中一起使用呢&#xff1f;如果可以&#xff0c;那将大大扩展Unity中各类功能实现的便捷性。 【方法】 答案是&#xff1a;你可以&#xff01; 获取Nuge…

创建第一个SpringMVC项目,入手必看!

文章目录 创建第一个SpringMVC项目&#xff0c;入手必看&#xff01;1、新建一个maven空项目&#xff0c;在pom.xml中设置打包为war之前&#xff0c;右击项目添加web框架2、如果点击右键没有添加框架或者右击进去后没有web框架&#xff0c;点击左上角file然后进入项目结构在模块…

gem5学习(9):构建gem5——Building gem5

目录 一、Requirements for gem5 二、Getting the code 三、Your first gem5 build 1、gem5 binary types 四、Common errors 1、gcc版本过低 2、使用非默认版本的python 3、未安装M4宏处理器 4、Protobuf版本过低 前面的gem5学习&#xff08;3&#xff09;—&#xf…

基于Java SSM框架实现游戏论坛平台系统项目【项目源码+论文说明】

基于java的SSM框架实现游戏论坛平台系统演示 摘要 本论文主要论述了如何使用java语言开发一个游戏论坛平台的设计&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构、ssm 框架和 java 开发的 Web 框架&#xff0c;基于Werkzeug WSGI工具箱和…

react antd EditableProTable - 可编辑表格

与编辑表格外的内容联动 value 同 dataSource&#xff0c;传入一个数组,是 table 渲染的元数据 T[] undefined onChange dataSource 修改时触发&#xff0c;删除和修改都会触发,如果设置了 value&#xff0c;Table 会成为一个受控组件。 (value:T[])>void undefined recordC…

Hello 2024(A~D,F1)

新年坐大牢 A - Wallet Exchange 题意&#xff1a;共有俩钱包&#xff0c;每回合从其中一个钱包中拿走一块钱&#xff0c;谁拿走最后一块钱谁赢。 思路&#xff1a;奇偶讨论即可。 // Problem: A. Wallet Exchange // Contest: Codeforces - Hello 2024 // URL: https://cod…

BERT 模型是什么

科学突破很少发生在真空中。相反&#xff0c;它们往往是建立在积累的人类知识之上的阶梯的倒数第二步。要了解 ChatGPT 和 Google Bart 等大型语言模型 &#xff08;LLM&#xff09; 的成功&#xff0c;我们需要回到过去并谈论 BERT。 BERT 由 Google 研究人员于 2018 年开发&…

用通俗易懂的方式讲解:如何提升大模型 Agent 的能力?

大型语言模型&#xff08;LLM&#xff09;的出现带火了Agent。利用LLM理解人类意图、生成复杂计划并且能够自主行动的能力。Agent具有无与伦比的能力&#xff0c;能够做出类似于人类复杂性的决策和完成一些复杂的工作。 目前市面上已经出现非常多得Agent框架&#xff1a;XAgen…

MongoDB复制集原理

复制集高可用 复制集选举 MongoDB 的复制集选举使用 Raft 算法&#xff08;https://raft.github.io/&#xff09;来实现&#xff0c;选举成功的必要条件是大多数投票节点存活。在具体的实现中&#xff0c;MongoDB 对 raft 协议添加了一些自己的扩展&#xff0c;这包括&#x…

Mysql大数据量下流式查询优化:Jdbc中的useFetchSize参数及其原理解析

前言 最近我朋友公司有个需求场景&#xff1a;查询千万级数据量并写入txt文件的程序优化需求。 朋友找到我对程序进行优化&#xff0c; 不然饭碗不保......&#x1f4a6; 下面就分享一下解决这个优化问题的过程和思路&#xff0c;并总结一下&#xff0c;在以后不要在踩同样的坑…

[算法]使用aes进行数据加密

一、需求 有一段信息需要进行安全加密。 二、方案 对称加密和非对称加密两种方案&#xff0c;其中由于公钥密钥的管理还未形成规范&#xff0c;因此考虑使用对称加密。其中&#xff0c;对称加密算法使用openssl中&#xff0c;关于aes的部分&#xff0c;输出结果为128位数据。…

oracle-undo

tips&#xff1a;串行化隔离级别&#xff1a;事务开始后&#xff0c;对一张表不会被别人影响&#xff0c;对于审计工作比较有用&#xff0c;避免了幻读。 undo表空间&#xff1a;自动生成段&#xff0c;自动生成区&#xff0c;自动维护的&#xff0c;不像一般的表空间&#xff…

独立式键盘控制的4级变速流水灯

#include<reg51.h> // 包含51单片机寄存器定义的头文件 unsigned char speed; //储存流水灯的流动速度 sbit S1P1^4; //位定义S1为P1.4 sbit S2P1^5; //位定义S2为P1.5 sbit S3P1^6; //位定义S3为P1.6 sbit S4P1^7; //位…

泽攸科技完全自主研制的电子束光刻机取得阶段性成果

国产电子束光刻机实现自主可控&#xff0c;是实现我国集成电路产业链自主可控的重要一环。近日&#xff0c;泽攸科技联合松山湖材料实验室开展的全自主电子束光刻机整机的开发与产业化项目取得重大进展&#xff0c;成功研制出电子束光刻系统&#xff0c;实现了电子束光刻机整机…

rime中州韵小狼毫 生字注音滤镜 汉字注音滤镜

在中文环境下&#xff0c;多音字是比较常见的现象。对于一些不常见的生僻字&#xff0c;或者一些用于地名&#xff0c;人名中的常见字的冷门读音&#xff0c;如果不能正确的阅读&#xff0c;例如把 荥阳 读成了 miāo yng&#xff0c;则会怡笑大方。 今天我们在rime中州韵小狼…

python自动化运维管理拓扑

目录 1、简介 2、实验环境 3、拓扑图 4、需求及其代码 4.1、测试连通性 4.2、远程登陆 4.3、配置loopback 4.4、监控内存使用率 4.5、自动化巡检内存使用率 4.6、自动化配置snmp服务 4.7、提取分析字符串 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业…

网络流量分析与故障分析

1.网络流量实时分析 网络监控 也snmp协议 交换机和服务器打开 snmp就ok了 MRTG或者是prgt 用于对网络流量进行实时监测&#xff0c;可以及时了解服务器和交换机的流量&#xff0c;防止因流量过大而导致服务器瘫痪或网络拥塞。 原理 通过snmp监控 是一个…

外汇网站主要业务逻辑梳理

上图为工行ICBC的外汇保证金交易界面。 当需要买入帐户欧元&#xff08;欧元人民币&#xff09;时&#xff0c;买入100欧元&#xff0c;因为没有杠杆&#xff0c;虽然欧元中间价是782.34&#xff0c;但实际需要支付783.14元人民币的保证金&#xff0c;这个兑换不是真实的外汇兑…

2.8 EXERCISES

如果我们想使用每个线程来计算向量加法的一个输出元素&#xff0c;那么将线程/块索引映射到数据索引的表达式是什么&#xff1f; 答&#xff1a;C 假设我们想用每个线程来计算向量加法的两个&#xff08;相邻&#xff09;元素。将线程/块索引映射到i&#xff08;由线程处理的…