- 前言
- 一、网络应用体系结构
- 1.客户机/服务器结构(Client-Server, C/S)
- 2.点对点结构(Peer-to-peer, P2P)
- 3.混合结构(Hybrid)
- 二、网络应用进程通信
- 1.Socket套接字
- 2.寻址进程
- 3.应用层协议
- 三、网络应用需求
- 1.传输服务需求
- 2.传输服务
- 总结
提示:以下是本篇文章正文内容
一、网络应用体系结构首先,我们要知道,我们说,主机A和主机B进行通信,实际上是指运行在主机A上的某个程序和运行在B上的另一个程序进行通信,由于进程就是运行着的程序,所以也就是指:主机A的某个进程和主机B上的另一个进程进行通信。
1.客户机/服务器结构(Client-Server, C/S)客户机/服务器结构(Client–server )简称C/S结构,是一种网络架构,它把客户端 (Client) 与服务器 (Server) 区分开来,每一个客户端软件的实例都可以向一个服务器或应用程序服务器发出请求,客户服务器模式通过不同的途径应用于很多不同类型的应用程序,最常见就是目前在因特网上用的网页
客户和服务器都是指通信中所涉及的两个应用进程,客户-服务器方式所描述的是进程之间的服务和被服务的关系,客户是服务请求方,服务器是服务提供方
如图,一个服务器可能连接多个客户,要想进行计算机通信需知道是那个客户机的那个应用进程,计算机通信的对象是应用层中的应用进程,采用客户机/服务器结构通知所要找的对方应用进程,从而可以使两个应用进程之间能够通信
这种网络体系结构还有以下几个特点; 1.服务器主机是总是打开的, 客户机主机则并不总是打开
2.服务器是处理所有逻辑的中心
3.基于2的原因,两个客户机一般是不能直接通信的, 要进行通信必须经过服务器
4.虽然客户机/服务器体系结构的特征是“一对多”,但是服务器却并不总是一台,因为有时要处理海量的客户机的请求, 一台服务器处理不过来,所以这个时候常用服务器集群技术(server clustering)创建强大的虚拟服务器,所以这里“一对多”的一要理解为一组服务器组成的“一”个整体
5.由于4的原因,客户机/服务器体系的应用服务通常是基础设施密集的(infrastructure intensive),也就是说,提供该服务的互联网商家,例如搜索引擎(百度),网络商务(淘宝)通常要为服务器场的购买,安装和维护投入巨额的费用
客户机特点: (1)与服务器通信,使用服务器提供的服务 所以客户端必须知道服务器程序的地址
(2)间歇性接入网络
(3)可能使用动态IP地址
(4)不会与其他客户机直接通信
服务器特点: (1)7*24小时提供服务
(2)永久性访问地址/域名 系统启动以后即自己调用并不断的运行着,被动的等待被并接受来自客户端的通信请求,服务器不需要知道客户程序的地址
(3)利用大量服务器实现可扩展性
(4)需要强大的硬件和高级操作系统支持 客户与服务器的通信关系建立后,通信可以是双向的,客户和服务器都可以接收和发送数据
典型案例:
注:区分 “用户” 和 “客户” 使用计算机的人是用户(user),而不是客户(client),但是,有时把运行客户程序的机器称为client(这里指客户机),把运行服务器程序的机器称为server,所以要根据上下文来判断client和server是指软件还是硬件
2.点对点结构(Peer-to-peer, P2P)对等连接(Peer-to-peer)是指两台主机在通信时并不区分哪一个是服务器请求方哪一个是服务器提供方。只要两台主机都运行了对等连接软件(P2P软件),他们就可以进行平等的,对等连接通信。
实际上对等连接方式上从本质上看仍然是客户–服务器方式,只是对等连接中每一台主机既是客户又同时是服务器。
总之,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机),共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体, 在此网络中的参与者既是资源(服务和内容)提供者(Server),又是资源获取者(Client)
纯P2P结构特点: (1)没有永远在线的服务器
(2)任意端系统/节点之间可以直接通讯
(3)节点间歇性接入网络
(4)节点可能改变IP地址
3.混合结构(Hybrid)混合结构显而易见就是将这两种结构混合在一起使用,混合能够利用两者的优点在一定程度上规避两者的缺点
Napster就是采用的这种结构 (1)文件传输使用P2P结构
(2)文件的搜索采用C/S结构——集中式
1.每个节点向中央服务器登记自己的内容
2.每个节点向中央服务器提交查询请求,查找感兴趣的内容
二、网络应用进程通信我们知道在同一个主机上进程之间的通信,又专门的通信机制,由操作系统所提供。
但是,在不同主机上运行的进程间如何通信?消息交换
一般地,客户机进程: 发起通信的进程,服务器进程: 等待通信请求的进程
1.Socket套接字进程间通信利用socket发送/接收消息实现
TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点,这种端点就叫做套接字(socket)或插口。套接字用(IP地址:端口号)表示,区分不同应用程序进程间的网络通信和连接
主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP或UDP)和使用的端口号
套接字(Socket)= IP地址 + 端口号(Port Number)
类似于寄信, 发送方将消息送到门外邮箱,发送方依赖(门外的)传输基础设施将消息传到接收方所在主机,并送到接收方的门外,接收方从门外获取消息
传输基础设施向进程提供API,有传输协议的选择,参数的设置
2.寻址进程不同主机上的进程间通信,那么每个进程必须拥有标识符
寻址主机:IP地址 寻址进程:端口号/Port number
有IP地址后,可以找到对应的主机,但是,同一主机上可能同时有多个进程需要通信,可以为主机上每个需要通信的进程分配一个端口号,那么,进程的标识符 :IP地址+端口号 所以,可以通过IP地址:端口号找到某个主机的进程,从而进程通信。
如HTTP Server: 80, Mail Server:25 (d端口号)
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?