HCIA笔记2--ARP+ICMP+VRP基础
1. ARP
ARP: 地址解析协议(address resolve protocol)。
网络数据包在通信的时候一般是使用 I P IP IP地址进行通信。
但是在封装数据链路层的时候是需要目标 m a c mac mac地址的。
而 A R P ARP ARP协议实现的功能就是根据 I P IP IP地址来获得 m a c mac mac地址。
1.1 arp包格式
1.2 mac查找流程
每个主机都会有一张 m a c mac mac地址表;它存储的是 I P : m a c IP:mac IP:mac表项 。
arp -a
可以进行查看。
- 在 m a c mac mac表中查找是否有相应的 i p : m a c ip:mac ip:mac表项,若有则使用用该表项中对应的 m a c mac mac封装数据帧。
- 若 m a c mac mac表中没有找到对应的 i p : m a c ip:mac ip:mac表项,则主机会发
arp request
广播请求。即arp request
请求中的目标mac
为ff-ff-ff-ff-ff-ff
。 - 发到
arp request
的主机比较自己的IP
地址和包中的DIP
, 若不同则丢弃该包。 - 若本机
IP
与arp request
中的DIP
相同,则会发加一个单播的arp reply
包给原来请求的主机。
1.3 免费arp
每次设置本机的ip
地址会,会广播一条DIP
为自己的arp request
报文。即这条报文的sip = dip
。
如果无人回复这条报文,说明这个ip
是没有人在使用的。否则就说明了在这个局域网里面存在ip冲突
。
2. ICMP
ICMP: internet control message protocol
用于传递差错、控制、查询信息的协议。
2.1 icmp包格式
详见rfc-792
2.2 应用
-
ping
命令
ping -l 200
设置包大小 -
tracert
命令
初始时将ttl
值设置为1
, 在每次收到响应后,将ttl
值增加1
, 直到最后到达或者超时。
2.3局域网内ping的流程
主机A ping IP_B
-
主机A查自己的arp缓存表,看表中是否有主机B的IP: IP_B;
如果有,则获取到主机B的mac地址: MAC_B,转到5。
如果没有,转到2。 -
主机A发起arp request广播请求,大致封装格式
dmac:FF-FF-FF-FF-FF-FF
smac:mac_A
dip:IP_B
sip:IP_A
type:0x0806
3.主机B收到arp request广播请求,将主机A的ip和mac放入自己的arp缓存表中;并回复一个arp reply 单播包给主机A。
大致格式:
dmac: mac_A
smac: mac_B
dip: IP_B
sip: IP_A
type: 0x0806 -
主机A收到主机B的arp reply, 得到了主机B的mac地址为: mac_B。并将主机B的ip和mac放入自己的arp缓存表中。
-
主机A发送icmp echo包,封装格式为
dmac:mac_B
smac:mac_A
dip:IP_B
sip:IP_A
eth type:0x0800
ip type: 1
icmp type: 8
icmp code: 0 -
主机B收到主机A的icmp echo 包,回复主机A一个icmp reply包。封装格式:
dmac:mac_A
smac:mac_B
dip:IP_A
sip:IP_B
eth type: 0x0800
ip type: 1
icmp type: 0
icmp code: 0
3. vrp基础
用户视图:<Huawei>
系统视图:[Huawei]
接口视图:[Huawei-GigabitEthernet0/0/1]
进入系统视图:system-view
进入接口视图:interface GigabitEthernet 0/0/1
改名:sysname sw1
关日志: undo info-center enable
0/0/1
: 槽位/板卡/接口
保存配置:用户视图下save
配置ip
: undo ip address
查看ip
: display this
查看当前配置:display current-configuration
查看保存配置:display saved-configuration
TODO
跨网段ping
发生了什么?
相关文章:
HCIA笔记2--ARP+ICMP+VRP基础
1. ARP ARP: 地址解析协议(address resolve protocol)。 网络数据包在通信的时候一般是使用 I P IP IP地址进行通信。 但是在封装数据链路层的时候是需要目标 m a c mac mac地址的。 而 A R P ARP ARP协议实现的功能就是根据 I P IP IP地址来获得 m a c mac mac地址。 1.1 a…...
SpringBoot与MongoDB深度整合及应用案例
SpringBoot与MongoDB深度整合及应用案例 在当今快速发展的软件开发领域,NoSQL数据库因其灵活性和可扩展性而变得越来越流行。MongoDB,作为一款领先的NoSQL数据库,以其文档导向的存储模型和强大的查询能力脱颖而出。本文将为您提供一个全方位…...
Redis模拟延时队列 实现日程提醒
使用Redis模拟延时队列 实际上通过MQ实现延时队列更加方便,只是在实际业务中种种原因导致最终选择使用redis作为该业务实现的中间件,顺便记录一下。 该业务是用于日程短信提醒,用户添加日程后,就会被放入redis队列中等待被执行发…...
vue项目中富文本编辑器的实现
文章目录 vue前端实现富文本编辑器的功能需要用到第三方库1. 安装包2.全局引入注册3.组件内使用4.图片缩放功能实现①安装包②注册并添加配置项③报错解决 vue前端实现富文本编辑器的功能需要用到第三方库 vue2使用vue-quill-editor,vue3使用vueup/vue-quill&#…...
nginx 配置lua执行shell脚本
1.需要nginx安装lua_nginx_module模块,这一步安装时,遇到一个坑,nginx执行configure时,一直提示./configure: error: unsupported LuaJIT version; ngx_http_lua_module requires LuaJIT 2.x。 网上一堆方法都试了,都…...
Keil+VSCode优化开发体验
目录 一、引言 二、详细步骤 1、编译器准备 2、安装相应插件 2.1 安装C/C插件 2.2 安装Keil相关插件 3、添加keil环境变量 4、加载keil工程文件 5、VSCode中成功添加工程文件后可能出现的问题 5.1 编码不一致问题 6、在VSCode中进行编译工程以及烧录程序 7、效果展示…...
vue2中引入cesium全步骤
1.npm 下载cesium建议指定版本下载,最新版本有兼容性问题 npm install cesium1.95.0 2.在node_models中找到cesium将此文件下的Cesium文件复制出来放在项目的静态资源public中或者static中,获取去github上去下载zip包放在本地也可以 3.在index.html中引…...
工程师 - 智能家居方案介绍
1. 智能家居硬件方案概述 智能家居硬件方案是实现家庭自动化的重要组件,通过集成各种设备来提升生活的便利性、安全性和效率。这些方案通常结合了物联网技术,为用户提供智能化、自动化的生活体验。硬件方案的选择直接影响到智能家居系统的性能、兼容性、…...
中小企业人事管理:SpringBoot框架高级应用
摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,中小企业人事管理系统当然也不能排除在外。中小企业人事管理系统是以实际运用为开发背景,运用软件工程原理和…...
嵌入式Linux驱动开发日记
目录 让我们从环境配置开始 目标平台 从Ubuntu开始 从交叉编译器继续 arm-linux-gnueabihf-gcc vscode 没学过ARM汇编 正文开始——速度体验一把 写一个链接脚本 写一个简单的Makefile脚本 使用正点原子的imxdownload下载到自己的SD卡上 更进一步的笔记和说明 从IM…...
迪杰特斯拉算法(Dijkstra‘s)
迪杰斯特拉算法(Dijkstras algorithm)是由荷兰计算机科学家艾兹格迪科斯彻(Edsger W. Dijkstra)在1956年提出的,用于在加权图中找到单个源点到所有其他顶点的最短路径的算法。这个算法广泛应用于网络路由、地图导航等领…...
reids基础
数据结构类型 String setnx //设置key不存在,则添加成功 setex name 10 jack // key 10s失效,自动删除 hash hset hget list 按添加数据排序 lpush //左侧插入 rpush //右侧插入 set 不重复 sadd //添加…...
私有化部署视频平台EasyCVR宇视设备视频平台如何构建视频联网平台及升级视频转码业务?
在当今数字化、网络化的时代背景下,视频监控技术已广泛应用于各行各业,成为保障安全、提升效率的重要工具。然而,面对复杂多变的监控需求和跨区域、网络化的管理挑战,传统的视频监控解决方案往往显得力不从心。 EasyCVR视频融合云…...
SparkContext讲解
SparkContext讲解 什么是 SparkContext? SparkContext 是 Spark 应用程序的入口点,是 Spark 的核心组件之一。每个 Spark 应用程序启动时,都会创建一个 SparkContext 对象,它负责与集群管理器(如 YARN、Mesos 或 Spa…...
MODBUS TCP转CANOpen网关
Modbus TCP转CANopen网关 型号:SG-TCP-COE-210 产品用途 本网关可以实现将CANOpen接口设备连接到MODBUS TCP网络中;并且用户不需要了解具体的CANOpen和Modbus TCP 协议即可实现将CANOpen设备挂载到MODBUS TCP接口的 PLC上,并和CANOpen设备…...
渗透测试---shell(4)脚本与用户交互以及if条件判断
声明:学习素材来自b站up【泷羽Sec】,侵删,若阅读过程中有相关方面的不足,还请指正,本文只做相关技术分享,切莫从事违法等相关行为,本人一律不承担一切后果 目录 一、shell脚本与用户进行交互 使用 read 指…...
02_Spring_IoC实现
接下来先简单说一下关于IoC的一些要点,后面我们再详细一步一步讨论。 一、IoC控制反转 IoC控制反转它是一种思想,不是具体的实现控制反转的目的是为了降低程序的耦合度,提高程序的可扩展性,从而满足OCP原则和DIP原则控制反转,那到底反转是什么东西? 我们不再使用某个对象…...
使用Python3实现Gitee码云自动化发布
仓库信息 https://gitee.com/liumou_site/ip 实现代码 import osimport requests from loguru import loggerdef gitee(ver, message, prerelease: bool False):"""在 Gitee 上创建发布版本:param ver: 版本号:param message: 发布信息:param prerelease: 是…...
Ubuntu24.04下的docker问题
按官网提示是可以安装成功的,但是curl无法使用https下载,会造成下述语句执行失败 # Add Dockers official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https…...
PAT (Basic Level) Practice (中文)1002 写出这个数
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 #include<bits/stdc.h> using namespace std; string a; int sum0; int f0; int n[10005]; int main(){ cin>>a; int c0; int laa.size(); for(int i…...
C07.L07.STL之映射.应用2.统计数字
题目描述 某次科研调查时得到了 n 个自然数,每个数均不超过 1500000000 (1.5*10^9 )。已知不相同的数不超过 10000 个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。 输入格式 包含 2 行: 第…...
微信小程序组件详解:text 和 rich-text 组件的基本用法
微信小程序组件详解:text 和 rich-text 组件的基本用法 引言 在微信小程序的开发中,文本展示是用户界面设计中不可或缺的一部分。无论是简单的文本信息,还是复杂的富文本内容,text 和 rich-text 组件都能够帮助我们实现这些需求。本文将详细介绍这两个组件的基本用法,包…...
算法.图论-习题全集(Updating)
文章目录 本节设置的意义并查集篇并查集简介以及常见技巧并查集板子(洛谷)情侣牵手问题相似的字符串组岛屿数量(并查集做法)省份数量移除最多的同行或同列石头最大的人工岛找出知晓秘密的所有专家 建图及其拓扑排序篇链式前向星建图板子课程表 本节设置的意义 主要就是为了复习…...
this.$prompt 限制输入长度
this.$prompt(请输入关键词名称, 提示, {confirmButtonText: 确定,cancelButtonText: 取消,inputPattern: /^\d{0,50}$/,inputErrorMessage: 关键词名称长度不能超过50个字符 }).then(({ value }) > {})...
JDBC使用p6spy记录实际执行SQL方法【解决SQL打印两次问题】
p6spy介绍 p6spy 是一个开源的 JDBC 数据源代理工具,主要用于拦截和记录应用程序与数据库之间的所有 SQL 操作,方便开发者进行 SQL 调试、性能监控和问题排查。 p6spy可以打印实际执行的sql,在开发过程中方便调试,和使用框架无关…...
问题: redis-高并发场景下如何保证缓存数据与数据库的最终一致性
在高并发场景下,Redis 通常用作缓存层,与数据库结合使用以提高系统的性能。为了保证缓存数据与数据库的最终一致性,通常采用的有双写机制、缓存失效机制,基于双写机制、缓存失效机制又衍生出来了消息队列、事件驱动架构等 常见机…...
Stable Diffusion核心网络结构——CLIP Text Encoder
🌺系列文章推荐🌺 扩散模型系列文章正在持续的更新,更新节奏如下,先更新SD模型讲解,再更新相关的微调方法文章,敬请期待!!!(本文及其之前的文章均已更新&…...
C语言-11-18笔记
1.C语言数据类型 类型存储大小值范围char1 字节-128 到 127 或 0 到 255unsigned char1 字节0 到 255signed char1 字节-128 到 127int2 或 4 字节-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647unsigned int2 或 4 字节0 到 65,535 或 0 到 4,294,967,295short2 字节…...
数据结构_图的遍历
深度优先搜索遍历 遍历思想 邻接矩阵上的遍历算法 void Map::DFSTraverse() {int i, v;for (i 0; i < MaxLen; i){visited[i] false;}for (i 0; i < Vexnum; i){// 如果顶点未访问,则进行深度优先搜索if (visited[i] false){DFS(i);}}cout << endl…...
设计LRU缓存
LRU缓存 LRU缓存的实现思路LRU缓存的操作C11 STL实现LRU缓存自行设计双向链表 哈希表 LRU(Least Recently Used,最近最少使用)缓存是一种常见的缓存淘汰算法,其基本思想是:当缓存空间已满时,移除最近最少使…...
橙子建站给我发了短信/宁波网络推广公司有哪些
python打印所有偶数Given a string, and we have to print the EVEN length words in Python. 给定一个字符串,我们必须在Python中打印偶数个长度的单词。 Example: 例: Input:str: Python is a programming languageOutput: EVEN length words:Python…...
wordpress 搜索 分类/新闻发稿渠道
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云数据库 TencentDB发表于云社区专栏 摩拜单车是全球最大智能共享单车运营平台和移动物联网平台,其从成立到全球最大只用了不到3年的时间,每天产生超过30TB骑行数据&#…...
做网站服务器有哪些/网页设计制作教程
ImageKit.NET3|ImageKit.ActiveX Crack 触摸屏功能 新增! 新增和改进的注释功能 新增! 新的专用注释工具栏控件 新!q:2315702359 完整的64位支持。插件文件也支持64位!!! .NET 2.0至3.5以及.NET 4.0及更高版本的程序集 新增! 支持VS2019 新! 支持VS2017、2015、2013、2012、201…...
百度上公司做网站/如何建立个人网站的步骤
var temp "${row.address_province}"; alert(temp);——————即变量temp alert("\" temp "\");——————即变量‘temp’ 输出引号可以转义的方式(就是在要输出的引号前加单斜线“\”)输出,用“ ”使字符…...
现在网站用什么软件做/海淀区seo搜索优化
目录 1.iconfont 2. sass版本问题 3.屏幕高宽度自适应 4. 跨域 5. 拦截器 6.项目插件安装 7.登录鉴权(单路由) 8.插件引入、持久化、字体图标、富文本、时间戳 9. 跳转、返回、前进和后退 10.echarts图表的使用 11. vue组件中引入js文件(放scr…...
wordpress 免费企业网站 模板下载/太原百度seo
博主的系统环境如下: Win10 1709 教育版 Anaconda3-5.0.1-Windows-x86_64.exe Python是Anaconda中自带的3.6.3。 前言 由于原来电脑中装有Arcgis就自带装了2.7的Python,后来为了打包又弄了个3.5的Python,所以电脑里共存了3个版本的Python。。。最近…...