应用层协议分类 1.依赖于 TCP 协议的应用层协议 Telnet HTTP SMTP POP3 FTP 2.依赖于无连接的 UDP 协议的应用层协议 SNMP TFTP RPC 3.既依赖于 TCP 也依赖于 UDP 协议的应用层协议 DNS 4. 非标准化协议 传输层向上提供可靠的和不可靠的逻辑通信信道 网络环境中一个进程的全网惟一的标识需要一个三元组来表示:协议,本地地址,本地端口号。 WWW 服务的核心技术是: 1.超文本标记语言 HTML; 2.超文本传输协议 HTTP。 在操作系统术语中,进行通信的实际上是进程而不是程序。 不同端系统上的进程通过跨越计算机网络交换报文而进行通信。 在给定的一对进程之间的通信会话中,发起通信的进程被表示为客户机,在会话开始时等待联系的进程是服务器。 进程通过一个称为套接字的软件接口在网络上发送和接收报文。 TCP 服务模型包括面向连接服务和可靠数据传输服务。 TCP 连接是全双工的。 UDP 服务是一种不提供不必要服务的轻量级传输层协议。 UDP 是无连接的,两个进程通信前没有握手的过程。 UDP 协议提供的是不可靠数据传输服务。 在因特网中,主机是用 IP 地址进行标识的。 HTTP 协议是基于请求/响应方式的(客户机/服务器) 。 基于 HTTP 协议的客户/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。 HTTP 是超文本传输协议。 每个 URL 地址由两部分组成:存放对象的的服务器主机和对象的路径名。 HTTP 使用 TCP 作为它的支撑传输层协议。 HTTP 是一个无状态协议,不保存关于客户机的任何信息。 非持久连接和持久连接的区别:是否基于相同 TCP 承载。 默认下,HTTP 使用持久连接。 HTTP 请求报文:
第一行叫做请求行,其后继的行叫做首部行。 请求行有 3 个字段:方法字段、URL 字段和 HTTP 协议版本字段。 方法字段可以取值 GET、POST、HEAD、PUT、DELETE。 首部行 Host:www.some.school.edu 定义了目标所在的主机。 通过包含 Connection:close 首部行,浏览器告诉服务器不希望麻烦的使用持久连接。 User-agent:首部行用来定义用户代理。 使用 GET 方法时,实体为空,而使用 POST 方法时才使用。 HTTP 响应报文
响应报文分为 3 部分:一个初始状态行、6 个首部行,然后是实体主体 Date 首部行指示服务器产生并发送该响应报文的日期和时间。 Server:首部行表明该报文是由一个 apache web 服务器产生的。 Last-Modified:首部行指示了对象创建或者最后修改日期和时间。 Content-Length:首部行表明了被发送对象的字节数。 Content-Type:首部行指示了实体主体中的对象是 HTML 文本。 用户与服务器的交互:cookie Cookie 的 4 个组成部分: 1. 在 HTTP 响应报文中有一个 Cookie 首部行 2. 在 HTTP 请求报文中有一个 Cookie 首部行 3. 在用户端系统中保留一个 cookie 文件,由用户浏览器管理 4. 在 web 站点有一个后端数据库 Web 缓存 目的:满足客户端请求而无需烦扰原始服务器。 Web 缓存器既是服务器又是客户机。 连接的建立是通过申请套接字(Socket)实现的。 http 响应状态码和短语 1.200 OK 请求成功, 被请求的对象在报文中 2.301 Moved Permanently 被请求的对象被移动过, 新的位置在报文中有说明 (Location:) 3.400 Bad Request 服务器不懂请求报文 4.404 Not Found 服务器上找不到请求的对象 5.505 HTTP Version Not Supported 条件 GET 方法 1. 请求报文使用 GET 方法 2. 请求报文中包含一个 If-modified-since:首部行,那么这个 Http 请求报文就是一个条件GET 请求报文。 文件传输协议 FTP 1.2 个连接、2 个端口号、2 个进程 2 个连接:控制连接、数据连接 2 个端口号:熟知端口号 20、21 2 个进程:一个主进程,一个从属进程 2.一个 FTP 服务器进程可以同时为多个客户进程提供服务,基于 TCP。 两个不同的连接 FTP 使用两个并行的 TCP 连接来传输文件,一个是控制连接,一个是数据连接。 FTP 协议使用一个分离的控制连接,所以也称 FTP 的控制信息是带外传送的。 FTP 协议是在传输文件的 TCP 连接中发送请求和响应首部行的,故 HTTP 也可以说是带内发送控制信息的。 两个不同的端口号 1.当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。接着,服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。 2.由于 FTP 使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。 3.使用两个独立的连接的主要好处是:使协议更加简单和更容易实现。在传输文件时还可以利用控制连接(例如,客户发送请求终止传输)。 FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求,另一个是从属进程,负责处理单个请求。 电子邮件系统的 3 个主要组成部分: 1、 用户代理(UA) 2、 邮件服务器(MS,核心组成,Both C 与 S) 3、 简单邮件传输协议(SMTP) SMTP 基于 TCP。 SMTP 客户机在 25 号端口建立一个到 SMTP 服务器的连接 SMTP 通信的三个过程 1. 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。 SMTP 不使用中间的邮件服务器。 2. 邮件传送 3. 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。 HTTP 和 SMTP 都使用持久连接。 HTTP 是一个拉协议。 SMTP 是一个推协议。 MIME:多用途因特网邮件扩展。 支持多媒体的两个关键 MIME 的首部是 Content-Type 和 Content-Transfer-Encooding(编码方式)。 域名系统 DNS 1.一个由分层的 DNS 服务器实现的分布式数据库 2.一个允许主机查询分布式数据库的应用层协议。 DNS 协议运行在 UDP 之上,使用 53 号端口。 DNS 的特点 1. 分布式、层次数据库 三种类型的 DNS 服务器:根服务器、顶级域服务器、权威服务器。 本地 DNS 服务器。 递归查询和迭代查询。 (从请求主机到本地本地 DNS 服务器的查询是递归的,其余的查询时迭代的)。 2. DNS 缓存