欢迎光临中图网 请 | 注册
> >>
分布式系统原理与范型(第2版)

分布式系统原理与范型(第2版)

作者:特尼博姆
出版社:清华大学出版社出版时间:2008-06-01
开本: 28 页数: 490
中 图 价:¥53.1(9.0折) 定价  ¥59.0 登录后可看到会员价
暂时缺货 收藏
运费6元,满69元免运费
?快递不能达地区使用邮政小包,运费14元起
云南、广西、海南、新疆、青海、西藏六省,部分地区快递不可达
本类五星书更多>

分布式系统原理与范型(第2版) 版权信息

分布式系统原理与范型(第2版) 本书特色

本书是tanenbaum先生所著的《分布式操作系统》的修订版,是分布式系统的权威教材。全书分为两部分:原理和范型。**部分详细讨论了分布式系统的原理、概念和技术,其中包括通信、进程、命名、同步、一致性和复制、容错以及安全。第二部分给出了一些实际的分布式系统:基于对象的分布式系统、分布式文件系统、基于文档的分布式系统以及基于协作的分布式系统,介绍了一些实际系统的设计思想和实现技术。全书结构清晰,内容全面经典,系统性与先进性并茂。

分布式系统原理与范型(第2版) 内容简介

本书是著名作者tanenbaum关于分布式系统的*新力作,是分布式系统的权威教材。本书分成了两大部分。第2~9章讨论的是分布式系统的的原理、概念和技术,包括通信、进程、命名、同步化、一致性和复制、容错性以及安全性等,而分布式应用的开发方法(即范型)在第10~13章中进行了讨论。但是,与前一版不同的是,我们没有在讨论范型的章节中完整地介绍每个案例研究,而是通过一个有代表性的案例来解释原理。这种介绍方法使得我们不仅精简了素材,而且可以使得读者在阅读和学习时更愉快些。全书结构清晰,内容全面经典,系统性与先进性并茂。
本书适用对象广泛,不仅可以作为学习分布式计算机的本科生和研究生的教材,对于从事分布式计算研究和工程应用的科技人员和工程技术人员来说,本书也是一本优秀的读物。

分布式系统原理与范型(第2版) 目录

第1章 概述
 1.1 分布式系统的定义
 1.2 目标
  1.2.1 使资源可访问
  1.2.2 透明性
  1.2.3 开放性
  1.2.4 可扩展性
 1.3 分布式系统的类型
  1.3.1 分布式计算系统
  1.3.2 分布式信息系统
  1.3.3 分布式普适系统
 本章小结
 习题
第2章 体系结构
 2.1 体系结构的样式
 2.2 系统体系结构
  2.2.1 集中式体系结构
  2.2.2 非集中式体系结构
  2.2.3 混合体系结构
 2.3 体系结构与中间件
  2.3.1 中断器
  2.3.2 自适应软件的常见方法
  2.3.3 讨论
 2.4 分布式系统的自我管理
  2.4.1 反馈控制模型
  2.4.2 示例:用astrolabe监视系统
  2.4.3 示例:globule中的差分复制策略
  2.4.4 示例:jade的自动组件修复管理
 本章小结
 习题
第3章 进程
 3.1 线程
  3.1.1 线程简介
  3.1.2 分布式系统中的线程
 3.2 虚拟化
  3.2.1 虚拟化在分布式系统中的作用
  3.2.2 虚拟机体系结构
 3.3 客户
  3.3.1 网络连接的用户接口
  3.3.2 客户端软件与分布透明性
 3.4 服务器
  3.4.1 常见的设计问题
  3.4.2 服务器集群
  3.4.3 管理服务器集群
 3.5 代码迁移
  3.5.1 代码迁移方案
  3.5.2 迁移与本地资源
  3.5.3 异构系统中的代码迁移
 本章小结
 习题
第4章 通信
 4.1 基础知识
  4.1.1 分层协议
  4.1.2 通信类型
 4.2 远程过程调用
  4.2.1 基本的rpc操作
  4.2.2 参数传递
  4.2.3 异步rpc
  4.2.4 示例:dce rpc
 4.3 面向消息的通信
  4.3.1 面向消息的瞬时通信
  4.3.2 面向消息的持久通信
  4.3.3 示例:ibm websphere消息队列系统
 4.4 面向流的通信
  4.4.1 为连续媒体提供支持
  4.4.2 流与服务质量
  4.4.3 流同步
 4.5 多播通信
  4.5.1 应用层多播
  4.5.2 基于gossip的数据通信
 本章小结
 习题
