当前位置: 首页 > news >正文

数据链路层中存在的报文ip,arp,rarp

IP数据报

ARP请求/应答报

RARP请求/应答报

IP数据报

这里的目的地址和源地址是MAC地址。

这个被称为 MAC 地址,是一个网卡的物理地址,用十六进制,6 个 byte 表示。

MAC 地址是一个很容易让人误解的地址。因为 MAC 地址号称全球唯一,不会存在有相同 MAC 地址的网卡。这就很容易让我们想,既然全球唯一,那网络通信直接用 MAC 地址不行吗?为什么要加个 IP 地址,多封装一层,再去通信呢?

当然是不行的。我们想把一个网络包从一个地方传到另一个地方,除了有确定的地址外,还需要有定位功能。就像你去广州找博主一样,我只告诉你我的身份证号,你能在广州找到我吗?这种寻找无异于大海捞针。但是如果我告诉你我的详细地址,你就可以直接通过导航找到对应的地址,然后再找到我。

IP 地址在一定程度上就承担了详细地址这种远程地位的功能。MAC 地址更像是身份证号,是一个唯一的标识。它的唯一性设计是为了组网的时候,不同的网卡放在一个网络里面,不用担心冲突。

当然,MAC 地址也有一定的定位功能。就像你来到了博主所在的办公室,你可以在办公室喊身份证号是 XXX 的是哪位?博主听到了,就会站起来回答你。但是如果你在博主听不到的地方喊,那肯定不会有人应你。这就说明,MAC 地址的通信范围比较小,仅仅局限在一个子网内。

网络协议 2 - IP 地址和 MAC 地址 - 知乎 (zhihu.com)

但是我知道这个房间的所有人的身份证号(ip),但是我并不知道对应的身份证到底是谁(mac),这个时候我就需要在这房间(局域网)内,广播找到对应身份证的人。

这就需要ARP报协助ip数据报寻觅ip对应的mac。

ARP请求/响应报

在每一次通信的时候我们都需要找到下一跳路由的mac地址,才能将其报文传送出去,为什么不能直接和远程主机直接通信呢?你搁哪洲际导弹呢?

所以在网络包发送前都需要先发送ARP请求报文找到下一跳的mac地址。A主机需要B主机/路由器,根据路由表找到对应的ip号发送arp请求报文,这个报文属于广播报文,所有主机都会接收到,并且处理报文。

流程

 这是报文会被所有的主机接收到,因为arp报文的目的mac地址是0xffffffffff,所有的主机都意识到,这是个广播报文,然后接收查看帧类型,决定交给网络层还是arp处理方式。

确定是arp包,然后先查看op确定包类型,op字段为1表示ARP请求,op字段为2表示ARP应答,

如果是请求,则再去查看目的ip是否是给我发的,是则构建响应arp报文,进行响应,不是则丢弃

如果是响应,直接获取响应arp报文的源mac地址,构建对应的ip数据报。

为什么不直接看ip呢?

因为解耦,所以arp层并不知道mac层是这么收获的报文,所以先查看arp的op项,先查看op,为1是申请报文,再去查看目的端ip查看是否向我申请的报文。为2是应答报文,无需查看目的端ip,因为是对我一对一的,直接查看发送端mac地址。因为如果直接看目的ip就算是给我的,也得再看op是应答arp还是申请arp才能后后续操作。

每次发送ip报都需要arp吗?并不是的,主机和路由器会短期存储mac和ip的映射关系,后续如果再一次访问对应ip,先查看自己的arp映射表是否有该ip的映射mac,然后再决定下一步。外面的arp请求报发送给对方时候,对方也会建立源ip和源mac的映射,需要mac发送ip报的主机,接收到arp响应报,也会条件映射关系到arp映射表中。

为何不将映射关系永久呢?注意当今的ip为动态分配,你的手机链接路由器wifi的情况下,路由器给你分配的IP地址前一次和后一次是不一样的,如果永久映射了,如果A主机换一个地方链接网络,会直接使用对应的arp表中的路由地址,在当前局域网是找不到对应的mac地址路由器的,导致了A主机无法上网。

