【2-地址解析协议ARP】

【2.1-基本概念】

  地址解析协议ARP的作用是根据主机的IP地址,找出该主机的硬件地址。

【2.2-为什么要使用ARP】

  在数据传输过程中,网络层使用的IP地址,但是在实际传输的时候,数据是从网络的数据链路上传送数据帧的(就是数据链路层所做的工作,七层网络结构中,数据从上往下移动),所以最终还是需要使用网络的硬件地址。因为七层网络结构中每一层都是黑盒的,所以在讨论数据在网络层传输的时候,就忽略了对数据链路层的讨论。

【2.3-ARP的简要工作原理】

  每一台主机都有一个ARP高速缓存表,用来存储主机所在局域网上所有主机和路由器的IP地址到硬件地址的映射表。当网络层传输数据时,指明数据的目的IP地址,然后通过目的IP地址在ARP高速缓存表中找到该主机的硬件地址,即目的主机的硬件地址,然后把网络层的IP数据报加上源硬件地址和目的硬件地址,封装成MAC帧(数据链路层的数据传输单位)在数据链路上进行数据传输。

【2.4-ARP怎么获取本网络其他主机的IP地址硬件地址的映射关系】

  假设主机A要向本网络中的主机B发送IP数据报,首先主机A在自己的ARP高速缓存表中根据主机B的IP地址找对应的硬件地址,如果找到了,就这个硬件地址写到MAC帧,然后通过局域网把这个MAC帧发送到这个硬件地址。如果没有找到,主机A就向自己所在的局域网广播ARP请求分组,这个请求分组中的信息是这样的,“主机A的IP的地址,主机A的硬件地址,目的主机B的IP地址”;接着这个网络上的所有主机都收到这个请求,都各自检查请求中目的主机的IP地址是不是自己,如果不是,就不做任何响应,如果是,就先把主机A的IP地址和硬件地址的映射关系在自己的ARP高速缓存表中保存一下,然后向主机A发送单播响应信息,信息内容是这样的,“主机B(自己)的IP地址,主机B(自己)的硬件地址”;主机A收到主机B的单播响应信息之后,就把映射关系缓存在自己的ARP高速缓存表中,最后把主机B的硬件地址写到MAC帧中,通过局域网把MAC帧发送到主机B的硬件地址。

  假设主机B的硬件地址换了,主机A中保存的映射关系不就变成错误的了吗? 解决办法就是,本机的ARP高速缓存表有个过期时间,一定时间内容会清空,重新更新这个高速缓存表。

  当目的主机B和主机A不在同一个网络中怎么办?如果是这样,那么主机A的ARP高速缓存表中保存的就是两个网络之间的路由器的硬件地址,主机A根据路由器地址解析出路由器的硬件地址,然后把MAC帧发送给路由器,然后就不管了,由路由器再做ARP的解析去把数据最终发送到目的主机B的硬件地址去。个人理解也可以把这个路由器当成一个主机。

