处理数据包的方法、交换机和控制器技术

技术编号:14146557 阅读:115 留言:0更新日期:2016-12-11 02:55
本发明专利技术实施例提供了一种处理数据包的方法、交换机和控制器,该方法包括:交换机获取待转发的数据包;根据待转发的数据包的输入端口和预存的交换机的输入端口与输出端口的对应关系,生成指示临时转发规则的组播流表项,组播流表项指示待转发的数据包的输入端口对应的输出端口;根据组播流表项将待转发的数据包转发。本发明专利技术实施例中根据预存的输入端口与输出端口的对应关系,确定待转发的数据包可能的输出端口,并按照生成临时的组播流表项转发数据包。这样,交换机在接收到数据包之后,不需要等待控制器下发转发规则,而是自行将数据包转发到可能的输出端口。因此,数据包不需要进行缓存,避免了因为缓存不足而导致的数据包丢失。

【技术实现步骤摘要】

本专利技术实施例涉及通信
,并且更具体地,涉及处理数据包的方法、交换机和控制器
技术介绍
软件定义网络(Software Defined Network,SDN)和开放流(OpenFlow)允许对一个网络进行编程。此时,这个网络就是一台计算机,将物理网络的抽象层直接提供给控制元件,允许通过软件设置和操作网络。OpenFlow技术最早由斯坦福大学提出,旨在基于现有传输控制协议/因特网互连协议(Transmission Control Protocol/Internet Protocol,TCP/IP)技术条件,以创新的网络互联理念解决当前网络面对新业务产生的种种瓶颈。OpenFlow技术的核心思想很简单,即将原本完全由交换机/路由器控制的数据包转发过程,转化为由OpenFlow交换机(OpenFlow Switch,OFS)和控制器分别完成的独立过程。现有的OpenFlow交换机一般采用缓存机制,新数据包到交换机以后先缓存起来并发送Packet In消息,等待控制器下发Packet Out/Flow Mod消息并明确转发路径后将新数据包转发出去。但是,当端口速率较大时,缓存可能无法应对海量的数据。这样,当缓存不够时,可能造成数据包丢失。
技术实现思路
本专利技术实施例提供一种处理数据包的方法、交换机和控制器,能够避免数据包的丢失。第一方面,提供了一种处理数据包的方法,包括:交换机获取待转发的数据包;根据该待转发的数据包的输入端口和预存的该交换机的输入端口与输出端口的对应关系,生成用于指示临时转发规则的组播流表项,该组播流表项用于指示该待转发的数据包的输入端口对应的输出端口;根据该组播流表项将该待转发的数据包进行转发。结合第一方面,在第一方面的第一种可能的实现方式中,在该根据该组播流表项将该待转发的数据包进行转发之后,还包括:从控制器接收用于指示正式转发规则的正式流表项,该正式流表项用于指示该待转发的数据包的输入端口对应的后续用于数据转发的输出端口;删除该组播流表项。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,还包括:向该控制器发送数据包上报Packet In信息,该Packet In信息包括该组播流表项的标识;接收该控制器发送的流表修改Flow Mod信息,该Flow Mod信息包括该组播流表项的标识;其中,该删除该组播流表项,包括:根据该组播流表项的标识,删除该组播流表项。结合第一方面或第一方面的第一种至第二种可能的实现方式中的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,该生成用于指示临时转发规则的组播流表项之前,还包括:接收控制器发送的组播信息,该组播信息用于指示该交换机的输入端口与输出端口的对应关系;根据该组播信息,预存该交换机的输入端口与输出端口的对应关系。结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,在该接收控制器发送的组播信息之前,还包括:向该控制器发送请求信息,该请求信息用于向该控制器请求该组播信息。结合第一方面的第三种或第四种可能的实现方式,在第一方面的第五种可能的实现方式中,该组播信息包括该控制器根据网络拓扑变化进行更新后的组播信息。第二方面,提供了一种处理数据包的方法,包括:控制器确定组播信息,该组播信息用于指示交换机的输入端口与输出端口的对应关系;向该交换机发送该组播信息,以便于该交换机根据该组播信息预存该交换机的输入端口与输出端口的对应关系并根据待转发的数据包的输入端口和该预存的该交换机的输入端口与输出端口的对应关系生成用于指示临时转发规则的组播流表项,以及该交换机根据该组播流表项将该待转发的数据包进行转发,其中,该组播流表项用于指示该待转发的数据包的输入端口对应的输出端口。结合第二方面,在第二方面的第一种可能的实现方式中,在该向交换机发送该组播信息之后,还包括:向该交换机发送用于指示正式转发规则的正式流表项,以便于该交换机删除该组播流表项,该正式流表项用于指示该待转发的数据包的输入端口对应的后续用于数据转发的输出端口。结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,还包括:接收该交换机发送的数据包上报Packet In信息,该PacketIn信息包括该组播流表项的标识;向该交换机发送流表修改Flow Mod信息,该Flow Mod信息包括该组播流表项的标识,以便于该交换机根据该组播流表项的标识,删除该组播流表项。结合第二方面或第二方面的第一种至第二种可能的实现方式中的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,在该向交换机发送该组播信息之前,还包括:接收该交换机发送的请求信息,该请求信息用于向该控制器请求该组播信息。结合第二方面或第二方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第二方面的第四种可能的实现方式中,还包括:根据网络拓扑变化,更新该组播信息。第三方面,提供了一种交换机,包括:接收单元,用于获取待转发的数据包;生成单元,用于根据该待转发的数据包的输入端口和预存的该交换机的输入端口与输出端口的对应关系,生成用于指示临时转发规则的组播流表项,该组播流表项用于指示该待转发的数据包的输入端口对应的输出端口;转发单元,用于根据该组播流表项将该待转发的数据包进行转发。结合第三方面,在第三方面的第一种可能的实现方式中,该接收单元,还用于从控制器接收用于指示正式转发规则的正式流表项;其中,该交换机还包括:删除单元,用于删除该组播流表项,该正式流表项用于指示该待转发的数据包的输入端口对应的后续用于数据转发的输出端口。结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,还包括:第一发送单元,用于向该控制器发送数据包上报Packet In信息,该Packet In信息包括该组播流表项的标识;该接收单元,还用于接收该控制器发送的流表修改Flow Mod信息,该Flow Mod信息包括该组播流表项的标识;其中,该删除单元,具体用于根据该组播流表项的标识,删除该组播流表项。结合第三方面或第三方面的第一种至第二种可能的实现方式中的任一种可能的实现方式,在第三方面的第三种可能的实现方式中,该接收单元,还用于接收控制器发送的组播信息,该组播信息用于指示该交换机的输入端口与输出端口的对应关系;其中,该交换机还包括:预存单元,用于根据该组
播信息,预存该交换机的输入端口与输出端口的对应关系。结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,还包括:第二发送单元,用于向该控制器发送请求信息,该请求信息用于向该控制器请求该组播信息。结合第三方面的第三种或第四种可能的实现方式,在第三方面的第五种可能的实现方式中,该组播信息包括该控制器根据网络拓扑变化进行更新后的组播信息。第四方面,提供了一种控制器,包括:确定单元,用于确定组播信息,该组播信息用于指示交换机的输入端口与输出端口的对应关系;发送单元,用于向该交换机发送该组播信息,以便于该交换机根据该组播信息预存该交换机的输入端口与输出端口的对应关系并根据待转发的数据包的输入端口和该预存的该交换机的输入端口与输出端口的对应关系生成用于指示临时转发规则的组播流表项,以及该交换本文档来自技高网
...
处理数据包的方法、交换机和控制器

