精华内容
下载资源
问答
  • 网络层服务

    2017-10-18 21:18:02
    1 网络层基本概念 从发送主机向接收主机传送数据段(segment) 发送主机:将数据段封装到数据报(datagram)中 接收主机:向传输层交付数据段(segment) 每个主机和路由器都运行网络层协议 路由器检验所有穿越它的...

    1 网络层基本概念

    • 从发送主机向接收主机传送数据段(segment)
    • 发送主机:将数据段封装到数据报(datagram)中
    • 接收主机:向传输层交付数据段(segment)
    • 每个主机和路由器都运行网络层协议
    • 路由器检验所有穿越它的IP数据报的头部域
    • 决策如何处理IP数据报

    这里写图片描述

    2 网络层核心功能-转发与路由

    • 转发(forwarding):将分组从路由器的输入端口转移到合适的输出端口
    • 路由(routing): 确定分组从源到目的经过的路径
    • 路由算法(routing algorithms)

    这里写图片描述

    3 网络层核心功能-连接建立

    • 某些网络的重要功能:
      • ATM, 帧中继, X.25
    • 数据分组传输之前两端主机需要首先建立虚拟/逻辑连接
      • 网络设备(如路由器)参与连接的建立
    • 网络层连接与传输层连接的对比:
      • 网络层连接: 两个主机之间 (路径上的路由器等网络设备参与
        其中)
      • 传输层连接: 两个应用进程之间(对中间网络设备透明)

    4 网络层服务模型

    网络层为发送端(主机)到接收端(主机) 的数据报传送“通道(channel)” 提供什么样的服务模型(service model)?

    这里写图片描述

    • 无连接服务(connection-less service):
      • 不事先为系列分组的传输确定传输路径
      • 每个分组独立确定传输路径
      • 不同分组可能传输路径不同
      • 数据报网络(datagram network )
    • 连接服务(connection service):
      • 首先为系列分组的传输确定从源到目的经过的路径(建立连接)
      • 然后沿该路径(连接)传输系列分组
      • 系列分组传输路径相同
      • 传输结束后拆除连接
      • 虚电路网络(virtual-circuit network )

    5 Internet网络层

    主机、路由器网络层主要功能:

    这里写图片描述

    展开全文
  • ISO15765_2 网络层服务

    千次阅读 2020-04-17 09:18:46
    标准CAN网络通信采用分层设计模式,参考OSI基本模型,其分层如下: 编号 架构 架构 ISO 1 Application Layer 应用 ISO-...

    1 参考OSI的CAN模型

    1.1 CAN分层模型

    CAN网络通信采用分层设计架构(参考OSI基本模型),其分层如下:

    编号

    层架构

    层架构

    ISO

    1

    Application Layer

    应用层

    ISO-14229-3

    2

    Session Layer

    会话层

    ISO-14229-2

    3

    Network layer

    网络层

    ISO-15765-2

    4

    Data Link layer

    数据链路层

    ISO-11898-1

    5

    Physical layer

    物理层

    生产厂商定义

     

    1.2 CAN 软件架构

    CAN软件架构(Vector协议栈)如下:

    注:如上图,只有诊断报文才会通过CANTp模块处理。

          15765-2网络层服务介绍CAN TP模块的理论基础,用于诊断报文在网络层的传输,当接受数据大于8个字节时,网络层会把接收到的多帧数据组包成单个数据传输给应用层;当发送数据大于8个字节时,网络层会把数据分割成多个报文传输到总线上。

           一个CAN报文一次能传输8个字节的数据,而部分诊断服务响应报文的数据长度超过8个字节,标准CAN帧一次只能发送8个字节数据,这时候发送节点网络层会把数据分割成若干帧报文发送出去,接收节点接收到若干帧报文后,把数据重新组装在一起。

     

    2 网络层协议

           网络层服务协议指定不同ECU网络层之间的数据传输协议,网络层协议允许传输/接收数据长度最高达4095个字节的数据,并反馈传输/接收的结果给相对应的层。

          报文数据长度不超过7个字节(正常寻址下)时,报文通过单帧发送/接收;当报文数据长度大于7个字节时,网络层会对数据进行组包(接收报文)及解包(发送报文),并通过首帧流控帧续帧配合完成数据的发送。

    2.1   帧传输简介

    2.1.1 单帧传输数据

         单帧用于传输数据长度低于7(正常寻址下)的数据传输。

         如请求诊断会话服务的请求默认会话子服务:

         

    注: ID为0x713的报文为请求服务报文,由Clent发出,Server接收;

            ID为0x613的报文为响应服务报文,由Server发出,Clent接受;

     

    如何看诊断报文内容(通过协议控制信息(N_PCI)来区分)?

    下表给出了诊断报文单帧的结构,Byte1 的前四比特的值为0(代表单帧),后四个比特的值用于表明传输数据的字节数;

    上面第一帧报文: 02 10 01

              byte1中的0表明当前是单帧,2 代表当前帧数据长度为2;10 01 代表当前传输的数据(2个字节);

    上面第二帧报文:06 50 10 00 32 01 F4

            byte1中的0表明当前是单帧,6代表当前数据长度为6; 50 10 00 32 01 F4代表当前传输的数据(6个字节);

     

    2.1 .2 多种帧混合传输数据

          如传输一个数据长度为54个字节的数据,其发送流程如下:

     其流程是:

    1.  发送节点发送首帧 ,并等待接收节点发送的流控帧,
    2.  接收节点接收到首帧后反馈一帧流控帧(流控帧用于协调传输能力,BS =3 ),
    3. 发送节点接收到流控帧后,持续发送3帧续帧(连续帧表明当前BS =3)后,等待接收节点发送的流控帧;
    4. 重复第2及第3步骤,直到数据发送完成。

     

    注:首帧,续帧,流控帧结构见 2.2.1.2 N_PCI;

     

    2.2 网络层协议数据单元N_PDU

          前面介绍了单帧与多帧传输(首帧,续帧,流控帧协同进行多帧传输);网络层服务定义好了数据在网络层里的数据结构,该机构称为N_PDU,网络层通过 N_PDU(网络层协议数据单元)用于实现不同节点间的网络层实体的通讯。      

          N_PDU有SF N_PDU, FF N_PDU, CF N_PDU, FC N_PDU四种类型。

     

    2.2.1  N_PDU格式

         网络协议数据单元由地址信息,协议控制信息,数据域构成。其格式如下:

    Address Information

    Protocol Control Information

    Data Field

    N_AI

    N_PCI

    N_Data

       怎么理解N_PDU呢,你可以把他理解成如下的一个结构体;网络层与数据链路层之间的数据交换,通过传输这样的结构体变量来进行。

    /*定义地址信息,依据来自2.2.1.1 N_AI*/
    typedef struct
    {
    uint8 N_SA;
    uint8 N_TA;
    uint8 N_TA_Type;
    }N_AI_type;
    
    /*定义N_PDU结构*/
    typedef struct
    {
     N_AI_type N_AI;
     uint8*   data;/*data是个8字节数组,由N_PCI跟N_data组成*/
    }N_PDU_Typde
    
    
    N_PDU_type N_PDU;/*N_PDU作为数据交换的参数,从而实现数据在网络层与数据链路层之间的交换*/

    2.2.1.1 N_AI

    地址信息由源地址(N_SA),目标地址(N_TA),目标地址类型(N_TA Yype),地址扩展信息(N_AE)组成。

     

    当Message Type为Diagnostic时,N_AI由N_SA, N_TA, N_TAtye组成。

    当Message Type为Remote Diagnostic时,由N_SA,N_TA,N_TA type,N_AE四个组成。

    注:

        Message Type一般都为Diagnostic;

    N_SA

    N_TA

    N_TA type

    N_AE

    1 byte

    1 byte

    Physical/functional

    1 byte

     

    物理寻址与功能寻址

    N_TAtype参数是N_TA的扩展,用于选择通信模式

    物理寻址 1对1通信,适用于所有格式N_PDU。
    功能寻址 1对N通信,仅适用于单帧通信。

         在车载CAN网络中,一个网络中存在若干个节点,当外围诊断设备需要读取目前车内所有节点(1对N)的故障状态时,通过发送功能寻址的请求诊断报文,该报文会被网络中所有节点接收;如我们只需要读取某个特定节点(1对1)的故障状态,通过发送物理寻址的请求诊断报文。

        

    节点名称 物理寻址请求报文ID 功能寻址请求报文ID 响应报文ID
    空调AC 0X763 0x7FF 0x723
    大屏 0x764 0x7FF 0x724
    仪表盘 0x765 0x7FF 0x735

         可以看出,不同节点的物理寻址ID是唯一且固定的,而不同节点的功能寻址ID是同一的;而所有的响应报文都是物理寻址。

     

    注:本文中,请求报文为客户端(外温诊断设备)发出的报文,响应报文由服务器(车载ECU)发出的报文。

     

    2.2.1.2 N_PCI(重要内容)

       N_PCI规定FF,SF,CF,FS的结构,其定义见下图:

     

    • Signal Frame单帧

    看下图中红色标记处:

        如下的单帧报文解析,byte1 为0x03,0代表单帧,3代表数据长度为3;byte2~byte4 代表传输的数据,后4位为填充数据。

     单帧错误处理:如果接收到的SF_DL为0或大于7,网络层要忽略本次接收;

     

     注意:如果一帧报文的数据不足8字节,生于部分要用特定数据(自定义)进行填充。

     

    • First Frame首帧

    看下图红色标记处:

       如下的首帧报文中;byte1 数据为10;byte2 为2C; 1表示当前为首帧,0x02C表示数据长度;后面6字节为数据;

        FF_DL占12个比特其范围为1~4095,表明网络层能处理最大的数据长度为4095各字节;

     

             

          如上的首帧报文解析,1 代表首帧报文,02C代表数据总长度为44字节,62 F1 AE 05 88 91为首帧传输的数据,这里传输了6字节数据,剩下的38字节数据将通过续帧传输。

     

     单帧错误处理:

       如果FF_DL小于8(正常寻址)或小于7(扩展或混合寻址),网络层要忽略本次接收。

      如果FF_DL大于目前数据缓存区的容量,认为当前出现错误,并反馈发送节点停止后续报文传输(设置流控帧的FS = OverFlow)

     

    • Consecutive Frame续帧

       如下图中红色标识处:

       续帧的第一个字节为0x21;2代表续帧,1代表当前的帧序列号。

       多帧传输时,服务器首帧发送完毕且接收到客户端反馈的流控帧后,服务器便会发出第一个续帧,然后按特定时间要求发送第2个,第3个续帧.....第BS个续帧,直到SN达到BS的数值或者数据发送完成。如果发送了BS个续帧数据仍未发送完,此时客户端会发送流控帧,服务器接收后组织下一快的续帧发送。

     BS为一个数值,其范围为【1,15】,表示续帧连续发送的最大次数。

     

    多帧传输的最后一帧时续帧,其的SN可能时0到BS中的任意整数值。

     

     

    • Flow Control Frame流控帧

    流控帧由FS,BS,Stmin三个参数组成。

     

    FS

    流控制状态

    ContiuneToSend(0x00):表明接收端做好接收BS个续帧的准备

    Wait(0x01):让接收端等待接收新的流控帧

    OverFlow(0x02):表明当前接收能力不足,让发送端停止后续发送

    BS

    快大小

    表明接收端要求一次接收续帧的能力大小

    Stmin

    最小时间间隔

    接收端同志发送端自己的接收能力,让发送端调整发送报文的时间。

    范围(0~127)代表(0~127)ms

    范围(0xF1~0xF9)代表(100~900)us

     

    byte1中:3代表当前为流控帧,0代表ContiuneToSend(0x00):表明接收端做好接收BS个续帧的准备;

    byte2中:F代表当前要求续帧的快大小为15,即需连续发送15帧续帧。

    byte3中:5代表续帧之间传输的时间间隔为5ms。

     

    流控帧的作用

         因不同节点的传输及数据处理能力不一样,流控帧接受节点就是告诉发送节点自身的接受能力与状态,防止出现发送节点发送过快,接受节点处理不过来的情况。

     

    最大等待流控帧等待传输(N_WFTmax)(需确认):

         当FC 的 FS 为Wait时,表示接受节点希望发送节点暂停发送,等待FS 为CTS时,再继续发送。等待过程中,会定期发送流控帧,

    如果后续流控帧的FD一直为Wait咋处理呢:

         FC.WT报文发送的最大次数为N_WFTmax,当接受到N_WFTmax次等待流控帧后,忽略本次传输。

     

    3 网络层服务原语

            CAN总线软件框架基于分层设计,至下而上依次是:驱动层,数据链路层,网络层,会话层,应用层。 

           如Client请求10 01(默认会话请求),从底层驱动接受到数据到把数据传输到应用层处的过程中,涉及各层之间的数据传输与数据传输状态确认。

           CAN网络层使用服务原语,实现数据在相邻层之间传输与传输状态确认(如对服务原语不甚了解,以下链接可供参考https://blog.csdn.net/ventry/article/details/5268539)。

           

     3.1 网络层服务原语类型

              CAN网络层提供了4种服务原语用于数据的传输与传输状态确认有,其分别是N_USData.request,N_USData.confirm,N_USData_FF.indication,N_USData.indication。

              网络层在autosar里对应的软件模块为CAN_TP,服务原语就是网络层(can_tp)与数据链路层(can_if)的应用接口函数。其对应关系如下:

    服务原语 函数接口 功能
    N_USData.request CanTp_Transmit can_tp发送数据到can_if
    N_USData.confirm CanTp_TxConfirmation can_if通知can_tp数据是否成功发送到总线上
    N_USData_FF.indication                  -  
    N_USData.indication CanTp_RxIndication can_tp接受到can_if的数据

     

     

     3.1.1 N_USData.request 

             请求服务原语由在应用层发出,用于高层把请求的数据<MessageData>跟数据长度<Length>传输到网络层中,网络层数据处理后,通过驱动把数据传输到N_SA,N_TA,N_TAtype,N_AE等地址信息限定的节点的网络层中。请求服务原语的格式如下:

           

    注:

    /该服务原语指出了函数名以及函数参数的类型*/
    
    typedef uint8 Std_ReturnType;
    
    typedef struct
    {
    uint8* Sdu_data_ptr;/*指向传输的数据*/
    uint16 sdu_lentg;/*传输数据的字节数*/
    }} PduInfoType;
    
    
    
    Std_ReturnType CanTp_Transmit(PduInfoType* CanTpTxInfoPtr)
    {
    /*函数实体*/
    }

     

    3.1.2  N_USData.confirm

           确认服务原语由网络层发送,用以表明N_USData.request(以地址信息限定的请求服务原语)的完成状态。确认服务原语的格式如下:

           

         请求服务原语与确认服务原语是相辅相成的,当高层通过请求服务原语把数据传输到网络层后,网络层会把数据传输到下层去。

    当下层对数据发送处理后,会把相应的执行结果传输到网络层,网络层通过确认服务原语把执行结果发送给高层。

     

    3.1.3  N_USData_FF.indication(在vector协议栈上未看到该服务原因的函数)

              首帧指示服务原语:当网络层接收到首帧报文时,发送首帧服务原语给高层,告知高层报文首帧数据到来。

    首帧指示服务原语格式如下:

     

                

       3.1.4 指示服务原语

          当网络层完成单帧接收或者一次完整的多帧接收并对数据进行解包后,指示服务原语把接收到的数据及数据状态传输到高层。

    其格式如下:

          

     

    3 网络层定时参数

     

         再看这幅图,多帧数据的一个发送流程,试想如果服务器发送一个单帧后,服务器没有接受到客户端的流控帧(假设此时是总线收到干扰导致流控帧接收失败),这时候客户端岂不是一直卡在等待流控帧的这个过程中,进入了等待的死循环?

        对以上可能出现的请客,实际方案如下;我们定义首帧发送完成到接收到流控帧的一个时间要求BS,如50ms,首帧发送确认时开始计时,如果时间到了,还未收到流控帧,则会产生一个BS_timeout的错误,该错误表示规定时间内未接收到流控帧,该错误产生后会终止当前报文的发送,并把发送结果传输给应用层。

    网络层定时参数有如下组成Ar,As,Br,Bs, Cr, Cs 6个,如下图定义了每个参数的计时的起点跟终点。

    如:

      As:网络层把数据传输到数据链路层为起点,数据传输到总线上为终点,As就是数据在数据链路层及物理层处理的最大时间;_超时报As_timeout的错误,

     Bs: 等待流控帧的最大时间;

     Cs:俩个连续流控帧的最大间隔时间;

     Ar:

    注:As,Ar, s代表send,r代表receive。

     

    总结就是定义了传输中过程中的一些时间要求,如果要求时间内未完成期望的动作,则认为超时,终止当前报文后续传输。

    网络定时参数由整车厂的网络开发人员定义。

        网络层服务定义了如下6个网络层定义参数: As,Ar,Bs,Br,Cs,Cr (Note: s代表Sender发送节点;r代表Receiver接受节点)。

     

        下图展示单帧报文在发送节点与接受节点的传输过程:同时理解下As参数的定义时间范围用法

          1 发送节点:应用层传输数据到网络层(N_USData.req),于此同时,网络层传输数据到数据连路层(L_Data.req),并激活As计数器。

          2 发送节点:当数据链路层检测到报文成功发送到总线上时(通过检测ACK位的变化),会激活发送确认(L_data.Con)并通过N_USData.con通知到网络层。此时清除As计数器,

            接受节点:当数据链路层接受到报文,会激活接受指示(L_data.ind)并把数据传输到网络层(N_USData.ind);

         据上可看出As参数的定义是,发送数据在数据链路层传输的时间(数据传输数据链路层到数据发送到总线上的时间差)。如果数据未在As时间内成功发送到总线,即是As定时器清零时仍未收到L_Data.con,则网络层会生成Timout_A 错误。

     

     Note:数据在网络层与数据链路层的传输是同步的;

                数据在发送节点确认传输与节点节点确认接受也是同步的;

     

     

    接下来通过一个多帧数据传输来理解其他参数;

        其流程是,应用层传输数据到网络层,网络层进行分段传输。

      网络层定义参数,定义了报文发送具体的时间要求,具体如下:

     网络层参数超时处理机制:

        如:当应用层传输给网络层一个16个字节的数据,网络层会对数据进行解包进行发送(SF + CF +CF),如果发送SF时产生了Timeout-A错误,则会停止后续CF的发送,此时SF还是会正常发送到总线上的。

     

      

     

     

    参考资源:

    1 ISO 15765-2 网络层服务

    2  服务原语, 服务原语和协议的区别!https://blog.csdn.net/ventry/article/details/5268539

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • ISO 15765-2(网络层服务

    千次阅读 2019-08-07 21:00:51
    ISO 15765-2学习笔记1、网络层协议数据单元的格式(N_PDU)2、四种网络层协议数据单元类型2.1、单帧( SF N_PDU) 1、网络层协议数据单元的格式(N_PDU)         不同...

    1、网络层协议数据单元的格式(N_PDU)

            不同节点网络层对等实体之间的通信是通过网络层协议数据单元的交互完成的。其格式如下:

    在这里插入图片描述

            (1)、地址信息N_AI标识了网络层之间进行信息交互的对等实体。 N_AI的地址信息由消息地址组成,这些地址信息标识了交互消息的类型以及发生数据交换的接收端与发送端。
            (2)、协议控制信息N_PCI标识了相互交换的N_PDU类型;同时,它还可以用于通信网络层实体之间其它控制参数的交换。关于N_PDU的分类,可以分成以下四类:单帧( SF N_PDU)、首帧( FF N_PDU)、后续帧( CF N_PDU)及流控帧( FC N_PDU)。其类别区分就是通过N_PCI这一信息进行区分的,具体如下:

    在这里插入图片描述
    通过上述表格,可以知道:

    • 第一个字节的高位是0的为单帧信息;
    • 第一个字节的高位是1的为多帧中的首帧
    • 第一个字节的高位是2的为多帧中的后续帧
    • 第一个字节的高位是3的为流控帧
      在这里插入图片描述

            (3)、数据场N_Data用来传输服务用户的数据,其大小取决于N_PDU类型及选定的地址格式。
            

    2、四种网络层协议数据单元类型

            在上面小节关于协议控制信息(N_PCI)的介绍中,我们已经知道了四种协议数据单元类型及其区分(通过第一个字节高位);接下来我们就针对这四种类型进行进一步的介绍。

    2.1、单帧( SF N_PDU)

            单帧报文的N_PCI由第一个字节表示;其格式如下:
    在这里插入图片描述
            其中,SF_DL表示服务用户数据(N_Data)字节的数量;其取值只能为0-7(且只有该协议数据单元是标准地址的形式才能是7;若为扩展或混合地址,该值最大只能为6)。
            关于首帧SF_DL的出错处理如下:若接收到的单帧的SF_DL为0或者大于7(若为扩展或混合地址且该值大于6)的情况;网络层应忽略该单帧信息

    2.2、首帧( FF N_PDU)

            当我们要发送超过7个字节信息的数据时,则只能通过报文分割将要发送的数据拆分为多个网络协议数据单元(N_PDU)去发送;其中,第一个协议数据单元叫做首帧;接下来的协议数据单元叫做后续帧。接下来,我们就对首帧的格式进行分析。
            首帧报文的N_PCI由第一、二个字节表示;其格式如下:
    在这里插入图片描述
            其中,FF_DL表示服务用户数据(N_Data)字节的数量;由12位构成(最低位为N_PCI第2个字节中的第0位),即最大可支持4095个用户数据字节。注意该值正常范围为0x8-0xFFF(若为扩展编址或混合编址模式下FF_DL范围可为0x7-0xFFF);小于这个值的FF_DL是无效值(因为小于这个值就变成单帧的FF_DL了)。
            
            关于首帧FF_DL的出错处理如下:
            (1)、如果接收到一个FF_DL大于接收端可用缓存大小(这种情况被当作一个错误条件)的首帧( FF)。那么网络层应终止消息接收,并发送一个流状态( FlowStatus)参数为溢出( Overflow)的FC N_PDU(流控制)
            (2)、如果接收到一个FF_DL小于8且使用标准地址(或者小于7且使用扩展或混合地址)的首帧( FF),那么网络层应忽略接收该首帧,且不必发送FC N_PDU(流控帧)。

    2.3、后续帧( CF N_PDU)

            后续帧报文的N_PCI由第一个字节表示;其格式如下:
    在这里插入图片描述

            其中,SN表示后续帧的帧序号;关于SN需注意如下规则:
            (1)、紧跟在首帧( FF)之后的第一个后续帧( CF)的SN为1(虽然首帧( FF)中的N_PCI场没有包含一个明确的序列号,但是首帧( FF)的SN仍被当作0);
            (2)、在分段消息传输过程中,每发送一个新的CF, SN的值应加1;
            (3)、SN的值不会受到流控帧的影响;
            (4)、当SN的值计到0xF时,SN的值在发送的下一个后续帧时重置为0。再依次往上计数。

    2.4、流控帧( FC N_PDU)

            在前面小节里我们介绍了多个网络协议数据单元的发送(首帧、后续帧);对于接收端,其需要将自身的接收能力反馈给到发送端;防止发送端发送得太快自己接收处理不过来的情况。这一小节介绍的流控帧,正是用于这个功能的;用于接收端调节发送端的数据传输以适应自身接收能力

            流控帧报文的N_PCI由前三个字节表示;其格式如下:
    在这里插入图片描述

            (1)、FS(FlowStatus)参数表示接收端告知发送端网络实体能否继续执行消息的传输。FS的有效取值定义如下:

    FS值 值描述 定义
    0 ContinueToSend (CTS)/继续发送 告知发送端可继续发送后续帧(还表示接收端已准备好接收最大数量为BS的后续帧)
    1 Wait (WT)/等待 告知发送端应继续等待新的流控帧,并重新设置N_BS定时器
    2 Overflow (OVFLW)/溢出 发送端应终止发送分段消息,并通过调用<N_Result>=N_BUFFER_OVFLW参数,使用N_USData.confirm服务原语给邻近的上一层以确认

            且需注意FS为2(即OVFLW)的这种情况只允许在紧跟首帧之后的流控帧中进行传输并且,仅当在接收的首帧中的FF_DL超过了接收端实体缓存大小的情况下才能使用。

            (2)、BS(BlockSize)参数的大小表示每个数据块中CF N_PDU的数目。其取值范围及定义如下:

    BS值 定义
    0x00 告知发送端在其发送分段消息期间,接收端不会发送后续的FC;发送端网络应一次性把所有后续帧发送出去,而不用停下来等待接收端网络实体发送的FC
    0x01-0xff 告知发送端,其在没有接收到接收端的流控帧期间;最多能发送的连续帧数量

            (3)、STmin(SeparationTime)参数用于表示发送相邻的后续帧所允许的最小时间间隔(一个后续帧发送完开始,到请求下一个后续帧时的间隔时长)。其取值范围及定义如下:

    STmin值 定义
    0x00-0x7F 该范围内的值单位为ms;即对应表示0ms–127ms
    0x80-0xF0 预留
    0xF1-0xF9 该范围内的值单位为us;且0xF1表示100us,0xF2表示200us…,0xF9表示900us
    0xFA-0xFF 预留

            如果发送端接收到的流控帧消息中,STmin参数值为预留值,那么发送端网络实体应使用127ms(最长的ST值)来替代从接收端网络实体接收的值,并在后续分段消息传输中使用该时间间隔。
            

    3、单帧、多帧传输时的传输模型

            经过前面的介绍,我们已经了解了四种网络层协议数据单元类型(单帧、首帧、后续帧、流控帧)的格式。那么,接下来,我们就来看下单帧传输及多帧传输的情况下,其传输模型是怎样的。

    3.1、单帧传输

            若要发送的用户数据字节数不大于7个的情况下(标准地址格式);则可通过发送一个网络层协议数据单元,我们称之为单帧( SF)。关于单帧的传输示意图如下:
    在这里插入图片描述

    3.2、多帧传输

            当我们要发送超过7个字节信息的数据时,则只能通过报文分割将要发送的数据拆分为多个网络协议数据单元(首帧、后续帧)去发送;在发送期间,接收端还需要通过发送流控帧去调节发送端的数据传输,以适应自身的接收能力。关于多帧传输的传输示意图情况如下:
    在这里插入图片描述
            需注意,在首帧后面,接收端需回复一个流控帧;然后发送端根据接收到的流控帧中FS(是否继续发送)、BS(应该发送多少个后续帧)、STmin(每个后续帧的发送间隔)的信息;去进行后续帧的发送若BS不为0,则在对应BS个后续帧发送完成后;此时接收端再进行流控帧的发送。除最后一个数据块以外,其余数据块包含协议数据单元的数量为BS。

    展开全文
  • 第二部分:网络层服务 1.通信服务  N_USdata.request 分割数据传输服务请求  由发送端上层使用,用于向网络层传递控制信息和诊断服务数据  N_USData.FFindication 分割数据传输服务首帧服务说明  向上层...

    参考书籍:iso15675协议中文版,合工大谢梦如学姐的笔记


    控制局域网络诊断

    第二部分:网络层服务

    1.通信服务

       N_USdata.request   分割数据传输服务请求

            由发送端上层使用,用于向网络层传递控制信息和诊断服务数据

       N_USData.FFindication  分割数据传输服务首帧服务说明

            向上层传递的信息开头部分的说明

       N_USData.indication   分割数据传输服务说明

            由接收端网络层使用,用于向上层指示数据接收的执行结果

       N_UAData.confirm 确认服务

    由发送端网络层使用,用于向上层确认所要求服务的执行结果

    2.协议参数定义服务

    N_changeparameter.request   网络层更改参数服务要求

    N_changeparameter.confirm   网络层更改参数服务确认

    3.网络层内部操作

    单帧报文传输(下图的上半部分)

    多帧报文传输(下图的下半部分)

    其中 Flow control 流控制帧是接收方向发送方通知自己的网络层容量,以通知发送方下次发送数据的大小。

    附一些缩写词:

    mtype  消息类型

    N-AE   网络地址扩展

    N-AI   地址信息

    N-AR   网络层定时参数ar  接收方

    N-AS   网络层定时参数as   发送方

    N-BR   网络层定时参数br  直到接收下一个流控制的时间

    N-BS   网络层定时参数bs  直到传输下一个流控制的时间

    N-Changeparameter 网络层服务名称

    N-CR   网络层定时参数cr 直到接收下一个连续框架的时间

    N-CS   网络层定时参数cs 直到传输下一个连续框架的时间

    N-Data 网络数据

    N-PCI  网络协议控制信息

    N-PCItype网络协议控制信息类型

    N-PDU  网络数据控制单元

    N-SA   网络资源地址

    N-SDU 网络服务数据单元

    N-TA  网络目标地址

    N-TAtype网络目标地址类型

    N-USData 网络层未被承认的分割数据传输服务名称

    NWL 网络层

    request  原始服务需求

    接收器

    s  发送器

    SF 单一框架

    SF-DL 单一框架数据长度

    SN  序列号

    STmin 两个数据包之间最小等待时间

    BS  块大小

    CF 连贯结构

    confirm 确认

    ECU 电子控制单元

    FC 流动控制

    FF  第一框架

    FF-DL 第一框架数据长度

    FS  流动状态

    indication  指示





    1.网络层服务

    所有的网络层服务大体结构都是相同的 格式如下:

    Sevice_name.type {

                         Parameter A;

                                         Parameter B;

         Patameter C:

         ……

    }

    Sevice_name”是服务的名称,如: N_USData, "type"表明服务原语类型"Parameter A,B,C"N_SDU服务原语传送的一系列的值。

       "Sevice primitives"定义了服务使用者(如:诊断应用)和服务提供者(如:网络层)之间是如何合作的。

    1) N_USData.request

         通过请求服务原语发送方向在地址信息中定义的接收方的同等实体传输<Message Data> 和 <Length> 信息。由发送方上层发送到发送方网络层。

    N-USData.request{

                     mtype 消息类型

                     N-SA网络资源地址

                     N-TA  网络目标地址

                     N-TAtype网络目标地址类型

                     N-AE   网络地址扩展

                     <MessageData>

                     <length>

                    }

     

    每一次N_USData.request服务被调用,网络层会发信号表明向服务使用者传输的报文是否成功,这个信号就是调用N_USData.confirm 服务。

    2) N-USData.confirm 

    该服务有网络层发出的,这个服务原语用来确认在地址信息中标识的N_USData.request 服务是否完成。参数<N_Result>提供了请求服务的状态。

    N-USData.confirm{

                     mtype

                     N-SA网络资源地址

                     N-TA  网络目标地址

                     N-TAtype网络目标地址类型

                     N-AE   网络地址扩展

                     <N-Result>

                     }

    3) N_USData_FF.indication

    该服务是由网络层发出,这个服务原语向相邻的上层表示收到了来自同等协议实体发来的分段报文的首帧。

    N-USData.FFindication{

                     mtype

                     N-SA网络资源地址

                     N-TA  网络目标地址

                     N-TAtype网络目标地址类型

                     N-AE   网络地址扩展

                     <length>

                     }

    此服务后一般会接着一个来自网络层的N_USData.indication服务,用来表明报文接收是否成功。

    注意:只有接收到了一个正确的首帧以及报文段,网络层才会调用此服务;如果网络层监测到首帧的任何错误,此报文将会被网络层忽略,也不会向相邻上层发N_USData_FF.indication。如果网络层接收到的首帧,它的首帧数据长度(FF_DL)大于接收方的最大缓冲容量,这也会被视为错误,也不会向上层发送N_USData_FFindication

    4) N_USData.indication

       由网络层发出。此服务原语表明<N-Result>事件并传送<length>个字节的<MessageData>,这些信息来自地址信息中表明的同等协议实体,并传送给相邻的上层。

    N-USData.indication{

                     mtype

                     N-SA网络资源地址

                     N-TA  网络目标地址

                     N-TAtype网络目标地址类型

                     N-AE   网络地址扩展

                     <MessageData>  

                     <length>

                     <N-Result> 

                     }

    其中<N-Result>N-OK时,<length> <MessageData>才有效。

    注意:此服务调用是在收到一个单帧报文之后或是作为一个分段报文接收完成的标志。如果网络层监测到单帧中有任何错误,则此报文将会被网络层忽略,也不会向上层发送此服务。

    5) N_ChangeParameters.request

    网络层请求更改参数,更改参数是可以的,但是接收了首帧N_USData_FF.indication之后和接收通信报文(N_USData_indication)之前是不可以的。

    N-Changeparameter.request{

                              mtype

                              N-SA网络资源地址

                              N-TA  网络目标地址

                              N-TAtype网络目标地址类型

                              N-AE   网络地址扩展

                              <parameter>

                              <parameter-Value>

                              }

    6) N_Changepatameters.confirm

    N-Changeparameter.confirm{

                              mtype

                              N-SA网络资源地址

                              N-TA  网络目标地址

                              N-TAtype网络目标地址类型

                              N-AE   网络地址扩展

                              <parameter>

                              <result-Changeparameter>

                              }



    未完待续~~


    展开全文
  • 5.服务数据单元详述 1)Mtype 报文类型 Type类型: enumeration 枚举型 Range值域: diagnostic(诊断),remote diagnostic(远程诊断)  可以通过改变type来拓展range的值。 如果 Mtype=diagnostic,...
  • 网络层应该向传输层提供怎样的服务(“面向连接”还是“无连接的”)曾引起长期的争论。争论的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统? 对于上面的问题,现在已经有了很明确的答案...
  • 网络层笔记一、网络层提供服务的方式 引言:在计算机网络领域。网络层应该向传输层提供怎样的服务(“面向连接”还是“无连接的”)曾引起长期的争论。争论的实质就是:在计算机通信中,可靠交付应当由谁来负责?是...
  • 网络层网络层提供的两种服务

    万次阅读 2015-11-30 19:52:53
    本文主要说明网络层提供的两种服务,一种是虚拟电路(Virtual-Circuit 称为VC),另外一种是数据报服务(datagram network)。这两种服务有各自的特点,以下将会详细讨论: 1、虚拟电路服务 虽然因特网是一个利用...
  • 在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。 争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统? 一种观点:让网络...
  • 第四章 网络层

    千次阅读 2020-06-30 21:14:03
    网络层服务 识记 网络层服务 介于传输层和数据链路层之间,网络层关注的是如何将承载传输层报文段的网络层数据报从源主机送达目的主机 网络层重要的功能 转发 路由选择 领会 转发与路由的基本概念 转发:将...
  • 网络层提供了端到端的通信,所以两台计算机想要进行通信就...要实现通信的目的,每个角色的网络层都需要提供相应的服务 一 : 源计算机网络层提供的服务 源计算机上的网络层提供四种服务:  1 分组化处理,
  • 计算机网络原理【四】之 网络层

    千次阅读 多人点赞 2020-12-25 14:05:41
    文章目录第四章:网络层一、网络层服务1.核心任务2.主要功能a.转发b.路由选择c.建立连接二、数据报网络与虚电路网络1.数据报网络2.虚电路网络数据报网络与虚电路网络的区别三、网络互连与网络互连设备1.异构网络互连...
  • 网络层应该向运输层提供怎样的服务? 虚电路服务——Connection-Oriented Service面向连接服务 数据报服务——Connectionless Service无连接服务 1、无连接服务–数据报 无连接方式: 每个包独立路由,不...
  • 网络层提供的服务当然是针对传输层,面向连接还是无连接,其实质就是可靠交付应当由谁来负责?网络还是端系统 电信网成功经验:面向连接(虚电路VC),使用昂贵的程控交换机,不需要主机地址,只要一个虚电路编号,...
  • 传输层以及与网络层的区别

    千次阅读 2018-06-25 09:50:47
    传输层协议为运行在不同Host上的 进程 提供了一种逻辑通信机制。端系统运行传输层协议:发送方:将应用递交的消息分成一个或多个...传输层是提供应用进程之间的逻辑通信机制,位于网络层之上,并且依赖网络层服务。...
  • 计算机网络——网络层

    千次阅读 2016-05-03 15:38:19
    网络层服务概述从发送主机向接收主机传送数据段(segment ) 。发送主机:将数据段封装到数据报(datagram )中,接收主机:向传输层交付数据段(segment )。网络层核心功能-转发与选路转发:将分组从路由器的输入...
  • ISO15765-2中定义了网络层和传输层的内容,下面就对这两部分分别进行介绍。 一、网络层 所有网络层的服务都有统一的结构,为了...所有的网络层服务也有统一的格式,如下: service_name.type { parameter A, .
  • 网络层

    千次阅读 2019-12-18 18:42:55
    网络层网络层提供的两种服务1.虚电路服务网际协议IP各类IP地址的网路号字段和主机号字段:IP地址与与硬件地址的区别:地址解析协议ARP的作用路由器分组转发算法划分子网和构造超网1.1 划分子网1.2 子网掩码1.3 子网...
  • 计算机网络原理笔记(四)网络层

    千次阅读 2020-06-20 11:08:29
    4.1 网络层服务 网络层核心任务:将数据从源主机发送到目的主机。 网络层主要功能: 1、转发:数据从输入接口转移到输出接口。 2、路由选择:决定数据从源主机到达目的主机的路径。 3、连接建立:建立连接的网络...
  • 一、 数据链路层 概述、 二、 "数据链路层" 基本概念、 三、 "数据链路层" 功能、 四、 "数据链路层" 为 网络层 提供的服务
  • 网络层服务依赖于通信子网所采用的技术 C. 网络层向传输层端-端传输连接提供服务 D. 网络层具有跨局域网、城域网与广域网的互联网络寻址能力 分析:设计该例题的目的是加深读者对网络层基本概念的理解。在讨论...
  • 计算机网络网络层

    千次阅读 2019-06-13 21:58:57
    网络层提供的是无连接,尽最大努力交付的数据报服务,面向连接由运输层提供 虚电路服务和数据报服务的区别 1. IP IP在ARP之上,在ICMP和IGMP之下,它们都在网络层 网络层由路由器分组转发,因为路由器要接入多个.....
  • 运输层位于应用层和网络层之间,是分层的网络体系结构的重要部分。 一、概述和运输层服务 运输层协议为运行在不同主机牛的应用进程之间提供了逻辑通信功能。从应用程序的角度看,通过逻辑通信,运行不同进程的主机...
  • UDS网络层/TP层(ISO ...7 网络层服务 8 传输层协议 8.4 网络层协议数据单元 N_PDU 8.5 N_PCI 网络层内部传输服务 8.7 网络层时间控制分析 8.7.2 网络层超时处理 本文是对 ISO 15765-2-2011 协议的一些解读。 .

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,785
精华内容 13,914
关键字:

网络层服务