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

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

一.数据包在传输中的变化过程(在同一个路由器下)

1.传输数据时,数据在各层中的存在形式(这里用UDP协议进行传输)

1.应用层是原数据

原数据就是用户数据

注意:这里的应用层包括应用层,表示层和会话层

2.传输层是UDP报文段(用的什么协议就是什么报文段)

UDP报文段包括UDP头和用户数据(用的什么协议就是什么头)

UDP头包括目的端口号和源端口号

3.网络层时IP数据报

IP数据报包括IP头和UDP头和用户数据

IP头包括目的IP和源IP

4.物理层是帧

帧包括帧头,IP头,UDP头,用户数据,帧尾和CRC校验

帧头包括目的MAC和源MAC

注意:这里的物理层包括数据链路层和物理层

2.数据包在传输中的变化过程(这里用UDP协议进行传输)

1.自己设备的应用层到自己设备的传输层

应用层(包括应用层、表示层、会话层)的原数据(用户数据)传输到传输层时,会在用户数据前面加上UDP头

2.自己设备的传输层到自己设备的网络层

应用层的UDP报文段传输到网络层时,会在UDP头前面加上IP头

3.自己设备的网络层到自己设备的物理层

网络层的IP报文段传输到物理层(包括数据链路层和物理层)时,会在IP头的前面加上帧头,用户数据的后面加上帧尾和CRC

4.自己设备的物理层到目标设备的物理层

自己设备的物理层中的帧通过光信号或者电信号经过层层传输到目标设备的物理层

5.目标设备的物理层到目标设备的网络层

目标设备在物理层会先解析出目的MAC是不是自己的MAC,如果是的话,那么去掉帧头帧尾和CRC,然后传输到目标设备的网络层

6.目标设备的网络层到目标设备的传输层

目标设备在网络层会先解析出目的IP是不是自己的IP,如果是的话,那么去掉IP头,然后传输到目标设备的传输层

7.目标设备的传输层到目标设备的应用层

目标设备在传输层解析出目的端口号,然后根据操作系统,找到端口号对应的应用,去掉UDP头最后传输到目标设备应用层的对应应用中去

3.看下面图进行加深理解

在这里插入图片描述

二.单播组播和广播

1.单播组播和广播的概念

1.单播(unicast)

一个设备给另外一个设备进行数据传输

注意:单播能跨路由器

2.组播(multicast)

一个设备通过一个或多个路由器的传输到达目标设备

注意:组播关注的是具体的目标设备,谁是目标设备就传给谁

3.广播(broadcast)

一个设备在其所在路由器范围内给所有设备进行数据传输

广播域:一个路由器能连的到的所有的设备就是该路由器的广播域

注意:1.广播只关注谁接入了广播范围,那就会传给谁

​ 2.广播不能跨路由器

三.ARP协议(地址解析协议)

1.ARP协议工作在哪一层

ARP协议工作在网络层

2.ARP协议的作用

ARP协议是根据IP地址获取物理地址的一个TCP/IP协议(注意这里的TCP/IP协议是一个地址族,这个家族里除了TCP/IP协议外还有很多其他的协议)

3.什么时候使用ARP协议

在发送数据之前使用ARP协议去获取对端设备的MAC地址

4.ARP报文格式

ARP的报文格式包括ARP报头,源MAC,源IP,目的MAC和目的IP

ARP报头包括硬件类型(2字节),上层协议类型(2字节),MAC地址长度(1字节),上层协议类型长度(1字节)和操作类型(2字节)

操作类型包括

1.ARP请求

2.ARP相应

5.对ARP协议是如何工作的进行理解

在这里插入图片描述

PC1要向PC2传输一个数据,此时PC1有PC2的IP地址但是没有PC2的MAC地址所以找不到PC2,这时PC1通过广播的方式发送一个ARP Request(广播可以发送到其所在路由器范围内的所有设备)(此时的ARP Request的源MAC是PC1的MAC,源IP是PC1的IP,目的MAC不知道,目的IP是PC2的IP),每个设备接收到PC1发送的信息后,看自己是不是是不是目的IP,如果是的话会通过单播返回一个ARP Reply(此时的ARP Request的源MAC是PC2的MAC,源IP是PC2的IP,目的MAC是PC1的MAC,目的IP是PC1的IP),然后PC1就知道了PC2的MAC地址了

四.ARP代理

1.什么是ARP代理

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

五.免费ARP

1.什么是免费ARP

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