第5章 命名系统
 5.1 名称、标识符和地址
 5.2 无层次命名
  5.2.1 简单方法
  5.2.2 基于宿主位置的方法
  5.2.3 分布式散列表
  5.2.4 分层方法
 5.3 结构化命名
  5.3.1 名称空间
  5.3.2 名称解析
  5.3.3 名称空间的实现
  5.3.4 示例:域名系统
 5.4 基于属性的命名
  5.4.1 目录服务
  5.4.2 分层实现:ldap
  5.4.3 非集中式实现
 本章小结
 习题
第6章 同步化
 6.1 时钟同步
  6.1.1 物理时钟
  6.1.2 全球定位系统
  6.1.3 时钟同步算法
 6.2 逻辑时钟
  6.2.1 lamport逻辑时钟
  6.2.2 向量时钟
 6.3 互斥
  6.3.1 概述
  6.3.2 集中式算法
  6.3.3 非集中式算法
  6.3.4 分布式算法
  6.3.5 令牌环算法
  6.3.6 四种算法的比较
 6.4 结点的全局定位
 6.5 选举算法
  6.5.1 传统的选举算法
  6.5.2 无线系统环境中的选举算法
  6.5.3 大型系统中的选举算法
 本章小结
 习题
第7章 一致性和复制
 7.1 概述
  7.1.1 进行复制的原因
  7.1.2 作为扩展技术的复制
 7.2 以数据为中心的一致性模型
  7.2.1 持续一致性
  7.2.2 一致的操作顺序
 7.3 以客户为中心的一致性模型
  7.3.1 *终一致性
  7.3.2 单调读
  7.3.3 单调写
  7.3.4 读写一致性
  7.3.5 写读一致性
 7.4 复制管理
  7.4.1 副本服务器的放置
  7.4.2 内容复制与放置
  7.4.3 内容分发
 7.5 一致性协议
  7.5.1 持续一致性
  7.5.2 基于主备份的协议
  7.5.3 复制的写协议
  7.5.4 高速缓存相关性协议
  7.5.5 实现以客户为中心的一致性
 本章小结
 习题
第8章 容错性
 8.1 容错性概述
  8.1.1 基本概念
  8.1.2 故障模式
  8.1.3 使用冗余掩盖故障
 8.2 进程恢复
  8.2.1 设计问题
  8.2.2 故障掩盖和复制
  8.2.3 故障系统的协定
  8.2.4 故障检测
 8.3 可靠的客户-服务器通信
  8.3.1 点对点通信
  8.3.2 失败时的rpc语义
 8.4 可靠的组通信
  8.4.1 基本的可靠多播方法
  8.4.2 可靠多播中的可扩展性
  8.4.3 原子多播
 8.5 分布式提交
  8.5.1 两阶段提交
  8.5.2 三阶段提交
 8.6 恢复
  8.6.1 概述
  8.6.2 检查点
  8.6.3 消息日志
  8.6.4 面向恢复的计算
 本章小结
 习题
第9章 安全性
 9.1 安全性概述
  9.1.1 安全威胁、策略和机制
  9.1.2 设计问题
  9.1.3 加密
 9.2 安全通道
  9.2.1 身份认证
  9.2.2 消息的完整性和机密性
  9.2.3 安全组通信
  9.2.4 示例:kerberos
 9.3 访问控制
  9.3.1 访问控制中的常见问题
  9.3.2 防火墙
  9.3.3 安全的移动代码
  9.3.4 拒绝服务
 9.4 安全管理
  9.4.1 密钥管理
  9.4.2 安全组管理
  9.4.3 授权管理
 本章小结
 习题
第10章 基于对象的分布式系统
 10.1 体系结构
  10.1.1 分布式对象
  10.1.2 示例: 企业级java bean
  10.1.3 示例: globe分布式共享对象
 10.2 进程
  10.2.1 对象服务器
  10.2.2 示例: ice运行时系统
 10.3 通信
  10.3.1 把客户绑定到对象上
  10.3.2 静态远程方法调用与动态远程方法调用
  10.3.3 参数传递
  10.3.4 示例: java rmi
  10.3.5 基于对象的消息传递
 10.4 命名
  10.4.1 corba对象引用
  10.4.2 globe对象引用
 10.5 同步
 10.6 一致性与复制
  10.6.1 入口一致性
  10.6.2 复制的调用
 10.7 容错性
  10.7.1 示例: corba的容错性
  10.7.2 示例: java的容错性
 10.8 安全性
  10.8.1 示例: globe
  10.8.2 远程对象的安全性
 本章小结
 习题
