【计算机网络 | 第六章】应用层 前言应用层离用户最近。网页浏览、发邮件、传文件、用域名访问网站看起来是不同的事情背后却都要由应用层协议规定通信双方如何组织报文、交换信息。一、网络应用的两种服务方式应用程序要通过网络协作常见的组织方式有客户/服务器方式和对等方式。1. 客户/服务器方式C/SClient/Server方式中客户是服务请求者服务器是服务提供者。服务器通常长期运行集中保存资源或处理业务客户在需要时向服务器发起请求再接收处理结果。万维网、电子邮件、文件传输等应用都常采用这种方式。例如浏览器向 Web 服务器请求网页邮件客户端向邮件服务器提交或读取邮件。服务集中后权限控制、数据维护和备份更容易统一处理但服务器也需要承担并发访问带来的压力。2. 对等方式P2PPeer-to-Peer方式没有固定的服务请求者和服务提供者参与通信的主机地位对等既可以请求资源也可以向其他主机提供资源。这种方式适合资源分散、节点数量可能不断变化的场景。随着节点增加系统可获得更多可用资源部署成本也相对较低同时节点上下线频繁、资源位置不固定会让查找、管理和安全控制更复杂。选择哪种方式取决于应用是否需要集中管理、服务是否稳定以及资源能否由大量普通节点共同提供。二、DHCP主机接入网络后怎样获得配置一台新接入网络的主机要正常通信至少需要知道自己的 IP 地址、子网掩码、默认网关以及 DNS 服务器地址。手动填写这些参数容易出错也不适合大量终端频繁接入的网络。DHCP动态主机配置协议用于自动配置主机的各类网络参数。主机连接网络后可以通过 DHCP 服务器申请配置服务器根据地址池和既定策略分配可用地址并把必要的配置信息一并交给主机。从通信目标看刚接入网络的主机往往还没有可用 IP 地址也不一定知道 DHCP 服务器在哪里因此最初的交互需要借助广播。DHCP 的典型过程可以概括为四步主机广播请求寻找可用的 DHCP 服务器。DHCP 服务器给出可分配的地址和相关配置。主机从候选配置中选择一个并通知服务器自己的选择。服务器确认分配结果主机据此完成网络配置。DHCP 分配的地址一般带有租期。租期尚未结束前主机可以申请续租当主机离开网络或不再续租时地址可重新回到地址池供其他终端使用。这个机制让有限的 IPv4 地址可以被更高效地复用。排查“已连接网络却无法访问网站”时DHCP 配置是一个基础入口先确认主机是否获得了有效 IP 地址和默认网关再检查 DNS 服务器地址是否正确。若这些参数缺失或落在错误网段后续协议即使本身没有问题也无法正常工作。三、DNS域名如何找到对应的 IP 地址用户习惯记住域名例如网站名称网络转发依赖的却是 IP 地址。DNS域名系统的任务就是完成这种映射让人可读的域名能够被解析为可用于通信的地址。1. 分层域名结构域名采用层次结构。常见的顶级域名包括国家顶级域名如 cn、us、uk通用顶级域名如 com、net、org、edu、gov、mil反向域 arpa用于反向域名解析。在顶级域名之下还可以继续划分二级、三级和四级域名。层次化的设计把全局命名空间拆分给不同管理范围避免所有域名信息都集中在一台服务器上。2. 四类域名服务器DNS 的分层管理依赖不同角色的域名服务器。根域名服务器通常不直接给出最终的域名解析结果它会告诉查询者应该去找哪个顶级域名服务器。顶级域名服务器管理该顶级域名下注册的二级域名权限域名服务器负责某个区中的具体域名记录本地域名服务器则直接面向用户主机起到代理和缓存入口的作用。当主机要解析一个域名时通常先把请求交给本地域名服务器。本地域名服务器若没有缓存结果就会沿着“根域名服务器 → 顶级域名服务器 → 权限域名服务器”的层次继续查询直到得到对应的 IP 地址。3. 递归查询与迭代查询DNS 查询常见递归查询和迭代查询两种方式。递归查询中被询问的服务器负责继续向其他服务器查询并把最终答案返回给请求方。迭代查询中服务器不替请求方完成全部查询而是返回下一步应该询问的服务器地址请求方再继续发起查询。可以把这两种方式理解为两种分工递归查询由被请求方承担后续查找工作迭代查询由查询方根据线索逐级查找。实际解析时本地域名服务器承担了重要的中转和缓存作用因此同一域名再次访问时往往不需要从根服务器重新开始。四、FTP文件传送为何要区分两类连接FTP文件传送协议用于在客户和服务器之间传送文件。它的一个特点是把命令控制和文件数据分开处理。控制连接负责传递登录、切换目录、上传、下载等命令数据连接负责传送真正的文件内容。这样设计后控制命令与大体积文件数据不会混在同一条通信通道中客户端可以在传送过程中继续保持对会话的控制。使用 FTP 时除了确认服务器地址、账号和文件路径也要关注网络设备是否允许相应的数据连接建立。若能连接服务器却无法列目录或无法传文件排查时应区分是认证失败、目录权限不足还是数据连接受到网络策略影响。五、电子邮件SMTP、POP3 与 MIME 的分工电子邮件涉及两个方向发送邮件和读取邮件。它们由不同协议分别处理。SMTP 用于发送邮件。邮件客户端把邮件提交给发送方邮件服务器邮件服务器再把邮件转交给接收方邮件服务器。SMTP 传送的基本内容以 ASCII 字符为主因此直接处理中文、图片、音频或附件会受到限制。MIME 的作用是对非 ASCII 内容进行转换和组织使邮件能够携带多种字符集、附件和多媒体内容。接收方按照 MIME 描述的信息还原邮件中的各个部分用户才能看到正常的中文正文和附件。POP3 用于读取邮件。客户端通过 POP3 从邮件服务器获取邮件内容。这样发送路径由 SMTP 完成读取路径由 POP3 完成MIME 则解决邮件内容类型和编码表示的问题。理解这三个协议的职责后排查邮件问题会更有方向发不出去优先检查 SMTP 配置和服务器连接收不到或客户端无法读取时检查 POP3 服务与账号状态乱码或附件异常则进一步查看 MIME 编码和客户端兼容性。六、HTTP 与 Cookie无状态访问怎样保留用户信息万维网服务主要使用 HTTP超文本传输协议。浏览器向 Web 服务器请求页面、图片或接口数据服务器返回相应资源构成最常见的 Web 访问过程。HTTP 本身是无状态的单独看每次请求服务器不会天然记住上一次请求来自谁、该用户是否已经登录或购物车中有什么内容。无状态特性让协议处理更简洁却不能直接满足登录状态、个性化设置等业务需要。Cookie 是让无状态 HTTP 具备状态记录能力的一种技术。服务器可以在响应中让浏览器保存一段 Cookie 信息浏览器在后续访问同一站点时再按规则携带它。服务器据此识别用户或关联会话从而完成登录保持、偏好记录等功能。Cookie 中不应直接保存敏感信息。实际应用中还需要设置合适的有效期、作用范围和安全属性并配合服务端会话管理避免把用户身份和权限完全暴露给客户端。七、总结应用层协议把底层网络能力组织成用户真正能使用的服务DHCP 解决主机接入后的自动配置DNS 解决名称到地址的查找FTP 完成文件传送SMTP、POP3 和 MIME 支撑电子邮件HTTP 与 Cookie 支撑 Web 访问及状态保持。学习这一章时可以先判断某个协议解决的具体问题再看它处在通信流程的哪一段、与相邻协议如何配合。这样更容易把分散的协议名称串成完整的网络应用过程。参考资料湖科大《计算机网络》第六章应用层学习内容