热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

4.6ARP、DHCP、ICMP

4.6ARP、DHCP、ICMP由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址(MAC用于唯一标识硬件)。ARP协议:完成主机或路由器IP地址到MAC地址的映射。解决下

4.6 ARP、DHCP、ICMP

由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址(MAC用于唯一标识硬件)。

ARP协议:完成主机或路由器IP地址到MAC地址的映射。解决下一跳走哪的问题


ARP协议使用过程:



  • 检查ARP高速缓存,有对应表项则写入MAC帧

    • 没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组

    • 同一局域网中所有主机都能收到该请求。



  • 目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)

  • ARP协议是自动进行的。


主机发送IP数据报给主机B,经过了5个路由器,请问此过程总共使用了几次ARP协议?

共需6次,每一次都是下一跳的MAC


ARP协议4种典型情况:

1.主机A发给本网络上的主机B:用ARP找到主机B的硬件地址;

2.主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址;

3.路由器发给本网络的主机A:用ARP找到主机A的硬件地址;

4.路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。


DHCP协议

IP配置分类



  • 静态配置

    • 一个机房内的所有电脑的IP是固定的

    • 有其特定的子网掩码,默认网关



  • 动态配置

    • 来教室上课的学生的手机的IP地址是在动态改变的。

    • 这里就需要用到DHCP协议




动态主机配置协议DHCP



  • 应用层协议,使用客户/服务器方式,

  • 客户端和服务端通过广播方式进行交互,基于UDP

  • 提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址

  • 允许地址重用,支持移动用户加入网络,支持在用地址续租


过程



  • 1.主机广播DHCP发现报文

    • “有没有DHCP服务器呀?”——试图找到网络中的服务器,服务器获得一个IP地址。



  • 2.DHCP服务器广播DHCP提供报文

    • “有!”“有!”“有!”——服务器拟分配给主机一个IP地址及相关配置,先到先得。



  • 3.主机广播DHCP请求报文

    • “我用你给我的IP地址啦?”——主机向服务器请求提供IP地址。



  • 4.DHCP服务器广播DHCP确认报文

    • “用吧!”——正式将IP地址分配给主机.




ICMP协议

网际控制报文协议ICMP

为了更有效地转发IP数据报和提高交付成功的机会


类型

支持主机或路由器:

差错报告、网络探寻时——发送特定的ICMP报文:ICMP差错报文、ICMP询问报文


ICMP差错报告报文(5种)



  • 1.终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文。 无法交付

  • 【2.源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。 拥塞丢数据】(貌似已弃用)

  • 3.时间超过:当路由器收到生存时间TTL=0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当 终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发 送时间超过报文。 TTL=0

  • 4.参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发 送参数问题报文。 首部字段有问题

  • 5.改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器 (可通过更好的路由)。值得更好的路由


不应发送ICMP差错报文的情况

1.对ICMP差错报告报文不再发送ICMP差错报告报文。

2.对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。

3.对具有组播地址的数据报都不发送ICMP差错报告报文。

4.对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。


ICMP询问报文

1.回送请求和回答报文 主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。测试目的站是否可达以及了解其相关状态。

2.时间戳请求和回答报文 请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间。

3.掩码地址请求和回答报文 【废】

4.路由器询问和通告报文【废】


ICMP的应用



  • PING 测试两个主机之间的连通性,使用了ICMP回送请求和回答报文

  • Traceroute 跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文

“朝着一个既定的方向去努力,就算没有天赋,在时间的积累下应该也能稍稍有点成就吧。”



推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
author-avatar
Annie千寻_535
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有