为什么要将IP地址解析成MAC地址才能实现数据传输?怎样进行地址解析

如题

一、IP地址

对于IP地址,相信大家都很熟悉,即指使用TCP/IP协议指定给主机的32位地址。 IP地址由用点分隔开的4个8八位组构成,如192.168.0.1就是一个IP地址,这种写法叫点分十进制格式。IP地址由网络地址和主机地址两部分组 成,分配给这两部分的位数随地址类(A类、B类、C类等)的不同而不同。网络地址用于路由选择,而主机地址用于在网络或子网内部寻找一个单独的主机。一个 IP地址使得将来自源地址的数据通过路由而传送到目的地址变为可能。

二、MAC地址

对于MAC地址,由于我们不 直接和它接触,所以大家不一定很熟悉。在OSI(Open System Interconnection,开放系统互连)7层网络协议(物理层,数据链路层,网络层,传输层,会话层,表示层,应用层)参考模型中,第二层为数据 链路层(Data Link)。它包含两个子层,上一层是逻辑链路控制(LLC:Logical Link Control),下一层即是我们前面所提到的MAC(Media Access Control)层,即介质访问控制层。所谓介质(Media),是指传输信号所通过的多种物理环境。常用网络介质包括电缆(如:双绞线,同轴电缆,光 纤),还有微波、激光、红外线等,有时也称介质为物理介质。MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。这个地址 与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,它都有相同的MAC地址,MAC地址一般不可改变,不能由用户 自己设定。

三、MAC地址的长度、表示方法、分配方法及其唯一性

MAC地址的长度为48位(6个字节),通常表 示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00: 20代表网络硬件制造商的编号,它由IEEE(Istitute of Electrical and Electronics Engineers,电气与电子工程师协会)分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。每个网络制 造商必须确保它所制造的每个以太网设备都具有相同的前三字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地址。

四、IP地址与MAC地址在互连网中的作用

既然每个以太网设备在出厂时都有一个唯一的MAC地址了,那为什么还需要为每台主机再分配一个IP地址呢?或者说为什么每台主机都分配唯一的IP地址 了,为什么还要在网络设备(如网卡,集线器,路由器等)生产时内嵌一个唯一的MAC地址呢?主要原因有以下几点:(1)IP地址的分配是根据网络的拓朴结 构,而不是根据谁制造了网络设置。若将高效的路由选择方案建立在设备制造商的基础上而不是网络所处的拓朴位置基础上,这种方案是不可行的。(2)当存在一 个附加层的地址寻址时,设备更易于移动和维修。例如,如果一个以太网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另 一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。(3)无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链 路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的。下面我们来通过一个例子看看IP地址和MAC地址是怎样结合来传送数据包 的。

假设网络上要将一个数据包(名为PAC)由北京的一台主机(名称为A,IP地址为IP_A,MAC地址为MAC_A)发送到华盛顿的一台主机(名称为B, IP地址为IP_B,MAC地址为MAC_B)。这两台主机之间不可能是直接连接起来的,因而数据包在传递时必然要经过许多中间节点(如路由器,服务器等 等),我们假定在传输过程中要经过C1、C2、C3(其MAC地址分别为M1,M2,M3)三个节点。A在将PAC发出之前,先发送一个ARP请求,找到 其要到达IP_B所必须经历的第一个中间节点C1的MAC地址M1,然后在其数据包中封装(Encapsulation)这些地址:IP_A、IP_B, MAC_A和M1。当PAC传到C1后,再由ARP根据其目的IP地址IP_B,找到其要经历的第二个中间节点C2的MAC地址M2,然后再将带有M2的 数据包传送到C2。如此类推,直到最后找到带有IP地址为IP_B的B主机的地址MAC_B,最终传送给主机B。在传输过程中,IP_A、IP_B和 MAC_A不变,而中间节点的MAC地址通过ARP在不断改变(M1,M2,M3),直至目的地址MAC_B。

综合上面所述,我们可以归纳出IP地址和MAC地址相同点是它们都唯一,不同的特点主要有:

1. 对于网络上的某一设备,如一台计算机或一台路由器,其IP地址可变(但必须唯一),而MAC地址不可变。我们可以根据需要给一台主机指定任意的IP地址, 如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址永远唯一且不能由用户改变。

2. 长度不同。IP地址为32位,MAC地址为48位。

3. 分配依据不同。IP地址的分配是基于网络拓朴,MAC地址的分配是基于制造商。

4. 寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据 目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-08-01
工作在网络层。arp是IP地址解析为MAC地址RARPMAC地址解析为IP地址主要以广播的形式一、什么是ARP协议ARP协议是“AddressResolutionProtocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。ARP协议主要负责将局域网中的32位IP地址转换为对应的48位物理地址,即网卡的MAC地址,比如IP地址位192.168.0.1网卡MAC地址为00-03-0F-FD-1D-2B.整个转换过程是一台主机先向目标主机发送包含有IP地址和MAC地址的数据包,通过MAC地址两个主机就可以实现数据传输了.二、ARP协议的工作原理在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如附表所示。附表我们以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。ARP攻击主要是存在于局域网网络中,局域网中若有一个人感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。RARP的工作原理:1.发送主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址;2.本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;3.如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;4.如果不存在,RARP服务器对此不做任何的响应;5.源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。6.如果在第1-3中被ARP病毒攻击,则服务器做出的反映就会被占用,源主机同样得不到RARP服务器的响应信息,此时并不是服务器没有响应而是服务器返回的源主机的IP被占用。本回答被网友采纳
第2个回答  2019-02-09
你们的回答太专业化,不容易理解,这样说吧,IP和MAC 是相辅相成,缺一不可的,IP确定了网络设备(服务器,客户机等)的网络范围(当然需要子网掩码的配合),而MAC 则是确定了网络设备在这个范围中的具体设备。
再举个例子,路由器是根据路由表中的IP查找对应的Mac来找到目标设备的。而不是通过IP直接查找,因为IP是可变的,而MAC在一定时间段内是不变的。之所以通过IP来查找,是因为IP有路由功能,也就是网络设备会找出一条最方便的传输途径,以更高效的方式找到目标主机。查找方便;而MAC没有路由功能,如果不用IP,只用MAC,那么你发一个数据报信息给服务器,网络设备会将你发送的数据转发给所有你能访问到的网络设备上,只有你访问的那个目标主机会给你返回请求相应,而对为他设备和网络线路而言,无疑是给网络上造成了更多的信息拥堵。
第3个回答  2017-08-05
你想了解的就是ARP协议,解释如下:
在A不知道B的MAC地址的情况下,A就广播一个ARP请求包,请求包中填有B的IP地址,以太网中的所有计算机都会接收这个请求,只有B会给出ARP应答包,包中就填充上了B的MAC地址,并回复给A。
这样A就知道了B的MAC地址了,可以通过MAC地址传输数据。
第4个回答  2013-08-21
(1) 主机相互通信时,首先要知道对方IP地址所对应的物理地址才能在物理网络上进行传输。(2) 地址解析通过ARP协议完成。本回答被网友采纳
相似回答