第六章 应用层
应用层是网络体系结构中的最高层,也是直接面向用户和应用程序的一层。它通过使用传输层提供的服务,为各类网络应用定义了通信规则和交互协议,是计算机网络与实际应用之间的桥梁。
一、 应用层概述
- 核心功能:为应用程序提供网络通信服务,定义应用程序进程间通信和交互的规则。
- 核心概念:
- 应用层协议:定义了运行在不同端系统上的应用程序进程如何相互传递报文,包括报文类型、语法、语义、时序等。
- 客户端/服务器(C/S)模式与对等(P2P)模式:两种主流的应用体系结构。
二、 主要应用层协议与服务
- 域名系统(DNS)
- 功能:将人们易于记忆的域名(如www.example.com)解析为机器用于路由的IP地址。
- 工作原理:采用分布式、层次化的数据库系统,包含根域名服务器、顶级域名服务器、权威域名服务器和本地域名服务器。查询方式主要有递归查询和迭代查询。
- 资源记录:存储在DNS服务器中的数据单元,核心记录类型包括A记录(IPv4地址)、AAAA记录(IPv6地址)、CNAME记录(别名)、MX记录(邮件服务器)等。
- 万维网(WWW)与超文本传输协议(HTTP)
- 核心组件:Web页面(由对象组成,如HTML文件、图片等)、Web浏览器(客户端)、Web服务器。
- HTTP协议:无状态的应用层协议,用于传输超文本。
- 非持久连接与持久连接:HTTP/1.0默认非持久,HTTP/1.1默认持久。
- 报文结构:请求报文(请求行、首部行、实体体)和响应报文(状态行、首部行、实体体)。
- 方法:GET、POST、HEAD、PUT、DELETE等。
- 状态码:如200 OK、404 Not Found、500 Internal Server Error。
- Cookie与Session:用于跟踪用户状态、管理会话的机制。
- 电子邮件系统
- 三大核心组件:用户代理(如Outlook)、邮件服务器、邮件传输协议。
- 简单邮件传输协议(SMTP):用于从发送方邮件服务器到接收方邮件服务器的“推送”邮件,使用TCP端口25,采用ASCII码命令/响应交互。
- 邮局协议第三版(POP3)和互联网邮件访问协议(IMAP):用于用户代理从邮件服务器“拉取”邮件到本地。POP3简单,邮件下载后通常从服务器删除;IMAP更复杂,允许在服务器上管理邮件文件夹。
- 多用途互联网邮件扩展(MIME):扩展SMTP,支持非ASCII文本、多媒体附件等。
- 文件传输协议(FTP)
- 控制连接(端口21):在会话期间始终保持,用于传输命令和响应。
- 数据连接(端口20):用于传输每个文件,传输完毕后关闭。
- 模式:主动模式(服务器主动连接客户端数据端口)和被动模式(服务器被动等待客户端连接其数据端口)。
- 动态主机配置协议(DHCP)
- 功能:为主机动态分配IP地址及其他网络配置参数(如子网掩码、默认网关、DNS服务器)。
- 工作过程(四个主要报文):DHCP发现(广播)、DHCP提供、DHCP请求、DHCP确认。
- 终端网络(TELNET)与安全外壳协议(SSH)
- TELNET:提供远程登录服务的协议,使用TCP端口23,但传输内容(包括密码)未加密,安全性差。
- SSH:用于安全远程登录和其他安全网络服务的协议,加密所有传输数据,替代TELNET。
三、 应用层协议传输层支撑
- 可靠数据传输、面向连接:通常使用TCP(如HTTP、SMTP、FTP控制连接、POP3、IMAP、SSH)。
- 实时性要求高、能容忍部分丢失:通常使用UDP(如DNS查询、流媒体、实时语音视频、DHCP)。
四、 P2P应用架构简介
- 特点:没有永远在线的服务器,任意端系统(对等方)之间直接通信,每个节点既是客户端也是服务器,具有自扩展性。
- 应用实例:文件分发(如BitTorrent)、流媒体、即时通讯等。
- 核心挑战:如何高效地定位所需资源。常用方法:集中式目录(如早期Napster)、查询洪泛(如Gnutella)、分布式散列表(DHT,如BitTorrent的Trackerless模式)。
五、 套接字编程接口(Socket API)
- 作用:应用层与传输层之间的编程接口,是应用程序使用网络协议的入口。
- 核心操作:创建套接字、绑定地址和端口、建立连接(TCP)、监听连接(TCP服务器)、发送/接收数据、关闭连接。
应用层协议是网络应用的灵魂,它们基于底层网络通信设施,定义了丰富多彩的网络服务如何实现。理解不同协议的设计目标、工作原理、报文格式和交互过程,是掌握计算机网络应用技术的关键。