概述
应用层对应用程序的通信提供服务。
应用层协议定义:
- 应用进程交换的报文类型,请求还是响应?
- 各种报文类型的语法,如报文中各个字段及其详细描述
- 字段的语义,即包含在字段中的信息的含义
- 进程何时、如何发送报文,以及对报文进行响应的规则
应用层的功能:
- 文件传输、访问和管理
- 电子邮件
- 虚拟终端
- 查询服务和远程作业登录
应用层重要协议:
- FTP:TCP 20 (数据流)、21 (命令流)
- SMTP:TCP 25
- POP3:TCP 110;IMAP:TCP 143
- HTTP:TCP 80
- DNS:UDP 53
网络应用模型
Client/Server
服务器:提供计算服务 的设备
- 永久提供服务
- 永久性访问地址/域名
客户机:请求计算服务 的设备
- 与服务器通信,使用服务器提供的服务
- 间歇性接入网络
- 可能使用动态IP
- 不与其他客户机直接通信
应用:Web,文件传输FTP,远程登录,电子邮件
P2P
- 不存在永远在线的服务器
- 每个主机既可以提供服务,也可以请求服务
- 任意端系统/节点之间可以 直接通讯
- 节点间歇性接入网络
- 节点可能改变IP地址
- 可扩展性好
- 网络健壮性强
DNS系统
使用 UDP (53),减少开销
域名
域名服务器
- 根域名服务器
- 权限域名服务器:负责一个区的域名服务器
- 本地域名服务器(端口号 53):当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器
域名解析过程
- 递归查询:交给其他域名服务器完成
- 迭代查询:全程由自己去完成
FTP
运行在两个端口:20、21
- 端口 20 用于在客户端和服务器之间 传输数据流
- 端口 21 用于 传输控制流,并且是命令通向FTP服务器的入口
数据传输的两种方式:ASCII、二进制
使用 TCP 实现可靠传输
服务器和用户端
FTP 是基于 C/S 模式的协议。
用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。
依照 FTP 协议提供服务,进行文件传送的计算机就是FTP服务器。
连接 FTP 服务器,遵循 FTP 协议与服务器传送文件的电脑就是 FTP 客户端。
工作原理
控制 连接(21) 始终保持,数据 连接保持 一会
是否使用 TCP 20 端口建立数据连接与传输模式有关:
- 主动 方式使用TCP 20端口
- 被动 方式 协商 决定(1024~5000)
主动被动是相对于服务器来说的,服务器是否是主动连接数据流
PORT模式(主动)
FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口(一个大于1024的端口)接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。
PASV模式(被动)
在建立控制通道的时候和PORT模式类似,当客户端通过这个通道发送PASV命令的时候,FTP Server打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP Server 将通过这个端口进行数据的传送,这个时候FTP Server不再需要建立一个新的和客户端之间的连接传送数据。
电子邮件
用户代理
用户代理提供用户阅读、保存、回复、转发、编写、发送和删除邮件消息等功能。
邮件服务器
邮件服务器构成了电子邮件系统的核心。
每个收信人都有一个位于某个邮件服务器上的邮箱。
功能:发送&接收邮件;向发件人报告邮件传送状态
SMTP
SMTP (Simple Mail Transfer Protocol) 规定了两个互相通信的 SMTP进程 之间应如何交换信息。
SMTP 限制所有邮件消息的信体 必须是简单的7位ASCII字符格式。
使用 TCP,端口号为 25,是 C/S 模式
共发送了5个命令:
- HELO 表示发信人自己的身份
- MAIL FROM 表示请求发送邮件,初始化邮件传输
- RCPT TO 标识某电子邮件的计划接收人
- DATA 表示所有的邮件接收人已标识,并初始化数据传输
- QUIT 表示退出邮件发送过程,结束会话
MIME
使电子邮件系统可以支持声音、图像、视频、多种国家语言。
- 使用BASE64编码:用于转换成某种可接受的7位ASCII格式的编码技术之一。
邮件信息格式
RFC 822 详细说明了各个邮件消息头部的格式和含义。
邮件消息的每个头部都是直观可读的文本,由一个后跟冒号的关键字和相应的值构成。
- 有些头部是必须的,有些则是可选的
- 每个信头必须有一个 From: 头部和一个 To: 头部
- 可以有一个 Subject: 头部和其他头部
邮件访问协议
POP3:TCP 连接,端口号 110,C/S。下载并保留;下载并删除
IMAP:允许用户像对待本地邮箱那样操纵远程邮箱
- 这两个协议使用 内拉操作获取邮件消息,而 SMTP 是一个 外推 协议。
HTTP邮件
使用提供这种服务的服务器时,用户代理是普通的web浏览器,用户与邮件服务器主机上的邮箱之间的交互由HTTP协议完成。
邮件消息的 内拉、外推都是由HTTP协议 完成的。
邮件消息在邮件服务器主机之间的 中转仍然通过SMTP协议。
万维网
WWW(World Wide Web),是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合。
万维网以 C/S模式 工作,用户使用的浏览器就是万维网客户程序,万维网文档所驻留的主机运行服务器程序。
-
统一资源标识符 URI:唯一标识了资源
-
统一资源定位符 URL:URI的子集,通过定位来标识资源
- URL一般形式:<协议>://<主机>:<端口>/<路径>(不区分大小写)
-
用户通过点击超链接(HyperLink)获取资源,这些资源通过 超文本传输协议(HTTP) 传送给使用者。
-
超文本标记语言HTML:定义超文本文档的结构和格式
HTTP
HTTP定义了浏览器(客户)怎么向万维网服务器请求万维网文档,以及服务器怎么把文档传送给浏览器。
HTTP特点
HTTP协议是无状态的。
Cookie 是存储在用户主机的 文本文件,记录一段时间内某用户的访问记录——提供个性化服务。
- Cookie 用于万维网站识别用户
HTTP采用 TCP 80 作为传输层协议,但是 HTTP本身是无连接的(通信双方在交换HTTP报文之前,不需要先建立HTTP连接)
HTTP方法
HTTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URI指定的资源的不同操作方式。
HTTP 服务器至少应该实现 GET 和 HEAD 方法,其他方法都是可选的。
- HEAD:向服务器索要与 GET 请求相一致的响应,只不过响应体将不会被返回
- GET:向特定的资源发出请求
安全超文本协议
HTTPS URI 方案和 HTTP 1.1 请求头
- 由于浏览器对后者几乎没有任何支持,因此 HTTPS URI 方案仍是创建安全超文本协议连接的主要手段
- 安全超文本连接协议使用 https:// 代替 http://
HTTP 1.1
- 持久连接被默认采用
- 支持以管道方式在同时发送多个请求,以便降低线路负载,提高传输速度
- 一个连接可被多个请求重复利用的保持连接
- HTTP1.1 相比较于 HTTP/1.0 协议的区别主要体现在:缓存处理、带宽优化及网络连接的使用、错误通知的管理、消息在网络中的发送、互联网地址的维护、安全性及完整性