网络设备认识介绍解析
网络设备认识介绍解析
知识网络是知识参与者之间的社会网络。能够实现个人、组织与组织外部的知识创造与传递,人们透过知识网络进行信息合作与交流。目标是把技术与人连接起来,实现智力资本、结构资本和顾客资本的有效结合。可分为内部知识网络和外部知识网络,前者强调组织内部员工间与组织间的知识交流,后者强调组织外部的知识来源,包括社区、国家社会关系,以及竞争者。下面是小编收集整理的网络设备认识介绍解析范文,欢迎借鉴参考。
网络设备认识介绍解析(一)
网络设备现在已经成了家里必不可缺的一块,而如何选购网络设备也是个不小的问题,比如路由器,交换机,网卡等等。今天就在这里给大家推荐几款网络硬件吧。
1:斐讯K3C
什么?斐讯不是翻车了吗?怎么还推荐斐讯?没错,斐讯在狗东的车是翻了,但是K3C却依旧是一款值得购买的产品,在转转上基本160元左右就能收到,买回来刷个官改固件还是可以的,就是CPU和网络芯片比较热,能达到80℃以上。但是冲着它支持MU-MIMO以及千兆WAN+3口千兆LAN的规格来说,160元的价格可以说超值了,还是全新的,非洋垃圾可以比,信号也不错。
2:Mikrotik RB750Gr3(千兆有线)
其实这款产品硬件配置上没有什么出彩之处,MTK7621A+16MB ROM+256MB RAM,也许你看到这会说:什么?现在不都是无线路由器了吗?你推荐个千兆有线路由是几个意思?还是烂大街的MTK7621。但是这款路由值钱在它的固件上,它默认标配的固件就是ROS,而ROS的大名在玩路由器的朋友里面基本无人不知无人不晓,所以这款千兆路由器功能十分强大,而且因为发热低,非常适合扔在弱电箱里面,而且即便你是千兆宽带,也不会出现性能不足的问题,经使用这款路由的朋友测试,600M宽带转发最高只吃了14%的CPU,这NAT性能可以说和交换机有的一拼了。应付千兆宽带是完全没问题的。而且还拥有ROS的L4授权,340元的价格真的不算贵了。至于无线,你可以去找个无线路由器或者老路由器做AP即可,反正K2P这种100出头就能买到。
3:支持VLAN的千兆交换机
这款交换机就是我之前客厅实现双线合一使用的那款,但是这个固件好像不少厂家都在用,而且品牌略有不同,所以具体不推荐哪个牌子了,都是深圳出的。支持网管功能,VLAN等,非常适合用来组建家庭网络,而且发热很低,扔在弱电箱毫无问题,至于买5口还是8口看个人需求,链路汇聚,镜像,WAN扩WAN等功能一个不少,而价格仅仅百元出头,而它的功能,路由器是基本做不到的,所以这里推荐有需求的朋友购买。要知道同价位的品牌货可是贵了好多倍。
4:1037U/J1900软路由
如果你觉得ARM或者MIPS路由器已经满足不了你的需求,那么x86软路由绝对是你的不二选择,对家庭用户来说,1037U的软路由基本是到顶了,而一般人来说选择J1900的路由器更合适,因为价格更便宜,而且不需要风扇,1037U虽然性能强大,但是软路由体积相对较大,而且有风扇散热的情况下肯定会带来额外的噪音,固件方面都支持爱快,ROS,LEDE,OP等,如果你不满足也可以去装windows。总之软路由基本是够你玩的,性能对一个路由器来说已经是非常够用了。
5:intel 9260AC(不支持AMD主板)
这是一款M.2规格的无线网卡,在5GHz wifi已经基本普及的今天,怎么能没有一款支持5GHz wifi的网卡呢?虽然很多主板默认都标配了无线网卡,但是基本都是433Mbps的寒酸货,速度并没有比2.4GHz快多少,而9260AC作为一款不到100元的M.2网卡,支持1.7GHz wifi+蓝牙5.0,可以满足你很长一段时间的无线wifi需求,但是不兼容AMD的主板,如果AMD主板的话,建议购买8265AC,速率是866Mbps,支持蓝牙4.2,MU-MIMO也支持。可以拿来连接XBOX手柄,蓝牙耳机等。但是要注意的是,这里的M.2接口可不是M.2的SSD接口,是M.2网卡所使用的。当然如果你的主板没有M.2网卡接口,也可以淘宝30元买张转接卡解决问题。
网络设备认识介绍解析(二)
抽象网络设备的原理及使用
网络虚拟化是 Cloud 中的一个重要部分。作为基础知识,本文详细讲述 Linux 抽象出来的各种网络设备的原理、用法、数据流向。您通过此文,能够知道如何使用 Linux 的基础网络设备进行配置以达到特定的目的,分析出 Linux 可能的网络故障原因。
Linux 抽象网络设备简介
和磁盘设备类似,Linux 用户想要使用网络功能,不能通过直接操作硬件完成,而需要直接或间接的操作一个 Linux 为我们抽象出来的设备,既通用的 Linux 网络设备来完成。一个常见的情况是,系统里装有一个硬件网卡,Linux 会在系统里为其生成一个网络设备实例,如 eth0,用户需要对 eth0 发出命令以配置或使用它了。更多的硬件会带来更多的设备实例,虚拟的硬件也会带来更多的设备实例。随着网络技术,虚拟化技术的发展,更多的高级网络设备被加入了到了 Linux 中,使得情况变得更加复杂。在以下章节中,将一一分析在虚拟化技术中经常使用的几种 Linux 网络设备抽象类型:Bridge、802.1.q VLAN device、VETH、TAP,详细解释如何用它们配合 Linux 中的 Route table、IP table 简单的创建出本地虚拟网络。
相关网络设备工作原理
Bridge
Bridge(桥)是 Linux 上用来做 TCP/IP 二层协议交换的设备,与现实世界中的交换机功能相似。Bridge 设备实例可以和 Linux 上其他网络设备实例连接,既 attach 一个从设备,类似于在现实世界中的交换机和一个用户终端之间连接一根网线。当有数据到达时,Bridge 会根据报文中的 MAC 信息进行广播、转发、丢弃处理。
Bridge 的功能主要在内核里实现。当一个从设备被 attach 到 Bridge 上时,相当于现实世界里交换机的端口被插入了一根连有终端的网线。这时在内核程序里,netdev_rx_handler_register()被调用,一个用于接受数据的回调函数被注册。以后每当这个从设备收到数据时都会调用这个函数可以把数据转发到 Bridge 上。当 Bridge 接收到此数据时,br_handle_frame()被调用,进行一个和现实世界中的交换机类似的处理过程:判断包的类别(广播/单点),查找内部 MAC 端口映射表,定位目标端口号,将数据转发到目标端口或丢弃,自动更新内部 MAC 端口映射表以自我学习。
Bridge 和现实世界中的二层交换机有一个区别,图中左侧画出了这种情况:数据被直接发到 Bridge 上,而不是从一个端口接受。这种情况可以看做 Bridge 自己有一个 MAC 可以主动发送报文,或者说 Bridge 自带了一个隐藏端口和寄主 Linux 系统自动连接,Linux 上的程序可以直接从这个端口向 Bridge 上的其他端口发数据。所以当一个 Bridge 拥有一个网络设备时,如 bridge0 加入了 eth0 时,实际上 bridge0 拥有两个有效 MAC 地址,一个是 bridge0 的,一个是 eth0 的,他们之间可以通讯。由此带来一个有意思的事情是,Bridge 可以设置 IP 地址。通常来说 IP 地址是三层协议的内容,不应该出现在二层设备 Bridge 上。但是 Linux 里 Bridge 是通用网络设备抽象的一种,只要是网络设备就能够设定 IP 地址。当一个 bridge0 拥有 IP 后,Linux 便可以通过路由表或者 IP 表规则在三层定位 bridge0,此时相当于 Linux 拥有了另外一个隐藏的虚拟网卡和 Bridge 的隐藏端口相连,这个网卡就是名为 bridge0 的通用网络设备,IP 可以看成是这个网卡的。当有符合此 IP 的数据到达 bridge0 时,内核协议栈认为收到了一包目标为本机的数据,此时应用程序可以通过 Socket 接收到它。一个更好的对比例子是现实世界中的带路由的交换机设备,它也拥有一个隐藏的 MAC 地址,供设备中的三层协议处理程序和管理程序使用。设备里的三层协议处理程序,对应名为 bridge0 的通用网络设备的三层协议处理程序,即寄主 Linux 系统内核协议栈程序。设备里的管理程序,对应 bridge0 寄主 Linux 系统里的应用程序。
Bridge 的实现当前有一个限制:当一个设备被 attach 到 Bridge 上时,那个设备的 IP 会变的无效,Linux 不再使用那个 IP 在三层接受数据。举例如下:如果 eth0 本来的 IP 是 192.168.1.2,此时如果收到一个目标地址是 192.168.1.2 的数据,Linux 的应用程序能通过 Socket 操作接受到它。而当 eth0 被 attach 到一个 bridge0 时,尽管 eth0 的 IP 还在,但应用程序是无法接受到上述数据的。此时应该把 IP 192.168.1.2 赋予 bridge0。
另外需要注意的是数据流的方向。对于一个被 attach 到 Bridge 上的设备来说,只有它收到数据时,此包数据才会被转发到 Bridge 上,进而完成查表广播等后续操作。当请求是发送类型时,数据是不会被转发到 Bridge 上的,它会寻找下一个发送出口。用户在配置网络时经常忽略这一点从而造成网络故障。
VLAN device for 802.1.q
VLAN 又称虚拟网络,是一个被广泛使用的概念,有些应用程序把自己的内部网络也称为 VLAN。此处主要说的是在物理世界中存在的,需要协议支持的 VLAN。它的种类很多,按照协议原理一般分为:MACVLAN、802.1.q VLAN、802.1.qbg VLAN、802.1.qbh VLAN。其中出现较早,应用广泛并且比较成熟的是 802.1.q VLAN,其基本原理是在二层协议里插入额外的 VLAN 协议数据(称为 802.1.q VLAN Tag),同时保持和传统二层设备的兼容性。Linux 里的 VLAN 设备是对 802.1.q 协议的一种内部软件实现,模拟现实世界中的 802.1.q 交换机。
Linux 里 802.1.q VLAN 设备是以母子关系成对出现的,母设备相当于现实世界中的交换机 TRUNK 口,用于连接上级网络,子设备相当于普通接口用于连接下级网络。当数据在母子设备间传递时,内核将会根据 802.1.q VLAN Tag 进行对应操作。母子设备之间是一对多的关系,一个母设备可以有多个子设备,一个子设备只有一个母设备。当一个子设备有一包数据需要发送时,数据将被加入 VLAN Tag 然后从母设备发送出去。当母设备收到一包数据时,它将会分析其中的 VLAN Tag,如果有对应的子设备存在,则把数据转发到那个子设备上并根据设置移除 VLAN Tag,否则丢弃该数据。在某些设置下,VLAN Tag 可以不被移除以满足某些监听程序的需要,如 DHCP 服务程序。举例说明如下:eth0 作为母设备创建一个 ID 为 100 的子设备 eth0.100。此时如果有程序要求从 eth0.100 发送一包数据,数据将被打上 VLAN 100 的 Tag 从 eth0 发送出去。如果 eth0 收到一包数据,VLAN Tag 是 100,数据将被转发到 eth0.100 上,并根据设置决定是否移除 VLAN Tag。如果 eth0 收到一包包含 VLAN Tag 101 的数据,其将被丢弃。上述过程隐含以下事实:对于寄主 Linux 系统来说,母设备只能用来收数据,子设备只能用来发送数据。和 Bridge 一样,母子设备的数据也是有方向的,子设备收到的数据不会进入母设备,同样母设备上请求发送的数据不会被转到子设备上。可以把 VLAN 母子设备作为一个整体想象为现实世界中的 802.1.q 交换机,下级接口通过子设备连接到寄主 Linux 系统网络里,上级接口同过主设备连接到上级网络,当母设备是物理网卡时上级网络是外界真实网络,当母设备是另外一个 Linux 虚拟网络设备时上级网络仍然是寄主 Linux 系统网络。
需要注意的是母子 VLAN 设备拥有相同的 MAC 地址,可以把它当成现实世界中 802.1.q 交换机的 MAC,因此多个 VLAN 设备会共享一个 MAC。当一个母设备拥有多个 VLAN 子设备时,子设备之间是隔离的,不存在 Bridge 那样的交换转发关系,原因如下:802.1.q VLAN 协议的主要目的是从逻辑上隔离子网。现实世界中的 802.1.q 交换机存在多个 VLAN,每个 VLAN 拥有多个端口,同一 VLAN 端口之间可以交换转发,不同 VLAN 端口之间隔离,所以其包含两层功能:交换与隔离。Linux VLAN device 实现的是隔离功能,没有交换功能。一个 VLAN 母设备不可能拥有两个相同 ID 的 VLAN 子设备,因此也就不可能出现数据交换情况。如果想让一个 VLAN 里接多个设备,就需要交换功能。在 Linux 里 Bridge 专门实现交换功能,因此将 VLAN 子设备 attach 到一个 Bridge 上就能完成后续的交换功能。总结起来,Bridge 加 VLAN device 能在功能层面完整模拟现实世界里的 802.1.q 交换机。
Linux 支持 VLAN 硬件加速,在安装有特定硬件情况下,图中所述内核处理过程可以被放到物理设备上完成。
TAP 设备与 VETH 设备
TUN/TAP 设备是一种让用户态程序向内核协议栈注入数据的设备,一个工作在三层,一个工作在二层,使用较多的是 TAP 设备。VETH 设备出现较早,它的作用是反转通讯数据的方向,需要发送的数据会被转换成需要收到的数据重新送入内核网络层进行处理,从而间接的完成数据的注入。
当一个 TAP 设备被创建时,在 Linux 设备文件目录下将会生成一个对应 char 设备,用户程序可以像打开普通文件一样打开这个文件进行读写。当执行 write()操作时,数据进入 TAP 设备,此时对于 Linux 网络层来说,相当于 TAP 设备收到了一包数据,请求内核接受它,如同普通的物理网卡从外界收到一包数据一样,不同的是其实数据来自 Linux 上的一个用户程序。Linux 收到此数据后将根据网络配置进行后续处理,从而完成了用户程序向 Linux 内核网络层注入数据的功能。当用户程序执行 read()请求时,相当于向内核查询 TAP 设备上是否有需要被发送出去的数据,有的话取出到用户程序里,完成 TAP 设备的发送数据功能。针对 TAP 设备的一个形象的比喻是:使用 TAP 设备的应用程序相当于另外一台计算机,TAP 设备是本机的一个网卡,他们之间相互连接。应用程序通过 read()/write()操作,和本机网络核心进行通讯。
VETH 设备总是成对出现,送到一端请求发送的数据总是从另一端以请求接受的形式出现。该设备不能被用户程序直接操作,但使用起来比较简单。创建并配置正确后,向其一端输入数据,VETH 会改变数据的方向并将其送入内核网络核心,完成数据的注入。在另一端能读到此数据。
网络设置举例说明
为了更好的说明 Linux 网络设备的用法,下面将用一系列的例子,说明在一个复杂的 Linux 网络元素组合出的虚拟网络里,数据的流向。网络设置简介如下:一个中心 Bridge:bridge0 下 attach 了 4 个网络设备,包括 2 个 VETH 设备,1 个 TAP 设备 tap0,1 个物理网卡 eth0。在 VETH 的另外一端又创建了 VLAN 子设备。Linux 上共存在 2 个 VLAN 网络,既 vlan100 与 vlan200。物理网卡和外部网络相连,并且在它之下创建了一个 VLAN ID 为 200 的 VLAN 子设备。
从 vlan100 子设备发送 ARP 报文
当用户尝试 ping 192.168.100.3 时,Linux 将会根据路由表,从 vlan100 子设备发出 ARP 报文,具体过程如下:
·
1) 用户 ping 192.168.100.3
·
·
2) Linux 向 vlan100 子设备发送 ARP 信息。
·
·
3) ARP 报文被打上 VLAN ID 100 的 Tag 成为 ARP@vlan100,转发到母设备上。
·
·
4) VETH 设备将这一发送请求转变方向,成为一个需要接受处理的报文送入内核网络模块。
·
·
5) 由于对端的 VETH 设备被加入到了 bridge0 上,并且内核发现它收到一个报文,于是报文被转发到 bridge0 上。
·
·
6) bridge0 处理此 ARP@vlan100 信息,根据 TCP/IP 二层协议发现是一个广播请求,于是向它所知道的所有端口广播此报文,其中一路进入另一对 VETH 设备的一端,一路进入 TAP 设备 tap0,一路进入物理网卡设备 eth0。此时在 tap0 上,用户程序可以通过 read()操作读到 ARP@vlan100,eth0 将会向外界发送 ARP@vlan100,但 eth0 的 VLAN 子设备不会收到它,因为此数据方向为请求发送而不是请求接收。
·
·
7) VETH 将请求方向转换,此时在另一端得到请求接受的 ARP@vlan100 报文。
·
·
8) 对端 VETH 设备发现有数据需要接受,并且自己有两个 VLAN 子设备,于是执行 VLAN 处理逻辑。其中一个子设备是 vlan100,与 ARP@vlan100 吻合,于是去除 VLAN ID 100 的 Tag 转发到这个子设备上,重新成为标准的以太网 ARP 报文。另一个子设备由于 ID 不吻合,不会得到此报文。
·
·
9) 此 VLAN 子设备又被 attach 到另一个桥 bridge1 上,于是转发自己收到的 ARP 报文。
·
·
10) bridge1 广播 ARP 报文。
·
·
11) 最终另外一个 TAP 设备 tap1 收到此请求发送报文,用户程序通过 read()可以得到它。
·
网络设备认识介绍解析(三)
网络设备及部件是连接到网络中的物理实体。网络设备的种类繁多,且与日俱增。基本的网络设备有:计算机(无论其为个人电脑或服务器)、集线器、交换机、网桥、路由器、网关、网络接口卡(NIC)、无线接入点(WAP)、打印机和调制解调器。
中继器 (Repeater)
中继器是局域网互连的最简单设备,它工作在OSI体系结构的物理层,它接收并识别网络信号,然后再生信号并将其发送到网络的其他分支上。要保证中继器能够正确工作,首先要保证每一个分支中的数据包和逻辑链路协议是相同的。例如,在802.3以太局域网和802.5令牌环局域网之间,中继器是无法使它们通信的。
但是,中继器可以用来连接不同的物理介质,并在各种物理介质中传输数据包。某些多端口的中继器很像多端口的集线器,它可以连接不同类型的介质。
中继器是扩展网络的最廉价的方法。当扩展网络的目的是要突破距离和结点的限制时,并且连接的网络分支都不会产生太多的数据流量,成本又不能太高时,就可以考虑选择中继器。采用中继器连接网络分支的数目要受具体的网络体系结构限制。中继器没有隔离和过滤功能,它不能阻挡含有异常的数据包从一个分支传到另一个分支。这意味着,一个分支出现故障可能影响到其它的每一个网络分支。
集线器是有多个端口的中继器。简称HUB
网桥 (Birdge)
网桥工作于OSI体系的数据链路层。所以OSI模型数据链路层以上各层的信息对网桥来说是毫无作用的。所以协议的理解依赖于各自的计算机。
网桥包含了中继器的功能和特性,不仅可以连接多种介质,还能连接不同的物理分支,如以太网和令牌网,能将数据包在更大的范围内传送。网桥的典型应用是将局域网分段成子网,从而降低数据传输的瓶颈,这样的网桥叫“本地”桥。用于广域网上的网桥叫做“远地”桥。两种类型的桥执行同样的功能,只是所用的网络接口不同。生活中的交换机就是网桥。
路由器 (Router)
路由器工作在OSI体系结构中的网络层,这意味着它可以在多个网络上交换和路由数据数据包。路由器通过在相对独立的网络中交换具体协议的信息来实现这个目标。比起网桥,路由器不但能过滤和分隔网络信息流、连接网络分支,还能访问数据包中更多的信息。并且用来提高数据包的传输效率。
路由表包含有网络地址、连接信息、路径信息和发送代价等。路由器比网桥慢,主要用于广域网或广域网与局域网的互连。
桥由器(Brouter)
Brouter 是网桥和路由器的合并。
网关(Gatway)
网关把信息重新包装的目的是适应目标环境的要求。
网关能互连异类的网络, 网关从一个环境中读取数据,剥去数据的老协议,然后用目标网络的协议进行重新包装。
网关的一个较为常见的用途是在局域网的微机和小型机或大型机之间作翻译。
网关的典型应用是网络专用服务器。
其他
个人计算机:典型的个人计算机就是个体用户所拥有的桌面计算机、工作站或笔记本电脑。微型计算机的最常见的类型就是个人计算机,应用于大多数的组织机构之中。
服务器:网络上,储存了所有必要信息的计算机或其它网络设备,专用于提供特定的服务。例如,数据库服务器中储存了与某些数据库相关的所有数据和软件,允许其它网络设备对其进行访问,并处理对数据库的访问。文档服务器就是计算机和储存设备的组合,专用于供该网络上的任何用户将文档储存到服务器中。打印服务器就是对一台或多台打印机进行管理的设备,而网络服务器就是对网络传输进行管理的计算机。
网卡:网络接口卡(NIC)是计算机或其它网络设备所附带的适配器,用于计算机和网络间的连接。每一种类型的网络接口卡都是分别针对特定类型的网络设计的,例如以太网、令牌网、FDDI或者无线局域网。网络接口卡(NIC)使用物理层(第一层)和数据链路层(第二层)的协议标准进行运作。网络接口卡(NIC)主要定义了与网络线进行连接的物理方式和在网络上传输二进制数据流的组帧方式。它还定义了控制信号,为数据在网络上进行传输提供时间选择的方法。
集线器:集线器是最简单的网络设备。计算机通过一段双绞线连接到集线器。在集线器中,数据被转送到所有端口,无论与端口相连的系统是否安计划好要接收这些数据。除了与计算机相连的端口之外,即使在一个非常廉价的集线器中,也会有一个端口被指定为上行端口,用来将该集线器连接到其它的集线器以便形成更大的网络。
交换机:交换机是第二层、多端口设备。交换机提供与集线器或网桥类似的功能,但拥有更多的先进性能,能够对任意两个端口进行临时连接。它包含一个交换矩阵或交换结构能够用于迅速地连接端口或切断端口间的连接。与集线器不同的是,交换机仅将信息帧从一个端口传送到目标节点所在的其它端口,而不会向所有其它的端口广播。
路由器:路由器在网络上将数据从发送者发送给接收者。路由器能够确定数据的目的地址并能够确定传输数据的最佳路径。与网桥和交换机不同之处在于,网桥和交换机利用硬件上配置的MAC地址来确定数据的目的地址,而路由器利用逻辑网络地址,如IP地址,来作出相应的决定。
网关:网关这一术语用来指任何设备、系统或软件应用程序,它们能够起到将数据从一种格式转化成另一种格式的功能。网关并不会改变数据本身。例如:从技术角度来说,能够将数据从IPX网络传送到IP网络的路由器就是一个网关。同样地,能够在以太网和令牌网之间往返传输数据的解析型交换机也可被称为网关。
调制解调器:调制解调器是一种接入设备,将计算机的数字信号转译成能够在常规电话线中传输的模拟信号。调制解调器在发送端调制信号并在接收端解调信号。许多接入方式都离不开调制解调器,如56k的调制解调器、ISDN、DSL等。它们可以为内部设备,插在系统的扩展槽中;或外部设备,插在串口或USB端口中;或膝上电脑所用的PCMCIA板;或专为诸如手提电脑等系统中使用而设计的设备。另外,许多膝上电脑都配备了集成调制解调器。还提供了机架式调制解调器供大范围地使用调制解调器,如ISP。