第11章 分布式文件系统
 11.1 体系结构
  11.1.1 客户-服务器体系结构
  11.1.2 基于群集的分布式文件系统
  11.1.3 对称式体系结构
 11.2 进程
 11.3 通信
  11.3.1 nfs中的rpc
  11.3.2 rpc2子系统
  11.3.3 plan 9中面向文件的通信
 11.4 命名
  11.4.1 nfs中的命名
  11.4.2 构造全局名称空间
 11.5 同步
  11.5.1 文件共享的语义
  11.5.2 文件锁定
  11.5.3 在coda中共享文件
 11.6 一致性和复制
  11.6.1 客户端缓存
  11.6.2 服务器端复制
  11.6.3 对等文件系统中的复制
  11.6.4 网格系统中的文件复制
 11.7 容错性
  11.7.1 处理byzantine故障
  11.7.2 对等系统中的高度可用性
 11.8 安全性
  11.8.1 nfs中的安全性
  11.8.2 分散式身份认证
  11.8.3 安全的对等文件共享系统
 本章小结
 习题
第12章 基于web的分布式系统
 12.1 体系结构395
  12.1.1 传统的基于web的系统
  12.1.2 web服务
 12.2 进程
  12.2.1 客户
  12.2.2 apache web服务器
  12.2.3 web服务器群集
 12.3 通信
  12.3.1 超文本传输协议
  12.3.2 简单对象访问协议
 12.4 命名
 12.5 同步
 12.6 一致性与复制
  12.6.1 web代理缓存
  12.6.2 web宿主系统的复制
  12.6.3 web应用程序的复制
 12.7 容错性
 12.8 安全性
 本章小结
 习题
第13章 基于协作的分布式系统
 13.1 协作模型介绍
 13.2 体系结构
  13.2.1 一般方法
  13.2.2 传统的体系结构
  13.2.3 对等体系结构
  13.2.4 移动性和协作
 13.3 进程
 13.4 通信
  13.4.1 基于内容的路由
  13.4.2 支持复合订阅
 13.5 命名
  13.5.1 描述复合事件
  13.5.2 匹配事件与订阅
 13.6 同步
 13.7 一致性和复制
  13.7.1 静态方法
  13.7.2 动态复制
 13.8 容错性
  13.8.1 可靠的发布-订阅通信
  13.8.2 共享数据空间中的容错性
 13.9 安全性
  13.9.1 保密性
  13.9.2 安全的共享数据空间
 本章小结
 习题
第14章 补充读物与参考文献
 14.1 进一步阅读的建议
  14.1.1 介绍性和综述性的著作
  14.1.2 体系结构
  14.1.3 进程
  14.1.4 通信
  14.1.5 命名
  14.1.6 同步化
  14.1.7 一致性与复制
  14.1.8 容错性
  14.1.9 安全性
  14.1.10 面向对象的分布式系统
  14.1.11 分布式文件系统
  14.1.12 基于web的分布式系统
  14.1.13 基于协作的分布式系统
 14.2 参考文献
展开全部

分布式系统原理与范型(第2版) 节选

nbsp; 者  序
    自本书的第1版出版以来,计算机系统技术,尤其是分布式系统技术发生了巨大的变
化。根据分布式系统技术的发展和实际教学的需要,作者对本书进行了补充和更新。本书
分成了两大部分。第2~9章讨论的是分布式系统的原理、概念和技术,包括通信、进程、命
名、同步化、一致性和复制、容错性以及安全性等,而分布式应用的开发方法(即范型)在第
10~13章中进行了讨论。但是,与前一版不同的是,本书没有在讨论范型的章节中完整地
介绍每个案例研究,而是通过一个有代表性的案例来解释原理。这种介绍方法不仅精简了
素材,而且可以使得读者在阅读和学习时更愉快些。全书结构清晰,内容全面经典,系统性
与先进性并茂。
    本书适用对象广泛,不仅可以作为学习分布式计算机的本科生和研究生的教材,对于从
