前言

IGMP协议是一个组管理协议,它帮助多播路由器创建以及更新与每一个路由接口相连的忠实成员列表(就是与该路由接口连接频率较高)。ICMP协议实际上就是差错控制协议,弥补了IP协议没有差错纠正机制以及差错报告的缺憾。ARP是一个地址映射协议,可以把一个IP地址映射为MAC地址。
IGMP协议
1、IGMP是管理组成员关系的协议
2、IGMP报文分为成员关系报告报文和成员关系查询报文。成员关系查询报文是为了查找网络中活跃的组成员而发送的报文,而成员关系报告报文是为了记录响应者在网络中的成员关系而发送的报文
3、IGMP在路由器上的应用:当路由器收到一个成员关系的查询报文后,路由器会等待接收一个多个报告,报告到达后路由器根据当前以及到达报告中的记录更新路由器的状态
4、IGMP能够为某个源点并且以某个多播组作为终点的分组做出是否转发的决定。根据IGMP协议,有三种情况IGMP协议会做出转发:
1)如果该网络中至少有一台主机希望接收这种类型的数据,会做出转发
2)如果源地址在不在过滤列表中,意味着IGMP认为网络中有主机希望接收这种类型的数据分组,所以也会转发
3)如果源地址在过滤列表中,但是源点计时器还没有超时,所以IGMP仍然会进行转发

ICMP协议
1、ICMP报文是一种差错控制协议。ICMP报文分为差错报告报文和查询报文。差错报告报文报告了路由器或者主机在处理IP数据报过程可能遇到的问题,查询报文总是成对成双出现的,主要帮助主机或者网络管理人员获取特定的信息
2、ICMP报文的首部为8字节,ICMP数据报要被封装成IP数据报才能传到下一层进行传输。所以任何一个ICMP报文都包括IP首部和数据报的前8个字节(为什么是8字节?书上说是包括了端口号和序号信息,但不知道在TCP是怎么处理的。还是继续往后看吧)
3、ICMP总是把出错信息发送给最初的数据源(可以发送其他数据源吗?答案是不能。因为在数据报中唯一可用的地址信息就是发送地址以及目的地址)
4、差错报告报文进行差错报告,差错高高报文会处理5种类型的信息:终点不可达、源点抑制、超时、参数问题和改变路由。
终点不可达:当路由器无法为一个数据找到路由或者主机无法交付一个数据的时候,会报告一个终点不可达报文
源点抑制:源点抑制报文通知源点,由于路由器或者目的主机的拥塞,数据报已被丢弃,源点必须放慢发送速度,知道拥塞缓解为止
超时:当路由器将数据报的生存时间减为0就丢弃这个数据报,并向源点发送一个超时报文;当最后的终点没有在规定的时间收到全部的分片的时候,就丢弃已收到的分片,并给源点发送一个超时报文
参数问题:当数据报的首部出现二义性的时候会给源点发送一个参数问题报文
改变路由:发送改变路由报文可以更新主机的路由表
5、查询报文主要用来进行网络诊断有回送请求与回答和时间戳请求与回答。回送请求与回答报文可以用来测试两台机器能否彼此通信。一般会使用ping命令测试两台主机的可达性。时间戳请求与回答可以确定报文的往返时间,在计算的时候可以使用下面公式计算单向时间以及往返时间:

发送时间 = 接收时间戳 - 原始时间戳
接收时间 = 分组返回时间戳 - 发送时间戳
往返时间 = 发送时间 + 接收时间

6、在以下集中情况不会产生ICMP差错报文:
1)已经能够携带ICMP报文的数据报
2)对于分片的数据报,如果不是第一个分片那么就不产生ICMP差错数据报
3)对于具有多播地址的数据报不产生ICMP报文
4)具有特殊地址的数据报不产生ICMP报文

ARP协议
1、ARP把目的主机的IP地址映射为MAC地址,这样把IP数据报封装成帧(以太网上对01串的分组定义)后才能通过物理网络,这时就需要目的主机的MAC地址,而ARP协议正是这样的作用
2、为了找到接收主机的MAC地址,发送方会给同一个网络的所有主机发送一个ARP查询分组,网络上的主机收到该ARP分组后,只有期待接收的主机才会返回一个ARP响应分组。这个分组包括发送方的物理地址以及接收方的物理地址(当然还有IP地址),这个ARP响应分组是单独发给源主机的。
3、如果接收主机与源主机不是一个网络,源主机需要查找它的路由表,找到下一个路由器的IP地址。如果源主机中没有路由表,则会交给默认路由器处理ARP查询分组,这个路由器的IP地址必须是被映射为MAC地址的逻辑地址
4、如果源主机是路由器,该路由器收到要发送不同网络的数据报后,会先检查自己的路由表,找到下一个路由器的IP地址。下一个路由器的IP就是必须被映射为MAC地址的逻辑地址
————————————————
版权声明:本文为CSDN博主「rhwayfunn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011116672/article/details/50997806

