主要内容:
- 编写交换机内部逻辑:维护转发表(数据结构,哈希,互斥锁;记录生存时期,更新和过期处理),转发逻辑和广播逻辑
- iperf测速,观察和广播转发的速率区别
卡住的点:
iperf一直连接不成功,用04实验的环境也不成功——重启ubuntu解决
知识点get
交换机有mac地址吗?
- 交换机不是必须要有MAC。二层交换的工作本身没有要求交换机这个角色需要MAC,但是具体到产品,为了支撑上层的服务,一般都会给自身设置MAC。
- 为什么不必须:地址是用来标记数据发出或者接受方的,交换机不属于任何一者,所以就不需要——
至于问题:
那么,一个二层交换机的端口和另外一个二层交换机端口用网线连起来,交换机1的端口如果没有MAC地址,交换机2如何学习MAC地址,如何向交换机1转发?
这个问题有陷阱,“如何向交换机1”转发,暗示了转发是以交换机为目的的。而这个暗示是非常符合人本身思考的思路的。但很不幸的是,从二层交换的概念来讲,这个行为是不存在的。MAC地址学习的结果,是生成一张MAC与端口对应的表格,交换机只是按照这个表发送数据,并不知道端口那头是什么东西。题主你肯定理解,端口那头如果是台普通PC,从交换机2来看,就已经是完成发送的操作了。但是你为什么就理解不了,如果端口那头不是PC而是交换机1,从交换机2来看,其实也完成数据发送了呢?交换机1有没有MAC,跟交换机2根本没有半毛钱关系。对于交换机2来说,数据走了自己指定的端口,就是完成了二层交换的任务。至于指定端口那头是啥或者啥们,交换机2并不关心。
参考链接:https://www.zhihu.com/question/63497028/answer/209788003