目录
2.采用的应用层协议FTP(FILE Transfer Protocal):
前言:
对于应用层的复习:我们首先学习应用层的两种网络应用模型,并且了解应用层会采取什么类型的传输层协议,以及一些常见的网络应用。
一、C/S模型和P2P体系结构:
1.C/S应用模型:
服务器的概念:服务器就是指安装服务器程序,为客户提供服务的主机。
客户:可以理解为个人主机,为用户个人访问服务器的主机。
在C/S结构下:服务器24小时不停歇的提供服务,并且提供永久性的访问地址。而对于客户而言为间接性的接入网络,向服务器发起请求。
2.P2P应用模型:
指任意节点之间地位平等,每个节点既可以为发出请求的客户,也可以为其他地位平等的节点提供共享信息的服务。
二、网络应用采用的传输层协议:
1.TCP:
面向连接的的传输:客户机和服务器在进行信息交换之前要先建立一个连接:提供了可靠的数据传输。具体会在传输层进行详解。
2.UDP:
无连接且不可靠的一种传输,不提供任何特殊服务。
三、文件传输应用:
1.其实现的功能:
将计算机的文件通过网络进行传输给相聚很远的计算机。
2.采用的应用层协议FTP(FILE Transfer Protocal):
该协议采用了C/S体系结构:其原理如下图:
首先客户机和服务器会实现两个TCP并行的连接:其中TCP控制连接端口号21(用于传送FTP命令,如连接请求、传输请求,以及终止请求,会话期间会一直保存打开状态),TCP数据连接端口号20(用于客户端和服务器的数据传输进程)。这里的21、20端口号均为服务器的端口号。在客户机一段均为随机选择的临时端口号。
四、DNS(域名系统):
1.其实现的功能:
解决了数十亿台主机和路由器的识别问题:
在应用层中域名采用形如:www.hit.edu.cn的形式,而在网络层及以下是一些数字组成的IP地址。改系统实现了域名与IP地址的映射。
2.分布式层次数据库:
自上而下包括:根域名服务器、顶级域名服务器、以及权威域名服务器。在分布式结构以外还包括了一个本地域名解析服务器。
3.DNS查询:
(1)迭代查询法:
(2)递归查询:
特点:每个环节只要发送一个请求消息即可:
4.DNS的缓存:
当获得一个域名—IP映射关系后我们会在本地域名解析服务器缓存这个映射关系,方便我们下次使用,同时我们为其设置了一个TTL,规范其生存时间,过时后缓存失效。
5.DNS协议的应用模型和传输层协议:
应用模型也是:C/S,在传输层采用的协议为UDP连接
五、电子邮件应用 :
1.其实现的功能:
就是我们尝试用的qq邮箱,用来向其他主机发送邮件,并且接收来自其他主机的邮件。
2.具体实现过程:
采用了两种应用层协议:SMTP和POP3协议,使用了C/S应用模型,以及在传输层的协议为TCP。
(1)SMTP协议:
一句话概括就是采用了C/S的工作模型,建立在TCP连接上,用于用户代理向邮件服务器以及邮件服务器之间的邮件发送。
在客户机和服务器端之间的交互过程和人类之间的交流逻辑相似:
特点:SMTP仅支持传输ASCII码文本
(2)电子邮件的消息格式以及MIME:
在格式上包括头部行(从哪里来,到哪里去,以及主题)和消息体(由ASCII字符组成)
MIME技术:随着技术的发展,电子邮件可以支持其他数据类型的数据,需要我们在头部行中添加额外的行:
(3)POP3协议:
一句话概括就是采用了C/S的工作模型,建立在TCP连接上,用于用户代理向邮件服务器的用户邮箱中读取邮件。
其主要为两个过程:①认证过程:客户端向服务器发出命令(同时声明用户名,密码----->服务器再响应。②下载邮件。
补充:此外除了POP3协议可以用于访问服务区上的邮件外,还有IMAP。其功能更多更复杂:IMAP协议的一个显著特点是它不需要像POP3协议那样把邮件下载到本地。
六、web应用(world wide web):
1.web的构成:
由网页构成,而在每个网页中又包含了多个对象,而对于每一个对象而言其种类也不同:包括HTML文件、JPEG图片、视频文件、以及动态脚本。
2.web对象的寻址:
Internet上的每一个网页都具有一个唯一的名称标识,通常称之为URL(Uniform Resource Locator, 统一资源定位器)。
3.HTTP协议:
(1)结构与传输层协议:
在结构中该浏览器使用的是C/S结构,客户端在这里就是我们使用浏览器的过程对于服务器我们所用的是客户端服务器。。在传输层使用了TCP连接。
(2)特点:
①:无状态性:无状态”是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送HTTP请求之后,服务器根据请求会给我们发送数据过来,但是发送完不会记录任何信息,不会维护以前发出过的请求。
②:无连接性:无连接”指的是在HTTP协议中,每次客户端与服务器之间的交互都是独立的,即每次请求之前,客户端都需要建立一个新的连接。服务器处理完客户的请求,并收到客户的应答后,即断开连接。(这里的无连接不等于不连接,只是在用的时候才开始进行连接,结束后连接随即断开)
(3)连接的类型:
①非持续性连接:每一个对象传输时候都需要建立一个TCP连接
②持续性连接:同一个客户机和服务器可以持续性的在这条连接中传输HTTP请求/相响应报文。而在持续性连接中又分为非流水线和流水线两种方式:对于前者只有客户机收到了一个前一个响应后才可以发出下一个请求。而在流水线情况下:客户机每遇到一个对象引用时,就发送一个请求。
涉及的计算:
对于非持续连接而言:
首先我们需要建立时间模型:
我们给出定义:RTT(Round Trip Time):从客户端发送一个很小的数据包到达服务器并且返回的时间:
这个RRT可以代表多种类型的交互请求所产生的时间消耗,比如客户端向服务器发起建立TCP连接的请求,以及客户端向服务器返回成功建立的信息来回的时间消耗。
下面给出非持续性连接的计算:对于有N个对象,获取一个对象需要我们客户机先向服务器建立连接后,再进行对象请求后,客户端会发送对象,再结束连接:
这样一来对于一个对象的引用时间的总消耗为:2RRT+文件传输时间
对于n个对象的引用总时间为:n*(2RRT+文件传输时间)
对于持续性连接的非流水线类型由上文的图可知;对于一个对象的引用要在客户端收到前一个对象的响应结束后才可以进行下一个,整个过程中只进行了一次TCP连接(采取持续性连接)所以用于建立TCP连接的时间消耗为RRT,对于每一个对象都会消耗一个RRT和文件传输时间。
所以对于n个对象的引用总时间为:RRT+n*(RRT+文件传输时间)
对于采用持续性连接且流水线形式时候在最理想的情况下:只会产生一个RRT,而每一个对象引用只会产生一个文件传输时间
所以对于n个对象的引用总时间为:RRT+n*文件传输时间
4.HTTP报文 :
报文格式:
5.cookie技术:
前面讲过HTTP技术是没有状态的,而在某些情况下很多应用需要服务器掌握客户端的状态,eg使用淘宝网在线的购物车功能。所以某些网站为了辨别用户的身份,进行跟踪并且将用户的信息存储的技术。
在客户端设置了一个名为cookie的文件,在客户机于服务器进行一般的请求---响应的过程前,服务器为客户端创建了一个ID号码并且传递给服务器端的database和客户端的cookie文件之中。随后会将其交互过程的信息记录到数据库中,一段时间以后服务器再次受到请求后发现该客户机在database中有存在的记录。
6.web缓存技术/代理服务器:
(1)其实现的功能:
在不访问服务器的前提下满足客户的HTTP请求,缩短了客户请求响应的时间,减少机构和组织的流量开销: