计网----数据包在传输中的变化过程,单播组播和广播,ARP协议,ARP代理,免费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/168321.html

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

相关文章

RPA的尽头是超自动化?

超自动化在经过数年的发酵期后,已从一个科技概念崛起为市值近千亿元的新赛道,包括各大互联网巨头、科技公司都纷纷围绕超自动化进行战略布局。 一方面,是行业巨头选择纷纷跻身超自动化新赛道,另一方面,RPA行业的领军企…

Proteus仿真--VB上位机程序控制DS1302时钟仿真(Proteus仿真+程序)

本文主要介绍基于51单片机的VB上位机程序控制DS1302时钟仿真设计(完整仿真源文件及代码见文末链接) 简介 硬件电路主要分为单片机主控模块、DS1302模块、LCD1602液晶显示模块以及串口模块 (1)单片机主控模块:单片机选…

Git最佳实践:git常用命令和原理

Git 是一个开源的分布式版本控制系统。 Git 工作区、暂存区和版本库 工作区:就是你在电脑里能看到的目录。暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时…

Leetcode—104.二叉树的最大深度【简单】

2023每日刷题(六) Leetcode—104.二叉树的最大深度 递归实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/int maxDepth(struct TreeNode* root){…

热点不热!如何修复笔记本电脑未连接到移动热点的问题

当你远离常规Wi-Fi时,移动热点是让你的笔记本电脑上网的关键,但当它没有按计划运行时,你会怎么办?以下是Windows笔记本电脑无法连接到移动热点时的几种修复方法。 为什么我的笔记本电脑没有连接到我的热点 由于你的笔记本电脑正试图连接到另一个有限制和可能存在问题的设…

PHP yield

概念: Generator:带 yield的function yield:Generator或task的中断关键字,执行到yield时一次调度周期执行完即阻塞,并返回右侧表达式结果,等待下一次调度器运行next()或迭代遍历才会继续往下执行&#xff0…

2023-10-23 LeetCode每日一题(老人的数目)

2023-10-23每日一题 一、题目编号 2678. 老人的数目二、题目链接 点击跳转到题目位置 三、题目描述 给你一个下标从 0 开始的字符串 details 。details 中每个元素都是一位乘客的信息,信息用长度为 15 的字符串表示,表示方式如下: 前十…

rust学习——泛型 (Generics)

文章目录 泛型 Generics泛型详解结构体中使用泛型枚举中使用泛型方法中使用泛型为具体的泛型类型实现方法 const 泛型(Rust 1.51 版本引入的重要特性)const 泛型表达式 泛型的性能 泛型 Generics Go 语言在 2022 年,就要正式引入泛型&#xf…

mysql下载和安装,使用

先下载安装 官方下载 已下载备份软件 安装,一路下一步设置环境变量 4. 打开一个cmd,输入mysql -u root -p

Spark内核调度

目录 一、DAG (1)概念 (2)Job和Action关系 (3)DAG的宽窄依赖关系和阶段划分 二、Spark内存迭代计算 三、spark的并行度 (1)并行度设置 (2)集群中如何规划并…

Visual Studio Code官网下载、vscode下载很慢、vscode下载不了 解决方案

前言 开发界的小伙伴们对于Visual Studio Code开发环境来可以说非常熟悉了,但由于在Visual Studio Code官网的下载速度非常的慢,即便开了代理也是一样的很慢、甚至下载被中断,几乎不能下载。 解决方案 1、在Web浏览器上打开vscode官网&#…

RabbitMQ基础篇 笔记

RabbitMQ 余额支付 同步调用 一步一步的来,支付业务写完后,如果之后加需求,还需要增加代码,不符合开闭原则。 性能上也有问题,openfeign是同步调用,性能太差。 同步调用耦合太多。 同步的优势是可以立…

Android View拖拽startDragAndDrop,Kotlin

Android View拖拽startDragAndDrop,Kotlin import android.os.Bundle import android.util.Log import android.view.DragEvent import android.view.View import android.view.View.OnDragListener import android.view.View.OnLongClickListener import android.w…

C语言之排序

1.冒泡排序 冒泡排序就不多说了,只需要两层循环嵌套,两两比较确定相对正确的顺序即可。 2.插入排序 插入排序的思想就是每一次向后寻找一个再将其与前面有序的部分进行对比,寻找合适位置插入。 这里关键要避免让前移超出目前读取的数字&…

高效MMdetection(3.1.0)环境安装和训练自己数据集教程(实现于Linux(ubuntu),可在windows尝试)

一、前言 很久没用mmdetection了,作为目标检测常见的几个深度学习框架,mmdetection用的人还是很多的,其中比较吸引人的一点就是mmdetection集成了非常多的算法,对于想做实验对比和算法学习的人来说,基于这个框架可以事…

寻找二叉树一个节点的后继节点

后继节点:中序遍历的后一个节点 普通二叉树:中序遍历得到一个list,时间复杂度O(n) 本题的二叉树:有父节点的指针,后继节点与原节点的距离为1,因此可以直接通过父节点找到下一个节点 优化:节点…

64 最长公共子序列

最长公共子序列 题解1 DP 给定两个字符串 text1 和 text2,返回这两个字符串的 最长公共子序列的长度。如果不存在 公共子序列,返回 0 。 一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些…

空间地图GIS基础

一、GIS基本概念 地理信息系统(Geographic Informaiton System, GIS)是一个可以建立、浏览、查询、分析地理空间数据的软件系统,其功能小至地图的展示,大至空间决策分析与支持。 1.GIS基础 (1)地理信息系统(GIS)的概念与组成 …

【Linux系统编程】命令模式2

目录 一,Linux下的初阶认识 1,管道 2,时间戳 二,Liunx系统命令操作 1,date时间指令 2,cal日历指令 3,which和find查找指令 3-1,which指令: 3-2,find…

Python 测试框架unittest和pytest的优劣

一、Unittest Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest则是Python语言的标准单元测试框架。 Unittest支持自动化测试,测试用例的初始化、…