![](https://csdnimg.cn/release/download_crawler_static/86371799/bg1.jpg)
第二章 应用层
2.1 网络应用
End systems(运行网络应用程序的计算机系统)
End-to-end communication(communication between processes)端对端通信
通信双方:clients—server(分布式)程序有两部分组成(客户端、服务器)
Web 应用:browser、web server
我们编写客户端程序 Client,也得编写服务器程序 server,这些程序在端系统上运行,不是
在网络核心的网络设备上运行,两者间通讯必须就双方的通讯信息内容、格式和交互(协议,
protocol)进行约定,通常客户向服务器发送的叫请求(request),服务器向客户返回的叫
应答(response)。
目前所有的应用都是 C/S(client/server)架构
在网络设备上是否需要编写程序呢?
也需要编写一些程序,这些程序通常是承担对网络设备进行管理的程序。
服务器程序应该在 client 运行前先运行,server 运行在等待 client 端请求—向服务器发送命
令:
命令名称,
命令处理的对象—数据
服务器等待客户端的请求,一个服务器可以处理很多客户端的请求,客户请求可能同时到达,
如何处理请求?
处理请求有两种:
迭代处理—一个接着一个处理,在前一个处理完之前,后面的请求排队
并发处理—每个请求都分派专门的处理单位(进程、线程)进行处理
服务器接收请求后对请求进行解析,按照请求的要求进行相应处理,处理完后把结果重新按
照协议要求打包成响应返回给客户端,客户端将返回的响应进行解析,解析后进行相应处理。
数据库—使用的协议通常的是专有的
客户端提供界面(GUI),程序接受用户的对 GUI 操作,把这些操作组装成 SQL 语句,
发送给数据库管理系统(database engine)
数据库管理系统(Database Engine)把接收到的 sql 语句进行分析,按照 SQL 语句的
要求进行,把进行的结果打包后返回给客户端
客户端接收到服务器的响应进行相应的处理
客户端少量内存泄露问题不算严重,但内存泄露对服务器而言就非常严重。
P2P(peer to peer)是变通的 C/S,既有 Client 端,又有 Server 端,client 向其它节点的 server
请求资源,本地 server 端将本地 client 端已获取的资源向其它节点的客户端提供服务,这样
实现我为人人,人人为我,通常用于文件共享,有哪些文件类型: 文章、电子书、音乐、
电影等,这些大多数有版权,侵权。
通信主体:进程
两个进程,可能在同一个节点,也可能在不同节点
同一节点间两个进程通信有以下机制可以实现:
IPC(Interprocess Communication)进程间通信
效率高
在 OS 统一管理,所有资源都可以在 OS 下进行寻址,一个数字
IPC 机制: