入门车载以太网(3) -- 网络层

news2024/11/25 0:40:50

目录

1. 网络通信示例

2. IP地址类别

3. IP数据报

4. 小结


今天继续车载以太网,聊聊网络层。

1. 网络通信示例

我们首先回顾车载以太网的数据传输模型。

从7层开始(车载以太网模糊了5-7层,统称应用层),每个中间层都为上层提供功能,享受其下一层提供的服务。

而网络层位于模型的第3层,负责处理IP数据包在不同网络间的传输、路由、拥塞控制和流量控制,在该层级使用 IP 地址找到最终目的地。 

为什么会出现网络层呢?我们假设以下两种网络通信场景:

  • 当通信双方出现在同一局域网里,可利用交换机直接使用MAC寻址方式进行通信;
  • 当通信双方出现在不同网络时,数据链路层无法直接通信(试想几万台设备通过交换机通信的成本?),因此就需要三层IP地址进寻找目标设备。

我们以Alice和Bob为例,在北京的Alice通过电脑微信客户端向身处上海的Bob的手机发送消息“Hello Bob”,很明显这2个设备没有物理连接,使用多个交换机利用MAC寻址进行数据透传也不现实,那么有没有其他办法呢?路由器就派上了用场,它作为一台拥有独立MAC地址的设备,可以对数据进行转发,承担了网关的作用。

由于MAC地址是设备制造商在出厂生成时固定烧录的,一般来说只要不人为修改,MAC地址就是固定的,就像门牌号一样具备唯一性。如果通过MAC地址想要组建自己的子网,那就必须通知厂商生产时按照你的规划来设置MAC地址,It's totally imTMpossible。

因此在第三层网络层出现了IP地址,常理讲这个地址是逻辑地址,可以自由设置。但我们先把其通信原理讲清楚,再讲IP地址的分类。

首先假设有两个子网段(192.168.0.1\192.168.1.1)(不要纠结怎么来的,先记住它),网段内通过交换机进行数据透传,网段间通过路由器进行数据转发,如下:

ECU0要给ECU1发送数据,整个数据包格式如下:

这种情况下,IP地址没有起到作用,只需要交换机就可发出去。

但如果ECU0要给ECU4发送数据,就需要先把数据发给路由器,再由路由器转发给ECU4;

在ECU0 -> 路由器这一路径下,数据包格式如下:

在路由器 -> ECU4这一路径下,数据包格式如下:

敏锐的你想必已经发现了,在ECU0 -> ECU4这条通路下,变化的只有MAC地址,IP地址始终不变,就好像我给你写信,不管这个信是通过什么交通方式(飞机、火车、汽车)送到你手上,寄信人始终是我,收信人始终是你。

在上述通信过程中,我们深入研究下去,会发现几个问题:

  • ECU0是如何知道要把数据丢给路由器?路由器IP地址怎么来的?

既然把数据丢给路由器,那ECU0肯定知道接收节点不在一个网段内,如何判断?这就引入了子网掩码概念,我们假定子网掩码为255.255.255.0,ECU0只需要“与”上掩码,如下:

源IP:  192.168.0.1 & 255.255.255.0 = 192.168.0.0
目标IP:192.168.1.1 & 255.255.255.0 = 192.168.1.0

就可发现目标IP不在一个网段,那就交给路由器处理吧。

路由器每个端口都有MAC地址,哪总得有个IP地址吧,默认网关的概念又出现了。

如上图,①代表路由器端口位于子网段0,IP地址192.168.0.254;②代码路由器端口位于子网段1,IP地址192.168.1.254。

ECU0在首先配置在该网段的默认网关IP地址为192.168.0.254,一旦发现接受方不在同一网段,它就往这个默认网关这个地址发数据。

这是网络层的部分内容,但实际上数据还是得从数据链路层->物理层发送出去,ECU0是如何知道路由器MAC地址的,这又引入了ARP(Address Resolution Protocol),ECU0广播一条ARP请求,各个节点就会带上自己MAC地址响应,通过这种方式最终实现了网段内ARP缓存表完整,如下表:

  • 路由器是怎么知道从哪个端口把数据扔给ECU4?

如同交换机有自己的SAT(Source Address Table)一样,路由器要完成数据转发,也要维护自己的路由表,该路由表记录目标网段地址、子网掩码、对应端口或者下一跳。

值得一提的是,子网掩码转为二进制表现形式b11....11000,那么掩码前多少位就表示对应子网的网段,例如子网掩码255.255.255.0前24位用于网段表示,因此,这个路由表一般又按如下格式表示:

路由器从端口3接到ECU0发过的报文,发现目标IP地址处于网段1,查找路由表发现是网段1对应端口6,然后再从ARP中找到IP地址对应的MAC地址,最终在数据链路层重新添加头,经由交换机转发给ECU4。

