计算机网络---ARP、DHCP与ICMP

news2025/8/2 20:30:06

(一)IP 地址与硬件地址


       IP地址是网络层使用的地址,它是分层次等级的。硬件地址是数据链路层使用的地址MAC地址),它是平面式的。在网络层及网络层之上使用IP地址,IP地址放在IP数据报的首部,而MAC地址放在 MAC 帧的首部。通过数据封装,把IP数据报分组封装为MAC帧后,数据链路层看不见数据报分组中的IP地址。
        由于路由器的隔离,IP网络中无法通过广播MAC地址来完成跨网络的寻址,因此在网络层只使用IP地址来完成寻址。寻址时,每个路由器依据其路由表(依靠路由协议生成)选择到目标网络(即主机号全为0的网络地址)需要转发到的下一跳(路由器的物理端口号或下一网络地址),而 IP 分组通过多次路由转发到达目标网络后,改为在目标LAN 中通过数据链路层的MAC 地址以广播方式寻址。这样可以提高路由选择的效率。

  • 在IP层抽象的互联网上只能看到IP数据报。 

  •  虽然在 IP数据报首部中有源 IP地址,但路由器只根据目的IP地址进行转发。

  •  在局域网的链路层,只能看见MAC帧。IP数据报被封装在 MAC帧中,通过路由器转发IP分组间,让IP分组在每个网络中都被路由器解封装和重新封装,其 MAC帧首部中的源地址和目的地址会不断改变。这也决定了无法使用MAC地址跨网络通信。

  • 尽管互联在一起的网络的硬件地址体系各不相同,但IP层抽象的互联网却屏蔽了下层这些复杂的细节。只要我们在网络层上讨论问题,就能够使用统一的、抽象的IP地址研究主机与主机或路由器之间的通信。

     注意:路由器由于互联多个网络,因此它不仅有多个IP地址,也有多个硬件地址。

(二) ARP(地址解析协议)

        无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成 IP 地址到 MAC 地址的映射,这就是地址解析协议(ARP)。每台主机都设有一个ARP高速缓存,用来存放本局域网上各主机和路由器的IP地址到 MAC 地址的映射表,称 ARP 表。使用ARP来动态维护此ARP表。
       ARP工作在网络层,其工作原理如下:主机A欲向本局域网上的某台主机B发送IP数据报时,先在其 ARP 高速缓存中查看有无主机 B的 IP地址如果有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。如果没有,那么就通过使用目的MAC 地址为 FF-FF-FF-FF-FF-FF 的帧来封装并广播ARP请求分组(广播发送),使同一个局域网里的所有主机都收到此ARP请求。主机B收到该ARP请求后,向主机A发出ARP 响应分组(单播发送),分组中包含主机B的IP与 MAC 地址的映射关系,主机A收到ARP响应分组后就将此映射写入ARP缓存,然后按查询到的硬件地址发送MAC帧。ARP由于“看到了”IP地址,所以它工作在网络层,而NAT 路由器由于“看到了”端口,所以它工作在传输层。 
    注意:ARP 用于解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做,尽管ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址。
   使用ARP的四种典型情况总结如下:

①发送方是主机(如H1),要把IP数据报发送到本网络上的另一台主机(如H2)。这时H1在网1用ARP找到目的主机H2的硬件地址。
 ②发送方是主机(如H1),要把IP数据报发送到另一个网络上的一台主机(如H3)。这时H1用ARP找到与网1连接的路由器R1的硬件地址,剩下的工作由R1来完成。
③发送方是路由器(如R1),要把IP数据报转发到与R1连接的网络(网2)上的一台主机(如H3)。这时R1在网2用ARP找到目的主机H3的硬件地址。
 ④发送方是路由器(如R1),要把IP数据报转发到网3上的一台主机(如H4)。这时 R1在网2用ARP找到与网2连接的路由器R2的硬件地址,剩下的工作由R2来完成。
        从IP 地址到硬件地址的解析是自动进行的,主机的用户并不知道这种地址解析过程。只要主机或路由器和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP就会自动地将这个IP地址解析为数据链路层所需要的硬件地址。


(三)  动态主机配置协议(DHCP)

由来:

主机如何获得IP地址?


       动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)常用于给主机动态地分配IP 地址,它提供了即插即用的联网机制,这种机制允许一台计算机加入新的网络和获取 IP 地址而不用手工参与。DHCP是应用层协议,它是基于UDP的。
       DHCP 的工作原理如下:使用客户/服务器模式。需要IP地址的主机在启动时就向 DHCP 服务器广播发送发现报文,这时该主机就成为DHCP客户。本地网络上所有主机都能收到此广播报文,但只有DHCP服务器才回答此广播报文。DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP地址池中取一个地址分配给该计算机。DHCP 服务器的回答报文称为提供报文。
       DHCP 服务器和 DHCP 客户端的交换过程如下:
