PC1(网关指向R1 E0口)给发一个PING 包的时候 就要封装 第1个就是代理ARP的 解析出E0口的 MAC地址 IP地址都是不变得 包的方向是上面的从左到右的方向(黑箭头)
PC2(网关指向R2 E0口)给回一个PING包的时候 是下面的方向 (红箭头)
ip数据包经由路由转发的时候源ip,目的ip是否改变?
最近面试网络方面的经常问到这个问题,答案是不能改变的,除非做了nat转换才能改变,不过mac地址是变化的,因为发送端开始不知道目的主机的mac地址,所以每经过一个路由器mac地址是变化的。
目的mac地址是如何得到的?
TCP/IP里面是用的ARP协议。比如新建了一个内网,如果一台机器A找机器B,封装FRAME时(OSI的第二层用的数据格式),要封装对方的 MAC,开始时A不知道B的MAC,只知道IP,它就发一个ARP包,源IP是自己的,目的IP是B的,源MAC是自己的,目的MAC是广播的。然后这个 请求包在内网内被广播,当其他机器接到这个包时,用目的IP和自己的IP比较,不是的话就丢弃。B接到时,发现IP与自己的一样,就答应这个包的请求,把 自己的MAC送给A。如果B是其他子网的机器,那么路由器会判断出B是其他子网,然后路由器把自己的MAC返回给A,A以后再给B发包时,目的MAC封装 的是路由器的。
一、MAC地址的组织形式
一个MAC地址长48比特,即48位的二进制数字,表示成12个十六进制数字,每两个16进制数字之间用“-”隔开,如“00-60-2F-3A-07-BC”就是某一个网卡的MAC地址。其中前6个十六进制数字是由IEEE管理的,用于识别制造商、供货商,构成组织惟一标识符(OUI),例如“00 60 2F”就表示CISCO公司。剩下的6个十六进制数字由接口序列号或者是特定供货商管理的编号所组成。
网卡的MAC地址是被事先烧录到网卡的只读存储器(ROM)中的,当网卡启动时,才被拷贝到随机存储器(RAM)中去,因此,网卡的MAC地址不能被随意修改,除非采用特殊的方法或者采用第三方的工具软件。
二、MAC地址的作用
IP地址是基于逻辑的,比较灵活,不受硬件的限制,也容易记忆。而MAC地址在一定程度上与硬件一致,是基于物理的,能够标识具体的网络节点。这两种地址各有优点,使用时也因条件不同而采取不同的地址。
如今比较流行的接入Internet的方式是把主机通过局域网组织在一起,然后再通过交换机或路由器等设备和Internet相连接。这样一来就出现了如何区分具体用户,防止IP地址被盗用的问题。由于IP地址只是逻辑上的标识,任何人都能随意修改,因此不能用来具体标识一个用户;而MAC地址则不然,它是固化在网卡里面的。从理论上讲,除非盗来硬件即网卡,否则一般是不能被冒名顶替的。基于MAC地址的这种特点,因此局域网采用了用MAC地址来标识具体用户的方法。
在具体的通信过程中,通过交换机内部的交换表把MAC地址和IP地址一一对应。当有发送给本地局域网内一台主机的数据包时,交换机首先将数据包接收下来,然后把数据包中的IP地址按照交换表中的对应关系映射成MAC地址,然后将数据包转发到对应的MAC地址的主机上去。这样一来,即使某台主机盗用了这个IP地址,但由于此主机没有对应的MAC地址,因此也不能收到数据包,发送过程和接收过程类似。
综上所述,无论是局域网,还是广域网中的计算机之间进行通信时,最终都表现为将数据包从某种形式的链路上的一个初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的传递都是由ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的。
发送I P数据报到目的主机。
在A R P背后有一个基本概念,那就是网络接口有一个硬件地址(一个48 bit的值,标识不
同的以太网或令牌环网络接口)。在硬件层次上进行的数据帧交换必须有正确的接口地址。但
是,T C P / I P有自己的地址: 32 bit的I P地址。知道主机的I P地址并不能让内核发送一帧数据给
主机。内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。A R P的功能是
在32 bit的I P地址和采用不同网络技术的硬件地址之间提供动态映射。
点对点链路不使用A R P。