至此,一个简单的通信示例就完成了,这里面涉及到的概念有子网、子网掩码、默认网关、ARP、路由表,每个概念都可以单独再深挖,这里暂时不表。

2. IP地址类别

在第一小节,我们给每个ECU都分配了IP地址:192.168.1.xxx,这个是怎么来的呢?

这就不得不提到IP协议,IPv4和IPv6。

IPv4规定IP地址长度为32位,因此理论上就可以表示2^32 近42亿个终端设备。为方便记录,IP地址分为了4个8位字段,每个字段用十进制表示,采用点-数记号法,例如100.100.101.111。 一般来说,前3个字段表示网络ID,后1个字段表示设备主机ID。

除此之外,IP地址考虑不同规模网络需求,定义了5类地址空间类别,A至E类,具体如下:

A类地址可用于少量的大型网络,B类地址用于中等规模,C类地址适用小型网络。 根据RFC1918"Address Allocation for Private Internets"规定,IANA还将A、B、C类地址预留一部分作为私有地址(Private Address),具体如下:

  • A类:10.0.0.0 -- 10.255.255.255,1个网络--16777216(2^24)个节点
  • B类:172.16.0.0 -- 172.32.255.255,16个网络--65534(2^16)个节点
  • C类:192.168.0.0 -- 192.168.255.255,256个网络 -- 254个节点

因此,192这个怎么来的就不言而喻了。

3. IP数据报

在了解了IP地址类别之后,我们继续来看看IPv4数据报格式。

首先,在MAC层以太网帧Ethertype用0x0800来表示IPv4类型报文,

IPv4数据报总体如下图所示:

在IP层的数据报每个位域描述如下:

  • Version:使用的IP版本号,IPv4 = 4;
  • IHL: Internet Header Length,单位DWORD(32bits);
  • DSCP:Differentiated Service,Traffic Management;
  • ECN:Explicit Congestion Notification,扩展探测丢弃的数据包;
  • Total Length:数据和头的总长度;
  • ID:一帧报文的不同分片;
  • Flag:是否切片,bit1(不分片)、bit2(分片)
  • Fragment Offset:分片偏移;
  • Time to Live:每次路由减1,如果到0,数据包就丢弃;
  • Protocol:第四层的协议;
  • Source IP Address:源IP地址
  • Options:一般来说,这部分都为空

4.小结

本文主要通过一个简单的网络通信示例,描述了IP地址、MAC地址在通信中各自作用,分析了IPv4的数据结构,算是对网络层有一个初步印象。

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

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

相关文章

六个核桃斥资千万研究脑健康,核桃健脑作用科学具象化了

健康,是这两年热度居高不下的社会话题。对健康的追求影响了诸多领域的发展,上至尖端科研,下至日常接触的食品饮料,都已被卷入大势。 其中,“脑健康”这个听起来更前沿的话题,又已经成为格外重要的一个领域…

基于Multisim光控夜灯LED电路(含仿真和报告)

【全套资料.zip】光控夜灯LED电路设计Multisim仿真设计数字电子技术 文章目录 功能一、Multisim仿真源文件二、原理文档报告资料下载【Multisim仿真报告讲解视频.zip】 功能 1.采用纯数字电路,非单片机。 2.通过检测周围光线,光线暗且有声音时自动开灯…

【go从零单排】go中的基本数据类型和变量

Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 基本类型 go中的string、int、folat都可以用连接boolen可以用逻辑表达式计算 package mainimport "fmt&quo…

前端学习笔记—Vue3特性

一、 Vue3与Vite构建工具简介 image.png image.png image.png image.png Vite构建工具(其他的打包工具有webpack,grunt,gulp) image.png image.png 构建 二、创建Vue3项目 vite在TypeScript结合使用上,直接开箱即用&am…

DICOM标准:DICOM图像核心属性概念详解——关于参考帧、病人位置、病人方位、图像位置和图像方向、切片位置、图像像素等重要概念解析

目录 1、参考帧模块属性 2、模态(Modality): 3、病人位置(Patient Position): 4、 病人方位(Patient Orientation): 5、 图像位置和图像方向: 6、切片位置 7、图像像素模块 7.1 图像像素属性描述 7.1.1 每个像素的样本 7.1.2 光度解释 7.1.3 平面结构 7.1.…

短视频矩阵系统的源码, OEM贴牌源码

针对矩阵短视频系统的源码功能设计,我们开发设计了以下核心模块: 1. 短视频一键发布功能:允许用户快速、便捷地发布短视频内容 2. 批量图文剪辑:支持同时编辑和处理多张图片与文本的组合,提高编辑效率 3. 批量剪辑短…

6款IntelliJ IDEA插件,让Spring和Java开发如虎添翼

文章目录 1、SonarLint2、JRebel for IntelliJ3、SwaggerHub插件4、Lombok插件5、RestfulTool插件6、 Json2Pojo插件7、结论 对于任何Spring Boot开发者来说,两个首要的目标是最大限度地提高工作效率和确保高质量代码。IntelliJ IDEA 是目前最广泛使用的集成开发环境…

新能源汽车与公共充电桩布局

近年来,全球范围内对新能源汽车产业的推动力度不断增强,中国新能源汽车市场也呈现蓬勃发展的势头,在政策与市场的共同推动下,新能源汽车销量持续增长。然而,据中国充电联盟数据显示,充电基础设施建设滞后于新能源汽车数量增长的现状导致充电桩供需不平衡,公共充电桩服务空白区域…

健身房管理智能化:SpringBoot技术指南

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了健身房管理系统的开发全过程。通过分析健身房管理系统管理的不足,创建了一个计算机管理健身房管理系统的方案。文章介绍了健身房管理系统的系统分析部…

Abaqus随机骨料过渡区孔隙三维网格插件:Random Agg ITZ Pore 3D (Mesh)

插件介绍 Random Agg ITZ Pore 3D (Mesh) V1.0 - AbyssFish 插件可在Abaqus内参数化建立包含水泥浆基体、粗细骨料、界面过渡区(ITZ)、孔隙在内的多相材料混凝土细观背景网格模型。 模型说明 插件采用材料映射单元的方式,将不同相材料赋值…

lora训练模型 打造个人IP

准备工作 下载秋叶炼丹器整理自己的照片下载底膜 https://rentry.org/lycoris-experiments 实操步骤 解压整合包 lora-scripts,先点击“更新” 训练图片收集 比如要训练一个自己头像的模型,就可以拍一些自己的照片(20-50张,最少15张&…

sheng的学习笔记-tidb框架原理

目录 TiDB整体架构 TiDB架构图 组件-TiDB Server 架构图 流程 关系型数据转成kv ​编辑 组件-TiKV Server​ 架构图 主要功能: 列簇 组件-列存储TiFlash 组件-分布式协调层:PD PD架构图 路由 Region Cache back off TSO分配 概念 解…

计算机网络:网络层 —— 边界网关协议 BGP

文章目录 路由选择协议动态路由协议边界网关协议 BGPBGP 的基本概念BGP-4 的四种报文 路由选择协议 因特网是全球最大的互联网,它所采取的路由选择协议具有以下三个主要特点: 自适应:因特网采用动态路由选择,能较好地适应网络状态…

【在Linux世界中追寻伟大的One Piece】多路转接select

目录 1 -> I/O多路转接之select 1.1 -> 初识select 1.2 -> select函数原型 1.3 -> 关于fd_set结构 1.4 -> 关于timeval结构 2 -> 理解select执行过程 2.1 -> Socket就绪条件 2.2 -> select特点 2.3 -> select缺点 3 -> select使用示例…

小语言模型介绍与LLM的比较

小模型介绍 小语言模型(SLM)与大语言模型(LLM)相比,具有不同的特点和应用场景。大语言模型通常拥有大量的参数(如 GPT-3 拥有 1750 亿个参数),能够处理复杂的自然语言任务&#xff…

双11花了“一部手机钱”买手机壳的年轻人,究竟在买什么?

【潮汐商业评论/原创】 这个双十一,Elsa在天猫多了一笔新支出——手机壳。和大家都熟悉的“义乌制造”不同的是,她的手机壳支出单件就已经到了500块,加上配套的手机链、支架、卡包、耳机壳,总共1000多元,足够买一部学…

03WIFI与蓝牙1——基于全志V3S的Linux开发板教程笔记

1. Kernel支持 1)配置 终端输入: make menuconfig使能如下部分: 2)编译 保存并退出后编译内核: make licheepi_zero_defconfig make menuconfig #配置内核,有需要的话配置 make -j16 make -j16 modu…

02系统跑起来——基于全志V3S的Linux开发板教程笔记

开发环境:Linux系统为Ubuntu 18.04.6 LTS,如在下面操作中提示部分环境/工具缺失未安装,请单独安装。 硬件基本介绍请参考第一篇文章:基于全志V3S的Linux开发板学习笔记01——简介 1. 环境准备 推荐直接下载完整资源包,…

用户思维,才是银行理财的杀手锏

近些年,伴随着居民理财需求的迸发,银行理财市场规模逐步扩大。 在前不久的2024Inclusion外滩大会上,麦肯锡发布了《银行理财六大趋势》,其中提到在财富管理客户风险偏好普遍下移的大背景下,银行理财将是客户财富管理配…

信息安全工程师(79)网络安全测评概况

一、定义与目的 网络安全测评是指参照一定的标准规范要求,通过一系列的技术、管理方法,获取评估对象的网络安全状况信息,并对其给出相应的网络安全情况综合判定。其对象主要为信息系统的组成要素或信息系统自身。网络安全测评的目的是为了提高…