应用层协议——原理
应用层协议的实现,只需要写出能够运行在不同的端系统(服务器、手机、电脑等)和通过网络彼此通信的程序。因为网络核心设备(路由器、交换机等,不包括端系统设备)并不在应用层上起作用,只在网络层及下面层次起作用,所以不需要为网络核心设备写对应的应用程序,即开发应用程序的时候只需要考虑适配端系统,不需要考虑网络核心设备。
网络应用程序体系结构
目前主流的网络应用程序体系结构有两种:客户-服务器体系结构(client-server architecture)
和对等体系结构(P2P)
。
- 客户-服务器体系结构(client-server architecture):在
客户-服务器体系结构
中,至少有一个打开的主机,被称为服务器,它服务来自其他许多称为客户的主机的请求。web应用程序就是一个典型的例子,他总是有至少一个web服务器在运行来响应浏览器的请求。客户-服务器体系结构
的一个特征就是服务器具有固定且被知晓的IP地址。 - 对等体系结构(P2P):
P2P体系结构
对位于数据中心的专用服务器有最小的(或者没有)依赖。应用程序在间断连接的主机对
之间使用直接通信,这些主机对
被称为对等方
。这些对等方
并不为服务提供商所有,为用户控制的台式机、笔记本等所有。因为这种对等方
通信不必通过专门的服务器,该体系被称为对等方到对等方
。
进程通信
进程的定义
在操作系统中,进行通信的实际上是进程(process)
而不是程序。一个进程可以被认为是运行在端系统中的一个程序。
两个不同端系统上的进程,通过跨越计算机网络交换报文
而相互通信。发送进程生成并向网络中发送报文;接收进程接收这些报文并可能通过报文发送回去进行响应。
每对通信进程,我们通常将这两个进程之一标识