Skip to content

应用层

网络应用是计算机网络存在的理由。研发网络应用程序的核心是写出能够运行在不同的端系统和通过网络彼此通信的程序。程序可以由 C/Java/Python 等各种语言编写,并且开发人员并不需要关系它们是如何在网路设备(路由器、链路层交换机等)之间如何通信的,这也就是分层的意义。

网络应用程序体系结构

不同与网络的 5 层结构,应用层的应用程序也有自己自己的体系结构,该体系结构规定了如何在各种端系统上组织该应用程序。目前有两大主流的体系结构:

  • 客户端-服务器体系结构(C/S): 在这个体系结构中,端系统分为客户端和服务器两个角色,其中服务器为许多其他客户端提供服务器,响应服务器的请求。而客户端发送请求并收到服务器的响应,这种体系结构下有两个核心特性
    • 客户端之间彼此不能通信
    • 服务器必须存在一个固定的众所周知的地址(IP 地址),其他客户端能够通过发送请求到该地址来与服务器进行通信
  • 对等体系结构(P2P): 在这种体系结构中,所有的端系统都是对等方,著名的就是 BT、网络电话等都是 P2P 结构

Tips

某些应用还会混合这两种架构,或者说并不存在完美的 P2P 架构。即使 BT 下载也需要一个中间服务器来存储原始源的 IP 地址。P2P 技术能够极大的缓解服务器压力。

进程通信