计算机网络基础:应用层
网络应用模型
客户/服务器模型
工作流程:
- 服务器处于接收请求的状态
- 客户机发出请求,并等待结果
- 服务器收到请求后,将处理的结果发送给客户机
常见应用:Web、FTP、TELNET、EMAIL
特点:
- 网络中各计算机地位不平等(客户与服务器)
- 客户机之间不能直接通信
- 可扩展性不佳(受服务器限制)
P2P 模型
没有固定的客户和服务器的划分,任意一对计算机称为对等方(Peer)
常见应用:PPlive、Bittorrent、电驴
DNS(Domain Name System,域名系统)
运行于 UDP 协议之上,用于将主机名转化为 IP 地址,采用客户/服务器模型
层次域名空间
- cn 为顶级域名
- microven 为二级域名
- www 为三级域名
域名服务器
一个域名服务器所管辖的范围叫做区,一个区中的所有节点必须是连通的,每个区设置相应的权限域名服务器,用来保存域名到 IP 的映射
以层次方式组织,有四种类型:
-
根域名服务器:任何一个域名本地服务器无法解析,首先求助根域名服务器。不直接转换为 IP 地址,而是告知本地域名服务器下一步应当找哪个顶级域名服务器进行查询
a.rootservers.net ~ b.rootservers.net 共 13 套,每一套都由多个地区的多台服务器组成。
-
顶级域名服务器:管理在顶级域名服务器注册的所有二级域名,可能直接给结果也可能给其它域名服务器的地址
-
权限域名服务器:负责一个区的域名服务器,当它不能解答时,会告诉请求方需要查找哪个域名服务器
-
本地域名服务器:首先接受 DNS 查询请求,有时也称为默认域名服务器
可靠性:DNS 域名服务器都会把数据进行备份。即存在 主域名服务器 和 辅助域名服务器,当主域名服务器出现故障时,DNS 不会中断。若主域名服务器没有故障,则修改只能在主域名服务器进行。保证数据的一致性。
域名解析过程
- 主机向本地域名服务器递归查询。若本地域名服务器不知道,则本地服务器以 DNS 客户的身份,向根域名服务器发出查询请求报文。
- 本地域名服务器向根域名服务器查询采用 迭代查询。即本地域名服务器获得下一个域名服务器的 IP 地址后再次发动查询,而非交由根域名服务器去查询。
- 每个域名服务器都维护一个高速缓存
FTP
文件传送协议 FTP
- 交互式访问,允许客户指明文件类型与格式,允许文件具有存取权限
- 屏蔽了计算机系统的细节,适合在异构网络任意计算机中传送文件
- 基于 TCP 协议
主进程:用于接收连接
从属进程:用于处理客户进程发来的请求
控制链接:21 端口,用于传输控制信息,保持打开状态
数据链接:控制链接收到文件传输请求即打开数据链接,在传输完毕后结束
- PORT 模式:客户开放端口并告知服务器,由服务器的 20 端口与客户开放端口连接
- PASV 模式:服务器开放随机端口,客户机与服务器端口连接
TELNET
远程终端协议。
用于远程终端控制,传输用户输入与目标终端的输出。
和 FTP 的情况相似,服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接。
WWW 万维网
- 分布式、联机式的信息存储空间,这些信息被称为“资源”,由全域“统一资源定位符”(URL)标识,这些资源通过 HTTP 协议传送给使用者
- 使用“链接”的方法方便地从一个站点访问另一个站点
内核的组成部分:
- URL
- HTTP
- HTML
模型:客户/服务器模型
-
浏览器:位于用户计算机的客户程序
-
万维网服务器:万维网文档驻留的计算机
-
页面:浏览器显示万维网文档
代理服务器:互联网的高速缓存,最近的一些请求和响应暂存在本地磁盘中。当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去互联网访问该资源。
HTTP 协议
HTTP 协议是面向事务的应用层协议,规定了在浏览器和服务器之间的请求和响应的格式与规则
工作流程:
- 分析 URL
- DNS 请求解析
- 解析出 IP 地址
- 建立 TCP 连接
- 浏览器发出 HTTP 请求报文
- 服务器发出 HTTP 响应报文
- 释放 TCP 连接
- 浏览器解释 HTML
EMAIL 电子邮件
组成部分:
- 用户代理:用户与电子邮件系统的接口。撰写、显示、处理、通信
- 邮件服务器:用于发送和接收邮件,采用 CS 模式,同时作为客户和服务器
- 邮件发送协议和读取协议:SMTP(发送邮件,用户代理将邮件 PUSH 到邮件服务器)、POP3(接收文件,用户代理向邮件服务器发送请求 PULL 邮件)
多用途网络邮件扩充(MIME):扩展了邮件的主题结构,定义了传送非 ASCII 码的编码规则