RARP请求/响应报

这个是与ip反过来的,发出mac地址获取ip地址,这个mac和ip是本机地址,一般是嵌入式设备入网时使用的,如果存在这样的设备,我们就需要架设RARP服务器(个人电脑直接链接设备,也是可以为其指定ip地址,但是使用DHCP自动分配的ip地址,有时会遇到无法知道所分配的ip是多少的情况)。

相关文章:

数据链路层中存在的报文ip,arp,rarp

IP数据报 ARP请求/应答报 RARP请求/应答报 IP数据报 这里的目的地址和源地址是MAC地址。 这个被称为 MAC 地址,是一个网卡的物理地址,用十六进制,6 个 byte 表示。 MAC 地址是一个很容易让人误解的地址。因为 MAC 地址号称全球唯一&…...

【Tricks】PC端微信输入时,文本出现右对齐情况怎么恢复

应该是摁到某个快捷键,于是光标就变成如下图所示的样子: 如果再输入字符,则字符就会变成下图所示的样子(对齐输入框右侧): 解决办法:ctrl J 解决办法:ctrl J 解决办法&#xff1…...

python使用requests+excel进行接口自动化测试

在当今的互联网时代中,接口自动化测试越来越成为软件测试的重要组成部分。Python是一种简单易学,高效且可扩展的语言,自然而然地成为了开发人员的首选开发语言。而requests和xlwt这两个常用的Python标准库,能够帮助我们轻松地开发…...

Android NDK开发详解之调试和性能分析的ndk-gdb

Android NDK开发详解之调试和性能分析的ndk-gdb 要求用法选项 NDK 包含一个名为 ndk-gdb 的 Shell 脚本,可以启动命令行原生调试会话。偏好使用 GUI 的用户则应阅读在 Android Studio 中调试这篇文档。 要求 要运行命令行原生调试,必须满足以下要求&am…...

html获取网络数据,列表展示 一

html获取网络数据&#xff0c;列表展示 js遍历json数组中的json对象 image.png || - 判断数据是否为空&#xff0c;为空就显示 - <!DOCTYPE html> <html><head><meta charset"utf-8"><title>网页列表</title></head><b…...

配置管理工具-Confd

1 简介 1.1 Confd介绍 Confd是一个轻量级的配置管理工具。通过查询后端存储&#xff0c;结合配置模板引擎&#xff0c;保持本地配置最新&#xff0c;同时具备定期探测机制&#xff0c;配置变更自动reload。对应的后端存储可以是etcd&#xff0c;redis、zookeeper等。[1] 通过…...

0基础学习PyFlink——使用DataStream进行字数统计

大纲 sourceMapSplittingMapping ReduceKeyingReducing 完整代码结构参考资料 在《0基础学习PyFlink——模拟Hadoop流程》一文中&#xff0c;我们看到Hadoop在处理大数据时的MapReduce过程。 本节介绍的DataStream API&#xff0c;则使用了类似的结构。 source 为了方便&…...

OpenCV官方教程中文版 —— 图像去噪

OpenCV官方教程中文版 —— 图像去噪 前言一、原理二、OpenCV 中的图像去噪1.cv2.fastNlMeansDenoisingColored()2.cv2.fastNlMeansDenoisingMulti() 前言 目标 • 学习使用非局部平均值去噪算法去除图像中的噪音 • 学习函数 cv2.fastNlMeansDenoising()&#xff0c;cv2.fa…...

AcWing 102. 最佳牛围栏(前缀和+二分+DP)

AcWing 102. 最佳牛围栏 1、问题 2、分析 &#xff08;1&#xff09;暴力做法 看到这道题以后&#xff0c;我们可以先想一个最暴力的做法&#xff0c;就是我们去枚举所有长度至少为 F F F的区间&#xff0c;然后求出这个区间的和&#xff0c;再求出这个区间的平均值。最后在…...

