为了在安全模式下实现一些诊断服务,在服务端和客户端应用程序之间添加了Security sub-layer。在客户端与服务端之间进行诊断服务数据传输有两种方法:
1、非安全模式下数据传输
应用程序使用诊断服务(diagnostic Services)和应用层服务原语(Application Layer Service Primitives)在客户端和服务端进行数据交换,安全子层直接传输(“Pass-Thru”) “Application” and "Application Layer"之间数据。
2、安全模式数据传输
应用程序使用诊断服务(diagnostic Services)或者外部服务和应用层服务原语(Application Layer Service Primitives)在客户端和服务端进行数据交换,安全子层使用0x84服务(加密数据传输服务)来接/收加密数据,安全连接必须是点到点的通讯,因此只有是物理寻址被允许,这就意味着只有一个ECU牵涉其中。
有四个子服务:请求、显示、响应和确认。安全模式下,只有被确认的服务才允许被使用。
安全子层的任务是对“应用程序_Application”提供的数据进行加密,对“应用层_Application _Layer”提供的数据进行解密,并添加、检查和删除与安全相关的数据元素。安全子层使用应用层(Application Layer)的SecuredDataTransmission (0x84)服务,根据外部协议(请求和响应),发送和接收整个诊断消息或消息,并以安全的方式进行交换。