首先我们要明白,只有IP是无法完成通信的。
DNS
为了解决IP地址不好记忆的特性,TCP/IP一开始便出现了一个叫做主机识别码的东西。可以为每台计算机赋以唯一的主机名。可以直接通过主机名来访问,为了实现这样的功能,一般会利用一个叫做hosts的数据库文件。
但是由于网络规模的不断扩大,使得这个hosts数据库文件越来越来难维护,于是便产生了DNS。在DNS系统中主机的管理机构可以对数据进行变更和设定,也就是说,它可以维护一个用来表示组织内部主机名和IP地址之间对应关系的数据库。
ARP
ARP是一种解决地址问题的协议。以目标IP地址为线索,用来定位下一个应该接受数据分包的网络设备对应的MAC地址。如果目标主机不在同一个链路上时,可以通过ARP查找下一跳路由器的MAC地址。不过ARP只适用于IPv4,不能用于IPv6。IPv6中可以用ICMPv6替代ARP发送邻居探索消息。
- 工作机制:ARP借助ARP请求与ARP响应两种类型的包确定MAC地址的。主机A为了获得主机B的MAC地址,起初要通过广播发送一个ARP请求包。包中包含了想要了解的MAC地址的IP地址。主机B对比包中的IP地址与自身的一样,便会返回一个带有自己MAC地址的ARP响应地址回去。但是如果每发送一次IP数据报都要进行一次ARP请求,显得有点浪费网络流量,于是,通常会把获取到的MAC地址缓存一段时间。
- RARP:RARP是将ARP反过来,通过MAC地址定位IP地址的一种协议,例如将打印机服务等小型嵌入式设备接入到网络时就经常会用到。
- 代理ARP:通常ARP包会被路由器隔离,但是采用代理A