// 图片取自王道 仅做交流学习
应用层概述
协议是 网络层次模型 中多台主机之间 同层之间进行通信的规则。是一个水平概念
垂直空间上,向下屏蔽下层细节,向上提供服务接入,多台主机之间同层之间形成一条逻辑信道。
应用层的功能: 应用层的重要协议:
文件传输、访问和管理 FTP
电子邮件 SMTP、POP3
虚拟终端 HTTP
查询服务和远程作业登录 DNS
服务器:提供计算服务的设备。(被动)
1.永久提供服务
2.永久性访问地址/域名
3、不需要知道客户机地址
客户机: 请求计算服务的主机。(主动)
1.与服务器通信,使用服务器提供的服务
2.间歇性接入网络
3.可能使用动态IP地址
4.不与其他客户机直接通信
应用: Web,文件传输FTP,远程登录,电子邮件
不存在永远在线的服务器
每个主机既可以提供服务,也可以请求服务
任意端系统/节点之间可以直接通讯
节点间歇性接入网络节点
可能改变IP地址
可扩展性好
网络健壮性强
例如:P2P种子搜索
把人们便于记忆的特定含义的主机名,转换成便于机器处理的IP地址
比如 www.baidu.com -----DNS----> IP地址
DNS是采用C/S模型, 其协议运行在UDP之上。端口号是53
因特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名 (Domain Name)。
域(Domain) 是名字空间中一个可被管理的划分。域还可以划分为子域,而子域还可以继续划分为子域的子域,这样就形成术了顶级域、二级域、三级域等。
每个域名都由标号序列组成,而各标号之间用点 (“.”) 隔开。
关于域名中的标号有以下几点需要注意:
1) 标号中的英文不区分大小写。
2) 标号中除连字符 (-) 外不能使用其他的标点符号。
3)每个标号不超过 63 个字符,多标号组成的完整域名最长不超过 255 个字符。
4)级别最低的域名写在最左边,级别最高的顶级域名写在最右边。
顶级城名
1)国家顶级域名 cn,us,uk2)通用顶级域名 com,net,org,gov,int,aero,museum,travel
3)基础结构域名/反向域名 arpa
二级域名
1)类别域名 ac,com,edu,gov,mil,net,org
2)行政区域名 用于我国各省、自治区、直辖市 bj;js
因特网的域名系统被设计成一个联机分布式的数据库系统,并采用客户/服务器模型。域名到IP 地址的解析是由运行在域名服务器上的程序完成的,一个服务器所负责管辖的(或有权限的)范围称为区(不以“域”为单位)。各单位根据具体情况来划分自己管辖范围的区,但在一个区中的所有结点必须是能够连通的,每个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射。每个域名服务器不能够进行一些域名到IP 地址的解析,而且还必须具有连向其他域名服务器的信息。当自己不能进行域名到IP 地址的转换时,能够知道到什么地方去找其他域名服务器。
小结上面这段话:
以区为单位
每个区设置相应的权限域名服务器,保存该区的主机的域名到IP的映射,并且可以指明本服务器找不到映射时,去哪可以找到(连通)
DNS 使用了大量的域名服务器,它们以层次方式组织。没有一台域名服务器具有因特网上所有主机的映射,相反,该映射分布在所有的 DNS 上。采用分布式设计的 DNS,是一个在因特网上实现分布式数据库的精彩范例。主要有 4 种类型的域名服务器。
1.根域名服务器
根域名服务器是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的IP 地址。根域名服务器也是最重要的域名服务器,不管是哪个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先要求助于根域名服务器。因特网上有13
个根域名服务器,尽管我们将这 13个根域名服务器中的每个都视为单个服务器,但每个“服器”实际上是冗余服务器的集群,以提供安全性和可靠性。需要注意的是,根域名服务器用来辖顶级域(如.com),通常它并不直接把待查询的域名直接转换成 IP 地址,而是告诉本地域名务器下一步应当找哪个顶级域名服务器进行查询。
2.顶级域名服务器
这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。收到 DNS 查询请求时就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的 IP 地址)。
3.授权域名服务器(权限域名服务器)
每台主机都必须在授权域名服务器处登记。为了更加可靠地工作,一台主机最好至少有两授权域名服务器。实际上,许多域名服务器都同时充当本地域名服务器和授权域名服务器。授枚域名服务器总能将其管辖的主机名转换为该主机的 IP 地址。
4.本地域名服务器
本地域名服务器对域名系统非常重要。每个因特网服务提供者 (ISP),或一所大学,甚至、所大学中的各个系,都可以拥有一个本地域名服务器。当一台主机发出 DNS 查询请求时,这查询请求报文就发送给该主机的本地域名服务器。事实上,我们在 Windows 系统中配置“本地接”时,就需要填写 DNS 地址,这个地址就是本地 DNS(域名服务器)的地址。
域名解析是指把域名映射成为IP 地址或把IP地址映射成域名的过程。前者称为正向解析,后者称为反向解析。
当客户端需要域名解析时,通过本机的 DNS 客户端构造一个 DNS 请求报文以UDP 数据报方式发往本地域名服务器。
域名解析有两种方式:
递归查询 和 递归与迭代相结合的查询。
(1)主机向本地域名服务器的查询采用的是递归查询
也就是说,如果本地主机所询问的本地域名服务器不知道被查询域名的 iP 地址,那么本地域名服务器就以DNS客户的身份,向根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自已进行下一步的查询。两种查询方式的这一步是相同的。
(2)本地域名服务器向根域名服务器的查询采用迭代查询
当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的 IP地址,要么告诉本地域名服务器:“你下一步应当向哪个顶级域名服务器进行查询”。然后让本地械名服务器向这个顶级域名服务器进行后续的查询,如图 b所示。同样,顶级域名服务器收到查询报文后,要么给出所要查询的 IP 地址,要么告诉本地域名服务器下一步应向哪个权限域名服务器查询。最后,知道所要解析的域名的 IP 地址后,把这个结果返回给发起查询的主机。
为了提高 DNS 的查询效率,并减少因特网上的 DNS 查询报文数量,在域名服务器中广泛地使用了高速缓存。当一个 DNS 服务器接收到 DNS 查询结果时,它能将该 DNS 信息缓存在高速缓存中。这样,当另一个相同的域名查询到达该 DNS 服务器时,该服务器就能够直接提供所要求的IP 地址,而不需要再去向其他 DNS 服务器询问。因为主机名和P 地址之间的映射不是永的,所以 DNS 服务器将在一段时间后丢弃高速缓存中的信息。
感觉是不是有点像Http请求的 转发与重定向
文件传送协议FTP (File Transfer Protocol)提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力(FTP是基于TCP的)
简单文件传送协议TFTP (Trivial File Transfer Protocol)(TFTP是基于UDP的)
FTP提供以下功能
(1)提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力(适用于异构网络任意主机之间传送文件)
(2)以用户鉴权管理的方式提供用户对远程FTP服务器文件管理能力
(3) 以匿名FTP的方式提供文件共享的能力
FTP采用C/S工作方式,它使用TCP可靠的传输服务。一个FTP服务器可同时为多个客户进程提供服务。
FTP服务器进程由两大部分组成:
1、一个主进程,负责接收新的请求
2、若干从属进程,负责处理单个请求。
工作步骤如下:
(1)打开熟知端口 21(控制端口),使得客户进程能连接上
(2)等待客户进程发来链接请求
(3)启动从属进场来处理客户进程发来的请求,主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕即终止。
(4)回到等待状态,继续接收其他客户进程的请求
FTP服务器必须在整个会话期间保留用户状态信息,特别是服务器必须把指定的用户账户与控制联系起来,服务器必须追中用户在远程目录树上的当前位置。(有状态,保留连接的用户信息的,参考对比Http的无状态)。
文本模式:ASCII模式,以文本序列传输数据;
进制模式: Binary模式,以二进制序列传输数据。
FTP在工作时使用两个并行的TCP连接:一个是控制链接(服务端口号 21),一个是数据连接(服务器端口号 20)
服务器监听 21 号端口,等待客户连接,建立在这个端口上的连接称为控制连接。
控制连接用来传输控制信息(如连接请求、传送请求等),并且控制信息都以 7 位 ASCII 格式传送。
FTP客户发出的传送请求,通过控制连接发送给服务器端的控制进程,但控制连接并不用来传送文件,在传输文件时还可以使用控制连接(如客户在传输中途发一个中止传输的命令),因此控制连接在整个会话期间一直保持打开状态。
服务器端的控制进程在接收到 FTP 客户发来的文件传输请求后,就创建“数据传送进程”和“数据连接”。
数据连接用来连接客户端和服务器端的数据传送进程,数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。
数据连接有两种传输模式:(主动模式 PORT和被动式 PASV)。
PORT 式的工作原理:客户端连接到服务器的 21 端口,登录成功后要读取数据时,客户端随机开放一个端口,并发送命令告知服务器,服务器收到 PORT 命令和端口号后,通过 20 端口和客户端开放的端口连接,发送数据。
PASV 模式的不同点是,客户端要读取数据时,发送 PASV 命令到服务器,服务器在本(本地随机开放一个端口,并告知客户端,客户端再连接到服务器开放的端口进行数据传输。
可见,是用PORT 模式还是PASV 模式,选择权在客户端。简单概括为,主动模式传送数据是“服务器连接到“客户端”的端口;被动模式传送数据是“客户端”连接到“服务器”的端口。
因为 FTP 使用了一个分离的控制连接,所以也称 FTP 的控制信息是带外(Out-of-band)传送的。使用 FTP 时,若要修改服务器上的文件,则需要先将此文件传送到本地主机,然后再将修改后的文件副本传送到原服务器,来回传送耗费很多时间。
网络文件系统(NFS) 采用另一种思路,它允许进程打开一个远程文件,并能在该文件的某个特定位置开始读写数据。这样,NFS 可使用户复制一个大文件中的一个很小的片段,而不需要复制整个大文件。