【计算机网络】 ARP协议和DNS协议

文章目录

      • 数据包在传输过程中的变化过程
      • 单播组播和广播
      • ARP协议
      • ARP代理
      • 免费ARP
      • 路由数据转发过程
      • DNS协议

数据包在传输过程中的变化过程

在说ARP和DNS之前,我们需要知道数据包在传输过程的变化过程

在这里插入图片描述

从图片中可以看到,发送方的原数据最开始是在应用层,然后再传输层加上UDP头,再网络层加上IP头,在物理层加上帧头、帧尾和CRC校验,然后接收方会逐层校验拆包,知道在应用层得到原数据

单播组播和广播

在这里插入图片描述

单播就是一对一的,广播就是看目标设备在不在范围内,组播是看目标设备是不是要发送的设备

ARP协议

在这里插入图片描述

地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议,用在双端设备在通讯收发数据之前,如果不知道对端的MAC地址,就可以通过ARP协议来获取

ARP协议是跨数据链路层和网络层的,所以他的上层协议是IP协议

ARP协议实现的过程就是自己设备会发送一个ARP Request的广播,那么当前路由器所连接的所有设备都会收到这个广播,数据包中的目的MAC填0,所有收到这个广播的设别都会看自己的IP是不是这个广播的目IP,如果不是就会将这个包丢弃,如果是就会回一个ARP Reply的单播,然后就可以开始通信了

ARP代理

当发送端广播ARP请求时,本地网络上不会有主机回应(因为IP地址是外网的),此时路由器将会回应该请求,则发送源认为路由器就是目的主机,会将报文全部转发给它,再由路由器转发报文到外网,则该路由器就被称为ARP代理。

免费ARP

在主机开机配置时,会发送一个目的IP地址为自己IP地址的ARP请求报文,该报文称之为免费ARP,作用有两点:

  1. 让主机确认本地网络上是否有与自己IP地址相同的主机,若有,则会返回一个错误报文。
  2. 告诉整个广播域,目前某个IP所对应的MAC地址是什么——这一行为就像是在发宣传单,而宣传单是不需要回应的。若接收主机ARP缓存中本身就有发送源主机IP—MAC对,则会更新,否则,会缓存发送源的IP—MAC对。

路由数据转发过程

在这里插入图片描述

原设备和目的设备不是连接同一个路由器上的,需要通过多个路由器转发才能连接上

每次发送数据的时候源ip是当前设备的ip地址,源mac是最开始设备mac地址,目的ip为最终设备的ip地址,目的mac是下一跳的mac(通过路由表寻找)

DNS协议

域名解析协议,DNS服务器将好记的域名解析成IP地址

**过程:**网络客户端将要访问的域名传到本地DNS服务器,如果缓存里有就直接返回IP地址,如果没有就访问DNS根服务器,发现是.com域,那么本地DNS服务器再访问.com域服务器,发现是.163.com域,那么再次访问.163.com域服务器寻找IP地址。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/69416.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vscode使用delve调试golang程序

环境配置 delve仓库,含有教程:https://github.com/go-delve/delve golang的debugging教程:https://github.com/golang/vscode-go/wiki/debugging > go version go version go1.20 windows/amd64> go install github.com/go-delve/de…

华为云Stack的学习(五)

六、华为云stack服务简介 1.云服务在华为云Stack中的位置 云服务对接多个数据中心资源池层提供的资源,并向各种行业应用提供载体。 2.华为云Stack通用服务 2.1 云计算的服务模式 2.2 计算相关的云服务 2.3 存储相关的云服务 2.4 网络相关的云服务 3.云化案例 **…

如何取消KEIL-MDK工程中出现的CMSIS绿色图标

如何取消KEIL-MDK工程中出现的CMSIS绿色图标?我以前经常遇到,不知道怎么搞,好像也不影响编译结果。以前问过其他人,但是不知道怎么搞,相信很多人也遇到过。水平有限,表达不清楚,见下图&#xff…

Bootstrap的标题类(标题样式h1~h6)

Bootstrap 的标题字体大小通常遵循以下样式规则: h1 标题的字体大小为 2.5rem(40像素)。h2 标题的字体大小为 2rem(32像素)。h3 标题的字体大小为 1.75rem(28像素)。h4 标题的字体大小为 1.5re…

【trie树】CF Edu12 E

Problem - E - Codeforces 题意: 思路: 这其实是一个套路题 区间异或转化成前缀异或,然后枚举 i 对于每一个 i,ai ^ x k,对 x 计数 先建一棵字典树,然后在字典树上计数 先去对 > k 的部分计数&a…

国际版阿里云/腾讯云:弹性高性能计算E-HPC入门概述

入门概述 本文介绍E-HPC的运用流程,帮助您快速上手运用弹性高性能核算。 下文以创立集群,在集群中安装GROMACS软件并运转水分子算例进行高性能核算为例,介绍弹性高性能核算的运用流程,帮助您快速上手运用弹性高性能核算。运用流程…

