ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会把初始数据包向它的目的地转发。
ICMP重定向抓包分析
ICMP-Wiresharek抓包-PC端抓包
1.主机A发送ARPbroadcast报文,判断目标地址非本端网络,广播寻找网关;
2.主机A收到ARP报文关于网关的MAC地址;
3.主机A发送ICMP目的IP地址为服务器A,目的MAC为RTB网关MAC地址;
4.RTB网关路由器,查看路由表后,发现是通过RTA可达,发送ARP广播,查看同网段的RTA的目的MAC地址;
5.RTB网关路由器发送ICMPRedirect报文,告知主机A,你的ICMP报文发送到网关RTA10.0.0.200,MAC地址

6.主机A发送ICMP报文,目标IP为ServerIP,目标MAC为RTA的MAC地址。
需要路由器向源发送ICMP重定向的情况是:
1)源将数据报发送给路由器的入端口(R3-》R1)和路由器发送数据报的出端口(R1-》R2)必须相等
2)数据报的源IP和自己转发时的下一跳IP地址是同网段的(R3,R1)
整合自:博客园、CSDN、百度百科
编辑:jq
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
路由器
+关注
关注
22文章
3931浏览量
120116 -
ICMP
+关注
关注
0文章
52浏览量
15629 -
重定向
+关注
关注
0文章
9浏览量
7604
发布评论请先 登录
相关推荐
热点推荐
实现printf函数的重定向
目录重定向函数属性设置重定向函数在配置好串口之后需要在相关文件中添加以下函数以实现printf函数的重定向//注意添加头文件#include "stdio.h"#ifdef
发表于 08-24 07:09
重定向printf() 函数
,结果是什么现象都没有。要想使用这个函数,常规方法是重定向 printf() 函数,结合串口来打印到串口助手上位机。这里的重定向就非常复杂了,你需要懂 printf() 函数内部实现机制。。。。。(参...
发表于 01-11 07:01
DNS 重定向的缺陷
DNS 重定向的缺陷
这一种路由解决方案,由于充分利用了现有的网络结构,结构简单,因而被人们认为是一种有效的技术,是现阶段CDN 应用中主
发表于 03-25 10:25
•2526次阅读
实现重定向printf()和scanf() 函数案例分析
要想printf()和scanf() 函数工作,我们需要把printf()和scanf() 重新定向到串口中。重定向是指用户可以自己重写C 的库函数,当连接器检查到用户编写了与C 库函数相同
发表于 06-23 08:26
•1w次阅读
痞子衡嵌入式:MCUXpresso IDE下将关键函数重定向到RAM中执行的几种方法
重定向到RAM中执行的三种方法》,有读者在文章下面留言,希望也讲一讲 MCUXpresso IDE 下函数重定向到 RAM 中执行的方法。我们知道函数重定向的实现需要借助 IDE 中链
发表于 12-06 19:36
•9次下载
STM32串口的介绍与使用(原理、结构体、发送字符串、printf函数重定向)
串口相关知识1.定义2.通信概念3.USART简介串口的结构体串口发送字符(STM32发送到上位机)串口发送字符串重定向printf
发表于 12-24 19:08
•20次下载
Keil下使用STlink重定向printf的配置
Keil下使用STlink重定向printf的配置1. printf 重定向Keil默认下使用Micro LIB库,该库调用 fputs 实现 printf,所以需要重新定义fputs
发表于 12-27 18:43
•18次下载
Linux I/O重定向详解
Linux I/O重定向可以定义为,更改从命令读取输入到命令发送输出的方式。你可以重定向命令的输入和输出。对于重定向符号,可以是 或者 | 。
ICMP重定向抓包分析 什么情况下路由器要向源发送ICMP重定向
评论