应用层的概述
网络应用位于计算机网络体系结构的最上层,是设计和建立计算机网络的最终目的。随着技术的发展,网络应用已成为我们生活中不可或缺的一部分。从早期的电子邮件、远程登录到如今的社交软件、P2P文件共享和网络音频/视频软件,网络应用层出不穷,影响着人类的工作、生活、文化、经济等方方面面。
计算设备的日益小型化和“无处不在” ,宽带住宅接入和无线接入的迅速发展,为未来更多的新型应用提供了广阔的舞台。虽然我们无法一一讨论所有的网络应用,但通过一些经典的例子可以深入了解其原理、协议和实现方法。
网络应用程序的体系结构
网络应用程序运行在网络中不同的端系统上,通过彼此间的通信来共同完成某项任务。当前流行的网络应用程序体系结构主要有两种:客户/服务器体系结构和对等体系结构。
客户/服务器体系结构
客户/服务器(Client/Server,C/S)体系结构包括一个总是运行着的服务器程序和许多有时运行的客户程序。客户进程通过网络向服务器进程请求服务,服务器进程则响应这些请求,提供服务。客户进程相互之间不直接通信。图6-1展示了客户/服务器体系结构。
服务器进程总是处于运行状态,等待客户进程的服务请求。服务器进程具有固定的端口号,而运行服务器程序的主机也具有固定的IP地址。C/S体系结构是互联网上传统且成熟的结构,如万维网、电子邮件、文件传输等应用均采用此结构。
对等体系结构(P2P)
在对等(Peer-to-Peer,P2P)体系结构中,没有固定的服务请求者和服务提供者,分布在网络中的应用进程是对等的。每个对等方既是服务的请求者,又是服务的提供者。图6-2展示了P2P体系结构。
P2P体系结构的最大特点是可扩缩性。系统每增加一个对等方,不仅增加了服务的请求者,同时也增加了服务的提供者。P2P体系结构还具有成本优势,因为它通常不需要庞大的服务器设施和服务器带宽。
应用层协议
应用层协议是定义应用进程间为实现特定应用而互相通信的规则。不同的网络应用需要不同的通信规则,因此在运输层协议之上需要应用层协议。具体来说,应用层协议定义了以下规则:
- 交换的报文类型,如请求报文和响应报文。
- 各种报文类型的语法,如报文中的各个字段及其详细描述。
- 字段的语义,即包含在字段中的信息的含义。
- 进程何时、如何发送报文及对报文进行响应的规则。
选择运输层协议
运输层向应用层提供端到端通信服务,应用层协议的报文需要利用运输层协议提供的通信服务来传输。互联网的运输层有两个主要的协议:TCP和UDP。
TCP提供面向连接的可靠数据传输服务,并实现了流量控制和拥塞控制;而UDP提供的是无连接的不可靠报文传送服务。表6-1列出了一些流行的互联网应用所使用的运输层协议:
应用 | 应用层协议 | 运输层协议 |
---|---|---|
电子邮件 | SMTP | TCP |
远程终端访问 | TELNET | TCP |
万维网 | HTTP | TCP |
文件传输 | FTP | TCP |
IP电话 | 专用协议 | 通常用UDP |
流式多媒体通信 | 专用协议 | UDP或TCP |
小结
网络应用层是计算机网络中发展最快的部分。通过了解客户/服务器和P2P两种主要的网络应用体系结构,以及应用层协议和运输层协议的基本知识,可以帮助初学者更好地理解和开发网络应用。希望本文能为基础小白提供一个清晰、简洁的入门指南。如果你对某些具体应用感兴趣,可以深入学习相关的协议和技术。未来,随着技术的不断进步,网络应用将会带来更多的创新和改变。
图文来源:《计算机网络教程》第六版微课版