文章目录

  • ARP(Address Resolution Protocol):地址解析协议
    • 产生原因:
    • 功能:
    • 在以太网中,arp协议的使用:
    • ARP协议的缺陷:ARP欺骗
  • ICMP(Internet Control Message Protocol)因特网控制报文协议
    • 从ICMP的应用来了解它的具体功能:
    • ICMP原理:
    • 报文格式:
    • ICMP的报文种类:
    • ICMP的两个主要应用:

ARP(Address Resolution Protocol):地址解析协议


首先附上百度百科的arp协议总结:
https://baike.baidu.com/item/ARP/609343?fromtitle=ARP协议&fromid=1742212&fr=aladdin

本篇博客是我个人在学习网络课程时记录的笔记,与百度百科结合而写。


产生原因:

OSI模型把网络工作分为七层,IP地址在OSI模型的第三层,MAC地址在第二层,彼此不直接打交道。在通过以太网发送IP数据包时,需要先封装第三层(32位IP地址)、第二层(48位MAC地址)的报头,但由于发送时只知道目标IP地址,不知道其MAC地址,又不能跨第二、三层,所以需要使用地址解析协议。使用地址解析协议,可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址)信息,以保证通信的顺利进行。


功能:

IP地址---->MAC地址


在以太网中,arp协议的使用:

1.在以太网中,主机A广播发出ARP(1)请求,包含主机A的IP地址,MAC地址,目的主机B的IP地址;
2.通过APR协议进行地址解析,在数据链路层封装后,传入物理层;
3.在下图以太网中,由于以太网是广播的方式发送请求,则B,C,D三台主机都能收到。C,D两台主机对比数据报中的目的IP和自己的IP是否匹配,发现不匹配则丢弃该ARP数据包,B主机的IP地址与数据报中目的IP地址匹配,则B主机接受后会产生响应:相应包括B主机的IP地址和MAC地址。
4.源主机A收到相应后记录B的MAC地址,完成地址解析。

由于每次有主机发送数据时,都是采用广播的形式,所以会造成资源的浪费。而ARP Cache(高速缓存)则解决了该问题。
在所有主机上(A/B/C/D)都有ARP Cache,当有主机发送数据时,先查找缓存,如果没有目标主机的信息,则进行广播。广播时,该源主机的IP地址和MAC地址都会被存入其他主机的ARP Cache中。

!!!另外,当源主机和目的主机不在同一网络中时(不同网段),通过源主机通过ARP协议获得的是与源主机相连的路由器的MAC地址,而不是目的地址的MAC地址。

ARP协议的缺陷:ARP欺骗

ARP地址转换表是依赖于计算机中高速缓冲存储器动态更新的,而高速缓冲存储器的更新是受到更新周期的限制的,只保存最近使用的地址的映射关系表项,这使得攻击者有了可乘之机,可以在高速缓冲存储器更新表项之前修改地址转换表,实现攻击。ARP请求为广播形式发送的,网络上的主机可以自主发送ARP应答消息,并且当其他主机收到应答报文时不会检测该报文的真实性就将其记录在本地的MAC地址转换表,这样攻击者就可以向目标主机发送伪ARP应答报文,从而篡改本地的MAC地址表。 ARP欺骗可以导致目标计算机与网关通信失败,更会导致通信重定向,所有的数据都会通过攻击者的机器,因此存在极大的安全隐患。

这里是我的理解:
当源主机上没有缓存时,才会广播来获得目的主机的MAC地址,广播后该以太网内的所有主机都收到请求,就会有主机进行假冒,将非真是MAC地址返回给源主机,实现修改地址转换表,完成攻击。


ICMP(Internet Control Message Protocol)因特网控制报文协议

它属于网络层协议

TCP/IP协议簇
百度百科:ICMP


从ICMP的应用来了解它的具体功能:

1.实现网络可达性检查
2.网络时延测量
3.网络路由选择
4.网络安全排查等

在ICMP的概念介绍中,我们知道了它是用于传递控制消息的,通过这些控制消息,能告诉通信双方主机关于网络方面的许多讯息。


ICMP原理:

ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。

我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。


报文格式:

ICMP报文包含在IP数据报中,属于IP的一个用户,IP头部就在ICMP报文的前面,所以一个ICMP报文包括IP头部、ICMP头部和ICMP报文,IP头部的Protocol值为1就说明这是一个ICMP报文,ICMP头部中的类型(Type)域用于说明ICMP报文的作用及格式,此外还有一个代码(Code)域用于详细说明某种ICMP报文的类型,所有数据都在ICMP头部后面。

这里只需要理解ICMP报文是被封装到IP报文中进行传输的即可。


ICMP的报文种类:

  1. ICMP差错报告报文: IP数据报出错时,路由器或主机会发出该报文
  2. ICMP询问报文:仅发给引起问题的数据报的源站

差错控制报文又分为:
1.终点不可达
2.时间超过

3.源站抑制
4.参数问题
5.路由重定向

询问报文又分为:
回送请求和回答报文
时间戳请求和回答报文
掩码地址请求和回答报文
路由器询问和通告报文


ICMP的两个主要应用:

(1) ping 命令使用 ICMP 回送请求和应答报文在网络可达性测试中使用的分组网间探测命令 ping 能产生 ICMP 回送请求和应答报文。目的主机收到 ICMP 回送请求报文后立刻回送应答报文,若源主机能收到 ICMP 回送应答报文,则说明到达该主机的网络正常。

