网络应用与服务
网络应用与服务是在网络边缘运行并为用户提供价值的程序和协议——从网络和电子邮件到域名系统和内容分发网络——它们都建立在底层的传输服务之上。
用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
Learn & explore
视频即将推出
Definition
应用层是协议栈的最顶层,网络应用进程在此根据应用特定协议交换消息;网络服务是这些应用所依赖的支持性基础设施,例如命名和内容交付。
Scope
此领域涵盖应用层及其支持基础设施服务:应用架构(客户端-服务器和对等网络)、核心应用协议(如HTTP、SMTP和FTP)、将人类可读名称映射到地址的域名系统、将内容复制到用户附近的内容分发网络,以及网络安全在通信系统中的应用概述。它不包括其所依赖的传输层机制,而是侧重于应用所暴露的服务及其所使用的协议。
Sub-topics
Core questions
- 网络应用是如何构建的——客户端-服务器与对等网络——以及它们之间的权衡是什么?
- HTTP和SMTP等核心应用协议如何定义消息格式和交互?
- 域名系统如何以可扩展、分布式的方式将名称转换为地址?
- 内容分发网络如何通过将内容复制到用户附近来减少延迟和负载?
- 网络应用必须提供哪些安全属性——机密性、完整性、认证——以及如何提供?
Key concepts
- 客户端-服务器架构
- 对等网络架构
- HTTP和万维网
- 电子邮件协议(SMTP, IMAP)
- 域名系统 (DNS)
- DNS缓存和层次结构
- 内容分发网络 (CDNs)
- 套接字和应用API
- 机密性、完整性和认证
- 传输层安全 (TLS)
Key theories
- 客户端-服务器和对等网络架构
- 应用组织方式要么围绕始终在线的服务器,由客户端联系,这种方式集中了管理但集中了负载;要么是对等系统,参与主机既请求也提供服务,这种方式随用户数量扩展但使管理和安全复杂化。
- 分层、分布式命名 (DNS)
- 域名系统通过委托的权威服务器层次结构和积极的缓存将名称解析为地址,提供了一个可扩展、有弹性的查找服务,没有任何单一组织能完全控制。
- 内容复制和分发
- 内容分发网络将内容的副本放置在靠近用户的服务器上,并将每个请求导向一个好的副本,从而减少延迟、源服务器负载和骨干网流量——这是大规模网络和流媒体服务表现良好的一个关键原因。
Clinical relevance
应用层是用户实际体验到的:网络、流媒体、消息传递和云服务都存在于此。DNS是几乎所有在线交互的关键依赖项,其中断会广泛级联。内容分发网络承载了大部分互联网流量,对于大规模交付视频和软件至关重要,而通过TLS实现的应用层安全则保护了日常通信的机密性和完整性。
History
早期的互联网应用是电子邮件和文件传输;由蒂姆·伯纳斯-李(Tim Berners-Lee)于1990年左右发明,包含HTTP和HTML的万维网,将互联网转变为大众媒体。域名系统(莫卡派垂斯,20世纪80年代中期)用可扩展的分布式目录取代了扁平的主机名文件。内容分发网络于20世纪90年代后期出现,以应对网络增长,应用层加密从SSL发展到TLS以保护通信安全。
Debates
- 集中式客户端-服务器云服务与去中心化对等系统
- 集中式云架构提供了可管理性和一致的性能,但集中了控制并创建了单点故障,而对等和去中心化设计则分散了负载和控制,但增加了复杂性;这种权衡在文件共享、内容交付和新兴的去中心化网络工作中反复出现。
Key figures
- Tim Berners-Lee
- Paul Mockapetris
- Roy Fielding
- Jon Postel
Related topics
Seminal works
- kurose2021
- rfc9110
- rfc1035
Frequently asked questions
- 域名系统有什么作用?
- DNS将诸如example.com这样的人类友好名称转换为网络层路由数据包所需的IP地址。它是一个分布式、分层的数据库,带有缓存,因此查找速度快,系统可以扩展到整个互联网,而无需任何单个服务器保存所有名称。
- 内容分发网络如何加速网络?
- CDN将内容的副本存储在全球各地分布的许多服务器上,并将每个用户的请求引导到附近的副本。这缩短了网络路径,减少了延迟和数据包丢失,同时还减轻了源服务器的负担并减少了长途流量,这些共同提高了速度和可靠性。