本系列是针对《TCP/IP详解》的笔记总结,包含各章节的主要内容。有助于帮助你快速了解并掌握TCP/IP协议的相关内容。
目录
1、概述
2、ARP字段解析
3、RARP字段解析
4、ARP运行实例
1、概述
IP地址是指在软件中使用的抽象地址。不论是局域网还是广域网,发送和接收信息时,都依靠的是硬件地址。所以协议软件发送信息包之前,必须把IP地址翻译成对应的物理地址,这个过程称为地址解析(address resolution ARP)。
RARP是在无盘等系统中,无法直接获取到IP,但是网络接口是生产厂家唯一指定的,通过这个接口就可以获取到唯一的硬件地址(MAC),然后在网络中发生RARP请求,获取到响应的主机IP地址,该过程实现复杂度较高。
1.1 ARP作用
- 在到达最后目的网络之前,要把IP目的地址翻译成下一跳路由器的物理地址;
- 信息传输的最后一步,要反IP目的地址翻译成目的计算机的物理地址。
1.2 RARP作用
一般是从本地磁盘中获取IP地址,但是比如局域网中有一台主机只知道物理地址(无盘机)而不知道IP地址,那么可以通过RARP协议发出征求自身IP地址的广播请求,然后由RARP服务器负责回答。RARP协议广泛用于获取无盘工作站的IP地址。
2、ARP字段解析
- 以太网目的地址:接收方(目的)MAC 6Bytes, 广播时为 ff-ff-ff-ff-ff-ff;
- 以太网源地址:发送方(源)MAC 6Bytes;
- 帧类型:2Bytes,0x0806是ARP帧的类型值 0x8035是RARP帧的类型值;
- 硬件类型:2Bytes, 0x1 以太网类型值;
- 协议类型:2Bytes, 0x0800 上层协议为IP协议;
- MAC地址(硬件)长度1Bytes, 0x06 以太网MAC地址长度为 6;
- IP地址(IP)长度1Bytes, 0x4 IP地址长度为 4;
- 操作码:2Bytes,0x01表示ARP请求包,0x2表示ARP应答包 0x3表示RARP请求包,0x4表示RARP应答包;
- 发送方MAC :6Bytes;
- 发送方IP:4Bytes;
- 接收方MAC:6Bytes ,不知道写0;
- 接收方IP :4Bytes;
- 填充数据 :6Bytes 因为物理帧最小长度为64字节,前面的42字节再加上4个CRC校验字节,还差18个字节。
3、RARP字段解析
RARP与ARP类似,主要区别是:
- 帧类型: 0x0806是ARP帧的类型值 0x8035是RARP帧的类型值;
- 操作码:0x1表示ARP请求包,0x2表示ARP应答包 0x3表示RARP请求包,0x4表示RARP应答包。
4、ARP运行实例
4.1 主机A和B地址说明
- 本机IP(主机A):192.168.0.1 (c0 a8 00 01)
- 本机MAC(主机A):00-50-56-c0-00-01
- 目标IP(主机B):192.168.0.2 (c0 a8 00 02)
- 目标MAC(主机B):00-0c-29-0b-42-7e
4.2 主机A发送数据
Ping 目标主机192.168.0.2时,本机发送的ARP数据包为:
00000000 : ff ff ff ff ff ff 00 50 56 c0 00 01 08 06 00 01
00000010 : 08 00 06 04 00 01 00 50 56 c0 00 01 c0 a8 00 01
00000020 : 00 00 00 00 00 00 c0 a8 00 02
各数据字段解释
- 以太网数据包发送目的地:ff ff ff ff ff ff(全网);
- 以太网数据包发送源:00 50 56 c0 00 01(本机);
- 以太网数据包数据包内容类型:08 06(ARP数据包);
- ARP数据包类型:00 01(Request);
- 数据内容:告诉IP为c0 a8 00 02的目标主机,本机的IP为c0 a8 00 01,MAC为 00 50 56 c0 00 01,请更新,并将你的MAC发送给我。
目标主机回应本机的ARP数据包为
00000000 : 00 50 56 c0 00 01 00 0c 29 0b 42 7e 08 06 00 01
00000010 : 08 00 06 04 00 02 00 0c 29 0b 42 7e c0 a8 00 02
00000020 : 00 50 56 c0 00 01 c0 a8 00 01
4.3 主机B返回数据
目标主机回应本机的ARP数据包为
00000000 : 00 50 56 c0 00 01 00 0c 29 0b 42 7e 08 06 00 01
00000010 : 08 00 06 04 00 02 00 0c 29 0b 42 7e c0 a8 00 02
00000020 : 00 50 56 c0 00 01 c0 a8 00 01
各数据字段解释
- 以太网数据包发送目的地:00 50 56 c0 00 01;
- 以太网数据包发送源: 00 0c 29 0b 42 7e;
- 以太网数据包数据包内容类型:08 06(ARP数据包);
- ARP数据包类型:00 02(Reply);
- 数据内容:告诉MAC为 00 50 56 c0 00 01 的主机,你的IP和MAC我已经收到,我的MAC和IP为00 0c 29 0b 42 7e 和c0 a8 00 02,请保存更新。