React-表单受控绑定和获取Dom元素

一、表单受控组件 1.声明一个react状态 说明&#xff1a;useState const [value,setValue]useState("") 2.核心绑定流程 2.1绑定react状态 <div><input value{value}type"text"></input> 2.2绑定onChange事件 说明&#xff1a;e.…...

python hashlib模块及实例

hashlib 模块密码加密密码撞库密码加盐 一&#xff0c;hashlib模块 hashlib模块是用来为字符串进行加密的模块&#xff0c;通过该作用就可以为用户的密码进行加密。 通过模块中的hash算法可以为任意长度的字符串加密成长度相同的一串hash值。该hash算法得到的hash值有一下几个…...

垃圾回收GC

为什么要有垃圾回收? JVM之所以要有垃圾回收,是因为它能够自动管理内存,避免内存泄漏和内存溢出的问题,垃圾回收机制会自动检测和清理不再使用的对象,释放内存空间,使得开发者不需要手动管理内存,降低了开发难度和错误风险,同时,垃圾回收还可以优化内存分配,提高程序性能和响…...

kubernetes-service微服务

目录 一、service微服务 二、Ipvs模式 三、ClusterIP 1.ClusterIP 2.headless 四、NodePort 1.NodePort 2.默认端口 五、LoadBalancer 1.LoadBalancer 2.metallb 六、ExternalName 一、service微服务 Kubernetes Service微服务是一种基于Kubernetes的微服务架构&…...

让你笑到不行的笑话短视频接口,快来试试!

11在当今这个快节奏的社会中&#xff0c;笑话成为了许多人调节情绪的有效方法。如今&#xff0c;短视频平台已经成为了最受欢迎的娱乐方式之一&#xff0c;因此&#xff0c;将笑话和短视频结合起来&#xff0c;成为了一种很有趣的方式来带给我们欢乐。今天我们要介绍的是挖数据…...

系列四十五、Spring的事务传播行为案例演示(五)#MANDATORY

一、演示Spring的传播行为&#xff08;MANDATORY&#xff09; 1.1、StockServiceImplMANDATORY /*** Author : 一叶浮萍归大海* Date: 2023/10/30 15:43* Description: 演示MANDAORY的传播行为* 外部不存在事务&#xff1a;抛出异常 No existing transaction found for…...

idea插件(二)-- String Manipulation(字符串处理工具)

目录 1. 安装 String Manipulation 2. 默认快捷键 3. 操作说明 3.1 变量名的形式处理 3.2 文本形式的转化...

HQChart实战教程67-worker批量计算股票指标

HQChart实战教程67-worker批量计算股票指标 什么是Worker批量指标计算示例地址步骤1. 创建一个后台工作线程类2. 发送指标计算任务3. 接收计算结果数据对接 完整源码demo_workerthread_sina.htmlhqchart_worker_sina.js HQChart插件源码地址 什么是Worker Worker 接口是 Web W…...

博客系统自动化测试项目实践

文章目录 一.测试需求分析1.功能分析2.非功能分析 二.制定测试方案&#xff08;计划 策略&#xff09;三.编写测试用例四.执行自动化测试用例五.编写测试报告六.项目总结 一.测试需求分析 1.功能分析 通过功能测试需求分析 2.非功能分析 非功能分析主要从:界面,性能,安全性,…...

软考高级之系统架构师系列之操作系统基础

概念 接口 操作系统为用户提供两类接口&#xff1a;操作一级的接口和程序控制一级的接口。操作一级的接口包括操作控制命令、菜单命令等&#xff1b;程序控制一级的接口包括系统调用。 UMA和NUMA UMA&#xff0c;统一内存访问&#xff0c;Uniform Memory Access&#xff0c…...

制作一个可以arm架构下运行的docker镜像(for Python)