事分布式计算研究和工程应用的科技人员和工程技术人员来说,本书也是一本优秀的读物。
    参与本书翻译、审稿的人员有辛春生、陈宗斌、周成兴、张长富、陈河南、陈红霞、张景友、
易小丽、陈婷、管学岗、王新彦、金惠敏、张海峰、徐晔、戴锋、张德福、张士华、张锁玲、杜明宗、
高玉琢、王涛、申川、孙玲、李振国、高德杰、宫飞、侯经国、刘淑妮、张春林、李大成、程明、张路
红、张淑芝、孙先国、刘冀得、梁永翔、张广东、郁琪琳、邵长凯、蒲书箴、潘曙光、刘瑞东、李
军等。
    由于分布式是一种快速发展的新技术,以及译者水平有限,书中难免有错误和疏漏之
处,恳请读者不吝指正。

前言
    分布式系统已经成为了计算机科学的一个快速发展的领域。从本书的前一版出版以
来,分布式系统又出现了一些新的主题,如点对点计算和传感器网络,而其他主题则变得更
加成熟了,比如Web服务和Web应用等。这些发展变化要求我们对这本教材进行修订。
    本版对上一版进行了重大修订。我们添加了单独的一章,以反映分布式系统组织结构
所取得的进展。另一个重大的修改是,本版介绍了更多的非集中式系统内容,尤其是点对点
计算。我们不仅讨论了基本技术,而且还介绍了具体的应用,如文件共享、信息传播、内容传
送网络和发布/订购系统等。
    除了这两个重大主题外,本书还介绍了其他一些新的主题。例如,我们介绍了传感器网
络、虚拟化技术、服务器集群和网格计算等。我们还特别关注了分布式系统的自我管理,随
着系统不断扩展,这是一个越来越重要的主题。
    当然,我们还与时俱进地给出了一些新素材。例如,在讨论一致性与复制时,我们关注
的重点是更适合现代分布式系统的一致性模型,而不是*初的模型。同样,我们还添加了有
关现代分布式算法的素材,包括基于GPS的时钟同步化和本地化算法。
    与前一版相比,本版的总页码有所减少。这主要是本版弃用了诸如分布式垃圾收集和
  电子支付协议等主题,并对后4章进行了重新组织。
    与前一版一样,本书分成了两大部分。第2~9章讨论的是分布式系统的原理,而分
布式应用的开发方法(即范型)在第10~13章中进行了讨论。但是,与前一版不同的是,
我们没有在讨论范型的章节中完整地介绍每个案例研究,而是通过一个有代表性的案例
来解释原理。例如,对象激活作为一个通信原理在第10章关于基于对象的分布式系统
中进行了介绍。这种介绍方法使得我们不仅精简了素材,而且可以使得读者在阅读和学
习时更愉快些。
    当然,我们仍然是努力从实践来阐述什么是分布式系统。本书介绍各种的实际系统,如
  Web-Sphere MQ、DNS、GPS、Apache、CORBA、Ice、NFS、Akamai、TIB/Rendzvous、Jini等。
  这些示例阐明了理论与实践的关系,使得分布式系统成为了一个令人激动的领域。
    许多人以多种方式对本书作出了贡献。我们尤其要感谢D.Rober Adams、Arno
 Bakker、Coskun Bayrak、Jacques Chassin de Kergommeaux、Randy Chow、Michel
 Chaudron、Puneet Singh Chawla、Fabio Costa、Cong Du,Deck Epema、Kevin Fenwick、
Chandana Gamage、Ali Ghodsi、Giorgio Ingargiola、Mark Jelasity、Ahmed Kamel、Gregory
 Kapfhammer、Jeoren Ketema、Onno Kubbe、Patricia Lago、Steve MacDonald、Michel J.
Bramanian、Chintan Shah、Ruud Stegers、Paul Tymann、CraigE.Wills、Reyven Yagel和
Dakai Zhu阅读了部分书稿,帮助修订了前一版中的一些错误,并提出了宝贵意见。
    *后,我们还要感谢我们的家庭。Suzanne已经经历过很多次这样的情况了。她从未
