源MAC为什么要修改为本节点的MAC? 这是由哪个协议规定的?谢谢.

解决方案 »

  1.   

    以太网发送报文的时候就是这样的,这个是物理层的帧的格式要求。
    Ethernet帧格式你可以看一下。目的和源MAC地址都是6字节的。
      

  2.   

    看错了,标题才是问题。在以太网层,帧传输时在链路层上的,就是根据MAC地址来传送的,在子网内部是ARP协议,在网际之间是BGP协议,还有OSPF协议。
      

  3.   

    我对各位的回复不大满意.为什么要修改源的MAC地址, 修改了有什么作用. 我知道二层转发是不用修改的, 为什么三层转发需要修改源MAC? 楼上加菲猫说是的目的MAC的作用.
      

  4.   

    源MAC地址不用改吧...源可以是任意MAC地址吧?只要目的MAC地址对就可以发送到的吧?
      

  5.   

    我的理解以太网帧中的源MAC即为发送此帧的地址,由于现在这个帧是我发的,所以其源MAC要改为我的,不知道理解对不对
      

  6.   

    源MAC要更改,方便next hop主机更新 arp cache, 当有帧要转发给此主机时,要写入目的MAC, 在非混杂模式下,因为网卡的驱地动程序只检查源MAC是不是本机的,若是则接收,否则,丢弃。
      

  7.   


    更改源MAC地址,是为了在整个传输路径上,不同节点之间更新接收方的ARP表,不会影响报文的传递
      

  8.   

    楼主说的是通过路由器转发吧?
    1.路由器转发的话,在路由器上收到的以太网帧会被剥去帧头,再发送到网络层
    2.网络层通过查路由表,知道应该从哪个接口转发,于是再将它发送到对应接口的链路层如果这时候链路层要保持源MAC不变的话,在过程1中必须保存源MAC地址,并且要将它IP报文对应上,这对实现来讲要增加额外的复杂性
    同时,源MAC地址对于IP报文来讲,没有什么意义。没有哪个网络层的实现会需要它
    不要执拗地认为源MAC地址对于目标主机是有用的
    网络分层的目的就是为了简单、各司其职
    建议楼主看看《TCP/IP详解》卷一
      

  9.   

    链路层协议很多,假定路由器通过以太网和主机A连接,通过PPP和主机B连接
    那么为了转发来自A的IP报文,并保存源MAC地址,PPP协议将如何保存A的源MAC地址呢
      

  10.   

    好像是...如果一个封包要通过路由器..那么MAC地址就没用了...也不再是以太网了..
    那是因特网了...用的协议也不是普通的协议了...两个路由器之间发送东西..知道IP就可以了吧.
      

  11.   

    看一下计算机网络原理噻,根据分层结构,交换机和路由器等只有最底层三层,mac帧的首部就是物理地址,既然需要Mac地址,那么不记录源地址,那么每次传送不都是盲目传送
      

  12.   


    跟arp缓存半点关系都没有,转发的时候源IP是一直不改的,改了源MAC那源IP跟源MAC就对应不上了,还更新啥arp cache。
      

  13.   

    两个路由器中间不一定只有一条网线连着,还可能是一个网络,假如是一个二层交换机的话,这个交换机是要建立ARP缓存表的嘛,它的自学习过程只能学习到发给他的帧的源MAC和端口映射,所以路由器需要改变帧中源MAC为自己的MAC,这样中间的二层交换机才能学习到