如果你的电脑,访问一个mac地址是04-0e-3c-30-12-2f 的流量,那本身这就是一个单播流量,不是组播流量
(单播是mac地址48个bit的第8位bit为0)
如果你访问的是组播,你的数据包的目标地址就不是你说的这个地址
所以不要搞错了逻辑
单播的mac地址就是你的某个目标电脑的mac
组播的mac是你协议生成的目标mac地址(这个组播的48bit的第8位为1就是组播mac地址)
如果你的电脑,访问一个mac地址是04-0e-3c-30-12-2f 的流量,那本身这就是一个单播流量,不是组播流量
(单播是mac地址48个bit的第8位bit为0)
如果你访问的是组播,你的数据包的目标地址就不是你说的这个地址
所以不要搞错了逻辑
单播的mac地址就是你的某个目标电脑的mac
组播的mac是你协议生成的目标mac地址(这个组播的48bit的第8位为1就是组播mac地址)
mtu就是你的肚子能吃几碗饭的意思,比如你一口气能吃两碗米饭,这就是你的MTU了,再吃就撑死了
但是当你撑死的时候,你的体重是:你的身体其他器官重量+ 两碗米饭(MTU)的总和
所以,你看这个ppt, 这是一个局域网的数据帧= SMAC(源mac地址,6个字节=48个bit)+ DMAC(目标mac,48个比特)+长度字段(2个比特)+ payload (这个就是数据,就是你肚子里面真真正正的货,可以是46-1500 字节,你可以理解成你的胃的容量)+ crc (校验位,4个比特,相当于在你身上按个gps监控,看你正不正常) = ZD(6+6+2+1500+4= 1518)
A: 不是的! 路由器发送的是“纯数据” ,也就是payloadZD的是1500字节,就相当于你光个身子,体重是1500字节,但是路由本身发出去的还要有自身的头部信息,比如源mac地址,目标mac地址,长度字段,CRC字段(6+6+2+4 = 18字节),就也就是你行走江湖,不能光哥屁股,你还要穿件衣服,但是衣服的重量是18字节,你自己的肉身重量是ZD1500字节,所以你在江湖上是ZD1518字节重!
A: 如果你的肚子一口气能吃2碗羊肉泡,现在有3碗泡馍,你会怎么吃, 当然是先吃了2碗之后,消化了再吃,不能大于你的MTU
比如这张图,Z-U-I左边的数据包是1480字节,要经过MTUZD是1300的路由器,那就把数据包拆成两个,一个MTU是1280,一个MTU是200, 这样就能经过路由器了
这就是数据包的切包的过程,你有没有看过魔术切美女,就是把美女切成3段,头,肚子和腿
然后发到目的地再组合 ,这个过程就是路由器的软件CPU要干的(切包,组包),这就是路由器CPU为什么慢了,因为这个过程慢!
这个慢也是为什么有的人会问你,传统的为什么路由慢,这就是其中之一,因为要把每个美女(数据包)切割,在组装,数据量特别大的时候,CPU就开挂了
这个问题:看清楚,mac地址是组播,组播要求mac的48个bit的第8位必须是1,那么:
我觉得你晕了
因为mac组播地址,我们说的是目标地址,就是你电脑发出的地址是组播地址,那么这个组播地址的mac的48个bit的第8个bit位1
不是指你自己的电脑的mac地址需要转换
我这么说
你打公安局的电话是110,这就是目标地址,不是你打电话的时候你自己的主叫号码是110,也就是你不是110!!!
不管你的问题是什么
mac地址如果是组播地址,那么第8个bit(mac地址全长48个bit)就是1
我觉得问题本身很简单,就是判断mac地址是否单播组播,就是第8个bit位是1还是0
至于你其他的bit位,你自己随意组合就行了,二进制他不是1就是0,不要本末倒置了