三十二、ARP协议、DHCP协议、ICMP协议
文章目录
- 1、发送数据的过程
- 2、ARP协议
- 2.1 ARP协议使用过程
- 2.2 ARP协议4种典型情况
- 3、DHCP协议
- 3.1 DHCP使用过程
- 4、ICMP协议
- 4.1 ICMP差错报告报文
- 4.2 ICMP询问报文
- 5、ICMP的应用
- THE END
1、发送数据的过程
\qquad 五层网络结构数据发送的过程如下所示:
\qquad 数据发送的请求由应用层进行发起,之后在传输层将应用层需要发送的数据进行数据报的分片操作(收到最大传输单元MTU的限制),之后网络层将每一份数据报添加源主机地址IP1和目的主机地址IP3,进行数据报的初步封装;之后数据链路层将网络层封装的数据报加头-源主机的物理地址MAC1和目的主机的物理地址MAC3,加尾-FCS(帧检验序列),将数据报进行二次封装;最后由物理层将封装好的数据报进行传输。
\qquad 上述过程中,当源主机和目的主机在同一个局域网内部,则数据链路层在封装数据报的过程中,由于不知道目的主机的物理地址MAC3,所以需要借助ARP协议获取到MAC3,获取方式是通过广播ARP进行请求分组,之后目的主机采用单播ARP相应分组,返回给源主机MAC3。其中ARP高速缓存中有局域网内部的IP地址和MAC地址的映射关系。
\qquad 若源主机和目的主机不在同一个局域网范围之内,则源主机的“下一跳”将以局域网的默认网关为“目的地”,和上述叙述一样通过ARP协议获得默认网关的物理地址MAC6,之后首先将数据传送到默认网关。之后数据在路由器之间进行转发,直到数据转发到目的主机所在的局域网的路由器,之后MAC9对应的路由器会通过ARP协议获得目的主机的物理地址MAC5,之后成功将数据发送到目的主机。
2、ARP协议
\qquad 由于在实际网络的链路上传送数据时,最终必须使用MAC地址,ARP协议就是用于完成主机或路由器IP地址到MAC地址映射,即解决下一跳走哪的问题。
2.1 ARP协议使用过程
\qquad 检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一个局域网中所有主机都能收到该请求。目的主机收到请求之后就会向源主机单播衣蛾ARP相应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)。
2.2 ARP协议4种典型情况
\qquad 1) 主机A发给本网络上的主机B:用ARP找到主机B的硬件地址;
\qquad 2) 主机A发给另一个网络的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址;
\qquad 3) 路由器发给本网络的主机A:用ARP协议找到主机A的硬件地址;
\qquad 4) 路由器发给另一个网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。
3、DHCP协议
\qquad 动态主机配置协议DHCP是应用层的协议,使用客户/服务器方式,客户端和服务端通过广播的方式进行交互,基于UDP。
\qquad DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址,子网掩码,默认网关,DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址重租。
3.1 DHCP使用过程
\qquad 1) 主机广播DHCP发现报文,
\qquad 2) DHCP服务器广播DHCP提供报文
\qquad 3) 主机广播DHCP请求报文,没有被主机接受的DHCP服务器撤回刚刚提供的IP地址等配置
\qquad 4) DHCP服务器广播DHCP确认报文
4、ICMP协议
\qquad TCP/IP协议栈示意图如下所示:
\qquad ICMP的作用是为了更有效地转发IP数据报和提高交付成功的机会… …
\qquad ICMP协议支持主机或路由器:差错(或异常)报告,网络探询,通过发送特定的ICMP报文。ICMP报文的格式如下所示:
4.1 ICMP差错报告报文
\qquad 1) 终点不可达:当路由器或者主机不能交付数据报时,就向源点发送终点不可达报文;无法交付
\qquad 2) 源点抑制:当路由器或者主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点直到应当把数据报的发送速率放慢;拥塞丢数据
\qquad 3) 时间超过:当路由器收到生存时间TTL=0的数据报时,除了丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先时间内不能收到一个数据报的全部数据片时,就把已经收到的数据报片都丢弃,并向源点发送时间超过报文;TTL=0
\qquad 4)参数问题: 当路由器或者目的主机收到的数据报首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文;首部字段有问题
\qquad 5) 改变路由(重定向):当路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器-可以通过更好的路由。值得更好的路由
\qquad ICMP差错报告报文数据字段的格式如下所示:
不应发送ICMP差错报文的情况
\qquad 1) 对ICMP差错报告报文不再发送ICMP差错报告报文;
\qquad 2) 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文;
\qquad 3) 对具有组播地址的数据报都不发送ICMP差错报告报文;
\qquad 4) 对具有特殊地质(如127.0.0.0或者0.0.0.0)的数据报不发送ICMP差错报告报文
4.2 ICMP询问报文
\qquad 1) 回送请求和回答报文:主机或者路由器向特定主机发出的询问,收到此报文的主机必须给源主机或者路由器发送你ICMP回送回答报文。测试目的站是否可达以及了解其相关状态;
\qquad 2) 时间戳请求和回答报文:请某个主机或者路由器回答当前的日期和时间。用来进行时钟同步和测量时间。
5、ICMP的应用
\qquad Ping:测试两个主机之间的连通性,使用了ICMP回送请求和回答报文。
\qquad Traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。
THE END
三十二、ARP协议、DHCP协议、ICMP协议相关推荐
- 静态树表查找算法及C语言实现,数据结构算法C语言实现(三十二)--- 9.1静态查找表...
一.简述 静态查找表又分为顺序表.有序表.静态树表和索引表.以下只是算法的简单实现及测试,不涉及性能分析. 二.头文件 /** author:zhaoyu date:2016-7-12 */ #inc ...
- 虚拟机dhcp服务器怎么检验,实验十二虚拟机上DHCP服务器的配置和验证.doc
实验十二 虚拟机上DHCP服务器的配置与验证 一.实验目的 了解DHCP的基本概念和服务器的新特性 掌握DHCP服务器的安装与配置 掌握DHCP的运行方式 掌握DHCP客户机的设置 掌握ipconfi ...
- 【正点原子FPGA连载】 第三十二章基于lwip的TCP服务器性能测试实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
第三十二章基于lwip的TCP服务器性能测试实验 上一章的lwip Echo Server实验让我们对lwip有一个基本的了解,而Echo Server是基于TCP协议的.TCP协议是为了在不可靠的互 ...
- axi dma 寄存器配置_FPGA Xilinx Zynq 系列(三十二)AXI 接口
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...
- 计算机网络(三十二)网络管理
计算机网络(三十二)网络管理 1.SNMP 2.MIB 3.RMON 1.SNMP 是一款基于UDP/IP的协议 . 在TCP/IP的网络管理中可以使用SNMP(Simple Network Mana ...
- 【正点原子Linux连载】第三十二章 U-Boot启动流程详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...
- ASP 三十二条精华代码
整理收藏: ASP 三十二条精华代码 1. οncοntextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键 <table b ...
- tensorflow学习笔记(三十二):conv2d_transpose (解卷积)
tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...
- OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住 OpenCV学习笔记(三十三)——用haar特征训练自己
OpenCV学习笔记(三十一)--让demo在他人电脑跑起来 这一节的内容感觉比较土鳖.这从来就是一个老生常谈的问题.学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那 ...
- 三十二、Java集合中的ArrayList
@Author:Runsen @Date:2020/6/3 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...
最新文章
- jMeter 模拟 web 高并发请求
- 常用WebService一览表(一)
- [读书笔记] - 《深度探索C++对象模型》第5章 构造、解构、拷贝语意学
- lisp语言如何画小红点_实验四、五 用AutoCADLISP语言编程绘图
- python分割文件为小文件_Python实现将一个大文件按段落分隔为多个小文件的简单操作方法...
- PAP和CHAP认证
- 【Nginx系列】- Nginx源码复杂安装
- windows10系统精简:NTlite工具
- 读《线上幽灵:世界头号黑客米特尼克自传》 有感
- labview 编程样式_LabVIEW编程实例:一个简单通用的“关于”对话框模板实现
- 学计算机的的用87键键盘可以吗,键盘87和108键区别
- 要来了!国内安卓统一推送标准将于 今年3 月开启测试
- C语言程序设计 | 大小端
- python是哪一类型编程语言_什么是编程语言呢?编程语言有哪些种类呢?
- 2013年多益网络校园招聘笔试题
- 阿里资深软件测试工程师总结的这几点,让你轻松搞懂性能调优
- 【动画图解微积分笔记】 (一) -1.概述 (附B站视频)
- 安搭Share:中国最神奇的城市:500年出一个天子
- 基于PHP扩展的WAF实现
- 北邮软工硕士复试笔试科目