精华内容
下载资源
问答
  • 进行松下td510电话交换机设置的必备软件,界面友好易用。
  • 压缩包包含TES824交换机编程软件和我自己汉化的语言包。汉化不是很完全。能满足基本应用的需要。下载后把语言包拷贝到安装目录中覆盖相应文件即可。
  • 松下电话交换机编程软件是英文版,为了方便各位,针对20版推出汉化文件。
  • 国威交换机编程管理软件国威交换机编程管理软件 WS-824
  • TCL 王牌数字芯12进48出电话交换机软件 可连电脑调电话交换机,。方便实用
  • 松下电话程控交换机PC端控制软件

    热门讨论 2013-06-14 17:06:32
    松下电话程控交换机PC端控制软件 KX-TDA100_200 PC-Maintenance Console V2.014 r2
  • 松下TDA600程控交换机编程手册,需要的下载吧
  • 电脑连接松下电话交换机编程软件,通用版本。
  • Moxa的MXview网络管理软件是为了在工业以太网中完成对网络设备的配置,监控,诊断而设计的。MXview提供整合式的管理平台,能够自动侦测安装于网络的Moxa网络设备和SNMP/IP设备,可随时随地、可视化地管理所有被选中...
  • 国威GW2000程控交换机管理软件和操作文档
  • 软件介绍: 松下KX-TDA100D Maintenance Console交换机调试软件。网上DOWN来的,具体使用方法自行查找资料。
  • 恒捷电话交换机软件

    2018-12-30 10:09:23
    恒捷语音交换机系列电脑调试软件 支持多个型号,图形化界面
  • 程控交换机PBX V600 中文计费软件安装包及说明书串口测试全套工具.rar,昌德讯CDX8000系列集团电话—编程计费系统使用前说明
  • avaya 编程

    2013-12-30 11:10:07
    有关AVAY的编程及功能说明;有需要的可以看看
  • 松下TDA100/200/600程控电话交换机中文编程说明书
  • ONetSwitch是叠锶公司作为全球首款基于Zynq器件实现的OpenFlow Switch产品,作为理想的SDN教育科研平台,具备“软件编程,逻辑可重构,硬件可扩展”能力,是面向SDN/OpenFlow的可编程交换机
  • BEBA交换机是OpenFlow 1.3交换机,扩展了对以下内容的支持: 基于状态数据包转发 基于数据包生成 OpenFlow 1.3的此类扩展是使用OpenFlow Experimenter框架实现的。 用于控制它们的API在。 此外,BEBA还针对软件...
  • nec 程控交换机编程软件及编程手册。SL1000 主机柜出厂配置 4 进 8 出,单柜最大 16 进 32 出,加一个副机柜可扩至 32 进 64 出,加两个副机柜可扩至 48 进 96 出加三个副机柜可扩至 64 进 128 出。
  • NEC电话交换机配置与编程[参照].pdf
  • opencti的目标:统一语音卡,多媒体交换机编程接口。 它是一个通用的CTI开发库,兼容东进、三汇等厂商语音卡,交换机等产品。 你可以遵循CPL许可证下自由使用或发布本软件。 CPL许可证:Common Public License 1.0 ...
  • 哪怕是最苛刻的IT专业人员,有一个词也会很吸引...但是,随着网络可编程性的概念变得越来越受到关注,节约成本已经不是白盒交换机中最受关注的方面了。除了节约金钱,它们还可以增加网络自动化、可编程性和灵活性,...

    哪怕是最苛刻的IT专业人员,有一个词也会很吸引他注意:节约成本。当市场中出现白盒交换机时——即一种预安装第三方网络操作系统的消费类交换机硬件,网络工程师一般首先听到或了解到的是这种新方法有可能节约成本。

    但是,随着网络可编程性的概念变得越来越受到关注,节约成本已经不是白盒交换机中最受关注的方面了。除了节约金钱,它们还可以增加网络自动化、可编程性和灵活性,这些改进也有其实际价值。

    白盒交换机:实现网络可编程性的三种方式

    根据波士顿Doyle Research首席分析师Lee Doyle的观点,包含软件和硬件在内的白盒交换机市场预计将在2018年增长到5亿美元。但是,现在仍然是软件定义网络(SDN)的发展早期,因为白盒交换机与网络操作系统市场目前还很小。Doyle指出,作为对比,像Cumulus Networks和Big Switch Networks这样的白盒交换机供应商现在的“收益可能只有200万美元”。

    他补充说,目前主攻白盒交换机的公司主要有三类:有资源部署和维护这些交换机的互联网级别公司、更多考虑绿地部署风险的数据中心运营商和一些基于云但未达到互联网级别的公司。然而,大多数企业和服务提供商并不满足于任何一个网络操作系统。对于大多数公司而言,他们的操作系统选择最终取决于作出采购决策的负责人的专业技术背景。

    Gartner公司杰出分析师Joe Skorupa说:“服务人员会选择Cumulus Networks或Pica8,而网络人员则会选择Big Switch或Pica8。Cumulus Networks有适用于数据中心的白盒交换机。人们通常会用它来支持SDN堆叠网络,但是它本身并不是SDN。”

    下面将针对这个特点来介绍三个使用拍盒交换机实现网络可编程性的用例。

    像管理服务器一样管理交换机

    DreamHost LLC是洛杉矶一家网站托管公司和云提供商,它在白盒交换机上使用Cumulus Networks的Cumulus Linux网络操作系统来高效地扩展和管理自己的开源多租赁公共云服务:DreamCompute。

    DreamHost负责云的副总裁Jonathan LaCour说:“由于运行着Cumulus Linux网络操作系统,所以我们将交换机看作是另一种Linux服务器。我们也用相同的团队、工具和流程去管理我们的Linux服务器上的Cumulus Linux。”

    这与DreamHost的遗留交换机有很大的区别,后者运行着预安装的私有软件和工具,与IT团队用于管理和监控计算与存储设备的Linux工具完全不同。

    LaCour说:“Cumulus Linux帮助我们将一种特殊的网络环境变成一种不那么特殊的通用环境。”

    Cumulus白盒交换机采用的方法将来自大型传统交换机供应商的私有交换机接口更换为所有Linux服务器管理员都能理解的通用Linux接口。

    在白盒交换机上运行Cumulus Linux可以帮助DreamHost提升Linux平台的性能和实现网络可见性,同时让它的工程师能够使用现有的Linux服务器管理工具实现网络自动化。采用与Linux服务器自动配置安装过程的相同方法,除了一些小更新和修改之外 ,完全不需要更多的特殊考虑,Cumulus Linux控制器会自动配置其白盒交换机安装设置,以满足DreamHost的网络要求。这个网络包括客户Pod(自包含硬件单元,表示DreamHost云的一个可用域)和用于管理用途的命令与控制Pod,它们运行着Cumulus Linux和40GbE叶脊架构。

    LaCour说:“虽然网络工程师现在可以通过自动化、CPI(命令行接口)和API编程控制交换机,Cumulus Linux的特别之处是它的CLI和API与每一位系统工程师和云工程师长期使用的Linux工具完全相同,如路由器命令和ipconfig等。他们完全不需要学习新东西,所有东西都由硬件加速。”

    Linux服务器与运行Cumulus Linux的交换机之间并没有很大的差别——主要差别就是每一台设备上的端口数量。一个Linux服务器可能只有2~4个2层和3层连接以太网端口,而Cumulus白盒交换机则有48个10GB端口。

    DreamHost使用DevOps工具Opscode Chef实现服务器与网络编制。由于每一个交换机都运行着版本2和版本3的开放最短路径优先(Open Shortest Path First)协议,因此从配置到故障修复等所有网络操作都变得非常简单。DreamHost工程师根据Chef手册和秘诀(一组可重用配置说明)编程实现Cumulus Linux交换机的目录管理和配置。它的IT团队使用基于Python编写的工具Graphite来监控交换机。

    交换机会出现故障,而当它们出现故障时,Cumulus Linux会让DreamHost的网络保存路由数据并保持正常运行,直到交换机完成更换,即从网络移除故障交换机,然后使用剩余交换机自动重建网络结构。然后,控制器会配置新交换机,然后自动将它添加到网络中。这样就可以将平均修复时间从几小时减少为几分钟。

    但是,与所有网络平台一样,Cumulus Linux也不是完美的。

    LaCour说:“在一些复杂特性上,网络操作系统仍然无法与传统交换机架构相媲美。但是,这与我们的情况没有关系,因为我们更愿意保持底层网络的简单性,同时在SDN堆叠网络上添加白盒交换机所缺少的更多特性。”

    用白盒交换机简化网络分流器

    为了监控流量或修复网络问题,企业网络工程师通常会使用到网络分流器,如嗅探器或数据包分析器。此外,服务提供商也会使用网络分流器保证服务交付和服务质量,使用这些工具来确保流量的质量和交付,或者提前测量实际网络性能是否符合服务水平协议。

    此外,网络工程师可以使用分流器查找网络拥塞的根源。

    白盒交换机供应商Pica8的销售副总裁Steve Garrison说:“如果有人在观看网络视频,造成核心网络拥挤,那么就可能影响SaaS应用或VoIP系统的性能。”网络工程师需要诊断这些问题,然后才能寻找出应对方法,如应用策略等。

    但是,传统的网络分流器方法可能会有一定的问题,特别是在大规模环境中,必须将物理分流器插入到所有出现流量问题的设备中,才能实现完全可见性。

    白盒交换机的可编程性提供了一个替代方案。例如,Pica8的软件使网络工程师能够通过API和控制器编写在操作系统中使用的分流器——这种分流器可以映射来自一个端口、子网或VLAN,或者让通过一个交换机的所有HTTP流量聚集在一个采集端口上。

    这种方法的好处是,工程师不需要在每一个交换机上部署物理分流器。他们可以在一个交换机上部署分流器,然后给它们配置一些需要检测的逻辑网络。

    Garrison说:“编写一个动态可编程分流器,就可以集中管理网络监控。你可以附加测试工具到一个端口上,然后就可以使用可编程功能检测整个网络的所有虚拟或物理端口。你可以转到不同的端口,检查来自任意指定端口的不同流量流。”

    他补充说:“此外,你还应该过滤特定的流量,查看过滤后的结果,用这种方式来隔离和发现造成流量淹没问题的根源。”

    创建满足需求的网络

    美国圣安东尼奥德克萨斯大学(UTSA)是开放计算项目(Open Compute Project, OCP)认证与解决方案实验室所在地,这是北美第一个云与大数据研究实验室。这个实验室负责认证开放计算技术和大型企业的关键工作,同时也向学生讲授开源技术。UTSA云计算应用研究副主管Carlos Cardenas指出,它的网络运行在基于开放网络安装环境(Open Network Install Environment, ONIE)的Cumulus Linux上,它是目前最好的白盒交换机开放网络启动加载程序。

    为了支持实验室关于开源技术的支持研究和工作,它的数据中心必须能够快速扩展和调整。实验室选择在白盒交换机上运行Cumulus Linux,使用一种标准Linux操作系统和Linux工具来实现网络各个部分的自动化。

    UTSA实验室的大多数网络基础架构基于OCP认证的网络技术,包括来自Edge-Core Networks的交换机和运行Cumulus Linux的Quanta Computer。其目标是将这种架构扩展到网络的其余部分,用同样运行Cumulus Linux的OCP认证网络技术和交换机去搭建网络。这种网络可以适应新开源研究项目的增长需求。

    将Cumulus Linux作为网络操作系统,实验室网络就可以支持大量不同开源服务器软件包的轻松访问。这意味着通常安装在Linux服务器的软件一样可以用在Cumulus Linux上,如OpenSSH、OpenNTPD、isc-dhcp-server、DNSMasq和Quagga。由于和在传统网络设备一样,所以这些软件包不需要特殊版本,而是和Debian和Ubuntu等Linux发行版本的软件包完全一样。交换机接口的用法与原先在Linux服务器上一样——只是现在有48个端口了。

    Cardenas说:“我们在交换机上使用与所有服务器完全相同的配置管理接口。管理员只需要懂Linux,可以编程管理交换机。”

    实验室在网络基础架构上使用的大规模软件更新和重新配置机制与在Linux服务器上使用的机制完全相同。Cumulus Linux使工程师能够根据需要用熟悉的脚本和API编程控制网络。因为网络操作系统是基于Linux的,所以网络工程师可以使用他们喜欢的自动化工具(Ansible)管理白盒交换机的网络配置。而且,有了ONIE之后,实验室可以在硬件上安装自己想要的网络操作系统。

    Cardenas说:“ONIE能够发现操作系统并将它安装到硬件上。”

    白盒交换机不仅允许实验室自行选择硬件和网络操作系统,也允许实验室的IT团队选择可编程网络上运行的Linux版本及兼容Linux的软件应用程序。这种方法可以实现比传统交换架构风险更小和人为错误更少的自动化网络。


    作者:David Geer 曾少宁 译

    来源:51CTO

    展开全文
  • https://www.sdnlab.com/20501.html ... Broadcom本周发布了基于Tomahawk以太网交换芯片的开源软件开发套件(SDK),该工具包的首个版本称为SDKLT,可以让开发人员能够定制对Tomahawk的使用状况,Tomahaw...

    https://www.sdnlab.com/20501.html

    https://github.com/Broadcom-Network-Switching-Software/SDKLT

     

    Broadcom本周发布了基于Tomahawk以太网交换芯片的开源软件开发套件(SDK),该工具包的首个版本称为SDKLT,可以让开发人员能够定制对Tomahawk的使用状况,Tomahawk是该芯片厂商的数据中心架顶式和光纤设备。

    Broadcom核心交换机营销总监Eli Karpilovski表示:“该技术可以应用于博通目前包括将来推出的任何ASIC,博通希望能够进一步扩大这个生态系统。”

    SDKLT的源码可以在GitHub上获取,并且可以通过Apache 2.0许可证获得关联的逻辑API表。去年6月份,博通宣布为其交换机增加可编程性,本次发布的开源工具包是开放网络中的另一个里程碑,能够使开发人员为交换机芯片增加新功能。

    开源的SDK

    通过提供完整的开源SDK,Broadcom在实现完全开放的网络生态系统方面迈出了重要的一步。现在,硬件供应商,网络操作系统提供商和SDN控制器开发人员可以轻松地构建和定制他们的交换机API。他们还可以自由地重新分配增强功能,并利用社区快速向市场提供高质量的解决方案。

     

     

    SDKLT中使用的基于逻辑表的创新型方法极大地简化了当今配置功能丰富的以太网交换芯片的任务。采用这种方式,所有的设备物理资源,例如MAC地址表,L3路由表等都以明确定义的逻辑表格的形式呈现给用户,而不是特定的功能调用。

    新的交换机软件方式使数据中心运营商能够更好地控制其基础设施资源。通过使用行业标准的自动化工具,SDKLT引入了监控、分析和调配交换机资源的新方法。网络操作系统和SDN应用将受益于通过灵活交易管理,设备资源可见性和SDKLT提供的性能改进实现的这种新的运营效率水平。

    新SDKLT软件的关键属性和优点:

    • 开源代码和逻辑表API是在Apache 2.0许可下发布的
    • 设备行为由逻辑表通过一小组API来管理
    • 逻辑表API能够支持RPC-client-server模型
    • 通过自动化完成设备配置和控制(CLI,Yaml,XML等)
    • 性能优化的软件架构
    • 高可视性和对设备资源的控制提供了最佳的资源管理
    • 灵活的事物管理,全面支持通过单个API调用的批处理
    • 高可用性架构,包括对软错误恢复,Warmboot和In Service升级的支持

     

    转载于:https://www.cnblogs.com/soul-stone/p/8457557.html

    展开全文
  • 实验平台SDS由通信学院自行开发 主要为了配合现代交换原理课程 体会软件驱动硬件的编程思路 预备知识 程控交换原理 C程序设计 Turbo C3.0 ;摘挂机检测编程实验的目的内容及方法;SDS-3小交换机组成示意图;用户信号音...
  • 三菱PLC FX 5U使用手册+程序例子+视频教程+编程软件 FX5U程序样例有 FX5U 12轴程序例子 fx5u 标准伺服定位程序 两台FXX5U和1台威纶触摸屏加交换机以太网通讯 另外FX5U使用手册各种各样 FX5用户手册(入门篇 FX5用户...
  • Stratum是用于软件定义网络的开源,独立于硅的交换机操作系统。 它正在为白盒开关构建一个开放的,最低限度的生产就绪分布。 Stratum公开了一组下一代SDN接口,包括P4Runtime和OpenConfig,从而实现了转发设备的互换...
  • 申瓯程控电话交换机PC端调试、管理系统。方便快捷、避免了在座机上编程的麻烦工作。
  • NEC SL1000交换机安装、软件调试精炼描述
  • 27 种语言过程型编程语言: C, Rust, Cython面向对象数据建模语言: Java, C#, EiffelC 的面向对象衍生语言: C++, D面向数组的数据处理: MATLAB/Octave, Julia统计数数据分析: R计算型管道建模: Haskell, Scala, ...

    27 种语言

    过程型编程语言: C, Rust, Cython

    面向对象数据建模语言: Java, C#, Eiffel

    C 的面向对象衍生语言: C++, D

    面向数组的数据处理: MATLAB/Octave, Julia

    统计数数据分析: R

    计算型管道建模: Haskell, Scala, Clojure, F#

    事件驱动编程: JavaScript, Go, Erlang, Elixir

    渐变类型: TypeScript

    动态元编程: Hy, Ruby

    实用问题解决: Lua, PHP, Perl

    计算型思维: Scratch, Logo

    作为这个世界上最流行的编程语言之一的合作设计者,我经常遇到一种令人非常沮丧的行为( Python 社区和其它领域中都存在)就是社区中有影响力的人尝试去在其它开源社区中灌输对于”缺失“的恐惧感,并以此驱动别人对本社区做出贡献(我自己偶尔也会做出这样不当的行为,当别人掉进这个陷阱时我也更容易觉察出来)。

    虽然借鉴其他编程语言社区的经验是一件好事,但用基于恐惧的方法来推动行动有很大问题,社区成员为了吸引代码贡献者的注意,容易把其他社区的成员视为竞争对手,而不是作为潜在的盟友共同迎接挑战,推动软件开发技术的进步。还会导致社区排斥那些喜欢其他编程语言的人,把他们当做敌人。

    事实上,我们希望有更丰富的跨平台开源编程语言可供选择,编程语言是最重要的思维工具,可以把我们的想法转换成计算机能理解的明确的条款。如果人们发现了某种语言既适合他们的大脑又能直接解决问题,这就很好了,不必关心他们到底选的是那种语言。

    加群923414804免费获取数十套PDF资料

    因此我要给 Python 社区提三个具体的要求和一个更广泛的建议,首先说这些要求:

    1.当我们想要激励部落成员,提高社区吸引力时,我们不应该使用恐惧法,相反我们应该使用自豪法。当使用恐惧法激励时,比如说这样的话:“如果我们不解决问题 X,那么 Python 开发者将会减少,他们将会转而去使用语言 Y”,那么我们就在故意地向全世界自由贡献代码的人传递负能量。但如果我们使用自豪法,说出来的话将是这样的:“Python 中的问题 X 的确难以解决,看看语言 Y 的社区,他们用一个极好的方法解决了这个问题,我们也可以在 Python 中尝试这个解决方案,以同样优雅的方式解决 Python 中的问题”。积极地强调“以我们自己的努力为自豪”,有利于促进 Python 社区中不断学习的文化,还会不断促进与其他社区关系的发展。

    2.克制对其他编程语言社区蔑视的态度,特别是对那些有大牛存在,能自己解决遇到的问题,不必等待商业软件供应商屈尊解决问题的社区。世界上的大多数重要的问题都不是利益驱动的问题(那些人想要解决问题,不是为了谋取财富,也没有机构出钱资助他们),所以我们应该鼓励和赞扬那些加紧尝试解决问题的人。不必管他们使用的是什么技术。

    3.如果我们认识的人刚开始学习编程,即使他们所选的编程语言是我们自己所不喜欢的。我们也要支持他们,因为他们比我们清楚什么更适合他们的大脑。所以对我们合适的语言不一定适合他们。如果他们开始对当初的选择感到沮丧,以至于完全打消了他们学习编程的积极性,这时给他们推荐编程语言才更有意义。这个建议甚至也对我们当中做过改进网络安全方面工作的人有用,对于原本不安全的语言,我们的解决方式是,通过改善操作系统中的沙盒功能,渐进地破除这个语言选择障碍,用原生系统的安全属性,改善了编程语言默认行为,不应该从应用安全的角度评价编程语言的好坏,迷惑初学者。(如果有人请编程新手写了一个未经审计的软件,却部署为处理安全敏感的问题,这不是程序员的问题,而应该怪那个部署的人没有尽职调查软件的来源和安全属性。)

    我更多的建议是针对人开始遭遇 Python 的核心程序集的境界,也因此开始探索更多的 Python 自身的“思维工具”。

    我们做 Python 核心开发过程的一部分事情是由于领会的特点具有在其他语言我们具有优势,是否能够用一种合适的方式让 Python 代码容易读写。这意味着学习别的程序语言能够明确特定的风格,并且在 Python 中编程提高人对软件开发的认识。

    为了有助于这样的努力, 我已经列出了下面可供探索的领域,还有一些对这些领域可能提供额外见解的语言。我尽可能的链接到 Wikipedia 页面而不是直接转向相关的首页,因为维基百科经常会给出一些有趣的历史背景,当选择一门新的编程言作为一项学术型的练习而不是被立即用来实践性使用的时候,这些背景值得去探索。

    然而就我个人而言, 我熟悉许多的编程语言(并且已经使用了其中的一些进行开发生产系统) 。所有的推荐包括我间接了解的语言(或通过阅读一些材料和设计文档,又或者是从和我信任的朋友之间的交流中得知一门语言的优势和劣势)。

    本应该有很多的与沿出现在名单之中,但是对于列出来的这些特定的语言只是随意的一些子集,它们从某些程度来讲是基于我自己的兴趣而选出来的(比如说:我主要的兴趣点在于占支配地位的Linux,Android 和 Windows生态系统,所以在这里我就忽略了封闭但是更加有利可图的以 Apple 为中心的 Objective-C 和 Swift 编程语言,而且我对于专注于艺术环境的编程语言就不太了解,如Processing,我甚至需要猜测从其中学到的东西怎么样可以指导一个 Python 开发者)。对于一个更全面的编程语言名单而言需要考虑很多因素,除了考虑一个编程语言能够指导你成为一个开发者外,IEEE Spectrum 的一年一度关于编程语言流行度和增长的排名也非常值得了解一下。

    面向过程编程语言 C,Rust,Cython

    Python 默认的运行模型是过程型的:我们从主模块的顶部开始然后一句一句执行。所有的 Phthon 对于其他数据和计算模型的方法支持都是基于它是过程型的这一特性。

    C 语言毫无疑问仍然是底层编程语言的统治者. 它是实现 Python 解释器的核心语言,同样也是实现 Linux 操作系统内核的核心语言。作为软件开发人员,学习 C 语言是学习更多关于软件所运行的底层硬件的最好起点 - C 语言经常被描述为“可移植的汇编语言”,通常使用 C 语言编译器作为交叉编译器,为新的 CPU 体系结构编译出第一个应用程序。

    Rust,相比之下, 是一个由 Mozilla 创建的比较新的语言。它能够进入这个名单的原因是,Rust 吸取了工业界已知的关于不能在 C 语言中做什么的教训,并且被设计成可以与 C 库互操作的语言,它对硬件的控制达到了和低级系统编程语言相同的精度,但它使用不同的编译时方法进行数据建模和内存管理,在结构上消除了许多常见的困扰 C 程序的的缺陷(比如缓存溢出、重复释放内存错误、空指针访问以及线程同步问题)。我是一名嵌入式系统工程师,通过培训具备了最初的专业经验,我已经看到,当前被 C 语言和定制汇编代码统治的各个领域很有可能会被 Rust 取代。

    Cython也是一种默认的更底层的语言,但是与通用目标语言 C,Rust 不同,Cython 主要用于书写 CPython扩展模块。Cython 被设计作为一个 Python 的超集,让程序员选择何时支持纯 Python 语法的灵活性,当 Cython 语法支持的扩展使其可以生成的代码相当于本地C代码的速度和内存效率。

    学习这些语言之一是以实用的角度增强其对内存管理,算法效率,二进制接口兼容性,软件可移植性,将源代码转换成运行系统的深刻理解。

    面向对象的数据建模: Java, C#, Eiffel

    编程中最主要的任务之一是为现实世界的状态建模,这方面最通常的方法是面向对象语言所提供的那些原生的语法支持:把数据结构、操作这些数据结构的方法组合成类。

    Python原生设计上就可以直接使用面向对象的特性,而不需要一上来先学习如何编写自己的类。不是每种语言都才有这样的方式 - 对于本节列出的这些语言,学习面向对象的设计思想是使用这些语言的前提。

    得益于 Sun Microsystems 在 20 世纪 90 年代中后期对 Java 语言的市场推广,Java 成了很多大专院校计算机科学入门课程的默认语言。虽然现在在很多教育领域它正被 Python 淘汰,但它在商业应用程序开发领域仍然是一种最受欢迎的语言。有一系列其它语言针对公共的 JVM(Java 虚拟机)运行时的实现,包括 Python 的 Jython 实现。Android 系统的 Dalvik 和 ART 环境是基于 Java 编程 API 实现的。

    C# 在很多方面与 Java 相似,在 Sun 和 Microsoft 解决关于 J++(微软实现的 Java 语言)和标准 JAVA 不一致的问题失败后,它是作为J++的替代语言出现的。像 Java 一样,它也是一个受欢迎的商业应用开发语言,有一系列其它语言针对共享 .NET CLR(公共语言运行库)的实现,包括 Python 的 IronPython 实现(原始的 IronPython 1.0 中的核心组件被抽取出来创建 .NET 动态语言运行库的中间层)。在很长的一段时间里,.NET是只能在 Windows 系统中使用的专有技术,有一个跨平台的开源代码 mono 重新实现了.NET,但在 2015 年初,微软宣布了 .NET 开源计划。

    与列表里大多数语言不同,我并不推荐在日常使用 Eiffel。它之所以在推荐列表里,是因为这门语言有着大量优良的面向对象设计思想,包括以“正确可信”作为程序的设计目标。(同时,Eiffel 也告诉我对于大多数的软件开发,并没有以“正确可信”为设计目标,这是因为正确可信的软件确实无法妥善处理不确定的情况。当很多相关约束还不清楚,需要在不断迭代的过程中去逐步完善的时候,这种设计理念就完全不适合了)

    学习这类编程语言,就需要去熟悉继承模型、契约设计、类不变项、前置条件、后置条件、协变(covariance)、逆变(contravariance)、方法查找路径、泛型编程,以及其他各种在 Python 的类型系统上也支持的特性。此外还有很多标准库模块和第三方框架,会用到“显示的面向对象”设计风格,例如 unittest 和 loggingmodules,以及 Django 框架里基于类的 view。

    面向对象的 C:C++, D

    使用 CPython 的一种方式,是把它的内核当做一种“包含对象的 C 语言”的编程环境 – CPython 是通过 C 语言的风格去实现面向对象编程,也就是用 C 的结构体描述数据,然后把结构的实例指针作为第一个参数传给那些数据处理函数(也就是 CPython的C 里面的 omnipresentPyObject* 指针)。这种设计模式被有意复制到 Python 里,在实例方法和类方法需要显示的指定 self 或者 cls 参数。

    C++ 的目标是在源码级完全兼容 C 语言,在此之上增加了一些高级特性,例如原生的面向对象编程支持和基于模板的元程序开发。C++ 的晦涩和复杂是臭名昭著的(即使 2011 年的语言标准的更新解决了大量最糟糕的问题),不过就算这样,C++ 仍然是很多场景下的选择,包括 3D 建模图形引擎和跨平台应用开发框架,如 Qt。

    D 编程语言也很有趣,因为它和 C++ 的关系很像 Rust 与 C 语言之间的关系:设计 D 语言的目的是,既要保留 C++ 的大部分优点,也要避免 C++ 中存在的很多缺陷(比如缺乏存储安全性)。与 Rust 不同,D 语言不是一个从零开始设计的全新编程语言,相反,它是直接从 C++ 衍生出来的语言,尽管它不像 C++ 那样是 C 语言的严格超集,但它遵守一个设计原则,任何落入 C 语言和 D 语言公共子集中的代码,在两种语言中的行为必须相同。

    学习这些语言有利于深刻理解把高级语言特征和底层 C 运行时模型相结合的复杂性。学习 C++ 也有助于使用 Python 操作已有的用 C++ 编写的库和工具包。

    面向数组的数据处理: MATLAB/Octave, Julia

    面向数组的编程用于数值编程模型:基于矩阵代数和相关的数值方法。

    虽然 Python 的标准库并没有直接支持,不过在语言设计上已经做了考虑,一系列语法和语义上的功能支持,有助于第三方库 NumPy 以及类似的面向数组的工具。

    在很多情况下,Python科学计算 软件系列都被当做专用的 MATLAB 编程环境的替代者,被广泛用于科学和工程上的建模、仿真和数值分析。开源项目 GNU Octave 的目标是在语法上与MATLAB代码兼容,让人可以比较面向对象编程的这两种方式。

    Julia 是另一个相对较新的语言, 它的主要特点是支持面向数组编程和基于类型的函数重载.

    学习一种这样的语言有助于深入理解 Python 科学计算工具包的威力,同时,学习这样的语言有助于研究如何利用 OpenCL 和 Nvidia 的 CUDA 等类似的技术实现硬件级并发执行,也有助于研究如何使用 Apache Spark 和 Blaze 等数据处理框架实现分布式数据处理。

    统计数据分析语言: R

    由于有越来越多的大数据集需要处理。因此需要一种免费的能处理这样的数据集的分析工具,编程语言 R 就是一种这样的工具,它特别注重统计数据分析和可视化。

    学习 R 语言有助于深入理解 Python 科学计算工具包的统计功能,特别是其中的数据分析库 pandas 和统计可视化库 seaborn 。

    计算管道建模语言:Haskell, Scala, Clojure, F#

    面向对象数据建模和面向数组数据建模主要用于对数据进行静态建模,有两种建模方式,一种是把数据保存在对象的各个属性中,另一种是把结构化的数据保存为数组。

    相比之下,函数式编程语言更强调以计算流的形式对数据进行动态建模。只要学一下函数式编程基础,就会显著提高使用数据转换操作对数据建模的能力,这对于使用其他范式的编程语言(比如面向过程、面向对象、面向数组的编程语言)开发应用程序也是有帮助的。

    Haskell 是一个函数式编程语言,对 Python 的设计产生过重大的影响, 最明显的就是 Python 2.0 引入的列表解析。

    Scala 毫无疑问是基于JVM的函数式编程语言,与Java, Python和R一样,是Apache Spark数据分析平台的四门主要编程语言之一。在设计上支持函数式编程方式的同时,Scala的语法、数据模型和执行模型在设计上尽量避免为原有的Java程序员带了太大的障碍(从这个角度上看,Scala更恰当的分类应该是有着强函数式语言支持的面向对象的编程语言)。

    Clojure是另一门基于JVM的函数式编程语言,被看作是Lisp的一个变种。它在我们的清单中具有一席之地,是因为它为Python的函数式编程工具箱toolz的实现带来灵感。

    我自己对F# 并不熟悉,不过由于它是 .NET CLR 推荐的语言,所以还是值得关注的。

    学习这些编程语言,有助于了解 Python 自身的计算管道建模工具,包括容器推导表达式、生成器、生成器表达式、functools 和 itertools 标准库模块,和第三方函数式 Python 工具如 toolz。

    事件驱动编程语言:JavaScript, Go, Erlang, Elixir

    计算管道是处理数据转换和分析问题的一种很好的方法,不过很多问题需要程序以持久的方式运行,等待事件发生,然后处理这些事件。对这类服务,通常可以并发的处理多个事件,来实现同时为多个用户(或者至少多个行为)提供服务。

    JavaScript 最初是为浏览器开发的事件处理编程语言,可以让 web 开发人员处理客户端本地的用户行为(例如鼠标移动和按键)和事件(例如页面渲染结束)。所有现代的浏览器都支持 JavaScript,与 HTML5 的 DOM 一起,已经成为用户界面的外观和行为事实上的标准。

    Go 是Google设计出来的,设计这个语言的目的是为了创建高度可扩展的网络服务,Go语言非常适合开发命令行程序。从设计编程语言的角度看,最引人注目的是Go语言在它的核心并发模型中使用了“顺序通信过程(Communicating Sequential Processes)”这一概念。

    Erlang 是爱立信设计出来的,设计这个语言的目的是为了制造高度可靠的电话交换机以及类似的设备,著名的开源框架RabbitMQ的消息服务器就是用Erlang实现的。Erlang使用Actor模型实现了核心并发原语,不允许不同线程直接共享数据,线程间的通信只能靠传递消息。尽管我自己从来没有使用过Erlang语言, 但我的第一份工作涉及到了一个基于Actor模型开发的并发框架,它是一个前爱立信工程师用C++开发的,我自己也基于TSK(任务)和MBX(邮箱)原语开发过这样的框架,是在德州仪器的轻量级DSP/BIOS运行时(现在叫TI-TROS)中实现的。

    Elixir 能够出现在这个名单中的理由是,虽然它运行在Erlang虚拟机中,与编程语言Erlang具有相同的并发语义,但它也包含了一系列额外的语言级特征,提供了更全面的开发环境,更容易吸引从其他编程语言(比如Python、Java或Ruby)转过来的开发者。

    学习一种这样的语言有助于深入理解Python本身是如何支持并发和并行的,包括原生协程、基于生成器的协程、concurrent.futures和asyncio标准库模块、第三方网络服务开发框架(比如Twisted和Tornado)、Django中新引入的channels概念和GUI 框架中的事件处理循环。

    动静混合类型: TypeScript

    Python 3.5 引入的特性里,最有争议的一项是新的类型模块,为 Python 体系加上了混合类型的支持。

    对于那些接触过的静态类型编程语言主要是 C, C++ 和 Java 的开发者来说,这简直就是一个及其可怕的想法。

    Microsoft 的 TypeScript 为 JavaScript 应用提供动静混合类型支持,让你对这个概念会有好一些的看法。TypeScript 代码会编译成 JavaScript 代码(编译后不包含任何运行时类型检查),主流的JavaScript 库的 TypeScript 注释(annotations)在DefinitelyTyped代码库里可以找到。

    正如 Chris Neugebauer 在澳大利亚 PyCon 大会的报告上指出的那样,这很像是 Python 与类型提示库 typeshed 以及类似 mypy 那样的类型推导和分析工具之间的关系。

    本质上,TypeScript 和 Python 的类型提示都是实现特定测试程序的方式,不管是独立文件(常规的测试程序),还是内嵌在主代码里(类似静态编程语言的类型声明)。不管哪种情况,你都可以运行单独的命令检查剩余的代码是否符合已知的类型约束(对于 JavaScript 和 TypeScript,在编译阶段会隐式的去完成,对于 Python 的类型提示,则是可选的静态分析任务)。

    动态元程序设计: Hy,Ruby

    像 C、C++、C#、Java 这样的编程语言给 Python 带来的一个有点让人不安特性是“代码即数据”:类似函数和类都是运行时对象,可以被其他对象操作。

    Hy 是一个 Lisp 的变种,可以在 CPython 虚拟机和 PyPy 虚拟机上运行。Lisp 在“代码即数据”上做到了极致,Lisp 代码本身就是由描述需要实现的操作的嵌套的列表组成的(这门语言的名字就源自”LISt Processor”)。Lisp 风格的语言,最强大的一点是它们可以很轻松的实现自己的领域特定语言(DSL),不过这有时候也为阅读其他人的代码带来困难。

    Ruby 在很多方面都与 Python 很类似,但是作为更为开放的社区,Ruby 更接受动态元程序设计,而对于 Python,这方面只是“支持,但不鼓励”。这方面的功能包括重定义类加入一些方法,用闭包实现语言核心结构如迭代器。

    学习这些语言可以帮助深入了解 Python 自身的动态元程序设计的支持,包括函数和类装饰、monkeypatching(动态修改代码)、unittest.mock 标准库模块以及第三方对象代理模块入如wrapt(我还没找到什么编程语言有助于了解 Python 的元类(metaclass),如果有人有好的建议,可以在评论里告诉我。元类的高级特性包括核心类型、抽象基类、枚举类型和混合类型(动态类型和静态类型混合)表达式的运行时执行)。

    实用主义者:Lua, PHP, Perl

    流行的编程语言通常并不是孤立的 —— 他们属于庞大的生态系统的一部分(商业和社区都是这样),此外还有终端用户、框架开发者、工具开发者、教育人员等等。

    Lua是一门流行的编程语言,主要作为脚本引擎内嵌于大型的程序里。值得一提的例子有,为魔兽争霸游戏客户端编写的插件,在很多 Linux 发行版存在的 RPM 工具也内置了 Ruby。与 CPython 相比,Lua 运行时大小只有其十分之一,并且它的弱反省(weaker introspection)的能力也能让它更容易独立于应用程序的其他部分和宿主操作系统。一个值得提到的来自 Lua 社区对 Python 生态系统的贡献是,CPython 和 PyPy 采用 LuaJit FFI(Foreign Function Interface)作为其 JIT 友好的 cffi 接口库的基础。

    PHP 是另一个受欢迎的编程语言,由于PHP擅长生成HTML页面,被早期的虚拟服务器主机提供商广泛使用,因此它作为 LAMP stack(Linux-Apache-MySQL-PHP)的组成部分被广为人知。尽管PHP在设计中存在很多令人苦恼的概念上的缺陷,它仍然成了很多著名的开源web 服务的基础,包括Drupal内容管理系统、WordPress博客引擎和支撑Wikipedia的MediaWiki引擎。PHP也能支撑很多重要的服务,比如众包社区所使用的分布式事件报告平台 Ushahidi。

    和PHP一样,Perl 也是Linux系统上的一个受欢迎的语言,与PHP不同,Perl不是作为网站开发平台被人熟知的,它更常见的用途是作为系统管理员管理系统的工具,它既能使用正则表达式处理字符串又能处理基于文本的Linux操作系统命令的输出结果。只使用Perl就能处理所有的任务,不需要再使用Whensh、awk和sed等工具了。

    学习其中的一门语言并不能提供任何好的见解在审美上漂亮或者在理念上简洁的程序语言设计。可能的结果是在实践中提供一些编程语言的结构和采纳的知识,以及了解关于偶然的机会、历史的积累和降低入门门槛(通过重新分配使缺省变得可能)所起到的作用,这些都强于语言本身固有的能力。

    特别是,它可以提供一些见解关于 CKAN、OpenStack NFV、Blender、SciPy、OpenMDAO、PyGMO、PyCUDA、 Raspberry Pi Foundation 和 Python 的项目意义,通过广泛的商业组织,确保 Python 生态系统的机构投资持续进行。

    数值计算的思想:Scratch,Logo

    最后想说的是,我常常陷入这样的讨论,即结构化编程和面向对象倡导者的争论。后者自称面向对象编程语言和结构化编程语言一样易学。

    当我们谈论的是通过具体的数值实验来教学(机器人学),研究对象在仿真软件中的模型有着直接现实世界的参照物时,比如学生们可以接触到传感器,发动机,继电器等。我认为支持面向对象的小伙伴们有一定的道理。

    然而对于其他人来讲,我遇到的一个典型的挑战是:拿起一本食谱,将其中一个菜谱转换成你认为易学的面向对象编程语言,然后找到一个理解这门编程语言的学生,沿着我的思路,来继续转换这个菜谱。(我期待着看到学术研究人员真正践行这样的学习过程,——我会发自内心的为这样的情况感到欣慰。)大多数的情况下,小伙伴们不必遵循这样的流程——仅仅需要在头脑中进行思维的实验就足以让他们感受到要想学会这“易学的”编程语言需要多少预备知识。

    然而另外一个解决此问题的方法是学习那些用于教育小孩子数值计算的编程语言。

    其中一种最流行的莫过于 Scrach,它是一种让学生利用拖动的方式来操作封闭的图形化环境,从而可以看到图形化界面中相应的移动和反应的编程接口。像 Scrach 这样的图形化环境是一种类似于利用连环画帮助孩子们逐步学习读书认字的方式的程序设计方式。

    然而,这种利用一种特殊教育目的编程语言来操作一个图形化界面的想法并不新奇,随着的早期最经典环境之一的 Logo 环境在 2 0世纪 60 年代的创建(类似于 Python 自己的海龟模块),那时候,你所接触的主要的东西是一个“海龟”,你可以用命令它的移动来画线,从而改变图形环境。通过这种方式,像命令行、迭代、状态(例如:向上划、向下划)都以一种建立在人们的自然直观的思维方式(想象一下,假如你是一只海龟,如果向右旋转 90 度将会发生什么?)的基础上来介绍。

    回归本源,作为一名富有经验的程序员,重新学习以上的任何一门编程语言是最有效的方式来忘掉所学(抛弃一些轮子):这些语言工具所涵盖的概念帮助我们回想起那些我们曾经认为理所当然的概念,但是需要以初学者的眼光重新学习。当我们这么做的时候,因为我们更加愿意回想起整个的逻辑链条,包括那些我们之前认为理所当然而省略的思维步骤,我们会更加有效地和学生以及其他的初学者一起工作。

    展开全文
  • FX5U程序样例有 FX5U 12轴程序例子 fx5u 标准伺服定位程序 两台FXX5U和1台威纶触摸屏加交换机以太网通讯 另外FX5U使用手册各种各样 FX5用户手册(入门篇 ...(另外还送FX5U编程软件+视频入门教程60集)
  • 即时通讯网整理了大量的网络编程类基础文章和资料,包括《TCP/IP协议 卷1》、《[通俗易懂]深入理解TCP协议》系列、《网络编程懒人入门》系列、《不为人知的网络编程》系列、《P2P技术详解》系列、《高性能网络编程》...

    转自即时通讯网:http://www.52im.net/

    本文引用了知乎网友“薛定谔不在家”的部分文字内容,感谢原作者的分享。

    1、前言

    即时通讯网整理了大量的网络编程类基础文章和资料,包括《TCP/IP协议 卷1》、《[通俗易懂]深入理解TCP协议》系列、《网络编程懒人入门》系列、《不为人知的网络编程》系列、《P2P技术详解》系列、《高性能网络编程》系列、甚至还有图文并貌+实战代码的《NIO框架入门》等,目的是帮助即时通讯类应用的开发者,至少要掌握网络编程最基本的原理,所谓知其然更要知其所以然。尤其现在移动网络大行其道的时代,在网络环境如此复杂的情况下,能写好一套技术精湛、用户体验等俱佳的IM或消息推送系统,显然不是随便用用Netty、MINA、AFNetwoking、okhttp等服务端和客户端框架就能搞定的事。总之,即时通讯技术归根结底还是网络编程技术的应用,只有更深入地了解了网络编程及其相关知识,才能更好地写出优质的应用。

    实际上计算机网络编程或者网络通信技术最基本的物理载体,就是集线器、交换机、路由器这些基本设备,了解这些基本设备的工作原理,对于程序员来说是基本素养,总不能什么事都甩锅给网管,何况中小公司根本就没有条件配备专职网管,还是得程序员亲自动手。但技多不压身,何况这些设备和技术总比那些毫无技术含量的插删改查代码撸起来有意思。话不多说,回归正题吧。

    本文旨在简单地说明集线器、交换机与路由器的区别,因而忽略了很多细节,三者实际的发展过程和工作原理并非文中所写的这么简单。如果你看完本文能大概了解到三者的异同,本文的目的就达到了。至于更具体的技术问题,欢迎在留言中探讨。

    另外,如果您正打算从零开发移动端IM,则建议您从《新手入门一篇就够:从零开发移动端IM一文开始,此文按照IM开发所需的知识和技能要求,拟定了详尽的学习提纲和建议等。

     

    2、系列文章

    本文是系列文章中的第6篇,本系列文章的大纲如下:


    本站的《脑残式网络编程入门》也适合入门学习,本系列大纲如下:


    如果您觉得本系列文章过于基础,您可直接阅读《不为人知的网络编程》系列文章,该系列目录如下:


    关于移动端网络特性及优化手段的总结性文章请见:

     

    3、帝国时代

    我相信我们都玩过一款特别火的游戏:帝国时代。小时候想要玩帝国时代,需要到软件城购买盗版光盘安装,大概3块钱一张左右的样子,当时已经觉得很便宜了,谁想到现在有了网络之后是免费。
    小A是一个帝国时代大神,他打通了游戏的所有关卡,可以一个人单挑8个疯狂的电脑玩家。渐渐地他觉得无聊了,想要找小伙伴一起PK。
    但是两个电脑需要互联才行,如何实现两台设备的互联呢?
    小A很聪明,他发明了一个类似于USB口一样的可以传输数据的端口,他将其命名为网口。小A通过一根网线将自己的电脑与小B的网口相连,实现了两台电脑间的互连(如下图)。
     

    网络编程懒人入门(六):史上最通俗的集线器、交换机、路由器功能原理入门_1.jpg

     

    4、集线器(Hub)

    两个小伙伴很开心,联机玩了起来,这时被路过的小C看见了,小C也要加入进来。
    但是我们知道,每台电脑只有一个网口,无法实现三台电脑的相互连接,那要要怎么办呢?

    网络编程懒人入门(六):史上最通俗的集线器、交换机、路由器功能原理入门_2.jpg

    这时候小B出了一个主意:咱们再找一台计算机,给他多设计几个网口,我们每个人都连到这台计算机的网口上,不也实现咱们哥几个之间的互连了吗。
    说干就干,于是他们设计出了一款微型计算机,他本身具备多个网口,专门实现多台计算机的互联作用,这个微型计算机就是集线器(HUB)。
    顾名思义,集线器起到了一个将网线集结起来的作用,实现最初级的网络互通。
    集线器是通过网线直接传送数据的,我们说他工作在物理层(如下图所示)。

    网络编程懒人入门(六):史上最通俗的集线器、交换机、路由器功能原理入门_3.jpg

     

    5、交换机

    有了集线器后,越来越多的小伙伴加入到游戏中,小D、小E等人都慕名而来。
    然而集线器有一个问题,由于和每台设备相连,他不能分辨出具体信息是发送给谁的,只能广泛地广播出去。
    例如小A本来想问小C:你吃了吗?结果小B,小D和小E等所有连接在集线器上的用户都收到了这一信息。
    由于处于同一网络,小A说话时其他人不能发言,否则信息间会产生碰撞,引发错误,对这种情况,我们称为各设备处于同一冲突域内。

    网络编程懒人入门(六):史上最通俗的集线器、交换机、路由器功能原理入门_4.jpg

    网络编程懒人入门(六):史上最通俗的集线器、交换机、路由器功能原理入门_5.jpg

    这样的设备用户体验极差,于是小伙伴们一起讨论改进措施。
    这时聪明的小D发话了:我们给这台设备加入一个指令,让他可以根据网口名称自动寻址传输数据。
    比如我把小A的网口命名为macA,将小C的命名为macC,这时如果小A想要将数据传给小C,则设备会根据网口名称macA和macC自动将资料从A的电脑传送到C的电脑中,而不让小B、小D和小E收到。

    补充说明: 这里的macA, macB指的就是MAC地址,相当于一个人的身份证,独一无二。
    也就是说,这台设备解决了冲突的问题,实现了任意两台电脑间的互联,大大地提升了网络间的传输速度,我们把它叫做交换机。
    由于交换机是根据网口地址传送信息,比网线直接传送多了一个步骤,我们也说交换机工作在数据链路层(如下图)。

    网络编程懒人入门(六):史上最通俗的集线器、交换机、路由器功能原理入门_6.jpg

    网络编程懒人入门(六):史上最通俗的集线器、交换机、路由器功能原理入门_7.jpg

    这回小伙伴们高兴了,他们愉快地玩耍起来。

     

    6、路由器

    渐渐地,他们在当地有了名气,吸引了越来越多的小伙伴加入到他们的队伍中。有一天,一个外村的小伙突然找上门来,希望能和他们一起互联,实现跨村间的网络对战。
    小A说可以呀,于是他们找了一根超长的网线将两个村落的交换机连在了一起。结果发现一件奇怪的事:两个村落间竟然不能相互通信。
    怎么回事?原来那边的电脑和他们用的不是一套操作系统,这导致信息间的传送形式的不匹配。在这期间,还有其他村落的人也来找过小A,可是小A发现,每个村子之间用的操作系统都不一样。
    这可咋办呐?难道以后只能各自村子玩各自的了吗?为了解决这一问题,各村的小伙伴们坐在一起组织了一场会议,最终得出了一套解决方案:采用同样的信息传送形式(像不像秦始皇统一度量衡?)。
    那如何实现呢?小伙伴们规定,不同的村子间先在各自的操作系统上加上一套相同的协议。不同村落通信时,信息经协议加工成统一形式,再经由一个特殊的设备传送出去。这个设备就叫做路由器。
    在这套协议中,每个机器都被赋予了一个IP地址,相当于一个门牌号一样。路由器通过IP地址寻址,我们说它工作在计算机的网络层。

    这样,经由如此的一系列改装,小A终于带领村民们实现了整个乡镇的通信。随着越来越多的城里人也加入小A的协议,小A带领村民逐步实现了全市、全国乃至全世界的通信。这一套协议便是TCP/IP协议簇,互联网也便这样形成了(关于TCP/IP改变世界的故事,详见《技术往事:改变世界的TCP/IP协议(珍贵多图、手机慎点)》)

    网络编程懒人入门(六):史上最通俗的集线器、交换机、路由器功能原理入门_8.jpg

    然而,即便如今全网络已遍布了全世界,在小A和村里的小伙伴对战帝国时代的时候,也仍然用着交换机。只有和外面更大的世界交流的时候才用到路由器。

    其实上图只是为了帮助您更好地理解路由器,一个真实的网络拓扑中,路由器、交换机、集线器是一起分工合作的,正如下图所示:

    网络编程懒人入门(六):史上最通俗的集线器、交换机、路由器功能原理入门_1111.jpg

    (如上图所示:Router即路由器、Switch即交换机、Hub即集线器)

     

     

    附录:更多网络编程资料

     

     

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,729
精华内容 7,891
关键字:

交换机编程软件