一、ARP/RARP协议

1、地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。

ARP工作流程举例:

主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;

主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;

当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:

  • (1)根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。
  • (2)如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。
  • (3)主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。
  • (4)主机B将包含其MAC地址的ARP回复消息直接发送回主机A。
  • (5)当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。

2、逆地址解析协议,即RARP,功能和ARP协议相对,其将局域网中某个主机的物理地址转换为IP地址

,比如局域网中有一台主机只知道物理地址而不知道IP地址,那么可以通过RARP协议发出征求自身IP地址的广播请求,然后由RARP服务器负责回答。

RARP协议工作流程:

  • (1)给主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址;
  • (2)本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;
  • (3)如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;
  • (4)如果不存在,RARP服务器对此不做任何的响应;

二、 IP地址

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

1、网络地址

IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址代表着整个网络。

2、广播地址

广播地址通常称为直接广播地址,是为了区分受限广播地址。

广播地址与网络地址的主机号正好相反,广播地址中,主机号为全1。当向某个网络的广播地址发送消息时,该网络内的所有主机都能收到该广播消息。

3、组播地址

D类地址就是组播地址。

先回忆下A,B,C,D类地址吧:

A类地址以0开头,第一个字节作为网络号,地址范围为:0.0.0.0~127.255.255.255;(modified @2016.05.31)

B类地址以10开头,前两个字节作为网络号,地址范围是:128.0.0.0~191.255.255.255;

C类地址以110开头,前三个字节作为网络号,地址范围是:192.0.0.0~223.255.255.255。

D类地址以1110开头,地址范围是224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多的通信);

E类地址以1111开头,地址范围是240.0.0.0~255.255.255.255,E类地址为保留地址,供以后使用。

注:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号。

4、255.255.255.255

该IP地址指的是受限的广播地址。受限广播地址与一般广播地址(直接广播地址)的区别在于,受限广播地址只能用于本地网络,路由器不会转发以受限广播地址为目的地址的分组;一般广播地址既可在本地广播,也可跨网段广播。例如:主机192.168.1.1/30上的直接广播数据包后,另外一个网段192.168.1.5/30也能收到该数据报;若发送受限广播数据报,则不能收到。

注:一般的广播地址(直接广播地址)能够通过某些路由器(当然不是所有的路由器),而受限的广播地址不能通过路由器。

5、0.0.0.0

常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。

6、回环地址

127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1。

7、A、B、C类私有地址

私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义。

A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255

B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255

C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255

三、MAC地址

  MAC地址:在OSI(Open System Interconnection,开放系统互连)7层网络协议(物理层,数据链路层,网络层,传输层,会话层,表示层,应用层)参考模型中,第二层为数据链路层(Data Link)。它包含两个子层,上一层是逻辑链路控制(LLC:Logical Link Control),下一层即是我们前面所提到的MAC(Media Access Control)层,即介质访问控制层。所谓介质(Media),是指传输信号所通过的多种物理环境。常用网络介质包括电缆(如:双绞线,同轴电缆,光纤),还有微波、激光、红外线等,有时也称介质为物理介质。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地址。

四、区别与联系

1. 有了MAC地址为什么还需要IP地址?

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

2. 有了IP地址为什么还需要MAC地址?

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