2.免费ARP的作用

1.让主机确认本地网络上是否有与自己IP地址相同的主机,若有,则会返回一个错误报文

2.告诉整个广播域,目前某个IP所对应的MAC地址是什么----这一行为就像是在发宣传单,而宣传单是不需要回应的。若接收主机ARP缓存中本身就有发送源主机的IP----MAC对,则会更新,否则,会缓存发送源的IP----MAC对。

注意:这里涉及到了缓存的老化机制,

六.DNS协议(域名解析协议)

1.DNS协议工作在哪一层

DNS协议工作在应用

2.DNS协议的作用

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

3.DNS域名解析的基本过程(看下图进行理解)

在这里插入图片描述

注意:本地DNS服务器的缓存也有老化机制

七.路由数据转发过程(不在同一个路由器下)

1.通过下图进行理解

在这里插入图片描述

2.分析过程

这里最开始的源IP是10.0.0.1

源MAC是10.0.0.1的MAC

它的目的IP是60.0.0.6

目的MAC(也叫下一跳MAC)是Rouer1的MAC(通过路由表找到的)

到Rouer1之后继续传输

这时的源IP是20.0.0.2

源MAC是20.0.0.2的MAC

它的目的IP是60.0.0.6

目的MAC(也叫下一跳MAC)是Rouer2一号端口的MAC(通过路由表找到的)

3.注意事项

路由表是通过一步一步的学习变成图中的样子的

有传输层的一般都会有操作系统因为传输层中的数据是有对应协议的头的(头中存的是端口号)

有操作系统的话就有完整的7层的结构,没有操作系统就只有后两层或者后三层的结构

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

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

相关文章

怎么使用LightPicture开源搭建图片管理系统并远程访问?【搭建私人图床】

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进,功能也越来越多,而手机…

根据SpringBoot Guides完成进行示例学习(详细步骤)

目录 1.打开Spring | Guides官网,或者直接搜索springboot都可 2.选择要学习的内容 3.根据提示的网址,Git到本地 4.将文件用IDEA打开,根据教程完成示例,这里不做细致讲解 5.运行项目 6.在终端查看运行结果 以Scheduling Task…

Unity之ShaderGraph如何实现马赛克效果

前言 今天我们来实现一个马赛克的效果 如下所示: 关键节点 Posterize:色调分离节点 图像的色调分离或色调分离需要将色调的连续渐变转换为色调较少的几个区域,并从一种色调突然改变为另一种色调。 原理 原理就是通过色调分离节点&…

微服务负载均衡实践

概述 本文介绍微服务的服务调用和负载均衡,使用spring cloud的loadbalancer及openfeign两种技术来实现。 本文的操作是在微服务的初步使用的基础上进行。 环境说明 jdk1.8 maven3.6.3 mysql8 spring cloud2021.0.8 spring boot2.7.12 idea2022 步骤 改造Eu…

中文编程开发语言工具开发案例:多种称重方式编程实际例子

中文编程开发语言工具开发案例:多种称重方式编程实际例子 上图为 计价秤,使用串口通讯线连接电脑的主机,软件自动读取称的重量,自动计算金额。这种方式称重快速,不需再打印条码。 上图这个称重方式为 一体称称重&#…

ES6(ECMAScript 2015)有哪些新属性,如何判断当前浏览器是否支持?

ES6(ECMAScript 2015)引入了许多新的语法和特性,以增强 JavaScript 编程语言的功能。以下是一些常见的 ES6 语法和特性以及它们的解释: let 和 const 声明: let 和 const 用于声明变量,代替了旧的 var 关键…

Kubernetes基础概念及架构和组件

目录 一、kubernetes简介 1、kubernetes的介绍与作用 2、为什么要用K8S? 二、kubernetes特性 1、自我修复 2、弹性伸缩 3、服务发现和负载均衡 4、自动发布(滚动发布/更新)和回滚 5、集中化配置管理和密钥管理 6、存储编排 7、任务批…

虚拟音频设备软件 Loopback mac中文版软件介绍

创建虚拟音频设备以从应用程序和音频输入设备获取声音,然后将其发送到音频处理应用程序,它就是—Loopback for Mac,Loopback mac为您提供高端工作室混音板的强大功能,有了它在Mac上传递音频会变得很容易。 Loopback for mac中文版…

Qt ModelViewDelegate(模型-视图-代理) 介绍和使用

