精华内容
下载资源
问答
  • 100 个网络基础知识普及,看完成半个网络高手

    万次阅读 多人点赞 2019-09-23 11:38:54
    它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2)OSI 参考模型的层次是什么? 有 7 个 OSI 层:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。 3)什么是骨干网? 骨干网络是集中...

    1)什么是链接?

    链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。

    2)OSI 参考模型的层次是什么?

    有 7 个 OSI 层:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。

    3)什么是骨干网?

    骨干网络是集中的基础设施,旨在将不同的路由和数据分发到各种网络。它还处理带宽管理和各种通道。

    4)什么是 LAN?

    LAN 是局域网的缩写。它是指计算机与位于小物理位置的其他网络设备之间的连接。

    5)什么是节点?

    节点是指连接发生的点。它可以是作为网络一部分的计算机或设备。为了形成网络连接,需要两个或更多个节点。

    6)什么是路由器?

    路由器可以连接两个或更多网段。这些是在其路由表中存储信息的智能网络设备,例如路径,跳数等。有了这个信息,他们就可以确定数据传输的最佳路径。路由器在 OSI 网络层运行。

    7)什么是点对点链接?

    它是指网络上两台计算机之间的直接连接。除了将电缆连接到两台计算机的 NIC卡之外,点对点连接不需要任何其他网络设备。

    8)什么是匿名 FTP?

    匿名 FTP 是授予用户访问公共服务器中的文件的一种方式。允许访问这些服务器中的数据的用户不需要识别自己,而是以匿名访客身份登录。

    9)什么是子网掩码?

    子网掩码与 IP 地址组合,以识别两个部分:扩展网络地址和主机地址。像 IP 地址一样,子网掩码由 32 位组成。

    10)UTP 电缆允许的最大长度是多少?

    UTP 电缆的单段具有 90 到 100 米的允许长度。这种限制可以通过使用中继器和开关来克服

    11)什么是数据封装?

    数据封装是在通过网络传输信息之前将信息分解成更小的可管理块的过程。在这个过程中,源和目标地址与奇偶校验一起附加到标题中。

    12)描述网络拓扑

    网络拓扑是指计算机网络的布局。它显示了设备和电缆的物理布局,以及它们如何连接到彼此。

    13)什么是 VPN?

    VPN 意味着虚拟专用网络,这种技术允许通过网络(如 Internet)创建安全通道。

    例如,VPN 允许您建立到远程服务器的安全拨号连接。

    14)简要描述 NAT。

    NAT 是网络地址转换。这是一种协议,为公共网络上的多台计算机提供一种方式来共享到 Internet 的单一连接。

    15)OSI 参考模型下网络层的工作是什么?

    网络层负责数据路由,分组交换和网络拥塞控制。路由器在此层下运行。

    16)网络拓扑如何影响您在建立网络时的决策?

    网络拓扑决定了互连设备必须使用什么媒介。它还作为适用于设置的材料,连接器和终端的基础。

    17)什么是 RIP?

    RIP,路由信息协议的简称由路由器用于将数据从一个网络发送到另一个网络。

    它通过将其路由表广播到网络中的所有其他路由器来有效地管理路由数据。它以跳数为单位确定网络距离。

    18)什么是不同的方式来保护计算机网络?

    有几种方法可以做到这一点。在所有计算机上安装可靠和更新的防病毒程序。确保防火墙的设置和配置正确。用户认证也将有很大的帮助。所有这些组合将构成一个高度安全的网络。

    19)什么是 NIC?

    NIC 是网络接口卡(网卡)的缩写。这是连接到 PC 以连接到网络沈北。每个 NIC都有自己的 MAC 地址,用于标识网络上的 PC。

    20)什么是 WAN?

    WAN 代表广域网。它是地理上分散的计算机和设备的互连。它连接位于不同地区和国家/地区的网络。

    21)OSI 物理层的重要性是什么?

    物理层进行从数据位到电信号的转换,反之亦然。这是网络设备和电缆类型的考虑和设置。

    22)TCP/IP 下有多少层?

    有四层:网络层,互联网层,传输层和应用层。

    23)什么是代理服务器,它们如何保护计算机网络?

    代理服务器主要防止外部用户识别内部网络的 IP 地址。不知道正确的 IP 地址,甚至无法识别网络的物理位置。代理服务器可以使外部用户几乎看不到网络。

    24)OSI 会话层的功能是什么?

    该层为网络上的两个设备提供协议和方法,通过举行会话来相互通信。这包括设置会话,管理会话期间的信息交换以及终止会话时的解除过程。

    25)实施容错系统的重要性是什么?有限吗?

    容错系统确保持续的数据可用性。这是通过消除单点故障来实现的。但是,在某些情况下,这种类型的系统将无法保护数据,例如意外删除。

    26)10Base-T 是什么意思?

    10 是指数据传输速率,在这种情况下是 10Mbps。“Base”是指基带。T 表示双绞线,这是用于该网络的电缆。

    27)什么是私有 IP 地址?

    专用 IP 地址被分配用于内部网。这些地址用于内部网络,不能在外部公共网络上路由。这些确保内部网络之间不存在任何冲突,同时私有 IP 地址的范围同样可重复使用于多个内部网络,因为它们不会“看到”彼此。

    28)什么是 NOS?

    NOS 或网络操作系统是专门的软件,其主要任务是向计算机提供网络连接,以便能够与其他计算机和连接的设备进行通信。

    29)什么是 DoS?

    DoS 或拒绝服务攻击是试图阻止用户访问互联网或任何其他网络服务。这种攻击可能有不同的形式,由一群永久者组成。这样做的一个常见方法是使系统服务器过载,使其无法再处理合法流量,并将被强制重置。

    30)什么是 OSI,它在电脑网络中扮演什么角色?

    OSI(开放系统互连)作为数据通信的参考模型。它由 7 层组成,每层定义了网络设备如何相互连接和通信的特定方面。一层可以处理所使用的物理介质,而另一层则指示如何通过网络实际传输数据。

    31)电缆被屏蔽并具有双绞线的目的是什么?

    其主要目的是防止串扰。串扰是电磁干扰或噪声,可能影响通过电缆传输的数据。

    32)地址共享的优点是什么?

    通过使用地址转换而不是路由,地址共享提供了固有的安全性优势。这是因为互联网上的主机只能看到提供地址转换的计算机上的外部接口的公共 IP 地址,而不是内部网络上的私有 IP 地址。

    33)什么是 MAC 地址?

    MAC 或媒介访问控制,可以唯一地标识网络上的设备。它也被称为物理地址或以太网地址。MAC 地址由 6 个字节组成。

    34)在 OSI 参考模型方面,TCP/IP 应用层的等同层或多层是什么?

    TCP/IP 应用层实际上在 OSI 模型上具有三个对等体:会话层,表示层和应用层。

    35)如何识别给定 IP 地址的 IP 类?

    通过查看任何给定 IP 地址的第一个八位字节,您可以识别它是 A 类,B 类还是 C类。如果第一个八位字节以 0 位开头,则该地址为 Class A.如果以位 10 开头,则该地址为 B 类地址。如果从 110 开始,那么它是 C 类网络。

    36)OSPF 的主要目的是什么?

    OSPF 或开放最短路径优先,是使用路由表确定数据交换的最佳路径的链路状态路由协议。

    37)什么是防火墙?

    防火墙用于保护内部网络免受外部攻击。这些外部威胁可能是黑客谁想要窃取数据或计算机病毒,可以立即消除数据。它还可以防止来自外部网络的其他用户访问专用网络。

    38)描述星形拓扑

    星形拓扑由连接到节点的中央集线器组成。这是最简单的设置和维护之一。

    39)什么是网关?

    网关提供两个或多个网段之间的连接。它通常是运行网关软件并提供翻译服务的计算机。该翻译是允许不同系统在网络上通信的关键。

    40)星型拓扑的缺点是什么?

    星形拓扑的一个主要缺点是,一旦中央集线器或交换机被损坏,整个网络就变得不可用了。

    41)什么是 SLIP?

    SLIP 或串行线路接口协议实际上是在 UNIX 早期开发的旧协议。这是用于远程访问的协议之一。

    42)给出一些私有网络地址的例子。

    10.0.0.0,子网掩码为 255.0.0.0

    172.16.0.0,子网掩码为 255.240.0.0

    千人ccie认证交流群463904693

    领取最新CCIE考试题库

    CCIE 认证经验分享千人群:463904693

    192.168.0.0,子网掩码为 255.255.0.0

    43)什么是 tracert?

    Tracert 是一个 Windows 实用程序,可用于跟踪从路由器到目标网络的数据采集的路由。它还显示了在整个传输路由期间采用的跳数。

    44)网络管理员的功能是什么?

    网络管理员有许多责任,可以总结为 3 个关键功能:安装网络,配置网络设置以及网络的维护/故障排除。

    45)描述对等网络的一个缺点。

    当您正在访问由网络上的某个工作站共享的资源时,该工作站的性能会降低。

    46)什么是混合网络?

    混合网络是利用客户端 - 服务器和对等体系结构的网络设置。

    47)什么是 DHCP?

    DHCP 是动态主机配置协议的缩写。其主要任务是自动为网络上的设备分配 IP 地址。它首先检查任何设备尚未占用的下一个可用地址,然后将其分配给网络设备。

    48)ARP 的主要工作是什么?

    ARP 或地址解析协议的主要任务是将已知的 IP 地址映射到 MAC 层地址。

    49)什么是 TCP/IP?

    TCP/IP 是传输控制协议/互联网协议的缩写。这是一组协议层,旨在在不同类型的计算机网络(也称为异构网络)上进行数据交换。

    50)如何使用路由器管理网络?

    路由器内置了控制台,可让您配置不同的设置,如安全和数据记录。您可以为计算机分配限制,例如允许访问的资源,或者可以浏览互联网的某一天的特定时间。

    您甚至可以对整个网络中看不到的网站施加限制。

     

    51)当您希望在不同平台(如 UNIX 系统和 Windows 服务器之间)传输文件时,可以应用什么协议?

    使用 FTP(文件传输协议)在这些不同的服务器之间进行文件传输。这是可能的,因为 FTP 是平台无关的。

    52)默认网关的使用是什么?

    默认网关提供了本地网络连接到外部网络的方法。用于连接外部网络的默认网关通常是外部路由器端口的地址。

    53)保护网络的一种方法是使用密码。什么可以被认为是好的密码?

    良好的密码不仅由字母组成,还包括字母和数字的组合。结合大小写字母的密码比使用所有大写字母或全部小写字母的密码有利。密码必须不能被黑客很容易猜到,比如日期,姓名,收藏夹等等。

    54)UTP 电缆的正确终止率是多少?

    非屏蔽双绞线网线的正常终止是 100 欧姆。

    55)什么是 netstat?

    Netstat 是一个命令行实用程序。它提供有关连接当前 TCP/IP 设置的有用信息。

    56)C 类网络中的网络 ID 数量是多少?

    对于 C 类网络,可用的网络 ID 位数为 21。可能的网络 ID 数目为 2,提高到 21或 2,097,152。每个网络 ID 的主机 ID 数量为 2,增加到 8 减去 2,或 254。

    57)使用长于规定长度的电缆时会发生什么?

    电缆太长会导致信号丢失。这意味着数据传输和接收将受到影响,因为信号长度下降。

    58)什么常见的软件问题可能导致网络缺陷?

    软件相关问题可以是以下任何一种或其组合:

    - 客户端服务器问题

    - 应用程序冲突

    - 配置错误

    - 协议不匹配

    - 安全问题

    - 用户政策和权利问题

    59)什么是 ICMP?

    ICMP 是 Internet 控制消息协议。它为 TCP/IP 协议栈内的协议提供消息传递和通信。这也是管理由 PING 等网络工具使用的错误信息的协议。

    60)什么是 Ping?

    Ping 是一个实用程序,允许您检查网络上的网络设备之间的连接。您可以使用其IP 地址或设备名称(如计算机名称)ping 设备。

    61)什么是点对点(P2P)?

    对等是不在服务器上回复的网络。该网络上的所有 PC 都是单独的工作站。

    62)什么是 DNS?

    DNS 是域名系统。该网络服务的主要功能是为 TCP/IP 地址解析提供主机名。

    63)光纤与其他介质有什么优势?

    光纤的一个主要优点是不太容易受到电气干扰。它还支持更高的带宽,意味着可以发送和接收更多的数据。长距离信号降级也非常小。

    64)集线器和交换机有什么区别?

    集线器充当多端口中继器。然而,随着越来越多的设备连接到它,它将无法有效地管理通过它的流量。交换机提供了一个更好的替代方案,可以提高性能,特别是在所有端口上预期有高流量时。

    65)Windows RRAS 服务支持的不同网络协议是什么?

    支持三种主要的网络协议:NetBEUI,TCP/IP 和 IPX。

    66)A,B 和 C 类网络中的最大网络和主机是什么?

    对于 A 类,有 126 个可能的网络和 16,777,214 个主机

    对于 B 类,有 16,384 个可能的网络和 65,534 个主机

    对于 C 类,有 2,097,152 个可能的网络和 254 个主机

    67)直通电缆的标准颜色顺序是什么?

    橙色/白色,橙色,绿色/白色,蓝色,蓝色/白色,绿色,棕色/白色,棕色。

    68)什么协议落在 TCP/IP 协议栈的应用层之下?

    以下是 TCP/IP 应用层协议:FTP,TFTP,Telnet 和 SMTP。

    69)您需要连接两台电脑进行文件共享。是否可以这样做,而不使用集线器或路由器?

    是的,您可以使用一根电缆将两台计算机连接在一起。在这种情况下可以使用交叉型电缆。在这种设置中,一条电缆的数据传输引脚连接到另一条电缆的数据接收引脚,反之亦然。

    70)什么是 ipconfig?

    Ipconfig 是一个常用于识别网络上计算机的地址信息的实用程序。它可以显示物理地址以及 IP 地址。

    71)直通和交叉电缆有什么区别?

    直通电缆用于将计算机连接到交换机,集线器或路由器。交叉电缆用于将两个类似设备连接在一起,如 PC 到 PC 或集线器到集线器。

    72)什么是客户端/服务器?

    客户端/服务器是一种类型的网络,其中一个或多个计算机充当服务器。服务器提供集中的资源库,如打印机和文件。客户端是指访问服务器的工作站。

    73)描述网络。

    网络是指用于数据通信的计算机和外围设备之间的互连。可以使用有线电缆或通过无线链路进行网络连接。

    74)将 NIC 卡从一台 PC 移动到另一台 PC 时,MAC 地址是否也被转移?

    是的,那是因为 MAC 地址是硬连线到 NIC 电路,而不是 PC。这也意味着当 NIC卡被另一个替换时,PC 可以具有不同的 MAC 地址。

    75)解释聚类支持

    群集支持是指网络操作系统在容错组中连接多台服务器的能力。这样做的主要目的是在一台服务器发生故障的情况下,集群中的下一个服务器将继续进行所有处理。

    76)在包含两个服务器和二十个工作站的网络中,安装防病毒程序的最佳位置是哪里?

    必须在所有服务器和工作站上安装防病毒程序,以确保保护。这是因为个人用户可以访问任何工作站,并在插入可移动硬盘驱动器或闪存驱动器时引入计算机病毒。

    77)描述以太网。

    以太网是当今使用的流行网络技术之一。它是在 20 世纪 70 年代初开发的,并且基于 IEEE 中规定的规范。以太网在局域网中使用。

    78)实现环形拓扑有什么缺点?

    如果网络上的一个工作站发生故障,可能会导致整个网络丢失。另一个缺点是,当需要在网络的特定部分进行调整和重新配置时,整个网络也必须被暂时关闭。

    79)CSMA/CD 和 CSMA/CA 有什么区别?

    CSMA/CD 或碰撞检测,每当碰撞发生时重新发送数据帧。CSMA/CA 或碰撞避免,将首先在数据传输之前广播意图发送。

    80)什么是 SMTP?

    SMTP 是简单邮件传输协议的缩写。该协议处理所有内部邮件,并在 TCP/IP 协议栈上提供必要的邮件传递服务。

    81)什么是组播路由?

    组播路由是一种有针对性的广播形式,将消息发送到所选择的用户组,而不是将其发送到子网上的所有用户。

    82)加密在网络上的重要性是什么?

    加密是将信息转换成用户不可读的代码的过程。然后使用秘密密钥或密码将其翻译或解密回其正常可读格式。加密有助于确保中途截获的信息仍然不可读,因为用户必须具有正确的密码或密钥。

    83)如何安排和显示 IP 地址?

    IP 地址显示为一系列由周期或点分隔的四位十进制数字。这种安排的另一个术语是点分十进制格式。一个例子是 192.168.101.2

    84)解释认证的重要性。

    认证是在用户登录网络之前验证用户凭据的过程。它通常使用用户名和密码进行。这提供了限制来自网络上的有害入侵者的访问的安全手段。

    85)隧道模式是什么意思?

    这是一种数据交换模式,其中两个通信计算机本身不使用 IPSec。相反,将 LAN连接到中转网络的网关创建了一个使用 IPSec 协议来保护通过它的所有通信的虚拟隧道。

    86)建立 WAN 链路涉及的不同技术有哪些?

    模拟连接 - 使用常规电话线;数字连接 - 使用数字电话线;交换连接 - 使用发送方和接收方之间的多组链接来移动数据。

    87)网格拓扑的一个优点是什么?

    在一个链接失败的情况下,总会有另一个链接可用。网状拓扑实际上是最容错的网络拓扑之一。

    88)在排除计算机网络问题时,可能会发生什么常见的硬件相关问题?

    大部分网络由硬件组成。这些领域的问题可能包括硬盘故障,NIC 损坏甚至硬件启动。不正确的硬件配置也是其中一个疑难问题。

    89)可以做什么来修复信号衰减问题?

    处理这种问题的常见方法是使用中继器和集线器,因为它将有助于重新生成信号,从而防止信号丢失。检查电缆是否正确终止也是必须的。

    90)动态主机配置协议如何协助网络管理?

    网络管理员不必访问每台客户端计算机来配置静态 IP 地址,而是可以应用动态主机配置协议来创建称为可以动态分配给客户端的范围的 IP 地址池。

    91)解释网络概念的概况?

    配置文件是为每个用户设置的配置设置。例如,可以创建将用户置于组中的配置文件。

    92)什么是 Sneakernet?

    Sneakernet 被认为是最早的联网形式,其中使用可移动介质(如磁盘,磁带)物理传输数据。

    93)IEEE 在计算机网络中的作用是什么?

    IEEE 或电气和电子工程师学会是由电气和电子设备标准发布和管理的工程师组成的组织。这包括网络设备,网络接口,cablings 和连接器。

    94)TCP/IP Internet 层下有哪些协议?

    该层管理的协议有 4 种。这些是 ICMP,IGMP,IP 和 ARP。

    95)谈到网络,什么是权限?

    权限是指在网络上执行特定操作的授权许可。网络上的每个用户可以分配个人权限,具体取决于该用户必须允许的内容。

    96)建立 VLAN 的一个基本要求是什么?

    需要一个 VLAN,因为在交换机级别只有一个广播域,这意味着每当新用户连接时,该信息都会传播到整个网络。交换机上的 VLAN 有助于在交换机级别创建单独的广播域。它用于安全目的。

    97)什么是 IPv6?

    IPv6 或 Internet 协议版本 6 被开发以替代 IPv4。目前,IPv4 正在用于控制互联网流量,但 IPv4 已经饱和。IPv6 能够克服这个限制。

    98)什么是 RSA 算法?

    RSA 是 Rivest-Shamir-Adleman 算法的缩写。它是目前最常用的公钥加密算法。

    99)什么是网格拓扑?

    网格拓扑是一种设置,其中每个设备都直接连接到网络上的每个其他设备。因此,它要求每个设备具有至少两个网络连接。

    100)100Base-FX 网络的最大段长度是多少?

    使用 100Base-FX 的网段的最大允许长度为 412 米。整个网络的最大长度为 5 公里。

    来源:IT大咖说

     

    往期文章精选

    周杰伦新歌《说好不哭》上线,程序员哭了......

    如果让你手写个栈和队列,你还会写吗?

    挑战10个最难的Java面试题(附答案)【上】

    javascript基础修炼(13)——记一道有趣的JS脑洞练习题

    【我的物联网成长记3】如何开发物联网应用?

    展开全文
  • 减少网络暴力,从你起。

    千次阅读 多人点赞 2020-01-12 21:14:34
    2019 年 2 月份开始在 CSDN 写文章,从阅读量寥寥,到今日为止收获了 2000+ 枚粉丝。真的要非常感谢 CSDN 这个平台...很难找到一个强有力的驱动力去坚持一件事情。 除了技术文章,写过很多励志和生活经验的文章...

    2019 年 2 月份开始在 CSDN 写文章,从阅读量寥寥,到今日为止收获了 2000+ 枚粉丝。真的要非常感谢 CSDN 这个平台和 2000 多枚粉丝的支持,让我重拾写作的热情。

    然而写作也并不是那么容易的事情,需要花费大量的时间和精力去构思、创作、完成。特别是在你还没成为大 V 之前,文字不可能变现。很难找到一个强有力的驱动力去坚持做一件事情。

    除了技术文章,我写过很多励志和生活经验的文章。总是希望自己曾经走过的坑,能帮助其他人。或者自己的一些生活感悟能够开导其他人、哪怕只是提供一些参考。这是作为作者的一片赤诚。

    但是人红是非多,况且我还没有红。写的文章看的人多了,林子大了,什么鸟都有。我想任何一个写手大 V,都会遇到过网络喷子,我也不例外。有时候看到,自己很忙的话,直接删掉就好。不用在这些人身上浪费时间,坏了情绪。

    但是网络喷子好像可以无限繁殖一样,无处不在。比如今天又遇到了。我有两个心理过程,一个是,像往常一样直接删掉就好。但是今天周末,时间比较充裕。我就在思考,我为什么要保持沉默,他让我不痛快,我就要怼回去(大不了怼不赢了再偷偷删掉,哈哈)。

    很多人可能会说,何必呢,跟这种人置气,浪费时间。包括我以前也是这么想的。但是我又想,是不是就是因为我们的沉默,所以网络攻击才越来越多,网络暴力越演越烈。

    因为网络暴力造成了这世间多少悲剧,相信不用我明说大家也心里有数。今天发生在我身上的事情,很小很小。也许就是你们在网络上看到的最平常不过的“怼”。我用了不到五分钟的时间进行了自我调节。其实很多人嘴上说着“不要在意,删掉就好”。“不要在意,就当没看到”。但是人非草木,孰能不动声色?只是看会不会进行自我调节罢了。有的人也许麻木了,必定也是经历了千疮百孔的折磨才能刀枪不入。

    刚刚说,我用了大概五分钟的时间进行自我调节。具体描述一下这五分钟内我的心理活动。首先第一反应肯定是气愤,然后强迫自己慢慢冷静下来。但是还是感觉有点受伤,甚至想要删掉所有文章就此作罢,有那么一小瞬间,眼泪还在眼眶打转…然后慢慢平静下来,这有啥,一个不认识的陌生人而已。

    所谓 “恶语伤人六月寒”。我相信很多受过网络喷子“虐待”的人都有过我这种心理路程。程度,或深或浅。这不由让我想起这个社会的网络暴力现象。

    是的,我是可以删掉评论,当什么事情都没有发生。我能平复自己,管好自己的情绪就行。也许正是因为每个人都这么想。所以网络暴力才越来越猖狂。所以我在想,是不是可以尽一份绵薄之力,写一篇文章,让更多人可以看到。也希望看到这篇文章的人能够转发此文,一起减少网络暴力。

    希望大家在阅读文章的时候保持理性,很多时候,你不经意的一句话,都会给人造成程度不一的伤害。如果是看到不喜欢的文章,可以不用看。如果忍不住要写评论、提建议可以好好说。随意怼人,骂人的后果要么对方受伤。遇到强势的作者,互怼,结果只会是两败俱伤。如若是提建议可以友好地指出。作者虚心接受,认识到自己问题,进一步改进,然后输出更好的作品。读者也会有更好的阅读体验和感受,这才是双赢。

    其实不止是网络,在现实生活,每个人也都应该注意自己的讲话方式。只管发泄,随意诋毁他人,最终的下场只会是双方受伤,无一幸免。每个人在发出言论(或者说话)之前都用几秒钟的时间思考一下这句话会不会给他人带来伤害,伤人终伤己。

    这个社会是一个相对和平的社会,但是人心的和平却难以测窥。愿网络世界少一些争锋相对,多一些温柔以待。减少网络暴力,从你我他做起,一起维系一个纯净、和平的网络世界。

    展开全文
  • 如何快速搭建一套完整的网络直播平台

    万次阅读 多人点赞 2017-01-13 10:31:35
    由于朋友公司的老总拿到了大笔投资,准备搭建自己的旅游直播平台,本人作为流媒体技术方面的码农被应招入伍并被委以重任,带领团队打造一套自己的网络直播平台。 经过几月的战斗最近终于完

    网络直播在近两年异常火热,比如我们所熟知的秀场直播平台91586间房、YY);游戏直播平台(虎牙直播、龙珠直播、熊猫TV);移动直播平台(映客);在线直播购物平台(菠萝蜜);在线教育平台(百度传课、淘宝同学)。

    由于朋友公司的老总拿到了一大笔投资,准备搭建自己的旅游直播平台,本人作为流媒体技术方面的码农被应招入伍并被委以重任带领团队打造一套自己的网络直播平台。

    经过几个月的战斗最近终于完成了一完整的直播平台建设,经历了太多苦逼的加班和熬夜,但是也得到了不小的收获,下面就把我这段经历记录下来与大家一起分享。

    接到领导下达的任务后,几天内心里一直忐忑不安。虽然被赋予了大权,但是因为我之前在华为工作时主要负责IPTV流媒体平台部分,现在将整个端到端的解决方案都要我来掌控和负责,真切感受到了什么叫“肚子里的墨水还是太少”。因为这个平台的确比IPTV还要复杂,不仅包括流媒体内容分发平台,还包括多种前端设备的采集编码(PC终端、AndroidiOS移动终端),多节目源的导播切换、台标和字幕的叠加,视频弹幕,多分辨率视频的实时转码,多播放终端的节目流适配,多终端的硬件解码,移动APP的开发,互动功能的开发等等一系列工作。所有这些,都需要自己亲自去实现。而在之前的IPTV应用中,前端编码有现成的编码硬件实现,终端解码也有N多种现成的机顶盒支持。

     无奈,已经箭在弦上,不得不发了。因此接下来开始做各种构思、技术信息收集和开发准备工作。

     首先,我还是按照端到端的业务流程来逐个寻找解决方案。

    1484273970573533.png

    游戏直播业务流程图

    根据上面的业务流程图,我们团队开始按部就班地开始行动。

    第一步,PC端视音频采集

    目前最火并且流量最大的游戏还是端游,比如英雄联盟、剑灵、坦克世界、DOTA2、跑跑卡丁车、梦三国、怪物猎人、完美世界、穿越火线、魔兽世界、梦幻西游、炉石传说等大型游戏,需要完美采集PC端的游戏画面和音频,

    PC端的图像目前主流的是1080P高清分辨率,并且主要是运动画面,数据量非常大,如何高效地采集到这些数据并且还要实时地进行编码压缩,同时要有更高的压缩效率从而节省平台端的数据带宽成本,都是需要详细考虑的问题。

    为了完成这一步,我们详细比较了多种不同的实现方案,主要有如下几种:

    1)  采用目前市面上现成的硬件视频编码设备;

    我们测试了多个厂商的设备,这种设备通过内置的DSP专用芯片做视音频处理,实时性很好,但是测试后发现其对运动图像的处理效果不好,编码后的图像会有比较大的失真,并且压缩效率低,产生的数据量大。此外,广播级的硬件编码设备单台价格都在2万元左右,不适合我们面向个人玩家推广。

    2)  通过硬件+软件的方式来实现;

    按照通常视频会议的应用模式来实现,配置专业的高清视频采集卡和PC端视频采集编码软件。市场调查后发现,采集卡倒是有很多品牌,单价在1000~3000元不等,并且测试后发现采集的图像效果很不错。但是难题出现在了PC端软件上。可以实现这种功能的专业PC端采集编码软件屈指可数,深入研究后知道了原因,主要因为这方面涉及的技术层面太专业,这种软件通常都需要使用C语言来编写(编程难度大),而且要求程序员精通当前最主流的视音频编码算法(H.264/H.265/AAC等),同时要精通socket网络编程和流媒体协议栈(UDPRTMPRTSPHTTPHLS),在国内要招聘到这样的高手真是太难,因为这方面的技术标准制定都是国外主导的,即使可以请到,这种人的月薪估计也在10W左右,并且这种程序的开发周期至少在1年到2年的时间,因此我们研究后决定放弃PC端软件的自主开发计划。放弃自主开发不等于说是放弃这种实现方式,因为从整体上来衡量,采用软件方式实现虽然前期投入大,但是大规模运营时单位终端上的摊销成本就很低,因为软件可以无限复制。

    软件的选型是一个费事费力的过程。PC端专业的视频采集软件主要有Adobe Flash Media Live EncoderFFMPEG,直播大师,VLC等少数几款。

    A.       AdobeFlash Media Live Encoder测试

    首先测试的是Adobe Flash Media Live Encoder,这是一款成熟的直播软件,配合Adobe 发布的Flash Media Server使用的,软件稳定性不错,但是这款软件的弊端也很明显:1)它不支持AAC音频编码,因为AAC音频编码是要向第三方机构购买Licence授权费用的,Adobe出于节省成本的考虑没有加入这个特性(因为Flash Media Live Encoder是免费的);2)它的H.264视频编码采用CPU来运算,由于H.264编码算法很复杂,所以做高清编码时占用的CPU资源太高,i5/i7系列CPU做编码时资源都占到了50%,这时运动大型游戏时主机很吃力,经常出现运行不畅和卡顿的现象。解决的方式也很简单,配置一台独立的主机做采集编码工作,这时增加了5000元的额外开支;3)在直播的同时不能实时存档录制MP4文件格式,只能存档成FLV格式再用转码工具做格式转换,费时费力而且二次转码会降低图像的清晰度;4)不能在直播的同时叠加字幕和台标;5Adobe太大牌,人家不愿意给我们做定制开发,并且不提供源码和开发接口,这点是最要命的。毕竟是做运营,我们希望将服务器信息和一些直播默认值写死到程序中去,同时自行开发它目前没有的功能,但是人家看不上我们,后来领导出面去沟通对方将就同意了提供定制化的二次开发,但是要价几百万美元,老板最终决定放弃这款方案。

    B.        FFMPEG测试

    其次我们开始测试FFMPEG的直播客户端方案,由于FFMPEG这款软件是开源软件,如果该方案可用肯定是最优的方案,毕竟可以按自己的意愿随意改造。测试工作进行了半个多月时间,毋庸置疑,这款软件的功能非常全面,基本上在音视频处理方面你能想到的功能点它都想到了,国内外做视音频方面开发的有很大一部分都是基于FFMPEG做二次开发。但是测试后发现,这款软件的最大弊端是1)稳定性差,动不动就会崩溃或者死掉,无法长时间工作;2)命令行方式操作,没有直观的图形用户界面,非专业人士不会操作;3)硬件兼容性差,无法与第三方硬件设备的驱动程序进行良好的交互(比如各厂商采集卡驱动);4)没有专业的二次开发技术支持,只能自行研究和改进。由于我们的运营项目对上线时间有要求,改造FFMPEG至少需要1年的时间,因此只能将ffmpeg作为一款备选方案。

    C.        直播大师测试

    直播大师是北京顺景科技有限公司开发的一款专业直播采集编码软件,该软件拿到手进行测试,给人的第一感觉就是操作简单,具有图形化的操作界面,采用所见即所得的设计风格,非常适合非专业人士使用。

    接下来我们进行了更详细的性能测试,测试结果表明,这款软件是我们在市面上见到的最高效的一款直播采集编码软件,它能够以H.264编码格式同时编码61080P的视频,此时的CPU占用率也只有5% CPU型号:i7-4770k】,同时可以将多个输出码流推送到多台服务器上做冗余备份。此外,这款软件支持在本地多种格式的录制功能【MP4TSFLVMOV3GP这些常用格式】,支持当今最新的H.265编码技术【个人认为H.265在不久将会取代H.264成为主流标准】,还支持多种协议的输出【RTMPRTSPUDPHTTP】。除此之外,该软件还支持电视台中常用的实时字幕叠加、台标叠加、时间戳叠加等实用的功能,以上这些已经完全满足了我们做游戏直播这种应用场景的需要。如果产品的稳定性有保障的话,这应该是一款非常好的方案。

    接下来我们进行了产品的稳定性测试,按照对方给出的测试环境【i7 CPU/8GB内存/1TB SATA/千兆网络/4路高清采集卡】,我们使用该主机在办公室常温环境下同时采集编码4路高清视频进行测试,不关机运行了2周时间,机器运行一切正常,中间没有发生过死机和内存增长的情况,运行极其稳定。

    再接下来,就是领导和对方在商务上和服务支持方面的沟通。我们本想要对方开放源代码或者提供接口给我们,然后我们自己增加一些应用功能进去,但是看到对方的产品源代码后才发现,对方的产品软件结构很复杂,没有详细的软件开发文档,让我们很难快速掌握其整体结构脉络。最终,经过上层领导的沟通协调,对方答应为我们开发个性化的应用功能,开发周期在1.5个月内完成,增加的主要功能包括:1)与我们自身流媒体发布平台的绑定,2)用户登录验证信息的绑定,3)通过软件方式实现游戏视音频信号的采集。第3)个功能对我们的运营平台意义重大,这样可以节省下每个终端高清采集卡的硬件成本,对于我们这种大规模运营平台来说节省的成本非常大。

    D.       VLC测试

    VLC是一款开源的客户端软件,具有解码、编码和串流等应用功能。本质上,VLC是基于FFMPEG开发的更高级的应用,但是VLC开发团队自己设计了图形用户界面。这款软件已经持续开发了10多年时间,用户范围遍布全球。因此,我们对其进行了如下几个方面的测试:

    1、功能测试。

    由于VLC本身就是基于FFMPEG做的开发,所以功能上还是很强大的,基本上满足我们的需要。

    2、性能测试。

    我们用它做H.264的编码测试,发现它用的是x264这个开源的编码算法,通过CPU进行计算,编码11080P的高清视频CPU资源占用率达到了50%

    3、易用性测试。

    VLC做播放器使用其用户体验效果还是很不错的,并且提供多种用户界面可以选择。作为采集编码软件来使用的时候,它的用户体验效果很差,操作很不方面,而且也不直观,如果自己做二次开发改造的话需要花费很大的人力和时间。

    4、稳定性测试。

    我们使用它进行采集和编码测试,首先发现其对服务端的协议适配性不是很好,经常有无法推送节目的现象发生。此外,在网络抖动或者短时间中断的情况下,程序会自动退出,导致直播服务中断。这些问题我们无法找到原因,官方也没有专职人员可以提供技术支持,因为整个项目是由一群分布在世界各地的志愿者来维护的。这种花费了10多年时间做的软件项目,短时间内我们还无法掌握其核心架构和模块功能实现方式。源代码也非常晦涩难懂。

    通过以上测试,我们发现ABD这三种方案可行性都很差,因为当前我们在这方面没有足够强的开发实力以及充足的开发时间。因此只有C 这款方案最适合我们现实的应用场景。最终领导决定下来采用“直播大师”这款软件,并在此基础上做二次开发。

    第二步,移动端视音频采集

    除了做PC端游戏的直播,我们还要做手机端游戏和户外场景的直播,因此开发手机端的直播工具软件势在必行。

    众所周知,当前主流的两大手机操作系统就是googleandroidAppleiOS。两大操作系统的开发语言和开发框架差异很大,android系统采用java语言来做应用层开发,而AppleiOS系统采用Objective-C语言做开发。两个平台具有各自不同的开发接口和特性,两个平台上的应用程序没有任何兼容性,因此我们必须组建两个APP开发小组来完成这件事情。

    目标确定了,下面就是技术路线选型工作。

    首先,对于手机端的视音频采集编码技术,我们有过类似的经验。考虑到手机的处理能力,我们的技术路线是利用手机自身核心处理器的视频编码能力来完成。在Android端调用Mediacodec开发接口来实现,iOS端调用苹果提供的Core Video框架来实现,编码格式上我们采用H.264视频编码和AAC音频编码,通过硬件编码方式极大地降低了移动终端的CPU负荷与功耗,。在协议的选择上,我们采用当前主流的RTMP协议由客户端向服务器端推送数据。RTMPAdobe公司制定的一款流传输一些,结构比较简单,自己研究就能搞定,而且这款协议在行业内应用非常广泛,便于不同产品的集成。

    其次,字幕和台标的叠加

    PC端,顺景科技的直播大师已经具备了专业级的字幕台标叠加功能,下面考虑的主要是移动端的实现。还好,顺景科技在这方面也给我们提供了技术支持,通过渲染技术实现了字幕和台标的叠加功能。不仅如此,在他们的帮助下我们的移动端软件还加入了图像美颜功能,支持120多种常见滤镜效果。

     

    第三步,内容的发布和转码

    前端设备将直播的视音频内容采集处理后,首先推送给平台的源站服务器,我们将源服务器部署在了北京本地的运营商骨干节点机房(近距离便于维护)。源服务器采用多机集群热备份机制,防止一台源站服务器宕机后影响整个平台的稳定运行。

    源站服务器连接有专业的磁盘阵列存储设备,当源站服务器接收到数据后,首先复制N份转发给下面的N个二级CDN节点,同时复制一份给转码服务器。转码服务器将接收到的每一个流进行实时的转码,主要是将高清码流转换一份标清码流给小屏移动终端,移动终端接收标清小码流不仅符合自身的小屏分辨率需要,同时可以降低对移动端的解码能力要求,还能有效节省带宽成本。

    同时,转码服务器将实时的直播码流录制保存到磁盘阵列中,供以后点播回放使用。

    在这个实时转码环节,我们突然发现之前考虑的欠周到,因为根据我之前在华为做IPTV的经验,内容的转码可以交给高性能的服务器来完成,之前我们用配置四颗Intel E5系统八核心的处理器来做视频转码,转码1080P视频可以达到8倍速以上。但是当我将之前的技术用于这个项目中测试时发现,我们之前的转码技术还是远远不能满足要求。因为我们当前的应用是大并发的直播运营,在同一时间平台可能要对数百个甚至上千个直播流进行实时转码,这样就需要很多台高配置的服务器,这样很难控制运营成本;此外,直播流的转码必须是实时性的,要求转码延迟在1秒以内,这和我们之前的2~3秒延迟还是有很大差距的。如果对原有的技术进行改造,这部分的开发周期预计要1年以上,而且还没有绝对的把我可以达到最好的效果。最后在多方面的尝试后,我们采用了直播大师厂商顺景科技提供的他们自行开发的先锋云转码方案,因为他们的方案在转码性能上不仅有更大的提升(单台服务器可以达到1080P 30倍速的转码效率),而且他们的转码实时性也更强,转码延迟可以控制在500ms以内。

    第四步,流媒体发布

    流媒体发布这个环节对于整个平台来说也是至关重要,因为最终面向终端用户提供服务的是分布在全网的流媒体服务器,流媒体服务器的稳定性以及性能优劣决定着终端用户的体验效果和平台的运营成本。根据之前做IPTV的经验,我们在这个项目中选择的技术路线还是自行开发,当然还是基于之前做IPTV流媒体服务器的基础来做,核心技术点又有如下的改进:

    1.      流媒体服务器还是采用C语言实现,保障运行效率最高;

    2.      将之前的多进程模型改成异步IO模型,提高服务器的并发处理性能;

    3.      在协议层上增加对RTMPHLS协议的支持;

    4.      引入hadoop这一分布式架构,便于大规模分布式部署、调度和容错;

    通过这些改进,流媒体服务器的整体性能又会有一个质的飞跃。

    这部分开发工作要持续半年多的时间。

    第五步,CDN内容分发

    这方面是我的业务特长所在,与我之前做IPTV平台的技术路线相同,主要是对流媒体数据在全网范围内的多个节点之间进行快速的分发,从而提高终端用户的体验效果。

    在协议的选择上,我们根据直播和点播应用的特点,支持RTMP协议、HTTP协议、UDP协议这三个类型。

    节点服务器的建设方面,我们根据国内互联网的整体布局,采用中心节点->各省级节点->地市级节点 三级架构模式,把主要的用户流量首先引导到第三级节点,然后是第二级节点,之所以这样设计,主要因为越到中小城市,带宽价格越低,这样可以极大地节省后期的运营成本。

    为了保障平台运行的稳定性,我们将CDN系统部署在64位Linux服务器上,与优酷这类大的视频门户技术架构相同。

    cdn.png

    按照公司业务规划,我们前期先部署一、二级节点,做到每个省会城市都有一个CDN分发节点,每个二级节点有3台以上的服务器组成分发集群。

    第六步,终端播放器开发

    在终端的解码回放部分,我们考虑自行开发PC、Android和iOS三个终端的播放器,由于三种终端采用不同的操作系统平台,因此我们成立了三个开发小组来分别完成,下面讲一下技术路线:

    PC端:

    采用行业内主流的技术路线,基于Adobe的Flash Player做应用层开发,这也是当前最成熟时的技术路线。为了缩短开发周期,我们基于Adobe的OSMF播放器框架来做,开发周期控制在2个月以内比较可行。

    Android端:

    Android端的播放器开发我们首先考虑到的是终端的解码性能,因为解码框架有多个可选,比如FFMPEG、VLC、MediaPlayer API、Exoplayer等,从我们自身的熟悉程度和项目的可控性上考虑,最终决定采用google的Exoplayer做二次开发,开发周期可以控制在2个月以内。

    iOS端:

    iOS端的播放器也是基于同样的考虑,我们选择了苹果提供的VideoToolbox开发接口,通过它可以直接调用苹果处理器自带的硬件解码功能,这样可以大大降低设备的功耗,延长电池的续航时间。

    经过团队15个人的艰苦奋战和N多个的加班熬夜,四个月后平台原型已经基本宣告完成,虽然在应用功能上还需要进一步完善,但是从性能测试上看,我们的技术路线是正确的,因为整体性能比优酷、乐视这些同行业兄弟站点高出了20%左右,而且资金投入上并没有高于其他平台,反而比他们还要低。而且,在整个平台的架构上,我们还考虑到了向后的兼容性和可升级性,比如在整个内容发布环节我们都支持了H.265视频编码标准,虽然现在还未大规模应用起来,但是这个产业链在2~3年内应该会有很大的起色,也是未来的主流标准,因为H.265比H.264的压缩效率提高了一倍,这就意味着采用这项技术不仅能将存储成本降低一半,还能够将带宽消耗降低一半,这无疑会为将来的运营节省大笔开支。

    能够如期完成这样一个工程,团队的兄弟姐妹们付出了很多辛劳与汗水,我要为他们点个赞!作为整个项目的技术负责人,取得这样的成绩自己也感到很欣慰,所以要为自己点个赞,哈哈 ~-~

    以上就是我做这个直播平台的一段经历和收获的一点点经验记录下来既是对自己的总结,同时也想与各位创业者和同行一起分享,希望对大家有所帮助。如果您有不同的见解,欢迎交流和拍砖!

    展开全文
  • 开源传感器网络平台OpenWSN

    千次阅读 2012-10-19 15:51:13
    开源传感器网络平台OpenWSN 无线传感器网络(Wireless Sensor Network, WSN是一张由大量微型传感器组成的感知网,它采用低功耗和自组织无线通信技术互联大量的低成本传感器,提供对现实世界的监测感知功能并可承担...

    开源传感器网络平台OpenWSN
    无线传感器网络(Wireless Sensor Network, WSN是一张由大量微型传感器组成的感知网,它采用低功耗和自组织无线通信技术互联大量的低成本传感器,提供对现实世界的监测感知功能并可承担适量的信息服务(如追踪和定位等)
    它是Internet及其服务的延伸。
     Internet连接的是计算机与计算机,沟通的实际上是人与人之间的关系,以WSN和RFID为代表的互联技术连接的则是物与物,沟通的物与物(机器与机器)的世界,兼及物与人之间的通信。因此,可以认为WSN是整个世界的感知终端,是整个世界走向自动化和智能化的基础设施;
    它是一个广度计算/深度嵌入的计算和服务平台
     它与以3G、4G为代表的高速移动通信网、以Grid和云计算为代表的深度计算/广度服务平台将是未来社会最基本最重要的三大基础信息平台。
    与无线局域网(WLAN)的不同
     轻量级多跳传输网络,距离更远更灵活
     距离和范围优于WLAN,但速率也比较低
     功耗更低,可电池供电
     成本低1-2个数量级
     重在感知而不是通信
     定位在灯光、能源、安全、智能建筑、医疗保健等专业或半专业应用领域,产业空间更大
    与RFID的不同
     RFID可以做的事情,WSN都可以做,比如说唯一标识、信息存储等,故有人利用WSN技术构
    建Active RFID网络;
     增加了测量和感知,增加了微控制器,可执行更复杂的现场处理,提供更完备的网络互连
    协议和机制
     成本更高,但是仍大大低于无线局域网技术
     依据摩尔定律,成本每年都在迅速下降中
               -> 3G / 4G / Internet
             -> WLAN
      -> WSN / PAN / BAN
    -> RFID
    与传统测量系统的不同
     传统测量系统着重高性能,高精度,对成本不敏感,定位在仪器级
     WSN不可能采用昂贵的高精度高成本测量电路和手段,WSN的应用定位决定了它要采用廉价
    的/常见的/低成本传感器,这就制约了其精度和性能,但是它可靠多传感器融合有限度的提高精度和性能;
     WSN强调网络化区域化感知,可以看作是一个空间上的采样系统,这与强调采样点的传统测
    控系统不同
    WSN与“传感器+网络”有什么不同?
     S+NET的范围更宽,可以涵盖WSN。而WSN若不提供location和time信息,将是一个普通的S+
    NET
     通信角度:我们通常所说的无线网可以分成:微微网(物物网,PicoNET, WPAN等),用于局
    部数据通信的局域网(WLAN等) ,用于覆盖广大面积的电信网(3G等)三个层次,WSN主要指在微微网尺度的互连,而S+NET则对网络形式无限制。但是注意三种网在功能定位和实现技术细节都有所不同,没有一种技术可以完全覆盖三类功能要求。
     WSN强调小体积和低功耗。正是由于这两点的技术进步,才使得我们过去构想的很多应用成
    为现实。也正是因为要做小做低,所以才要求我们在技术、工艺、管理、能源、环保、感知
    等各个方面有新的突破,从而开拓出研究的空间。

    问题:传感网的未来如何?2-5年之后,传感网在社会上的应用能否突破目前领域高度相关、应用偏少的现状?能否象Internet那样在未来作为一种社会化基础信息设施出现?
    短期:个别应用
     未来:一种社会化的信息基础设施,就如同今天的通信网、电力网一样
     一种设想:Internet作为骨干,互连多个局域性的WSN,形成未来社会的基础信息设施
     对上述问题的理解决定了我们工作的定位和目标
     四种价格模式
      价值创造:以装备研发为代表,完成从无到有的价值创造(价值1)
      价值增值:与特定领域结合,提供系统集成和咨询服务(价值10)
      价值放大:规模化生产、销售、推广(价值100-1000)
      风投的介入:可以加速,但不会创造新的价值
      价值深化:在企业、社区、城市、国家、全球层面上,作为物理世界状态和人化世界效果的反馈通路存在,辅助实现和谐社会目标(价值难以估量)

    问题:什么是传感器网络内核(Kernel)?
      问题:传感器网络内核应包含哪些内容?它与通常的嵌入式操作
    系统内核相比有何不同?
      传感器网络内核应为传感器网络应用的开发提供基础性支持
      传感器网络内核和传感器网络中间件的区分
     问题:什么是传感器网络平台
      平台= 运行平台+ 开发平台
      运行平台= 硬件+ 内核+ 中间件及进一步扩展
    注:传感器网络内核,亦有人称之为传感器网络操作系统(Sensor OS),但是OS的内容不好界定,故这里用内核Kernel之一术语,以区分整个平台中的最关键最中心部分和外围附属扩展部分。
    传感器网络内核发展的现状和趋势
      以TinyOS为代表的事件驱动内核
      为WSN研究提供一个先进的验证性平台
      类似事件驱动内核还有浙江大学的Senspire, Swedish Institue的Contiki,UCLA的SOS 2.x等
      以MANTIS为代表的多线程节能内核
      以传统的多线程方式验证了节能方式
      类似内核LiteOS
      来自产业界、以ZigBee为代表的强调互联互通和静态开发平台
      以uCLinux/uCOS-II为代表的传统工控内核
    总体上看,事件驱动和多任务可剥夺式调度是最主要的两条技术路线,尤以前者更为突出。国外的近期进展主要集中在面向实际应用的可动态配置装载卸载的内核上,以及探索两者优点的结合特别是改进调度策略上
    问题:为什么要再造一个新的传感器网络内核?
      从趋势上看,今天的传感器网络正在由学术界研究为重走向产业
    界为主导
      在这种情况下,传感器网络基础平台的设计应更多地考虑产业界
    现实要求,特别是处理好遗留代码问题,能够很好的与现有各种
    系统融合
      TinyOS的局限性
      强调创新,是很好的新想法验证平台,但对工业界已有传统成果缺乏
    继承
      ZigBee的局限性
      只适于低速、低性能、大延迟、非移动应用
      协议栈已经“过肥”,对硬件资源要求高,不利于进一步降低成本
      各家产品不统一,几乎都与自家硬件产品绑定,缺乏通用性和可移植

      网络管理仍有困难

    可靠性
      满足无线传感器可长期稳定运行数年的要求;
     易用性
      充分利用现有技术资源,代码资源和人力资源
     可移植性
      能适合多种底层架构和多种硬件平台;
     可扩展性
      系统可裁减,适应存储器从数KB到数百KB、MCU能力从数MHz
    到数十MHz范围的不同应用
     兼容性
      可独立运行或作为其他RTOS组件运行。

    针对可靠性目标:
      初始资源一次性分配方案,避免了在内存高度受限系统中动态申
    请和释放存储器资源导致的潜在不稳定
     针对易用性目标:
      在系统中提供多种预定义组件和组件间的连接方式,且应用程序
    自定义组件和操作系统预定义组件符合相同的规范,从而缩短了
    学习时间
     针对可移植性目标:
      采用分层架构特别是引入硬件抽象层实现
     针对可扩展性目标:
      基于通过组件库方式改善
     针对兼容性目标:通
      过修改内核调度器驱动模式实现。
    划分Hal,Kernel,Service和App四层,并且严格遵循上层可调用下层(允许跨层调用)、下层禁止调用上层的策略,破除了下层对上层的依赖
      Service层提供了一系列自治服务,供应用App选择性组装成为一个完整的可执行软件, 并由Kernel为这种组装提供基础支撑,包括事件的分发和调度等功能
      在Service层对象库和Kernel的支持下,应用App层的开发就简化为选择所用到的服务,并且借助Kernel进行连接和组装的过程,而应用的运行就体现为这些服务在Kernel事件调度器的驱动下协调演化的过程

    定义:服务
      以被动(Passive)方式等待外部请求调用然后提供服务的对象称之为服务(Service),服务的Passive工作模式有助于破除对象之间的耦合依赖,从而简化服务的组装。因此,本文以术语“服务”强调对象的被动工作特性。
      定义:可运行服务(Runnable Service)
      实现了evolve接口的服务。可运行对象服务的行为可通过有限状态机严格描述,该状态机的演化由发送给该对象服务的事件(event)驱动,在C语言中形式上通过一个带有event参数的evolve
    接口函数实现。一般,调度器会承担起向各可运行服务转发事件、驱动执行的责任。
      定义:服务库(Service Library)
      所有服务的集合。
    在OpenWSN中,可运行服务是一个可被调度执行的实
    体,通常具有如下形式:
      typedef struct{
      Int state;
      }service_t;
      /* 服务创建与销毁*/
      service_t * service_ construct( void * mem, int size, …);
      void service_ destroy( service_t * svc );
      service_t * service_open( service_t * svc, …);
      void service_close( service_t * svc );
      /* 接收外部发来的事件并驱动服务状态机演化*/
      int service_evolve( service_t * svc, event_t e );
    可运行服务(Runnable Service)和传统RTOS中的任务(Task)或线程(Thread)比较
      可运行服务吸收了OO优点,集成了数据和操作,作为一个整体成为资源申请与释放的单位,减少了资源频繁申请释放在内存受限系统中长期运行中的潜在不稳定性,减少了资源泄露的可能性;
      可运行服务对外提供标准的evolve接口(listener接口)接受来自其它对象的事件输入并驱动自身状态机演化。而在经典的多线程并发模型中,线程自己必须管理事件和数据的输入输出界面和内部的状态机。
    在这种架构下,应用程序(Application)蜕化为如下
    三元组:
      App := {Sapp, C, Scheduler}
      其中,Sapp表示应用程序服务集,它是服务库的子集,C表示各服务之间事件流转的关系,在系统初始化时给定,Scheduler承担事件缓冲、通知、分发和延迟的功能,驱动各可执行服务的演化。
     因此,应用程序的构建过程就是从服务库中挑选用到的服务,然后创建其实例,并借助Kernel将它们连接起来的过程
      如服务库中缺少特定组件,则可自行开发并补充进服务库与通用PC机软件不同,在资源高度受限系统中,
    应努力回避频繁的资源申请与释放
      包括在程序中频繁的创建和销毁对象,这是由动态内存管理算法本身的弱点、应用的实时性要求和长期运行的高可靠性要求所决定的。
     因此,OpenWSN中暂不支持对象的动态申请与销毁
      所有对象必须充分预估自己的存储器消耗,并且在初始化时统一创建。这种一次性把资源性申请足的方式避免了由服务创建失败导致的系统不确定性,以及动态申请释放导致的内存碎片带来的潜在不稳定性,有助于提高系统长期运行的可靠性。
    应用由各服务粘合而成
      粘合的手段包括:事件通知机制、事件分发机制和事件调度机制
      事件的通知和分发分别通过notifier对象和dispatcher对象实现。
    notifier对象负责将收到的事件e复制多份送给所有接收者,而dispatcher则要根据内部的事件-服务映射表或者规则选择性的将e送
    给某一个接收者。在接收者只有1个的情况下,发送者可以直接调用接收者的evolve()接口函数将事件e送过去。
     但是notifier和dispatcher对象只能实现同步调用,
    如需异步调用,则需利用调度(scheduler)对象服务。
      需要异步发送的事件可推入scheduler事件队列,并由scheduler代理实现异步处理
      特别的,由硬件触发的中断服务程序也可将约定好的事件推入该队列,并由scheduler代理实现非中断态下的继续处理。
    定义:事件处理能力
      1秒钟内整个系统能处理完毕的事件数量。
      在一个60MHz ARM芯片上,指令平均以近似单周期完成,假定每个事件需要10-4条指令才能处理完毕,则该芯片的事件处理能力可达到6000个/秒。这个速率足够满足绝大部分应用场合。而在8MHz时钟的MCU上,事件处理能力也可达到800个/秒左右。
    多服务对象并行演化的应用系统模式便于与层次状态机模型或Petri网模型对照,便于形式化验证。
      取消了动态内存分配,避免了由动态内存分配导致的潜在的行为不确定性。
      本质上整个调度器内核和接受内核调度的所有服务对象都运行在同一个线程上下文中,没有线程切换的上下文开销,而服务对象之间切换的开销仅等同于普通的函数调用开销。
    在入门上较普通的线程模型略微复杂,但多线程模型中的协调同步通信保护很复杂,且为了实现状态机设计,线程模式下通常需引入额外的处理如无限循环,消息的传递,共享数据保护等,而在OpenWSN内核支持下,上述过程已经规范化,每个可执行服务可集中关注处理逻辑而不是交互接口,而且,APP层也遵循同样的框架,整个系统风格统一,简化了使用和扩展。
    既可单独运行,也可通过切换scheduler的驱动源实现整个体系向宿主RTOS的移植。
    根据摩尔定律,成本将在未来3年内再次大规模降低,3年之后将降低到许多应用可以接受的程度。事实上,今天已经被很多领域所接受
      由于新兴厂家的介入,传感器硬件平台多样化的趋势不可阻挡,但软件平台将逐渐收缩到少数开源选择上,这对厂家、开发者和客户都是有利的
      由于竞争加剧,常规无线传感器硬件结点的价格将迅速降低,只有少数拥有核心技术的厂商能够继续维持较高利润率
      思考:什么是核心技术?
      标准之争更加激烈,与通信市场类似,将形成几家并存的局面,不会一家独大,但中国市场可能例外,ZigBee也许会占主导
      专有技术和标准技术将继续共存
    传感与测量、能量供给、网络管理与安全、数据分析是目前和未来的主要技术障碍
      因此也成为研发的热点和重点
      OpenWSN Team的重点就是:结点平台(着重传感与测量以及平台软件)、数据处理
      与传统技术的融合明显,严格的学术化的传感器网络在实际中让位于各种形式的杂交网络,例如工业企业中拖着电源线的无线传感器
      政府和工业需求将是主要的应用推手,政府相关类应用包括社会安全、智能交通、节能、环境等领域,企业类应用将着重工业、电力等行业。
    企业类应用的务实本质最终将成为推动和引导本领域发展的主要动力,但当前阶段政府的推动却仍是主要动力
      传感器网络数据与传统和已有信息系统的结合将成为新的信息系统特色,从而为构建社会化的反馈通路做好铺垫。
      在体传感网的技术和应用仍有待观察,目前受阻于传感与测量手段,其流行速度将慢于电力、交通、工业等传统领域有ZigBee就足够了,其它技术不用关心
      ZigBee不是万能的,很多领域都不是ZigBee的擅长,专有系统在未来相当长时间内仍将大行其道
      网络规模可以任意扩大,支持65536个结点
      规模大与小的差别很大,“林子大了什么鸟都有”,网络大了也“一样”。如此之大网络的管理和运行会有很多新问题,至少这么大的单一网络我还从未听说过。
      “距离不够咱们加功放轻松解决”
      多跳网络中谨慎看待增加功放方式,对其它结点和网络的副作用也不小
      链路信道时好时坏,太麻烦了,咱们选一个不怎么丢失数据的信道吧
      需深入了解信号传播规律,这种观点说明信道评估做的不到位
      网络?能通信就可以了
      网络的管理侵消掉系统运行更大的成本,例如,自我更新就很迫切
      在硬件上只要采用了低功耗MCU和Sensor就是低功耗设计
      错误的硬件设计导致功耗偏高,不具备关断能力的硬件使得软件的节能努力白费
    降低成本?那咱们选用便宜的MCU吧
      抱歉,今天成本主要在于传感器和测量环节
      传感器,只要买现成的就可以了
      传感与测量是永远的难点,很多时候要么买不到,要么能买到但买不到
    合适的,这需要测量技术来帮助,测量本身也是很大一门学问
      现场部署,没考虑过
      外壳,雷电、潮湿、闷热,不良步署将导致整个系统彻底失败
      环境监测中采用了高功率电池
      却没有注意电池本身对环境也是很大的污染,而且经常难以回收

    展开全文
  • 锐捷网络技能大赛云平台部分注意事项
  • 一直以来,Linux给的印象都是服务器级别的,虽然有拿它当桌面,也有手机使用它,但这都是少数,几乎从来都没有拿它放在骨干网上当路由器,哪怕是接入层都少到几乎没有使用Linux。Netfilter机制可以改变这...
  • android平台api帮助文档---android版的MSDN

    千次阅读 多人点赞 2012-12-21 18:52:35
    android应用开发,现在网上的资料大把大把的,但是都是零零碎碎的,有时候去查一个接口得去android官方网站http://developer.android.com/develop/index.html,由于网络速度问题,有时候要很久才能出来,真急死...
  • Python黑帽第二篇文章将分享Python网络攻防基础知识,看看Python能什么,以及正则表达式、网络爬虫和套接字通信入门基础。本文参考了i春秋ADO老师的课程内容,这里真心推荐大家去学习ichunqiu的课程,同时也结合...
  • 从中部某省偏僻的小山村来到上海这灯红酒绿的国际大都市,找到第份工作,从事大型网络游戏开发,刚开始负责底层驱动开发,因为技术过硬,基础知识功底扎实,很快从程序开发人员中脱颖而出,公司经理提升为...
  • 基于多层结构的网络游戏平台的研究与应用 学科专业: 计算机软件与理论 研究方向: 计算机软件 导 师: 李 祥 教授 研 究 生: 匡 华 中国 · 贵州 · 贵阳 2007年 5 月 本文的主要工作在《天骄II》、《傲世online》、...
  • OpManager12——一个完整的网络管理解决方案 完整性是衡量一个网络管理解决方案的重要标准。以往单纯的设备性能管理和可用性管理已经不能满足当今网络管理需要了。就是这样, OpManager12应运而生了。在这个版本的...
  • Flutter基础()移动开发跨平台技术的百家争鸣

    千次阅读 多人点赞 2019-04-23 12:04:35
    本文首发于微信公众号「刘望舒」 ...这篇文章还有一个目的,就是希望大家是玩技术的,而不是被技术玩的,对于不同的技术要有自己的判断。 1. 跨平台技术的诞生 是2010年开始从事的Android开发,当时会An...
  • 最近开始学习网络安全相关知识,接触了好多新术语,感觉自己要学习的东西太多,真是学无止境,也发现了好几默默无闻写着博客、着开源的大神。准备好好学习下新知识,并分享些博客与博友们一起进步,加油。非常...
  • 本文纯粹收藏,如有再转,请按如下方式详细...基于多层结构的网络游戏平台的研究与应用 学科专业: 计算机软件与理论 研究方向: 计算机软件 导 师: 李 祥 教授 研 究 生: 匡 华 中国 · 贵州 · 贵阳 2007年 5 月
  • **QT5/C++项目:**基于QT的跨平台网络对战象棋() 文章目录**QT5/C++项目:**基于QT的跨平台网络对战象棋()**本篇副标题:****本篇博客讲了什么or解决了什么问题?****项目简介:****项目特色:****实现功能...
  • 平台是干嘛的?...比如你卖出了一套480元的产品,我们平台就会结算240元给你,如果你能稳定每天卖出1单,那一个月下来你就能赚到7200元   原来是CPS模式,那平台现在有多少了? 截至目前为止,我们...
  • 本课程由刘远东、张立铜两位工程师将两在企业多年积累的开发经验结合而成。从基础的网络知识开始由浅入深地讲解如何使用C++实现一套支持百万...对从事高性能网络处理的前后端开发人员有极大帮助。咨询群:648738912
  • 而是本让你少走几年弯路的 IT学生解惑真经 这是部写给在校计算机专业学生的书 如果没有看到这本书,你可能会茫然无措的度过学习阶段,把这本书推荐给你的同学你会得到更多朋友 中国IT领域的发展速度之...
  • 这就是为什么TCP和UDP是一个流行的Java编程面试问题。曾经在各种不同的Java面试中见过这个问题,尤其是对服务器端Java开发人员的面试。由于FIX(金融信息交换)协议也是一个基于TCP协议,一些投资银行,对冲基金,和交换...
  • 这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步。前面三篇文章详细分享了WannaCry勒索病毒,包括病毒复现、IDA和OD逆向分析蠕虫传播、...
  • OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过...
  • 对支付平台架构设计的一些思考

    千次阅读 多人点赞 2019-06-04 08:05:00
    在前一家公司的第一个任务是开发统一支付平台,由于公司的业务需求,需要接入多个第三方支付,之前公司的支付都是散落在各个项目中,及其不利于支付的管理,于是聚合三方支付,统一支付平台的任务就落在手上,...
  • 本篇文章主要介绍讲述部署阿里云服务器Django...基础性文章,希望对您有所帮助,同时文章中存在错误或不足之处,还请海涵~同时推荐前面作者另外三Python系列文章。从2014年开始,作者主要写了三Python系列文章...
  • 用 Python 开发一个企业级的监控平台

    万次阅读 2018-01-22 00:00:00
    开发过日志分析系统、CDN流量计费结算系统,自动化容器管理平台等。精通Linux相关技术及Python、Shell、JavaScript等语言。现任多家大型公司咨询顾问,已帮助IBM、惠普、朗讯等多家跨国公司进行容器化
  • 最通俗易懂的网络应用层协议详解

    万次阅读 多人点赞 2017-02-23 17:21:00
    前言其实本文只是讲解从传输层到应用层实现网络消息传递的一个详细流程,至于更底层的网络层和网络接口层,那就不在的考虑范围内了,事实上那部分机制是不需要你去操心的,除非你开发操作系统!然后本文打着通俗...
  • 创业的这一年 九月只有两个人

    万次阅读 多人点赞 2013-12-25 08:19:05
    想想,和飞翔几乎是同时出来创业,的都是一个创业链条上的事情,我们第一个交换的友情链接,在活动中飞翔和她的技术合伙对缘创派(ycpai.com)也非常的支持。这里,也仿照飞翔,把今年的创业经历回顾一下,...
  • 这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步。前文分享了Wireshark抓包原理知识,并结合NetworkMiner工具抓取了图像资源和用户名密码...
  • 10免费网络管理工具

    万次阅读 2017-10-26 13:26:12
    你可能也在苦苦寻求着好用的免费网络管理工具,在本文中,将为您介绍10免费的网络工具,相信它们在企业网络的日常管理和故障排除方面会非常有用。 一些IT专业人员完全不理会免费的开源工具,因为他们觉得...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 265,543
精华内容 106,217
关键字:

我想做一个网络帮助人的平台