网络协议笔记-网络层-ARP协议的更多相关文章

  1. [TCP/IP] 网络层-ARP协议

    ARP协议可以将网络层地址到任意物理地址转换,从IP地址到MAC地址转换 MAC地址:物理地址,网卡厂家要确保MAC地址全球唯一,48位2进制,显示是12位16进制 1.查看我自己的ip,我自己的的i ...

  2. Windows网络编程笔记4 -- Winsock 协议相关知识

     Win32平台上的Winsock编程,Winsock是一个与协议无关的接口.以下协议是我们需要了解的: 网络协议的特征包括: 1.  面向消息 2.  面向连接和无线接 3.  可靠性和次序性 4. ...

  3. 网络爬虫笔记之http协议

    http协议和https协议: HTTP协议:HyperText Transfer Protocol,超文本传输协议,是一种发布和接收HTML页面的方法.服务器端口号是80. HTTPS协议:是HTT ...

  4. 网络协议笔记-网络层-路由器的作用、IP地址

    1-[路由器在网际互连中的作用] 1.1-[直接交付和间接交付] 直接交付:当主机A要向另一个主机B发送数据报时,要先检查目的主机B是否与源主机连接在同一个网络上.如果是,就将数据报直接交付给目的主机 ...

  5. 网络基础知识-TCP/IP协议各层详解

    TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...

  6. arp协议分析&python编程实现arp欺骗抓图片

    arp协议分析&python编程实现arp欺骗抓图片 序 学校tcp/ip协议分析课程老师布置的任务,要求分析一种网络协议并且研究安全问题并编程实现,于是我选择了研究arp协议,并且利用pyt ...

  7. 关于ARP协议

    什么是arp协议: arp协议是地址解析协议,英文是address resolution protocol 通过IP地址可以获得mac地址 两个主机的通信归根到底是MAC地址之间的通信 在TCP/IP ...

  8. 什么是ARP协议?

    ARP协议,全称“Address Resolution Protocol”,中文名是地址解析协议, 使用ARP协议可实现通过IP地址获得对应主机的物理地址(MAC地址). 在TCP/IP的网络环境下, ...

  9. 网络架构,七层协议,三次握手四次挥手,socket套接字简单编程

    一.单机架构 应用领域: 植物大战僵尸 office 二.CS架构 应用领域: QQ 大型网络游戏 计算机发展初期用户去取数据,直接就去主机拿,从这里开始就分出了客户端和服务端. 客户端:用户安装的软 ...

随机推荐

  1. 洛谷 P3672 小清新签到题 [DP 排列]

    传送门 题意:给定自然数n.k.x,你要求出第k小的长度为n的逆序对对数为x的1~n的排列 $n \le 300, k \le 10^13$ 一下子想到hzc讲过的DP 从小到大插入,后插入不会对前插 ...

  2. 统计细菌基因组ORF

    提取细菌基因组ORF思路: 1.通过FNA文件得到细菌基因组序列 2.分正负链和三个相位共6种情况统计ORF 3.写入文件 转载请保留出处! 统计细菌基因组ORF 贴上Python代码(版本:3.6) ...

  3. 联合查询到gridview

    using com.DAL.Base; using DAL.ruanmou; using System; using System.Collections.Generic; using System. ...

  4. 爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider)

    爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider),这之间的斗争恢宏壮阔... Day 1小莫想要某站上所有的电影,写了标准的爬虫(基于HttpCli ...

  5. 本地创建yum源并安装lnmp

    注意:安装系统时,文件类型要未xfs类型,root要分配最多的空间 1.挂载安装光盘mount -t iso9660 -o loop CentOS-7-x86_64-DVD-1511.iso /mnt ...

  6. 微信小程序模板发送,openid获取,以及api.weixin.qq.com不在合法域名内解决方法

    主要内容在标题三,老手可直接跳到标题三. 本文主要解决个人开发者模板消息发送的问题(没有服务器,不能操作服务器的情况) 针对api.weinxin.qq.com不在以下合法域名列表内的问题提出的解决方 ...

  7. css 图片增加模糊效果

    img{ -webkit-filter: blur(5px); -moz-filter: blur(5px); -ms-filter: blur(5px); filter: blur(5px); }

  8. oracle 11.2.0.2以后对数据库用户名重命名

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn [转自]http://www.xifenfei.com/2012/0 ...

  9. 华为云照片的爬虫程序更新(python3.6)

    一.背景: 每年终都有一个习惯,就是整理资料进行归档,结果发现手机照片全备份在华为云里,在官网上找了一圈,没找到官方的pc工具用来同步照片. 于是找出上次写的程序,看看能不能爬到数据,然而……果然不好 ...

  10. pinvoke 数据交互笔记

    intptr to array string string[]  _outputStrArray=null;  int channelCount = 0;///返回数组大小            In ...