Linux 网卡驱动学习(九)(层二转发)
1、mac 地址表的自学习过程
port1上的A计算机要与port2上的B计算机通信时,A发到交换机上,交换机收到信息后,交换机先记录发port1所相应的a的mac地址并记录在自己的mac表中,然后再查收方B的mac是否在表中,若在mac地址表中,直接转发给B所相应的port2转发下去。假设不在mac表中,则向全部port广播出去。当B收到后会回应交换机转到A。在回应这个过程中,交换机就会把B的mac地址记录在mac表中,达到两方通信功能。
依此类推,交换机都是从发端学习到mac地址的,并在每5分钟后。假设port上连接计算机的mac地址没有信息交换,就把该port所相应的计算机的mac地址从交换机的mac地址表中清除。
以此来保障地址表的空间容量。
2、二层交换原理
- 接收网段上的全部数据帧;
- 利用接收到得数据帧的源MAC地址来建立MAC地址表(源地址自学习),使用更新和老化机制来进行地址表的维护。
- 在MAC地址表中查找数据帧中的目的地址。假设找到就将该数据发送到相应的port(不包含源port)。假设找不到,就向全部port(不包含源port)发送数据;
- 向全部port(不包含源port)转发广播报文和组播报文。
3、二层交换机的功能
具有MAC转发和vlan划分功能。
4、支持vlan的二层交换机
作用:划分广播域,抑制广播风暴;
Vlan:虚拟局域网,将一组位于不同物理网段上的用户和server从逻辑上划分成的终端站组。vlan之间全然隔离,就像是互不相连两台交换机一样,但不论什么二层流量都会跨越vlan的限制而转发到其它vlan中,vlan之间通过truckport互通。
二层交换机位于OSI模型的数据链路层。
通俗理解:
在一个局域网中某台PC须要訪问一个网址,那么发送一个数据帧首先到达的网络设备是二层交换机或HUB。二层交换机依据数据帧寻找訪问的mac地址是否在局域网中,假设在则直接发送到目的地址,假设不在。则网更高一层(网络层)的设备发送(网络层的设备主要是路由器),那么路由器将目的IP发送到网络上,寻找目的IP。
Linux 网卡驱动学习(九)(层二转发)的更多相关文章
- Linux 网卡驱动学习(六)(应用层、tcp 层、ip 层、设备层和驱动层作用解析)
本文将介绍网络连接建立的过程.收发包流程,以及当中应用层.tcp层.ip层.设备层和驱动层各层发挥的作用. 1.应用层 对于使用socket进行网络连接的server端程序.我们会先调用socket函 ...
- Linux 网卡驱动学习(一)(分析一个虚拟硬件的网络驱动样例)
在Linux,网络分为两个层,各自是网络堆栈协议支持层,以及接收和发送网络协议的设备驱动程序层. 网络堆栈是硬件中独立出来的部分.主要用来支持TCP/IP等多种协议,网络设备驱动层是连接网络堆栈协议层 ...
- Linux 网卡驱动学习(二)(网络驱动接口小结)
[摘要]前文我们分析了一个虚拟硬件的网络驱动例子,从中我们看到了网络设备的一些接口,其实网络设备驱动和块设备驱动的功能比较类似,都是发送和接收数据包(数据请求).当然它们实际是有很多不同的. 1.引言 ...
- Linux 网卡驱动学习(五)(收发包具体过程)【转】
转自:https://blog.csdn.net/xy010902100449/article/details/47362787 版权声明:本文为博主原创文章,未经博主允许不得转载. https:// ...
- Linux USB驱动学习总结(二)---- USB设备驱动
USB 设备驱动: 一.USB 描述符:(存在于USB 的E2PROM里面) 1. 设备描述符:struct usb_device_descriptor 2. 配置描述符:struct usb_c ...
- Linux内核驱动学习(八)GPIO驱动模拟输出PWM
文章目录 前言 原理图 IO模拟输出PWM 设备树 驱动端 调试信息 实验结果 附录 前言 上一篇的学习中介绍了如何在用户空间直接操作GPIO,并写了一个脚本可以产生PWM.本篇的学习会将写一个驱动操 ...
- linux设备驱动归纳总结(二):模块的相关基础概念【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-59415.html linux设备驱动归纳总结(二):模块的相关基础概念 系统平台:Ubuntu 10 ...
- linux基础命令学习笔记(二)
linux基础命令学习笔记(二) 1.kill :终止进程 kill pid (唯一标示一个进程) kill -9 强制终止 kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...
- 【Linux开发】linux设备驱动归纳总结(二):模块的相关基础概念
linux设备驱动归纳总结(二):模块的相关基础概念 系统平台:Ubuntu 10.04 开发平台:S3C2440开发板 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...
随机推荐
- 113.dynamic_cast 虚函数 通过子类初始化的父类转化为子类类型
#include <iostream> using namespace std; //子类同名函数覆盖父类 //父类指针存储子类地址,在有虚函数情况会调用子类方法,否则会调用父类方法 cl ...
- Cisco交换机端口安全
Cisco交换机端口安全 通过端口设置,可以限制允许访问交换机上某个端口的MAC地址以及IP(可选)来实现严格控制对该端口的输入,最终确保网络接入安全.配置网络安全时应该注意如下问题: 1 ...
- msiexec
msiexec: runCmd = new String[]{ "msiexec", "/i", exeName, "/quiet", &q ...
- A电脑能ping 通B电脑,但B电脑无法ping能和访问B
过程: A电脑共享了打印机,B电脑想连接A的打印机,发现拒绝访问,无法登录A电脑 问题: A电脑能ping 通B电脑,但B电脑无法ping能和访问B 原因:A电脑禁用了共享访问 处理:使用一键共享设置 ...
- Mysql source导入.sql文件深坑!
刚刚接手一个项目,给老系统加功能.把数据库考出来一个.sql文件就170多M. 使用mysql命令行source 我的.sql文件. 导了一宿都没导完,然后发现里面的数据怎么是乱码呢.. 崩溃额,在排 ...
- Comput_picture
import requestsfrom pyquery import PyQuerycount = 1url = "https://www.169tp.com/diannaobizhi/&q ...
- Mysql学习总结(2)——Mysql超详细Window安装教程
目录 一.安装包准备 二.开始安装 三.验证安装 四.客户端工具 一.安装包准备 1.下载MySql5.6 http://www.mysql.com/ 下载如下教程,这时要选MySql On Wind ...
- Java 学习(14):接口 & 包(设置 CLASSPATH 系统变量)
Java 接口(英文:Interface) 定义:在JAVA编程语言中,接口是一个抽象类型,是抽象方法的集合,接口通常以 interface 来声明. 一个类通过继承接口的方式,从而来继承接口的抽象方 ...
- udacity android 学习笔记: lesson 4 part a
udacity android 学习笔记: lesson 4 part a 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...
- html ---- a 标签 在新窗口打开的问题