网络的琴弦:玩转IP看监控
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

以太网与交换机转发

同轴线缆互联常见的低成本方案是采用转接器进行物理连接,此时来自多个模拟摄像机的模拟视频信号就会相互产生干扰,导致DVR无法进行有效区分,所以通常不会用同一根同轴线缆传输多路模拟视频——当然,这并不是说没有技术可以解决这个问题,方案很多,却不经济,一般只有在历史模拟监控项目的高清改造时才会考虑。模拟监控逐渐被历史淘汰的另一个重要原因是,以太网和IP技术的生命力和发展潜力已经获得了通信界的一致认同,并在后续的历史进程中不断焕发出蓬勃的生机。

以太网

以太网(Ethernet)常见的线缆有双绞线(即常说的“网线”)和光纤两种,前者通信采用电信号,后者通信采用光信号。以太网是一种分组通信技术,这个分组叫“以太帧”,它负责承载各种数据在以太网线缆中的传输,就像无数辆装载着信息段的集装箱车奔跑在高速公路上一样。

以太网交换机负责在局域网内连接各个设备:NVR、DVR、IPC、路由器、PC、服务器等。这些设备各自拥有全球唯一的MAC地址(Media Access Control Address),或称为硬件地址,采用十六进制数表示,共6字节(48位)。其中,前3字节(高位24位)是厂家的标识符,后3字节(低位24位)由厂家自行指派给所生产的设备。例如:“48:EA:63:0E:B7:BF”,其中“48:EA:63”是浙江宇视科技有限公司的标识符,该设备由宇视科技生产。任何一个设备往其他设备发送以太帧,都需将自己的MAC地址写在以太帧的源地址信息中,将目的设备的MAC地址写在以太帧的目的地址信息中。

转发原理

交换机怎么知道该指引一个特定的以太帧往哪个或哪些端口转发呢?交换机内部存在一个MAC地址表,如图1-5所示,每个表项至少包含MAC地址和设备端口号。转发原则是:如果该表中存在该以太帧的目的MAC地址,则引导该帧往这个表项所对应的端口转发出去;如果不存在,则往入端口之外的所有其他端口进行复制转发。

图1-5 MAC地址表

从图1-5可知,当交换机s7502E-1收到一个目的地址为0000-0000-0006的以太帧,发现MAC地址表中存在该地址所对应的MAC表项,表项中的端口号为GigabitEthernet2/0/3,则引导该以太帧从该端口转发出去。

说明

这个原则适用于最常见的单播帧和广播帧,而组播帧的处理有些复杂,后续谈到组播时再细聊。关于单播、组播和广播的概念,我们将在“IP地址”和“ARP解析”这两节中详细阐述。

交换机有一个叫作“源(MAC)学习”的关键特性:任何一个以太帧进入交换机,交换机都会记住该帧的源MAC地址,并将该MAC地址和入端口号绑定记录在MAC地址表里,今后若收到目的地址为该MAC地址的以太帧,交换机就知道该指引它往该端口转发了。例如,交换机从端口GigabitEthernet2/0/33收到一个源地址为0001-2828-0800的以太帧,就生成一个MAC地址表项,包含该MAC地址和该端口,如图1-5所示。

交换机的原理是不是非常简单?我们再稍微扩展一下。MAC表项通常还具备另外两个属性:老化时间和状态。因为交换机的表项容量有限,所以暂时不用的MAC表项应该及时清除,以节省表项空间,这就需要设置一个表项的存活期,即“老化时间”——H3C设备通常默认设置为300秒,300秒内若无对应源MAC地址的以太帧进来,表项就会被删除,否则存活期会被刷新回300秒。既然有动态的源(MAC)学习机制,自然也可以通过手工静态配置MAC表项,“状态”这个字段就用来指明该表项源自动态学习还是静态配置,静态配置的表项没有老化时间。两个属性的示例可参见图1-5。

说明

现在大部分交换机的MAC表项都有VLAN ID这个重要属性,我们留到后面讲述VLAN时再详细阐述。

交换机的基本原理清楚了,老U的疑问也就释然了:来自各个IPC的各路视频被分拆成一个个小包(即所谓的“分组”),分别一个个装载进以太帧并标记好源和目的MAC地址(即所谓的“封装”),然后由交换机送往NVR,反过来,NVR向各个IPC发送报文的过程也是一样,由于采用的是分组技术,各自的包裹各自收,肯定错不了。

家园网友互动

Q:如如 发表于2015-8-14 09:12:59

当交换机收到一个目的MAC在本地找不到的以太帧时,会如何处理?

A:网语者 发表于2015-8-14 09:18:58

通常情况下,如果目的MAC在本地找不到,就会以广播的方式往所有端口转发。

不枉一番努力。老U心满意足地泡了杯龙井茶,对着D1分辨率的清晰画面,慢慢地品味起这明前新茶的芳香和杭城特有的满园春色。

曼妙的雾气让他突然产生一个疑问:IPC将报文发给NVR时需将NVR的MAC地址填写在以太帧的目的地址字段中,但它怎么知道NVR的MAC地址呢?