计算机网络-以太网交换基础

一、网络设备的演变

最初的网络在两台设备间使用传输介质如网线等进行连接就可以进行通信。但是随着数据的传输需求,多个设备需要进行数据通信时就需要另外的设备进行网络互联,并且随着网络传输的需求不断更新升级。从一开始的两台设备互联到企业部门内部共享再到企业内部局域网,最后实现Internet国际互联。

1、Hub集线器

Hub设备是一种网络连接设备,用于将多个计算机或其他设备连接在一起。它提供了一个中心集线器,以便将所有连接的设备集中在一起并统一管理。Hub设备的功能包括扩大网络的传输距离、将多个节点集中在一起以及提供信号放大和中转的功能。通过使用Hub设备,用户可以将多个计算机或其他设备连接在一起,形成一个网络,以便共享资源、实现信息交换和协同工作。Hub是一个物理层设备,它工作在OSI模型中的第一层,即物理层

2、网桥设备

网桥的作用是连接不同网段,提高带宽和分割冲突域。它可以用来将一个大的局域网分割为多个小的网段,或将两个以上的局域网互联为一个逻辑局域网,使局域网上的所有用户都可访问服务器。

网桥的工作原理是基于数据链路层进行帧的转发。它根据MAC地址分区块,可隔离碰撞。当网桥接收到一个帧时,它会根据帧的目的MAC地址进行查找和转发。如果目的MAC地址与网桥的某个端口匹配,则将帧转发到相应的端口;否则将帧广播到所有端口

3、二层交换机

二层交换机是指工作在OSI模型的第2层(数据链路层)的交换机,它可以识别数据帧中的MAC地址信息,并根据MAC地址进行转发。二层交换机采用硬件转发技术,可以在高速传输线路上实现线速交换,具有很高的数据吞吐能力。二层交换机(一般不能配置多于2个ip,console无):都属于一个广播域,每个接口独立冲突域。交换机端口数量较丰富,常见有8口、16口、24口、48口规格,性能也较hub和网桥大大提升。

交换机主要通过MAC地址表和ARP表进行转发工作,支持划分VLAN进行隔离广播域。

4、路由器 路由器是一种网络设备,工作在网络层,负责在网络间进行数据转发。它是连接不同网络的关键设备,能够在网络层将发送方传输的数据包根据路由表中的信息,正确地转发到接收方所在的网段。

路由器的主要功能包括路由寻址、路由选择、数据传输和差错控制等。具体来说,它可以根据当前网络的状态和环境因素来选择最佳路径,通过寻径的方式确定数据转发的最佳路径。路由器的每个接口都是单独广播域和冲突域,可以单独配置IP地址。

路由器通过路由表和转发表进行转发。

5、三层交换机L3-SW

三层交换机就是具有部分路由器功能的交换机,工作在OSI网络标准模型的第三层:网络层 。三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。简单来说就是支持部分路由功能加上二层交换机多端口的优点,一般用于中小企业核心设备。

简单讲就是从两台设备间连接到多设备的互联,以及带宽速率的不断升级,最终实现国际互联。

二、以太网协议与工作原理

2.1 冲突域

冲突域是指连接在同一共享介质上的所有节点的集合,冲突域内所有节点竞争同一带宽,一个节点发出的报文(无论是单播、组播、广播),其余节点都可以收到。
冲突域

2.2 广播域

广播报文所能到达的整个访问范围称为二层广播域,简称广播域,同一广播域内的主机都能收到广播报文。全1MAC地址FF-FF-FF-FF-FF-FF为广播地址,所有节点都会处理目的地址为广播地址的数据帧,该数据帧所能到达的整个访问范围称为二层广播域,简称广播域。
广播域

2.3 CSMA/CD

交换机设备工作在二层以太网,需要遵循一定的协议进行传输。以太网是建立在CSMA/CD (Carrier Sense Multiple Access/Collision Detection,载波监听多路访问/冲突检测)机制上的广播型网络。

CSMA/CD是一种媒体访问控制方法,用于解决网络中多个节点同时发送数据时可能发生的冲突。CSMA/CD全称为Carrier Sense Multiple Access with Collision Detection,其中CS表示载波侦听,MA表示多址访问,CD表示冲突检测。

在CSMA/CD协议中,所有节点在发送数据前都会先侦听信道是否空闲。如果信道空闲,节点会发送数据;如果信道忙碌,节点则会等待一段时间后再次侦听。当两个或更多的节点同时发送数据时,会导致信号发生碰撞。当发生碰撞时,节点会检测到冲突并停止发送数据。

2.4 以太网数据帧

以太网属于数据链路层,传输数据帧。以太网技术所使用的帧称为以太网帧 (Ethernet Frame),或简称以太帧。以太帧的格式有两个标准:Ethernet_II格式和IEEE 802.3格式。

Ethernet II 的type字段标识上层协议 ARP(0x0806) IPV4(0x0800)

主要通过源MAC和目的MAC进行识别别传输。

