searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

openflow协议消息

2023-10-27 07:01:30
17
0

 OpenFlow协议支持三种消息类型,分别为:controller-to-switch,asychronous(异步)和symmetric(对称),每一类消息又有多个子消息类型。

其中,controller-to-swicth消息是由交换机发起的,用于管理和检查交互就状态;

asychnomous消息是由交互就发起的,用于将网络事件和交换机状态改变信息更新到控制器;

symmetric消息是由控制器或交换机发起的

1、Controller-to-Switch

       Features: 控制器通过向交换机发送features消息,用于请求交换机身份和基本能力信息,且交换机必须对此类消息进行应答。features消息通常在安全通道建立时执行。

      Configuration: 控制器设置或查询交换机上的配置信息,交换机仅需要应答查询信息。

      Modify-State: 控制器通过发送Modify-State消息管理交换机流表项和端口状态等。

      Read-State: Read-State消息用于控制器收集交换机上的各种信息,包括配置、统计等信息。

      Packet-Out: 用于控制器通过交换机指定端口转发数据包。

      Barrier: 用于控制器确保消息依赖满足,或接收完成操作的通知。

      Role-Request: 用于控制器设置或查询安全通道的角色信息。当交换机连接多个控制器时,此类消息是非常有用的。

      Asynchronous-Configuration: 用于针对从安全通道接收到的异步消息添加额外的控制器或查询该控制器。此类消息通常在安全  通道建立时执行,且在交换机连接多个控制器时非常有用。

      2、Asynchronous

      Packet-In: 交换机收到一个网络数据包,在流表中没有匹配项,则发送Packet-In消息给控制器。如果交换机缓存足够多,网络数据包被临时存放在缓存中,网络数据包部分内容和在交换机缓存中的序号一同发给控制器;如果交换机缓存不足则将整个数据包发送给控制器。

     Flow-Removed: 交换机中的流表因为超时或者修改等原因被删除掉,会触发flow-removed消息。

     Port-Status: 交换机端口状态发送变化时触发port-status消息。

     Error: 交换机发生故障时触发error消息。

     3、Symmetric

     Hello: 用于交换机和控制器建立连接。

     Echo: 交换机和控制器均可发送echo消息,接收者需要回复echo reply。该消息用于测量延迟、带宽等。

     Experimenter: 用于在OpenFlow消息类型空间中为OpenFlow交换机提供额外的功能。

  • 报文分为协议版本、消息类型、消息包(包括头部)长度、与包有关的事件ID(回复配对请求时使用相同的ID)以及所对应消息类型的报文信息。其中,不同的消息类型所对应的 报文信息是不同的

    OpenFlow控制器和OpenFlow交换机之间建立信道连接的基本过程,具体步骤如下:

     

    1. OpenFlow交换机与OpenFlow控制器之间通过TCP三次握手过程建立连接,使用的TCP端口号为6633。

     

    1. TCP连接建立后,交换机和控制器就会互相发送hello报文。Hello报文负责在交换机和控制器之间进行版本协商,该报文中OpenFlow数据头的类型值为0。

     

    1. 功能请求(Feature Request):控制器发向交换机的一条OpenFlow 消息,目的是为了获取交换机性能,功能以及一些系统参数。该报文中OpenFlow 数据头的类型值为5。

     

    1. 功能响应(Feature Reply):由交换机向控制器发送的功能响应(Feature Reply)报文,描述了OpenFlow交换机的详细细节。控制器获得交换机功能信息后,OpenFlow协议相关的特定操作就可以开始了。

     

    1. Echo请求(Echo Request)和Echo响应(EchoReply)属于OpenFlow中的对称型报文,他们通常用于OpenFlow交换机和OpenFlow控制器之间的保活。通常echo请求报文中OpenFlow数据头的类型值为2,echo响应的类型值为3。不同厂商提供的不同实现中,echo请求和响应报文中携带的信息也会有所不同。
