我们要访问一个网站,通常是在游览器里输入这个网站的网址,然后回车,这个时候,
DNS
服务器会自动把它解析成
IP
地址,实际上我们是通过
IP
来访问网站的,网址只不过是助记符罢了。那么在局域网中,以太网设备并不认识
IP
地址,所以还要将
IP
地址转换成
MAC
地址,
ARP
(
Address Resolution Protocol
)就是进行这种转换的协议。
因特网是通过
TCP/IP
进行信息交换的,所以要上网,必须安装
TCP/IP
协议,在每台安装了此协议的电脑里,都有一个
ARP
缓存表,表里的
IP
地址和
MAC
地址是一一对应的:
IP
地址
|
MAC
地址
|
10.6.13
.1
|
00-00-00-00-01
|
10.6.13
.2
|
00-00-00-00-02
|
10.6.13
.3
|
00-00-00-00-03
|
……
|
……
|
当10.6.13.2要向10.6.13.1发送信息时,首先在ARP缓存表里查找是否有10.6.13.1的MAC地址,如果有,就直接进行通信,如果没有,就要在网络上发送一个广播信息,询问10.6.13.1的MAC地址,这时,其它电脑并不响应询问,只有10.6.13.1响应,它把自己的MAC地址发送给10.6.13.2,这样,10.6.13.2就知道10.6.13.1的MAC地址了,它们之间就可以进行通信了,同时,10.6.13.2也更新了自己的ARP缓存表,下次通信时就可以直接从中取出10.6.13.1的MAC地址进行通信了。ARP缓存表还采用了老化机制,在一段时间里如果某一行没有使用,就会被删除,这样就大大减小了表的长度,加快了查询速度。
那么什么又是网关呢?
顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。
按照不同的分类标准,网关也有很多种。TCP/IP协议里的网关是最常用的,在这里我们所讲的“网关”均指TCP/IP协议下的网关。
那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发数据包的过程也是如此。
所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。
现在我们来实际操作一下
点击“开始”-“运行”-输入cmd,回车
在命令提示符下输入arp –a
![](https://p-blog.csdn.net/images/p_blog_csdn_net/msccao/8fba7f23e391465ab4e392ad1b6d1d41.jpg)
如上图, 192.168.1.1 的物理地址( MAC 地址)是 00-aa-00-62-c6-09 , type 是 dynamic (这是我绑定后截的图,所以是 static )。记下它的 MAC ,然后输入 arp –s 192.168.1.1 00-aa-00-62-c6-09 ,这样就在你的 ARP 缓存表里添加了一个 192.168.1.1 到 00-aa-00-62-c6-09 的对应关系。
1
在命令提示符中输入"arp -a" 这时有可能得到很多IP和它的MAC,但注意了,我们只想得到网关MAC(一般网关是当前网段最开始的那个IP,比如我通过DHCP得到的IP是10.6.13.6,那么网关就是10.6.13.1)
2 输入"arp -s 网关IP 网关MAC"
3 输入"exit"退出
4 搞定
---------------------
提示:
Arp –d
命令还可以删除一个对应关系。