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

本文主要是介绍计网----数据包在传输中的变化过程,单播组播和广播,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层的结构,没有操作系统就只有后两层或者后三层的结构

这篇关于计网----数据包在传输中的变化过程,单播组播和广播,ARP协议,ARP代理,免费ARP,DNS协议,路由数据转发过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/246778

相关文章

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S

k8s中实现mysql主备过程详解

《k8s中实现mysql主备过程详解》文章讲解了在K8s中使用StatefulSet部署MySQL主备架构,包含NFS安装、storageClass配置、MySQL部署及同步检查步骤,确保主备数据一致... 目录一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.

Vue实现路由守卫的示例代码

《Vue实现路由守卫的示例代码》Vue路由守卫是控制页面导航的钩子函数,主要用于鉴权、数据预加载等场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、概念二、类型三、实战一、概念路由守卫(Navigation Guards)本质上就是 在路

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程