AUTOSAR以太网之IPv4

系列文章目录


返回总目录

文章目录

  • 系列文章目录
  • 一、IPv4报文格式
  • 二、主要函数
    • 1.IPv4_Init()
    • 2.IPv4_Receive()
    • 3.IPv4_Transmit()



一、IPv4报文格式

在这里插入图片描述

二、主要函数

1.IPv4_Init()

这个函数除了对模块配置进行初始化,如果有分包和组包使能,则会对一些相关配置进行初始化如buf长度和位置指针等。如果不涉及分包和组包,那么初始化内容很简单。

2.IPv4_Receive()

在收到报文后根据类型判断为IPv4 (类型 = 800)
然后经过头校验:版本校验,长度校验,checksum校验等。
接下来源地址校验过程比较复杂,以后会拆开讲。先在这里讲个大概。
上述校验合法后,继续校验源地址合法性。
源地址合法性包括是否是loop back IP、预留IP、广播ip或autoip等,如果是这些IP不再往下分析了。
目的地址也需要校验,这里不细说。
取出协议进行识别,看是UDP,TCP,还是ICMP。
然后分别调用UDP_indication / TCP_indication / ICMP_indication

那么在分别把包识别出协议后丢给各个协议进行解析之前,IPv4还做了哪些工作呢?

两项:组包,和检查ARP更新。

3.IPv4_Transmit()

这个函数主要是给上层协议提供发送需要组装的ipc4数据。
调用时机是在Icmp和Udp需要发送的时候,提供数据封装。
底层是用EthIf层来进行报文空间的分配。底层的事交给底层做。不作为分析重点

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

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

相关文章

桌面提醒工具哪个好?简单好用的便签提醒app推荐

在日常的生活和工作中,我们经常会遇到各种各样的事情,有时候可能会遗忘一些重要的事情。这个时候,一个简单好用的便签提醒工具就显得尤为重要了。那么,哪款桌面提醒工具比较好用呢?下面,就为大家推荐一款我…

ONNX模型利用CUDA加速如何正确配置好环境?