0条评论
0 / 1000
h****n
3文章数
0粉丝数
h****n
3 文章 | 0 粉丝
h****n
3文章数
0粉丝数
h****n
3 文章 | 0 粉丝
原创

openflow协议消息

2023-10-27 07:01:30
17
0

 OpenFlow协议支持三种消息类型,分别为:controller-to-switch,asychronous(异步)和symmetric(对称),每一类消息又有多个子消息类型。

其中,controller-to-swicth消息是由交换机发起的,用于管理和检查交互就状态;

asychnomous消息是由交互就发起的,用于将网络事件和交换机状态改变信息更新到控制器;

symmetric消息是由控制器或交换机发起的

1、Controller-to-Switch

       Features: 控制器通过向交换机发送features消息,用于请求交换机身份和基本能力信息,且交换机必须对此类消息进行应答。features消息通常在安全通道建立时执行。

      Configuration: 控制器设置或查询交换机上的配置信息,交换机仅需要应答查询信息。

      Modify-State: 控制器通过发送Modify-State消息管理交换机流表项和端口状态等。

      Read-State: Read-State消息用于控制器收集交换机上的各种信息,包括配置、统计等信息。

      Packet-Out: 用于控制器通过交换机指定端口转发数据包。

      Barrier: 用于控制器确保消息依赖满足,或接收完成操作的通知。

      Role-Request: 用于控制器设置或查询安全通道的角色信息。当交换机连接多个控制器时,此类消息是非常有用的。

      Asynchronous-Configuration: 用于针对从安全通道接收到的异步消息添加额外的控制器或查询该控制器。此类消息通常在安全  通道建立时执行,且在交换机连接多个控制器时非常有用。

      2、Asynchronous

      Packet-In: 交换机收到一个网络数据包,在流表中没有匹配项,则发送Packet-In消息给控制器。如果交换机缓存足够多,网络数据包被临时存放在缓存中,网络数据包部分内容和在交换机缓存中的序号一同发给控制器;如果交换机缓存不足则将整个数据包发送给控制器。

     Flow-Removed: 交换机中的流表因为超时或者修改等原因被删除掉,会触发flow-removed消息。

     Port-Status: 交换机端口状态发送变化时触发port-status消息。

     Error: 交换机发生故障时触发error消息。

     3、Symmetric

     Hello: 用于交换机和控制器建立连接。

     Echo: 交换机和控制器均可发送echo消息,接收者需要回复echo reply。该消息用于测量延迟、带宽等。

     Experimenter: 用于在OpenFlow消息类型空间中为OpenFlow交换机提供额外的功能。

  • 报文分为协议版本、消息类型、消息包(包括头部)长度、与包有关的事件ID(回复配对请求时使用相同的ID)以及所对应消息类型的报文信息。其中,不同的消息类型所对应的 报文信息是不同的

    OpenFlow控制器和OpenFlow交换机之间建立信道连接的基本过程,具体步骤如下:

     

    1. OpenFlow交换机与OpenFlow控制器之间通过TCP三次握手过程建立连接,使用的TCP端口号为6633。

     

    1. TCP连接建立后,交换机和控制器就会互相发送hello报文。Hello报文负责在交换机和控制器之间进行版本协商,该报文中OpenFlow数据头的类型值为0。

     

    1. 功能请求(Feature Request):控制器发向交换机的一条OpenFlow 消息,目的是为了获取交换机性能,功能以及一些系统参数。该报文中OpenFlow 数据头的类型值为5。

     

    1. 功能响应(Feature Reply):由交换机向控制器发送的功能响应(Feature Reply)报文,描述了OpenFlow交换机的详细细节。控制器获得交换机功能信息后,OpenFlow协议相关的特定操作就可以开始了。

     

    1. Echo请求(Echo Request)和Echo响应(EchoReply)属于OpenFlow中的对称型报文,他们通常用于OpenFlow交换机和OpenFlow控制器之间的保活。通常echo请求报文中OpenFlow数据头的类型值为2,echo响应的类型值为3。不同厂商提供的不同实现中,echo请求和响应报文中携带的信息也会有所不同。
文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0