王道考研复习-计算机网络-应用层(六)
考纲:
- C/S,P2P
- DNS
- FTP
- E-mail(MIME,SMTP,POP3)
- WWW(HTTP)万维网概念与组成结构
网络应用模型-C/S
- 客户端/服务器模型(C/S)
- 服务器处于监听状态,需要持续运行
- 客户机发起请求,并等待接收结果
- 服务器收到请求后,分析请求,进行必要的逻辑处理,并将结果返回给客户机
- C/S特点
- 地位不平等,服务器通过权限限制客户机的增删该操作,来达到管理客户机,或进行其他受限活动
- 客户机之间不能直接通信
- 扩展性不佳,都是围绕服务器请求数据,受限于服务器硬件和网络带宽
网络应用模型-P2P
- 特点,优点
- 减少服务器压力,去中心化,可将任务分配到各个节点,平衡工作,如流媒体对,区块链技术等
- 多个客户机可以共享文档
- 可扩展性高
- 网络健壮,挂了一台,还有很多替补
- 缺点
- 在获取数据的同时,还要提供其他服务,占用较多流量,目前已占用50%~90%的流量,使得网络变得拥塞,各大ISP(互联网服务器供应商)通常对P2P应用持反对态度
## 域名系统-DNS
- 在获取数据的同时,还要提供其他服务,占用较多流量,目前已占用50%~90%的流量,使得网络变得拥塞,各大ISP(互联网服务器供应商)通常对P2P应用持反对态度
- Domain Name System,是因特网的命名系统,用于便于记忆主机
IP
地址 {三级域名}.{二级域名}.{顶级域名}
,反向表示,这也是应用程序包名和组织名也是参照此规则的原因- 域名正则校验
- 标号
(上面打括号的内容)
中的英文不区分大小写 - 标号中只支持一种字符
-
- 每个标好不能超过63个字符
- 从左到右,分别对应低级域名到高级域名
- 标号
- 顶级域名:国家顶级域名(nTLD),
.cn
,.us
,.uk
- 通用顶级域名(gTLD):常见的有
.com
(公司),.net
,.org
非营利组织 - 基础结构域名.只有一个
arpa
,通过ipfan反查域名(反向域名)
域名服务器
- 根域名服务器:
共13个
,知道所有顶级域名服务器的IP
地址,管理顶级域(如.com)
,并不直接把待出查询的IP
地址转换为域名,而是告诉本地域名服务器
下一步影单找哪个顶级域名服务器进行查询。 - 顶级域名服务器: 管理顶级域名服务器注册的所有二级域名,收到DNS查询请求时,就给出响应的回答(
可能是最后的结果,也有可能是下一步应当查找的域服务器的IP地址
) - 授权域名服务器(权限域名服务器): 每台足迹都必须在授权域名服务器处进行登记,为了更加可靠的工作,一台主机至少有两个授权域名服务器,实际上,许多域名服务器都同时充当本地域名服务器和授权域名服务器,授权域名服务器总能将其管辖的主机转换为主机的IP地址
- 本地域名服务器: 每个英特网的服务器提供者(IPS),都可以拥有一个本地域名服务器,当主机发出DNS查询请求时,这个查询请求报文就发送给主机的本地域名服务器。
域名解析过程
- 向本机域名服务器查询是递归查询
- 本机域名服务器向根域名服务器查询是迭代查询
- 访问
y.abc.com
过程- 客户机向本地域名服务器发出DNS请求报文
- 本地域名服务器接收到请求后,查询本地缓存,若没有该记录,则以DNS客户的身份向根域名服务器发出解析请求
- 根域名服务器收到请求后,判断是否属于
.com
域名,将对应的顶级域名服务器器地址dns.com
的IP
地址返回给本地域名服务器. - 本地域名服务器向顶级域名服务器
dns.com
发出解析请求报文 - 顶级域名服务器
dns.com
收到请求后,判断该域名属于abc.com
域,因此将对应的授权域名服务器dns.abc.com
的IP
地址返回给本地域名服务器。 - 本地域名服务器向
授权域名服务器 dns.abc.com
发起解析请求报文 - 授权域名服务器
dns.abc.com
收到请求后,将查询结果返回给本机域名服务器 - 本机域名服务器将查询结果保存到本地缓存,同时返回给客户机。
文件传输协议(FTP)
- File Transfer Protocol: 是因特网上使用最广泛的协议
FTP提供交互式的访问,允许客户指定文件类型和格式,并允许文件具有只读权限,屏蔽了计算机的细节实现,适合在异构网络中任意计算机之间传送文件.
- Mac上的FTP默认是关闭的
FTP功能:
- 提供不同主机(硬件系统可以不同),文件传输能力
- 以用户权限管理的方式提供对远程FTP服务器上的文件管理能力
- 以匿名的FTP的方式提供公共文件共享的能力
- FTP采用了C/S的工作方式,使用可靠的
TCP
传输服务 - 一个FTP服务器同时可以为多个客户进程提供服务
- FTP服务器由两大部分组成: 一个主进程,负责接收新的请求,另外有若干个从属进程,负责处理单个请求
- FTP采用了C/S的工作方式,使用可靠的
- FTP的工作步骤
- 打开21控制端口,使客户端能够访问
- 等待客户进程发送连接请求
- 启动从属进程等待客户进程发来的请求,主进程和从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。
- 回到等待状态,继续接受其他客户进程的请求
- FTP服务器必须在整个会话期间保留用户的状态信息,特别是服务器必须把指定的用户账户与控制联系起来,服务器追中用户在远程目录树上的当前位置。
FTP-控制连接:
- 服务器监听21号端口,等待客户连接,建立在这个端口上的连接称为控制连接,控制连接用户传输控制信息(如连接请求,传送请求等),
- 控制信息以7位的(ASCII)格式传送
- 客服发出的传送请求通过控制连接发送给服务器端的控制进程,控制连接并不用来传送文件.
- 在传输文件的时候还可以使用控制连接来终止文件传输命令,因此控制连接在整个回话期间一直保持打开状态. (类似一个父进程可以同时管理多个子进程)
FTP-数据连接:
- 服务器端端控制进程在接受到FTP客户发来的文件传输请求后,就创建
数据传送进程
和数据连接
, - 数据连接用来传送客户端和服务器端的数据传送进程
- 数据传送进程实际完成文件的传送,在传送完毕后关闭
数据传送连接
并结束运行 - FTP使用了一个分离的控制连接, 修改远程文件需要先下载再上传,在NFS文件系统下,允许复制远程文件小部分片段。
- 服务器端端控制进程在接受到FTP客户发来的文件传输请求后,就创建
电子邮件
- 概念: 电子邮件是因特网上一种一步通信的方式
- 由三部分组成
- 用户代理(User-Agent,UA),客户端邮件应用,用于和邮件服务器通信。
-邮件服务器,收发,通知
- 电子邮件使用的协议.(数据报的封装格式)
- 用户代理(User-Agent,UA),客户端邮件应用,用于和邮件服务器通信。
- 邮件的收发过程
- 发信人调用用户代理撰写邮件(邮件客户端软件),用户代理用
SMTP
把邮件传送给发送方的服务器 - 发送方将邮件放入到邮件缓存队列中,等待发送
- 运行发送方邮件服务器的SMTP客户进程,发现邮件缓存中有待发送的邮件,就向运行在接受方邮件服务器的SMTP服务器进程建立TCP连接。
- TCP连接建立以后,SMTP客户进程开始向远程
SMTP
服务器进程发送邮件,当所有待发送邮件发送完成后,SMTP关闭建立的TCP连接 - 运行在接收方邮件服务器的
SMTP
服务器接受到邮件后,将邮件放入收信人的用户邮箱,等待收信人在方便时读取. - 收信人打算收信时,调用用户代理,使用POP3(或IMAP)协议将自己的邮件从接收方邮件服务器的用户邮箱中取回.
- 发信人调用用户代理撰写邮件(邮件客户端软件),用户代理用
电子邮件格式与MIME
- 电子邮件报文
- 邮件扩充: 因为
SMTP
只能传送一定长度的ASCII
码,许多非英文国家地区的文字无法传送,也无法传送二进制,增加了MIME(Multipurpose Internet Mail Extension)
,定义了ASCII
码的编码规则,对护具进行封装和解封- 用户数据 <-> MIME转换 -> 7位ASCII码 -> SMTP -> SMTP -> MIME转换 <-> 用户数据
- MIME主要包括了下面3部分内容: MIME参考手册
- 5个新的邮件首步字段,
MIME-Version
,Content-Type
(内容描述),Message-Id
(内容标示),Content-Transfer-Encoding
内容编码和类型 - 定义了许多邮件内容的格式,对多媒体,电子邮件表示方法进行标准化
- 定义了传送编码,可对任意内容的格式进行转换,而不会被邮件系统改变
## SMTP协议
- 5个新的邮件首步字段,
- SMTP: (Simple Mail Transfer Protocol,进程端口25
- 连接建立:
- 发送邮件到服务器的邮件缓存后,
- SMTP每隔一段时间扫描,
- 如果发现邮件使用25端口与接收方邮件服务器建立TCP连接
- 连接建立后,接收方SMTP服务器发出220(Service ready)
- SMTP客户向SMTP服务器发送
HELLO
命令,并附上发送方主机名
- 邮件传送
- 邮件从
MAIL
命令开始,如MAIL FROM: xxx@xxx
, - 若SMTP服务器准备好接收,则回答`250·
- 接着
SMTP
客户端发送一个或多个RCPT
(recipient收件人),格式为RCPT TO: xxx@xxx
, 250成功,550无此用户 - 然后执行
DATA
命令,354成功.
- 邮件从
连接释放
- 发送完成后,SMTP客户发送
QUIT
命令, 221表示服务器关闭,同意释放TCP连接
- 发送完成后,SMTP客户发送
小结:
TCP Connected -> MAIL -> RCPT -> DATA -> QUIT -> TCP Disconnected
POP3协议
- Post Office Protocol,邮局协议,采用
Pull
的方式, C/S工作模式,工作在110端口 - 两种工作模式: 下载删除,下载保留(保留副本在服务器)
IMAP协议
- 报文存取协议,提供了创建文件夹功能,维护了用户会话状态信息
- IMAP4协议的特性
- IMAP4协议的默认端口:143
- IMAP4协议默认传输协议:TCP/IP
- IMAP4协议适用的网络构架:C/S
- IMAP4协议访问模式:离线/在线
- IMAP4协议存储邮件模式:分布式
- RFC3501定义
万维网
- World Wide Web, WWW, 是一个资料空间,这些资源通过
URL
标识,这些资源通过超文本传输协议(HTTP)传送给使用者,也可以单击访问获取资源. - 由三部分组成:
- URL: 负责标示各种文档,使得每个文档在万维网的范围内具有唯一的标示符URL
- HTTP: 使用TCP进行可靠传输,是万维网客户程序和服务器程序之间交互所必须严格遵守的协议
- HTML: 超文本白㷣集语言,一种文档结构的标记语言,它使用一些约定的标记对页面上的各种信息(包括文字,声音,图像,视频等)格式进行描述
## HTTP协议
- 定义了万维网客户进程(浏览器)怎样访问万维网服务器请求万维网文档,以及服务器怎样把文档传给浏览器,默认端口
80
- HTTP的操作过程,以单击鼠标为例
- 浏览器分析连接指向页面URL
- 浏览器DNS请求解析URL中域名的IP地址
- 域名系统DNS解析出服务器的地址
- 浏览器与该服务器建立TCP连接(默认端口80)
- 浏览器发出
HTTP
请求:GET /xxx/xxx.html
- 服务器通过
HTTP
响应吧文件index.html
发送给浏览器 - TCP连接释放
- 浏览器解析
index.html
,并将Web
页显示给用户
HTTP特点
- 无状态,不同时刻访问服务器处理方式一样
Cookie机制,记录用户信息,下次请求时附加到HTTP请求报文中,服务器可以搜集用户行为和信息
HTTP支持持久连接和非持久连接
持久连接又分非流水和流水线,HTTP/1.1 默认采用流水线持久连接
- 在流水线连接下,客户端每遇到一个对象引用就立即发出一个请求,因此客户可以逐个连续发出对各个引用对象的请求,如果所有的请求和响应都是连续的发送的,那么所有引用对象共经历1个
RTT
延迟,而不是像非流水线那样每个引用都必须有1个RTT延迟(Round trip time)
- 在流水线连接下,客户端每遇到一个对象引用就立即发出一个请求,因此客户可以逐个连续发出对各个引用对象的请求,如果所有的请求和响应都是连续的发送的,那么所有引用对象共经历1个
HTTP的报文结构
- HTTP是面向文本的
- 报文格式
参考
- 发展阶段:
- 0.9: 信息简介,仅限文字,
- 1.0: 每一次请求/响应建立并拆除一次连接
- 1.1: rfc2616
- 2.0: RFC 7540