以太网帧转发时, 源MAC为什么要变化 源MAC为什么要修改为本节点的MAC? 这是由哪个协议规定的?谢谢. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 以太网发送报文的时候就是这样的,这个是物理层的帧的格式要求。Ethernet帧格式你可以看一下。目的和源MAC地址都是6字节的。 看错了,标题才是问题。在以太网层,帧传输时在链路层上的,就是根据MAC地址来传送的,在子网内部是ARP协议,在网际之间是BGP协议,还有OSPF协议。 我对各位的回复不大满意.为什么要修改源的MAC地址, 修改了有什么作用. 我知道二层转发是不用修改的, 为什么三层转发需要修改源MAC? 楼上加菲猫说是的目的MAC的作用. 源MAC地址不用改吧...源可以是任意MAC地址吧?只要目的MAC地址对就可以发送到的吧? 我的理解以太网帧中的源MAC即为发送此帧的地址,由于现在这个帧是我发的,所以其源MAC要改为我的,不知道理解对不对 源MAC要更改,方便next hop主机更新 arp cache, 当有帧要转发给此主机时,要写入目的MAC, 在非混杂模式下,因为网卡的驱地动程序只检查源MAC是不是本机的,若是则接收,否则,丢弃。 更改源MAC地址,是为了在整个传输路径上,不同节点之间更新接收方的ARP表,不会影响报文的传递 楼主说的是通过路由器转发吧?1.路由器转发的话,在路由器上收到的以太网帧会被剥去帧头,再发送到网络层2.网络层通过查路由表,知道应该从哪个接口转发,于是再将它发送到对应接口的链路层如果这时候链路层要保持源MAC不变的话,在过程1中必须保存源MAC地址,并且要将它IP报文对应上,这对实现来讲要增加额外的复杂性同时,源MAC地址对于IP报文来讲,没有什么意义。没有哪个网络层的实现会需要它不要执拗地认为源MAC地址对于目标主机是有用的网络分层的目的就是为了简单、各司其职建议楼主看看《TCP/IP详解》卷一 链路层协议很多,假定路由器通过以太网和主机A连接,通过PPP和主机B连接那么为了转发来自A的IP报文,并保存源MAC地址,PPP协议将如何保存A的源MAC地址呢 好像是...如果一个封包要通过路由器..那么MAC地址就没用了...也不再是以太网了..那是因特网了...用的协议也不是普通的协议了...两个路由器之间发送东西..知道IP就可以了吧. 看一下计算机网络原理噻,根据分层结构,交换机和路由器等只有最底层三层,mac帧的首部就是物理地址,既然需要Mac地址,那么不记录源地址,那么每次传送不都是盲目传送 跟arp缓存半点关系都没有,转发的时候源IP是一直不改的,改了源MAC那源IP跟源MAC就对应不上了,还更新啥arp cache。 两个路由器中间不一定只有一条网线连着,还可能是一个网络,假如是一个二层交换机的话,这个交换机是要建立ARP缓存表的嘛,它的自学习过程只能学习到发给他的帧的源MAC和端口映射,所以路由器需要改变帧中源MAC为自己的MAC,这样中间的二层交换机才能学习到 CreateService创建的服务停止按钮是灰的怎么办? 如何获取正在连接的摄像头在设备管理器中的名字 this 大写和小写有什么区别 比较弱的问题,程序用到MSComm控件,在没有装VC的机器上怎么运行? 使用PropertySheet的問題 如何改变现有MFC工程的工程名字 请教:在什么地方能查到,象取整,取绝对值之类的小函数? 怎样做不规则窗口 如何更改文件的修改时间或创建时间? 关于程序崩溃的原因 求一个显示内存图像的方法 关于大型多人在线游戏服务端开发
Ethernet帧格式你可以看一下。目的和源MAC地址都是6字节的。
更改源MAC地址,是为了在整个传输路径上,不同节点之间更新接收方的ARP表,不会影响报文的传递
1.路由器转发的话,在路由器上收到的以太网帧会被剥去帧头,再发送到网络层
2.网络层通过查路由表,知道应该从哪个接口转发,于是再将它发送到对应接口的链路层如果这时候链路层要保持源MAC不变的话,在过程1中必须保存源MAC地址,并且要将它IP报文对应上,这对实现来讲要增加额外的复杂性
同时,源MAC地址对于IP报文来讲,没有什么意义。没有哪个网络层的实现会需要它
不要执拗地认为源MAC地址对于目标主机是有用的
网络分层的目的就是为了简单、各司其职
建议楼主看看《TCP/IP详解》卷一
那么为了转发来自A的IP报文,并保存源MAC地址,PPP协议将如何保存A的源MAC地址呢
那是因特网了...用的协议也不是普通的协议了...两个路由器之间发送东西..知道IP就可以了吧.
跟arp缓存半点关系都没有,转发的时候源IP是一直不改的,改了源MAC那源IP跟源MAC就对应不上了,还更新啥arp cache。