要编写通过计算机网络通信的程序,首先要确这些程序相互通信所用的协议,在深入设计一个协议的细节之前,应该从高层次决断通信是由哪个程序发起以及响应在何时产生,举例来说,一般认为web服务器程序是一个长时间运行的程序(就是所谓的web客户程序,如某种浏览器和服务器进程的通信总是由客户进程发起的,大多数网络应用就是按照划分成客户和服务器来组织的。在设计网络应用的时候,确定总是由客户发起请求往往能够简化协议和程序本身。当然一些较为复杂的网络应用需要异步回调通信。也就是由服务器向客户端发起请求消息。然而坚持采用下图所示的基本客户/服务器模型的网络应用毕竟要普遍得多。
通常客户每次只能与一个服务器通信,不过以使用web浏览器为例,我们也许在10分钟内就可以与许多不同的web服务器通信。从服务器的角度来看,一个服务器同时与多个客户端通信并不稀奇
可认为客户与服务器之间是通过某个网络协议通信的,但实际上,这样的通信通常设计及多个网络协议层。TCP又转而使用IP通信,IP再通过某种形式的数据链路层。如果客户端与服务器处于同一个以太网,
尽管客户与服务器之间使用某个应用协议通信,传输层却使用TCP通信。注意,客户与服务器之间的通信的信息流在其中一端是向下通过协议栈的,跨越网络后,在另一端则是向上通过协议栈的。另外注意,客户和服务器通常是用户进程,而TCP和IP协议通常是内核中协议栈的一部分
同一网络应用的客户和服务器无需处于同一个局域网
网络编程简介概述
最新推荐文章于 2023-01-03 15:41:16 发布