应用层---网络模型

简介: 应用层---网络模型

一. C/S模型(client/server,客户/服务器模型)

定义

C/S模型是指Client/Server模型,是一种常见的网络应用程序架构。在这种模型中,有一个客户端程序(Client)和一个服务器程序(Server),客户端和服务器通过特定的协议进行通信

工作原理

在这个模型中,客户端程序向服务器发送请求,服务器接收请求并返回响应,客户端再根据响应进行相应的操作。C/S模型可以通过网络实现,使得客户端和服务器可以位于不同的计算机上从而实现分布式计算和数据存储

功能特点

  • 客户端:
  • 主动与服务器通信
  • 与互联网有间歇性的连接
  • 可能是动态IP 地址
  • 不直接与其它客户端通信
  • 服务器:
  • 需要保持运行以提供服务
  • 固定的IP地址和周知的端口号(约定)
  • 数据中心进行扩展

优势

  • 交互性:客户端可以实时地与服务器进行交互,实现数据的实时交换。
  • 可扩展性:C/S模型具有良好的扩展性,可以根据需要增加客户端或服务器,实现系统的可扩展性。
  • 安全性:由于客户端和服务器之间的通信是加密的,因此数据传输比较安全。

应用

C/S模型的应用非常广泛,例如网上银行、在线购物、社交网络等都需要使用这种模型。

在C/S模型中,客户端通常需要安装独立的的应用程序,而服务器则是提供公共服务的的地方,可以被多个客户端同时访问。

例如网络游戏、在线银行、电子商务等。

二. P2P(peer to peer)模型

定义

P2P模型是指对等点模型(Peer-to-Peer模型)。这是一种网络架构模式,每个节点都充当着客户端和服务器的角色,可以向其他节点请求和提供服务。使得网络中的每个节点都可以直接相互通信,而不需要通过中央服务器进行中转

特点

  • IP地址可改变:节点可以有动态IP地址
  • 可扩展性好:P2P模型可以无限扩展,不受服务器数量的限制,使得大规模的分布式计算和文件共享成为可能。
  • 网络健壮性强网络不容易瘫痪,P2P网络中的每个节点都可以提供数据,因此部分主机或节点坏掉或者大量主机涌入网络时,主机之间依然可以正常请求与提供服务(资源足够,带宽不受限),不会影响整个网络的功能。
  • (几乎)没有一直运行的 “服务器”
  • 任意端系统之间可以进行通信
  • 自扩展性-新peer节点带来新的服务能力,当然也带来新的服务请求
  • 参与的主机间歇性连接且可以改变IP 地址
  • P2P模型也存在缺点
  • 1.搜索效率:在P2P模型中,搜索特定资源需要遍历整个网络效率较低
  • 2.资源共享问题:在P2P模型中,资源共享需要占用网络带宽和节点计算资源,可能会影响网络性能
  • 3.难以管理
  • 原因主要有以下几点:
  • 去中心化:P2P模型取消了中心服务器,每个节点都充当着客户端和服务器的角色,管理变得分散和复杂。
  • 节点匿名性:在P2P模型中,节点之间的通信通常是基于匿名的方式,这使得管理者难以识别和定位特定节点。
  • 动态性:P2P模型中的节点是动态变化的,随时可能加入或离开网络,这使得管理者难以跟踪和监控网络状态。
  • 资源共享问题:在P2P模型中,资源共享需要占用网络带宽和节点计算资源,可能会影响网络性能。同时,也存在一些资源共享的问题,如版权侵犯、非法内容等。

因此,对于P2P模型的管理需要采取一些特殊的措施,如基于信誉的系统、过滤器、内容审查等,来实现对P2P网络的有效管理。

应用

P2P模型可以应用于各种领域,例如文件共享、分布式计算、网络存储等。P2P模型适用于大规模、分布式的计算和文件共享场景,如BitTorrent、Emule等文件共享软件。

* 例子: Gnutella,迅雷

三. 混合体:客户-服务器和对等体系结构

定义

混合体:客户-服务器和对等体系结构是一种结合了客户-服务器模型和对等体系结构的网络结构模式。在混合体中,客户端和服务器端之间的通信和对等节点之间的通信可以同时进行,相互协作完成特定的任务

  • C/S和P2P体系结构的混合体 应用实例
  • Napster(MP3下载软件)
  • 文件搜索:集中
  • 主机在中心服务器上注册其资源
  • 主机向中心服务器查询资源位置
  • 文件传输:P2P
  • 任意Peer节点之间
  • 即时通信
  • 在线检测:集中
  • 当用户上线时,向中心服务器注册其IP地址
  • 用户与中心服务器联系,以找到其在线好友的位置
  • 两个用户之间聊天:P2P

