【Linxu】ARP协议、DNS协议和ICMP协议

这篇文章旨介绍常用的三种协议:分别是ARP协议,DNS协议和ICMP协议
P协议
(1)ARP是地址解析协议,ARP不是一个单纯的数据链路层协议,而是一个介于数据链路层和网络层之间的协议。
(2)ARP协议的作用:
【1】ARP协议建立了主机IP地址和MAC地址的映射关系
【2】在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址
【3】数据包首先被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与主机不符,则直接丢弃
【4】因此在通讯前必须获得目的主机的硬件地址
(2)APR协议的工作流程
这里写图片描述
【1】源主机发出ARP请求,询问“IP地址是192.168.0.0.1‘的主机的硬件地址是多少’,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播)
【2】目的主机接收到广播的ARP请求发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中
【3】每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般位20分钟),如果20分钟内没有再次使用这个表项,则该表项失效,下次还要发ARP请求来获取目的主机的硬件地址
这里写图片描述
(3)ARP数据报的格式
这里写图片描述
【1】注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其他类型的网络则有可能是必要的
【2】硬件类型指链路层网络类型,1为以太网
【3】协议类型指要转换的地址类型,0x0800为IP地址
【4】硬件地址长度对于以太网地址是6字节
【5】协议地址长度对于和IP地址为4字节
【6】op字段为1表示ARP请求op字段为2代表ARP应答
二、DNS协议(域名解析协议)
(1)DNS是一整套从域名映射到IP的系统
(2)DNS背景
TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序,但是IP地址不方便记忆,于是人们发明了一种叫做主机名的东西,是一个字符串,并且使用hosts文件来描述主机和IP地址的关系
下图简单描述了DNS域名解析的过程
这里写图片描述
(1)最初,通过互联网信息中心来管理这个hosts文件的
【1】如果一个新计算机要接入网络,或者某个计算机IP变更,都需要到信息中心申请变更hosts文件
【2】其他计算机也需要定期下载更新新版本的hosts文件才能正确上网
(2)这样就太麻烦了,于是产生了DNS系统
【1】一个组织的系统管理机构,维护系统内的每个主机的IP和主机名的对应关系
【2】如果新计算机接入网络,将这个信息注册到数据库中
【3】用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索数据库,得到相应的IP地址
【4】至今,我们的计算机上仍然保留了hasts文件。在域名解析的过程中会优先查找hosts文件的内容
这里写图片描述
(3)域名简介
主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称
(4)域名使用.连接
比如www.baidu.com
【1】com :一级域名。表示这是一个企业域名,同级的还有“net”(网络提供商),“org”(非营利组织)等
【2】baidu:二级域名,公司名
【3】www:只是一种习惯用法,之前人们在使用域名时,往往命名成类似于ftp.xxx.xxx/www.xxx.xxx这样的格式,来表示主机支持的协议
(5)域名服务器
域名是分层结构,域名服务器也是对应的层级结构
这里写图片描述
【1】每个层的域名上都有自己的域名服务器,最顶层的是根域名服务器
【2】每一级域名服务器都知道下级域名服务器的IP地址
【3】为了容灾,每一级至少设置两个或以上的域名服务器
(6)域名解析过程
这里写图片描述
简单的锁过程如下:
【1】输入域名后,先查找自己主机对应的域名服务器
【2】域名服务器先查找自己的数据库中的数据库,如果没有,就像上级域名服务器进行查找,以此类推
【3】最多回溯到根域名服务器,肯定能找到这个域名的IP地址
【4】域名服务器自身也会进行一些缓存,把曾经访问过的域名和对应的IP地址缓存起来,可以加速查找过程
三、ICMP协议
(1)ICMP协议是一个网络层协议
一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输,如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因
(2)ICMP功能
ICMP主要功能包括:
【1】确认IP包是否成功到达目标地址
【2】通知在发送过程中IP被丢弃的原因
【3】ICMP也是基于IP协议工作的,但是它并不是传输层的功能,因此人们仍然把它归结为网络层协议
【4】ICMP只是搭配IPV4使用,如果IPV6的情况下,需要是用ICMPv6
这里写图片描述
(3)ICMP的报文格式
这里写图片描述
(4)ICMP大概分为两类报文:
【1】一类是通知出错原因
【2】一类是用于诊断查询
这里写图片描述

猜你喜欢

转载自blog.csdn.net/flowing_wind/article/details/80914854