专栏首页架构师之路到底什么是“四层/七层”交换技术(3分钟解惑)

到底什么是“四层/七层”交换技术(3分钟解惑)

二层交换

交换原理:根据第二层数据链路层的MAC地址来实现端到端的数据交换

工作流程:

(1)交换机某端口收到数据包,读取源MAC地址,得到源MAC地址机器所连端口;

(2)读取目的MAC地址,在地址表中查找对应端口;

(3)如果地址表中有目的MAC地址对应端口,直接复制数据至此端口;

(4)如果地址表中没有目的MAC地址对应端口,广播所有端口,当目的机器回应时,更新地址表,下次就不需要广播了;

不断的循环上述过程,全网的MAC地址信息都可以学习到,二层交换机就这样学习和维护它的地址表。

第二层交换机根据MAC选择端口转发数据,算法又很简单,其方便采用廉价芯片实现,且速度快。

三层交换

交换原理:根据第三层网络层的IP地址来完成端到端的数据交换

场景:A(ip1) => 三层交换机 =>B(ip2)

工作流程:

(1)A发数据给B,根据B的ip地址+子网掩码,A能够判断出B和自己是否在同一个网段;

(2.1)B如果和A在同一个网段内,但A不知道B的MAC地址,A会发送一个ARP请求,以获取B的MAC地址,并根据MAC通过二层交换机将数据发送给B;

(2.2)B如果和A不在同一个网段内,且不知道B的MAC地址,A会将数据包发送给网关(A的本地一定有网关的MAC地址)。网关收到数据包后,将源MAC地址会修改为网关自己的MAC地址,目的IP对应的MAC地址为目的MAC地址,以完成数据交换。

看似第三层交换机是第二层交换机+路由功能的组合,实际并非这样:数据通过第三层转发设备后,会记录IP与MAC的映射关系,下次需要转发时,不会再经过第三层设备。

四层交换

二层和三层交换设备都是基于端到端的交换,这种基于IP和MAC地址的交换技术,有着很高效传输率,但是缺乏根据目的主机应用需求动态交换数据的功能

四层设备不但能够完成端到端的交换,还能够根据目的主机的应用特点,分配或限制其流量

四层设备基于传输层数据包交换,是一类建立在TCP/IP应用层至上,实现用户应用需求的设备;

它实现一类应用层的访问控制与质量保证服务,与其说它是硬件设备,不如说它是软件网络管理系统。

四层交换核心技术

(1)包过滤

利用四层信息定义过滤规则,能够控制指定端口的TCP/UDP通信,它可以在高速芯片中实现,极大提高包过滤速率;

(2)包优先级

三层以下设备只有MAC,PORT,IP等信息,因为缺乏四层信息,无法确认TCP/IP等四层优先级信息;

四层设备允许基于目的地址/端口(即应用服务)的组合来区分优先级。

(3)负载均衡

将附加有负载均衡服务的IP地址,通过不同的物理服务做成一个集群,提供相同的服务,并将其定义为一个单独的虚拟服务器;

这个虚拟服务器是一个有独立IP的逻辑服务器,用户数据流只需要流向虚拟服务器IP,而不与物理服务器进行通信;

只有通过交换机执行网络地址转换(NAT)后,才能得到真实访问;

虚拟服务器组里转换通信流量实现均衡,其中具体关系到OSPF、RIP、VRRP等协议;

(4)主机备用连接

同(3)所含技术类似,可以实现主备同IP自动切换;

七层交换

交换原理:比四层更进一步,可以根据应用层的数据报文来完成更多的复杂交换功能(例如根据http报文路由)

由于七层交换还没有具体的标准,文章也不多展开啦。

本文分享自微信公众号 - 架构师之路(road5858)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-02-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 服务读写分离(读服务,写服务),是否可行?

    系统分层架构有一个迭代和演进的过程,早期,系统分层架构如下: ? 上游是需要数据的业务调用方 下游是存储数据的数据库 随着架构的演进,可能要抽取出服务层(详见《...

    架构师之路
  • “配置”也有架构演进?看完深有痛感

    一、缘起 随着互联网业务的越来越复杂,用户量与流量越来越大,“服务化分层”是架构演进的必由之路。 ? 如上图:站点应用会调用服务,上游服务调用底层服务,依赖关系...

    架构师之路
  • 如何快速实现高并发短文检索

    一、需求缘起 某并发量很大,数据量适中的业务线需要实现一个“标题检索”的功能: (1)并发量较大,每秒20w次 (2)数据量适中,大概200w数据 (3)是否需...

    架构师之路
  • 聊聊artemis的transactionTimeoutScanPeriod

    本文主要研究一下artemis的transactionTimeoutScanPeriod

    codecraft
  • 聊聊artemis的transactionTimeoutScanPeriod

    本文主要研究一下artemis的transactionTimeoutScanPeriod

    codecraft
  • javascript基础修炼(1)——一道十面埋伏的原型链面试题

    题目中显式将Child类的原型对象指向了Parent类的一个实例,这是javascript面向对象编程中常见的继承方式之一。此处需要注意Child.prot...

    大史不说话
  • 修改端口 注意“设置端口开放”有安全风险

      开始--控制面板--网络连接--右击"本地连接" ,弹出 本地连接 状态 对话框点击 属性 ,弹出 本地连接属性 对话框,双击 Internet 协议 (T...

    it妹
  • this 问题这次全了

    this的指向已经是一个老生常谈的问题,每逢面试都要去复习复习,近来巩固js的基础,决心彻底掌握这个知识点,一劳永逸。说明一下,为了不影响大家的思考过程,下面的...

    grain先森
  • 进步才是唯一(3)

            上一篇讲过局域网体系结构总共分为三层:物理层   媒体访问控制子层  逻辑链路控制LLC子层  下面分别介绍他们的各自的主要作用:

    用户2398817
  • Javascript的this用法

    this是Javascript语言的一个关键字。 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如,   function test(){ ...

    ruanyf

扫码关注云+社区

领取腾讯云代金券