基本概念
每个应用层协议都是为了解决某一类应用问题,而问题的解决又必须通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。
主要协议
一:域名系统DNS(53端口)
1. 定义:因特网使用的命名系统
它被设计成为一个联机分布式数据库系统,并采用客户-服务器方式,用来把便于人们使用的机器名字转换为IP地址。
通过DNS使大多数名字都在本地进行解析,仅少量解析需要在因特网上通信。
2. 域名
(1):结构
因特网采用了层次树状结构的命名方法。“域” 是名字空间中一个可被管理的划分。域还可以划分为子域,而子域还可继续划分为子域的子域,这样就形成了顶级域、二级域、三级域,等等。各级域名由其上一级的域名管理机构管理,
(2):组成
域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母,标号中除连字符(-)外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的顶级域名则写在最右边。
(3):分类
- 顶级域名
- 国家顶级域名nTLD
- 通用顶级域名gTLD
- 基础结构域名 / 反向域名:这种顶级域名只有一个,即arpa,用于反向域名解析。
- 二级域名
- “类别域名”共7个
- 行政区域名:适用于我国的各省、自治区、直辖市。
3. 解析场所:域名服务器
(1):定义
域名到IP地址的解析是由分布在因特网上的许多域名服务器程序(可简称为域名服务
器)共同完成的。
为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保
存,其中的一个是主域名服务器,其他的是辅助域名服务器。
为了提高DNS查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存(有时也称为高速缓存域名服务器),用来存放最近查询过的域名以及从何处获得域名映射®信息的记录。域名服务器为每项内容设置计时器并处理超过合理时间的项。
(2):区和域
一个服务器所负责管辖的(或有权限的)范围叫做区。DNS服务器的管辖范围不是以“域”为单位,而是以“区”为单位,区等于或小于域。在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。
(3):分类
- 根域名服务器:根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。由于根域名服务器采用了任播技术,因此当DNS客户向某个根域名服务器进行查询时,因特网上的路由器就能找到离这个DNS客户最近的一个根域名服务器。这样做不仅加快了 DNS的查询过程,也更加合理地利用了因特网的资源。
- 顶级域名服务器(即TLD服务器):这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的IP地址)。
- 权限域名服务器:这就是前面己经讲过的负责一个区的域名服务器。当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的DNS客户,下一步应当找哪一个权限域名服务器。
- 本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。当所要查询的主机也属于同一个本地ISP时,该本地域名服务器立即就能将所查询的主机名转换为它的IP地址。
4. 解析流程
主机向本地域名服务器的查询一般都是采用递归查询。
本地域名服务器向根域名服务器的查询通常是采用迭代查询。
- 当某一个应用进程需要把主机名解析为IP地址时,该应用进程就调用解析程序,并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器(使用UDP是为了减少开销)。
- 本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。
- 若本地域名服务器不能回答该请求,则本地域名服务器就暂时成为DNS中的另一个客户,并向其他根域名服务器发出查询请求(递归查询)。
- 当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器应当向哪一个域名服务器进行查询。然后让本地域名服务器进行后续的查询(而不是替本地域名服务器进行后续的查询)。(迭代查询)
- 应用进程获得目的主机的IP地址后即可进行通信。
二:文件传送协议——FTP
定义
FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)。
FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。
分类
1:联机访问——网络文件系统 NFS
允许多个程序同时对一个文件进行存取。
由操作系统提供对远地共享文件进行访问和对透明存取。
2:复制整个文件
一:简单文件传送协议——TFTP(21端口控制连接,20端口传送文件)
定义:
使用客户-服务器方式。
使用UDP数据报,因此TFTP需要有自己的差错改正措施。
TFTP只支持文件传输而不支持交互。TFTP没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
优点:
- TFTP可用于UDP环境,可以将文件同时向许多机器下载。
- TFTP代码所占的内存较小,这对较小的计算机或某些特殊用途的设备是很重要的。
特点:
- 每次传送的数据报文中有512字节的数据,但最后一次可不足512字节。
- 数据报文按序编号从1开始。
- 支持ASCII码或二进制传送。
- 可对文件进行读或写。
- 首部简单。
工作流程:
- 客户端发送一个读请求报文或写请求报文给TFTP服务器进程,其熟知端口(69)。
- 服务器进程要选择一个新的端口和TFTP客户进程进行通信。
- 若文件长度恰好为512字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据报文。
- 若文件长度不是512字节的整数倍,则最后传送数据报文中的数据字段一定不满512字节,这正好可作为文件结束的标志。
二:简单的远程终端协议——TELNET(23端口)
定义:
使用客户-服务器方式。
能够适应许多计算机和操作系统的差异——TELNET定义了数据和命令应怎样通过因特网(网络虚拟终端NVT)。
NVT
- 客户软件把用户的击键和命令转换成NVT格式,并送交服务器。
- 服务器软件把收到的数据和命令,从NVT格式转换成远地系统所需的格式。
- 向用户返回数据时,服务器把远地系统的格式转换为NVT格式,本地客户再从NVT格式转换到本地系统所需的格式。
格式
所有的通信都使用8位一个字节。
在运转时,NVT使用7位ASCD码传送数据,而当高位置1时用作控制命令。
工作原理
FTP使用客户-服务器方式,一个FTP服务器进程可同时为多个客户进程提供服务。
FTP的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
- 服务器打开控制连接的熟知端口(端口号为21),使客户进程能够连接上,等待客户进程发出连接请求。
- 客户端向服务器进程发出建立连接请求,要寻找熟知端口 (21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。
- 服务器启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
- 服务器用自己传送数据的熟知端口 (20)与客户进程所提供的端口号码建立数据传送连接。 由于FTP使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。
- 文件传送完毕后服务器关闭“数据传送连接”并结束进程。由于FTP使用了一个分离的控制连接,因此FTP的控制信息是带外传送的。
- 服务器回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。
三:超文本传送协议——HTTP(80端口)
定义
HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
HTTP是面向事务的应用层协议。
HTTP协议本身是无连接的。
HTTP协议是无状态的。
流程
- 每个万维网网点都有一个服务器进程,它不断地监听TCP的端口80,以便发现是否有浏览器(即万维网客户)向它发出连接建立请求。
- 浏览器分析链接指向页面的URL,向DNS请求解析域名所对应的IP地址。
- 浏览器发出连接建立请求,与服务器建立了 TCP连接
- 浏览器向万维网服务器发出浏览某个页面的请求。
- 服务器返回所请求的页面作为响应。
- 最后,TCP连接就被释放了。
版本
HTTP1.0的缺点:
- 每请求一个文档就要有两倍RTT的开销。
- 为每一次建立的新的TCP连接都要分配缓存和变量。
HTTP1.1
1. 优点:
使用了持续连接:万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。
2. 工作方式:
- 非流水线方式:客户在收到前一个响应后才能发出下一个请求。服务器在发送完一个对象后,其TCP连接就处于空闲状态,浪费了服务器资源。
- 流水线方式:客户在收到HTTP的响应报文之前就能够接着发送新的请求报文。于是一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。
代理服务器
定义:
代理服务器是一种网络实体,又称为万维网高速缓存。
代理服务器把最近的一些请求和响应暂存在本地磁盘中。
工作流程:
- 当新请求到达代理时,若代理服务器发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按URL的地址再次去因特网访问该资源。
- 否则,代理服务器就代表发出请求的用户浏览器,与因特网上的源点服务器建立TCP连接,获得响应后,先复制在自己的本地存储器中(留待以后用),然后返回给请求该对象的浏览器。
四:动态主机配置协议——DHCP
协议配置
定义:对协议软件中的参数赋值
一个协议软件在使用之前必须是已正确配置的。具体的配置信息有哪些取决于协议栈。
连接到因特网的计算机的协议软件的配置:
(1) ip地址;
(2) 子网掩码;
(3) 默认路由器的IP地址;
(4) 域名服务器的IP地址。
动态配置
定义
DHCP提供了一种机制,称为即插即用连网,允许一台计算机加入新的网络和获取IP地址而不用手工参与。当运行客户软件的计算机移至一个新的网络时,就可使用DHCP获取其配置信息而不需要手工干预。
DHCP使用客户-服务器方式。
DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限
的时间内使用这个分配到的IP地址。DHCP协议称这段时间为租用期。
流程
- 需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文,将目的IP地址置为全1(即255.255.255.255),将源IP地址置为全0,该主机成为DHCP客户。
- 没有代理:DHCP服务器收到发现报文后,先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP地址池中取一个地址分配给该计算机。发送提供报文,表示“提供” 了 IP地址等配置信息。
- 有代理:DHCP中继代理(通常是一个路由器)收到发现报文后,就以单播方式向DHCP服务器转发此报文,并等待其回答。收到DHCP服务器回答的提供报文后,DHCP中继代理再把此提供报文发回给主机。
- DHCP客户从多个DHCP服务器中选择其中的一个,并向所选择的DHCP服务器发
送DHCP 请求报文。 - 被选择的DHCP服务器发送确认报文。从这时起,DHCP客户就可以使用这个IP地址了。这种状态叫做已绑定状态。
- DHCP客户端根据服务器提供的租用期T设置两个计时器T1和T2,当计时器的超时时间到了就要请求更新租用期。租用期过了一半(T1时间到),DHCP发送请求报文要求更新租用期。
- DHCP服务器若同意,则发回确认报文。DHCP客户得到了新的租用期,重新设置计时器。
- DHCP服务器若不同意,则发回否认报文。这时DHCP客户必须立即停止使用原来的IP地址,重新申请IP地址。
- 若DHCP服务器不响应,则客户端在租用期过了大部分时间(T2时间到),DHCP客户必须重新发送请求报文。
- DHCP客户可以随时提前终止服务器所提供的租用期,这时只需向DHCP服务器发
送释放报文即可。
五:邮件协议
简单邮件传输协议——SMTP(25端口)
描述了电子邮件的信息个数和传递处理方法,保证电子邮件可以正确的寻址和可靠的传输。
- 面向文本
- 无法传送非文本文件
多用途邮件扩充协议——MIME
增强私密邮件保护协议——PEM
保管邮件协议——POP
简单的纯文本协议,传输时以整个文件为单位,不能部分传输