目前onnx可选的执行引擎非常多,覆盖了从cpu、gpu到npu,从Intel平台到AMD平台等。如下是onnxruntime所有的执行引擎。 [TensorrtExecutionProvider, CUDAExecutionProvider, MIGraphXExecutionProvider, ROCMExecutionProvider, OpenVINOExecutionProvide…

基于公有云部署wordpress

云平台选择 腾讯云 阿里云 华为云 项目部署 一、架构讲解 1.1、定义与组成 LNMP是Linux、Nginx、MySQL(或MariaDB)和PHP(或Perl、Python)的首字母缩写,代表在Linux系统下使用Nginx作为Web服务器,MySQL作为…

Mongodb安装与配置

Mongodb的下载 这里下载的是MongoDB 7.0.11版本的 首先进入官网:https://www.mongodb.com/ 点击完上面两步后,加载来到该页面,选择自己的版本、系统,是压缩包(zip)还是安装包(msi)。 下载好之后能,来到安装包哪里&a…

互联网直播/点播技术与平台创新应用:视频推拉流EasyDSS案例分析

随着互联网技术的快速发展,直播/点播平台已成为信息传播和娱乐的重要载体。特别是在电视购物领域,互联网直播/点播平台与技术的应用,不仅为用户带来了全新的购物体验,也为商家提供了更广阔的营销渠道。传统媒体再一次切实感受到了…

wavesummit2024发布飞桨3.0版本

今天网上看了wavesummit2024深度学习开发者大会,本来没有啥期待,结果发现飞桨竟然发布3.0版本了! 以下是飞桨框架 3.x 的新特性: 动静统一自动并行: 为了降低大模型的编程难度,飞桨还优化了动静统一的半自动并行编程范…

全国青少年信息素养大赛Python省赛真题

全国青少年信息素养大赛Python省赛真题 第一题 时间限制 : 1000ms 内存限制 : 256MB 【题目描述】 输入一个整数,输出这个整数加 8 的结果。 【输入描述】 输入一行一个正整数 【输出描述】 输出求和的结果。 样例 1 【输入】 5 【输出】 13 第二…

陪诊小程序开发:寻找陪诊师更加快速,全程陪护!

陪诊行业是一个新兴行业,在当下市场中具有较大的发展前景。对于无法陪家人看病或者对医院不熟悉的人来说,陪诊师成为了刚需!目前随着社会的发展,人们的生活节奏不断加快,陪诊市场的需求量也在不断增加,发展…

荣耀终端发布首个端侧AI反诈检测技术,助力用户防范网络诈骗

在今日盛大开幕的2024年上海世界移动通信大会上,荣耀终端以卓越的创新实力引领行业潮流,率先发布了手机行业中首个端侧AI反诈检测技术。该技术旨在为用户提供更加安全、可靠的网络通信体验,助力防范日益猖獗的网络诈骗行为。 AI-321 | 专注全…

技巧类题目

目录 技巧类题目 136 只出现一次的数字 191 位1的个数 231. 2 的幂 169 多数元素 75 颜色分类 (双指针) 287. 寻找重复数 136 只出现一次的数字 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均…

【高考志愿】软件工程

目录 一、专业概述 二、就业前景 三、选择因素 3.1 学校实力 3.2 地理位置 3.3 分数线 四、学习建议 4.1 打好基础 4.2 培养动手能力 4.3 拓宽知识面 4.4 提升综合能力 五、软件工程专业学科排名 高考志愿选择软件工程专业是一个既具有挑战又充满机遇的决定。 一、…

【Redis四】主从复制、哨兵以及Cluster集群

目录 一.主从复制、哨兵、集群的区别 二.Redis主从复制 1.作用 2.原理 3.流程 三.搭建Redis 主从复制 1.源码编译安装以及配置文件修改 1.1.修改 Redis 配置文件(Slave节点操作) 2.验证主从复制 2.1.在Master节点上看日志 2.2.在Master节点上…

Raylib学习-鼠标检测与GPU缓冲区使用

鼠标左键点击运行绘制 #include <raylib.h>int main() {const int screenWidth 800;const int screenHeight 450;InitWindow(screenWidth, screenHeight, "test"); // 设置帧率SetTargetFPS(150); // 设置一个画布&#xff0c;可以使用GPU进行绘制RenderText…

虚拟化技术(二)

目录 三、存储虚拟化&#xff08;一&#xff09;存储虚拟化的一般模型&#xff08;二&#xff09;存储虚拟化的实现方式&#xff08;三&#xff09;案例分析 四、网络虚拟化&#xff08;一&#xff09;核心层网络虚拟化&#xff08;二&#xff09;接入层网络虚拟化&#xff08;…

【笔记】echarts图表的缩放和鼠标滚动冲突的处理解决方案

解决方案不是很好&#xff0c;来源于github的issue&#xff0c;官方提供了&#xff0c;组合键触发缩放的功能。 https://github.com/apache/echarts/issues/5769 https://echarts.apache.org/zh/option.html#dataZoom-inside.zoomOnMouseWheel dataZoom-inside.zoomOnMouseWhe…

Docker、Containerd添加代理

Docker、Containerd添加代理 博文的由来 国内网络环境下使用过docker的小伙伴&#xff0c;多数都会碰到一个一问题&#xff0c;由于连不上国外的dockerhub,导致无法pull需要的镜像&#xff0c;解决方案基本就四种 将镜像仓库地址切换到国内的镜像仓库使用别人打好的镜像包&am…

Android 12.0 通知发送过程源码分析-Framework

以下NotificationManagerService简称 NMS 1. 通知的发送: NotificationManager.notify(int id, Notification notification) 开始. 源码路径: /frameworks/base/core/java/android/app/NotificationManager.java/***发布通知以显示在状态栏中。 如果通知带有* 相同的 ID 已被…

debian打包小结

背景 业务需要&#xff0c;打一个openstack组件的deb包 openstack组件有setup.py可直接支持打rpm包&#xff0c;但不支持deb包&#xff0c;所以手动打deb包 用了dh_make准备打包文件&#xff0c;然后用debuild或dpkg-buildpackages打deb包 步骤 方法有很多&#xff0c;我用…

Linux驱动开发笔记(十二)并发与竞争

文章目录 前言一、并发与竞争的引入1.1 并发1.2 竞争1.3 解决方法 二、原子操作2.1 概念2.2 使用方法 三、自旋锁3.1 概念3.2 使用方法3.3 自旋锁死锁 四、信号量4.1 概念4.2 使用方法 五、互斥锁5.1 概念5.2 使用方法 前言 Linux的子系统我们已经大致学习完了&#xff0c;笔者…

项目测试排期的正确方法是什么?

测试排期是项目排期里面的一部分&#xff0c;所以了解项目排期对整体产品的全貌会有一个宏观的认知&#xff0c;甘特图能很好的体现项目排期&#xff0c;里面包含了参与角色和每个角色对应的排期。项目参与者和项目责任人都可以清晰的看到项目当前进展和项目耗时等。 甘特图可…