①DHCP客户机广播“DHCP发现”消息,试图找到网络中的DHCP服务器,以便从DHCP服务器获得一个IP 地址。源地址为0.0.0.0,目的地址为255.255.255.255。
②DHCP服务器收到“DHCP发现”消息后,广播“DHCP提供”消息,其中包括提供给DHCP 客户机的 IP 地址。源地址为 DHCP 服务器地址,目的地址为255.255.255.255。
③DHCP 客户机收到“DHCP 提供”消息,如果接受该 IP 地址,那么就广播“DHCP 请求”消息向DHCP 服务器请求提供 IP 地址。源地址为 0.0.0.0,目的地址为 255.255.255.255。

④DHCP 服务器广播“DHCP 确认”消息,将IP地址分配给 DHCP 客户机。源地址为 DHCP服务地址,目的地址为255.255.255.255。
       DHCP允许网络上配置多台DHCP服务器,当DHCP客户机发出“DHCP发现”消息时,有可能收到多个应答消息。这时,DHCP客户机只会挑选其中的一个,通常挑选最先到达的。
       DHCP 服务器分配给 DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限的时间内使用这个分配到的IP地址。DHCP称这段时间为租用期。租用期的数值应由DHCP服务器自己决定,DHCP客户也可在自己发送的报文中提到对租用期的要求。
      DHCP的客户端和服务器端需要通过广播方式来进行交互,原因是在DHCP执行初期,客户端不知道服务器端的IP地址,而在执行中间,客户端并未被分配IP地址,从而导致两者之间的通信必须采用广播的方式。采用UDP而不采用TCP的原因也很明显:TCP需要建立连接,如果连对方的IP地址都不知道,那么更不可能通过双方的套接字建立连接。
       DHCP是应用层协议,因为它是通过客户/服务器模式工作的,DHCP客户端向DHCP服务器请求服务,而其他层次的协议是没有这两种工作方式的。

(四) 网际控制报文协议(ICMP)


      为了提高 IP 数据报交付成功的机会,在网络层使用了网际控制报文协议ICMP(Internet 

Control Message Protocol) 来让主机或路由器报告差错和异常情况。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。ICMP 是IP层协议。
       ICMP报文的种类有两种,即ICMP差错报告报文ICMP询问报文
       ICMP 差错报告报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情
况。共有以下5种类型:
 ①终点不可达。当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。
 ②源点抑制。当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
时间超过。当路由器收到生存时间(TTL)为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
参数问题。当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
改变路由(重定向)。路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。

不应发送ICMP差错报告报文的几种情况如下:
1)对ICMP 差错报告报文不再发送ICMP差错报告报文。
2)对第一个分片的数据报片的所有后续数据报片都不发送ICMP 差错报告报文。
3)对具有组播地址的数据报都不发送ICMP差错报告报文。
4)对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送ICMP 差错报告报文。


       ICMP询问报文有4种类型回送请求和回答报文时间戳请求和回答报文地址掩码请求和回答报文路由器询问和通告报文,最常用的是前两类。
      ICMP的两个常见应用是分组网间探测PING(用来测试两台主机之间的连通性)和Traceroute (UNIX中的名字,在 Windows 中是Tracert,可以用来跟踪分组经过的路由)。其中PING使用了ICMP回送请求和回答报文,Traceroute(Tracert)使用了ICMP时间超过报文。
    注意:PING 工作在应用层,它直接使用网络层的 ICMP,而未使用传输层的 TCP 或 UDP。
Traceroute/Tracert 工作在网络层。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

并肩刘德华,对战周杰伦,腾格尔老师线上演唱会即将拉开帷幕

在刚刚结束的第三十五届金鸡奖上面,著名爱国艺人刘德华,又一次出现在大众的视野当中。来自香港的天王刘德华,是一个著名的音乐人和演员,他拳拳的爱国之情,也感动了无数的粉丝。 刘德华作为中国华语乐坛的中坚力量&…

22071班(11月18日)

1.在串口工具进行输入: echo 1 > /dev/myled0 ---->led1灯点亮 echo 0 > /dev/myled0 ---->led1灯熄灭 echo 1 > /dev/myled1 ---->led1灯点亮 echo 0 > /dev/myled1 ---->led1灯熄灭 echo 1 > /dev/myled2 ----…

【附源码】计算机毕业设计JAVA校园跑腿平台

【附源码】计算机毕业设计JAVA校园跑腿平台 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

什么是PaaS平台

PaaS平台概述 PaaS平台通常是基于IaaS平台构建的,PaaS平台和IaaS平台最大的差别是需求即服务。所有的管理都是以服务为粒度的,在IaaS以资源管理为中心的平台上提供了更高层次的抽象。 PaaS的本质 (1)运维自动化,故障…

统计聚类法的基本步骤:

统计聚类法的基本步骤: 1>形成数据框 2>计算距离阵 计算n个样品两两间的距离D。 3>进行系统聚类 (I)构造n个类,每个类只包含一个样品; (2)合并距离最近的两类为一新类; (3)计算新类与当前各类的距离,若类个数为1,…

观测云产品更新|Pipeline 使用体验优化;支持写入用户的自定义事件;自定义查看器支持选择更多类型的数据等

