计算机网络知识点-第六章:应用层

0.本章思维导图:

    应用层协议:每个应用层协议都是为了解决一类应用问题,而解决问题需要通过位于不同主机的多个应用进程之间的通信和协同来完成,应用层的具体内容就是定义这些通信规则

1.域名系统DNS

        1.域名系统概述:

            域名系统DNS:是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址

            许多应用层软件经常使用域名系统DNS,但计算机的用户只是间接而不是直接使用DNS

            互联网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统DNS

            DNS使大多数名字都在本地进行解析,仅少量解析需要互联网上通信

            域名的解析过程:当需要把主机名解析成IP地址时,应用进程调用解析程序,并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器,本地域名服务器查找域名后,把对应的IP地址放在回答报文中返回,应用进程获得目的主机的IP地址后即可进行通信

        2.互联网的域名结构:

            互联网采用了层次树状结构的命名方法

            任何一个连接在互联网上的主机或路由器都有一个唯一的层次结构名字,即域名

            域是名字空间中一个可被管理的划分,域还可以划分为子域,而子域还可继续划分

            域名的组成:由标号序列组成,各标号之间用点隔开

            标号的规定:域名中的标号由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写;级别低的域名写在左边,级别高的写在右边;由多个标号组成的完整域名总共不超过255个字符

            域名是逻辑概念,并不代表计算机所在的物理地点

            顶级域名的分类:

                国家顶级域名:如cn、us

                通用顶级域名:如com、net、org、edu

                基础结构域名:只有arpa,用于反向域名解析,又称为反向域名

            二级域名:

                类别域名:ac、com、edu、gov

                行政区域名:bj、js

            互联网的域名空间:

                

        3.域名服务器:(小题)

            目的:为每一级的域名都设置一个对应的域名服务器,数量太多,效率低下。因此DNS采用划分区的办法

            区:一个服务器所负责的范围

            权限域名服务器:每一个区都设有,用来保存区中所有主机的域名到IP地址的映射

            互联网上的DNS域名服务器树状结构:

                

            域名服务器分类:

                根域名服务器:是层次最高的域名服务器,也是最重要的。所有根域名服务器都知道所有顶级域名服务器的域名和IP地址。任何本地域名服务器只要自己无法解析,就首先求助于根域名服务器

                顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答

                权限域名服务器:负责一个区的域名服务器。当权限域名服务器还不能给出回答时,就会告诉发出查询请求的DNS客户,下一步应找哪一个权限域名服务器

                本地域名服务器:并不属于域名服务器层次结构,但很重要。当主机发出DNS查询请求时,这个查询请求报文发给本地域名服务器

 

            提高域名服务器可靠性:

                DNS域名服务器把数据复制到几个域名服务器来保存,其中一个是主域名服务器,其余是辅助域名服务器。当主域名服务器出现故障时,辅助域名服务器就可以保证DNS的查询工作不会中断

     *      域名的解析过程:

                主机向本地域名服务器查询,采用递归查询:如果本地域名服务器不知道查询域名的IP,则本地域名服务器以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让主机自己进行下一步查询。因此,递归查询返回的查询结构是查询的IP地址或报错,即无法查询到IP

                本地域名服务器向根域名服务器查询,采用迭代查询:当根域名服务器收到本地域名服务器发出的查询请求报文时,要么给出要查询的IP地址,要么告诉本地域名服务器下一步应向哪个域名服务器查询,然后让本地域名服务器进行后续查询。根域名服务器通常把自己知道的顶级域名服务器的IP告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询

 

2.文件传送协议FTP

    1.FTP概述

       文件传输协议FTP:时互联网上使用最广泛的文件传送协议,提供交互式访问,允许客户指明文件的类型与格式,并允许文件具有存取权限

        特点:要存取一个文件,必须先获得一个本地的文件副本,要修改文件,只能对副本进行修改,然后将修改后的文件副本传回原节点

     2.FTP的基本工作原理

 *    FTP的特点:只提供文件传送的基本服务,使用TCP可靠性运输服务,FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性

        FTP工作流程:FTP使用客户服务器方式,一个FTP服务器进程可同时为多个客户进程提供服务,FTP的服务进程分为两大部分:主进程,负责接受新的请求;若干从属进程,负责处理单个请求

        主进程的工作步骤:

            (1)打开熟知端口(21),使客户进程能够连接

            (2)等待客户进程发出连接请求

            (3)启动从属进程处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建一些子进程

            (4)回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发进行的

 

  *     FTP的两个TCP连接:

            控制连接:在整个会话期间一直打开,FTP客户发出的传送请求,通过控制连接发送给服务器端;端口号21

            数据连接:用于传输文件;端口号20

            由于FTP使用两个不同的端口号,所以数据连接与控制连接不会发生混乱

            服务器端控制进程收到FTP客户发来的文件传输请求后,就创建数据传送进程和数据连接,用来连接客户端和服务端的数据传送进程

 

    3.简单文件传送协议TFTP

        TFTP:是很小且易于实现的文件传送协议,使用客户服务器方式,但使用UDP数据报,因此,TFTP需要有自己的差错改正措施,TFTP只支持文件传输而不支持交互。TFTP没有庞大的命令集,没有列目录功能,不能对用户进行身份识别

        优点:TFTP可用于UDP环境;TFTP代码所占的内存小

        TFTP的主要特点:

            (1)每次传送的数据报文中有512字节的数据,但最后一次可不足512字节

            (2)数据报文按序编号,从1开始

            (3)支持ASCII码或二进制传送

            (4)可对文件进行读或写

            (5)使用很简单的首部

        TFTP工作流程:

            TFTP客户进程发送一个请求报文给TFTP服务器进程,其熟知端口号为69。TFTP服务器进程选择一个新的端口和TFTP客户进程通信。若文件长度恰好为512字节整倍数,则文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据报;若不是整倍数,则最后一个报文一定不足512字节,可作为文件结束的标志

    

 