易云维®医院后勤管理系统软件利用物联网智能网关帮助实现医院设备实现智能化、信息化管理

近年来,我国医院逐渐意识到医院设备信息化管理的重要性,逐步建立医院后勤管理系统软件,以提高信息化管理水平。该系统是利用数据库技术,为医院的中央空调、洁净空调、电梯、锅炉、医疗设备等建立电子档案,把设备监控、…

性能炸裂c++20协程+iocp/epoll,超轻量高性能异步库开发实战

前言: c20出来有一段时间了。其中一大功能就是终于支持协程了(c作为行业大哥大级别的语言,居然到C20才开始支持协程,我也是无力吐槽了,让多少人等了多少年,等了多少青春)但千呼万唤他终于还是来…

基于Matlab实现多个图像融合案例(附上源码+数据集)

图像融合是将多幅图像合成为一幅图像的过程,旨在融合不同图像的信息以获得更多的细节和更丰富的视觉效果。在本文中,我们将介绍如何使用Matlab实现图像融合。 文章目录 简单案例源码数据集下载 简单案例 首先,我们需要了解图像融合的两种主…

【STM32】IIC的初步使用

IIC简介 物理层 连接多个devices 它是一个支持设备的总线。“总线”指多个设备共用的信号线。在一个 I2C 通讯总线中,可连接多个 I2C 通讯设备,支持多个通讯主机及多个通讯从机。 两根线 一个 I2C 总线只使用两条总线线路,一条双向串行数…

Android Studio 汉化

一、汉化: 查看版本号,查看Android Studio版本,根据版本下载对应的汉化包。例如我的是223。 下载汉化包: 中文语言包下载地址 找到对应的版本 回到Android Studio 1、进入设置 2、从磁盘安装插件 3、选择下载好的包点击OK 4、…

介绍OpenCV

OpenCV是一个开源计算机视觉库,可用于各种任务,如物体识别、人脸识别、运动跟踪、图像处理和视频处理等。它最初由英特尔公司开发,目前由跨学科开发人员社区维护和支持。OpenCV可以在多个平台上运行,包括Windows、Linux、Android和…

AJAX学习笔记6 JQuery对AJAX进行封装

AJAX学习笔记5同步与异步理解_biubiubiu0706的博客-CSDN博客 AJAX请求相关的代码都是类似的,有很多重复的代码,这些重复的代码能不能不写,能不能封装一个工具类。要发送ajax请求的话,就直接调用这个工具类中的相关函数即可。 用J…

深圳-海岸城购物中心数据分析

做数据分析的时候,如果要对商场进行分析,可以从这些数据纬度进行分析,如下图所示: 截图来源于数位观察:https://www.swguancha.com/

如何炒伦敦金

由于疫情的影响,目前世界上多个国家降低存款利率,以推动经济发展,由此也引发了比较严重的通胀问题,尤其是在俄乌冲突之后,国际油价不断上涨,加大了这种通货膨胀的影响。进行伦敦金投资是一种规避通胀的好方…

Python爬虫-某网酒店数据

前言 本文是该专栏的第5篇,后面会持续分享python爬虫案例干货,记得关注。 本文以某网的酒店数据为例,实现根据目标城市获取酒店数据。具体思路和方法跟着笔者直接往下看正文详细内容。(附带完整代码) 正文 地址:aHR0cHM6Ly93d3cuYnRoaG90ZWxzLmNvbS9saXN0L3NoYW5naGFp …

Python 中下划线详解(_、_xx、xx_、__xx、__xx__)

文章目录 1 概述2 演示2.1 _:不重要的变量2.2 _xx:声明私有,仅内部调用2.3 xx_:区分关键字2.4 __xx:声明私有,仅当前类中可用2.5 __xx__:内置函数 1 概述 2 演示 2.1 _:不重要的变…

jmeter setUp Thread Group

SetUp Thread Group 是一种特殊类型的线程组,它用于在主测试计划执行之前执行一些初始化任务。 SetUp Thread Group 通常用于以下几种情况: 用户登录:在模拟用户执行实际测试之前,模拟用户登录到系统以获取访问权限。 创建会话&a…

OpenWrt编译自己的应用程序

编译OpenWrt的应用程序可以参考OpenWrt内部其他应用程序的例程,来编写成自己的应用程序 一、OpenWrt源代码获取与编译 1.1、搭建环境 下载OpenWrt的官方源码: git clone https://github.com/openwrt/openwrt.git1.2、安装编译依赖项 sudo apt update…

Linux下的系统编程——进程(八)

前言: 程序是指储存在外部存储(如硬盘)的一个可执行文件, 而进程是指处于执行期间的程序, 进程包括 代码段(text section) 和 数据段(data section), 除了代码段和数据段外, 进程一般还包含打开的文件, 要处理的信号和CPU上下文等等.下面让我们开始对Linux进程的学…