TCP/IP详解卷1 读书笔记:第四章 ARP地址解析协议
来源:互联网 发布:域名投资人联系 编辑:程序博客网 时间:2024/05/16 05:22
引言
设备驱动程序(链路层)从不检查IP数据报中的目的IP地址。
链路层把以太网数据帧发送到另一台主机时,是根据MAC地址来发送的。而不是根据IP地址,因为IP地址是IP层使用的,而链路层不关心IP,只关心MAC地址。设备驱动程序不检查目的IP地址,而只关心Mac地址。
网络层寻址(下一跳的地址)是根据路由表和目的IP地址;
网络层找到下一跳的IP地址后,将该地址映射到MAC地址是链路层的事情。链路层首先查ARP表,查表未找到后,再通过ARP广播来查找。
内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。
在实现上ARP位于IP层,即和IP协议处于同一层,因此,ARP协议的实现是在路由器/主机中,而不是在交换机中。
ARP的分组格式
以太网报头中的前两个字段是以太网的源地址和目的地址。目的地址为全 1的特殊地址是广播地址。电缆上的所有以太网接口都要接收广播的数据帧。无论何种数据包以太网帧头中的源目MAC地址,都是该数据包路由路径中相邻的两个MAC地址(目的MAC为广播地址的需要特殊处理)。
ARP头部共28字节,无数据部分。请求和应答是相同的报文结构。
硬件类型字段,用来标识网络的硬件类型,如以太网为1。
协议类型字段,表示要映射的协议地址类型。它的值为 0 x 0 8 0 0即表示 I P地址,即根据后面的目的IP地址字段查找目的MAC地址字段。
硬件地址长度,表示网卡的MAC地址长度,一般为6字节。
协议地址长度,指的是上面协议类型字段标识的后面的目的IP或MAC地址的长度。如,IP地址是4,MAC地址是6。
操作字段,标识四种操作类型,它们是 A R P请求(值为1)、 A R P应答(值为 2)、 R A R P请求(值为3)和R A R P应答(值为4)。
发送端的IP和MAC地址。
目的端的IP和MAC地址,可只填写部分。
抓包分析
对于一个 A R P请求来说,除目的端硬件地址外的所有其他的字段都有填充值。当系统收到一份目的端为本机的 A R P请求报文后,它就把硬件地址填进去,然后用两个目的端地址分别替换两个发送端地址,并把操作字段置为 2,最后把它发送回去。
对于局域网中目的主机存在(目的IP对应的主机存在)的ARP请求(广播)来说,发送端能够收到ARP应答。但广播一个不存在主机的ARP请求,发送端最终会得到一个来自本机(发送端)的ICMP差错报文(目的地址不可达)。(需要注意的是,该ICMP报文是由本机的TCP/IP协议栈产生的,并未发往网卡,而是直接投递给上层应用,因此使用wireshark抓不到)
如下:
这些ARP广播都是由ping命令触发的,但最终都超时了,因此,ping程序在收到本机产生的ICMP报文后,给出了出错信息。
- 《TCP/IP详解 卷1:协议》 读书笔记 第四章 ARP:地址解析协议
- 《TCP/IP详解 卷1:协议》 读书笔记 第四章 ARP:地址解析协议
- TCP/IP详解卷1 读书笔记:第四章 ARP地址解析协议
- TCP/IP详解,卷1:协议,第四章:ARP,地址解析协议
- 《TCP/IP详解 卷1:协议》第四章 ARP:地址解析协议
- 《TCP/IP详解卷1:协议》第4章 ARP:地址解析协议-读书笔记
- 《TCP/IP详解 卷1:协议》 读书笔记 第4章 ARP:地址解析协议
- tcp/ip详解卷1:协议 读书笔记 ARP:地址解析协议
- 《TCP-IP详解卷1:协议》读书笔记四 ARP地址解析协议
- 《TCP-IP详解卷1:协议》读书笔记四 ARP地址解析协议 .
- 《TC/IP详解:卷I》读书笔记--第四章 ARP 地址解析协议
- TCP/IP详解卷一 第四章 ARP地址解析协议 第五章 RARP反向地址解析协议
- TCP/IP详解读书笔记(第四章 ARP:地址解析协议)
- TCP/IP详解卷1:协议(第四章:ARP:地址解析协议) || (第五章:RARP:逆地址解析协议) | (待完善)
- 《TCP/IP详解 卷一:协议》读书笔记--ARP:地址解析协议
- TCP/IP详解卷1:协议(四)【ARP:地址解析协议,RARP:逆地址解析协议】
- 解读《TCP/IP详解》(卷1):04章:ARP(地址解析协议)
- TCP/IP详解 卷一 ---------ARP地址解析协议
- HMM简单理解
- tcp报文格式udp报文格式详解
- mysql(七、创建、修改、更新视图)
- UVA 10305 Ordering Tasks
- 黑马程序员——Java语言:IO
- TCP/IP详解卷1 读书笔记:第四章 ARP地址解析协议
- poj(1505)——Copying Books
- C#解析xml/json/excel
- 如何用代码禁用SpriteBuilder中创建的关节
- 用递归实现二分查找 JAVA
- 数据细节
- xiaok海洋测绘网全新改版(使用emlog)
- HDU 5468 Puzzled Elena (2015年上海赛区网络赛A题)
- FragmentManager讲解