1. 在本章中,我们研究了网络应用程序的概念和实现方面。 我们已经了解了许多 Internet 应用程序采用的无处不在的客户端 - 服务器架构,并看到了它在 HTTPSMTP DNS 协议中的使用。 我们已经详细研究了这些重要的应用程序级协议(application-level protocols)以及它们相应的相关应用程序(Web、文件传输、电子邮件和 DNS)。 我们已经了解了 P2P 架构并将其与客户端-服务器架构进行了对比。 我们还了解了流媒体视频,以及现代视频分发系统如何利用 CDN 我们已经研究了如何使用套接字 API 来构建网络应用程序。 我们已经了解了套接字在面向连接 (TCP) 和无连接 (UDP) 端到端传输服务中的使用。 我们的分层网络架构之旅的第一步现已完成!<br />在本书最开始的 1.1 节中,我们给出了一个相当模糊的协议定义:“在两个或多个通信实体之间交换消息的格式和顺序,以及在消息或其他事件的传输和/或接收上所采取的操作。” 本章中的材料,尤其是我们对 HTTPSMTP DNS 协议的详细研究,现已为该定义添加了大量内容。 协议是网络中的一个关键概念; 我们对应用程序协议的研究现在让我们有机会更直观地了解协议的全部内容。<br />在 2.1 节中,我们描述了 TCP UDP 为调用它们的应用程序提供的服务模型(service models)。 当我们在 2.7 节中开发运行在 TCP UDP 上的简单应用程序时,我们更仔细地研究了这些服务模型。 然而,我们很少谈到 TCP UDP 如何提供这些服务模型。 例如,我们知道 TCP 提供可靠的数据服务,但我们还没有说它是如何做到的。 在下一章中,我们不仅会仔细研究传输协议(transport protocols)的内容,还会仔细研究传输协议的方式和原因。<br />掌握了 Internet 应用程序结构和应用程序级协议的知识后,我们现在准备进一步深入协议栈并检查第 3 章中的传输层。