观测云更新 Pipeline 使用体验优化 Pipeline 支持过滤条件配置多选 支持将任意一个 Pipeline 脚本设置为“默认 Pipeline 脚本“,若当前数据类型在匹配 Pipeline 处理的时候,未匹配到其他的 Pipeline 脚本,则数据会按照默认 Pipeline 脚本的…

vs2017编译的64位libssh2库

需求:使用sftp上传下载文件 环境:windows vs2017 参考 链接: link 链接: link 编译 环境准备 libssh2依赖于openssl和zlib,所以需要有所以需要先编译:openssl和zlib才行。openssl和zlib。openssl和zlib我是下载人家编译好的…

【MySQL基础】数据库系统之关系型数据库与非关系型数据库

目录 一、数据库系统 1. 数据库 2. 数据库应用 3. 数据库管理系统(数据库软件) 3.1关系型数据库【RDBMS】 3.2非关系型数据库【NoSQL】 4. SQL和数据库管理系统的关系 5. 关系型数据库管理系统的组成 💟 创作不易,不妨点…

DIY CY7C68013A模块为逻辑分析仪

DIY CY7C68013A模块为逻辑分析仪摘要工具软件步骤参考资料:摘要 将淘宝购买的CY7C68013A模块修改为8通道逻辑分析仪。 购买的CY7C68013A模块如下: 工具软件 Zadig:用于安装逻辑分析仪驱动。 PulseView:Sigrok逻辑分析仪应用软…

Python面向对象2-继承-

文章目录目标一. 继承的概念二. 单继承三. 多继承 [python又支持多继承了]四. 子类重写父类同名方法和属性 #TODO目标 继承的概念单继承多继承子类重写父类的同名属性和方法子类调用父类的同名属性和方法多层继承super()私有属性和私有方法 一. 继承的概念 生活中的继承&…

实验(三):单片机I/O口实验-模拟开关灯

一、实验目的与任务 实验目的: 1.掌握单片机I/O口输入输出使用; 2.掌握单片机I/O口位操作的编程。 任务: 1.根据要求编写程序,并写出原理性注释; 2. 检查程序运行的结果,分析一下是…

VLAN和VLAN间路由

VLAN和VLAN间路由一 交换机二 vlan2.1 华为交换机的特性2.2 access接口2.2.1 在华为交换机上配置access接口2.2.2 access接口接收到报文的处理流程(打vlan tag)2.2.3 access接口发送报文的处理流程(剥离\弹出vlan tag)![在这里插入…

【仿牛客网笔记】项目进阶,构建安全高效的企业服务——权限控制

引入依赖 将登录检查拦截器删除掉 授权 首先显示路径 除了这些请求,其他的请求统统允许。 当权限不够处理的时候 返回XML是异步请求 添加denied的路径 获取用户权限的方法 将结果存入到集合中,实例化一个集合 获得用户权限,并把…

java框架学习笔记——SpringMVC

SpringMVC1. SpringMVC简介1.1 什么是MVC1.2 Spring MVC1.3 Spring MVC 的常用组件2. Hello SPring MVC2.1 基础配置2.2 总结3. RequestMapping注解3.1 功能3.2 位置3.3 value属性3.4 method属性3.5 params属性3.6 headers属性3.7 SpringMVC支持ant风格的路径3.8 SpringMVC支持…

数据中心网络方案设计

大家好,我是技福的小咖老师。 云计算、大数据、人工智能等技术的快速发展,对承载数据流量的数据中心网络提出了更高的要求,高吞吐量、高可靠性、低时延、适应服务器虚拟化等都是业务对数据中心网络提出的要求。为了满足业务对网络的要求&…

若依 弹出复选框表格

需求: 工资表用户应该可以弹框选择(弹窗选择用户表的id) 最后效果差不多这样: 步骤: 1.首先,先看我们需求啊, 工资表用户应该可以弹框选择 通过需求确认: 与这个需求关联的表有…

APS自动排产-AP工厂高级计划

安达发AP主要解决的问题: 客户交货需求:将销售订单、销售预测,同一转换为客户交货需求。生产净需求:考虑客户交货需求、当前库存、采购在途、生产在制、生产提前期、生产周期等,扣库存、展 BOM,最终产生产…

你知道数字化表单在防疫中的运用有哪些吗?

说到信息登记,很多人第一印象就是纸质化表格。但是随着科技发展,纸质化登记模式早已被out了。相比传统的纸质表格登记信息,现在普及的数字化表单登记模式有着更多的优势,例如:成本低、不宜丢失、打破了时间与地点限制&…

EasyCode的Mybatis终极版模板

EasyCode的Mybatis终极版距离我第一次上手EasyCode已经有一年的时间提醒一下,看这篇文章,如果你已经有EasyCode使用基础,只是来拿一下模板,可以直接看,如果你同时想知道知道到底怎么用easy code,请先看[Eas…

RabbitMQ初步到精通-第四章-RabbitMQ工作模式-Routing

第四章-RabbitMQ工作模式-Routing 1.模式介绍 1.1 模式 路由模式-继续还是和Exchange打交道,上节提到的Exchange类型为Fanout,此次声明的类型为direct 与默认Exchange一致。但还有最核心的一点,上节未使用Routing key,此次模式中…