(2)路由分析诊断程序 tracert 使用了 ICMP时间超过报文tracert 命令主要用来显示数据包到达目的主机所经过的路径。通过执行一个 tracert 到对方主机的命令,返回数据包到达目的主机所经历的路径详细信息,并显示每个路径所消耗的时间。


                 大大的小小阳

ARP协议ICMP协议相关推荐

  1. 4.3-沛县欢乐多(DHCP,ARP,ICMP协议)

    4.3-沛县欢乐多(DHCP,ARP,ICMP协议) 开头想说的话,这篇文章介绍DHCP,ARP,ICMP,用故事的方式给你讲述一些计算机网络原理,希望能够对你有所帮助,别担心,故事很有趣的,如果哪里 ...

  2. 王道考研 计算机网络17 IP数据报 最大传送单元MTU IP地址 IPv4 子网划分 ARP协议 ICMP协议 移动IP

    TCP/IP协议栈 TCP:传输控制协议(Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议. IP是Internet Protocol( ...

  3. 计算机网络 day6 arp病毒 - ICMP协议 - ping命令 - Linux手工配置IP地址

    目录 arp协议 arp病毒\欺骗 arp病毒的运行原理 arp病毒产生的后果: 解决方法: ICMP协议 ICMP用在哪里? ICMP协议数据的封装过程 ​编辑 为什么icmp协议封装好数据后,还要 ...

  4. 计算机网络 | 网络层ARP协议ICMP协议

    目录 IP地址的概述与应用 IP地址就是互联网协议里的地址 配置主机的IP地址(Windows7) 手工配置IP地址 IP包头的格式 子网划分题目 IP路由汇总 路由概述 路由的类型 添加静态路由的步 ...

  5. 网络协议 -- ICMP协议(1) 报文格式

    互联网控制消息协议(英文:Internet Control Message Protocol,ICMP)是互联网协议族的核心协议之一.定义在RFC 792文档中. ICMP的消息大致可以分为两类:一类 ...

  6. 了解TCP协议,IP协议、ICMP协议和ARP协议(TCP报文,TCP的分成管理,TCP与UDP,TCP的三次握手四次挥手原理)

    文章目录 了解TCP/IP协议 TCP报文格式 TCP/IP 的分层管理 TCP与UDP TCP的三次握手与四次挥手 为什么要三次握手? 为什么要四次挥手? IP数据包格式 ICMP协议 ICMP协议 ...

  7. 交换机与IP数据报、ICMP协议、ARP协议

    文章目录 1 交换机 1.1 基本的架构图 1.2 交换机的工作原理 1.3 交换机以太网接口的工作模式 1.4 交换机使用命令行进行配置管理 2 IP数据报格式 3 ICMP协议 4 ARP协议 4 ...

  8. Wireshark - 【学习笔记】(Ubuntu18.04)、协议分析(IP、ARP、ICMP、DNS、UDP、TCP、DHCP、HTTP、HTTPS、FTP、Telnet)

    参考视频: Wireshark零基础入门到实战/网络抓包/流量分析必备 Wireshark的示例包 https://wiki.wireshark.org/SampleCaptures 下面很多实验的包 ...

  9. 【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )

    文章目录 一.ICMP 协议 二.ICMP 协议 简介 三.ICMP 五种差错报告报文 四.ICMP 差错报文形成 五.ICMP 差错报文 不发送 情形 六.ICMP 询问报文 七.ICMP 应用 一 ...

  10. DNS/ICMP协议/NAT技术

    本博文分享DNS(简单认识).ICMP(简单认识)和NAT技术(重点学习). DNS DNS是一整套从域名映射到IP的系统,TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序.但是IP ...

最新文章

  1. canvas绘制弯月
  2. 升级python2至python3解决依赖关系
  3. 参数调优为什么要采样_3年Java外包,内推阿里过关斩将,最后却倒在调优经验上! - Java架构师追风...
  4. v-if 表单验证_避免许多if块进行验证检查
  5. elementUI 分页组件的使用 - 踩坑篇
  6. Spark学习:spark读取HBase数据报异常java.io.NotSerializableException
  7. struts2的两个核心配置文件
  8. Visual Studio 2008 可扩展性开发(八):关于用户界面的种种(上)
  9. iOS开发模式MVVM 2分离业务逻辑
  10. Atitit 网络编程之道
  11. Vue之echarts圆饼图详解
  12. 电力拖动自动控制系统_教授为你解读“电气工程及其自动化”专业类
  13. Linux Vim 退出命令
  14. 小麦(Wheat)-玉米(Maize)-水稻(Rice) 数粒软件
  15. 《Head First Java》| 1 进入Java 的世界
  16. 三国演义网页游戏私服架设教程
  17. HardFault错误信息分析定位
  18. L1和L2简单易懂的理解
  19. 【JavaScript】时间与时间戳相互转换
  20. 打通前后端全栈开发node+vue+mongodb进阶

热门文章

  1. php 根据身份证计算年龄
  2. .NET Framework v2.0 Obsolete APIs - 与大家分享
  3. Word2Vec模型训练简洁步骤
  4. CentOS7安装显卡驱动
  5. opencontrail vrouter 中的数据流程
  6. H5抽奖小游戏万圣节抓南瓜
  7. Excel导出当前工作表为PDF文件的操作
  8. TCA9548A IIC多路扩展模块使用
  9. Android逆向之旅---Android手机端破解神器MT的内购VIP功能破解教程
  10. matlab绘制正弦波频谱图,matlab对正弦信号作FFT得到频谱图