应用层
对应用程序的通信提供服务:文件传输、访管FTP、电子邮件SMTP、虚拟终端HTTP
应用层协议定义了报文类型、语法、语义、发送/响应报文的规则
C/S模型
P2P
P2P和C/S对比
- 减轻了服务器的计算压力,不需要完全依赖某个服务器,利用大量客户机减轻对服务器的压力
- 多个客户机直接共享文档
- 可拓展性好,传统服务器有相应和带宽限制
- 网络健壮性强
- 获取服务的同时也得提供服务,占用内存,影响整机服务
- P2P损失硬盘,占据流量多,使得网络非常拥挤
DNS
域名系统DNS,用于把主机名(www.baidu.com)转换为IP地址,方便机器处理
DNS采用客户/服务器模型,协议运行在UDP,使用53号端口
DNS分为:层次域名空间、域名服务器和解析器
域名
因特网是层次树形结构的命名方法,任何一个链接到因特网的主机或路由器都有唯一层次结构名称,叫域名
域是名字空间中一个可被管理的划分,顶级域—二级域—三级域
域由不同组织管理
国家顶级域名(nTLD)。国家和某些地区的域名,如**“.cn”表示中国,“.us”表示美国,.uk”表示英国**。
通用顶级域名(gTLD)。 常见的有**“.com” (公司)、“.net" (网络服务机构)、“.org”(非营利性组织)和“.gov" (国家或政府部门)**等。
基础结构域名。这种顶级域名只有一个,即arpa,用于反向域名解析,因此又称反向域名。反向域名解析与通常的正向域名解析相反,提供IP地址到域名的对应,反向域名格式如:X.X.X.in-addr.arpa。很多网络服务提供商要求访问的IP地址具有反向域名解析的结果,否则不提供服务。
域名结构
对应 www.cctv.com. 三级域名、二级域名、顶级域名、根
每个域名都由标号序列组.成,而各标号之间用点隔开
标号中的英文不区分大小写。.
标号中除连字符(-) 外不能使用其他的标点符号。
每个标号不超过63个字符,多标号组成的完整域名最长不超过255个字符。
级别最低的域名写在最左边,级别最高的顶级域名写在最右边。
域名服务器
域名系统设计为联机分布的数据库系统,采用C/S模型
域名到IP地址的解析是域名服务器上的程序完成的,每个域名服务器负责一个区,区内所有结点都是互相连通
每个域名服务器还具有连向其他域名服务器的信息,当不能进行域名到IP地址的转换时,还需要知道能够到什么地方找其他域名服务器
DNS使用大量的域名服务器,以层次方式组织,没有一台域名服务器具有所有主机的映射,映射分布在所有DNS上
分布式设计的DNS等同于分布式数据库
根域名服务器
根域名服务器是最高层次的域名服务器,所有根域名服务器都知道所有的顶级域名服务器的IP地址
每个根域名服务器是冗余服务器集群
当从本地域名服务器无法进行DNS解析,就要求助根域名服务器
指示本地域名服务器要去找哪个顶级域名服务器查询
顶级域名服务器
管理在顶级域名服务器注册的所有二级域名
收到DNS查询请求时,指向下一步要查找的域名服务器的IP地址或返回解析结果
授权域名服务器 /权限域名服务器
每台主机要在授权域名服务器处登记,一般一台主机至少有两个授权域名服务器
许多于域名服务器同时充当本地域名服务器和授权域名服务器
负责将其管辖的主机名转换为该主机的IP地址
本地域名服务器
当一台主机发出DNS查询请求,这个查询请求报文发送给对应的本地域名服务器
本地连接中DNS地址就是本机DNS的地址
域名解析过程
域名和IP地址互相映射,前者为正向解析,后者为反向解析
当客户端需要域名解析时,通过本机DNS客户端构造DNS请求报文,以UDP数据报方式发往本地域名服务器
域名解析:递归查询、递归与迭代相结合的查询
递归与迭代结合
主机向本地域名服务器的查询采用的是递归查询
本地主机向本地域名服务器提交查询,本机域名服务器不知道的情况下,以DNS客户的身份,向根域名继续发出查询请求报文,只查询一次
本地域名向根域名服务器的查询采用的是迭代查询
根域名服务器收到本地域名的查询采用了迭代查询
根域名服务器收到本地域名服务器发出的迭代查询请求报文时,给出要查询的IP地址或指向下一步去哪个顶级域名服务器,以此类推,直到权限域名服务器给出结果,返回主机
①客户机向其本地域名服务器发出DNS请求报文。
②本地域名服务器收到请求后,查询本地缓存,若没有该记录,则以DNS客户的身份向根域名服务器发出解析请求。
③根域名服务器收到请求后,判断该域名属于.com域,将对应的顶级域名服务器dns.com的IP地址返回给本地域名服务器。
④本地域名服务器向顶级域名服务器dns.com发出解析请求报文。
⑤顶级域名服务器dns.com收到请求后,判断该域名属于abc.com域,因此将对应的授权域名服务器dns.abc.com的IP地址返回给本地域名服务器。
⑥本地域名服务器向授权域名服务器dns.abc.com发起解析请求报文。
⑦授权域名服务器dns.abc.com收到请求后,将查询结果返回给本地域名服务器。
⑧本地域名服务器将查询结果保存到本地缓存,同时返回给客户机。
为了提高DNS的查询效率,并减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。
当一个DNS服务器接收到DNS查询结果时,它能将该DNS信息缓存在高速
缓存中。这样,当另一个相同的域名查询到达该DNS服务器时,该服务器就能够直接提供所要求的IP地址,而不需要再去向其他DNS服务器询问。
因为主机名和IP地址之间的映射不是永久的,所以DNS服务器将在一段时间后丢弃高速缓存中的信息
FTP
文件传输协议
提供交互式的访问,允许客户指明文件的类型与格式,允许文件具有存取权限
屏蔽计算机系统细节
提供匿名FTP提供公用文件共享的能力
FTP同时为多个客户进程提供服务
服务器进程分为一个主进程和若干属进程,
前者负责接收新的请求
后者负责处理单个请求
步骤为:
打开控制端口
等待客户进程连接请求
启动请求,主进程和从属进程并发执行,从属进程在处理完请求后就终止
回到等待状态
FTP服务器在会话期间保留用户的控制信息,服务器将指定的用户账户与控制连接联系起来,追踪用户在远程目录树上的当前位置
传输模式分为文本模式和二进制模式,分别以文本序列和二进制序列传输数据
控制连接:监听21号端口,等待连接,传输控制信息(连接、传送请求、中止传输命令等),在会话期间保持打开状态
数据连接:服务端的控制进程在接收到FTP客户发来的文件传输请求,创建数据传送进程和数据连接
数据连接用来连接客户端和服务端的数据传送进程,数据传送进程实际完成文件的传送,在传送完毕后关闭数据传送连接并结束运行
使用FTP时,要修改为服务器上的文件,需将文件传到本地主机,再将修改后的文件部分传送到原服务器
网络文件系统NFS允许进程打开一个远程文件,并在特定位置开始读写数据,只复制大文件中的片段
HTTP
概念
- 统一资源定位符(URL)。 负责标识万维网上的各种文档,并使每个文档在整个万维网的范围内具有唯一的标识符URL。
- 超文本传输协议(HTTP)。 一个应用层协议,它使用TCP连接进行可靠的传输,HTTP是万维网客户程序和服务器程序之间交互所必须严格遵守的协议。
- 超文本标记语言(HTML)。 一种文档结构的标记语言,它使用一些约定的标记对页面上的各种信息(包括文字、声音、图像、视频等)、格式进行描述。
URL的一般形式是: <协议>://<主机>:<端口>/<路径>。
常见的<协议>有http、ftp 等;
< 主机>是存放资源的主机在因特网中的域名,也可以是IP地址;
<端口>和<路径>有时可以省略。
在URL中不区分大小写。
HTTP定义了浏览器如何向服务器请求文档,以及服务器如何把文档传送给浏览器
是面向事务的应用层协议,规定了浏览器和服务器间的请求和响应的格式与规则
请求过程
当浏览器访问服务器时,先进行域名解析
得到IP地址后,通过TCP发送连接建立请求
每个站点都有一个服务器进程,不断监听TCP的端口80,听到连接请求后便于浏览器建立连接
连接建立后,浏览器向服务器发送请求获取某个Web页面的HTTP请求
服务器收到HTTP请求后,将构建请求Web页的必须信息,并通过HTTP响应返回给浏览器
浏览器对信息进行解释,显示Web页
释放TCP连接
特点
HTTP是无状态的,通过Cookie识别用户
Cookie存储在用户主机中的文本文件,,记录一段时间内某用户的访问记录
同一个客户第n次访问都与第一次访问结果相同,减轻了服务器的压力
通常使用Cookie和数据库的方式来跟踪用户的活动,内含识别码,用于Web服务识别用户
交换HTTP报文之前不需要先建立HTT连接
HTTP可以使用持久/非持久连接
对于非持久连接,每个网页元素的传输都需要独立建立一个TCP链接,请求一个万维网文档需要的世界是该文档的传输时间和两倍的RTT时间(一个用于TCP连接,一个用于请求和接收文档)
对于持久连接,是指万维网服务器在发送响应后仍然保持这条连接,使同一个客户和服务器可以继续在这条连接上传送后续的HTTP请求与响应报文
持久连接又分为非流水线和流水线两种方式。
对于非流水线方式,客户在收到前一个响应后才能发出下一个请求;
HTTP/1.1 的默认方式是使用流水线的持久连接。
这种情况下,客户每遇到一个对象引用就立即发出一个请求,因而客户可以逐个地连续发出对各个引用对象的请求。
如果所有的请求和响应都是连续发送的,那么所有引用的对象共计经历1个RTT延迟,而不是像非流水线方式那样,每个引用都必须有1个RTT延迟。文章来源:https://www.toymoban.com/news/detail-470046.html
报文结构
分区:请求行/状态行、首部行、主体文章来源地址https://www.toymoban.com/news/detail-470046.html
到了这里,关于计算机网络-应用层的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!