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服务器发送释放报文即可