说过“我受够了”,尽管这个念头肯定在她脑海里出现过。谢谢你!Barbara和Marvin现在
对教授们为谋生所做的工作有了更好的了解,并且认识到好教材和坏教材之间的差别。现
在,对我来说他们是我努力创作出更多好教材的动力所在。

第9章
安全性
    我们要讨论的建立分布式系统的*后一个原则是安全性,但这绝不意味着安全性是*
不重要的原则。然而,有人可以证明安全性是*难以处理的原则,因为安全需要普遍深入到
整个系统中。有关安全的一个单纯的设计缺陷可能导致所有的安全措施无效。在本章中,
我们集中讨论分布式系统中普遍加入的、支持安全的不同机制。
    我们从介绍安全方面的基本问题开始。在对一个系统建立所有类型的安全机制并不都
是真正有意义的,除非了解那些机制的使用方式以及该机制所预防的问题。这就需要我们
了解要执行的安全策略。首先来讨论安全策略的概念以及有助于执行这样的策略的一些普
通的机制设计问题。我们还简要地涉及到必要的加密方法。
    分布式系统中的安全可以粗略地划分为两部分。一部分涉及可能处于不同机器上的用
户或进程之间的通信。确保安全通信的主要机制是安全通道机制。安全通道,更明确地说,
是身份认证、消息完整性以及机密性,这些内容将分别在一个单独的小节中讨论。
    另一部分涉及授权,用以确保进程只获得授予它的对分布式系统内资源的访问权限。
授权将在一个涉及访问控制的单独小节中介绍。除传统访问控制机制之外,我们还将集中
讨论必须处理诸如代理一类的移动代码时的访问控制。
    安全通道和访问控制需要分发加密密钥的机制,还需要向系统中添加或从系统中删除用
户的机制。这些主题包括在称为安全管理的内容中。在一个单独的小节中,我们将讨论这样
一些问题:加密密钥管理、安全组管理以及分发证明所有者有权对指定资源进行访问的证书。
9.1安全性概述
    我们以一些一般的安全性问题来开始对分布式系统中安全性的描述。首先,有必要对
安全系统进行定义。我们将安全策略与安全机制区别开来,并考察明确制定了安全策略的
Globus广域系统。其次,我们关注的是要为安全系统考虑一些一般的设计问题。*后,我
们简要地讨论一些加密算法,这些算法在安全协议的设计中扮演关键的角色。
9.1.1  安全威胁、策略和机制
计算机系统中的安全性与可靠性的概念密切相关。非正式地说,一个可靠的计算机系
统是一个我们可以有理由信任来交付其服务的系统(Laprie 1995)。如第7章中所提到的,
可靠性包括可用性、可信赖性、安全性和可维护性。然而,如果我们要信任一个计算机系统,
就还应该考虑机密性和完整性。机密性(confidentiality)是指计算机系统的一种属性,系统
凭借此属性使得信息只向授权用户公开。完整性(integrity)是指对系统资源的变更只能以
授权方式进行。换句话说,在安全的计算机系统中,不适当的变更应该是可以察觉的,并且
是可以恢复的。任何计算机系统的主要资源都是其硬件、软件和数据。
    考虑计算机系统中安全的另一种角度是我们试图保护该系统所提供的服务和数据不受
到安全威胁(security threat)。要考虑4种类型的安全威胁(Pfleeger 2003):
    (1)窃听;
    (2)中断;
    (3)修改;
    (4)伪造。
    窃听(interception)是指一个未经授权的用户获得了对一项服务或数据的访问的情况。
窃听的一个典型事例是两人之间的通信被其他人偷听到。窃听还发生在非法复制数据时,
例如,发生在入侵者闯入文件系统中某个人的私人目录后。
    中断(interruption)的一个实例是文件被损坏或丢失时所出现的情况。一般来说,中断
是指服务或数据变得难以获得、不能使用、被破坏等情况。在这个意义上说,服务拒绝攻击
是一种安全威胁,它归为中断类,一些人正是通过它恶意地试图使其他人不能访问服务。
    修改(modification)包括对数据未经授权的改变或篡改一项服务以使其不再遵循其原
始规范。修改的实例包括窃听然后改变传输的数据、篡改数据库条目以及改变一个程序使
其秘密记录其用户的活动。
    伪造(fabrication)是指产生通常不存在的附加数据或活动的情况。例如,一个入侵者
