首页 > 代码库 > 对TCP/IP协议的一些看法(2):ARP协议

对TCP/IP协议的一些看法(2):ARP协议

上一讲主要介绍了下TCP/IP的总体概述,由于是随笔,可能写的不是很有条理,也只是想到什么写下什么,后期可能还会进行补充。

今天主要讲下我对网络层的ARP协议的一些认识。ARP的主要功能是提供IP地址到物理地址(MAC地址)的一个动态映射。我们知道两台计算机之间要进行数据的传输,最终还是在链路层通过以太网报文进行发送的,所以发送方必须知道接收方的地址,即物理地址。但一般来说在IP层传下来的报文中只有IP地址,因此在链路层通过ARP协议进行IP地址到物理地址的转换。这个转换是自动完成的,不需要用户去实现。

具体的实现过程如下:

1.发送方向网内的所有计算机发送ARP请求(进行广播),里面包括目标IP地址,源IP地址和源物理地址,意思是说你们谁的IP地址是这个;

2.若接收方和发送方在同一网段内,则收到ARP请求后先存储发送方的IP和物理地址,之后在ARP应答报文中填充自己的物理地址后返回给发送方;其余计算机不进行响应;

3.若两者不在同一网段内,可能要通过路由器进行转发;路由器的知识在后面说明;

4.发送方收到ARP应答后即可将以太网报文发给接收方。

 

另外还有几点需要注意:

1.所有计算机都包含一个ARP高速缓存,用于减少查询的时间;一般缓存时间在20分钟

2.关于ARP的指令包括arp -a(列出本地的arp缓存)和arp -d(删除缓存,需要高权限才能操作)

3.ARP采取广播查询,单播回应

4.最后需要说明的一点是,有些人说ARP属于网络层,有些说是链路层。应该可以这么理解,在OSI模型中,ARP属于链路层,在TCP/IP中,属于网络层

 

对TCP/IP协议的一些看法(2):ARP协议