2.2网络应用的基本原理(体系结构、进程通信)

网络应用的体系结构:

问:网络应用有哪些特点?与单机应用有哪些本质的不同?

答:

问:网络应用应采取什么样的体系结构?

答: (1)客户机/服务器结构(Client-Server,C/S);
(2)点对点结构(Peer-to-Peer,P2P);
(3)混合结构;

客户机/服务器结构:

服务器特点:
  • 7*24小时提供服务;
  • 永久性访问地址/域名;
  • 利用大量服务器实现可扩展性;
客户端特点:
  • 与服务器通信,使用服务器提供的服务;
  • 间歇性的接入网络;
  • 可能使用动态IP地址;
  • 不会与其他客户机直接通信
典型例子:Web应用

2-2-1
客户机:运行浏览器软件。服务器:运行web服务器软件。(如图2-2-1)

纯P2P结构:

  • 没有永远在线的服务器;
  • 任意端系统/节点之间可以直接通讯;
  • 节点间歇性接入网络;
  • 节点可能改变IP地址;

“P2P结构”相比于“客服机/服务器”结构,优点是:高度可伸缩,缺点是:实现比较复杂,难于管理。

混合结构

能否将两种结构混合在一起使用?混合能够利用两者的优点同时规避两者的缺点吗?

典型例子:Napster(如图2-2-2)
  • 文件传输使用P2P结构;

  • 文件的搜索使用C/S结构:
    * 每个节点向中央服务器登记自己的内容;
    * 每个节点向中央服务器提交查询请求,查找感兴趣的内容。
    2-2-2
    思考题:

  • 为每种体系结构找出五种以上的网络应用
    CS:手机应用商店,云服务/云存储,微信读书,美团,QQ音乐,在线词典
    P2P:email,
    混合:微信,QQ,迅雷,钉钉,大力搜索,网络游戏比如王者荣耀等;

  • 从多个方面/角度对比三种体系结构的优缺点

网络应用进程通信:

引言

进程是什么?

  • 主机上运行的程序

同一主机上运行的进程之间如何通信?

  • 进程间通信机制
  • 操作系统提供

不同主机上运行的进程间如何通信?

  • 消息交换/报文交换

问:客户机进程:发起通信的进程;服务器进程:等待通信请求的进程。采用P2P架构的应用是否存在客户机进程/服务器进程之分?

Socket:套接字

不同主机进程之间相互通信,实际上依靠的是一个叫做套接字(socket)的机制,这是操作系统提供的一种抽象,它把网络的硬件基础设施和网络协议栈(比如链路层、网络层、传输层)给抽象了。socket使用下层网络硬件基础设施和协议栈提供的服务,对其进行抽象封装,并提供一套API,供进程通信使用。
在这里插入图片描述

  • 进程间通信利用socket发送/接收消息
  • 类似于寄信:
    * 发送方将消息送到门外邮箱;
    * 发送方依赖(门外的)传输基础设施将消息传到接收方所在主机,并送到接收方的门外(接收方主机的socket);
    * 接收方从门(socket)外获取消息;
  • 传输基础设施向进程提供API(关于网络编程的API)
    * 传输协议的选择;
    * 参数的设置;
如何寻址进程?

不同主机上的进程间通信,每个进程必须有标识符
IP地址可以寻址主机,Port(端口号)可以在主机上寻址进程。
进程标识符 = IP+Port。

应用层协议

具体的消息交换怎么做?消息是什么样的格式?应该用什么样的顺序来交换?这些需要依靠应用层协议,进行通信的进程需要遵循相同的应用层协议。

  • 网络应用需遵循应用层协议。
  • 公开协议
    * 由RFC(Request For Comments)定义
    * 允许互操作
    * 例如:HTTP,SMTP,…
  • 私有协议
    * 多数P2P文件共享应用,考虑到商业竞争,使用自己设计的私有协议。
应用层协议的内容
消息的类型(type)
  • 请求消息
  • 响应消息
