中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 502查看
  • 0回复

[电子架构] 车载以太网-DoIP ISO 13400-2(3)

[复制链接]


该用户从未签到

发表于 30-3-2024 16:21:01 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


本文接着“车载以太网-DoIP ISO 13400-2(2)”介绍最后几类节点管理类DoIP报文:路由激活请求报文、路由激活响应报文、活动检查请求报文、活动检查响应报文。

      由于路由激活和活动检查报文都直接涉及到套接字(Socket)相关的内容,因此笔者先介绍一下什么是套接字,然后再将ISO 13400-2中套接字处理的内容介绍下,以便读者更好地理解路由激活和活动检查报文。

一、套接字介绍

      要理解什么是套接字,先要从IP地址和端口号说起。IP地址是大家比较熟悉的,它是TCP/IP网络中普遍使用的主要地址形式。IP地址是OSI模型中网络层的通信地址,它唯一地标识了网络设备的网络层接口,从而使数据通过互联网发送至正确的网络设备。

     但问题在于,一个网络设备上可能运行多个应用程序,例如笔记本电脑同时运行了网页浏览器和PC版微信。端口号的作用就是在相同的IP地址下(同一个网络层设备)用来区分不同应用程序(即计算机中的不同应用进程)。TCP和UDP都是OSI模型中的传输层协议,不同的应用层协议在使用TCP和UDP协议传输数据时都需要分配相应的端口号,例如大家熟悉的HTTP协议使用TCP传输层协议,其端口号为80。
     总结一下,IP地址是网络层设备之间正确传输数据的关键,但应用层协议还必须关注分配给各个应用程序的端口号,以便能够通过TCP或UDP协议将网络层设备通过IP地址收到的数据发送至不同端口号所对应的应用程序。    IP地址和端口号组合在一起就称为套接字。例如,一个网络设备的IP地址为192.168.3.1,该网络设备上运行的网页浏览器应用程序对应的套接字为192.168.3.1:80。
二、套接字处理及活动检查     首先从诊断仪和DoIP实体之间的逻辑连接状态的角度介绍车辆的DoIP实体的状态信息和行为需求。     外部设备(例如诊断仪)和DoIP实体之间的逻辑连接通过逻辑设备地址(源地址)和套接字保证唯一性。套接字通过源IP地址和端口、目标IP地址和端口以及传输层协议类型(即UDP或TCP)来表示。DoIP-152: DoIP实体应能够通过套接字处理和关联的源地址区分逻辑连接。DoIP-153: DoIP实体应为每个逻辑连接提供单独的定时器(初始不活动定时器、通用不活动定时器)。DoIP-154: 如果DoIP实体支持认证和确认机制,每个逻辑连接都应支持认证和确认状态。DoIP-127: 当一个新的套接字处于“TCP连接已建立”状态时,它应该以“初始化已完成”的状态加入连接处理表。初始不活动定时器应分配到此连接并启动定时器。DoIP-128: 在接收到DoIP路由激活报文并且成功完成DoIP协议处理后,初始化已完成的套接字表示一个逻辑连接并且此逻辑连接应更新到“已注册(等待认证)”的连接状态。正在初始化的诊断仪的源地址应与此连接关联。初始不活动定时器应停止,通用不活动定时器应分配到此连接并启动。DoIP-129: 在认证机制成功完成后或不需要认证时,连接应设定为“已注册(等待确认)”状态。DoIP-130: 在确认机制成功完成后或不需要确认时,连接应设定为“已注册(路由激活)”状态。DoIP-131:  除了DoIP路由激活报文或用于认证和确认的报文,其它接收到的DoIP报文在连接处于“已注册(路由激活)”之前不应被处理或者路由。DoIP-132:  如果初始不活动定时器或通用不活动定时器超时、或者认证或确认失败、或者诊断仪没有对DoIP活动检查报文进行响应,逻辑连接应设定为“结束”状态。DoIP-133:  如果连接处于“结束”状态(例如,任意一端发出关闭请求之后),TCP套接字应关闭并重置为监听状态,TCP套接字资源释放以允许建立新的连接。图12描述了各种连接状态之间的转换。     活动检查请求报文只能在一个处于“已注册”状态的连接上发送。处于初始化完成状态并且存储在连接表条目中但仍然没有完成注册(例如,等待一个激活路由请求)的套接字上不应发送活动检查请求报文。如果没有路由激活请求报文发送,此状态的套接字随着初始不活动定时器超时而结束。DoIP-134:  活动检查报文只在处于某种“已注册”状态的连接上发送。初始不活动定时器是针对DoIP实体使用无效的DoIP报文在TCP_DATA套接字上尝试连接或者DoIP实体没有发送任何数据的情况下的应对措施。DoIP-083:   每个DoIP实体所支持的每个TCP_DATA套接字都要使用一个独立的初始不活动定时器。DoIP-084:  当套接字已处于“已建立连接”状态(open)时,TCP_DATA套接字的初始不活动定时器应重置为初始值T_TCP_Initial_Inactivity(表38)并启动计时。DoIP-085:  当在TCP_DATA套接字上接收到有效的激活路由请求报文(见表22)后,此TCP_DATA套接字的初始不活动定时器应该立即停止计时。DoIP-086:   如果TCP_DATA套接字的初始不活动定时器超时,则此TCP_DATA套接字将被关闭并重置为监听状态。通用不活动定时器是针对网络连接断开或诊断仪没有发送任何数据但未关闭TCP_DATA套接字连接的情况下的应对措施。在此情况下,通用不活动定时器将关闭TCP_DATA套接字,从而使DoIP实体在经过特定时间的不活动状态后回到默认状态。DoIP-79: 每个DoIP实体所支持的每个TCP_DATA套接字都要使用一个独立的通用不活动定时器。DoIP-80: 当套接字刚刚处于“已建立连接”状态(open)或者在任何时候套接字上有数据接收或发送时,此TCP_DATA的通用不活动定时器应该重置为初始值T_TCP_Genera_Inactivity(表38)。DoIP-124: 如果诊断仪需要保持当前的一个空闲连接处于活动状态,则诊断仪应使用活动检查响应报文。注释:活动检查响应报文是最小的有效报文,它除了重置所对应连接的通用不活动定时器之外不触发任何进一步动作。一个无效的DoIP报文将导致DoIP实体关闭TCP_DATA套接字。DoIP-081: 只要TCP_DATA套接字处于“已建立连接”状态(open),此TCP_DATA套接字的通用不活动定时器就应该一直运行。DoIP-082: 如果TCP_DATA套接字的通用不活动定时器超时,则此TCP_DATA套接字将被关闭并重置为监听状态。套接字处理和活动检查的主要作用是满足DoIP实体应如何处理多个TCP_DATA套接字的需求。此需求是为了保证诊断仪可以与DoIP实体进行连接,并且DoIP实体能在当前连接不受额外连接尝试干扰情况下将未使用的TCP_DATA套接字用于通信。第11章图25展示当诊断仪尝试在一个新建立连接的TCP_DATA套接字上激活路由时触发TCP_DATA套接字处理程序的一个时序图。DoIP-088:  每个DoIP实体应按照图13定义的顺序实施TCP_DATA套接字处理程序。注释1:假定TCP_DATA套接字处理程序的TCP堆栈能够保证监听同一端口的多个TCP套接字根据收到的TCP连接尝试动态地分配和使用,直到没有TCP_DATA套接字可用为止。在此情况下,TCP堆栈使用TCP_RST响应拒绝额外的连接尝试。注释2:为了减少需求的复杂性,每个需求描述聚焦在当前特定的操作,并假定之前的活动检查已经按照图13的时序执行完毕。不同活动检查方法(单个TCP_DATA套接字和所有TCP_DATA套接字)的例子在图14和图15中描述。DoIP-089:  如果路由激活请求报文中的源地址已经分配给接收路由激活请求所在的TCP_DATA套接字,被请求的DoIP实体应接受此路由激活请求。DoIP-106:  如果路由激活请求报文中的源地址与当前接收路由激活请求所在的TCP_DATA套接字所注册的源地址不同,被请求的DoIP实体应拒绝此路由激活。DoIP-090:   如果路由激活请求中的源地址没有分配给任何已建立连接的TCP_DATA套接字并且没有超过DoIP实体能够同时支持的最大TCP_DATA套接字数量,被请求的DoIP实体应接受路由激活请求并将源地址分配给接收路由激活请求所在的TCP_DATA套接字。DoIP-091:   被请求的DoIP实体应通过当前分配给路由激活请求报文中源地址的TCP_DATA套接字发送活动检查请求报文。DoIP-092:  如果在T_TCP_Alive_Check(见表38)时间内没有收到活动检查响应报文,DoIP实体应关闭相应的TCP_DATA套接字并接受此套接字上接收到的路由激活请求报文。DoIP-093:  如果在T_TCP_Alive_Check(见表38)时间内收到活动检查响应报文,DoIP实体应拒绝接受此套接字上接收到的路由激活请求报文。DoIP-094:    如果源地址已知但没有分配给任何已建立连接的TCP_DATA套接字并且DoIP实体同时支持的最大数量TCP_DATA套接字都已注册,被请求的DoIP实体应该向所有当前已建立连接的TCP_DATA套接字发送活动检查请求。DoIP-095:  如果在T_TCP_Alive_Check(见表38)时间内没有收到活动检查响应报文,DoIP实体应关闭相应的TCP_DATA套接字。DoIP实体应接受对应TCP_DATA套接字上接收到的路由激活请求并将源地址注册到此TCP_DATA套接字上。DoIP-096:  如果在T_TCP_Alive_Check(见表38)时间内在所有已注册TCP_DATA套接字上都接收到活动检查响应报文,DoIP实体应拒绝接收到路由激活请求的TCP_DATA套接字的激活请求。
三、路由激活请求报文和路由激活响应报文    路由激活和路由响应报文是为了激活在TCP_DATA套接字的路由所必须发送的DoIP报文。关闭TCP_DATA套接字的路由不需要定义额外的净荷类型,因为可以简单地通过关闭TCP_DATA套接字来实现。第11章图25展示了诊断仪试图激活新建立的TCP_DATA套接字的路由的过程示例。DoIP-57: 每个DoIP实体应支持表22定义的路由激活请求报文。路由激活请求报文的主要参数如下:1、源地址(SA):发出路由激活请求报文的诊断仪地址。2、激活类型:特定的激活类型可能需要不同类型的认证和确认。DoIP-100: 每个DoIP实体应按照图9处理路由激活请求报文。表23定义了路由激活请求激活类型。DoIP-58: 每个DoIP实体应按照表24定义支持路由激活响应报文。路由激活响应报文的主要参数如下:1、诊断仪逻辑地址:发出路由激活请求报文的诊断仪逻辑地址。2、DoIP实体逻辑地址:发出路由激活响应报文的DoIP实体逻辑地址。3、路由激活响应码:由DoIP网关发出。如果诊断仪的路由激活请求被拒绝,DoIP网关将重置与诊断仪的TCP_DATA连接。路由激活成功则意味着DoIP诊断报文现在可以通过TCP_DATA连接进行路由。DoIP-102: 在发送对应的路由激活响应报文后,每个DoIP实体应该按照表25定义执行所需要的动作。DoIP-59: 如果收到的路由激活请求报文中的源地址是未知的,每个DoIP实体应发送响应码设置为0x00的路由激活响应报文。DoIP-60: 如果收到的路由激活请求报文中的TCP_DATA套接字不可用(按照7.2.4套接字处理程序的需求),每个DoIP实体应发送响应码设置为0x01的路由激活响应报文。DoIP-149:  如果收到的路由激活请求报文中的源地址与当前已激活的TCP_DATA套接字收到的连接条目表不一致,每个DoIP实体应发送响应码设置为0x02的路由激活响应报文。DoIP-150:  如果收到的路由激活请求报文中的源地址已注册并且在不同的TCP_DATA套接字激活,每个DoIP实体应发送响应码设置为0x03的路由激活响应报文。注释1:应同时支持多少个源地址由整车厂自行决定。这取决于DoIP实体允许多少个TCP_DATA套接字同时工作,DoIP实体支持的最大同时工作套接字数量可通过7.1.9定义的DoIP实体状态请求报文获取。DoIP-61: 如果路由激活请求前需要额外的认证,  收到路由激活请求报文之后每个DoIP实体应发送响应码设置为0x04的路由激活响应报文(如果DoIP实体支持)。DoIP-105: 如果路由激活请求需要车辆的确认但确认结果为拒绝,  收到路由激活请求报文后每个DoIP实体应发送响应码设置为0x05的路由激活响应报文(如果DoIP实体支持)。DoIP-151: 如果收到的路由激活请求报文中的路由类型DoIP实体不支持,  收到路由激活请求报文后每个DoIP实体应发送响应码设置为0x06的路由激活响应报文。DoIP-62: 如果下列条件全部满足,收到路由激活请求报文后每个DoIP实体应发送响应码设置为0x10的路由激活响应报文:1、路由激活请求报文中的逻辑源地址为DoIP实体已知;2、按照7.2.4的套接字处理程序需求,TCP_DATA套接字可用;3、不需要额外的认证步骤;4、不需要车内的确认。DoIP-63: 如果下列条件全部满足,收到路由激活请求报文后每个DoIP实体应发送响应码设置为0x11的路由激活响应报文(如果DoIP实体支持):1、路由激活请求报文中的逻辑源地址为DoIP实体已知;2、按照7.2.4的套接字处理程序需求,TCP_DATA套接字可用;3、不需要额外的认证步骤;4、需要车内发出的额外确认(例如,通过组合仪表显示确认信息报文)。注释2:这意味着一旦车内已执行了额外的确认,0x11响应码将不再发送并且DoIP实体将按照请求执行路由激活。诊断仪可以周期性地发送路由激活请求报文来判断车内的确认是否已成功完成。
四、活动检查请求报文和活动检查响应报文    活动检查报文的作用是确定一个打开的TCP_DATA套接字是否仍然被诊断仪使用的DoIP报文的报文结构。TCP_DATA套接字处理程序通过活动检查报文进行套接字活动检查(见7.2.4)。第11章图25展示了诊断仪在试图建立一个新的TCP_DATA套接字时触发活动检查报文的时序图。DoIP-75:   每个DoIP实体应支持表32定义的活动检查请求报文。DoIP-76:   每个DoIP实体应按照7.2.4的需求发送活动检查请求报文。DoIP-77:   每个DoIP实体应支持表33定义的活动检查响应报文。活动检查响应报文的参数如下:源地址(SA):当前在TCP_DATA套接字上激活的诊断仪的逻辑地址。DoIP-78:   每个DoIP实体应按照7.2.4的需求接收和处理活动检查响应报文。注释:诊断仪也可以使用活动检查响应报文保持当前的空闲连接处于活动状态,即诊断仪之前没有收到DoIP实体发送的活动检查请求报文也可以发送活动检查响应报文。

