【作者介绍】严霞:负责产品云内DNS和云解析的架构搭建、关键功能研发工作与难点问题攻关,负责组内两套kubernetes的集群搭建与维护。对 权威DNS服务、kubernetes、spring boot、基础网络、linux底层感兴趣,欢迎一起探讨,共同进步。

概要:本文将设备与报文结合起来,用8张图带着大家了解L2交换机、路由器对包做了什么。

前言

学习网络有个特点,知识点都知道,但总经不起细问。本文将设备与报文结合起来,用8张图带着大家了解L2交换机、路由器完整的一个转包过程。

最小的VLAN

如果两台物理机想通信,一根网线连上就好了, 这个时候, 两台电脑已经构成了一个小小的局域网LAN。

Hub集线器

如果3台物理机想通信,就有了Hub设备。Hub也称为集线器, 有多个口,可以把3台电脑连起来。但它没有大脑,完全在物理层工作。机器A想给B发了一个包,Hub收到后,会将自己收到的每一个字节,都复制到其他口上去,发给所有连着它的机器。

局域网所有包都广播给任何机器,每台机器都在受到骚扰。MAC层就是来解决这个问题的,而L2交换机就很好的应用了MAC层功能。

MAC头

MAC层在原字节的外面封装一个MAC头,来告诉设备,自己想发给谁。

     类型(2 byte) :MAC头包裹的数据,是IP数据包还是ARP的请求应答包。
     CRC (4 byte):循环冗余检测,通过 XOR 异或的算法,来计算整个包是否在发送的过程中出现了错误。

L2交换机转发包的完整过程

把数据包和L2交换机结合在一起,看一下局域网内发包的一个完整过程。网络环境如下,一个交换机连接着4台电脑。

机器A 想给一个IP= 192.168.1.5的机器发数据。curl -X GET http://192.168.1.5:8080/getXXX/。发送请求前,判断目的IP和自己是否是同一个网段,若不是一个网段,会把包发给网关(可以看成是第一跳路由器),很显然,192.168.1.5和自己是同一个网段。因此首先要拿到192.168.1.5的MAC地址。如果从机器A本地缓存里没有拿到MAC,则在局域网发一个广播包, 寻求MAC地址。寻求IP地址, 就会发送一个ARP包, 这是一个广播包。

      ARP协议是什么?
      ARP协议: 已知目的IP, 在局域网里求MAC地址。ARP的报文, 目标MAC是个广播地址,类型是标记MAC头里包裹的是什么类型的包,0x8086这个表示二层里面封装的是一个ARP的报文。

       ARP整个过程如下:

      目的MAC地址终于拿到了, 再回到当初的问题发包。
      机器A 想给一个IP= 192.168.1.5的机器发数据。curl -X GET http://192.168.1.5:8080/getXXX/ 。 有了目的MAC, 封装报文变的很容易。在L2交换机上完整的传包步骤如下图所示。

      从上述过程可以看出:
      (1) 交换机比Hub聪明在,它会记住哪个MAC在哪个口,维护一张端口+MAC表,而且能自己学习。不像物理层设备Hub一样,收到包无脑全口转发。
      (2) L2交换机为什么属于二层设备?Hub为什么属于物理层设备?
      Hub完全是字节流的转发。L2交换机转发包依赖MAC层,其它层的信息,它都不会去管
     (3) 需要注意的是:机器A封装的报文,交换机只是读取了一下,没有拆/修改报文。后面的三层设备, 是会实实在在修改包内容的。

路由器对包做了什么?

若物理机A想访问https://www.baidu.com, 路由器对数据包做了什么呢?以下是一个包的完整过程(图中的包省略了SSL/TLS那层)。

     通过这个过程可以看出:
     (1)每到一个新的网段,MAC都是要变的,但是IP地址都不变。在IP头里面,不会保存任何网关的IP地址。所谓的下一跳是,某个 IP 要将这个IP地址转换为MAC放入MAC头。
     (2)交换机只会看MAC层,MAC头里面裹着的不关心。IP只会看MAC层和IP层,IP头里面裹着的不关心。

结语

上述已经可以概括大部分包在二三层设备上转发的过程了,只是不同协议,MAC头或者IP头内部裹的东西不一样,而不同设备有自己的一些特殊功能。欢迎评论区交流!

版权声明 (原创):本文内容由移动云用户自发贡献,版权归原作者所有,移动云开发者社区不拥有其著作权,亦不承担相应法律责任。如果您发现本社区有涉嫌抄袭的内容,可填写举报信息,一经查实,本社区将立刻删除涉嫌侵权内容。

