1)ICMP协议,即:网络控制消息协议(Internet Control Message Protocol)html
2)ICMP是网络层协议,由于ICMP报文是装在IP数据报中,做为它的数据部分发出去的,如图缓存
3)ICMP协议用于报告网路差错和异常,如:网络通不通、主机是否可达、路由是否可用等服务器
4)ICMP报文有两种类型:ICMP差错报告报文和ICMP询问报文网络
1) 地址解析协议ARP的做用就是根据目的主机的IP地址来得到其物理地址,由于将IP数据报封装到MAC帧里面的时候须要知道目的地址的MAC地址app
2)ARP协议介于数据链路层和网络层之间测试
3)每一个主机都设有一个ARP高速缓存(ARP cache),这里面放着的是主机已经知道的IP地址和MAC地址的映射表,而且这个映射表是动态更新的3d
当主机A想要同本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。若是有,就在ARP高速缓存中查找器对于的硬件地址,再把这个硬件地址写入MAC帧里,而后经过局域网把MAC帧发往此硬件地址。也有可能在ARP高速缓存中查不到主机B的IP地址(主机A缓存为空,或主机B刚加入局域网),这样也就没法知道主机B的MAC地址,这时候就须要使用到ARP了,按如下步骤来得到主机B的硬件地址。htm
1)主机A的ARP进程在本局域网上广播发送一个ARP请求分组,以广播的形式,格式如图a所示blog
2)在本局域网上的全部主机上运行的ARP进程都受到了这个ARP请求分组递归
3)主机B在ARP请求分组中发现了本身的IP地址,就向A主机发送ARP响应分组,以单播的形式直接发给A,以如图b所示。同时主机B知道了A的IP地址和MAC地址,就将主机A的IP地址和MAC地址写入ARP高速缓存中。其余主机在对比IP地址以后,发现与本身的IP地址不一样,就丢掉分组
4)主机A收到主机B的ARP响应分组以后,这样就知道了主机B的MAC地址,同时把主机B的IP地址和MAC地址写入ARP高速缓存
上面所描述的状况是在同一局域网下的情景,若是主机A要和不在同一局域网下的主机B进行通讯,发送IP数据报。首先主机A将主机B的IP地址同本身的子网掩码进行比对,发现不在同一局域网内,则利用ARP请求分组,从本局域网上的路由器的IP地址来获取路由器的MAC地址,而后将剩下的工做交给路由器去作便可
1)RARP反向地址转换协议,由物理地址来得到ip地址,使只知道本身硬件地址的主机可以知道本身的 IP 地址
2)一般用在无盘工做站,则须要RARP方法来得到IP地址
1)域名系统DNS(Domain Name System),用于域名和ip地址的相互转换
2)DNS使用UDP传输(为了减小开销),端口53
1)根域名服务器:是最高层次的域名服务器,全球只有13台,根域名服务器知道全部顶级域名服务器的域名和ip地址
2)顶级域名服务器:顶级域名服务器以顶级域名来命名,负责管理在该顶级域名服务器上注册的全部二级域名,例如com顶级域名服务器管理全部以“.com”为后缀的域名
3)权限域名服务器:负责一个区的域名
4)本地域名服务器:当一个主机发出DNS查询请求时,首先就发给本地域名服务器
1)主机向本地域名服务器的查询通常都是采用递归查询
2)所谓递归查询就是:若是主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机本身进行下一步查询
1)本地域名服务器向根域名服务器的查询的迭代查询
2)迭代查询的特色:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪个域名服务器进行查询”。而后让本地服务器进行后续的查询。(而不是替本地域名服务器进行后续的查询)
3)本地域名服务器也能够采用递归查询,这取决于用户设置
假定域名为m.xyz.com的主机想知道另外一个主机y.abc.com的IP地址,下面是上图a的几个查询步骤:
一、主机先从本机的DNS缓存,Hosts文件中寻找,若是找不到,则再进行下列操做
二、主机m.abc.com先向本地域名服务器dns.xyz.com进行递归查询。
三、本地域名服务器若没有,则采用迭代查询。它先向一个根域名服务器查询。
四、根域名服务器告诉本地服务器,下一次应查询的顶级域名服务器dns.com的IP地址。
五、本地域名服务器向顶级域名服务器dns.com进行查询。
六、顶级域名服务器dns.com告诉本地域名服务器,下一步应查询的权限服务器dns.abc.com的IP地址。
七、本地域名服务器向权限域名服务器dns.abc.com进行查询。
八、权限域名服务器dns.abc.com告诉本地域名服务器,所查询的主机的IP地址。
九、本地域名服务器最后把查询结果告诉m.xyz.com。
整个查询过程共用到了8个UDP报文
1)概念:DNS劫持又称域名劫持,是指DNS客户发送的域名解析的请求被拦截了,拦截这分析请求的域名,返回一个假的域名解析结果,致使主机对该域名的访问转入到修改后的假IP,其结果就是对特定的网址不能访问或访问的是假网址
2)解决:
1)ICMP的一个重要应用就是分组网间探测PING(Packe InterNet Groper),用来测试主机之间的连通性
2)PING使用了ICMP回送请求与回送回答报文(属于ICMP询问报文)
3)PING直接使用网络层ICMP协议,没有经过运输层层的TCP或UDP
1)DNS域名解析,得到IP地址(过程见上)
2)ARP协议地址解析,得到MAC地址(过程见上)
3)主机将ICMP报文封装成IP数据报
4)主机将IP数据报封装成MAC帧
5)主机将MAC帧发送至相应路由器
6)路由器接收到ICMP报文以后,发现MAC帧的目的地址是本身,IP地址是主机想要访问的外网段IP地址,则要修改MAC帧的地址(若有必要,路由器再次进行ARP),再进行NAT,再把数据包转发出去
7)域名主机收到ICMP请求报文后,会从新构建一个ICMP应答报文,而后返回给主机
8)当主机收到域名主机发送的ICMP应答报文以后,这样就代表该主机到域名主机是连通可达的
参考资料: