车载以太网 - 网络层 - IPv4/IPv6

news2024/11/27 9:34:42

目录

一、网络层基本信息介绍

1、网络协议适用范围

2、IPv4和IPv6的地址

3、Ethernet Frames 的类型

二、两种类型IP地址的定义:

ECU通信的几种方式

路由器(Router)和IP 地址的概念

路由实例介绍

三、IPv4地址介绍

地址分类:

各类型IP可支持的最大网络数量和主机数量参考图示

子网网络

子网掩码例子

共有/私有IPv4 地址和环回地址

IPv4 Packet 包含信息及介绍

IPv6 Packet包含信息及介绍

IPv6地址表示法

IPv6地址:128Bit


一、网络层基本信息介绍

1、网络协议适用范围

        1)允许跨网络边界路由数据包

        2)为上层UDP和TCP提供服务

        3)允许比第 2 层更灵活的地址分配

2、IPv4和IPv6的地址

        IPv4:4 bytes 的地址 (32 Bit)

        IPv6:16bytes 的地址(128 Bit)

3、Ethernet Frames 的类型

        IPv4:Type类型为0x0800

        IPv6:Type类型为0x86DD

        网络层位于数据链路层之上,第三层引入网络的概念,方便支持更加灵活地寻址,实现报文在不同网段之间进行转发,并未上层协议 TCP/UDP 提供服务;其中P 协议作为以太网网络层协议,包括两种类型IPV4和Iv,IP4 的网络地址长度为4字节32位,IPv6的网络地址长度为16字节128位:

二、两种类型IP地址的定义:

        以太网三层发送的数据包针对不同类型的IP类型,其结构也会不同。我们可根据Ethernet帧Type 字段确认该帧的Payload 部分为那种类型的 packet,Type 值为0x0800即Pv4 PacketType值为0x86DD即IPv6 Packet;

以太网二层的寻址方式基于 MAC地址寻址,那我们看下以太网三层的寻址方式:

Network 1和Network 2属于两个单独的网络

ECU通信的几种方式

        1、相同网络内的数据经交换机转发通信

        2、两个直连的ECU直接进行通信

        3、不同网络的数据如何互相通信?

路由器(Router)和IP 地址的概念

        路由器是连接两个或多个网络的硬件设备,在网络间起到网关的的作用

        Network 1的数据包经路由器转发至Network 2;

        路由器如何对接收的报文进行路由转发?

        那就需要基于IP地址导址,以上图IPv4 网络为例,图中每个车载以太网ECU都会分配个IPv4地址,IPv4地址由点分十进制表示,其中又划分网络号和主机号部分。

路由实例介绍

     若Network 1的 ECU 1(P 地址 192.168.1.10)发送一条报文,给到 ECU 4IP 地址192.168.220),其中ECU1将自身的IP 地址信息和ECU4的IP 地址信息,分别作为源IP 地址和目的IP 地址存放在报文中,由于 ECU4 和ECU1属于不同网段,所以 ECU1将该报文发送给路由器设备,路由器接收该报文,解析报文的 P 信息并参考自身的路由表,路由表会列出当前路由器的物理端口,比如当前路由器两个物理端口分别连接Network1和Network 2网段,由于不同网络间的通信需配置网关,否则无法进行三层通信,路由器针对连接了不同网段的物理端口进行网关地址的分配,其中 Network 1 的网关地址IP 为192.168.1.1,Network 2的网关地址为192.168.2.1,接着当路由器解析出该报文的目的IP 地址为192.168.2.20,其中192.168.2代表路由器的直连网段NetworkB的网络号,故路由器将该报文通过NetworkB网关IP地址对应的物理端口,路由转发至Network 2,最终由 ECU4 接收该报文。

三、IPv4地址介绍

地址分类:

        前面讲到 IPv4 地址长度为 4 字节,采用点分十进制表示,其数量约为 43 亿个,为了对这些IP 地址进行统筹分配,internet 委员会定义了5种P 地址类型(即A~E类型)在不同场景下使用,每个IP 地址又分为网络号和主机号。

A类:第一个字节第一位为0,且第一个字节定义网络,后三个字节定义主机,用于大型网络

B类:第一个字节前两位为 10,前两个字节定义网络,后两个字节定义主机,用于中等规模网络

C类: 第一个字节前三位 110,前三个字节定义网络,后一个字节定义主机,通常用于小型网络

D类:不区分网络和主机,用于组播使用

E类:保留

各类型IP可支持的最大网络数量和主机数量参考图示

子网网络

当源地址和目标地址的网络不同时,则需要通过路由器在子网之间进行流量交换:

        在刚才5类IP 地址中我们发现A类和B类网络中可分配的主机数量较多,但实际情况是在单个网络中并不需要安排这么多的主机,或者说将网络进一步划分多个子网?这时候就需要引入子网掩码的概念,在 internet 委员会确认网络号 + 主机号之后,可由本地系统管理员进行二次分配,在源主机号(NetworkID)基础上再划分子网号(Subnet D)和主机号(Host D)在IP 地址的划分后,如何让一个主机了解它所属的网络号和主机号,以及任意两台设备是否属于同一网络?

        这就要使用子网掩码,举例来说:比如两人名叫张伟,一名张伟来自李家村,另一名张伟来自包家村,那如何区分?

        那就需要村长来区分,子网掩码相当于村长的角色,子网掩码共 4 字节 32 位,和IP 地址(与运算)后可获取其对应的IP 网络号,大部分情况下,当网络中只要不超过 254 台主机时,子网掩码默认为 255.255.255.0,网络主机数超过最多限制数时,则需修改子网掩码,扩大网段,或划分 VLAN,使用不同子网。

子网掩码例子

        子网掩码   255.255.255.0

        IP 地址: 192.168.1.10

        子网掩码:255.255.255.0

        网络地址:   192.168.1 

        主机地址: 10

共有/私有IPv4 地址和环回地址

 公有/私有IPv4地址

 环回地址

        IP 地址除了A~E类型外,还包括 Local 公有、Private 私有IP 地址、Loopback 环回地址的概念;首先我们来看公有IP 地址和私有IP 地址,公有P 可直接访问互联网(internet),而私有IP 用于当公有IP 地址不足时在内部网络中使用。注意:私有iP 地址在一个局域网内不能分配给多台主机,私有P 发送的数据不能直接通过路由器转发至Internet 上,需通过路由器进行私有P 地址转化为公有P 地址,该过程称你为“网络地址转换”从A~C类IP地址选取部分范围作为私有IP 地址:

A类私有IP 地址范围:10.0.0.0-10255255.255

B类私有IP地址范围:172.16.00-17231.255255

C类私有IP地址范围:192.168.0.0-192.168.255.255

环回IP 地址(Loopback)范围 127.000-127255255.255

        若主机发送一条报文,该报文的目的IP 地址为环回P 地址时,那该报文不会通过硬件发送至网络的其他设备上,而只会传回自身从而形成一个环路,环回P 地址常用于本地TCP/IP 配置、网络逻辑测试的情况。

