应用层概述
虚拟终端可以使个人计算机的用户直接使用他人的个人计算机来和大型计算机进行联系而不必使用一些专门的终端,从而方便地使用大型计算机的一些功能
一、网络应用模型
①客户/服务器模型(Client/Server)
有一个总是打开的服务器,用于服务其余客户机的请求。
特点:
- 服务器处于接收状态
- 客户机发出服务请求,并等待接收结果
- 服务器收到请求后,分析请求,进行必要的处理,得到结果发送给客户机
- 客户是服务请求方,服务器是服务提供方(最主要特征)
- 服务器可以通过权限限制客户机
- 客户机之间不可以相互通信
- 可扩展性不强
②P2P模型(Peer-to-Peer)
没有服务器,任意计算机称为对等方。
特点:
- 无服务器
- 客户机之间可以共享文档
- 可扩展性好
- 网络健壮性强
二、域名解析系统DNS系统
用户访问网站就是主机和另一台主机进行远程通信和资源交换,用户的主机通过IP地址找到对方网站的主机
但现实中通常访问网站时是通过域名,而不需要知道网站服务器的IP地址、
1.层次域名空间
因特网采用树状命名方式。任何一个主机连接到因特网主机或路由器都有一个唯一的层次结构名称。
一个域名由被点. 分割开的标号组成
每个标号可以有英文字母和数字,还可以有横杠-。不超过63个字符(一般不超过12字符),不区分大小写字母,标号自左向右级别由低到高。
以上就是用域名树的形式表示的整个域名系统。分布在各地的域名服务器实现域名系统
2.域名服务器
域名到IP地址的解析是由运行在域名服务器上的程序完成的。
DNS服务器根据树形结构的域名系统进行层次划分,按照层次划分为几种不同的类型
-
根域名服务器:最高层次,最重要的域名服务器,知道所有顶级域名服务器的域名和对应IP地址。因特网上任何一个域名服务器只要自己无法解析,就首先求助于根域名服务器。一共有13个根域名服务器。
-
顶级域名服务器:管理在该顶级域名服务器注册的所有二级域名。
-
权限域名服务器:负责一个区的域名服务器,每台主机都要在权限域名服务器处登记。能将其管辖的主机名转化为该主机的IP地址。
-
本地域名服务器(实际上不属于域名服务器的层次结构,但对域名系统非常重要):当主机发出DNS查询请求时,将查询报文发送给本地域名服务器。
3.域名解析过程
①递归查询:
主机向本地域名服务器的查询都是递归查询
当主机所询问的本地域名服务器不知道被查询的域名IP时,本地域名服务器以DNS客户的身份向根域名服务器发出查询。递归查询中本地域名服务器只要查询一次。
②迭代查询:
本地域名服务器向其他服务器查询采用递归查询(靠别人)和迭代查询(靠自己)
为了调高DNS查询的效率引入高速缓存的概念,高速缓存用来存放最近查过的域名的相关映射信息。(首先访问高速缓冲)
题目:
最短时间为其高速缓冲中含有对应的映射信息,直接查找高速缓冲没有延时,注意本题是还需要进行http的连接,也就是需要三次握手,其中三次握手包含有1.5个RTT,同时,页面数据的传输需要0.5个RTT,所以总共需要2RTT也就是20ms。
最长时间为高速缓冲中没有数据,则需要访问域名服务器,注意是迭代查询。①首先主机向本地域名服务器发送请求,本地域名服务器高速缓冲中没有,(同时注意题干,本地域名服务器与主机处于局域网中,不考虑延时)②就需要向根域名服务器发送请求,根域名服务器返回;③本地域名服务器在向顶级域名服务器发送请求,顶级域名服务器返回;④本地域名服务器在向权限域名服务器发送,权限域名服务器返回对应信息。⑤最后进行三次握手,数据传输,总共5个RTT,也就是50ms。
三、文件传送协议FTP
是因特网上使用最为广泛的文件传输协议。提供交互式访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。
1.FTP工作原理
功能:
提供不同种类主机系统之间的文件传输能力(硬件软件体系均可以不同)
FTP协议可以屏蔽不同操作系统之间的差异性
注意!!!!:
采用客户/服务器工作方式,使用TCP的可靠传输服务。
FTP服务器的数据流程: 应用层-->传输层--->网络层--->数据链路层--->物理层
FTP服务器和客户端都可以有一个或多个,一个FTP服务器或者说一个FTP服务器的进程可以同时为多个客户进程提供服务,FTP服务器的进程由1个唯一的主进程和n nn个从属进程两大部分组成。
主进程负责接收新的请求,工作时首先打开服务器实现文件传输的熟知端口21,端口打开后客户进程才可以成功连接。然后它只需要等待客户进程发出连接请求,新请求分配相应的从属进程处理,每一个从属进程都可以处理单个的客户请求。
2.控制连接与数据连接
控制进程和数据传送进程都属于从属进程,上图中并没有画出主进程
①控制连接
服务器监听21端口,等待客户连接,此端口上的连接称为控制连接。FTP客户发出的传送请求,通过控制连接发送给服务器端的控制进程。控制连接客户端和服务器端只要建立会话并且会话还未结束控制连接就会始终保持。
②数据连接
服务器端的控制进程会在接收到FTP客户端发来的文件传输请求之后创建数据传送进程并且创建数据连接,数据连接才是实际用于传送文件的连接,文件传输完毕之后就会关闭。端口为20。
控制连接和数据连接相互区分,因此FTP的控制信息带外传送
3.数据传输模式
①主动方式(PORT)
客户进程向服务器进程发出建立连接请求,寻找连接服务器进程的熟知端口21,同时告知自身进程的端口号用于建立数据连接。服务器端使用自身传送数据的熟知端口20与客户进程刚刚提供的端口号建立数据连接
何为主动?建立控制连接后服务器端会主动告知客户端自身的端口是20。
②被动方式(PASV)
前半部分相同,建立控制连接后客户端会向服务端请求一个端口号,服务器返回一个>1024的端口
四、电子邮件
电子邮件是一种异步通信的方式。
1.电子邮件系统的组成结构
注意!!!!!!!!:
用户代理--邮件服务器:STMP
邮件服务器--邮件服务器:STMP
邮件服务器--用户代理:POP3
①用户代理(UA)
用户和电子邮件系统的接口。含有撰写,显示,邮件处理的功能。
②邮件服务器
功能:发送与接收邮件,向发件人报告邮件的传送的情况(已交付,被拒绝,丢失)。
长时间运作。采用C/S方式,可同时充当服务器和客户。
相关协议(TCP协议):
SMTP:发送方主机 → \to→ 发送方邮件服务器、发送方邮件服务器 → \to→ 接收方邮件服务器
POP3、IMAP:接收方邮件服务器 → \to→ 接收方主机
都使用TCP连接
2. 电子邮件格式与MIME
①电子邮件格式
一个电子邮件分为信封和内容两部分,内容分为首部和主体两部分。
- 首部:包含一些首部行,每行由一个关键字和:后跟值。最重要的关键字式to与subject。
- to:必填关键字,后填收件人邮箱地址 收件人邮箱名@邮箱所在主机的域名
- subject:可选关键字,为邮件内容
- From:必填关键字,由邮件系统自动生成。
- 首部和主体之间有空行。
②多用途因特网邮件扩展(MIME)
SMTP的缺点:
- 不能传送可执行文件/二进制对象
- 仅限于传送7位ASCII码,不能传送非英语国家的文字
- 会拒绝超过一定长度的邮件
3.SMTP与POP3
①SMTP简单邮件传输协议
提供可靠且有效的电子邮件传输协议。
特点如下:
-
SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息。
-
负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器。
-
SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)。
-
建立在TCP连接之上,使用端口号25,C/S方式。
-
SMTP通信三个阶段:连接建立 → \to→ 邮件传送 → \to→ 连接释放
A表示SMTP客户端,B表示SMTP服务器端
②邮局协议POP3
接收端邮件服务器作为POP3服务器,接收方作为POP3客户
特点:
- TCP
- C/S
- 110端口
- 两种工作方式:下载并保存和下载并删除
下载并保存:用户从邮件服务器上读取邮件后,邮件依旧保存在邮件服务器上。
下载并删除:用户从邮件服务器上读取邮件后,邮件从邮件服务器上删除。
传输层中以明文形式传输 。基于ASCII码,不可以传输二进制数(MIME转化)。
③网际报文存取协议IMAP
同样是接收端邮件服务器到用户代理环节所使用的协议,IMAP协议比POP协议复杂,其为用户提供了创建文件,在不同文件之间移动邮件及远程文件夹中查询等联机命令。
IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分(先看正文,有WiFi的时候再下载附件)
基于万维网的电子邮件
五、万维网和HTTP协议
1.万维网概述
万维网内核的三个标准:
- 统一资源定位符(URL):每个文档在整个万维网的范围内的唯一标识符。
- 超文本传输协议(HTTP):一个应用层协议,使用TCP连接的可靠传输,是万维网客户程序和服务器程序之间所必须严格遵守的协议。
- 超文本标记语言(HTML):文档结构的标记语言,对页面上的各种信息(文字,图像,声音,视频),格式进行描述。
URL的格式: 协议类型://服务器地址[:端口]/路径。
2.超文本传输协议HTTP
HTTP协议定义了浏览器(万维网客户端进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
①HTTP的操作过程
每一个万维网的网点都会有对应的服务器进程,这个进程会不断监听TCP的80端口,当监听到连接请求后便与浏览器建立TCP连接。
访问web的顺序:
用户要浏览一个界面,可以输入URL或者在界面上点击相关的超链接请求服务。一旦服务器监听到连接建立请求并且和客户之间建立好TCP连接之后,浏览器就可以开始向万维网服务器发出浏览界面的请求,也就是开始发送一个HTTP请求报文来请求相关的文档。
服务器收到请求报文后就会把请求的资源以文档的形式放入HTTP响应报文返回给客户端,最后就可以释放TCP连接并且在客户机的界面上显示。
②HTTP的特点
- 使用TCP作为传输层的协议,但本身是无连接的(通信双方在交换HTTP报文之前不需要建立HTTP)
- HTTP是无状态的:同一个客户第二次访问同一个服务器上的页面,服务器的响应与第一次被访问时相同(服务器不记得曾今访问过这个客户)
- 实际应用中使用cookie+数据库来跟踪用户活动。cookie原理:用户初次浏览某个使用cookie的网站,该网站服务器就会为该用户生成一个唯一的cookie识别码,并建立一个项目来记录用户访问该网站的各种信息。
- HTTP既可以使用非持续连接(HTTP/1.0),也可以使用持续连接(HTTP/1.1)。
非持久连接:
- 第一个RTT进行三次握手的前两部分
- 客户端在第二个RTT进行三次握手的第三部分(HTTP请求报文作为数据)
- 由于HTTP响应报文有长度,因此总时间为 2RTT+文档传输时间
如果万维网客户要再发送HTTP请求报文,需要重新建立TCP连接。(每个网页元素对象的传输都需要单独建立一个TCP连接)
持久连接:
持久连接同样要经过三次握手,但服务器发送响应后在一定时间内仍然保持连接。如果要再次发送新的请求报文就不需要重新建立TCP连接,直接在之前建立的连接基础上继续请求新的元素。
持续连接又分为非流水线和流水线。
- 非流水线:客户接收前一个响应后才能发出下一个请求。
- 流水线:客户可以连续发出对各个对象的请求,服务器可以响应这些请求。
上图右边为非流水线式,只有收到了响应后才能继续发送新的请求
如下图同时发送多个请求,服务器收到后依次返回相应的请求即为流水线式。客户访问所有的对象只需要花费大概一个RTT时间
③HTTP报文结构
具体例子:
GET方法请求读取URL所标识的信息
Host: www.test.edu.cn表示现在要请求的html存放在该域名
Connection指的是具体的连接方式,Close是非持续连接
Cookie: 123456说明用户的识别码是123456,存在该字段说明浏览器之前访问过www.test.edu.cn
状态码由3个数字构成,有5种类型,具体有33种。状态码和短语相结合说明响应报文的特点。常见状态码和短语的组合:202 Accepted、301 Moved Permanently(现在请求的网页转移到了新的地址,会在首部行当中标识location首部字段名,并把网页的新URL放到值当中指明新的定位)、404 Not Found
改题目较难,首先http请求与http建立tcp连接需要1.5个RTT,但是第三次握手的时可以传输数据,也就是可以传输页面请求,所以第三次握手到文件的传输为1个RTT,tcp除去第三次握手是1个RTT;接着获取图像文件,首先图像文件窗口大小为2(之前传输文件a时为1),只能传输2MSS,还剩1MSS,传输一次之后窗口大小变为了4(拥塞控制中)第二次传输直接可以将图像文件传输完,所以传输图像文件一共是2个RTT。总共就是4个RTT。