【技术保护点】
一种处理数据包的方法,其特征在于,包括:交换机获取待转发的数据包;根据所述待转发的数据包的输入端口和预存的所述交换机的输入端口与输出端口的对应关系,生成用于指示临时转发规则的组播流表项,所述组播流表项用于指示所述待转发的数据包的输入端口对应的输出端口;根据所述组播流表项将所述待转发的数据包进行转发。

【技术特征摘要】
1.一种处理数据包的方法,其特征在于,包括:交换机获取待转发的数据包;根据所述待转发的数据包的输入端口和预存的所述交换机的输入端口与输出端口的对应关系,生成用于指示临时转发规则的组播流表项,所述组播流表项用于指示所述待转发的数据包的输入端口对应的输出端口;根据所述组播流表项将所述待转发的数据包进行转发。2.根据权利要求1所述的方法,其特征在于,在所述根据所述组播流表项将所述待转发的数据包进行转发之后,还包括:从控制器接收用于指示正式转发规则的正式流表项,所述正式流表项用于指示所述待转发的数据包的输入端口对应的后续用于数据转发的输出端口;删除所述组播流表项。3.根据权利要求2所述的方法,其特征在于,还包括:向所述控制器发送数据包上报Packet In信息,所述Packet In信息包括所述组播流表项的标识;接收所述控制器发送的流表修改Flow Mod信息,所述Flow Mod信息包括所述组播流表项的标识;其中,所述删除所述组播流表项,包括:根据所述组播流表项的标识,删除所述组播流表项。4.根据权利要求1-3中任一项所述的方法,其特征在于,所述生成用于指示临时转发规则的组播流表项之前,还包括:接收控制器发送的组播信息,所述组播信息用于指示所述交换机的输入端口与输出端口的对应关系;根据所述组播信息,预存所述交换机的输入端口与输出端口的对应关系。5.根据权利要求4所述的方法,其特征在于,在所述接收控制器发送的组播信息之前,还包括:向所述控制器发送请求信息,所述请求信息用于向所述控制器请求所述组播信息。6.根据权利要求4或5所述的方法,其特征在于,所述组播信息包括所述控制器根据网络拓扑变化进行更新后的组播信息。7.一种处理数据包的方法,其特征在于,包括:控制器确定组播信息,所述组播信息用于指示交换机的输入端口与输出端口的对应关系;向所述交换机发送所述组播信息,以便于所述交换机根据所述组播信息预存所述交换机的输入端口与输出端口的对应关系并根据待转发的数据包的输入端口和所述预存的所述交换机的输入端口与输出端口的对应关系生成用于指示临时转发规则的组播流表项,以及所述交换机根据所述组播流表项将所述待转发的数据包进行转发,其中,所述组播流表项用于指示所述待转发的数据包的输入端口对应的输出端口。8.根据权利要求7所述的方法,其特征在于,在所述向交换机发送所述组播信息之后,还包括:向所述交换机发送用于指示正式转发规则的正式流表项,以便于所述交换机删除所述组播流表项,所述正式流表项用于指示所述待转发的数据包的输入端口对应的后续用于数据转发的输出端口。9.根据权利要求8所述的方法,其特征在于,还包括:接收所述交换机发送的数据包上报Packet In信息,所述Packet In信息包括所述组播流表项的标识;向所述交换机发送流表修改Flow Mod信息,所述Flow Mod信息包括所述组播流表项的标识,以便于所述交换机根据所述组播流表项的标识,删除所述组播流表项。10.根据权利要求7-9中任一项所述的方法,其特征在于,在所述向交换机发送所述组播信息之前,还包括:接收所述交换机发送的请求信息,所述请求信息用于向所述控制器请求所述组播信息。11.根据权利要求7-10中任一项所述的方法,其特征在于,还包括:根据网络拓扑变化,更新所述组播信息。12.一种交换机,其特征在于,包括:接收单元,用于获取待转发的数据包;生...

【专利技术属性】
技术研发人员:冯强谈江沈伟锋
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1