Linux入门真经-042以太网帧与交换机转发原理基础

2024-03-04 17:48

本文主要是介绍Linux入门真经-042以太网帧与交换机转发原理基础,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前两节简述了网络整体的样貌以及分层模型,大致属于纲领性的文章,很多细节并没有详说。

本节给大家介绍的是以太网帧的转发方式与交换机的简要工作原理。

 

我们在前面的小节讲过,交换机可以在同一个广播域里交换数据,从OSI七层模型的角度看,它工作在第二层数据链路层,数据流最多被解封至数据帧,只用做在局域网内的选路,至于IP、运输层、应用层的内容,交换机默认统统都看不到。数据链路层使用MAC地址来进行寻址。还记得MAC地址么?MAC地址由48位二进制数组成,常用12位的16进制数字来表示

 

一、帧转发方式

 

局域网内的帧主要通过三个方式发送:单播、广播、组播。

 

单播

单播是一对一的转发,从单一的源发往单一的目的地

单播帧的源MAC地址的第8个位如果为0,则表示这是一个单播帧。只有真正的目的主机才会接收并处理这个数据帧,其他主机接收后发现目的MAC与本机MAC不一致,则会直接将这个数据帧丢弃,不会做进一步的处理。

 

 

广播

广播是一对多的转发。数据从单个源发送给局域网内的所有主机。广播帧的目的MAC为全1,即FF:FF:FF:FF:FF:FF,所有收到这个帧的主机都会处理这个帧的数据。

当局域网里的所有主机都要接收相同的数据并处理的情况下,会用到广播方式。广播方式会产生大量的流量,严重时甚至可能产生网络拥塞,前面也讲过,路由器可以分割广播域。

 

组播

源MAC的第8位为1,表示这是一个组播帧。组播帧从单一源发往局域网内侦听该组播地址的主机。某些协议会用到组播这一技术,这里我们可以不做过多的了解。

 

二、交换网络原理

 

交换机是工作在数据链路层的设备。单播、广播、组播无非是数据帧的种类,他们都会由交换机去传递。

交换机的转发行为大致可分为三种:泛洪、转发、丢弃

我们前面也提到过,交换机里有一个CAM表,记录了MAC地址和交换机端口的映射关系。交换机对于数据帧的处理机制可以概括如下:

1、进入交换机的是单播帧,交换机会在CAM表中查找去往该MAC应该从哪个端口转发:

如果在CAM表里找不到该MAC的相关信息,交换机会执行泛洪操作。(注意,泛洪和广播是两码事,泛洪也能传播单播数据帧)

如果能找到,则对比一下,该mac对应的端口是不是接收该数据帧的端口,如果不是,就从这个端口转发,如果是,则丢弃。

2、如果进入交换机的是广播帧,则不查表,直接泛洪。

3、如果是组播帧。。此处不讨论,不在基础范围内了。

 

交换机的工作原理就是这么简单。当然,这只是最基础最基础的内容,也是你必须知道的东西。现实生活中还会运用到更多的交换技术。比如,可以隔离广播域的vlan、防止交换机环路产生广播风暴的stp等等。这些大多数是给专攻网络的网络工程师去操心的。感兴趣的朋友可以去看《CCNA学习指南》,看完这本书后掌握的网络知识就足够使用了。这本书还会向你介绍如何配置思科的路由器和交换机,如果你不是网络工程师,可以只看原理不看配置。因为不同厂商的路由交换设备,设备特性和配置方式都会有所不同。这也是搞网络的工程师头疼点之一。所幸的是,这些设备正常工作所遵循的TCP/IP协议族是相同的,厂商也会提供详尽的配置手册和技术支持。网络也是IT行业的一个方向,博大精深。我认为,如果主攻系统运维/数据库/云计算方向,CCNA的知识就绰绰有余了。如果工作有特殊需要,按需学习即可。

这篇关于Linux入门真经-042以太网帧与交换机转发原理基础的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/773963

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多