DNS(域名解析协议)
TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序,但是IP地址不方便记忆,于是人们发明了一种叫主机名的东西,是一个字符串,并且使用hosts文件来描述主机名和IP地址的关系。
- DNS协议是将域名转换为IP地址(也可以将IP地址转换为为相应的域名地址)
- DNS是应用层协议,它是一整套从域名到IP的系统。
- DNS底层使用UDP进行解析;
- 浏览器会缓存DNS结果;
我们都知道,TCP/IP中使用的是IP地址和端口号来确定网络上某一台主机上的某一个程序,那为什么不用域名来直接进行通信呢?
因为IP地址是固定长度的,而域名是变长的,不便于计算机处理;
IP地址对于用户来说不方便记忆,但域名便于用户记忆;
总结:IP地址是面向主机的,而域名是面向用户的;
hosts文件
域名和IP的对应关系保存在一个叫hosts文件中;
最初,通过互联网信息中心来管理这个文件,如果有一个新的计算机想接入网络,或者某个计算机IP变更需要信息中心申请变更hosts文件,其他计算机也需要定期更新,才能上网。但是这样太麻烦了,就出现了DNS系统。
域名解析过程如图所示:
ARP(地址解析协议)
注意:ARP不是一个单纯的数据链路层协议,而是一个介于数据链路层和网路层之间的协议
ARP协议的概念:
在以太网设备如网卡都有自己唯一的MAC地址,他们是以MAC地址传输以太网数据报的,但是他们却识别不了IP包中的IP地址,所以要在以太网进行IP通信的时候就需要一个协议来建立IP地址于MAC地址的对应关系,以使数据包能发到一个确定的地方去,这个协议就是ARP。
ARP协议是一种解决地址问题的协议,以目标IP地址为线索,用来定位下一个应该接受数据分用的网络设备对应的MAC地址。如果主机不在同一个链路上时,可以通过ARP查找吓一跳的MAC地址,不过ARP只适用于IPv4,不能用于IPv6。
ARP协议的作用:
ARP建立了主机IP地址和MAC地址的映射关系。
- 在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址;
- 数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃;
- 因此在通讯前必须获得目的主机的硬件地址;
ARP协议的工作流程:
- 源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”, 并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播);
- 目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中;由此,可以通过ARP从IP地址获得MAC地址,实现链路的IP通信;
- 每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址
RARP
RARP是将ARP反过来,从MAC地址定位到IP地址的一种协议。假如将打印机服务器等小型嵌入式设备接入到网络时就会经常用到。
ICMP
架构IP网络时需要特别注意两点:确认网络是否正常工作,以及遇到异常时进行问题诊断。
ICMP的主要功能包括,确认IP包是否成功送达目标地址,通知在发送过程当中IP包被丢弃的具体原因,改善网络设置等。有了这些功能之后,就可以获得网络是否正常、设置是否有误以及设备有何异常等信息,从而便于进行网络上的问题诊断。
ICMP的这种通知消息会使用IP进行发送。ICMP的消息大致可以分为两类:一类是通知出错原因的错误消息,另一类是用于诊断的查询消息。
DHCP
如果逐一为每一台主机设置IP地址是非常繁琐的事情。特别是在移动使用电脑、智能终端以及平板电脑等设备时,每移动到一个新的地方,都要重新设置IP地址。于是,为了实现自动设置IP地址、统一管理IP地址分配,就有了DHCP协议。有了DHCP,计算机只要能连接到网络,就可以进行TCP/IP通信,DHCP让即插即用变得可能。DHCP在IPv4、IPv6中都可以使用。