【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. centos 7 配置 到多站点设置

    背景 : 前面配置了 win2008 WAMP环境, 这次因为一些事情 新买了服务器  只有 win2003 和 win2012, 试着配置2012 WAMP环境 发现比 2008 缺的配置文件多很多 ...

  2. Django搭建博客网站(一)

    Django搭建自己的博客网站(一) 简介 这个系列主要是通过使用Django这个python web框架实现一个简单的个人博客网站.对Django有疑问可以上Django官网查文档. 功能 后台管理 ...

  3. qt中的udp编程

    UDP QUdpSocket ---> upd socket 1.创建 QUdpSocket *p = new QUdpSocket(); 2.最先接收数据一方 调用bind-> ip/p ...

  4. 训练 smallcorgi/Faster-RCNN_TF 模型(附ImageNet model百度云下载地址)

    1. 下载训练.验证.测试数据和 VOCdevkit,下载地址: http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2 ...

  5. zabbix_server 挂了原因及解决方法(内存溢出)

    14721:20170714:095330.028 [file:dbconfig.c,line:452] zbx_mem_malloc(): out of memory (requested 80 b ...

  6. .NET Core UI框架Avalonia

    .NET Core UI框架Avalonia,Avalonia是一个基于WPF XAML的跨平台UI框架,并支持多种操作系统:Windows(.NET Framework,.NET Core),Lin ...

  7. Spring_Spring与AOP_AspectJ基于注解的AOP实现

    一.AspectJ.Spring与AOP的关系 AspectJ是一个面向切面的框架,它扩展了Java语言.AspectJ定义了AOP语法,所以它有一个专门的编译器用来生成遵守Java字节编码规范的Cl ...

  8. Activiti中的log4j(slf4j)的配置

    今天试了一下在Activiti中使用log4j来进行配置发现这个会出现问题,其实Activiti中的日志系统是采用的是slf4j而不是log4j 然后使用slf4j驱动log4j来做的 通过Proce ...

  9. C语言_简单的阶乘函数

    include <stdio.h> long jc (int num); long jc2 (int num); int main() { long n; n = jc(); printf ...

  10. POJ - 1456 贪心+并查集

    做法一:直接贪心,按照利润排序,然后直接尽量给每个活动安排到最晚的时间即可.时间复杂度O(n * d)当d都为10000时,很容易超时.由于这题数据比较水,所有贪心未超时. AC代码 #include ...