未完待续。。。


该用户从未签到

发表于 13-3-2025 05:12:00 | 显示全部楼层
好的,我将继续作为汽车工程师,针对车载以太网-DoIP ISO 13400-2中的节点管理报文进行介绍。

针对提到的最后几类节点管理类DoIP报文,它们分别为:路由激活请求报文、路由激活响应报文、活动检查请求报文和活动检查响应报文。这些报文与套接字(Socket)紧密相关。为了理解这些报文,首先要了解套接字的概念。

套接字(Socket)是网络通信的端点,用于实现不同设备间的数据传输。在车载以太网中,它用于实现ECU之间的通信连接。IP地址和端口号共同构成套接字的唯一标识。其中,IP地址用于标识设备在网络中的位置,而端口号则用于标识设备上的特定服务。

在ISO 13400-2标准中,套接字处理涉及到对通信连接的建立、管理和维护。当需要进行路由激活或活动检查时,相应的请求和响应报文将通过套接字进行传输。这些报文的具体格式和传输过程在标准中都有详细规定。

理解套接字的概念及其在网络通信中的作用,将有助于更好地理解路由激活和活动检查报文的含义和功能。后续我们将详细介绍这些报文的格式和传输过程。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 13-3-2025 05:12:00 | 显示全部楼层
好的,针对您的帖子,以下是专业的汽车工程师回复:

