单凭IP无法完成通信
我们了解到网络通信中如何利用IP让数据包最终到达目标主机。然而我们也都明白,在我们平时上网与别的主机进行通信的时候却几乎很少用到IP。比如,我们用WEB浏览网页,从来都是输入www.xxx.com或者www.xxx.org什么的(xxx代表某个名称)。那么,互联网是用的什么技术将这些域名转换为IP的呢?还有,我们都知道在数据链路层都是也是不使用IP地址的,在以太网的情况下只使用MAC地址传输数据包。那么MAC地址与IP地址又是通过什么技术相互转换的呢?种种问题表明,单凭IP是无法完成通信的。IP必须有辅助它的相关技术才能正常的使用。我这里只简单的总结一下IP的相关技术。
DNS
DNS是Domain Name System的简称。也就是域名系统。由于IP地址不便于用户的记忆,所以将这些数字代码转换为一个便于记忆的名称。以我们常用的www.google.com为例,google就是域名,后面的com代表的是它是属于商业公司的网站,www是主机名,WEB浏览时一般是www。类似于com,还有org,gov,edu等。分别代表公益组织、政府、学校的网站。
域名服务器也就是管理域名的主机和相应的软件,现在都是分层进行管理的。它可以管理所在分层的域的相关信息。
ARP
简单来说,DNS负责将域名转换为IP。ARP是负责将IP转换为MAC地址。ARP是Address Resolution Protocol的简称。
为什么有了IP还需要将IP转换为MAC地址呢?原因是在数据链路层实际进行通信使用的是MAC地址。
ARP是一种解决地址问题的协议,以目标IP地址为线索,用来定位下一个应该接收数据分包的网络设备对应的MAC地址。如果目标主机不在同一个链路上,可以通过ARP查找下一跳路由器的MAC地址。不过ARP只适用于IPv4,不能用于IPv6。
ICMP
ICMP是用于辅助IP的。用于确认网络是否正常工作,以及在遇到异常时进行问题诊断。
在IPv4中,ICMP时用于辅助IP的,也就是说,即使没有ICMP,仍然可以实现IP通信。但在IPv6中,ICMP是必不可少的,没有它,就无法实现IP通信。尤其是在IPv6中,从IP地址定位MAC地址的协议从ARP转为ICMP的邻居探索消息。
DHCP
如果逐一为每一台主机设置IP地址会是非常繁琐的事情。特别是在移动使用笔记本电脑、智能终端以及平板电脑等设备时,每移动到一个新的地方,都要重新设置IP地址。
为了实现自动设置IP地址、统一管理IP地址分配,就产生了DHCP协议。有了DHCP,计算机只要连接到网络,就可以进行TCP/IP通信。也就是说,DHCP让即插即用变得可能。而DHCP不仅在IPv4中,在IPv6中也可以使用。
NAT
NAT是Network Address Transaction。是用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的技术。NAT实际上是为正在面临地址枯竭的IPv4而开发的技术。不过,在IPv6中为了提高网络安全也在使用NAT,在IPv4和IPv6之间的相互通信当中常常使用NAT-PT。