可能尝试向密码文件或数据库中添加一项。同样,有时可能通过重放先前发送的消息来侵
入一个系统。我们稍后将在本章中讨论这样的例子。
    注意,中断、修改和伪造中的每一个都可视为数据篡改的一种形式。
    仅仅声明系统应该能够保护其自身免受任何可能的安全威胁并不是实际建立一个安全
系统的方式。首先需要的是安全需求的一个描述,也就是说,一个安全策略。安全策略
(security policy)准确地描述系统中的实体能够采取的行为以及禁止采取的行为。实体包
括用户、服务、数据、机器等。制定了安全策略之后,就可能集中考虑安全机制(security
 mechanism),策略通过该机制来实施。重要的安全机制包括:
    (1)加密;
    (2)身份认证;
    (3)授权;
    (4)审计。
    加密(encryption)是计算机安全的基础。加密将数据转换为一些攻击者不能理解的形
式。换句话说,加密提供了一种实现机密性的方式。另外,加密使我们能够检查数据是否被
修改,从而还提供对完整性检查的支持。   
    身份认证(authentication)用于检验用户、客户、服务器等所声明的身份。对客户来说,
基本前提是在客户可以使用一项服务之前,该服务必须了解客户的身份。通常,依靠密码对
用户进行身份认证,但对客户进行身份认证还有许多其他方式。
    对一个客户进行身份认证之后,有必要检查是否授予该客户执行所请求操作的权限。
对医学数据库中记录的访问是一个典型实例。取决于访问该数据库的不同人员,可能分别
赋予其读取、修改记录中特定字段,以及添加或删除记录的许可。
    审计(auditing)工具用于追踪各个客户的访问内容以及访问方式。虽然审计并不真正
提供任何防止安全威胁的保护,但审计记录对安全破坏的分析以及随后采取措施防止入侵
非常有用。出于这种原因,攻击者通常不希望留下任何可能*终导致其身份暴露的痕迹。
在这种意义上,对访问记录进行攻击有时成为更冒险的事情。
    示例:G!obus安全体系结构
    安全策略的概念和安全机制在分布式系统中为实施这样的策略所扮演的角色通常可以
通过一个具体示例给予*好的解释。我们来考虑一下为Globus广域系统所定义的安全策
略(Chervenak等2000)。Globus是一个支持大规模分布式计算的系统,其中同时使用许多
主机、文件和其他资源来进行计算。这样的环境又称为计算网格(Foster和Kesselman
2003)。这些网格中的资源通常位于不同的管理域,这些域可以位于世界的不同地方。
    因为用户和资源在数量上是巨大的,而且广泛地散布在不同管理域中,所以安全是*基
本的要求。要设计并正确使用安全机制,就需要理解确实需要保护的对象,以及有关安全的
假定内容。稍作简化,Globus的安全策略必须具有下述8条声明,我们将在下面进行解释
(Foster等1998):
    (1)该环境由多个管理域组成;
    (2)局部操作(即仅在单个域内执行的操作)仅受局部网域安全策略的支配;
    (3)全局操作(即包括若干域的操作)需要执行该操作的每个域都知道发起者;
    (4)不同域中的实体之间的操作需要相互的身份认证;
    (5)用全局身份认证取代局部身份认证;
    (6)资源的访问控制仅受局部安全支配;
    (7)用户可以将权限委派给进程;
    (8)同一域内的一组进程可以共享凭证。
    Globus假设该环境由多个管理域组成,其中每个域都具有其自己的局部安全策略。假
设仅因为该域在Globus内从而不能改变局部策略,而且Globus的全面策略不能覆盖局部
安全决策。这样,Globus中的安全就将自身限制于影响多个域的操作。
    与这一问题相关的是,Globus假设对一个域完全局部化的操作仅受该域的安全策略的
支配。换句话说,如果一个操作是在单个域内开始并执行的,那么所有安全问题都将仅使用
局部安全措施来执行。Globus不会利用其他措施。
    Globus安全策略规定对操作的请求可以全局地也可以局部地开始。该发起者,不管是
用户还是代表用户的进程,在执行该操作的每个域内都必须被该局部所了解。例如,一个用
户可能具有一个映射为指定域的局部名称的全局名称。该映射发生的确切程度留待每个域
自己确定。



商品评论(0条)
暂无评论……
书友推荐
编辑推荐
返回顶部
中图网
在线客服