消息的语法(syntax)/格式
  • 消息中有哪些字段?
  • 每个字段如何描述?
字段的语义(semantics)
  • 字段中信息的含义
规则(rules)
  • 进程何时发送/响应消息
网络应用的需求与传输层服务
网络应用对传输服务的需求

1、数据丢失(data loss)/可靠性(reliability)
* 某些网络应用能够容忍一定的数据丢失:网络电话
* 某些网络应用要求100%可靠的数据传输:文件传输等
2、时间(timing)/延迟(delay)
* 有些应用只有在延迟足够低时才“有效” ,例如网络电话/网络游戏等
3、带宽(bandwidth)
* 某些应用只有在带宽达到最低要求时才有效,例如网络电视
* 某些应用能够适应任何带宽—弹性应用,例如email
在这里插入图片描述

Internet提供的传输服务
TCP服务UDP服务
面向连接:客服机/服务器进程间需要建立连接无连接
可靠的传输:把底层的不可靠变为可靠,不丢包、不乱序不提供可靠的传输
流量控制: 发送方不会发送速度过快,超过接收方的处理能力不提供流量控制
拥塞控制:当网络负载过重时能够限制发送方的发送速度不提供拥塞控制
不提供时间/延迟保障不提供延迟保障
不提供最小带宽保障不提供最小带宽保障

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章 计算机体系结构的基本概念 1.1 引论 1.2 计算机体系结构的概念 1.2.1 计算机系统中的层次概念 1.2.2 计算机体系结构 1.2.3 计算机组成和计算机实现技术 1.3 计算机体系结构的发展 1.3.1 存储程序计算机体系结构及其发展 1.3.2 计算机的分代和分型 1.3.3 应用需求的发展 1.3.4 计算机实现技术的发展 1.3. 5 体系结构的生命周期 1.4 计算机体系结构中并行性的发展 1.4.1并行性概念 1.4.2 提高并行性的技术途径 1.5 定量分析技术基础 1.5.1 计算机性能的评测 1.5.2 测试程序 1.5.3 性能设计和评测的基本原则 1.5.4 CPU的性能 1.6 影响计算机体系结构的成本和价格因素 1.6.1 集成电路的成本 1.6.2 计算机系统的成本和价格 1.7 小结习题一第二章 计算机指令集结构设计 2.1 指令集结构的分类 2.1.1 指令集结构的分类 2.1.2 通用寄存器型指令集结构分类 2.2 寻址技术 2.3 指令集结构的功能设计 2.3.1 CISC计算机指令集结构的功能设计 2.3.2 RISC计算机指令集结构的功能设计 2.3.3 控制指令 2.4 操作数的类型、表示和大小 2.5 指令集格式的设计 2.5.1 寻址方式的表示方法 2.5.2 指令集格式的选择 2.6 编译技术与计算机体系结构设计 2.6.1 现代编译器的结构和相关技术 2.6.2 现代编译技术对计算机体系结构设计的影响 2.6.3 计算机体系结构对当前编译技术的影响 2.7 DLX指令集结构 2.7.1 DLX指令集结构 2.7.2 DLX指令集结构效能分析 2.8 小结习题二第三章 流水线技术 3.1 流水线的基本概念 3.1.1 流水线的基本概念 3.1.2 流水线的分类 3.2 DLX的基本流水线 3.2.1 DLX的一种简单实现 3.2.2 基本的DLX流水线 3.2.3 流水线性能分析 3. 3 流水线中的相关 3.3.1 流水线的结构相关 3.3.2 流水线的数据相关 3.3.3 流水线的控制相关 3.4 流水线计算机实例分析(MIPS R4000) 3.4.1 MIPS R4000整型流水线 3.4.2 MIPS R4000浮点流水线 3.4.3 MIPS R4000流水线的性能分析 3.5 向量处理机 3.5.1 向量处理方式和向量处理机 3.5.2 向量处理机实例分析 3.6 小结习题三第四章 指令级并行 4.1 指令级并行的概念 4.1.1 循环展开调度的基本方法 4.1.2 相关性 4.2 指令的动态调度 4.2.1 动态调度的原理 4.2.2 动态调度算法之一:记分牌 4.2.3 动态调度算法之二:Tomasulo算法 4.3 控制相关的动态解决技术 4.3.1 减少分支延迟:分支预测缓冲技术 4.3.2 进一步减少分支延迟:分支目标缓冲 4.3.3 基于硬件的推断执行 4.4 多指令流出技术 4.4.1 超标量技术 4.4.2 多指令流出的动态调度 4.4.3 超长指令字技术 4.4.4 多流出处理器受到的限制 4.5 小结习题四第五章 存储层次 5.1 存储器的层次结构 5.1.1 从单级存储器到多级存储器 5.1.2 存储层次的性能参数 5.1.3 “Cache—主存”和“主存—辅存”层次 5.1.4 存储层次的四个问题 5.2 Cache基本知识 5.2.1 映象规则 5.2.2 查找方法 5.2.3 替换算法 5.2.4 写策略 5.2.5 Cache的结构 5.2.6 Cache性能分析 5.2.7 改进Cache性能 5.3 降低Cache失效率的方法 5.3.1 增加Cache块大小 5.3.2 提高相联度 5.3.3 Victim Cache 5.3.4 伪相联Cache 5.3.5 硬件预取技术 5.3.6 由编译器控制的预取 5.3.7 编译器优化 5.4 减少Cache失效开销 5.4.1 让读失效优先于写 5.4.2 子块放置技术 5.4.3 请求字处理技术 5.4.4 非阻塞Cache技术 5.4.5 采用两级Cache 5.5 减少命中时间 5.5.1 容量小,结构简单的Cache 5.5.2 虚拟Cache 5.5.3 写操作流水化 5.5.4 Cache优化技术小结 5.6 主存 5.6.1 存储器技术 5.6.2 提高主存性能的存储器组织结构 5.7 虚拟存储器 5.7.1 虚拟存储器基本原理 5.7.2 快表(TLB) 5.7.3 页面大小的选择 5.8 进程保护和虚存实例 5.8.1 进程保护 5.8.2 页式虚存举例:Alpha AXP的存储管理和21064的TLB 5.9 Alpha AXP 21064存储层次 5.10 小结习题五第六章 输入输出系统 6.1 概述 6.2 存储设备 6.2.1 磁盘设备 6.2.2 磁带设备 6.2.3 光盘设备 6.3 总线 6.3.1 总线分类 6.3.2 总线基本工作原理 6.3.3 总线使用 6.3.4 总线标准和实例 6.3.5 设备的连接 6.3.6 CPU与I/O处理的匹配 6.4 通道处理机 6.4.1 通道的作用和功能 6.4.2 通道的工作过程 6.4.3 通道种类 6.4.4 通道中的数据传送过程 6.4.5 通道的流量分析 6.5 I/O与操作系统 6.5.1 I/O和Cache数据一致性 6.5.2 DMA和虚拟存储器 6.6 I/O系统设计 6.7 小结习题六第七章 多处理机 7.1 引言 7.1.1 并行计算机体系结构的分类 7.1.2 通信模型和存储器的结构模型 7.1.3 通信机制的性能 7.1.4 不同通信机制的优点 7.1.5 并行处理面临的挑战 7.1.6 并行程序的计算/通信比率 7.2 多处理机的存储器体系结构 7.2.1 集中式共享存储器体系结构 7.2.2 分布式共享存储器体系结构 7.3 互连网络 7.3.1 互连网络的性能参数 7.3.2 静态连接网络 7.3.3 动态连接网络 7.4 同步与通信 7.4.1 同步机制 7.4.2 大规模机器的同步 7.5 并行化技术 7.5.1 并行化的基本策略 7.5.2 并行语育与编译器 7.6 多处理机实例 7.6.1 Challenge多处理机系统 7.6.2 Origin 20007.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值