2.5 MAC地址

MAC (Medium Access Control)地址在网络中唯一标识一个网卡,每个网卡都需要并拥有有唯一的一个MAC地址。正常情况下一块网卡的MAC地址是具有全球唯一性的。

MAC地址格式:MAC地址由48比特(6个字节)长,12位的16进制数字组成。
MAC地址格式

MAC地址构成及分类:
MAC

单播帧在知道具体源目MAC地址时直接转发。

广播帧用于在不知道具体MAC地址时交换机泛洪发送。

用于组播泛洪。

三、交换机工作原理

现在大部分都是已经使用交换机进行网络互联,Hub和网桥已经比较少了,因此主要学习交换机的工作与使用即可。

3.1 交换机工作原理:

  • 在第一次通信时,发送端发送数据帧,携带源IP、源MAC、目的IP,目的MAC,然后交换机内部维护一个MAC地址表,将源MAC和入接口进行记录。
  • 查询自身MAC地址表,是否有匹配目的MAC地址的表项,有则转发到对应端口,没有则进行泛洪,除了入接口外的所有接口进行泛洪转发。
  • 目的主机接收到泛洪广播帧,回复交换机自身MAC,交换机将源MAC也记录到MAC地址表中。
  • 将发送端数据帧通过该端口转发,自此两端MAC地址与接口映射关系都存在MAC地址表中,直接从对应端口进行单播帧转发即可。

数据帧转发 MAC地址表

3.2 交换机报文处理方式

交换机会通过传输介质进入其端口的每一个帧都进行转发操作,交换机的基本作用就是用来转发数据帧。

交换机对帧的处理行为一共有三种:泛洪(Flooding),转发(Forwarding),丢弃(Discarding)。

  • 泛洪:交换机把从某一端口进来的帧通过所有其它的端口转发出去(注意,"所有其它的端口"是指除了这个帧进入交换机的那个端口以外的所有端口)。
  • 转发:交换机把从某一端口进来的帧通过另一个端口转发出去(注意,"另一个端口"不能是这个帧进入交换机的那个端口)。
  • 丢弃:交换机把从某一端口进来的帧直接丢弃。

交换机报文处理方式

如果交换机接收到单播帧,查找mac地址表但是mac地址表没有表项就进行泛洪。

如果交换机接收到广播帧直接进行泛洪。

因为交换机学习源mac地址,不可能学习到广播mac地址表项,交换机mac地址表记录是单播的。

如果手动数据帧接收端口和回复端口是相同则丢弃数据帧。默认华为交换机mac老化时间300秒。

3.3 同网段数据通信过程:

  1. 主机发送数据帧,包含源IP和MAC以及目的IP
  2. 把自己IP地址和将要访问IP地址进行逻辑与运算!判断我们是否属于相同网段?如果网络号一致,说明处于相同网段,直接转发,不需要经过网关;如果网络号不同,说明不是相同网段,不能直接转发,需要经过网关;
  3. 交换机接收到,mac表没有对应记录,从接收端口以外端口泛洪,同时记录源mac和端口
  4. 目的主机接收到数据帧,发送源和目的IP、MAC,交换机查找mac表项通过指定端口转发,同时记录回复报文的源mac和接口
  5. 下一次双方直接单播数据帧通信,交换机依据表项转发。

修改mac表老化时间:

# 查询老化时间
dis mac-address aging-time
# 修改
mac-address aging-time 300

总结:

网络设备从Hub集线器到交换机的发展是不断提高速率和传输效率的过程。现在大部分使用交换机进行终端接入,使用路由器进行路由寻址。交换机工作在数据链路层,通过数据帧进行数据传输,通过维护MAC地址表进行数据转发,有三种处理方式:转发、泛洪、丢弃。有三种数据帧类型:单播帧、广播帧、组播帧。简单了解了交换机工作原理,根据MAC地址表进行转发、泛洪或者丢弃动作。

本文由mdnice多平台发布

相关推荐
爱笑的眼睛1110 小时前
浅谈 前端验证码那些事
前端·程序人生
GPT01231 天前
大模型日报 2024-12-20
程序人生
十二测试录1 天前
Python基础——字符串
开发语言·经验分享·python·程序人生·职场发展
测试老哥2 天前
Python自动化测试图片比对算法
自动化测试·软件测试·python·测试工具·程序人生·职场和发展·测试用例
杰哥就是杰哥3 天前
坚持奋斗到底
程序人生
大鱼前端4 天前
React 19新特性探索:提升性能与开发者体验
程序人生
测试19984 天前
什么是自动化测试?
自动化测试·软件测试·python·测试工具·程序人生·职场和发展·测试用例
python_知世4 天前
基于LLaMA-Factory微调Llama3
人工智能·深度学习·程序人生·自然语言处理·大语言模型·llama·大模型微调
赵大仁5 天前
从零开始掌握Vue.js组件开发:详解原理与实践
前端·javascript·vue.js·经验分享·vscode·程序人生·前端框架