鸟哥 Linux私房菜 学习笔记
ARP:Address Resolution Protocol 地址解析协议
网络应用被抽象成OSI七层模型。
第一层:物理层
第二层:数据链路层
第三层:网络层
第四层:传输层
第五层:会话层
第六层:表示层
第七层:应用层
网络上数据的传输主要由数据链路层、网络层和传输层定义。
数据链路层(Data-Link Layer),与MAC(Media Access Control,媒体访问控制层)帧密切相关,在这层中制定了Frame的格式以及通过网络的方式,包括帧的数据格式、错误控制、流量控制、检查数据传输错误的方法等,都在这里控制。
网络层(Network Layer),IP(Internet Protocol)就是在这层中定义,同时也定义出计算机之间的连接建立、终止、维持、数据包(packet)的传输路径选择等,因此这个层次当中最重要的除了IP之外,就是数据包能否到达目的地的路由(route)概念了。
传输层(Transport Layer),这个分层定义了发送端与接收端的连接技术(如TCP技术),同时包括该技术的数据包格式、数据包的传送、流程的控制、传输过程的侦测检查与复原重新传送等,以确保各个信息数据包可以正确无误地到达目的端。
在这里,我们仅关注与数据传输有关上面三层协议。
网络应用程序往往将数据封装成TCP或者UDP格式的数据包(package),它要在网络上传播,需要一层一层,至上而下进行再封装。
比如,TCP数据包会封装成IP包,IP包记录记录了源地址和目标地址。然后,IP包又封装成MAC帧包中,这个包就记录了同一区域内传递包的网卡卡号。MAC帧无需再封装了,它是网络中传递数据的最小单位。
IP与MAC需要有一个相互解析的功能,它通过ARP来实现。
ARP是如何工作的?
当我们的主机想要找出目标IP时,就会对整个局域网进行广播数据包的传送,这个广播包可以对所有局域网络内的计算机要求回报它的IP与MAC,当目标IP看到这个广播数据包时,就会响应您主机相关的MAC信息,如果非目标主机接到这个数据包,就会主动忽略。如此一来,您就可以取得目标主机的MAC了。而这个目标主机的MAC会被记录到您的主机内的ARP table(ARP table在内存中)。注意,ARP的作用范围仅在局域网内部。
ARP命令的使用方法?
ARP -[nd] hostname
参数:
-n #将主机名称以IP的形态显示
-d #将hostname的hardwareaddress由ARP table当中删除掉
-s #设置某个IP或hostname的MAC到ARP table中