死磕以太坊源码分析之Kademlia算法
Kademlia算法是一种点对点分布式哈希表(DHT),它在复杂环境中保持一致性和高效性。结构结构该算法基于异或指标构建拓扑结构,源码源码简化了路由过程并确保了信息的拓扑拓扑有效传递。通过并发的结构结构异步查询,系统能适应节点故障,源码源码业联单源码而不会导致用户等待过长。拓扑拓扑
在Kad网络中,结构结构每个节点被视作一棵二叉树的源码源码叶子,其位置由ID值的拓扑拓扑最短前缀唯一确定。节点能够通过将整棵树分割为连续、结构结构不包含自身的源码源码子树来找到其他节点。例如,拓扑拓扑节点可以将树分解为以0、结构结构、源码源码、为前缀的子树。节点通过连续查询和学习,逐步接近目标节点,最终实现定位。每个节点都需知道其各子树至少一个节点,这有助于通过ID值找到任意节点。
判断节点间距离基于异或操作。例如,节点与节点的距离为,高位差异对结果影响更大。异或操作的单向性确保了查询路径的稳定性,不同起始节点进行查询后会逐步收敛至同一路径,减轻热门节点的存储压力,加快查询速度。
Kad路由表通过K桶构建,每个节点保存距离特定范围内的节点信息。K桶根据ID值的前缀划分距离范围,每个桶内信息按最近至最远的顺序排列。K桶大小有限,确保网络负载平衡。当节点收到PRC消息时,会更新相应的K桶,保持网络稳定性和减少维护成本。K桶老化机制通过随机选择节点执行RPC_PING操作,避免网络流量瓶颈。
Kademlia协议包括PING、STORE、FIND_NODE、FIND_VALUE四种远程操作。这些操作通过K桶获得节点信息,并根据信息数量返回K个节点。系统存储数据以键值对形式,BitTorrent中key值为info_hash,value值与文件紧密相关。RPC操作中,接收者响应随机ID值以防止地址伪造,并在回复中包含PING操作校验发送者状态。
Kad提供快速节点查找机制,通过参数调节查找速度。节点x查找ID值为t的节点,递归查询最近的节点,直至t或查询失败。递归过程保证了收敛速度为O(logN),N为网络节点总数。查找键值对时,选择最近节点执行FIND_VALUE操作,缓存数据以提高下次查询速度。
数据存储过程涉及节点间数据复制和更新,确保一致性。加入Kad网络的节点通过与现有节点联系,并执行FIND_NODE操作更新路由表。节点离开时,系统自动更新数据,无需发布信息。Kad协议设计用于适应节点失效,周期性更新数据到最近邻居,确保数据及时刷新。
什么是调试源码c软件配置管理
软件配置管理(SCM)是指在开发过程中各阶段,管理计算机程序演变的学科,它作为软件工程的关键元素。已经成为软件开发和维护的重要组成部分。SCM提供了结构化的、有序化的、产品化的管理软件工程的方法。它涵盖了软件生命周期的所有领域并影响所有数据和过程。
配置管理是对产品进行标识、存储和控制,以维护其完整性、可追溯性以及正确性的学科。
配置管理的任务
配置管理的任务如下图所示:
(1)定义配置项:软件配置项(SCI)即软件配置管理的对象。软件开发过程中产生的所有信息构成软件配置,它们是:代码(源代码、目标代码)以及数据结构(内部数据、外部数据)、文档(技术文档、管理文档、需方文档)、报告,其中每一项称为配置项,软件配置项是配置管理的基本单位。同时,开发过程中使用的环境,如操作系统、各种支撑软件、配置管理工具,也可纳入软件配置管理范围。
(2)标识配置项:正确标识软件配置项对整个管理活动非常重要,对软件开发过程中的所有软件项目赋予唯一的标识符,便于对其进行状态控制和管理。
配置标识包括:文档标识、代码标识、运行文件标识。
典型的命名规则是RUP法。
(3)定义基线:基线标志着软件开发过程一个阶段的结束,任一软件配置项,一旦形成文档并审议通过,即成为基线。基本的作用在于把各阶段的工作划分得更明确,使本来连续的工作在这些点上断开,以便检验和肯定阶段成果。
(4)定义软件配置库:软件配置库内容因涵盖开发的全过程,应包括如表所示的软件项:
表 软件开发过程与软件配置库
模型、文档库代码库运行库软件分析设计软件实现软件运行软件分析设计模型源代码可执行代码软件分析设计文档目标代码使用数据测试数据软件开发环境软件运行环境
基线技术将项目实施配置管理的存储库分为3类:开发库、受控库、产品库。
①开发库:存放在开发过程中按照要求生成的各种技术文档、源代码、可执行代码和使用的数据,为开发人员的活动提供支持。
② 受控库:存放基线产品即项目转阶段经评审通过的和已经批准的软件工作产品和软件产品。
③产品库:存放项目正式交付用户的最终产品和最终运行环境。
(5)控制配置:配置控制的定义是为了明确配置管理在具体实现时所执行的配置规程,主要包括入库控制和变更控制。
(6)配置审计:包含了物理和功能上的审计。包括以下活动:① 验证每个软件配置项的正确性、一致性、完备性、有效性、可追踪性;② 在软件生存期内应定期配置审计工作;③定期进行软件备份,应保证备份介质的安全性和可用性。
(7)配置状态报告:提供软件开发过程的历史记录,内容包括配置管理项的现行状态及何时因何故发生了何事(入库、更动)。配置管理人员应定期或在需要时提交配置状态报告。配置状态报告包含了整个软件生命周期中对基线所有变更的可追踪性。
实施软件配置管理的优点
节约费用:缩短开发周期、减少施工费用
利于知识库的建立:代码对象库、业务及经验库
规范管理:量化工作量考核、规范测试、加强协调与沟通。
配置软件管理实施的mamakind溯源码流程
1.规划、调整网络开发环境
一个规划良好的开发环境,是实施配置管理系统的前提。此阶段要对配置管理系统做出规划,主要考虑以下问题:
网络的带宽、拓扑结构
服务器的选择、命名规范
存储区的定位
开发人员及组的命名规约等。
2.设计配置管理库
根据项目开发的要求,设计开发资源的存储模式,良好的存储模式有利于减轻管理上的负担,增强配置管理库的访问性能,同时便于控制访问权限,保护软件资产。
3.定义配置管理系统的角色
需要确定与配置管理相关的所有角色,包括他们的相应的活动。在开发过程中,一个开发人员可能兼任多种角色,但一项任务在同一时刻只能由一个角色来执行。
一般配置管理中的角色主要包括:
项目经理
配置管理员
软件开发人员
集成人员
QA人员
4.制定配置管理流程
配置管理实施的一个重要阶段,主要目的是根据项目开发的需要,制定相应的配置管理流程,以更好地支持开发,主要活动包括:
定制并行开发策略。合理的并行开发策略应该具有以下特点:协调项目的复杂性和需求,统一创建分支类型和元数据,为开发过程中的变更集成制定有效的规范,适时反映开发过程中方法和需求的变化:
发布版本管理。软件开发过程中的一个关键活动是提取工件的相关版本,以形成软件系统的阶段版本或发布版本,一般将其称为稳定基线。一个稳定基线代表新开发活动的开始,而一系列定制良好的活动之后又会产生一个新的稳定基线。有效地利用此项功能,在项目开发过程中可以至始至终管理、跟踪部件版本间的关联。
5.相关人员的培训
实施配置管理系统,相关人员需要接受培训:
管理员培训:针对配置管理员,主要学习配置管理工具管理相关内容:
开发人员培训:针对开发人员,主要学习配置管理工具与开发相关的常用操作
管理流程培训:针对全体人员,目的是了解配置管理策略和流程,以及如何与开发管理、项目管理相结合。
软件配置管理与CMMI
能力成熟度集成模型(Capability Maturity Model Integration)是由美国卡耐基·梅隆大学的软件工程研究所(SEI)组织开发,并于年发布的一种规范、实用的途径来管理软件过程的模型.CMMI通过指导软件开发人员的活动来改进软件过程,以达到软件过程可复用性、可定量管理、可有效控制的目的.软件配置管理是CMMI可重复级的一个关键过程域(Key Process Area,KPA),其目的是在整个项目的软件生命周期中,保持软件产品的完整性和可追踪性,这包含了对改变的控制和所有能影响到改变的软件因素的管理.作为过程实现、过程优化的一部分,配置管理是实现软件过程的基本保证,它还是基于重用的软件开发的管理手段,所以成为软件过程管理的核心.CMMI模型清晰地描述了SCM,并说明了SCM 的目的和所要达到的目标,具体描述了某级成熟度下软件过程在该方面所应达到的一组目标和实现这些目标的一组关键实践(Key Pradice).这些关键实践被划分为5类,分别为完成该组目标所需的承诺、执行能力、执行的活动、度量分析以及验证.使企业在实施软件配置管理时能知道到底要做什么,团队的配置管理现状如何评估,在哪些方面还可以进行改进等问题能得到具体的答案。
软件配置管理案例分析
案例一:配置管理在软件企业中的应用
软件配置管理,对从事软件的人来说, 并不陌生。要想真正做到实施好配置管理,对于软件配置管理的意义及其重要性有必要进行认识和理解。软件配置管理是软件项目管理的重要内容,也是保证软件质量的重要手段。它能够对软件开发过程进行有效管理和控制, 目的是实现软件产品的完整性、一致性、广州商城源码可控性,使产品极大程度地与用户需求相吻合 它能够控制、记录、追踪对软件的修改并形成规范文档,方便日后维护和升级, 更重要的是能够保护代码资源,积累软件财富,提高软件重用率。
一、软件配置管理存在的问题
很多软件企业在日常的开发工作中遇到的问题都是因缺少规范的管理造成的。
而发生这些问题需要我们花费很大的精力与时间来处理,而且有很多是重复的问题,有的是不必要的麻烦。
1.文档和代码管理不善。
我们知道开发一项软件产品, 其代码的可重用性相当高,但如果没有良好的配置管理流程,软件复用的效率将大幅降低, 比如对于复用的代码进行了必要的修改或改进,却只能通过手工将变更传递给所有复用该软件的项目,效率之低可想而知。另外开发过程形成的文档和代码等缺乏统一管理, 随意的保存往往会因为硬件故障或人员的离职而消失, 而各个开发人员编写的代码的风格迥异, 编码和设计脱节,也往往会导致重复开发、难以维护。
2.项目的进度状况不明确
软件工程思想指出越早发现缺陷和风险,采取相应措施的代价越小。然而由于缺乏配置管理的支持,部门主管及项目经理无法确切得知各个开发人员的具体工作,项目进展随意性很大,不能适时适度管理。问题往往会集中到项目里程碑时出现,开发人员为在期限内完成任务,只能敷衍了事,容忍部分缺陷存在,给后期施工留下隐患,造成无休止的维护。
3.并行开发的手段缺乏
在开发工作中,经常会出现并行开发的情况,并行开发能够有效提高开发效率。例如:一个项目可能在开发新版本的同时维护前一版本,或者需要针对不同客户进行定制修改。但并行开发在分支及合并时往往会衍生出很多麻烦,如果没有配置管理工具的支持,进行并行开发将十分困难,往往会造成修改过的bug 重复出现或者若干人进行相同的工作, 产生不必要的浪费,这样也会对开发的管理及代码的质量带来影响。
4.测试工作开展的不规范
国内很多企业已经认识到配置管理和软件测试的重要性,缺乏合理管理的软件测试只是形式主义。传统开发模式的弊端使得测试工作无法起到测试应有的作用,测试结果无法量化更无法考核。开发人员将精力耗费在如何应付测试,而测试人员单凳主观意愿进行测试, 走走过场,使得这一环节形同虚设, 当然就无法对以后的开发工作起指导作用。
二、软件配置管理在企业中的应用
我国目前的软件行业主要还是由中小型团队组成,相对应国家水平存在着严重的开发过程混乱,缺乏有效的过程管理手段,而软件配置管理是一套规范、高效的软件开发管理方法,同时也是提高软件质量的重要手段。配置管理由于其本身实施的便利性、工具的支持性以及与其他过程域良好的连接性,正符合企业的管理需求。软件配置管理可以帮助开发团队对软件开发过程进行有效的变更控制,高效地开发高质量的软件,从而达到提高软件生产质量这一根本任务,它有机地把其他支持活动结合起来,仙子座源码 形成一个整体, 相互促进,相互影响,配置管理为了实现控制变更, 高效、有序的存放、查找和利用软件开发信息, 为达到这一目的, 首先我们需要完成以下几个主要功能域:配置标识、版本控制、变更管理、配置审核和状态报告。下面本文就其中3个功能域进行阐述:
1.配置标识
软件配置标识就是对每个软件配置项的标识。 对一个软件项目而言,它的配置项有以下内容:需求分析文档、概要设计文档、详细设计文档、源代码、测试文档、客户文档等。
而对这么多需要存储的重要的文档和代码,软件配置管理工作的第一步就是建立一个安全、可靠的知识库,用于保存开发过程中产生的软件资产。在建好知识库后,首先要明确项目生命周期内所产生的各类文档和代码,然后确定其名称和标识规则。根据实际需要,将正式文档、模型文件、源代码等文件按照各自标识规则分门别类放入库中, 而对于临时文档、编译时产生的中间文件等,则不需将它们放入库中。原则是保证配置管理工具检索便利,让项目组成员容易记住标识规则, 同时要确保组织一级的标识规则的一致性。
2.变更管理
在软件配置管理中, 由于软件的可变性,变更管理成为一个难点,并且变更涉及的范围很广,各种因素都会引起变更,如市场的变化、技术的进步、客户对于项目认识的深入等等,都可能导致软件开发过程中变更的提出。如果缺乏对于变更的有效的管理能力,纷至沓来的变更就会成为开发团队的困扰。
实施高效的变更管理至少应该包括两个部分:“定义合理的变更管理流程”、“采用自动化工具作为支持”。在具体的实践中,变更管理的复杂程度与变更的具体类型有关。应该对变更进行分类和分层,既保证项目组成员有一定的自主权,又不会耽误高层经理对关键问题的把握。通常变更管理的流程会涉及到变更提交、变更复审、变更任务分配、变更结果验证等一系列活动。
3.配置审核
配置审核包括配置管理活动审核和基线审核。配置管理活动审核用于确保项目组成员的所有配置管理活动,遵循已批准的软件配置管理方针和规程,实施基线审核,要保证基线化软件工作产品的完整性和一致性, 并且满足其功能要求。基线的完整性可从以下几个方面考虑:基线库是否包括所有计划纳入的配置项?基线库中配置项自身的内容是否完整? 此外, 对于代码,要根据代码清单检查是否所有源文件都已存在于基线库。同时,还要编译所有的源文件, 检查是否可产生最终产品 一致性主要考察需求与设计以及设计与代码的一致关系, 尤其在有变更发生时,要检查所有受影响的部分是否都做了相应的变更。审核发现的不符合项要进行记录,并跟踪直到解决。在实际操作过程中,一般认为审核是一种事后活动, 很容易被忽视。但是“事后”也是有相对性的,在项目初期审核发现的问题,对项目后期工作总是有指导和参考价值的。
软件配置管理活动在整个开发活动中是一项支持性、保障性的工作,实施之前还应该对所有开发人员进行软件配置管理方面的培训。通过软件配置管理的实施,除了可以给企业带来效益, 还会对使用配置管理的每个人有所收益: 学习先进的软件过程管理思想,培养良好的团队合作精神,提高个人专业水平,增强自身的竞争力等。
基于openstack网络模式的vlan分析
OpenStack概念OpenStack是一个美国国家航空航天局和Rackspace合作研发的,以Apache许可证授权,并且是一个自由软件和开放源代码项目。、
OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过家企业及位开发者,这些机构与个人都将OpenStack作为基础设施即服务(简称IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息,帮助大家利用OpenStack前端来设置及管理自己的公共云或私有云。
openstack neutron中定义了四种网络模式:
# tenant_network_type = local
# tenant_network_type = vlan
# Example: tenant_network_type = gre
# Example: tenant_network_type = vxlan
本文主要以vlan为例,并结合local来详细的分析下openstack的网络模式。
1. local模式
此模式主要用来做测试,只能做单节点的部署(all-in-one),这是因为此网络模式下流量并不能通过真实的物理网卡流出,即neutron的integration bridge并没有与真实的物理网卡做mapping,只能保证同一主机上的vm是连通的,具体参见RDO和neutron的配置文件。
(1)RDO配置文件(answer.conf)
主要看下面红色的配置项,默认为空。
复制代码
代码如下:
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS
openswitch默认的网桥的映射到哪,即br-int映射到哪。 正式由于br-int没有映射到任何bridge或interface,所以只能br-int上的虚拟机之间是连通的。
复制代码
代码如下:
CONFIG_NEUTRON_OVS_BRIDGE_IFACES
流量最后从哪块物理网卡流出配置项
复制代码
代码如下:
# Type of network to allocate for tenant networks (eg. vlan, local,
# gre)
CONFIG_NEUTRON_OVS_TENANT_NETWORK_TYPE=local
# A comma separated list of VLAN ranges for the Neutron openvswitch
# plugin (eg. physnet1:1:,physnet2,physnet3::)
CONFIG_NEUTRON_OVS_VLAN_RANGES=
# A comma separated list of bridge mappings for the Neutron
# openvswitch plugin (eg. physnet1:br-eth1,physnet2:br-eth2,physnet3
# :br-eth3)
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=
# A comma separated list of colon-separated OVS bridge:interface
# pairs. The interface will be added to the associated bridge.
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=
(2)neutron配置文件(/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini)
复制代码
代码如下:
[ovs]
# (StrOpt) Type of network to allocate for tenant networks. The
# default value 'local' is useful only for single-box testing and
# provides no connectivity between hosts. You MUST either change this
# to 'vlan' and configure network_vlan_ranges below or change this to
# 'gre' or 'vxlan' and configure tunnel_id_ranges below in order for
# tenant networks to provide connectivity between hosts. Set to 'none'
# to disable creation of tenant networks.
#
tenant_network_type = local
RDO会根据answer.conf中local的配置将neutron中open vswitch配置文件中配置为local
2. vlan模式
大家对vlan可能比较熟悉,就不再赘述,直接看RDO和neutron的配置文件。
(1)RDO配置文件
复制代码
代码如下:
# Type of network to allocate for tenant networks (eg. vlan, local,
# gre)
CONFIG_NEUTRON_OVS_TENANT_NETWORK_TYPE=vlan //指定网络模式为vlan
# A comma separated list of VLAN ranges for the Neutron openvswitch
# plugin (eg. physnet1:1:,physnet2,physnet3::)
CONFIG_NEUTRON_OVS_VLAN_RANGES=physnet1:: //设置vlan ID value为~
# A comma separated list of bridge mappings for the Neutron
# openvswitch plugin (eg. physnet1:br-eth1,physnet2:br-eth2,physnet3
# :br-eth3)
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-eth1 //设置将br-int映射到桥br-eth1(会自动创建phy-br-eth1和int-br-eth1来连接br-int和br-eth1)
# A comma separated list of colon-separated OVS bridge:interface
# pairs. The interface will be added to the associated bridge.
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-eth1:eth1 //设置eth0桥接到br-eth1上,即最后的网络流量从eth1流出 (会自动执行ovs-vsctl add br-eth1 eth1)
此配置描述的网桥与网桥之间,网桥与网卡之间的映射和连接关系具体可结合 《图1 vlan模式下计算节点的网络设备拓扑结构图》和 《图2 vlan模式下网络节点的网络设备拓扑结构图 》来理解。
思考:很多同学可能会碰到一场景:物理机只有一块网卡,或有两块网卡但只有一块网卡连接有网线
此时,可以做如下配置
(2)单网卡:
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-eth0 //设置将br-int映射到桥br-eth
复制代码
代码如下:
# A comma separated list of colon-separated OVS bridge:interface
# pairs. The interface will be added to the associated bridge
CONFIG_NEUTRON_OVS_BRIDGE_IFACES= //配置为空
这个配置的含义是将br-int映射到br-eth0,但是br-eth0并没有与真正的物理网卡绑定,这就需要你事先在所有的计算节点(或网络节点)上事先创建好br-eth0桥,并将eth0添加到br-eth0上,然后在br-eth0上配置好ip,那么RDO在安装的时候,只要建立好br-int与br-eth0之间的连接,整个网络就通了。
此时如果网络节点也是单网卡的话,可能就不能使用float ip的功能了。
(3)双网卡,单网线
复制代码
代码如下:
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-eth1 //设置将br-int映射到桥br-eth1
/pp# A comma separated list of colon-separated OVS bridge:interface
/pp# pairs. The interface will be added to the associated bridge.
/ppCONFIG_NEUTRON_OVS_BRIDGE_IFACES=eth1 //配置为空
还是默认都配置到eth1上,然后通过iptables将eth1的流量forward到eth0(没有试验过,不确定是否可行)
3. vlan网络模式详解
图1 vlan模式下计算节点的网络设备拓扑结构图
首先来分析下vlan网络模式下,计算节点上虚拟网络设备的拓扑结构。
(1)qbrXXX 等设备
前面已经讲过,主要是因为不能再tap设备vnet0上配置network ACL rules而增加的
(2)qvbXXX/qvoXXX等设备
这是一对veth pair devices,用来连接bridge device和switch,从名字猜测下:q-quantum, v-veth, b-bridge, o-open vswitch(quantum年代的遗留)。
(3) int-br-eth1和phy-br-eth1
这也是一对veth pair devices,用来连接br-int和br-eth1, 另外,vlan ID的转化也是在这执行的,比如从int-br-eth1进来的packets,其vlan id=会被转化成1,同理,从phy-br-eth1出去的packets,其vlan id会从1转化成
(4)br-eth1和eth1
packets要想进入physical network最后还得到真正的物理网卡eth1,所以add eth1 to br-eth1上,整个链路才完全打通
图2 vlan模式下网络节点的网络设备拓扑结构图
网络节点与计算节点相比,就是多了external network,L3 agent和dhcp agent。
(1)network namespace
每个L3 router对应一个private network,但是怎么保证每个private的ip address可以overlapping而又不相互影响呢,这就利用了linux kernel的network namespace
(2)qr-YYY和qg-VVV等设备 (q-quantum, r-router, g-gateway)
qr-YYY获得了一个internal的ip,qg-VVV是一个external的ip,通过iptables rules进行NAT映射。
思考:phy-br-ex和int-br-ex是干啥的?
坚持"所有packets必须经过物理的线路才能通"的思想,虽然 qr-YYY和qg-VVV之间建立的NAT的映射,归根到底还得通过一条物理链路,那么phy-br-ex和int-br-ex就建立了这条物理链路。
NS是什么的简称?
NS是一种针对网络技术的源代码公开的、免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,而且发展到今天,它所包含的模块已经非常丰富,几乎涉及到了网络技术的所有方面。所以,NS成了目前学术界广泛使用的一种网络模拟软件。在每年国内外发表的有关网络技术的学术论文中,利用NS给出模拟结果的文章最多,通过这种方法得出的研究结果也是被学术界所普遍认可的,此外,NS也可作为一种辅助教学的工具,已被广泛应用在了网络技术的教学方面。因此,目前在学术界和教育界,有大量的人正在使用或试图使用NS。
然而,对初学者来说,NS是非常难于掌握的,一般人从学习NS到上手至少需要半年多时间。原因是多方面的:一方面,NS内容庞杂,随软件所提供的手册更新不够快,初学者阅读起来非常困难;另一方面,使用NS还要掌握其它很多必备的相关知识以及相关工具,这会使初学者感到无从入手;有的使用者可能还不了解网络模拟的过程或是对NS软件的机制缺乏理解,这也影响了对NS的掌握。另外,不论在国外还是国内,还没有一本书能集中回答和解决这些问题,这也是NS难于被掌握的一个重要原因。
1、NS2简介
NS2(Network Simulator, version 2)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。由UC Berkeley开发而成。它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。目前NS2可以用于仿真各种不同的IP网,已经实现的一些仿真有:网络传输协议,比如TCP和UDP;业务源流量产生器,比如FTP, Telnet, Web CBR和VBR;路由队列管理机制,比如Droptail , RED和CBQ;路由算法,比如Dijkstra等。NS2也为进行局域网的仿真而实现了多播以及一些MAC 子层协议。
NS2使用C++和Otcl作为开发语言。NS可以说是Otcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。事件调度器计算仿真时间,并且激活事件队列中的当前事件,执行一些相关的事件,网络组件通过传递分组来相互通信,但这并不耗费仿真时间。所有需要花费仿真时间来处理分组的网络组件都必须要使用事件调度器。它先为这个分组发出一个事件,然后等待这个事件被调度回来之后,才能做下一步的处理工作。事件调度器的另一个用处就是计时。NS是用Otcl和C++编写的。由于效率的原因,NS将数据通道和控制通道的实现相分离。为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C++写出并编译的,这些对象通过映射对Otcl解释器可见。
当仿真完成以后,NS将会产生一个或多个基于文本的跟踪文件。只要在Tcl脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信息。这些数据可以用于下一步的分析处理,也可以使用NAM将整个仿真过程展示出来。
2、使用NS进行网络仿真的方法和一般过程。
进行网络仿真前,首先分析仿真涉及哪个层次,NS仿真分两个层次:一个是基于OTcl编程的层次。利用NS已有的网络元素实现仿真,无需修改NS本身,只需编写OTcl脚本。另一个是基于C++和OTcl编程的层次。如果NS中没有所需的网络元素,则需要对NS进行扩展,添加所需网络元素,即添加新的C++和OTcl类,编写新的OTcl脚本。
假设用户已经完成了对NS的扩展,或者NS所包含的构件已经满足了要求,那么进行一次仿真的步骤大致如下:
(1)开始编写OTcl脚本。首先配置模拟网络拓扑结构,此时可以确定链路的基本特性,如延迟、带宽和丢失策略等。
(2)建立协议代理,包括端设备的协议绑定和通信业务量模型的建立。
(3)配置业务量模型的参数,从而确定网络上的业务量分布。
(4)设置Trace对象。NS通过Trace文件来保存整个模拟过程。仿真完后,用户可以对Trace文件进行分析研究。
(5)编写其他的辅助过程,设定模拟结束时间,至此OTcl脚本编写完成。
(6)用NS解释执行刚才编写的OTcl脚本。
(7)对Trace文件进行分析,得出有用的数据。
(8)调整配置拓扑结构和业务量模型,重新进行上述模拟过程。
NS2采用两级体系结构,为了提高代码的执行效率,NS2 将数据操作与控制部分的实现相分离,事件调度器和大部分基本的网络组件对象后台使用C++实现和编译,称为编译层,主要功能是实现对数据包的处理;NS2的前端是一个OTcl 解释器,称为解释层,主要功能是对模拟环境的配置、建立。从用户角度看,NS2 是一个具有仿真事件驱动、网络构件对象库和网络配置模块库的OTcl脚本解释器。NS2中编译类对象通过OTcl连接建立了与之对应的解释类对象,这样用户间能够方便地对C++对象的函数进行修改与配置,充分体现了仿真器的一致性和灵活性。
3、NS2的功能模块
NS2仿真器封装了许多功能模块,最基本的是节点、链路、代理、数据包格式等等,下面分别来介绍一下各个模块。
(1)事件调度器:目前NS2提供了四种具有不同数据结构的调度器,分别是链表、堆、日历表和实时调度器。
(2)节点(node):是由TclObject对象组成的复合组件,在NS2中可以表示端节点和路由器。
(3)链路(link):由多个组件复合而成,用来连接网络节点。所有的链路都是以队列的形式来管理分组的到达、离开和丢弃。
(4)代理(agent):负责网络层分组的产生和接收,也可以用在各个层次的协议实现中。每个agent连接到一个网络节点上,由该节点给它分配一个端口号。
(5)包(packet):由头部和数据两部分组成。一般情况下,packet只有头部、没有数据部分。
4、NS2的软件构成
NS2包含Tcl/Tk, OTcl, NS,Tclcl。其中Tcl是一个开放脚本语言,用来对NS2进行编程;Tk是Tcl的图形界面开发工具,可帮助用户在图形环境下开发图形界面;OTcl是基于Tcl/Tk的面向对象扩展,有自己的类层次结构;NS2为本软件包的核心,是面向对象的仿真器,用C++编写,以OTcl解释器作为前端;Tclcl则提供NS2和OTcl的接口,使对象和变量出现在两种语言中。为了直观的观察和分析仿真结果,NS2 提供了可选的Xgraphy、可选件Nam。
5、NS现有的仿真元素
从网络拓扑仿真、协议仿真和通信量仿真等方面介绍NS的相应元素:
(1)网络拓扑主要包括节点、链路。NS的节点由一系列的分类器(Classifier,如地址分类器等)组成,而链路由一系列的连接器(Connector)组成。
(2)在节点上,配置不同的代理可以实现相应的协议或其它模型仿真。如NS的TCP代理,发送代理有:TCP,TCP/Reno,TCP/Vegas,TCP/Sack1,TCP/FACK,TCP/FULLTCP等,接收代理有:TCPSINK,TCPSINK/DELACK。TCPSINK/SACK1,TCPSINK/SACK1/DELACK等。此外,还提供有UDP代理及接收代理Null(负责通信量接收)、Loss Monitor(通信量接收并维护一些接收数据的统计)。
(3)网络的路由配置通过对节点附加路由协议而实现。NS中有三种单播路由策略:静态、会话、动态。
(4)在链路上,可以配置带宽、时延和丢弃模型。NS支持:Drop-tail(FIFO)队列、RED缓冲管、CBO(包括优先权和Round-robin 调度)。各种公平队列包括:FQ,SFQ,DRR等。
(5)通信量仿真方面,NS提供了许多通信应用,如FTP,它产生较大的峰值数据传输;Telnet则根据相应文件随机选取传输数据的大小。此外,NS提供了四种类型的通信量产生器:EXPOO,根据指数分布(On/Off)产生通信量,在On阶段分组以固定速率发送,Off阶段不发送分组,On/Off的分布符合指数分布,分组尺寸固定;POO,根据Pareto分布(On/Off)产生通信量,它能用来产生长范围相关的急剧通信量;CBR,以确定的速率产生通信量,分组尺寸固定,可在分组间隔之间产生随机抖动;Traffic Trace,根据追踪文件产生通信量。
å¦ä¹ åç½ç«
1.å ä¸è½½ç½é¡µå¶ä½å·¥å ·ï¼Dreamweaver v8.0 ç®ä½æ³¨åç
ä¸è½½å°åï¼
/dw.html
2.å¼å§å¦ä¹ ï¼å»ç½æå¦é¢å¦ä¹ ç½é¡µå¶ä½çæ¹æ³ã
ãç½ç«è®¾è®¡ç³»åå¤åªä½æç¨ã
/special/w/SQ/webmediatech.html
3.å¦æä¼åäºï¼ç³è¯·å 费主页空é´ï¼å¦æèªå·±ææ´å¥½äºï¼ï¼æ³¨ï¼ä¸»æºæ¯ç©ºé´ï¼æ²¡æ请å»è¿éæ¾ä¸ä¸ªéåèªå·±çç³è¯·ï¼å è´¹ã
4.æå好ç主页ä¸ä¼ å°æ¨ç空é´ãéè¦FTPä¸ä¼ 软件ã
ä¸è½½å°åï¼
/ftp.html
5.ç¨æ¨èªå·±çæè ç³è¯·çå è´¹ååï¼ä¸è¬ç³è¯·å 费空é´é½èµ éä¸ä¸ªäºçº§ååï¼è®¿é®æ¨ç主页ã
åç»ä½ ä¸ä¸ªè¯¦ç»ç好äº
æ¶ä¸éçåç§é讯ææ¯çåå±ï¼äºèç½å·²å¨ä¸å½éæ¥è¿å ¥æ®åé¶æ®µï¼è®¸å¤äººå¨å å享åæµè§æ°é»ï¼ç½ä¸è天ï¼ç½ç»æ¸¸æï¼ç½ä¸äº¤æï¼æ¶åçµåé®ä»¶çç½ç»çåç§ä¹è¶£åï¼å¼å§ä¸æ»¡è¶³äºè¢«å¨å¼çæ¥åï¼å¸æè½ä¸»å¨åä¸ç½ç»ï¼å æ¤å¤§éç个人ç½ç«åºè¿èçäºã
计ç®æºä¸ç½ç»ä¸ä¸ææ¯äººåè½å©ç¨ä¸æä¹é¿åå¨æä¸æ¹é¢çä¸é¿è½»æ¾å¶ä½ç½é¡µï¼ä½å¤§éçç½ç»èé¸çº§äººç©å¦ä½å¶ä½ä¸ªäººä¸»é¡µï¼å»ºç«ä¸ªäººç½ç«å¢ï¼æ大æ¦æ»ç»äºä»¥ä¸å ç¹ï¼å¸æ对ä¸äºå¯¹è¿æ¹é¢ç¼ºä¹åºæ¬äºè§£ç人æä¾ä¸äºå¸®å©ãå¦æä½ æ¯ä¸ªç»å¸¸ä¸ç½çç½è«ï¼å¹¶å¯¹å¦ä½å»ºç«ç½ç«æä¸å®çå ´è¶£ï¼é£ä¹è¯·ä½ 继ç»è¯»ä¸å»ï¼å¦åææ¨èä½ ä½¿ç¨æäºç½ç«æ¨åºçå»çå¼ç个人ç½é¡µæ请ä¸ä¸çç½é¡µå¶ä½å ¬å¸ä»£å³ï¼å®å ¨æ²¡å¿ è¦èªå·±å¨æã
1ï¼ è¦å»ºç«ä¸ªäººç½ç«ï¼é¦å å¿ é¡»è¦äºè§£ä¸ä¸ç®åç½é¡µå¶ä½çåºæ¬è¯è¨HTMLï¼å ¥é¨å³å¯ï¼å¤§æ¦è±ä¸ªä¸äºå°æ¶å°±å¯ã
2ï¼ å¦ä¼ä½¿ç¨ç®åæµè¡çç½é¡µå¶ä½è½¯ä»¶ï¼å¦FrontpageãDreamweaverçä¸äºåè½å¼ºå¤§ï¼æè§æå¾ç软件ï¼åæ¥äºè§£å°±å¯ï¼ä¸ç¨å ¨é¨ææ¡ï¼ä¸è¬æ¯è¾¹ç¨è¾¹å¦ï¼ä¸ææé«ä½¿ç¨æ°´å¹³ã
3ï¼ å¹¿æ³çä¸ç½æµè§åç§ç½é¡µï¼ä¸å¼å§æ好è½ä¸è½½ä¸äºè¾ç®åç个人ç½é¡µï¼å 为ä»ä»¬æç¨å°çææ¯è¾ä¸ºç®åï¼å¯ç¨ç½é¡µå¶ä½è½¯ä»¶æå¼ç 究ãç¶åæ¨èå»æµè§ä¸äºä¸ä¸çç½é¡µè®¾è®¡ç½ç«ï¼å¦ä¹ ä¸äºæçç»éªï¼åæ¶å¯ä¸è½½ä¸äºç½é¡µç»æ模çä¾èªå·±å¥ç¨ã
4ï¼ ç¡®å®ä½ çç½ç«ä¸»é¢ï¼æ个人ä¸ä¸»å¼ å¼å§å°±æ³å»ºè½¯ä»¶å¤§å ¨ã书åºçç½ä¸æµè¡ç为ç½ç«ä¸»é¢ï¼å 为第ä¸ä½ ä¸å¤ä¸ä¸ï¼ç½ä¸å·²æ太å¤çå类软件ï¼å«äººä¸å¯è½ä¸ä½ çç½ç«ä¸è½½ã第äºè¿ç±»ç½ç«éè¦å·¨å¤§ç主页空é´ï¼ä¸ä» ä¸å¼å§ä½ ç³è¯·ä¸å°è¿ä¹å¤§ç空é´ï¼èä¸ä½ ä¹ä¸å¯è½ç»å¸¸ä¸è½½ç»´æ¤ãç½ç«ä¸»é¢æ好æ¯æä½ ç个人ç¹è²ï¼å®å¨ä¸è½ç¡®å®æ建议èªå·±åä¸ä¸ªç§äººé¨æ·ç½ç«ï¼å°å¹³æ¶èªå·±ç»å¸¸å»çç½ç«åä¸ä¸ªè¾ä¸ºç»¼åçè¿ç»ã
5ï¼ ç½é¡µæ好ä¸è¦ç¨ç¹å«ä¸ä¼ä¸åçé¢è²ãåä½ï¼å 为æ¯ä¸ªäººä½¿ç¨ç计ç®æºåä¸ç¸åï¼ç¹å«çé¢è²ãåä½å«äººä¸ä¸å®è½çå¾å°ã
6ï¼ ç½é¡µè¦å¢å ç¾è§å¾çä¸å¯ç¼ºå°ï¼æ建议å¦æä½ ä¼ç¨ä¸äºä¸ä¸çä½å¾è½¯ä»¶æ好èªå·±å¶ä½ï¼è¿ä¼æèªå·±çç¹è²ï¼æ¾äºç§äººç §çä¹å¯ä»¥ï¼ä½åè®°åç§å¾çä¸å®è¦ä½ä¼åå¤çï¼åå°å®çåå¨å°ºå¯¸ãæéä¸ä¸æ¯é¡µä¸è¦æ¾è¿å¤çå¾çï¼å 为第ä¸ä¼ä½¿ç½é¡µæ¾å¾æä¹±ï¼ç¬¬äºä¼ä½¿ä½ çç½é¡µæ¾ç¤ºé度è¿æ ¢ãå¶ä½å¾çç常ç¨è½¯ä»¶æPhotoshopï¼Fireworksçã
7ï¼ ç½é¡µä¸å¯ä»¥ç¨ä¸äºå¨ç»ä¸ç¹æå¢å ä½ ä¸»é¡µçç¾è§ä¸åè½ï¼å¨ç»å¯ä¸ç½æ¾ï¼åæ ·æ好è½èªå·±å¶ä½ï¼GIFæ ¼å¼çæ常ç¨ï¼å¯ç¨UleadçGig Animator软件å¶ä½ï¼ç®åæµè¡çæ¯Flashå¨ç»ï¼æ´å¤ååï¼å°ºå¯¸æ´å°ï¼ç¼ºç¹æ¯æäºè®¡ç®æºä¸çæµè§å¨ç¼ºç没æå®è£ Flashæµè§è½¯ä»¶ï¼æäºè®¡ç®æºç¨æ·ä¸è½çå°Flashãç½ä¸è¿æ许å¤å è´¹çJavascriptçå¯ä¾ä½¿ç¨ï¼ä¸å¾çä¸æ ·ï¼æ建议æ¯é¡µä¸è¦æ¾å¤ªå¤çå¨ç»ä¸ç¹æã
8ï¼ ç½é¡µåºæ¬å»ºæåï¼ä¸ç½æ¾å è´¹ç主页空é´ï¼ä»¥å ¶ä¸»æºçé度ï¼æä¾ç空é´å¤§å°åææ åºæ¬çCGIåè½åå ¶æä¾çååæ¯å¦ç®åæ记为èéä¾æ®ï¼æè°CGIæ¯æ主æºæå¡å¨ä¸æä¾çç¨åºï¼ä¸è¬ä½ å¯ç³è¯·æå 费计æ°å¨ãçè¨æ¿çãæ¾å°é度快ï¼ä¸»é¡µåæ¾ç©ºé´å¤§ï¼ååç®åçç½ç«åæ¾ä½ çç½é¡µã
9ï¼ æ¥ä¸æ¥æ¯å°ç½é¡µä¸ä¼ è³ä½ ç³è¯·çæå¡å¨ä¸ï¼å ·ä½ä¸ä¼ çåæ³ä½ å¨ç³è¯·ä¸»é¡µç©ºé´æ¶å°±ä¼äºè§£ï¼å ·ä½ä½¿ç¨ä½ å¶ä½ç½é¡µç软件å³å¯ï¼æ个人æ¨è使ç¨CuteFTP Proä¸ä¼ ï¼è¿ä¸ªè½¯ä»¶åè½å¼ºå¤§ï¼ç®åæç¨ã
ï¼ å¥½ï¼ç°å¨ä½ çç½ç«å·²å»ºç«ï¼ä½ å¯éç¥ä½ çæåä¸å»æµè§ï¼æ个人ç½ç«å°å¨ä½ çåçä¸ï¼è¿æ³æ¨å¹¿ä½ çç½ç«ï¼é£ä½ å¯å»å大æç´¢ç½ç«ç»å½ä½ çæ°ç«ï¼å¦é èãæèãæ°æµªçç¥åç½ç«ãä½ è¿å¯ä¸å ¶å®ç½ç«ç³è¯·åæ è¿ç»ãå»ä¸äºæä¾è¿ç»äº¤æ¢çç½ç«ç³è¯·å¹¿å交æ¢ï¼å¦å¤ªæé¾ï¼é ·ç«çãå¨åè¿ä¸æ¥æ¶ä½ éè¦åäºä¸ªXåX尺寸ç广åå¾çï¼å¨ç»æ好ï¼åå¨å¤§å°å°½éæ§å¶å¨k以ä¸ã
ï¼ å¦æä½ è¿æ³é ä½ çç½ç«èµä¸äºå°é±ï¼ä½ å¯å»ä¸äºåä¸ç½ç«ç³è¯·å¹¿åè¿ç»ï¼æ¿ä»ä»¬å广åï¼ä¸è¬ä»¥ä»ä½ çç½é¡µç¹å»å°ä»ä»¬çç½é¡µæ¬¡æ°ç®é±ã
ï¼ æåæè¦æéåä½æªæ¥ç½ä¸»ï¼ä½ çç½ç«åä¸ä¸è¦æ¾ä¸äºææ¾ä¸å½å æ¿æ²»ç¸æµè§¦çå 容ï¼è¿äºå ³é大ï¼ä¸å¯å¿æï¼å¦åç½ç«è¢«å ³éäºå°ï¼åç¢ä¹è¯´ä¸å®å¦ãå¦å¤ï¼ç½ç«å 容ä¸æ§æå ³å¯å¤§å¤§å¢å 被æµè§çæ°éï¼ä½é»è²çå 容ä¸è¦æ¾ï¼è½è¯´æ§è´¨æ¯ä¸ä¸åå¨å 容ï¼ä½ä¹æé®é¢ã建议æææ¦è¾¹çï¼æä¾ä¸äºæ§æè²ãæ§ç¥è¯ï¼æ æ ç±ç±çå 容æ 伤大é ã
éçç½ç»ææ¯çä¸æåå±ï¼ç½ç»åºç¨å·²ç»æ¸éå°äººç±»ç¤¾ä¼çå个è§è½ãä½ä¸ºç½ç»ä¸ççæ¯æç¹çç½ç«ï¼æ´æ¯äººä»¬å ³æ³¨ççç¹ï¼æ¿åºå©ç¨ç½ç«å®£ä¼ èªå·±çæ½æ¿çº²é¢ï¼æ¥çæ为ä¸ç¾å§äº¤æµçç´é车ï¼ä¼ä¸å©ç¨ç½ç«å®£ä¼ èªå·±ç形象ï¼æææ éåæºï¼ä¸ªäººå©ç¨ç½ç«å±ç¤ºä¸ªæ§é£éï¼å建彼æ¤æ²éçæ¡¥æ¢ãè¶æ¥è¶å¤ç人å¸ææ¥æç½ç«ï¼å¼è¾ç½ç»ä¸çéçä¸ç天å°ãå¦ä½è®¾è®¡ä¸ä¸ªåºè²çç½ç«å¢ï¼å ³äºè¿ä¸ªé®é¢ï¼äººä»¬è®¨è®ºçå¾å¤ï¼å¯ä»¥è®¨è®ºçå 容ä¹å¾å¤ï¼å ä¹ç½ç»ææ¯çé£éåå±ï¼å¾é¾æåºä¸ä¸ªç»å¯¹æå¨åæ£ç¡®ç设计æè·¯ï¼ç¬è ä¸æï¼æ ¹æ®èªå·±ç设计ä½
ä¼ï¼æ»ç»åºä»¥ä¸åºæ¬è®¾è®¡æè·¯ï¼
ä¸ãå®ä½ç½ç«ç主é¢åå称
ç½ç«ç主é¢ä¹å°±æ¯ç½ç«çé¢æï¼ç½ç«è®¾è®¡å¼å§é¦å éå°çé®é¢ãç½ç«é¢æåå¥ç¾æª,ç³ç 满ç®ï¼åªè¦æ³çå°ï¼å°±å¯ä»¥æå®å¶ä½åºæ¥ãä¸é¢æ¯ç¾å½ã个人çµèãæå¿(PC Magazine)è¯åºç年度æååä½çå ¨ç¾ç¥åç½ç«çåç±»é¢æï¼
第1ç±»ï¼ç½ä¸æ±è
第2ç±»ï¼ç½ä¸è天ï¼å³æ¶ä¿¡æ¯/ ICQ
第3ç±»ï¼ç½ä¸ç¤¾åºï¼è®¨è®º/é®ä»¶å表
第4ç±»ï¼è®¡ç®æºææ¯
第5ç±»ï¼ç½é¡µ/ç½ç«å¼å
第6ç±»ï¼å¨±ä¹ç½ç«
第7ç±»ï¼æ è¡
第8ç±»ï¼åè/èµè®¯
第9ç±»ï¼å®¶åº/æè²
第类ï¼çæ´»/æ¶å°
æ¯ä¸ªå¤§ç±»é½å¯ä»¥ç»§ç»ç»åï¼æ¯å¦å¨±ä¹ç±»åå为ä½è²/çµå½±/é³ä¹çå°ç±»ï¼é³ä¹åå¯ä»¥ææ ¼å¼å为MP3ï¼VQFï¼Raçï¼æ表ç°å½¢å¼åå¤å ¸ï¼ç°ä»£ï¼ææ»çãåæ¶ï¼å个é¢æç¸èç³»å交åç»åå¯ä»¥äº§çæ°å¾é¢æï¼ä¾å¦æ 游论å(æ 游+讨论)ï¼ç»å ¸å ¥çææ¾(足ç+å½±è§)æè¿æ ·åä¸å»ï¼é¢æå¯ä»¥ææåä¸ä¸ç§ãè¿ä¹å¤é¢æï¼å¦ä½éæ©å¢ï¼éµå¾ªçååå¦ä¸ï¼
1ã主é¢è¦å°èç²¾
å®ä½è¦å°ï¼å 容è¦ç²¾ãå¦æä½ æ³å¶ä½ä¸ä¸ªå ç½ä¸è±¡çç«ç¹ï¼æææä½ è®¤ä¸ºç²¾å½©çä¸è¥¿é½æ¾å¨ä¸é¢ï¼é£ä¹å¾å¾ä¼äºä¸æ¿è¿ï¼ç»äººçæè§æ¯æ²¡æ主é¢ï¼æ²¡æç¹è²ï¼æ ·æ ·æï¼å´æ ·æ ·é½å¾è¤æµ ï¼å ä¸ºä½ ä¸å¯è½æé£ä¹å¤çç²¾åå»ç»´æ¤å®ãç½ç«çæ大ç¹ç¹å°±æ¯æ°åå¿«ï¼ç®åæçé¨ç个人主页é½æ¯å¤©å¤©æ´æ°çè³å å°æ¶æ´æ°ä¸æ¬¡ãææ°çè°æ¥ç»æä¹æ¾ç¤ºï¼ç½ç»ä¸ç"主é¢ç«"æ¯"ä¸å ¨ç«"æ´å人们åç±ï¼å°±å¥½æ¯ä¸ååºåç¾è´§ååºï¼å¦ææéè¦ä¹°æä¸æ¹é¢çä¸è¥¿ï¼è¯å®ä¼éæ©ä¸ä¹°åºã
2ãé¢ææ好æ¯ä½ èªå·±æ é¿æè åç±çå 容
æ¯å¦ï¼ä½ æ é¿ç¼ç¨ï¼å°±å¯ä»¥å»ºç«ä¸ä¸ªç¼ç¨ç±å¥½è ç½ç«ï¼å¯¹è¶³çæå ´è¶£ï¼å¯ä»¥æ¥éææ°çæåµï¼çæå¨æçãè¿æ ·å¨å¶ä½æ¶ï¼æä¸ä¼è§å¾æ èæè åä¸ä»å¿ãå ´è¶£æ¯å¶ä½ç½ç«çå¨åï¼æ²¡æçæ ï¼å¾é¾è®¾è®¡å¶ä½åºä¼ç§çç½ç«ã
3ãé¢æä¸è¦å¤ªæ»¥æè ç®æ 太é«ã
"太滥"æ¯æå°å¤å¯è§ï¼äººäººé½æçé¢æï¼æ¯å¦è½¯ä»¶ä¸è½½ï¼å 费信æ¯ã"ç®æ 太é«"æ¯æå¨è¿ä¸é¢æä¸å·²ç»æé常ä¼ç§ï¼ç¥å度å¾é«çç«ç¹ï¼ä½ è¦è¶ è¿å®æ¯å¾å°é¾çã
å¦æé¢æå·²ç»ç¡®å®ä»¥åï¼å°±å¯ä»¥å´ç»é¢æç»ç½ç«èµ·ä¸ä¸ªååãç½ç«å称ï¼ä¹æ¯ç½ç«è®¾è®¡çä¸é¨åï¼èä¸æ¯å¾å ³é®çä¸ä¸ªè¦ç´ ãä½ æ¥çï¼"çµèå¦ä¹ 室"å"çµèä¹å®¶"æ¾ç¶æ¯åè ç®ç»ï¼"è¿·ç¬ä¹å"å"MIDIä¹å"æ¾ç¶æ¯åè ææ°ï¼"å¿ç«¥å¤©å°"å"ä¸å½å¹¼å¿å"æ¾ç¶æ¯åè 大æ°ãæ们é½ç¥éPIIIçä¸æå称"å¥è ¾"ï¼å¦ææ¹ä¸º"å¥è·"ï¼å¯è½å°±æ²¡æä»å¤©è¿ä¹"ç«"äºãåç°å®çæ´»ä¸ä¸æ ·ï¼ç½ç«å称æ¯å¦æ£æ°ï¼å亮ï¼æè®°ï¼å¯¹ç½ç«ç形象åå®£ä¼ æ¨å¹¿ä¹æå¾å¤§å½±åãæç建议æ¯ï¼
1ãå称è¦æ£
å ¶å®å°±æ¯è¦åæ³ï¼åçï¼åæ ãä¸è½ç¨åå¨çï¼è²æ çï¼è¿·ä¿¡çï¼å±å®³ç¤¾ä¼å®å ¨çåè¯è¯å¥ã
2ãå称è¦æè®°
æ好ç¨ä¸æå称ï¼ä¸è¦ä½¿ç¨è±ææè ä¸è±ææ··ååå称ãå¦å¤ï¼ç½ç«å称çåæ°åºè¯¥æ§å¶å¨å 个å(æ好å个å)以å ï¼å个åçä¹å¯ä»¥ç¨æè¯ãåæ°å°è¿æ个好å¤ï¼éåäºå ¶ä»ç«ç¹çé¾æ¥æçã
3ãå称è¦æç¹è²
å称平å®å°±å¯ä»¥æ¥åï¼å¦æè½ä½ç°ä¸å®çå 涵ï¼ç»æµè§è æ´å¤çè§è§å²å»å空é´æ³è±¡åï¼å为ä¸åãä¾å¦ï¼é³ä¹åå«ï¼ç½é¡µé¶å§ï¼e书æ¶ç©ºçãå¨ä½ç°åºç½ç«ä¸»é¢çåæ¶ï¼è½ç¹åºç¹è²ä¹å¤ã
äºãå®ä½ç½ç«çCI形象
æè°CI(corporate identity)ï¼æææ¯éè¿è§è§æ¥ç»ä¸ä¼ä¸ç形象ãä¸ä¸ªæ°åºçç½ç«ï¼åå®ä½å ¬å¸ä¸æ ·ï¼éè¦æ´ä½ç形象å è£ å设计ãåç¡®çï¼æåæçCI设计ï¼å¯¹ç½ç«çå®£ä¼ æ¨å¹¿æäºåååçææãå ·ä½çåæ³æ¯ï¼
1ã设计ç½ç«çæ å¿(logo)
å°±å¦ååæ ä¸æ ·ï¼æ å¿æ¯ä½ ç«ç¹ç¹è²åå 涵çéä¸ä½ç°ï¼çè§æ å¿å°±è®©å¤§å®¶èæ³èµ·ä½ çç«ç¹ãæ å¿ç设计åææ¥èªä½ ç½ç«çå称åå 容ï¼
(1)ç½ç«æ代表æ§ç人ç©ãå¨ç©ãè±èçï¼å¯ä»¥ç¨å®ä»¬ä½ä¸ºè®¾è®¡çèæ¬ï¼å 以å¡éååèºæ¯åï¼ä¾å¦è¿ªæ¯å°¼çç±³èé¼ ï¼æççå¡éçç¸ççã
(2)ç½ç«æä¸ä¸æ§çï¼å¯ä»¥ä»¥æ¬ä¸ä¸æ代表çç©åä½ä¸ºæ å¿ãæ¯å¦ä¸å½é¶è¡çéæ¿æ å¿ï¼å¥é©°æ±½è½¦çæ¹åçæ å¿ççã
(3)æ常ç¨åæç®åçæ¹å¼æ¯ç¨èªå·±ç½ç«çè±æå称ä½æ å¿ãéç¨ä¸åçåä½ï¼åæ¯çåå½¢ï¼åæ¯çç»åå¯ä»¥å¾å®¹æå¶ä½å¥½èªå·±çæ å¿ã
2ã设计ç½ç«çæ åè²å½©
ç½ç«ç»äººç第ä¸å°è±¡æ¥èªè§è§å²å»ï¼ç¡®å®ç½ç«çæ åè²å½©æ¯ç¸å½éè¦çä¸æ¥ãä¸åçè²å½©æé 产çä¸åçææï¼å¹¶å¯è½å½±åå°è®¿é®è çæ 绪ã举个å®é çä¾åå°±æç½äºï¼IBMçæ·±èè²ï¼è¯å¾åºç红è²æ¡åï¼windowsè§çªæ å¿ä¸ç红èé»ç»¿è²åï¼é½ä½¿æ们è§å¾å¾è´´åï¼å¾åè°ã"æ åè²å½©"æ¯æè½ä½ç°ç½ç«å½¢è±¡å延伸å 涵çè²å½©ãä¸è¬æ¥è¯´ï¼ä¸ä¸ªç½ç«çæ åè²å½©ä¸è¶ è¿3ç§ï¼å¤ªå¤å让人ç¼è±ç¼ä¹±ãæ åè²å½©è¦ç¨äºç½ç«çæ å¿ï¼æ é¢ï¼ä¸»èåå主è²åãç»äººä»¥æ´ä½ç»ä¸çæè§ãè³äºå ¶å®è²å½©ä¹å¯ä»¥ä½¿ç¨ï¼åªæ¯ä½ä¸ºç¹ç¼å衬æï¼ç»ä¸è½å§å®¾å¤ºä¸»ãéåäºç½é¡µæ åè²çé¢è²æï¼èè²ï¼é»/æ©è²ï¼é»/ç°/ç½è²ä¸å¤§ç³»åè²ï¼è¦æ³¨æè²å½©çåçæé ã
3ã设计ç½ç«çæ ååä½
åæ åè²å½©ä¸æ ·ï¼æ ååä½æ¯æç¨äºæ å¿ï¼æ é¢ï¼ä¸»èåçç¹æåä½ãä¸è¬æ们ç½é¡µé»è®¤çåä½æ¯å®ä½ã为äºä½ç°ç«ç¹ç"ä¸ä¼ä¸å"åç¹æé£æ ¼ï¼æ们å¯ä»¥æ ¹æ®éè¦éæ©ä¸äºç¹å«åä½ãä¾å¦ï¼ä¸ºäºä½ç°ä¸ä¸å¯ä»¥ä½¿ç¨ç²ä»¿å®ä½ï¼ä½ç°è®¾è®¡ç²¾ç¾å¯ä»¥ç¨å¹¿åä½ï¼ä½ç°äº²åéæå¯ä»¥ç¨æåä½ççã
4ã设计ç½ç«çå®£ä¼ æ è¯
ä¹å¯ä»¥è¯´æ¯ç½ç«çç²¾ç¥ï¼ç½ç«çç®æ ãç¨ä¸å¥è¯çè³ä¸ä¸ªè¯æ¥é«åº¦æ¦æ¬ã类似å®é çæ´»ä¸ç广åéå¥ãä¾å¦ï¼é¹å·¢ç"å³é好æäº"ï¼éº¦æ¯å¨å°ç"好ä¸è¥¿å好æåä¸èµ·å享"ï¼Intelç"ç»ä½ ä¸é¢å¥è ¾çå¿"ççã
ä¸ãç¡®å®ç½ç«çæ ç®
建ç«ä¸ä¸ªç½ç«å¥½æ¯åä¸ç¯æç« ï¼é¦å è¦æ好æ纲ï¼æç« æè½ä¸»é¢æç¡®ï¼å±æ¬¡æ¸ æ°ãå¦æç½ç«ç»æä¸æ¸ æ°ï¼ç®å½åºæï¼å 容ä¸ä¸å西ä¸åãç»æä¸ä½æµè§è çå¾ç³æ¶ï¼èªå·±æ©å åç»´æ¤ç½ç«ä¹ç¸å½å°é¾ãç½ç«çé¢æç¡®å®åï¼å¹¶ä¸æ¶éåç»ç»äºè®¸å¤ç¸å ³çèµæå 容ï¼ä½å¦ä½ç»ç»å 容æè½å¸å¼ç½å们æ¥æµè§ç½ç«å¢ï¼æ ç®çå®è´¨æ¯ä¸ä¸ªç½ç«ç大纲索å¼ï¼ç´¢å¼åºè¯¥å°ç½
ç«ç主ä½æç¡®æ¾ç¤ºåºæ¥ãä¸è¬çç½ç«æ ç®å®æè¦æ³¨æ以ä¸å æ¹é¢ï¼
1ãè¦ç´§æ£ä¸»é¢
å°ä½ ç主é¢æä¸å®çæ¹æ³å类并å°å®ä»¬ä½ä¸ºç½ç«ç主æ ç®ã主é¢æ ç®ä¸ªæ°å¨æ»æ ç®ä¸è¦å ç»å¯¹ä¼å¿ï¼è¿æ ·çç½ç«æ¾çä¸ä¸ï¼ä¸»é¢çªåºï¼å®¹æç»äººçä¸æ·±å»å°è±¡ã
2ã设ç«æè¿æ´æ°æç½ç«æåæ ç®
设ç«"æè¿æ´æ°"çæ ç®ï¼æ¯ä¸ºäºç §é¡¾å¸¸æ¥ç访客ï¼è®©ä½ ç主页æ´æ人æ§åãå¦æ主页å 容åºå¤§ï¼å±æ¬¡è¾å¤ï¼èå没æç«å çæç´¢å¼æï¼è®¾ç½®"æ¬ç«æå"æ ç®ï¼å¯ä»¥å¸®å©å访è å¿«éæ¾å°ä»ä»¬æ³è¦çå 容ã
3ã设ç«å¯ä»¥åå交æµçæ ç®
æ¯å¦è®ºåï¼çè¨æ¬ï¼é®ä»¶å表çï¼å¯ä»¥è®©æµè§è çä¸ä»ä»¬çä¿¡æ¯ã
4ã设ç«ä¸è½½æ常è§é®é¢åçæ ç®
ç½ç»çç¹ç¹æ¯ä¿¡æ¯å ±äº«ãå¦å¨ä½ 主页ä¸è®¾ç½®ä¸ä¸ªèµæä¸è½½æ ç®ï¼ä¾¿äºè®¿é®è ä¸è½½æéèµæãå¦å¤ï¼å¦æç«ç¹ç»å¸¸æ¶å°ç½åå ³äºææ¹é¢çé®é¢æ¥ä¿¡ï¼æ好设ç«ä¸ä¸ªå¸¸è§é®é¢åççæ ç®ï¼æ¢æ¹ä¾¿äºç½åï¼ä¹å¯ä»¥è约èªå·±æ´å¤æ¶é´ã
åãç¡®å®ç½ç«çç®å½ç»æ
ç½ç«çç®å½æ¯æä½ å»ºç«ç½ç«æ¶å建çç®å½ãä¾å¦ï¼å¨ç¨frontpage建ç«ç½ç«æ¶é½é»è®¤å»ºç«äºæ ¹ç®å½åimages(åæ¾å¾ç)åç®å½ãç®å½ç»æç好åï¼å¯¹æµè§è æ¥è¯´å¹¶æ²¡æä»ä¹å¤ªå¤§çæè§ï¼ä½æ¯å¯¹äºç«ç¹æ¬èº«çä¸ä¼ ç»´æ¤ï¼å 容æªæ¥çæ©å å移æ¤æçéè¦çå½±åãä¸é¢æ¯å»ºç«ç®å½ç»æçä¸äºå»ºè®®ï¼
1ãä¸è¦å°æææ件é½åæ¾å¨æ ¹ç®å½ä¸ï¼ä¼é ææ件管çæ··ä¹±
ä½ å¸¸å¸¸æä¸æ¸ åªäºæ件éè¦ç¼è¾åæ´æ°ï¼åªäºæ ç¨çæ件å¯ä»¥å é¤ï¼åªäºæ¯ç¸å ³èçæ件ï¼å½±åå·¥ä½æçãå¦å¤ï¼ä¸ä¼ éåº¦æ ¢ãæå¡å¨ä¸è¬é½ä¼ä¸ºæ ¹ç®å½å»ºç«ä¸ä¸ªæ件索å¼ãå½æ¨å°æææ件é½æ¾å¨æ ¹ç®å½ä¸ï¼é£ä¹å³ä½¿ä½ åªä¸ä¼ æ´æ°ä¸ä¸ªæ件ï¼æå¡å¨ä¹éè¦å°æææ件åæ£ç´¢ä¸éï¼å»ºç«æ°çç´¢å¼æ件ãå¾ææ¾ï¼æ件éè¶å¤§ï¼çå¾ çæ¶é´ä¹å°è¶é¿ãæ以ï¼å°½å¯è½åå°æ ¹ç®å½çæ件åæ¾æ°ã
2ãææ ç®å 容建ç«åç®å½
åç®å½ç建ç«ï¼é¦å æ主èåæ ç®å»ºç«ãä¾å¦:ä¼ä¸ç«ç¹å¯ä»¥æå ¬å¸ç®ä»ï¼äº§åä»ç»ï¼ä»·æ ¼ï¼å¨çº¿å®åï¼åé¦èç³»ç建ç«ç¸åºç®å½ãå ¶ä»ç次è¦æ ç®ï¼ç±»ä¼¼what's newï¼åæ è¿æ¥å 容è¾å¤ï¼éè¦ç»å¸¸æ´æ°çå¯ä»¥å»ºç«ç¬ç«çåç®å½ãèä¸äºç¸å ³æ§å¼ºï¼ä¸éè¦ç»å¸¸æ´æ°çæ ç®ï¼ä¾å¦ï¼å ³äºæ¬ç«ï¼å ³äºç«é¿ï¼ç«ç¹ç»åçå¯ä»¥å并æ¾å¨ä¸ä¸ªç»ä¸ç®å½ä¸ãææç¨åºä¸è¬é½åæ¾å¨ç¹å®ç®å½ãä¾å¦ï¼CGIç¨åºæ¾å¨cgi-binç®å½ãææéè¦ä¸è½½çå 容ä¹æ好æ¾å¨ä¸ä¸ªç®å½ä¸ã
3ãå¨æ¯ä¸ªä¸»æ ç®ç®å½ä¸é½å»ºç«ç¬ç«çimagesç®å½
为æ¯ä¸ªä¸»æ ç®å»ºç«ä¸ä¸ªç¬ç«çimagesç®å½æ¯ææ¹ä¾¿ç®¡ççãèæ ¹ç®å½ä¸çimagesç®å½åªæ¯ç¨æ¥æ¾é¦é¡µåä¸äºæ¬¡è¦æ ç®çå¾çã
4ãç®å½çå±æ¬¡ä¸è¦å¤ªæ·±
ç®å½çå±æ¬¡å»ºè®®ä¸è¦è¶ è¿3å±ï¼ç»´æ¤ç®¡çæ¹ä¾¿ã
5ãä¸è¦ä½¿ç¨ä¸æç®å½
6ãä¸è¦ä½¿ç¨è¿é¿çç®å½
äºãç¡®å®ç½ç«çé¾æ¥ç»æ
ç½ç«çé¾æ¥ç»ææ¯æ页é¢ä¹é´ç¸äºé¾æ¥çææç»æãå®å»ºç«å¨ç®å½ç»æåºç¡ä¹ä¸ï¼ä½å¯ä»¥è·¨è¶ç®å½ã建ç«ç½ç«çé¾æ¥ç»ææ两ç§åºæ¬æ¹å¼ï¼
1ãæ ç¶é¾æ¥ç»æ
类似DOSçç®å½ç»æï¼é¦é¡µé¾æ¥æåä¸çº§é¡µé¢ï¼ä¸çº§é¡µé¢é¾æ¥æåäºçº§é¡µé¢ãè¿æ ·çé¾æ¥ç»ææµè§æ¶ï¼ä¸çº§çº§è¿å ¥ï¼ä¸çº§çº§éåºãä¼ç¹æ¯æ¡çæ¸ æ°ï¼è®¿é®è æç¡®ç¥éèªå·±å¨ä»ä¹ä½ç½®ï¼ä¸ä¼"è¿·"è·¯ã缺ç¹æ¯æµè§æçä½ï¼ä¸ä¸ªæ ç®ä¸çå页é¢å°å¦ä¸ä¸ªæ ç®ä¸çå页é¢ï¼å¿ é¡»ç»ç»é¦é¡µã
2ãæç¶é¾æ¥ç»æ
类似ç½ç»æå¡å¨çé¾æ¥ï¼æ¯ä¸ªé¡µé¢ç¸äºä¹é´é½å»ºç«æé¾æ¥ãè¿ç§é¾æ¥ç»æçä¼ç¹æ¯æµè§æ¹ä¾¿ï¼éæ¶å¯ä»¥å°è¾¾èªå·±å欢ç页é¢ã缺ç¹æ¯é¾æ¥å¤ªå¤ï¼å®¹æ使æµè§è è¿·è·¯ï¼æä¸æ¸ èªå·±å¨ä»ä¹ä½ç½®ï¼çäºå¤å°å 容ã
è¿ä¸¤ç§åºæ¬ç»æé½åªæ¯çæ³æ¹å¼ï¼å¨å®é çç½ç«è®¾è®¡ä¸ï¼æ»æ¯å°è¿ä¸¤ç§ç»ææ··åèµ·æ¥ä½¿ç¨ï¼è¾¾å°æ¯è¾çæ³çææãæ¯è¾å¥½çæ¹æ¡æ¯ï¼é¦é¡µåä¸çº§é¡µé¢ä¹é´ç¨æç¶é¾æ¥ç»æï¼ä¸çº§å以ä¸å级页é¢ä¹é´ç¨æ ç¶é¾æ¥ç»æã
å ã设计ç½ç«çæ´ä½é£æ ¼
é£æ ¼(style)æ¯æ½è±¡çï¼æ¯æç«ç¹çæ´ä½å½¢è±¡ç»æµè§è ç综åæåãè¿ä¸ª"æ´ä½å½¢è±¡"å æ¬ç«ç¹çCI(æ å¿ï¼è²å½©ï¼åä½ï¼æ è¯)ï¼çé¢å¸å±ï¼æµè§æ¹å¼ï¼äº¤äºæ§ï¼æåï¼è¯æ°ï¼å 容价å¼ï¼åå¨æä¹ï¼ç«ç¹è£èªçç诸å¤å ç´ ã举个ä¾åï¼æ们è§å¾ç½ææ¯å¹³æè¿äººçï¼è¿ªæ¯å°¼æ¯çå¨æ´»æ³¼çï¼IBMæ¯ä¸ä¸ä¸¥èçï¼è¿äºé½æ¯ç½ç«ç»äººä»¬
çä¸çä¸åæåã
é£æ ¼æ¯ç¬ç¹çï¼æ¯ç«ç¹ä¸åä¸å ¶ä»ç½ç«çå°æ¹ãæè è²å½©ï¼æè ææ¯ï¼æè æ¯äº¤äºæ¹å¼ï¼è½è®©æµè§è æç¡®å辨åºè¿æ¯ä½ çç½ç«ç¬æçãä¾å¦æ°ä¸çºªç½ç»çé»ç½è²,ç½æå£çº¸ç«çç¹ææ¡æ¶,å³ä½¿ä½ åªçå°å ¶ä¸ä¸é¡µï¼ä¹å¯ä»¥å辨åºæ¯åªä¸ªç½ç«çã
é£æ ¼æ¯æ人æ§çãéè¿ç½ç«çå¤è¡¨ï¼å 容ï¼æåï¼äº¤æµå¯ä»¥æ¦æ¬åºä¸ä¸ªç«ç¹ç个æ§ï¼æ 绪ãæ¯æ¸©æåé ï¼æ¯æ§èçæ ï¼æ¯æ´»æ³¼æå,æ¯æ¾ä»»ä¸ç¾ãåè¯è¯ä¸ç"豪æ¾æ´¾"å"å©çº¦æ´¾"ï¼ä½ å¯ä»¥ç¨äººçæ§æ ¼æ¥æ¯å»ç«ç¹ãå¦ä½æ ç«ç½ç«é£æ ¼å¢ï¼æ们å¯ä»¥åè¿æ ·å 个æ¥éª¤ï¼
1ã确信é£æ ¼æ¯å»ºç«å¨æä»·å¼å 容ä¹ä¸
ä¸ä¸ªç½ç«æé£æ ¼è没æå 容ï¼å°±å¥½æ¯ç»£è±æ头ä¸å èï¼å¥½æ¯ä¸ä¸ªæ§æ ¼å²æ ¢ä½å´ç®ä¸è¯ä¸ç人ãä½ é¦å å¿ é¡»ä¿è¯å 容çè´¨éåä»·å¼æ§ï¼è¿æ¯æåºæ¬çã
2ãä½ éè¦å½»åºææ¸ æ¥èªå·±å¸æç«ç¹ç»äººçå°è±¡æ¯ä»ä¹
å¯ä»¥ä»è¿å æ¹é¢æ¥çæ¸ æè·¯ï¼
a.å¦æåªç¨ä¸å¥è¯æ¥æè¿°ä½ çç«ç¹ï¼åºè¯¥æ¯:()
åèçæ¡ï¼æåæï¼ä¸ä¸ï¼æ(ææ¯)å®åï¼æç¾æï¼æå²å»å
b.æ³å°ä½ çç«ç¹ï¼å¯ä»¥èæ³å°çè²å½©æ¯ï¼()
åèçæ¡ï¼çæ ç红è²ï¼å¹»æ³ç天èè²ï¼èªæçéé»è²
c.æ³å°ä½ çç«ç¹ï¼å¯ä»¥èæ³å°çç»é¢æ¯ï¼()
åèçæ¡ï¼ä¸ä»½æ©æ¥ï¼ä¸è¾æ³æå©è·è½¦ï¼äººç¾¤æ¥æ¤ç广åºï¼æè´§åº
d.å¦æç½ç«æ¯ä¸ä¸ªäººï¼ä»æ¥æç个æ§æ¯ï¼()
åèçæ¡ï¼ææ³æççä¸å¹´äººï¼çéå¥æ¾ççä»ï¼èªä¿¡æ¨åçåä¸è
e.ä½ä¸ºç«é¿ï¼ä½ å¸æç»äººçå°è±¡æ¯ï¼()
åèçæ¡ï¼æ¬ä¸ï¼è®¤çæå ¥ï¼æ深度ï¼è´è´£ï¼çº¯çï¼ç´ç½ï¼æ·å¥³
f.ç¨ä¸ç§å¨ç©æ¥æ¯å»ï¼ä½ çç½ç«æåï¼()
åèçæ¡ï¼ç«(ç¥ç§é«è´µ)ï¼é¹°(ç®å éå©)ï¼å å(èªæææ)ï¼ç®å(èªä¿¡å¨ä¿¡)
g.æµè§è è§å¾ä½ åå ¶ä»ç½ç«çä¸åæ¯ï¼()
åèçæ¡ï¼å¯ä»¥ä¿¡èµï¼ä¿¡æ¯æå¿«ï¼äº¤æµæ¹ä¾¿ï¼
h.æµè§è åä½ äº¤æµåä½çæåæ¯ï¼()
åèçæ¡ï¼å¸çï¼åäºï¼æåï¼é¿å¹¼ã
ä½ å¯ä»¥èªå·±å å¡«åä¸ä»½çæ¡ï¼ç¶åè®©å ¶ä»ç½åå¡«åãæ¯è¾åçç»æä¼åè¯ä½ ï¼ä½ ç½ç«ç°å¨çå·®è·ï¼å¼±ç¹åéè¦æ¹è¿çå°æ¹ã
3ãå¨æç¡®èªå·±çç½ç«å°è±¡åï¼å¼å§åªå建ç«åå 强è¿ç§å°è±¡
ç»è¿ç¬¬äºæ¥å°è±¡ç"éå"åï¼ä½ éè¦è¿ä¸æ¥æ¾åºå ¶ä¸ææç¹è²ç¹ç¹çä¸è¥¿ï¼å°±æ¯æè½ä½ç°ç½ç«é£æ ¼çä¸è¥¿ã并以å®ä½ä¸ºç½ç«çç¹è²å 以éç¹å¼ºåï¼å®£ä¼ ã以ä¸åæ³å¯ä½åèï¼
(1)å°ä½ çæ å¿logo,å°½å¯è½çåºç°å¨æ¯ä¸ªé¡µé¢ä¸ãæè 页çï¼æè 页èï¼æåèæ¯ã
(2)çªåºä½ çæ åè²å½©ãæåçé¾æ¥è²å½©ï¼å¾çç主è²å½©ï¼èæ¯è²ï¼è¾¹æ¡çè²å½©å°½é使ç¨ä¸æ åè²å½©ä¸è´çè²å½©ã
(3)çªåºä½ çæ ååä½ãå¨å ³é®çæ é¢ï¼èåï¼å¾çé使ç¨ç»ä¸çæ ååä½ã
(4)æ³ä¸æ¡ææä¸å£å®£ä¼ æ è¯ãæå®åå¨ä½ çbanneréï¼æè æ¾å¨éç®çä½ç½®ï¼åè¯å¤§å®¶ä½ çç½ç«çç¹è²æ¯...ã
(5)使ç¨ç»ä¸çè¯æ°å人称ãå³ä½¿æ¯å¤ä¸ªäººåä½ç»´æ¤ï¼ä¹è¦è®©è¯»è è§å¾æ¯åä¸ä¸ªäººåçã
(6)使ç¨ç»ä¸çå¾çå¤çææãæ¯å¦ï¼é´å½±ææçæ¹åï¼å度ï¼æ¨¡ç³åº¦é½å¿ é¡»ä¸æ ·ã
(7)åé ä¸ä¸ªä½ çç«ç¹ç¹æç符å·æå¾æ ã
(8)ç¨èªå·±è®¾è®¡çè±è¾¹ï¼çº¿æ¡ï¼ç¹ã
(9)å±ç¤ºä½ ç½ç«çè£èªåæåä½åã
()åè¯ç½åå ³äºä½ ççå®çæ äºåæ³æ³ãé£æ ¼çå½¢æä¸æ¯ä¸æ¬¡å®ä½çï¼ä½ å¯ä»¥å¨å®è·µä¸ä¸æ强åï¼è°æ´ï¼ä¿®é¥°ã
linux 5. ncsi源码分析
深入剖析Linux 5. NCSI源码:构建笔记本与BMC通信桥梁 NCSI(Network Configuration and Status Interface),在5.版本的Linux内核中,为笔记本与BMC(Baseboard Management Controller)以及服务器操作系统之间的同网段通信提供了强大支持。让我们一起探索关键的NCSI网口初始化流程,以及其中的关键结构体和函数。1. NCSI网口初始化:驱动注册
驱动程序初始化始于ftgmac_probe,这是关键步骤,它会加载并初始化struct ncsi_dev_priv,包含了驱动的核心信息,如NCSI_DEV_PROBED表示最终的拓扑结构,NCSI_DEV_HWA则启用硬件仲裁机制。关键结构体剖析
struct ncsi_dev_priv包含如下重要字段:
request表,记录NCSI命令的执行状态;
active_package,存储活跃的package信息;
NCSI_DEV_PROBED,表示连接状态的最终拓扑;
NCSI_DEV_HWA,启用硬件资源的仲裁功能。
命令与响应的承载者
struct ncsi_request是NCSI命令和结果的核心容器,包含请求ID、待处理请求数、channel队列以及package白名单等。每个请求都包含一个唯一的ID,用于跟踪和管理。数据包管理与通道控制
从struct ncsi_package到struct ncsi_channel,每个通道都有其特定状态和过滤器设置。multi_channel标志允许多通道通信,channel_num则记录总通道数量。例如,struct ncsi_channel_mode用于设置通道的工作模式,如NCSI_MODE_LINK表示连接状态。发送与接收操作
struct ncsi_cmd_arg是发送NCSI命令的关键结构,包括驱动私有信息、命令类型、ID等。在ncsi_request中,每个请求记录了请求ID、使用状态、标志,以及与网络链接相关的详细信息。ncsi_dev_work函数:工作队列注册与状态处理
在行的ncsi_register_dev函数中,初始化ncsi工作队列,根据网卡状态执行通道初始化、暂停或配置。ncsi_rcv_rsp处理NCSI报文,包括网线事件和命令响应,确保通信的稳定和高效。扩展阅读与资源
深入理解NCSI功能和驱动probe过程,可以参考以下文章和资源:Linux内核ncsi驱动源码分析(一)
Linux内核ncsi驱动源码分析(二)
华为Linux下NCSI功能切换指南
NCSI概述与性能笔记
浅谈NCSI在Linux的实现和应用
驱动probe执行过程详解
更多技术讨论:OpenBMC邮件列表和CSDN博客
通过以上分析,NCSI源码揭示了如何构建笔记本与BMC的高效通信网络,为开发者提供了深入理解Linux内核NCSI模块的关键信息。继续探索这些资源,你将能更好地运用NCSI技术来优化你的系统架构。
2024-12-24 01:12
2024-12-24 00:29
2024-12-23 23:57
2024-12-23 23:17
2024-12-23 23:16