计算机网络—应用层
应用层
主要内容
- 6.1 域名系统DNS
- 6.2 文件传输协议
- 6.3 远程终端协议 TELNET(telnet)
- 6.4 万维网 WWW
- 6.5 电子邮件
- 6.6 动态主机配置协议DHCP
- 6.7 简单网络管理协议SNMP
域名系统DNS
域名系统DNS(Domain Name System)是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址
- 域名到IP地址的解析过程要点如下:
当某一个应用进程需要把主机名解析为IP地址时,该应用进程就调用解析程序,并成为DNS的一个用户,把待解析的域名放在DNS请求报文中,以UDP用户数据报的方式发送给本地域名服务器。本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。应用进程获得目的主机的IP地址后即可进行通信。 - 域名的命名方法:
- 采用层次树桩结构的命名方法,采用这种命名方法,任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
- 从语法上讲,每一个域名都由标号序列组成,而各标号之间用点隔开。例如:
mail.cctv.com 三级域名.二级域名.*域名
- DNS规定,域名中的标号都由英文和数字组成,每一个标号不超过63个字符,也不区分大小写字母
- 标号中除连字符(-)外不能使用其他标点符号。
- 级别最低的域名写在最左边,而级别最高的域名写在最右边。
- 由多个标号组成的完整域名总共不超过255个字符。
- *域名的分类:
- 国家*域名nTLD
- cn表示中国
- us表示美国
- uk表示英国
- ····
- 通用*域名gTLD
- com表示公司企业
- net网络服务机构
- org非营利性组织
- ····
- 基础结构域名
- arpa,用于反向域名解析,因此又称为反向域名
- 国家*域名nTLD
- 域名服务器
一个域名服务器所负责管辖范围叫做区。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。区是DNS服务器实际管辖的范围。区可能等于或小于域,但一定不能大于域。
- 域名服务器分类:
- 根域名服务器
根域名服务器是最高层次的服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的*域名服务器的域名和IP地址。 - *域名服务器
这些域名服务器负责管理在该*域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答。 - 权限域名服务器
负责一个区的域名服务器。 - 本地域名服务器
本地域名服务器并不属于上图所示的域名服务器层次结构。但一台主机发出DNS查询请求时,这个查询请求就发送给本地域名服务器。
- 根域名服务器
- 域名解析的过程
- 递归查询
主机向本地域名服务器的查询一般都是采用递归查询。
所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让该主机进行下一步查询。 - 迭代查询
本地域名服务器向根域名服务器的查询通常是采用迭代查询。
所谓迭代查询就是:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出查询的IP地址,要么告诉本地域名服务器:下一步应当向哪一个域名服务器进行查询。
- 递归查询
- 域名服务器中的高速缓存
为了提高DNS查询效率,并减轻根域名服务器的负荷和减少互联网上的DNS服务器查询报文,在域名服务器中广泛的使用的高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
文件传输协议
-
文件传送协议FTP
FTP提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASSII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的授权)。
- 熟知端口号为21
- FTP是基于TCP的协议,其特点是:
若要存取一个文件,就必须先获得一个本地的文件副本。如果要修改文件,只能对文件的副本进行修改,然后再将修改后的文件副本传回到原节点。 - FTP的主要功能:
减少或消除在不同操作系统下处理文件的不兼容性 - FTP的服务器进程的组成
- 一个主进程,负责接收新的请求
- 若干个从属进程,负责处理单个请求。
- FTP进行传送文件的时候要建立两个并行的TCP连接:
- 控制连接
控制连接在整个会话期间一直保持打开,FTP客户所发出的传送请求,通过控制连接发送给服务器端的控制进程,但控制进程并不传送文件。 - 数据连接
服务器端控制进程在收到FTP客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。
- 控制连接
- FTP的缺点
加入计算机A需要在计算机B上很大的一个文件末尾添加一行信息,必须先将此文件传送到A,添加后又传送回B。效率很低。
-
简单文件传输协议TFTP
它是一个很小且易于实现的文件传送协议。TFTP也是用CS模式,但是TFTP基于UDP,因此TFTP需要有自己的差错改正措施。TFTP只支持文件传输而不支持交互。TFTP没有庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别
- 熟知端口号为69
- TFTP的优点
- TFTP可用于UDP环境
- TFTP代码所占内存较小
- TFTP的主要特点
- 每次传送的数据报文中有512字节的数据,但最后一次可不足512字节
- 数据报按序号编号,从1开始
- 支持ASCII码或二进制传送
- 可对文件进行读或写
- 使用很简单的首部
远程终端协议TELNET
TELNET是一个简单的远程终端协议,它也是互联网的正式标准。用户用TELNET就可在其所在地通过TCP连接注册到远程的另一台主机上。
- 现在随着计算机功能越来越强,用户已经很少使用TELNET了。
- TELNET为了适应许多计算机和操作系统的差异,TELNET定义了数据和命令怎么样通过互联网。这些定义就是所谓的网络虚拟终端NVT。
万维网WWW
万维网WWW(World Wide Web)并非某种特殊的计算机网络。万维网是一个大规模的、联机式的信息储藏所,英文简称为web。
-
万维网是一个分布式的超媒体系统,它是超文本系统的扩充。
-
万维网以CS(客户服务器)方式工作。客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。
- 万维网需要解决的问题:
- 怎样标志分布在整个互联网上的万维网文档?
- 用什么样的协议来实现万维网上的各种链?
- 怎样使不同作者创作的不同风格的万维网文档,都能在互联网上的各种主机上显示出来,同时使用户清楚的知道在什么地方存在着链接?
- 怎样使用户能够很方便的找到所需要的信息?
- 解决办法:
- 万维网使用统一资源定位符URL来标志万维网上的各种文档,并使每一个文档在整个互联网的范围内具有唯一的标识符URL。
- 使用超文本传输协议HTTP(默认端口80)
- 使用超文本标记语言HTML来统一差异化。
- 使用搜索工具来来方便的查找所需的信息。
- 万维网需要解决的问题:
-
统一资源定位符URL(Uniform Resource Locator)
统一资源定位符URL是用来表示从互联网上得到的资源位置和访问这些资源的方法。
- URL的一般形式:
<协议>://<主机>:<端口>/<路径>
- 使用HTTP的URL
<http>://<主机>:<端口>/<路径>
- URL的一般形式:
-
超文本传输协议HTTP(HyperText Transfer Protocol)
HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传给浏览器。
-
HTTP协议规定:
HTTP规定在HTTP客户与HTTP服务器之间的每次交互,都由一个ASCII码串构成的请求和一个类似通用的互联网扩充,即“类MIME(MIME-like)”的响应组成。 -
HTTP的特点:
-
HTTP是面向事务的
-
HTTP协议本身是无连接的
虽然HTTP使用了TCP连接,但通信双方在交换HTTP报文之前不需要先建立HTTP连接。 -
HTTP协议是无状态的
同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时相同。
-
-
HTTP协议请求一个万维网文档所需要的时间
-
HTTP协议目前有两种:
- HTTP/1.0
- HTTP/2.0
1997年前普遍使用的是RFC 1945定义的HTTP/1.0,现在普遍使用的是升级版HTTP/1.1
-
HTTP/1.0的缺点:
每请求一个文档就要有两倍RTT开销。每次请求资源过后就释放TCP连接,下次获取资源时再进行连接。 -
HTTP/1.1对HTTP1.0的改进优化
HTTP/1.1使用持续连接。所谓持续连接就是万维网服务器在发送响应后任然在一段时间内保持这条连接,使同一个客户和服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。
HTTP/1.1协议持续连接分为两种方式:- 非流水线方式
- 流水线方式
-
代理服务器
代理服务器是一种网络实体。它又称为万维网高速缓存。代理服务器把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若代理服务器发现这些个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按照URL的地址再去互联网访问该资源。
-
-
万维网文档
- 超文本标记语言HTML
超文本标记语言HTML就是一种制作万维网页面的标准语言,它消除了不同计算机之间信息交流的障碍。 - 动态万维网文档
动态文档是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建的。
- 超文本标记语言HTML
电子邮件
电子邮件概述
- 电子邮件的两个重要标准
- 简单邮件传送协议
- 互联网文本报文格式
- 电子邮件系统的三个组成要素
-
用户代理
- 用户代理UA就是用户与电子邮件系统的接口,在大多数情况下它就是运行在用户电脑中的一个程序,因此又被称为电子邮件客户端软件
- 用户代理的功能:
- 撰写,给用户提供编辑信件的环境
- 显示,能方便的在屏幕上显示出来信
- 处理,处理包括发送邮件和接收邮件。
- 通信,发信人在撰写邮件完毕后,要利用邮件方发送协议发送到用户所使用的邮件服务器。
-
邮件服务器
- 功能:发送和接收邮件,同时向发件人报告邮件传送结果。
- 邮件服务器使用的两种协议:
- 一种协议用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件,如SMTP。
- 一种协议用于用户代理从邮件服务器读取邮件,如POP3
- 邮件发送协议(STMP)和邮件读取协议(POP3)
-
用户代理
简单邮件传送协议SMTP
-
SMTP通信的三个阶段
-
连接建立
- SMTP客户端每隔一段时间对邮件缓存进行扫描,发现有邮件,就使用SMTP的熟知端口号25与邮件服务器端的STMP服务建立TCP连接。
- 邮件发送
- 连接释放
-
连接建立
-
SMTP的缺点
- 发送邮件不需要经过鉴别
- 传送非ASCII码的长报文时,传输效率不高
-
ESMTP协议
- 为了解决SMTP的两个缺点,新增了客户端鉴别,服务器接收二进制报文。
邮件读取协议POP3和IMAP
- 邮局协议POP是一个非常简单、但功能有限的邮件读取协议。
- 使用POP3协议只要用户从POP3服务器读取了邮件,POP3服务器就把该邮件删除。扩充:允许用户能够事先设置邮件读取就仍然在POP3服务器中存放的时间。
-
IMAP的优点
- 用户可以在不同的地方使用不同的计算机
- 允许收件人只读取邮件中的一部分
-
IMAP的缺点
- 如果用户没有将邮件复制到自己的计算机上,则邮件一直存放在IMAP服务器上。
通用互联网邮件扩充MIME
-
MIME概述
- MIME的意图是继续使用原来的邮件格式,但增加了邮件主体的结构,并定义了传送非ASCII码的编码规则。
-
内容传送编码
-
ASCII码
每行不能超过1000个字符。MIME对这种由ASCII构成的邮件主体不进行任何转换 -
quoted-printable
- 这种编码方法适用于所传送的数据中只有少量的非ASCII码,例如汉字。
- 这种编码方法的要点是对于所有可打印的ASCII码,除特殊字符等号“=”外,都不改变。
- 等号“=”和不可打印的ASCII码以及非ASCII码的数据的编码方法是:先将没和字节的二进制代码用两个十六进制数字表示,然后再前面加上一个等号“=”。
-
base64编码
- 先将二进制代码划分为一个个24位长的单元,然后把每一个24位单元划分为4个6位组。6位的二进制代码有64种不用的值,从0~63。先按序号排列大写字母,然后小写字母,然后数字,然后‘+’为62,‘/’为63,。
- 用“==”表示最后一组只有8位,“=”表示最后一组只有16位。
-
ASCII码
-
内容类型
- MIME规定Content-Type说明必须含有两个标识符,即内容类型和子类型
动态主机配置协议DHCP
- DHCP提供了一种机制,这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。
-
动态获取IP的流程:
- 需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文(将目的IP置为
255.255.255.255
,源IP置为0.0.0.0
,因为并不知道自己的IP) - DHCP服务器先在其数据库查找该计算机的配置信息,若找到则返回其配置信息,若没有找到,则从服务器IP地址池中取一个地址分配给该计算机。DHCP服务器的回答报文叫提供报文。
- 但是现在并不是在每一个网络上都设置一个DHCP服务器,而是设置一个DHCP中继代理,通常是一台路由器,中继代理收到广播的发现报文之后以单播的形式和DHCP服务器通信,并等待回复。
- 需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文(将目的IP置为
- DHCP服务器分配给客户的IP是临时的,因此DHCP客户只能在一段时间内使用这个IP,这段时间称为租用期。
- DHCP客户使用的端口是68,DHCP服务器使用的端口是67
简单网络管理协议SNMP
网络管理的基本概念
-
网络管理的内容
网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些要求,如实时运行性能、服务器质量等。网络管理常简称为网管。 - 构成SNMP的三个部分:
- SNMP本身,定义了管理站和代理之间所交换的分组格式
- 管理信息结构SMI,定义了命名对象和定义对象类型的通用规则
- 管理信息库MIB,MIB在被管理的实体中创建了命名对象,并规定了其规则。
上一篇: nginx中http核心模块的配置指令1
下一篇: nginx中http核心模块的配置指令4