优点

混合体结构具有以下优点:

扩展性:混合体结构具有良好的扩展性,可以随时增加新的节点或组件,提高系统的性能和容量。

灵活性强:混合体结构中的节点可以直接相互通信,无需经过中心服务器,使得网络连接更加灵活。

可靠性高:混合体结构中的每个节点都承担着一定的负载,使得网络更加可靠和稳定。

缺点

但是,混合体结构也存在一些缺点:

复杂性高:混合体结构需要同时处理客户-服务器通信和对等节点之间的通信,系统设计和实现相对复杂。

资源共享问题:在混合体结构中,资源共享需要占用网络带宽和节点计算资源,可能会影响网络性能

应用

混合体结构适用于需要同时支持客户-服务器通信和对等节点之间的通信的场景,如一些分布式计算、文件共享、社交网络等应用。

目录
相关文章
|
6月前
|
C++
基于Reactor模型的高性能网络库之地址篇
这段代码定义了一个 InetAddress 类,是 C++ 网络编程中用于封装 IPv4 地址和端口的常见做法。该类的主要作用是方便地表示和操作一个网络地址(IP + 端口)
329 58
|
6月前
|
网络协议 算法 Java
基于Reactor模型的高性能网络库之Tcpserver组件-上层调度器
TcpServer 是一个用于管理 TCP 连接的类,包含成员变量如事件循环(EventLoop)、连接池(ConnectionMap)和回调函数等。其主要功能包括监听新连接、设置线程池、启动服务器及处理连接事件。通过 Acceptor 接收新连接,并使用轮询算法将连接分配给子事件循环(subloop)进行读写操作。调用链从 start() 开始,经由线程池启动和 Acceptor 监听,最终由 TcpConnection 管理具体连接的事件处理。
238 2
|
6月前
基于Reactor模型的高性能网络库之Tcpconnection组件
TcpConnection 由 subLoop 管理 connfd,负责处理具体连接。它封装了连接套接字,通过 Channel 监听可读、可写、关闭、错误等
185 1
|
6月前
|
JSON 监控 网络协议
干货分享“对接的 API 总是不稳定,网络分层模型” 看电商 API 故障的本质
本文从 OSI 七层网络模型出发,深入剖析电商 API 不稳定的根本原因,涵盖物理层到应用层的典型故障与解决方案,结合阿里、京东等大厂架构,详解如何构建高稳定性的电商 API 通信体系。
|
8月前
|
域名解析 网络协议 安全
计算机网络TCP/IP四层模型
本文介绍了TCP/IP模型的四层结构及其与OSI模型的对比。网络接口层负责物理网络接口,处理MAC地址和帧传输;网络层管理IP地址和路由选择,确保数据包准确送达;传输层提供端到端通信,支持可靠(TCP)或不可靠(UDP)传输;应用层直接面向用户,提供如HTTP、FTP等服务。此外,还详细描述了数据封装与解封装过程,以及两模型在层次划分上的差异。
1815 13
|
8月前
|
网络协议 中间件 网络安全
计算机网络OSI七层模型
OSI模型分为七层,各层功能明确:物理层传输比特流,数据链路层负责帧传输,网络层处理数据包路由,传输层确保端到端可靠传输,会话层管理会话,表示层负责数据格式转换与加密,应用层提供网络服务。数据在传输中经过封装与解封装过程。OSI模型优点包括标准化、模块化和互操作性,但也存在复杂性高、效率较低及实用性不足的问题,在实际中TCP/IP模型更常用。
1095 10
|
3月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
4月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
289 2
|
4月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
107 8
|
6月前
基于Reactor模型的高性能网络库之Poller(EpollPoller)组件
封装底层 I/O 多路复用机制(如 epoll)的抽象类 Poller,提供统一接口支持多种实现。Poller 是一个抽象基类,定义了 Channel 管理、事件收集等核心功能,并与 EventLoop 绑定。其子类 EPollPoller 实现了基于 epoll 的具体操作,包括事件等待、Channel 更新和删除等。通过工厂方法可创建默认的 Poller 实例,实现多态调用。
342 60

热门文章

最新文章