一、ARP的作用。

  首先在window 的命令行中输入arp -a即可查看本机的arp缓存表。主机要发送数据包时,需要填充目的IP及其IP地址对应的MAC。当我们只有目的IP地址时,如何得到其对应的MAC地址?

  此时ARP的作用就体现出来了。ARP就是通过IP来获取其对应的MAC地址。接下来阐述具体的过程。

二、同网段下ARP工作原理。

图 1

  如图1所示,h1与h2是处于同一网段并通过交换机s1连接。在h1上执行ping 10.0.0.3时,具体流程如下:

  1、h1在arp缓存表中h2 IP地址对应的mac,若未查询到进入第2步;

  2、h1将目的mac改为全F(即广播),目的IP为h2,发送除自己以外的s1端口中,询问“谁是10.0.0.3”,进入第3步;

  3、h3收到广播消息后,发现目的IP与自己不匹配,将其丢弃;而h2收到广播消息后,发现查找的是自己,就会发送一个单播帧给h1,

单播帧中包含h2的mac地址。同时h2也会在自身的arp表中记录h1的mac;

  4、h1收到h2的arp回应后,更新arp表,并发送数据给h2,实现h1与h2的ICMP可达;

三、不同网段下ARP工作原理


 图 2

  如图2所示,主机h1与h2连接在路由器r2。h1与h2处于不同网段。在h1上执行ping 11.0.0.4,具体流程如下:

  1、h1查询本机的arp缓存表,发现目的IP与自身不在同一网段,则通过需要通过默认网关来查询h2的mac;

  2、h1需要先arp到网关10.0.0.1的mac地址,网关单播返回给h1,h1将数据包的目的mac改为f0的mac地址,目的IP为h2的IP 11.0.0.4

  3、r2收到数据包之后,r2解包后,发现目的IP不是自己,然后查看路由表,将数据包转发到相应的接口f1;

  4、此时不知道h2的mac地址,所以r2的f1接口中发送arp请求报文,源IP与源mac都是f1,目的IP为h2,目的mac全F,即广播查找h2的mac;

  5、h2返回自身的mac给r2,r2更新路由表,而后r2将h1的包修改为源IP与源mac为h1,目的IP与母的mac为h2,从端口f1发送出去。

  6、h2接收到数据包后,更新arp表,同样返回ICMP应答报文给h1,过程可跟1~5类似。

四、新接入网络的主机是否会自动学习其他主机mac,建立arp缓存表?

  答案:不会,按照以上过程,只有双方有通信时,对方才会将其mac记录在arp缓存表中。

ARP协议原理学习的更多相关文章

  1. TCP/IP协议原理学习笔记

    昨天学习了杨宁老师的TCP/IP协议原理第一讲和第二讲,主要介绍了OSI模型,整理如下: OSI是open system innerconnection的简称,即开放式系统互联参考模型,它把网络协议从 ...

  2. 浅谈ARP协议以及应用

    0. 前言 本章主要简单的介绍ARP的协议格式,主机如何发送和处理ARP报文,以及免费ARP. 1. ARP协议原理 ARP,全称Address Resolution Protocol,地址解析协议, ...

  3. 一文详解 ARP 协议

    我把自己以往的文章汇总成为了 Github ,欢迎各位大佬 star https://github.com/crisxuan/bestJavaer 公众号连载计算机网络文章如下 ARP,这个隐匿在计网 ...

  4. TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议

    把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数 ...

  5. 图解ARP协议(二)ARP攻击原理与实践

    一.ARP攻击概述 在上篇文章里,我给大家普及了ARP协议的基本原理,包括ARP请求应答.数据包结构以及协议分层标准,今天我们继续讨论大家最感兴趣的话题:ARP攻击原理是什么?通过ARP攻击可以做什么 ...

  6. 通信原理之IP协议,ARP协议 (三)

    把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数 ...

  7. ARP地址解析协议原理

    概述 网络层以上的协议用IP地址来标识网络接口,但以太数据帧传输时,以物理地址来标识网络接口.因此我们需要进行IP地址与物理地址之间的转化. 对于IPv4来说,我们使用ARP地址解析协议来完成IP地址 ...

  8. 图解ARP协议(四)代理ARP原理与实践(“善意的欺骗”)

    一.代理ARP概述 我:当电脑要访问互联网上的服务器,目标MAC是什么? 很多小伙伴在刚学习网络协议的时候,经常这样直接回应:不就是服务器的MAC嘛! 这时我会反问:那电脑怎么拿到这个服务器的MAC地 ...

  9. TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议【转】

    转自:http://blog.csdn.net/goodboy1881/article/details/668556 把这三个协议放到一起学习是因为这三个协议处于同一层(网际层),ARP协议用来找到目 ...

随机推荐

  1. 【Beta阶段】第九次Scrum Meeting!(论坛已成功上线)

    每日任务内容: 本次会议为第九次Scrum Meeting会议~ 本次会议为团队项目第九次会议,在会议前大家取得了重大成果! 队员 昨日完成任务 明日要完成任务 刘乾 #179 完成1021的数据处理 ...

  2. keras-VGG16 猫狗分类器

    keras 原理: keras系列︱图像多分类训练与利用bottleneck features进行微调(三)https://blog.csdn.net/sinat_26917383/article/d ...

  3. 《面向对象程序设计》c++第五次作业___calculator plus plus

    c++第五次作业 Calculator plusplus 代码传送门 PS:这次作业仍然orz感谢一位同学与一位学长的windows帮助,同时再次吐槽作业对Mac系统用户的不友好.(没朋友千万别用Ma ...

  4. TCP程序设计基础

    1.端口与套接字 IP地址--->端口--->套接字(Socket)--->应用程序 2.TCP服务器端和客户端通信 1)服务器创建一个ServerSocket,调用accept() ...

  5. [BUAA_SE_2017]案例分析-Week3

    Week3 案例分析 一.调研评测 案例: 神策数据的数据概览功能 Demo: 电商类产品Demo 评价: d) 好,不错 个人评价:神策数据电商类产品Demo的数据概览功能是相当不错的.首先点击进入 ...

  6. MySQLi面向对象实践--select

    对于update.insert.delete请参考http://www.cnblogs.com/-beyond/p/8457580.html 执行select,如果SQL语句执行成功,那么返回的是一个 ...

  7. Java WebMail

    http://www.open-open.com/06.htm http://www.oracle.com/technetwork/java/javamail/third-party-136965.h ...

  8. [转帖] linux下面 vim 数字键无法插入的解决办法

    感谢原作者: https://blog.csdn.net/guoyuqi0554/article/details/11477597 这个问题困扰自己好久了.. 刚才解决了 rlwrap的问题 这会儿 ...

  9. jenkins--svn+添加钩子去触发jenkins的job工作

    找到svn钩子脚本 post-commit: 添加一个接口: /usr/bin/curl http://admin:admin@x.x.x.x:8080/job/svn/buildWithParame ...

  10. BZOJ1468Tree——点分治

    题目描述 给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于K 输入 N(n<=40000) 接下来n-1行边描述管道,按照题目中写的输入 接下来是k 输出 一行,有多 ...