一、套接字介绍

套接字(Socket)是网络通信中的端点,用于实现不同设备间的数据传输。在车载以太网中,它扮演着关键角色。为了理解套接字,我们首先要了解IP地址和端口号。

IP地址是TCP/IP网络中的主要地址形式,用于标识设备的网络位置。而端口号则是用于标识设备上的特定服务或应用程序。套接字则是结合了IP地址和端口号的组合,使得数据可以在特定的设备和应用程序之间进行传输。

二、ISO 13400-2中的套接字处理

在ISO 13400-2标准中,套接字处理涉及到车载以太网中的通信管理。对于路由激活请求报文、路由激活响应报文、活动检查请求报文和活动检查响应报文等DoIP报文,其处理过程中涉及到套接字的创建、绑定、连接和关闭等操作。这些操作确保了车载以太网中的数据传输能够准确、高效地进行。

三、节点管理类DoIP报文介绍

路由激活请求报文用于请求建立通信路径;路由激活响应报文则是对请求的回应,确认路径是否建立成功;活动检查请求报文用于检测目标节点的活动状态;活动检查响应报文则是目标节点对检测请求的回应。这些报文在车载以太网中起到了关键的通信管理作用。

以上是有关车载以太网中套接字以及节点管理类DoIP报文的简要介绍。如有任何疑问或需要进一步了解的内容,请随时交流。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 27-7-2025 02:45 , Processed in 0.323926 second(s), 33 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.