网络协议系列之四:IGMP、ICMP和ARP相关推荐

  1. 网络协议系列一 - 基本认识

    互联网的出现,彻底改变了人们的生活方式,足不出户就可以购物.聊天.看电影.买车票等. 思考:数据是如何从一个设备传递到另一个设备的? 这一切都是由网络协议来规定的.没有网络协议,就没有今天的互联网/物 ...

  2. 网络协议系列十七 - WebSocket/FTP

    WebSocket.FTP.RESTful.SMTP.IMAP.POP等协议很多人可能仅仅听说过,但没有了解过. 一.ARP/RARP/ICMP ARP(Address Resolution Prot ...

  3. 网络协议系列三 - MAC地址/IP地址/子网掩码

    MAC/IP/子网掩码在网络中非常重要,只要有网络的地方必然都会涉及这三个概念. 一.MAC 每一个网卡都有一个6字节(48bit)的MAC地址(Media Access Control). 全球唯一 ...

  4. 网络协议系列之二:HTTP(2)

    这篇文章继续对HTTP协议进行说明. 一个http事务包括客户向HTTP服务器发送请求以及服务器向客户端发送响应两个过程.根据事务的特点,这两个过程具有原子性,任何一个过程失败都会进行回滚(恢复事务之 ...

  5. 网络协议 5 - ICMP 与 ping:投石问路的侦察兵

    网络协议 5 - ICMP 与 ping:投石问路的侦察兵 原文:网络协议 5 - ICMP 与 ping:投石问路的侦察兵     日常开发中,我们经常会碰到查询网络是否畅通以及域名对应 IP 地址 ...

  6. 网络协议 9 - TCP协议(下):聪明反被聪明误

    网络协议 9 - TCP协议(下):聪明反被聪明误 原文:网络协议 9 - TCP协议(下):聪明反被聪明误 网络协议 1 - 概述 网络协议 2 - IP 是怎么来,又是怎么没的? 网络协议 3 - ...

  7. 网络协议 8 - TCP协议(上):性恶就要套路深

    网络协议 8 - TCP协议(上):性恶就要套路深 原文:网络协议 8 - TCP协议(上):性恶就要套路深 系列文章: 网络协议 1 - 概述 网络协议 2 - IP 是怎么来,又是怎么没的? 网络 ...

  8. 网络协议 3 - 从物理层到 MAC 层

        在上一篇博文中,我们见证了 IP 地址的诞生,机器一旦有了 IP,就可以在网络的环境里和其他的机器展开沟通了.     今天,我们来认识下 物理层 和 MAC 层.     日常生活中,身为 ...

  9. 网络协议 19 - RPC 协议:远在天边近在眼前

    [前五篇]系列文章传送门: 网络协议 14 - 流媒体协议:要说爱你不容易 网络协议 15 - P2P 协议:小种子大学问 网络协议 16 - DNS 协议:网络世界的地址簿 网络协议 17 - HT ...

最新文章

  1. 201403-4 无线网络
  2. 常见的数据库端口及查询方法
  3. 字节跳动最新开源!java语言程序设计进阶篇
  4. 框架前期准备篇之AutoFac常见用法总结 转载
  5. 计算机发展最新趋势素材,计算机方面论文范文素材,与关于计算机科学与技术的趋势探究相关论文网...
  6. 发票勾选平台:验证口令失败--加密模块未打开(0x23) (错误代码:35)
  7. FireMonkey v1.1的WinSoft WinRT-10.3-SEO-狼术
  8. 苹果怎么登录服务器未响应,苹果 App Store 无法登陆的原因以及解决办法
  9. 树莓派Python实现相机控制,定时与画面变化捕捉拍照
  10. 怎樣制作线段动画_教程:如何制作一个绘制线条动画
  11. 我要偷偷的学Python,然后惊呆所有人(最后一天)
  12. 身份证到期,异地换领流程记录
  13. Python字符串拼接的四种方法
  14. 电力需求侧管理及智能电力监控技术在电子设备制造行业错峰限电中的应用
  15. 楚狂人--驱动开发基础
  16. 工作量评估--专家评估法实际操作心得
  17. 使用Quantlib,通过YTM计算债券净值
  18. 安装SeisMix计算跨密度混合面
  19. 显微镜下的白细胞 捉到一群正在撒欢de小可爱,哇哇~
  20. 炖锅的蒸煮鸿蒙煮排骨煮多久能熟,排骨炖多长时间就熟了 排骨需要炖多久才会熟...

热门文章

  1. mongoDB删除某个字段(key)
  2. javsscript练习
  3. python自动化--语言基础一数据类型及类型转换
  4. Linux中查看各文件夹大小(扫盘)
  5. php+mysql 注入基本过程
  6. layer.js 使用
  7. iOS web与JS交互
  8. JMF天昏地暗之路(一)-----jmf无法检测到摄像头
  9. Learning Rate--学习率的选择(to be continued)
  10. Sigmoid 函数(To be continued)