8张图带你了解L2交换机、路由器对包做了什么?相关推荐

  1. 转载 硬核图解!30张图带你搞懂!路由器,集线器,交换机,网桥,光猫有啥区别?

    硬核图解!30张图带你搞懂!路由器,集线器,交换机,网桥,光猫有啥区别?... 煎鱼(EDDYCJY) 于 2022-01-17 08:51:00 发布 1219 已收藏 22 文章标签: 交换机 网 ...

  2. 30张图带你搞懂!路由器,集线器,交换机,网桥,光猫有啥区别?

    故事就从一个车轱辘说起吧.先来看一个车轱辘. 辐条从车轱辘边缘,一直汇聚到 中心的轴,这个轴在英文里叫hub. 而我们今天要讲到的集线器,英文里也叫hub. 都叫hub,多少有点关系,看下这面这个图大 ...

  3. 硬核图解,30张图带你搞懂、路由器,集线器,交换机,网桥,光猫有啥区别?

    故事就从一个车轱辘说起吧.先来看一个车轱辘. 辐条从车轱辘边缘,一直汇聚到 中心的轴,这个轴在英文里叫hub. 而我们今天要讲到的集线器,英文里也叫hub. 都叫hub,多少有点关系,看下这面这个图大 ...

  4. 一张图带你了解-常见面试之JUC包详解

    面试时经常问到JUC包下的类及特性,现在用一张图总结下 转载于:https://www.cnblogs.com/htkj/p/11055719.html

  5. 华为交换机路由器常用命令

    2019独角兽企业重金招聘Python工程师标准>>> 华为交换机路由器常用命令 网络技术  /wangzhijun1743  发表于2007-03-24, 12:25 交换机命令 ...

  6. 一张图带你看清2014年就业形势-管理专业排名第一,就业难

    [一张图带你看清2014年就业形势]今年,我国高校毕业生人数将首次突破700万大关.然而劳动力市场对高校毕业生的需求却难以同步提高,许多专业毕业生面临就业难的"窘境".什么行业最挣 ...

  7. 8张图带你理解Java整个只是网络(转载)

    8张图带你理解Java整个只是网络 一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选.如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟. 1.字符 ...

  8. 四张图带你了解Tomcat系统架构--让面试官颤抖的Tomcat回答系列

    转载自   四张图带你了解Tomcat系统架构--让面试官颤抖的Tomcat回答系列 俗话说,站在巨人的肩膀上看世界,一般学习的时候也是先总览一下整体,然后逐个部分个个击破,最后形成思路,了解具体细节 ...

  9. 8张图带你轻松温习Java知识

    转载自 8张图带你轻松温习Java知识 1 字符串不变性 下面这张图展示了这段代码做了什么 [code ]String s = "abcd";  s = s.concat(&quo ...

最新文章

  1. 0pp0r11如何更改语言_更改电脑日期的方法
  2. tp5查询字段相加_tp5 sum某个字段相加得到总数的例子
  3. 网络通讯程序整理(一)
  4. C#高性能大容量SOCKET并发(十一):编写上传客户端
  5. php7和php8内核有区别吗,不要在PHP7中踩这些坑
  6. 关于Restful Web Service的一些理解
  7. Netty 中 IOException: Connection reset by peer 与 java.nio.channels.ClosedChannelException: null
  8. AI智能问答核心代码
  9. 遇上DG挖矿病毒的处理记录
  10. LV也开启了直播首秀,一个小时吸引超1.5万人观看
  11. 使用annotation配置hibernate(1)
  12. 2017行进中的杂想,做一个极少数的历史
  13. python实现翻转给定列表中的元素
  14. linux系统字体文件在哪,linux系统安装字体方法教程介绍
  15. (音视频学习笔记):ffplay命令选项及使用案例
  16. 手电筒app制作实录
  17. DEL: 华为无线modem变无线路由器
  18. 【小5聊】移动开发性能优化解决卡顿眩晕问题提高用户体验
  19. 如何搜索相似的图片,如何通过识别图像搜索图片
  20. 移动互联网主要的技术标准

热门文章

  1. 修复 win10 打印服务器失败,win10专业版中使用这些解决方案修复打印机系统错误1797...
  2. WITCH CHAPTER 0 [cry] 绝密开发中的史克威尔艾尼克斯的DX12技术演示全貌
  3. AF_INET和PF_INET的区别
  4. 软件包被拦截、删除、无法运行,,,卸载掉自带杀毒软件Windows Defender、关闭防火墙,,,网上各种办法都试过了,不起作用。。。最后一招解决
  5. 结合NGUI做的手机拍照(可自定义相框)
  6. Qt Qml实现国际化
  7. LWN: 6.0 合并周期,第二部分!
  8. HTML5+CSS3小实例:云朵特效按钮
  9. OTA是如何改变现代车辆能力的
  10. CPU中的一级缓存,二级缓存,三级缓存