IPv4 Packet 包含信息及介绍

         首先IPv4 Packet包,其由IP Header 和 Payload 数据组成,IP Header 最小长度为20个字节,前12个字节提供数据控制信息,后8 个字节提供P 地址信息(包括源IP 地址信息和目的IP地址信息,IP地址信息后面为Options可选区域。

Version4位Version(版本号),指示IP版本(4表示IP版本是IPv4)IHL:4位IHL表示IP Header 长度,其长度范围在 20-60个字节间:IP Header Len = IHL * 0x05

Type of Service8位TOS服务字段,定义网络可靠性、优先级、时延和吞吐量等参数 Total Length16位Total Length表示 Packet 包的总长度

Identification16位ldentification 标识符

Flags3位Flags标志位

Fragment13位分片偏移量三者,用于当发送的数据超过最大数据包长度1500个字节 时进行分片发送的功能。

TTL8位TTL生存周期,规定一个数据包在网络的生存时间,用于防止一个数据包在 网络中无限循环转发。

Protocol8位Protocol协议号,标识上层协议

Header Check Sum: 16位 Header ChecksumIP 报头校验和,只用于校验数据包 Header 部分

Source IP Address32位的源IPV6地址(4byte)

Destination IP Address32位的目的IPv6地址(4byte)

IPv6 Packet包含信息及介绍

IPv6 Header结构相较 IPv4 简单,IPv6 使用固定长度的 Header,长度为40字节,其中只保留数据转发所必须的重要信息存放在IPv6 Header 内。

 Version4位的Version 版本号信息(version=6)

Traffic Class8位的 Traffic Class流量等级,指示Pv6 数据流通信类别/优先级(功能类似 IPV4TOS字段)

Flow Label20位Flow Label 流标签,用于区分和标记不同的数据流量,实现对 Qos(Qualityof Service)的支持

Payload Length16位Payload Length表示有效负载的长度

Next Header8位Next Header 标识下一选项Header 或上层协议 Header 的类型

Hop Limit8位Hop Limit,功能类似于Pv4的TTL字段,通过在路由器之间的转发次数 限定包的生命周期。

Source IP Address128位的源IPV6地址(16bvte)

Destination IP Address128位的目的IPv6地址(16byte)

IPv6地址表示法

IPv6地址:128Bit

FE80:0000:0000:0000:385AAA34:BD1B:CB2D  (Complete)

FE80:0:0:0:385A:AA34:BD1B:CB2D  (Reduced zeros)

FE80::385A:AA34:BD1B:CB2D (Reduced blocks)

IPv6地址长度为16字节(128位),采用冒分十六进制表示法;即Pv6地址按每16位划分为一组,每组转换成四个十六进制数,每组之间用冒号隔开,基于冒分十六进制法,IPv6地址还可以进一步简化为两者短格式。

格式一可以省去任意组的前导0来简化IPv6 地址,0000可简化为0。

格式二针对多个连续组全为0的情况时,可用双冒号".:"简化,但注意一个Pv6 地址中”..只能出现一次。

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

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

相关文章

C语言实现移位密码

一.移位密码 移位密码(Caesar Cipher)也叫凯撒密码是一种简单的加密技术,它通过将明文中的每个字母按照指定的位数进行移位,从而生成密文。例如,在一个"左移3位"的移位密码中,文中的每个字母都向左移动3个位置&#xff…

7.2 SpringBoot实现上传图片API + url映射本地路径registry.addResourceHandler

文章目录 前言一、url映射本地路径二、上传图片API2.1 接口UploadService2.2 实现类UploadServiceImpl2.3 上传图片Controller 三、测试最后 前言 在图书借阅系统里,有很多图片需要前端展示,这些图片大都是由用户上传,保存在服务端&#xff…

chatgpt赋能python:Python拆数程序:如何快速分解数字?

Python拆数程序:如何快速分解数字? 在计算机编程中,数字拆分是一个非常重要的概念。拆分数字可以让我们更好地理解数字格式,进行计算和分析。而Python作为一种功能强大的编程语言,提供了许多高效的工具来帮助我们快速…

【备战秋招】每日一题:华东师范大学保研机试-2022-罗马数字

为了更好的阅读体检,可以查看我的算法学习博客罗马数字 题目内容 罗马数字是古罗马使用的记数系统,现今仍很常见。 罗马数字有七个基本符号: I,V,X,L,C,D,M。 罗马数字IVXLCDM对应的阿拉伯数字1510501005001000 需要注意的是罗马数字与十进位数字的…

chatgpt赋能python:Python拆分语句,让数据处理更有效率

Python 拆分语句,让数据处理更有效率 Python是一种强大的编程语言,不仅支持各种应用开发,而且非常适合数据处理。Python的易用性和灵活性使其成为了数据科学家和工程师首选的编程语言之一。Python的字符串拆分功能能够轻松处理数据的分割和组…

从C语言到C++_20(仿函数+优先级队列priority_queue的模拟实现+反向迭代器)

目录 1. priority_queue的模拟实现 1.1 未完全的priority_queue 1.2 迭代器区间构造和无参构造 1.3 仿函数的介绍和使用 1.4 完整priority_queue代码: 1.5 相关笔试选择题 答案: 2. 反向迭代器 2.1 反向迭代器的普通实现 reverse_iterator.h&a…

性能测试基础知识(一)性能测试策略

性能测试策略 一、什么是性能测试?二、性能测试的目的三、性能测试策略1、基准测试2、并发测试3、负载测试4、压力测试5、其他测试 一、什么是性能测试? 性能测试是在一定的负载1条件下,系统的响应时间等特性是否满足特定的性能需求。需要有…

软考A计划-系统集成项目管理工程师-信息化知识(二)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

【高危】Apache Nifi JMS组件存在JNDI反序列化漏洞

漏洞描述 Apache NiFi 是一个开源的数据流处理和自动化工具, JndiJmsConnectionFactoryProvider 控制器组件用于配置 JMS 连接地址。 Apache NiFi 1.8.0 至 1.21.0 版本中,由于 JndiJmsConnectionFactoryProvider 控制器服务允许已授权的用户配置 URL…

NUCLEO-F411RE RT-Thread 体验 (3) - GCC环境 uart驱动的移植以及console的使用

NUCLEO-F411RE RT-Thread 体验 (3) - GCC环境 uart驱动的移植以及console的使用 1、准备工作 在第一节里,我们用stm32cubemx将pa2 pa3管脚配置成usart2,用于跟st-link虚拟串口的打印用,那么我们先重定向printf函数,看这条通道是…

创建 Python 脚本以在 Linux 中打开新终端并运行命令

文章目录 创建在 Linux 中打开新终端并运行命令的 Python 脚本在 Linux 中创建 Python 脚本来检查 Python 版本使打开的终端保持活动状态并在其中运行命令的 Python 脚本在 Linux 中使用 Python 子模块 subprocess() 将命令传递到新终端总结 Linux 操作系统以其程序员广泛使用的…

PB9如何实现datawindow打印导出PDF,PB导出PDF

PB9如何实现datawindow打印导出PDF,PB导出PDF? 之前的saveas导出pdf,设置非常麻烦。需要 1. 安装gs705w32.exe 2. 安装虚拟打印机 Sybase\Shared\PowerBuilder\drivers\ADIST5.INF 手动添加打印机 这个方法现在对于win64不支持。 今天客…

window11 + python3.7+NVDIA11.7 +pytorch GPU 加速环境配置

window11 python3.7NVDIA11.7 pytorchGPU 加速环境配置 关于pytorch配置GPU环境我在网上看了很多,其实现在基本上没有windows 11 版本环境的配置但是其实没必要担心这个,这没有影响。 对于博主呢,其实不太像配置GPU的,因为其实…

【MYSQL篇】一文弄懂mysql索引原理

文章目录 索引是什么?索引定义索引类型 索引存储模型推演二分查找二叉查找树( Binary Search Tree)平衡二叉树(AVL Tree)多路平衡查找树(B Tree)B树(加强版B Tree) 小结 …

PyQt中数据库的访问(一)

访问数据库的第一步是确保ODBC数据源配置成功,我接下来会写数据源配置的文章,请继续关注本栏! (一)数据库连接 self.DBQSqlDatabase.addDatabase("QODBC") self.DB.setDatabaseName("Driver{sqlServer…

shell 实现子进程多任务,进程高并发

多进程的作用 提高程序的效率:一些CPU密集型的任务,如数据处理、解压、加密等,使用多进程可以提高程序的执行效率,更快地完成计算任务; 实现更复杂的功能:多进程可以在同一时间向不同的方向处理不同的任务…

SpringBoot创建和运行

1、什么是SpringBoot1.1、优点 2、项目创建2.1、使用Idea创建2.2、使用网页创建 3、项目目录介绍4、项目运行5、包路径错误 1、什么是SpringBoot Spring是为了简化Java程序开发的。Spring Boot是一种用于快速构建独立、生产级别的Java应用程序的开源框架,是为了简化…

MySQL优化--undo log和redo log的区别

首先我们需要知道两个概念 缓冲池(buffer pool):主内存中的一个区域,里面可以缓存磁盘上经常操作的真实数据,在执行增删改查操作时,先操作缓冲池中的数据(若缓冲池没有数据,则从磁盘加载并缓存…

MySQL数据库基础 13

第十三章 约束 1. 约束(constraint)概述1.1 为什么需要约束1.2 什么是约束1.3 约束的分类 2. 非空约束2.1 作用2.2 关键字2.3 特点2.4 添加非空约束2.5 删除非空约束 3. 唯一性约束3.1 作用3.2 关键字3.3 特点3.4 添加唯一约束3.5 关于复合唯一约束3.5 删除唯一约束 4. PRIMARY…

燃气管网监测系统助力天燃气管道安全运行

随着城市化的进程,燃气管道网络在各个城市中越来越密集,一旦发生燃气泄漏等安全事故,后果将不堪设想。因此,城市燃气管网的建设发展有赖于制定一个安全可靠的监控方案,以保障供气管道与用户安全。物联网技术的发展为城…