搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
爱喝兽奶帝天荒
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Dockerfile 使用介绍_执行dockerfile文件
2
用Python求解线性规划问题
3
用MySQL语句为SC定义主码_珍藏的数据库SQL基础练习题答案
4
access百度翻译 get_使用百度AI技术给黑白图像上色
5
鸿蒙 DevEco Studio 3.1 Release 下载sdk报错的解决办法_deveco studioinstall task failed: toolchains 3.2.1
6
基于微信小程序的在线视频教育系统设计和实现-UniApp(代码+文档+运行成功)
7
GitHub 上优质项目整理_github好的开源项目
8
埃森哲:在生成式AI时代重新定义工作、劳动力和工作者_检测时代和生成时代的区别
9
android 虚拟设备(AVD)的创建和使用_android avd
10
HarmonyOS开发实战:跨平台自适应布局第三方组件
当前位置:
article
> 正文
ICMP报文经过路由器的转发过程及变化_icmp包路由
作者:爱喝兽奶帝天荒 | 2024-07-13 10:59:14
赞
踩
icmp包路由
ICMP经过路由器的转发过程及变化
路由器收到数据包后,报文送到数据链路层,数据链路层解封以太网帧头部,提取目的MAC地址
查看目的MAC地址是不是自己本身的MAC地址。这个时候出现两种情况,具体如下:
情况1:是本机的MAC地址,则把报文传到网络层,由网络层继续解析。
情况2:不是本机的MAC地址,则丢弃报文。
假设是情况1,目的MAC是自己的MAC,把报文送到网络层解析。
送到网络层后,网络层解析,提取目的IP地址,判断目的IP地址是不是本机的IP地址。这个时候再次出现两种情况,具体如下:
情况1:是本机IP,则把报文送到上层,有传输层进行解析。由于本次主要讲解转发流程,就不讲传输层解析的过程了。
情况2:不是本机IP,则去查路由表,匹配出接口。
假设是情况2,不是本机IP,查路由表根据路由的最长掩码匹配原则,匹配路由表,找到出接口。查路由的时候会出现四种情况,具体如下:
情况1:没有匹配路由,无法继续转发,则丢弃报文。并向源IP发送目的不可达的ICMP报文。
情况2:匹配直连路由,网络层封装目的IP和源IP,使用目的IP地址查ARP表。寻找目的MAC。
情况3:匹配非直连路由,网络层封装目的IP和源IP,使用路由表里的下一跳IP地址查ARP表。寻找下一跳IP地址的目的MAC。
情况4:匹配默认路由,网络层封装目的IP和源IP,使用路由表里的下一跳IP地址查ARP表。寻找下一跳IP地址的目的MAC。
假设匹配到路由,去ARP表,匹配目的IP对应的MAC地址。这个时候出现两种情况,具体如下:
情况1:在ARP表里匹配到了对应的MAC地址,则把匹配到的MAC封装到帧头部的目的MAC,把本机出接口的MAC封装到帧头部的源MAC里。然后发送出去。
情况2:在ARP表里没有匹配到对应的MAC地址,则发送ARP请求,寻找目的IP对应的MAC地址。
假设没有匹配到对应的MAC地址,发送ARP请求,这个时候会遇到两种情况。具体如下:
情况1:没有收到ARP响应,无法继续获取目的IP对应的MAC地址。则丢弃报文。
情况2:收到了ARP响应,首先把响应报文中的源MAC解析出来,然后把目的IP和从响应报文中获取的源MAC放到ARP表中,形成映射关系,并对这个映射关系添加老化时间。然后把MAC封装到目的MAC里,把本机出接口的MAC封装到源MAC里,然后发送出去。
以下是详细流程转发图。高清流程图链接:
IP报文经过路由器转发流程图.jpg.jpeg-互联网其他资源-CSDN下载
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/819134
推荐阅读
article
传输
协议
之
ICMP
详解_
mtu
icmp
...
ICMP
作为IP的上层
协议
在工作(报文)
ICMP
实现之MTU探索
ICMP
实现之改变路由
ICMP
实现之源点抑制
ICMP
协议
...
赞
踩
article
ICMP
是
如何
工作
的
?_
icmp
执行
过程...
ICMP
是
如何
工作
的
?与Internet 协议 (IP) 不同,
ICMP
不与传输层协议(如TCP或UDP )相关联。...
赞
踩
article
聊聊
ICMP
协议
及
ping
过程_
ping
icmp
...
ICMP
协议
是TCP/IP
协议
栈中的网络层
协议
,用于判断网络是否连通。
ping
命令和traceroute命令都是基于IC...
赞
踩
article
icmp
回复
报文
_
ARP
、
ICMP
(
报文
交互
过程
)...
观察
ARP
协议 和
ICMP
协议
ARP
请求(request)
报文
:主机请求网关的mac地址 下图是PC的Ethern...
赞
踩
article
linux
内核
协议栈
icmp
报文
收发流程_
内核
发送
icmp
接口
...
1 ICMP
报文
接收1.1
icmp
_rcv() 实现在ip层判断是
icmp
报文
之后,会调用
icmp
_rcv()来处理 ...
赞
踩
article
ICMP
:
Internet
控制
报文
协议_
icmp
应答
广域网...
1 引言2
ICMP
报文
的类型3
ICMP
地址掩请求与
应答
4
ICMP
时间戳请求与
应答
5
ICMP
端口不可达差错1 引言...
赞
踩
article
linux
内核
协议
栈
icmp
协议
概述与
数据结构
_
struct
icmp
hdr...
1 ICMP
协议
概述ICMP
协议
是网络层中一个非常重要的
协议
,其全称为InternetControlMessagePro...
赞
踩
article
LINUX
怎么
查询
icmp
模式,
Linux
icmp
学习笔记 之二
icmp
数据处理
流程
...
在分析
icmp
数据包处理
流程
之前,我有如下疑问:1、为什么要为每一个cpu创建一个仅用于发送
icmp
报文的socket呢...
赞
踩
article
Linux内核分析 - 网络[十一]:
ICMP
模块
_
nwfilter
icmp
type
...
内核版本:2.6.34
ICMP
模块
比较简单,要注意的是
icmp
的速率限制策略,向IP层传输数据ip_append_d...
赞
踩
article
关于
限制
ICMP
回显(
ICMP
Echo
Reply
)及
TTL
超时响应(
ICMP
Time
Exce...
从
ICMP
报文内容到利用ACL(Access Control List ,访问控制列表)
限制
ICMP
回显(
ICMP
Ec...
赞
踩
article
icmp
端口
_
Linux
环境中
ICMP
隧道快速
搭建
指南...
在平时的渗透测试中,我们很多时候会遇到TCP、UDP被防火墙阻断,但是
ICMP
却双向畅通的情况。我们可以通过在一台内网的...
赞
踩
相关标签
经验分享
架构
java
后端
网络
服务器
运维
网络协议
tcp/ip
icmp回复报文
icmp
icmp报文接收
icmp报文发送
ping 请求处理
报文不可达处理
internet
分布式计算
unix
tcp
工作
type
code
LINUX怎么查询icmp模式
智能路由器