博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
交换机和路由器的数据包转发流程简述
阅读量:4056 次
发布时间:2019-05-25

本文共 560 字,大约阅读时间需要 1 分钟。

当交换机收到一个数据包时;

会将这个数据包包头的目的MAC信息提取出来,与自身的MAC地址表比较;
情况一:如果找到对应项,则按MAC表进行转发;
情况二:如果没找到对应项,则在除了接收到数据包以外的所有端口进行转发(广播);
解释:MAC地址表 是MAC地址与端口对应的关系表;即某个MAC地址连接在某个端口;
问题:当情况二发生时,需要在其他所有端口进行广播(这样做其实很不好),这个广播会到什么地方结束呢?答:——路由器。

为什么到路由器就会结束了呢?

接收到一个数据包时,工作过程如下:
首先提取数据包头的目的MAC信息,与自身MAC表比较:
情况一:如果找到对应项,则按MAC表进行转发(与交换机一样);
情况二(亮点来了):如果没找到则提取数据包头的目的IP信息,则与自身的路由表进行比较(又分两种情况)
      情况二。1找到了对应的路由表,则按着路由表转发(与查到MAC表很像啊)。
      情况二。2没找到对应路由表,则按着缺省路由转发(发现了吗自始自终没有出现过广播)
解释:路由表和MAC的区别在于,路由表存放的是目的IP下一步要去的地方的IP。
广播在路由器能够结束,原因就是路由器会在查找不到对应MAC表时,根据目的IP进行路由。路由过程的两种情况都不存在广播。

关于网络相关的更多文章请参考:

文章转载自:

你可能感兴趣的文章
概念区别
查看>>
Idea下安装Lombok插件
查看>>
zookeeper
查看>>
Idea导入的工程看不到src等代码
查看>>
技术栈
查看>>
8.X版本的node打包时,gulp命令报错 require.extensions.hasownproperty
查看>>
Jenkins 启动命令
查看>>
Maven项目版本继承 – 我必须指定父版本?
查看>>
通过C++反射实现C++与任意脚本(lua、js等)的交互(二)
查看>>
利用清华镜像站解决pip超时问题
查看>>
微信小程序开发全线记录
查看>>
CCF 分蛋糕
查看>>
解决python2.7中UnicodeEncodeError
查看>>
小谈python 输出
查看>>
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
查看>>
python:如何将excel文件转化成CSV格式
查看>>
机器学习实战之决策树(一)
查看>>
机器学习实战之决策树二
查看>>
[LeetCode By Python]7 Reverse Integer
查看>>
[LeetCode By Python]121. Best Time to Buy and Sell Stock
查看>>