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

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 地址就像带着邮政编码的住址,各有各的用途。所以我们需要两个地址,缺一不可。

计网链路层mac地址和ip地址缺一不可相关推荐

  1. 【计网】(二)MAC地址与IP地址

    今天接着上篇文章继续讲计网的一些基础概念. MAC地址 每个网卡都有一个6字节的MAC地址(Media Access Control Address),并且这个MAC地址时全球唯一的,固化在网卡的RO ...

  2. 内网计算机如何在线查找mac地址,怎么查自己电脑的ip 和mac地址 局域网ip地址怎么查?...

    类型:赛车竞技大小:30M语言:中文 评分:10.0 标签: 立即下载 我们经常听到说要设置ip地址,有时还会有要记录mac地址,办公室的电脑如果不设置一个固定ip 就会经常造成管理的混乱,那怎么查询 ...

  3. 计算机网络(三)—— 数据链路层(7):MAC地址、IP地址以及数据链路层使用的ARP协议

    计算机网络系列内容的学习目录→\rightarrow→谢希仁计算机网络学习系列内容汇总. 7. MAC地址.IP地址以及数据链路层使用的ARP协议 7.1 MAC地址 7.1.1 课后练习 7.2 I ...

  4. MAC地址、IP地址以及ARP协议

    文章目录 MAC地址.IP地址以及ARP协议 数据链路层 网际层 MAC地址 为什么要有MAC地址? MAC地址格式 单播和广播 单播: 广播: ip地址 ip地址和mac地址在网络体系结构中的应用: ...

  5. MAC地址、IP地址以及ARP协议详细讲解

    MAC地址 MAC地址是以太网的MAC子层所使用的地址 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址. 在每一个主机发送的帧中必 ...

  6. 对于MAC地址的认识,以及MAC地址和IP地址的区别,MAC地址和IP地址各起到什么作用?

    目录 MAC地址的认识 MAC地址与IP地址的异同 有了IP地址为什么还需要MAC地址? 有了MAC地址为什么还需要IP地址? 数据链路上只要知道了对方的MAC地址不是就可以发送数据了吗?为什么还要I ...

  7. MAC地址,IP地址以及ARP协议

    MAC地址 MAC地址是以太网的MAC子层所使用的地址,当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址:在每个主机发送的帧中必须携 ...

  8. mac地址和ip地址、子网掩码和默认网关

    MAC地址 MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址.硬件地址,用来定义网络设备的位置.在OSI模型中, ...

  9. MAC地址和IP地址的关系

    简单地说:ip地址是服务商给你的,mac地址是你的网卡物理地址. 一.IP地址 对于IP地址,相信大家都很熟悉,即指使用TCP/IP协议指定给主机的32位地址.IP地址由用点分隔开的4个8八位组构成, ...

最新文章

  1. R语言sys方法:sys.chmod函数改变指定文件的权限、Sys.Date函数返回系统的当前日期、Sys.time函数返回系统的当前时间
  2. 配置git 账户密码时bash:$:command not found
  3. 两个oracle数据库外网同步,利用DBLink+JOB实现两个Oracle数据库之间的数据同步
  4. linux vi 复制一个单词_vi或vim的快速操作技巧你知道吗?
  5. 很多人想不通为什么创业失败者众成功者少
  6. SpringBoot中对于异常处理的提供的五种处理方式
  7. java url json字符串_Java和PHP的JSON字符串转URL参数方法
  8. ICMP数据包结构(转)
  9. 移动互联网浩荡十年 有的升腾,有的陨落
  10. 计算器代码编程c#语言,C#计算器编写代码
  11. 一个简易的QQ魔法卡片炼卡消耗计算器
  12. 外卖返利系统公众号外卖cps返利小程序淘宝客程序淘客侠客外卖CPS
  13. Git使用:拉取最新代码、提交本地代码到远程仓库冲突
  14. android自带下拉阻尼动画,Android 自带阻尼效果的ScrollView,仿ios效果
  15. 推荐系统之 FNN和DeepFM和NFM
  16. matlab能否算高中数学题,Matlab软件在高中数学学习中的应用
  17. dubbo源码分析总结
  18. 损失函数 - 交叉熵损失函数
  19. TCP创建多人聊天室
  20. 技嘉显卡性能测试软件,性能测试成绩总结_技嘉 GA-G1.Sniper B5_主板评测-中关村在线...

热门文章

  1. window7 64 VS2015下openCV3.4.0安装
  2. matplotlib散点图,圆
  3. applicationContext.xml中设置读取jdbc.properties文件
  4. matlab pca 测试样本,matlab_PCA,训练集与测试集分开,原理和用法
  5. java.security_Java开发网 - java.security.NoSuchAlgorithmException 问题的一些解决
  6. linux下实现dns服务器,实现Linux操作系统下DNS服务器的搭建
  7. docker设置网络
  8. libevent多线程
  9. mysql 5.6.14 64位_如何在64位WIN7下安装64位的解压版MySQLmysql-5.6.14
  10. mySQL5.5服务配置_配置mysql5.5主从服务器(转)