一、Model (模型) 介绍 Qt Model 是 Qt 的一个重要组件,用于管理和展示数据。它是 Qt 的 Model/View 架构的核心部分,用于将数据模型与其视图相分离,实现数据的高效处理和可视化呈现。 Qt Model 可以理解成一组数据结构,其中包含…

什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别?软件测试等相关概念入门篇

1、什么是软件测试? 常见理解: 软件测试就是找BUG,发现缺陷 真正理解: 软件测试就是验证软件产品特性是否满足用户的需求 测试定义: 测试人员验证软件是否符合需求的这个过程就是测试 2、为什么要有测试 标准情况下&a…

【Linux学习笔记】代码编辑工具vim

1. vim工具基本模式的转换2. vim命令模式下的各种编辑命令2.1. 光标行定位2.2. 光标自由定位2.3. 复制粘贴2.4. 删除2.5. 文本的大小写替换2.6. 文本的替换2.7. 文本的前删后删2.8. 撤销操作 3. vim底行模式下的命令3.1. 设置行号与取消设置行号3.2. 分屏操作3.3. 在不退出vim的…

Openssl数据安全传输平台003:Protobuf - 部署

文章目录 一、Windows环境二、Linux Centos环境三、protobuf测试3.1 新建.proto文件生成相应的类3.2 .proto生成相应的类的使用3.3 配置VS3.4 test代码 一、Windows环境 在windows下配置,无论protobuf是什么版本,IDE和编译器的版本都要保持一致。 比如…

ESP32出现喂狗失败处理办法

前言 &#xff08;1&#xff09;今天在使用ESP32S3的时候&#xff0c;做移植测试的时候&#xff0c;不知道为什么出现了看门狗报错。简单查了一下&#xff0c;测试发现是任务阻塞导致的。 报错 &#xff08;1&#xff09;报错信息如下&#xff1a; <1>E (5368) task_wdt:…

大数据Flink(九十九):SQL 函数的解析顺序和系统内置函数

文章目录 SQL 函数的解析顺序和系统内置函数 一、​​​​​​​SQL 函数

oracle 表空间详解以及配置操作

Oracle 数据库是由若干个表空间构成的。任何数据库对象在存储时都必须存储在某个 表空间中。表空间对应于若干个数据文件&#xff0c;即表空间是由一个或多个数据文件构成的。 1、常用表空间&#xff1a; 系统表空间 (system tablespace) 是每个 Oracle 数据库都必须具备的。…

Hadoop3教程(二十三):Yarn的三大调度器

文章目录 &#xff08;129&#xff09;FIFO调度器&#xff08;130&#xff09;容量调度器特点资源分配算法 &#xff08;131&#xff09;公平调度器特点缺额的定义队列资源分配方式基于FIFO策略基于Fair策略资源分配算法 DRF策略 参考文献 &#xff08;129&#xff09;FIFO调度…

博客系统中的加盐算法

目录 一、为什么要对密码进行加盐加密&#xff1f; 1、明文 2、传统的 MD5 二、加盐加密 1、加盐算法实现思路 2、加盐算法解密思路 3、加盐算法代码实现 三、使用 Spring Security 加盐 1、引入 Spring Security 框架 2、排除 Spring Security 的自动加载 3、调用 S…

WGCNA分析教程五 | [更新版]

一边学习&#xff0c;一边总结&#xff0c;一边分享&#xff01; 往期WGCNA分析教程 WGCNA分析 | 全流程分析代码 | 代码一 WGCNA分析 | 全流程分析代码 | 代码二 WGCNA分析 | 全流程分析代码 | 代码四 关于WGCNA分析教程日常更新 学习无处不在&#xff0c;我们的教程会在…

Ubuntu小知识总结

Ubuntu相关的小知识总结 一、Ubuntu系统下修改用户开机密码二、Vmware虚拟机和主机之间复制、粘贴内容、拖拽文件的详细方法问题描述Vmware tools灰色不能安装解决方法小知识点&#xff1a;MarkDown的空格 三、Ubuntu虚拟机网络无法连接的几种解决方法1.重启网络编辑器2. 重启虚…

C语言中的3种注释方法

C语言中的3种注释方法 2021年8月28日星期六席锦 在用C语言编程时&#xff0c;常用的注释方式有如下几种&#xff1a; (1)单行注释 // … (2)多行注释 /* … */ (3)条件编译注释 #if 0…#endif (1)(2)在入门教程中比较常见。 对于(1) 【单行注释 // …】&#xff0c;注释只能显示…