<TCP/IP>地址解析协议ARP
从前两章中有学到,网络层地址和链路层地址是由不同的,一个是物理地址,一个是IP地址。物理地址固定存储在网卡中,不会改变,而IP地址是可以网络管理员和用户自己分配的
在传统的IPv4网络中,一台A主机要想将数据传输到另一台B主机上,只知道B的IP地址可不行,还需要知道B主机在网络中的有效物理地址,但是要怎么才能把IP地址转换成物理地址呢?这时候就要用到ARP(地址解析协议)
ARP
地址解析其实是发现两个地址之间映射关系的过程,基本上都用于32位的IPv4地址和以太网的48位MAC地址之间的映射,如下图所示,IP地址经过ARP的处理,变成了硬件地址。

书中还举了一个例子,当我们打开一个网页,我们的电脑会和相关的服务器联系,它首先判断该服务是位于本地(同一IP子网)还是远程,如果在同一子网,则向本网发送ARP广播,获得目标IP所对应的MAC地址,如果不在同一子网,就通过ARP询问默认网关(路由器)对应的MAC地址
ARP帧格式
下图为以太网中转换一个IPv4地址时常用的ARP请求和应答分组的格式

- 在以太网中,对于ARP(请求或应答),两字节的帧类型字段必须为0x0806
- 硬件类型字段指出硬件地址类型,对于以太网该值为1
- 协议类型字段指出映射的协议地址类型,对于IPv4地址,该值为0x0800
- 硬件和协议地址长度分别指出硬件地址和协议地址的字节数,对于以太网中使用IPv4地址的ARP请求或应答,它们的值分别为6和4
- Op字段指出该操作是ARP请求(1),ARP应答(2),RARP请求(3),RARP应答(4),RARP为反向地址转换
直接交付
在同一个子网下,两个IP地址直接传输数据,就可以使用直接交付,IPv4直接交付的基本操作如下:
- 主机A向主机B发送IPv4数据报,A必须将B的IP地址转换成物理地址,ARP开始运行
- ARP工作在正常模式下,仅适用于广播网络,在一个共享的链路层网段上,ARP向所有连接着的主机发送一个称为ARP请求的以太网帧,其中包含主机B的IP地址
- 只有符合目标IP地址的主机B回答这个ARP请求,其他站点则忽略这个请求,即为ARP应答,该应答包含B的IP地址和MAC地址,此时不是广播,而是直接发送给A
- 主机A收到应答后,会在自己的缓存中构建一个ARP表,将得到的地址信息缓存起来,以备将来和同一目的节点通信时直接在ARP表中查找,避免了多次的广播请求
感谢在实践中深入理解ARP协议和ARP地址解析过程(同一子网和不同子网)这两篇文章的作者们提供的帮助,想更深入了解ARP的同学可以点击链接学习
<TCP/IP>地址解析协议ARP的更多相关文章
- TCP/IP具体解释学习笔记——地址解析协议ARP
一 概述 我们知道,IP协议是用来在不同的物理网络之间数据传输的.要在不同的网络之间数据传输,至少须要将IP协议所用的地址转换成特定网络所使用的物理地址. 一般来说.就是将IPv4地址转换为mac地址 ...
- TCP/IP的排头兵――地址解析协议(ARP) (转载)
转自:http://blog.csdn.net/wangxg_7520/article/details/2488442 一.引言 古人行军打仗,都要有一个可以引领队伍前进方向的排头兵,在TCP/IP网 ...
- TCP/IP, UDP, ICMP, ARP协议族简介--纯图慎点
ISO/OSI的网络模型架构 TCP/IP参考模型的层次结果 以太网头部结构 以太网属于数据链路层, 属于最基本的协议结构 IP协议 IP协议为TCP, UDP, ICMP提供最基本的数据传输通路 I ...
- 【RL-TCPnet网络教程】第23章 RL-TCPnet之地址解析协议ARP
第23章 RL-TCPnet之地址解析协议ARP 本章节为大家讲解ARP(Address Resolution Protocol,地址解析协议),通过前面章节对TCP和UDP的学习,需要大家 ...
- TCP/IP网络协议基础
实验楼学习网络协议传送门 一.TCP/IP简介 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议和网络协议的简称,它定义了电 ...
- 地址解析协议ARP与逆地址解析协议RARP
IP地址是用来通信的,但是和硬件地址是有区别的.物理地址是数据链路层和物理层使用的地址,IP地址是网络层及以上各层使用的地址. 发送数据时,数据从高层向下层传输,使用IP地址的IP数据报交给下层的数据 ...
- 初探计算机网络之TCP/IP网络协议
网络协议 在计算机诞生以来,从最原始的单机模式到现在多台计算机协同工作,形成计算机网络,从前很难想象的信息共享.多机合作.大规模计算在今天也早已成了现实.在早期,计算机网络需要解决的痛点,就是怎样 ...
- Linux--网络基础(概念+协议的了解+OSI七层模型,TCP/IP五层协议,网络数据传输流程)
网络的发展 网络的发展有下面几个阶段: 独立模式:计算机最开始是以单机模式被广泛使用的.每一台计算机都是独立的,之间不能够进行数据共享与通信 网络互联: 计算机之间可以链接在一起,完成数据共享,计算机 ...
- 2016.7.8 计算机网络复习要点第四章之地址解析协议ARP
1.地址解析协议ARP:知道一个机器的IP地址,需要找到其相应的硬件地址:ARP协议的用途是为了从网络层使用的IP地址解析出在链路层使用的硬件地址: 2.由于是IP协议使用了ARP协议,因此通常就把A ...
随机推荐
- Expressions versus statements in JavaScript
Statements and expressions An expression produces a value and can be written wherever a value is exp ...
- 【leetcode-66】 加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 1: 输入 ...
- 【1】【leetcode-99】 恢复二叉搜索树
(没思路) 99. 恢复二叉搜索树 二叉搜索树中的两个节点被错误地交换. 请在不改变其结构的情况下,恢复这棵树. 示例 1: 输入: [1,3,null,null,2] 1 / 3 \ ...
- ACM-ICPC 2018 南京赛区网络预赛 J Sum (思维+打表)
https://nanti.jisuanke.com/t/30999 题意 f(i)表示i能拆分成两个数的乘积,且要求这两个数中各自都没有出现超过1次的质因子的方案数.每次给出n,求∑(n,i=1)f ...
- wav音频文件格式解析【个人笔记】(自用)
1. WAV格式 wav是微软开发的一种音频文件格式,注意,wav文件格式是无损音频文件格式,相对于其他音频格式文件数据是没有经过压缩的,通常文件也相对比较大些.. 支持多种音频数字,取样频率和声道, ...
- java中数组、集合、字符串之间的转换,以及用加强for循环遍历
java中数组.集合.字符串之间的转换,以及用加强for循环遍历: @Test public void testDemo5() { ArrayList<String> list = new ...
- luogu 2296 寻找道路 简单BFS
简单的BFS,练习基础 #include<bits/stdc++.h> #define rep(i,x,y) for(register int i=x;i<=y;i++) #defi ...
- git操作手册
git教案链接:https://git-scm.com/book/zh/v2 1.1 起步 - 关于版本控制 于是分布式版本控制系统(Distributed Version Control Syste ...
- tfs二次开发-利用tfs api做查询
参考地址:https://msdn.microsoft.com/en-us/library/bb130306(v=vs.120).aspx You can query for bugs, tasks, ...
- Webstorm通用设置
常用快捷键 Ctrl+Alt+L : 格式化代码