4.万维网WWW

    1.万维网概述

        万维网:是一个大规模联机式的信息储存所,用连接的方法能非常方便的从互联网上的一个站点访问另一个站点,从而主动按需获得信息;是一个分布式的超媒体系统,是超文本系统的扩充

        页面:在客户程序(浏览器)主窗口上显示出的万维网文档就是页面

        统一资源定位符URL:标志万维网上各种文档,使每个文档在互联网范围具有唯一标识符URL

        超文本传送协议HTTP:是一个应用层协议,使用TCP进行可靠传送

 

     2.统一资源定位符URL

        URL作用:用来表示从互联网上得到的资源位置和访问这些资源的方法

        URL的格式:<协议>://<主机>:<端口>/<路径>

            协议:指出使用什么协议来获得该文档,常用HTTP或FTP

            主机:指出文档在哪台主机上,主机就是指该主机在互联网上的域名

            端口和路径:为了进一步定位,有事可省略

        

    3.超文本传送协议HTTP

        HTTP作用:定义了浏览器怎么向万维网服务器请求万维网文档,以及服务器怎么把文档传送给浏览器;是面向事物的应用层协议

      *HTTP的主要特点:

            (1)HTTP本身是无连接的:虽然使用TCP连接,但通信双方在交换HTTP报文前不需要建立HTTP连接

            (2)HTTP是无状态的:同一个客户第二次访问同一服务器上的页面时,服务器的响应与第一次被访问时相同

 

        请求一个万维网文档所需时间:是该文档的传输时间+两倍往返时间RTT

 

  *    HTTP/1.0的主要缺点:每请求一个文档就要有两倍的RTT的开销;这种非持续连接会使万维网服务器负担很重

        HTTP/1.1的改进:使用了持续连接;服务器在发送响应后仍在一段时间内保持连接,使同一个客户能继续在这条连接上传送后续HTTP请求报文和响应报文

        HTTP/1.1持续连接的两种工作方式:

            非流水线方式:客户在收到响应报文之后才能继续发送

            流水线方式:客户收到响应报文之前也可以继续发送

 

代理服务器:略

HTTP的报文结构:略

 

6.动态主机配置协议DHCP

 

        DHCP作用:提供一种机制,称为即插即用连网,允许一台计算机加入网络和获取IP而不用手工参与

        协议配置:在协议软件中给参数赋值的动作叫做协议配置

        需要配置的项目:

            IP地址

            子网掩码

            默认路由器的IP地址

            域名服务器的IP地址

 

  *    DHCP工作方式:

            (1)DHCP使用客户服务器方式

            (2)需要IP地址的主机在启动时向DHCP服务器广播发送发现报文,这时该主机就成为DHCP客户

            (3)本地网络上所有主机都能收到该报文,但只有DHCP服务器才回复此报文

            (4)DHCP服务器先在其数据库中查找该计算机的配置信息,若找到,则返回找到的信息,若找不到,则从服务器IP地址池中取一个地址分配给该计算机

            (5)DHCP服务器的回答报文叫提供报文,表示提供了IP地址等配置信息

 

        DHCP中继代理:并不是每个网络上都有DHCP服务器,因为这样会使DHCP服务器数量过多,因此现在是使每个网络至少有一个DHCP中继代理,它配置了DHCP服务器的IP地址信息

            DHCP中继代理工作流程:

                当DHCP中继代理收到主机A以广播形式发送的发现报文后,就以单播方式向DHCP服务器转发此报文,并等待其回答

                收到DHCP服务器回应的提供报文后,DHCP中继代理再把此提供报文发回给主机A

                

        DHCP工作流程:

            

 

            1:DHCP服务器被动打开UDP端口67,等待客户端发来的报文

            2:DHCP客户从UDP端口68发送DHCP发现报文

            3:所有收到DHCP发现报文的服务器都会发出DHCP提供报文,因此客户可能收到多个DHCP提供报文

            4:客户从几个DHCP服务器中选择一个,并向其发送DHCP请求报文

            5:被选中的服务器发送确认报文DHCPACK,此时客户就可以使用这个IP地址了,这种状态叫已绑定状态;DHCP客户现在要根据服务器提供的租用期T设置两个计时器T1和T2,它们的超时时间分别为0.5T和0.875T,当超时时间到了就要请求更新租用期

            6:租用期过半,DHCP发送请求报文,要求更新租用期

            7:服务器若同意,则发回确认报文。客户得到了新的租用期,重置计时器

            8:服务器若不同意,则发回否认报文。这是客户停止使用原来的IP地址,而重新申请新IP地址(回到步骤2)

            9:客户可以随时提前终止服务器所提供的租用期,这时只需向DHCP服务器发送释放报文即可

            


习题

 

*10.假定要从已知的URL获得一个万维网文档,若该万维网服务器的IP地址开始不知道。问除HTTP外,还需要什么应用层协议和运输层协议?

解:DNS->UDP,HTTP->TCP

 

*14.当点击一个万维网文档时,若该文档除了有文本外,还有一个本地gif图像,和两个远地gif图像,试问:需要使用哪个应用程序,以及需要建立几次UDP连接和几次TCP连接?

解:HTTP/1.0:建立4次TCP连接,不需要UDP;HTTP/1.1:建立1次TCP连接,不需要UDP