计网链路层mac地址和ip地址缺一不可

在学习之途有个疑问,为什么要分链路层和网络层,链路层的帧还要包裹网络层的数据包,这难道不是既麻烦又浪费时间吗?随着这个疑问往下继续深究。

1.链路层中
       我们知道链路层是MAC地址,网络层是IP地址。每个MAC地址对应着一个网络接口,每台电脑都可以对应着多个MAC地址,有线网络、无线网络都各自对应着一个MAC地址。Mac地址也就是物理地址,其实在物理传输中就是靠物理地址来找到数据传输地址的。MAC地址和IP地址一样具有全球唯一性。
       无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始结点出发,从一个结点传递到另一个结点,最终传送到目的结点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的。
       链路层的帧中含有源地址和目的地址的物理地址。需要注意的是,链路层交换机没有MAC地址。
       当适配器收到一个帧时,会先检查这个帧的MAC地址与自己的接口MAC是否一致,如果不匹配就丢弃该帧,如果匹配向上传递.这种适配是使用硬件实现的.

2.ARP(地址解析协议)
       ARP:将32位的IP地址转换为48位的物理地址MAC。
       ARP的任务是把网络层的IP地址和链路层的MAC进行转换
       在发送主机的ARP模块将取在相同局域网上的任何IP地址进行输入,然后返回相应的MAC地址
       DNS和ARP很相似,但是DNS和ARP的区别是DNS为因特网上的任何主机解析主机名,而ARP只为在同一个子网上的主机和路由器接口解析IP地址.

3.ARP如何工作的
       每台主机或者路由器在它的内存中都有一张ARP表,这张表包含了IP地址到MAC地址的映射关系.ARP表中也有一个寿命(TTL)值,它指示了从表中删除每个映射的时间,一个表项的过期时间一般是20分钟
       这张表不必为该子网上的每台主机和每个路由器都包含一个表项,某些可能从没进入过表,某些可能已经过期
       当主机222.222.222.220要发送一个数据报,该数据报要IP寻址到本子网上另一台主机或路由器.发送主机需要拿到MAC地址然后进行发送.如果ARP表中有这一项,那么直接取即可.如果没有,那么就会发送一个ARP分组.
       一个ARP分组有几个字段,包括发送和接收IP地址和MAC地       址.ARP查询分组和ARP响应分组都具有相同格式.
       222.222.222.220使用MAC广播地址FF-FF-FF-FF-FF-FF向它的接口传递一个ARP查询分组,接口在链路层帧中封装这个ARP分组,用广播地址作为帧的目的地址,并将该帧传输进子网中,子网中的每个结点的接口都能收到该帧,并都把该帧中的ARP分组向上传给ARP模块,ARP检查查询分组中的目的IP地址和自己的IP是否一样,其中匹配的那一个给查询主机送回(不是广播)一个ARP响应,然后222.222.222.220更新它的ARP表并发送IP数据报,该数据报被封装在链路层帧中,且该帧的目的MAC就是对先前ARP请求进行响应的MAC地址。
       注意:

  • ARP查询是广播,ARP响应是标准传输
  • ARP是即插即用的,不需要管理员配置
  • ARP是跨越链路层和网络层边界的协议
  • 当向另一个子网中发送数据时,每次都会使用ARP找到下一跳,然后一跳一次的穿过去.不能用ARP直接解析,因根本不在一个子网中

4.为什么要有链路层MAC地址和网路层IP地址呢

有Mac地址为什么需要ip地址
       有了MAC地址标注各个硬件地址后,这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此由用户或用户主机来完成这项工作几乎是不可能的事。但统一的IP地址把这个复杂问题解决了。连接到因特网的主机只需拥有统一的IP地址,它们之间的通信就像连接在同一个网络(虚拟互连网络或者简称IP网)上那么简单方便,因为调用ARP的复杂过程都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。

有ip地址为什么需要mac地址
       a.信息传递时候,需要知道的其实是两个地址:终点地址、下一跳的地址。IP地址本质上是终点地址,它在跳过路由器的时候不会改变,而MAC地址则是下一跳的地址,每跳过一次路由器都会改变。这就是为什么还要用MAC地址的原因之一,它起到了记录下一跳的信息的作用。
       b.网络体系结构的分层模型:用MAC地址和IP地址两个地址,用于分别表示物理地址和逻辑地址是有好处的。这样分层可以使网络层与数据链路层的协议更灵活地替换。 网络层不一定非要用『IP』协议,链路层也不一定非用『以太网』协议。
       c.历史原因:早期的以太网只有集线器,没有交换机,所以发出去的包能被以太网内的所有机器监听到,因此要附带上MAC地址,每个机器只需要接受与自己MAC地址相匹配的包。

另外,如果ip地址够的话,可能会想到直接在网络层中记录下一跳ip地址就好了,确实如果这样的话只需要ip地址就可以了。但事实上ip地址不够用,同时还有好多局域网(以太网)这就导致了ip地址的缺陷,我们需要mac地址一步一步的找下一跳

最重要的地方!!!!!!!!!!!!!!!!!!!
       当年设计 IP 地址的目的是什么呢?当年设计出 IP 地址这个东西,就是因为随着网络中的设备逐渐增多,人们发现路由(也就是寻找数据包从发送方到接收方的路径)变得越来越困难了。于是人们想了一个办法,就是把网络划分成很多个子网。这样,在路由的时候,路由器可以把其他子网看成一个整体来进行计算。对于目的地在其他子网的数据包,路由器只需要让数据包到达那个子网即可,而剩下的工作就由子网内部解决了。虽然这种方法只能让寻找到的路径接近最优而不保证最优,不过它大大减少了路由器的计算量,利大于弊,所以被采用了。
       那么为什么我们需要 IP 地址呢?因为如果我们只用 MAC 地址的话,我们会发现路由器需要记住每个 MAC 地址所在的子网是哪一个(不然每一次收到数据包的时候路由器都要重新满世界地去找这个 MAC 地址的位置)。而世界上有2的48次方个 MAC 地址,这就意味着即使我们给每个 MAC 地址只留 1 字节的储存空间,每个路由器也需要 256 TB 的内存!这显然是不可能实现的。
       这就是我们需要 IP 地址的原因了。和 MAC 不同的是,IP 地址是和地域相关的。对于位于同一个子网上的设备,我们给他们分配的 IP 地址前缀都是一样的。这个前缀就像邮政编码一样。这样,路由器过 IP 地址的前缀就能知道这个设备在哪个子网上了。现在,路由器只需要记住每个子网的位置即可,大大减少了路由器所需要的内存。
       总之,MAC 地址就像自己的 ID 号,而 IP 地址就像带着邮政编码的住址,各有各的用途。所以我们需要两个地址,缺一不可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值