《每日一记 》网络篇-ARP协议与IP地址MAC地址相关推荐

  1. Linux服务器配置网络,可修改服务器Ip与Mac地址

    在服务器的网络配置中,需要同时配置这两种网络,才能使服务器正常使用.使用内网是为了保证我们的服务器处在一个安全的网络环境中,可以减少外部病毒的影响,而访问外网是为了方便我们配置服务器一些资源,如驱动程 ...

  2. 利用ARP协议查询服务器的MAC,HTTP报文格式又是怎样的 如何使用ARP协议查询Mac地址...

    浏览器从地址栏得到服务器 IP,接着构造一个 HTTP 报文,其中包括: 请求行包含请求方法.URL.协议版本 请求报头(Request Header):由 "关键字: 值"对组成 ...

  3. 域名,ip,mac地址

    域名:由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置). mac地址:物理地址.硬件地址,用来定义网络设备的位置. IP ...

  4. IP和MAC地址绑定的好处和作用

    IP和MAC地址绑定的好处和作用:可以实现静态IP,也可以防止ARP攻击. IP和MAC地址知识: 如果你是通过校园网或小区接入Internet,那么一定听说过MAC地址.什么是MAC地址,MAC地址 ...

  5. 网络 之 IP地址Mac地址与DNS,ARP,DHCP协议

    目录: IP地址与Mac地址 IP地址划分 IP地址分类 DNS协议 ARP协议 DHCP协议 一.ip地址 1.1. 什么是IP地址 1.查看本机的 IP 和 MAC 地址 2.MAC地址 MAC地 ...

  6. arp 项删除失败: 请求的操作需要提升。_ccna必懂篇-arp协议工作原理详解。

    本次呢,要说的是arp协议,那么什么是arp协议呢?有什么作用呢? 什么是arp ARP(Address Resolution Protocol)地址解析协议,地址解析协议由互联网工程任务组(IETF ...

  7. 网络 || 路由 || arp协议

    路由器的作用:实现跨网段通信使用                           将数据包从一个网络转发到另外一个网络                            根据路由表转发数据包 ...

  8. 网络篇 - https协议中的数据是否需要二次加密

    随着互联网整体的发展,https 也被越来越多的应用.甚至苹果去年还曾经放言要强制所有的 app 都使用 https,可见在如今的互联网它的重要性.前面的文章说了 OSI 七层模型,https 可以保 ...

  9. HCIA-第二节课学习笔记总结(ARP协议与IP地址)

    "ping"---检测网络连通性的工具(ICMP协议) 上图是因特网包探索器,用于测试网络连接量的程序.Ping发送一个ICMP:回声请求消息给目的地并报告是否收到所希望的ICMP ...

最新文章

  1. 【Scratch】青少年蓝桥杯_每日一题_9.09_画圆形渐变螺旋
  2. 详解计算机内部存储数据的形式 二进制数
  3. 电池技术为什么如此高深莫测,以至于一直是手机等相关行业的短板?
  4. Java来做马里奥[0]—让精灵再次舞动
  5. string 转 byte_计算机毕业设计中java实现在线预览poi实现word、excel、ppt转html
  6. 金山词霸2007两个小BUG
  7. Win10怎么录制内部声音 内录软件哪个好
  8. 基于SEIRD和元胞自动机(CA)模型的传染病发展趋势预测
  9. FFmpeg 视频添加水印
  10. 金蝶K3系统单据审核时报错:无效的过程调用或参数 处理方法
  11. 1116: 删除元素 C语言
  12. 机器学习天坑总结篇(TensorFlow)
  13. 适合编程初学者的开源项目:小游戏2048(微信小程序版)
  14. [Erlang] XML处理方案
  15. 计算机函数exp是什么意思,exp函数是什么意思
  16. JAVA 数字图像处理----非白即黑的灰,2B青年的自画像
  17. 零基础学cad要多久_零基础学UI设计要学多久?能学会吗?
  18. 2009年6月9日,博客再次改进的通报!
  19. netstat查看Linux端口状态
  20. vsCode中Server is already running from different workspace错误解决办法

热门文章

  1. 九大排序算法时间复杂度、空间复杂度、稳定性
  2. 有没有html代码听力的软件吗,英语听力软件哪个好?2017英语听力软件排行榜
  3. jython mysql_用jython 访问mysql数据库
  4. 山东大学软件学院最优化方法考试复习笔记
  5. Linux系统下利用Impost3r劫持sudo命令窃取凭据
  6. .net 图片无损压缩
  7. C语言 1999年标准
  8. 在Spring Boot中使用Log4j2
  9. java随机点名器_随机点名器(Java实现、读取txt文件)
  10. Monty Python(蒙提·派森)的成员简介