看完本篇文章&#xff0c;你将得到一个可以arm架构下运行的python 基础镜像。 题外话 这里直接说docker镜像有点儿草率&#xff0c;因为目前很多容器都是Podman了。 podman的介绍 arm和aarch傻傻分不清楚 现在这两个是一样的意思了。 arm64和aarch64之间的区别 开始制作镜…...

ThingLinks-IoT:一站式物联网平台解决方案

ThingLinks-IoT 物联网平台 | 多协议接入物模型告警联动视频接入AI 助手 一体化方案 一个面向项目交付与企业生产场景的国产物联网中台——把"设备接入 → 数据处理 → 告警联动 → 业务集成"这条链路上的通用能力一次性做完做稳&#xff0c;让你只关心自己的业务。 …...

网盘直链下载助手:九大主流平台高速下载终极指南

网盘直链下载助手&#xff1a;九大主流平台高速下载终极指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 …...

基于概率随机森林的天文测光数据尘埃恒星自动分类实践

1. 项目概述&#xff1a;当机器学习遇见尘埃恒星处理海量天文数据&#xff0c;尤其是从像斯皮策空间望远镜&#xff08;Spitzer&#xff09;的SAGE巡天这类项目中获取的多波段测光数据&#xff0c;一直是个既让人兴奋又头疼的活儿。传统的光谱分类方法虽然精准&#xff0c;但面…...

Windows多显示器DPI缩放终极解决方案:告别模糊显示,享受清晰视觉体验

Windows多显示器DPI缩放终极解决方案&#xff1a;告别模糊显示&#xff0c;享受清晰视觉体验 【免费下载链接】SetDPI 项目地址: https://gitcode.com/gh_mirrors/se/SetDPI 你是不是曾经遇到过这样的困扰&#xff1f;连接多个显示器时&#xff0c;文字和图标大小不一&…...

免费岛屿设计终极指南:5分钟快速掌握Happy Island Designer

免费岛屿设计终极指南&#xff1a;5分钟快速掌握Happy Island Designer 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)"&#xff0c;是一个在线工具&#xff0c;它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal Cros…...

从Bing日志到学术基准:MS MARCO数据集的前世今生与你的信息检索实验

从Bing日志到学术基准&#xff1a;MS MARCO数据集的前世今生与你的信息检索实验 当你在深夜调试信息检索模型时&#xff0c;是否曾好奇过那些基准数据集背后的故事&#xff1f;MS MARCO——这个让无数研究者又爱又恨的数据集&#xff0c;最初只是Bing搜索引擎日志中的普通用户查…...

Driver Store Explorer完整指南:Windows驱动存储终极清理神器

Driver Store Explorer完整指南&#xff1a;Windows驱动存储终极清理神器 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer Driver Store Explorer&#xff08;简称RAPR&#xff09;是一款…...

Terraform 实战:用 for 表达式将列表元素转换为大写

Terraform 技巧:使用 for 表达式将列表元素转换为大写 在 Terraform 配置中,我们经常需要对列表中的字符串进行批量转换,例如将小写名称统一转为大写,以满足某些标签规范或命名约定。本文以 var.names 列表为例,演示如何通过 for 表达式结合 upper 函数,生成一个全大写的…...

CTF流量分析必修课:HTTP/2与HPACK解码实战指南

1. 这不是Wireshark的问题&#xff0c;是你的分析链路断在了第一环你打开NewStarCTF一道Web流量题&#xff0c;导入pcapng文件&#xff0c;熟练地敲下http.request.method "POST"&#xff0c;结果空空如也。再试http contains "flag"&#xff0c;还是没反…...

实验二 基于 VMware Workstation 的虚拟机平台搭建、客户机安装与虚拟网络模式验证

作者&#xff1a;非凡大爹&#xff5c;版本&#xff1a;v1&#xff5c;日期&#xff1a;2026-03-24&#xff5c;DocID&#xff1a;CN-LAB-2026-03-VMNet-1-LG-V2 原创声明&#xff1a;本文为作者原创实验教学资料&#xff0c;首发于 CSDN。 版权声明&#xff1a;本文版权归作者…...