CN105991435B - 用于获取端口路径的方法及装置 - Google Patents

用于获取端口路径的方法及装置 Download PDF

Info

Publication number
CN105991435B
CN105991435B CN201510060758.9A CN201510060758A CN105991435B CN 105991435 B CN105991435 B CN 105991435B CN 201510060758 A CN201510060758 A CN 201510060758A CN 105991435 B CN105991435 B CN 105991435B
Authority
CN
China
Prior art keywords
app
port
server
forwarding device
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510060758.9A
Other languages
English (en)
Other versions
CN105991435A (zh
Inventor
汪洋
袁峰
夏靓
陈�光
范多亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510060758.9A priority Critical patent/CN105991435B/zh
Priority to PCT/CN2015/099216 priority patent/WO2016124049A1/zh
Priority to EP15880990.5A priority patent/EP3253012B1/en
Publication of CN105991435A publication Critical patent/CN105991435A/zh
Priority to US15/670,724 priority patent/US10454711B2/en
Application granted granted Critical
Publication of CN105991435B publication Critical patent/CN105991435B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • H04L45/488Routing tree calculation using root node determination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques
    • H04L2012/5609Topology
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5619Network Node Interface, e.g. tandem connections, transit switching
    • H04L2012/562Routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5619Network Node Interface, e.g. tandem connections, transit switching
    • H04L2012/5624Path aspects, e.g. path bundling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Abstract

本发明实施例提供一种用于获取端口路径的方法及装置,有助于提高网络的容量。所述方法包括:控制器接收第一服务器的请求消息,用于请求端口路径信息,端口路径信息包括第一服务器到第二服务器的逻辑链路所经过的端口;所述控制器根据网络拓扑信息、第一服务器的标识和第二服务器的标识,获得第一APP和第二APP,第一APP包括从根节点到第一服务器的逻辑链路所经过的端口,第二APP包括从根节点到第二服务器的逻辑链路所经过的端口;所述控制器根据第一APP和所述第二APP,获得端口路径信息并向第一服务器发送。

Description

用于获取端口路径的方法及装置
技术领域
本发明实施例涉及通信技术,尤其涉及一种用于获取端口路径的方法及装置。
背景技术
随着网络的规模越来越大,网络设备中的媒体访问控制(Media Access Control,简称MAC)表、路由表等表项目会成为制约网络规模的关键因素,该问题在超大规模数据中心网络中尤为突出。
数据中心网络的架构大多使用三层的架构,包括:核心层、汇聚层和接入层。服务器可通过位于接入层的交换机的端口接入到数据中心网络。数据中心网络的交换机可利用MAC表或者路由表来转发来自服务器报文,即根据所述报文中携带的信息,查询MAC表或路由表,从MAC表或路由表获得与所述报文携带的信息匹配的端口。所述数据中心网络的交换机通过获得的所述端口发送所述报文。所述数据中心网络的交换机的MAC表或者路由表的大小依赖于所述数据中心网络的交换机上配置的芯片,使得所述数据中心网络的容量受到一定地限制。
发明内容
本发明实施例提供一种用于获取端口路径的方法及装置,有助于提高网络的容量。
第一方面,提供了一种用于获取端口路径的方法,包括:
控制器接收第一服务器的请求消息,所述请求消息包括第一服务器的标识和第二服务器的标识,所述请求消息用于向所述控制器请求端口路径信息,所述端口路径信息包括所述第一服务器到所述第二服务器的逻辑链路所经过的端口;
所述控制器根据网络拓扑信息、所述第一服务器的标识和所述第二服务器的标识,获得第一绝对端口路径(absolute port path,简称APP)和第二APP,所述网络拓扑信息包括所述第一服务器和第一转发设备之间的端口连接信息以及所述第二服务器和与第二转发设备之间的端口连接信息,所述第一转发设备与所述第一服务器通信,所述第二转发设备与所述第二服务器通信,所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
所述控制器根据所述第一APP和所述第二APP,获得所述端口路径信息;
所述控制器向所述第一服务器发送所述端口路径信息。
在第一方面的第一种可能的实现方式中,所述控制器根据所述网络拓扑信息、所述第一服务器的标识和所述第二服务器的标识,获得第一APP和第二APP包括:
所述控制器根据所述网络拓扑信息,确定所述根节点,所述根节点为作为树的树根的节点,所述树的叶子节点包括所述第一转发设备和所述第二转发设备;
所述控制器获得所述根节点的信息,所述根节点的信息包括所述根节点的标识、第七端口号和第八端口号,所述第七端口号所标识的端口为所述根节点上能够与所述第一服务器通信的端口,所述第八端口号所标识的端口为所述根节点上能够与所述第二服务器通信的端口;
所述控制器根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得所述第一APP;
所述控制器根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得所述第二APP。
结合上述第一方面的第一种可能的实现方式,还提供了第一方面的第二种可能的实现方式,所述控制器根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得所述第一APP包括:
所述控制器根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得第一APP集,所述第一APP集包括至少一条第一APP,所述至少一条第一APP与所述第一服务器对应;
所述控制器从所述第一APP集中选择一条第一APP作为所述第一APP。
结合上述第一方面的第二种可能的实现方式,还提供了第一方面的第三种可能的实现方式,所述控制器从所述第一APP集中选择一条第一APP作为所述第一APP包括:
所述控制器根据所述至少一条第一APP对应的逻辑链路的链路状态信息,从所述第一APP集中选择所述第一APP,所述链路状态信息用于标识逻辑链路是否发生拥塞,所述第一APP不包括处于拥塞的链路。
结合上述第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,还提供了第一方面的第四种可能的实现方式中,所述控制器根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得所述第二APP包括:
所述控制器根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得第二APP集,所述第二APP集包括至少一条第二APP,所述至少一条第二APP与所述第二服务器对应;
所述控制器从所述第二APP集中选择一条第二APP作为所述第二APP。
结合上述第一方面的第四种可能的实现方式,还提供了第一方面的第五种可能的实现方式,所述控制器从所述第二APP集中选择一条第二APP作为所述第二APP包括:
所述控制器根据所述第一APP,从所述第二APP集中选择一条第二APP作为所述第二APP,所述第二APP和所述第一APP包含相同的端口号,所述相同的端口号为所述第七端口号或所述第八端口号。
结合上述第一方面的第四种可能的实现方式,还提供了第一方面的第六种可能的实现方式中,所述控制器从所述第二APP集中选择一条第二APP作为所述第二APP包括:
所述控制器根据所述第一APP,从所述第二APP集中选择N条第二APP,所述N大于或等于1的整数,所述N条第二APP中任意一条第二APP和所述第一APP包含相同的端口号,所述相同的端口号为所述第七端口号或所述第八端口号;
所述控制器根据所述N条第二APP对应的逻辑链路的链路状态信息,从所述N条第二APP中选择所述第二APP,所述链路状态信息用于标识逻辑链路是否发生拥塞,所述第二APP不包括处于拥塞的链路。
结合上述第一方面或上述第一方面的任意一种可能的实现方式,还提供了第一方面的第七种可能的实现方式,所述根节点为物理节点,所述端口路径信息为包转发端口路径(packet transport port path,简称PTPP),所述控制器根据所述第一APP和所述第二APP,获得所述端口路径信息包括:
所述控制器将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
所述控制器将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
所述控制器将所述第三APP反转,获得反转后的第三APP;
所述控制器将所述反转后的第三APP和所述第四APP进行拼接,获得所述PTPP。
结合上述第一方面或第一方面的任意一种可能的实现方式,还提供了第一方面的第八种可能的实现方式,所述端口路径信息为PTPP,所述控制器根据所述第一APP和所述第二APP,获得所述端口路径信息包括:
所述控制器将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
所述控制器将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
所述控制器去除所述第三APP和所述第四APP中相同的前缀,获得第五APP和第六APP,所述相同的前缀为所述第三APP和所述第四APP所包括的相同的端口序列,所述第五APP是所述第三APP中去除所述相同的前缀后获得的端口序列,所述第六APP是所述第四APP中去除所述相同的前缀后获得的端口序列;
所述控制器将所述第五APP反转,获得反转后的第五APP;
所述控制器将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP。
结合上述第一方面的第八种可能的实现方式,还提供了第一方面的第九种可能的实现方式,所述控制器将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP包括:
所述控制器将所述反转后的第五APP与所述第六APP进行拼接,获得第七APP;
所述控制器将所述第七APP包括的端口序列中位于奇数位的端口剔除,获得所述PTPP。
结合上述第一方面或第一方面的任意一种可能的实现方式,还提供了第一方面的第十种可能的实现方式,所述网络拓扑信息还包括第三转发设备与所述第一转发设备之间的端口连接信息以及所述第三转发设备与所述第二转发设备之间的端口连接信息,所述第三转发设备分别与所述第一转发设备和所述第二转发设备通信。
结合上述第一方面或第一方面的第十种可能的实现方式,还提供了第一方面的第十一种可能的实现方式,还包括:
所述控制器接收所述第一转发设备发送的第一报文,所述第一报文包括第一端口号、所述第一服务器的标识和所述第一转发设备的标识,所述第一端口号所标识的端口为所述第一转发设备上与所述第一服务器通信的端口;
所述控制器接收所述第二转发设备发送的第二报文,所述第二报文包括第二端口号、所述第二服务器的标识和所述第二转发设备的标识,所述第二端口号所标识的端口为所述第二转发设备上与所述第二服务器通信的端口;
所述控制器根据所述第一报文包括的所述第一端口号、所述第一服务器的标识和所述第一转发设备的标识,获得所述第一服务器和所述第一转发设备之间的端口连接信息;
所述控制器根据所述第二报文包括的所述第二端口号、所述第二服务器的标识和所述第二转发设备的标识,获得所述第二服务器和所述第二转发设备之间的端口连接信息;
所述控制器根据所述第一服务器和所述第一转发设备之间的端口连接信息以及所述第二服务器和所述第二转发设备之间的端口连接信息,获得所述网络拓扑信息。
结合上述第一方面或第一方面的第十种可能的实现方式,还提供了第一方面的第十二种可能的实现方式,还包括:
所述控制器获得所述控制器为所述第一服务器分配的第一动态主机配置协议(Dynamic Host Configuration Protocol,简称DHCP)信息,所述第一DHCP信息包括第一端口号、所述第一服务器的标识和所述第一转发设备的标识,所述第一端口号所标识的端口为所述第一转发设备上与所述第一服务器通信的端口;
所述控制器获得所述控制器为所述第二服务器分配的第二DHCP信息,所述第二DHCP信息包括第二端口号、所述第二服务器的标识和所述第二转发设备的标识,所述第二端口号所标识的端口为所述第二转发设备上与所述第二服务器通信的端口;
所述控制器根据所述第一DHCP信息包括的所述第一端口号、所述第一服务器的标识和所述第一转发设备的标识,获得所述第一服务器和所述第一转发设备之间的端口连接信息;
所述控制器根据所述第二DHCP信息包括的所述第二端口号、所述第二服务器的标识和所述第二转发设备的标识,获得所述第二服务器和所述第二转发设备之间的端口连接信息;
所述控制器根据所述第一服务器和所述第一转发设备之间的端口连接信息以及所述第二服务器和所述第二转发设备之间的端口连接信息,获得所述网络拓扑信息。
结合上述第一方面的第十种可能的实现方式,还提供了第一方面的第十三种可能的实现方式中,还包括:
所述控制器接收所述第三转发设备发送的第一链路层发现协议(Link LayerDiscovery Protocol,简称LLDP)消息,所述第一LLDP消息包括第三端口号、第四端口号、所述第三转发设备的标识和所述第一转发设备的标识,所述第三端口号所标识的端口是所述第一转发设备上与所述第三转发设备通信的端口,所述第四端口号所标识的端口是所述第三转发设备上与所述第一转发设备通信的端口;
所述控制器接收所述第三转发设备发送的第二LLDP消息,所述第二LLDP消息包括第五端口号、第六端口号、所述第三转发设备的标识和所述第二转发设备的标识,所述第五端口号所标识的端口是所述第三转发设备上与所述第二转发设备通信的端口,所述第六端口号所标识的端口是所述第二转发设备上与所述第三转发设备通信的端口;
所述控制器根据所述第一LLDP消息包括的所述第三端口号、所述第四端口号、所述第三转发设备的标识和所述第一转发设备的标识,获得所述第三转发设备与所述第一转发设备之间的端口连接信息;
所述控制器根据所述第二LLDP消息包括的所述第五端口号、所述第六端口号、所述第三转发设备的标识和所述第二转发设备的标识,获得所述第三转发设备与所述第二转发设备之间的端口连接信息。
第二方面,提供了一种用于获取端口路径的方法,包括:
第一服务器向控制器发送请求消息,所述请求消息包括所述第一服务器的标识和第二服务器的标识,所述请求消息用于向所述控制器请求端口路径信息,所述端口路径信息包括所述第一服务器到所述第二服务器的逻辑链路所经过的端口;
所述第一服务器接收所述控制器发送的所述端口路径信息;
所述第一服务器根据所述端口路径信息,获得PTPP,所述PTPP为所述第一服务器至所述第二服务器的链路所经过的端口序列。
在第二方面的第一种可能的实现方式中,还包括:
所述第一服务器将所述PTPP添加至第一报文,获得第二报文,所述第一报文为所述第一服务器发送给所述第二服务器的报文;
所述第一服务器向所述第二服务器发送所述第二报文。
结合上述第二方面或第二方面的第一种可能的实现方式,还提供了第二方面的第二种可能的实现方式,所述端口路径信息包括第一APP和第二APP,所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口,
所述根节点为物理节点,所述第一服务器根据所述端口路径信息,获得PTPP包括:
所述第一服务器将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
所述第一服务器将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
所述第一服务器将所述第三APP反转,获得反转后的第三APP;
所述第一服务器将所述反转后的第三APP和所述第四APP进行拼接,获得所述PTPP。
结合上述第二方面或第二方面的第一种可能的实现方式,还提供了第二方面的第三种可能的实现方式,所述端口路径信息包括第一APP和第二APP,所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口,
所述第一服务器根据所述端口路径信息,获得PTPP包括:
所述第一服务器将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
所述第一服务器将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
所述第一服务器去除所述第三APP和所述第四APP中相同的前缀,获得第五APP和第六APP,所述相同的前缀为所述第三APP和所述第四APP所包括的相同的端口序列,所述第五APP是所述第三APP中去除所述相同的前缀后获得的端口序列,所述第六APP是所述第四APP中去除所述相同的前缀后获得的端口序列;
所述第一服务器将所述第五APP反转,获得反转后的第五APP;
所述第一服务器将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP。
结合上述第二方面的第三种可能的实现方式,还提供了第二方面的第四种可能的实现方式,所述第一服务器将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP包括:
所述第一服务器将所述反转后的第五APP与所述第六APP进行拼接,获得第七APP;
所述第一服务器将所述第七APP包括的端口序列中位于奇数位的端口剔除,获得所述PTPP。
结合上述第二方面的第一种可能的实现方式,还提供了第二方面的第五种可能的实现方式,所述第一服务器将所述PTPP添加至第一报文,获得第二报文包括:
所述第一服务器获得与所述PTPP对应的路径跳数,所述第一报文的报文头包括MAC字段,所述路径跳数用于标识发送所述第二报文的端口在所述PTPP中的位置;
所述第一服务器将所述PTPP、所述路径跳数和类型标识,添加至所述MAC字段,所述类型标识用于标识所述第二报文包括所述PTPP。
结合上述第二方面的第一种可能的实现方式,还提供了第二方面的第六种可能的实现方式中,所述第二报文包括多协议标签交换(Multiprotocol Label Switching,MPLS)字段,所述第一服务器将所述PTPP添加至第一报文,获得第二报文包括:
所述第一服务器将所述PTPP添加至所述MPLS字段,获得所述第二报文。
第三方面,提供了一种用于根据端口路径转发报文的方法,包括:
转发设备接收网络设备发送的第一报文,所述网络设备为第一服务器或上一跳设备,所述上一跳设备为所述转发设备在PTPP对应的链路的上一跳,所述第一报文包括所述PTPP,所述PTPP为所述第一服务器到第二服务器的链路所经过的端口序列;
所述转发设备根据所述第一报文包括的所述PTPP,获得第二报文,所述第二报文包括的PTPP用于指示所述转发设备的下一跳转发报文;
所述转发设备根据所述第一报文包括的所述PTPP所指示的端口,向所述第二服务器发送所述第二报文。
在第三方面的第一种可能的实现方式中,所述第一报文的报文头包括MAC字段,所述MAC字段包括所述PTPP、路径跳数和述类型标识,所述路径跳数用于标识端口在所述PTPP中的位置,所述类型标识用于标识所述第一报文包括所述PTPP,所述转发设备根据所述第一报文包括的所述PTPP所指示的端口,向所述第二服务器发送所述第二报文包括:
所述转发设备从所述MAC字段获得所述类型标识;
所述转发设备根据所述类型标识确定所述第一报文包括所述路径跳数后,从所述MAC字段获得所述PTPP和所述路径跳数;
所述转发设备根据所述第一报文包括的所述路径跳数,从所述PTPP中选择用于发送所述第二报文的端口;
所述转发设备通过所述用于发送所述第二报文的端口,向所述第二服务器发送所述第二报文。
结合上述第三方面,还提供了第三方面的第二种可能的实现方式,所述第一报文的报文头包括MPLS字段,所述MPLS字段包括所述PTPP,所述转发设备根据所述第一报文包括的所述PTPP所指示的端口,向所述第二服务器发送所述第二报文包括:
所述转发设备从所述MPLS字段获得位于栈顶的端口号;
所述转发设备通过所述位于栈顶的端口号所标识的端口,向所述第二服务器发送所述第二报文。
第四方面,提供了一种控制器,包括:
第一接收模块,用于接收第一服务器的请求消息,所述请求消息包括第一服务器的标识和第二服务器的标识,所述请求消息用于向所述控制器请求端口路径信息,所述端口路径信息包括所述第一服务器到所述第二服务器的逻辑链路所经过的端口;
第一获得模块,用于根据网络拓扑信息、所述第一服务器的标识和所述第二服务器的标识,获得第一APP和第二APP,所述网络拓扑信息包括所述第一服务器和第一转发设备之间的端口连接信息以及所述第二服务器和与第二转发设备之间的端口连接信息,所述第一转发设备与所述第一服务器通信,所述第二转发设备与所述第二服务器通信,所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
第二获得模块,用于根据所述第一APP和所述第二APP,获得所述端口路径信息;
发送模块,用于向所述第一服务器发送所述端口路径信息。
在第四方面的第一种可能的实现方式中,所述第一获得模块具体用于:
根据所述网络拓扑信息,确定所述根节点,所述根节点为作为树的树根的节点,所述树的叶子节点包括所述第一转发设备和所述第二转发设备;
获得所述根节点的信息,所述根节点的信息包括所述根节点的标识、第七端口号和第八端口号,所述第七端口号所标识的端口为所述根节点上能够与所述第一服务器通信的端口,所述第八端口号所标识的端口为所述根节点上能够与所述第二服务器通信的端口;
根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得所述第一APP;
根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得所述第二APP。
结合上述第四方面的第一种可能的实现方式,还提供了第四方面的第二种可能的实现方式,所述第一获得模块具体用于:
根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得第一APP集,所述第一APP集包括至少一条第一APP,所述至少一条第一APP与所述第一服务器对应;
从所述第一APP集中选择一条第一APP作为所述第一APP。
结合上述第四方面的第二种可能的实现方式,还提供了第四方面的第三种可能的实现方式,所述第一获得模块具体用于:
根据所述至少一条第一APP对应的逻辑链路的链路状态信息,从所述第一APP集中选择所述第一APP,所述链路状态信息用于标识逻辑链路是否发生拥塞,所述第一APP不包括处于拥塞的链路。
结合上述第四方面的第二种可能的实现方式或上述第四方面的第三种可能的实现方式,还提供了第四方面的第四种可能的实现方式,所述第一获得模块具体用于:
根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得第二APP集,所述第二APP集包括至少一条第二APP,所述至少一条第二APP与所述第二服务器对应;
从所述第二APP集中选择一条第二APP作为所述第二APP。
结合上述第四方面的第四种可能的实现方式,还提供了第四方面的第五种可能的实现方式中,所述第一获得模块具体用于:
根据所述第一APP,从所述第二APP集中选择一条第二APP作为所述第二APP,所述第二APP和所述第一APP包含相同的端口号,所述相同的端口号为所述第七端口号或所述第八端口号。
结合上述第四方面的第四种可能的实现方式,还提供了第四方面的第六种可能的实现方式中,所述第一获得模块具体用于:
根据所述第一APP,从所述第二APP集中选择N条第二APP,所述N大于或等于1的整数,所述N条第二APP中任意一条第二APP和所述第一APP包含相同的端口号,所述相同的端口号为所述第七端口号或所述第八端口号;
根据所述N条第二APP对应的逻辑链路的链路状态信息,从所述N条第二APP中选择所述第二APP,所述链路状态信息用于标识逻辑链路是否发生拥塞,所述第二APP不包括处于拥塞的链路。
结合上述第四方面或第四方面的任意一种可能的实现方式,还提供了第四方面的第七种可能的实现方式,所述根节点为物理节点,所述端口路径信息为PTPP,所述第二获得模块具体用于:
将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
将所述第三APP反转,获得反转后的第三APP;
将所述反转后的第三APP和所述第四APP进行拼接,获得所述PTPP。
结合上述第四方面或第四方面的任意一种可能的实现方式,还提供了第四方面的第八种可能的实现方式,所述端口路径信息为PTPP,所述第二获得模块具体用于:
将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
去除所述第三APP和所述第四APP中相同的前缀,获得第五APP和第六APP,所述相同的前缀为所述第三APP和所述第四APP所包括的相同的端口序列,所述第五APP是所述第三APP中去除所述相同的前缀后获得的端口序列,所述第六APP是所述第四APP中去除所述相同的前缀后获得的端口序列;
将所述第五APP反转,获得反转后的第五APP;
将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP。
结合上述第四方面的第八种可能的实现方式,还提供了第四方面的第九种可能的实现方式,所述第二获得模块具体用于:
将所述反转后的第五APP与所述第六APP进行拼接,获得第七APP;
将所述第七APP包括的端口序列中位于奇数位的端口剔除,获得所述PTPP。
结合上述第四方面或第四方面的任意一种可能的实现方式,还提供了第四方面的第十种可能的实现方式,所述网络拓扑信息还包括第三转发设备与所述第一转发设备之间的端口连接信息以及所述第三转发设备与所述第二转发设备之间的端口连接信息,所述第三转发设备分别与所述第一转发设备和所述第二转发设备通信。
结合上述第四方面或第四方面的第十种可能的实现方式,还提供了第四方面的第十一种可能的实现方式,还包括:
第二接收模块,用于接收所述第一转发设备发送的第一报文,所述第一报文包括第一端口号、所述第一服务器的标识和所述第一转发设备的标识,所述第一端口号所标识的端口为所述第一转发设备上与所述第一服务器通信的端口;
第三接收模块,用于接收所述第二转发设备发送的第二报文,所述第二报文包括第二端口号、所述第二服务器的标识和所述第二转发设备的标识,所述第二端口号所标识的端口为所述第二转发设备上与所述第二服务器通信的端口;
第三获得模块,用于根据所述第一报文包括的所述第一端口号、所述第一服务器的标识和所述第一转发设备的标识,获得所述第一服务器和所述第一转发设备之间的端口连接信息;
第四获得模块,还用于根据所述第二报文包括的所述第二端口号、所述第二服务器的标识和所述第二转发设备的标识,获得所述第二服务器和所述第二转发设备之间的端口连接信息;
第五获得模块,还用于根据所述第一服务器和所述第一转发设备之间的端口连接信息以及所述第二服务器和所述第二转发设备之间的端口连接信息,获得所述网络拓扑信息。
结合上述第四方面或第四方面的第十种可能的实现方式,还提供了第四方面的第十二种可能的实现方式,还包括:
第六获得模块,用于获得所述控制器为所述第一服务器分配的第一DHCP信息,所述第一DHCP信息包括第一端口号、所述第一服务器的标识和所述第一转发设备的标识,所述第一端口号所标识的端口为所述第一转发设备上与所述第一服务器通信的端口;
第七获得模块,用于获得所述控制器为所述第二服务器分配的第二DHCP信息,所述第二DHCP信息包括第二端口号、所述第二服务器的标识和所述第二转发设备的标识,所述第二端口号所标识的端口为所述第二转发设备上与所述第二服务器通信的端口;
第三获得模块,用于根据所述第一DHCP信息包括的所述第一端口号、所述第一服务器的标识和所述第一转发设备的标识,获得所述第一服务器和所述第一转发设备之间的端口连接信息;
第四获得模块,用于根据所述第二DHCP信息包括的所述第二端口号、所述第二服务器的标识和所述第二转发设备的标识,获得所述第二服务器和所述第二转发设备之间的端口连接信息;
第五获得模块,用于根据所述第一服务器和所述第一转发设备之间的端口连接信息以及所述第二服务器和所述第二转发设备之间的端口连接信息,获得所述网络拓扑信息。
结合上述第四方面的第十种可能的实现方式,还提供第四方面的第十三种可能的实现方式,还包括:
第四接收模块,用于接收所述第三转发设备发送的第一LLDP消息,所述第一LLDP消息包括第三端口号、第四端口号、所述第三转发设备的标识和所述第一转发设备的标识,所述第三端口号所标识的端口是所述第一转发设备上与所述第三转发设备通信的端口,所述第四端口号所标识的端口是所述第三转发设备上与所述第一转发设备通信的端口;
第五接收模块,用于接收所述第三转发设备发送的第二LLDP消息,所述第二LLDP消息包括第五端口号、第六端口号、所述第三转发设备的标识和所述第二转发设备的标识,所述第五端口号所标识的端口是所述第三转发设备上与所述第二转发设备通信的端口,所述第六端口号所标识的端口是所述第二转发设备上与所述第三转发设备通信的端口;
第八获得模块,用于根据所述第一LLDP消息包括的所述第三端口号、所述第四端口号、所述第三转发设备的标识和所述第一转发设备的标识,获得所述第三转发设备与所述第一转发设备之间的端口连接信息;
第九获得模块,用于根据所述第二LLDP消息包括的所述第五端口号、所述第六端口号、所述第三转发设备的标识和所述第二转发设备的标识,获得所述第三转发设备与所述第一转发设备之间的端口连接信息。
第五方面,提供一种第一服务器,包括:
第一发送模块,用于向控制器发送请求消息,所述请求消息包括所述第一服务器的标识和第二服务器的标识,所述请求消息用于向所述控制器请求端口路径信息,所述端口路径信息包括所述第一服务器到所述第二服务器的逻辑链路所经过的端口;
接收模块,用于接收所述控制器发送的所述端口路径信息;
第一获得模块,用于根据所述端口路径信息,获得PTPP,所述PTPP为所述第一服务器至所述第二服务器的链路所经过的端口序列。
在第五方面的第一种可能的实现方式中,所述第一服务器还包括:
第二获得模块,用于将所述PTPP添加至第一报文,获得第二报文,所述第一报文为所述第一服务器发送给所述第二服务器的报文;
第二发送模块,用于向所述第二服务器发送所述第二报文。
结合上述第五方面或第五方面的第一种可能的实现方式,还提供了第五方面的第二种可能的实现方式,所述端口路径信息包括第一APP和第二APP,所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口,
所述根节点为物理节点,所述第一获得模块具体用于:
将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
将所述第三APP反转,获得反转后的第三APP;
将所述反转后的第三APP和所述第四APP进行拼接,获得所述PTPP。
结合上述第五方面或第五方面的第一种可能的实现方式,还提供了在第五方面的第三种可能的实现方式,所述端口路径信息包括第一APP和第二APP,所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口,
所述第一获得模块具体用于:
将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
去除所述第三APP和所述第四APP中相同的前缀,获得第五APP和第六APP,所述相同的前缀为所述第三APP和所述第四APP所包括的相同的端口序列,所述第五APP是所述第三APP中去除所述相同的前缀后获得的端口序列,所述第六APP是所述第四APP中去除所述相同的前缀后获得的端口序列;
将所述第五APP反转,获得反转后的第五APP;
将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP。
结合上述第五方面的第三种可能的实现方式,还提供了第五方面的第四种可能的实现方式,所述第一获得模块具体用于:
将所述反转后的第五APP与所述第六APP进行拼接,获得第七APP;
将所述第七APP包括的端口序列中位于奇数位的端口剔除,获得所述PTPP。
结合上述第五方面的第一种可能的实现方式,还提供了第五方面的第五种可能的实现方式,所述第二获得模块具体用于:
获得与所述PTPP对应的路径跳数,所述第一报文的报文头包括MAC字段,所述路径跳数用于标识发送所述第二报文的端口在所述PTPP中的位置;
将所述PTPP、所述路径跳数和类型标识,添加至所述MAC字段,所述类型标识用于标识所述第二报文包括所述PTPP。
结合上述第五方面的第一种可能的实现方式,还提供了第五方面的第六种可能的实现方式,所述第二报文包括MPLS字段,所述第二获得模块具体用于:
将所述PTPP添加至所述MPLS字段,获得所述第二报文。
第六方面,提供了一种转发设备,包括:
接收模块,用于接收网络设备发送的第一报文,所述网络设备为第一服务器或上一跳设备,所述上一跳设备为所述转发设备在PTPP对应的链路的上一跳,所述第一报文包括所述PTPP,所述PTPP为所述第一服务器到第二服务器的链路所经过的端口序列;
获得模块,用于根据所述第一报文包括的所述PTPP,获得第二报文,所述第二报文包括的PTPP用于指示所述转发设备的下一跳转发报文;
转发模块,用于根据所述第一报文包括的所述PTPP所指示的端口,向所述第二服务器发送所述第二报文。
在第六方面的第一种可能的实现方式中,所述第一报文的报文头包括MAC字段,所述MAC字段包括所述PTPP、路径跳数和类型标识,所述路径跳数用于标识端口在所述PTPP中的位置,所述类型标识用于标识所述第一报文包括所述PTPP,所述转发模块具体用于:
从所述MAC字段获得所述类型标识;
根据所述类型标识确定所述第一报文包括所述路径跳数后,从所述MAC字段获得所述PTPP和所述路径跳数;
根据所述第一报文包括的所述路径跳数,从所述PTPP中选择用于发送所述第二报文的端口;
通过所述用于发送所述第二报文的端口,向所述第二服务器发送所述第二报文。
结合上述第六方面,还提供了在第六方面的第二种可能的实现方式,所述第一报文的报文头包括MPLS字段,所述MPLS字段包括所述PTPP、所述路径跳数和所述类型标识,所述转发模块具体用于:
从所述MPLS字段获得位于栈顶的端口号;
通过所述位于栈顶的端口号所标识的端口,向所述第二服务器发送所述第二报文。
第七方面,提供了一种用于获取端口路径的系统,包括:上述第四方面或第四方面的任意一种可能的实现方式中的控制器和上述第五方面或第五方面的任意一种可能的实现方式中的第一服务器。
在第七方面的第一种可能的实现方式中,还包括:上述第六方面或第六方面的任意一种可能的实现方式中的转发设备。
本发明实施例用于获取端口路径的方法及装置,控制器或第一服务器可根据第一APP和第二APP,获得用来指导第一报文转发的PTPP,所述报第一文是第一服务器向第二服务器发送的报文,所述PTPP是与第一服务器到第二服务器的链路对应的端口序列;所述第一服务器可将所述PTPP和路径跳数添加至所述第一报文,获得包含所述PTPP和所述路径跳数的第二报文;所述第一服务器向所述第二服务器发送包含所述第二报文;所述第一服务器到所述第二服务器的链路上的转发设备可根据接收到的报文中的PTPP和路径跳数,确定用于发送所述报文的端口,并通过所述端口向所述第二服务器发送所述报文。这样,网络中的转发设备可通过接收到的报文中携带的PTPP实现报文的发送,即端口路径信息可用于指导报文转发,无需存储MAC表项或路由表项,使得所述网络中的转发设备处理报文时不再依赖于MAC表项或路由表项,有助于提高网络的容量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的用于获取端口路径的方法流程图;
图2为本发明实施例的数据中心网络的系统架构图;
图3为本发明实施例的数据中心网络的一种网络拓扑示意图;
图4为本发明实施例的数据中心网络的另一种网络拓扑示意图;
图5为本发明实施例的数据中心网络的一种计算PTPP示意图;
图6为本发明实施例的数据中心网络的另一种计算PTPP示意图;
图7为本发明实施例的数据中心网络的系统架构图;
图8为本发明实施例的数据中心网络的计算PTPP示意图;
图9为本发明实施例的用于获取端口路径的方法流程图;
图10为本发明实施例的一种报文封装示意图;
图11为本发明实施例的另一种报文封装示意图;
图12为本发明实施例的用于根据端口路径转发报文的方法流程图;
图13为本发明实施例的控制器的结构示意图;
图14为本发明实施例的第一服务器的结构示意图;
图15为本发明实施例的转发设备的结构示意图;
图16为本发明实施例的控制器的结构示意图;
图17为本发明实施例的第一服务器的结构示意图;
图18为本发明实施例的转发设备的结构示意图;
图19为本发明实施例的用于获取端口路径的系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例可以应用于网络中,所述网络包括控制器,转发设备以及服务器,所述网络具体可以为数据中心网络、骨干网、互联网数据中心(Internet Data Center,简称IDC)机房等。
以下实施例中以数据中心网络为例,进行说明。
图2为本发明实施例的数据中心网络的系统架构图。如图2所示,本实施例的方法可应用于数据中心网络中,所述数据中心网络包括控制器、服务器A、服务器B、服务器C、转发设备A、转发设备B、转发设备C、转发设备D、转发设备E和转发设备F。其中,所述控制器可以与所述数据中心网络中的任意一个转发设备进行通信。图3为本发明实施例的数据中心网络的一种网络拓扑示意图。图3所示的链路为图2所示的网络中服务器A到达服务器B的一条链路,即图3所示的链路为服务器A->转发设备D->转发设备B->转发设备E->服务器B,图3中的转发设备A为所示控制器选择的根节点,所述根节点是物理节点,即作为根节点的转发设备A具有物理实体。图4为本发明实施例的数据中心网络的另一种网络拓扑示意图。图4所示的链路与图3所示的链路的不同之处在于,图4中的转发设备D和图4中的服务器B之间存在链路,图4中的转发设备E和图4中的服务器A之间存在链路。图4中的转发设备D和图4中的转发设备B之间存在拥塞。图5为本发明实施例的数据中心网络的一种计算PTPP示意图。图6为本发明实施例的数据中心网络的另一种计算PTPP示意图。图5和图6对应的场景与图3对应的场景相同,即图5和图6的场景是未考虑链路状态的场景。
图1为本发明实施例的用于获取端口路径的方法流程图。图1是从控制器侧对本发明实施例的用于获取端口路径的方法。下面结合图2、图3、图4、图5和图6,对图1所示本发明实施例提供的用于获取端口路径的方法进行说明。
101、控制器接收第一服务器的请求消息,所述请求消息包括第一服务器的标识和第二服务器的标识,所述请求消息用于向所述控制器请求端口路径信息,所述端口路径信息包括所述第一服务器到所述第二服务器的逻辑链路所经过的端口。
举例说明,所述第一服务器的标识可以是所述第一服务器的MAC地址、所述第一服务器被配分的身份标识(identifier,ID)、所述第一服务器的互联网协议(InternetProtocol,IP)地址等信息。所述第二服务器的标识可以是所述第二服务的MAC地址、所述第二服务器被分配的ID、所述第二服务器的IP地址等信息。
举例说明,图2或图3中的服务器A可为所述第一服务器,服务器B可以为所述第二服务器。所述服务器A可向所述控制器发送请求消息。所述请求消息可包括所述服务器A和所述服务器B。所述服务器A所请求的端口路径信息包括图3中转发设备D->转发设备B->转发设备E这条链路上的端口。
102、所述控制器根据网络拓扑信息、所述第一服务器的标识和所述第二服务器的标识,获得第一APP和第二APP,所述网络拓扑信息包括所述第一服务器和第一转发设备之间的端口连接信息以及所述第二服务器和与第二转发设备之间的端口连接信息,所述第一转发设备与所述第一服务器通信,所述第二转发设备与所述第二服务器通信,所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口。
举例说明,所述控制器可预先配置或预先生成网络拓扑信息,比如所述控制器可以是软件定义网络(Soft Defined Network,简称SDN)控制器,所述SDN控制器可以利用开放流(OpenFlow)协议或者其他协议中的拓扑发现机制,来获得网络中相邻两个转发设备之间的端口连接信息。所述网络拓扑信息可用于表明网络中的转发设备之间的连接关系以及转发设备和服务器间的连接关系。若所述第一转发设备和所述第二转发设备间的链路还包括其它转发设备,比如第三转发设备,则所述网络拓扑信息还包括所述第三转发设备与所述第一转发设备之间的端口连接信息以及所述第三转发设备与所述第二转发设备之间的端口连接信息,所述第三转发设备分别与所述第一转发设备和所述第二转发设备通信。
举例说明,所述控制器选择所述根节点的方式可包括:所述网络中的转发设备自行上报的角色、所述网络中的转发设备相互协商后上报角色、在所述控制器配置所述根节点的信息、或所述控制器根据所述网络拓扑信息选择所述根节点。所述根节点是一个物理上存在的转发设备或者虚拟转发设备,它可以和任意转发设备或服务器有逻辑上的链路。所述虚拟转发设备可以是物理上不存在或者由多个物理上存在的转发设备虚拟获得的设备。该实施例中的根节点是物理上存在的转发设备,比如所述转发设备A。
举例说明,所述控制器根据所述网络拓扑信息、所述第一服务器的标识和所述第二服务器的标识,获得第一APP和第二APP包括:所述控制器根据所述网络拓扑信息,确定所述根节点,所述根节点为作为树的树根的节点,所述树的叶子节点包括所述第一转发设备和所述第二转发设备;所述控制器获得所述根节点的信息,所述根节点的信息包括所述根节点的标识、第七端口号和第八端口号,所述第七端口号所标识的端口为所述根节点上能够与所述第一服务器通信的端口,所述第八端口号所标识的端口为所述根节点上能够与所述第二服务器通信的端口;所述控制器根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得所述第一APP;所述控制器根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得所述第二APP。
举例说明,所述控制器根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得所述第一APP包括:所述控制器根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得第一APP集,所述第一APP集包括至少一条第一APP,所述至少一条第一APP与所述第一服务器对应;所述控制器从所述第一APP集中选择一条第一APP作为所述第一APP。其中,所述控制器遍历所述根节点到所述第一服务器的链路,遍历方式包括但不限于广度优先、深度优先或者最短路径算法,计算出所有可能的APP,即获得第一APP集。
举例说明,所述控制器根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得所述第二APP包括:所述控制器根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得第二APP集,所述第二APP集包括至少一条第二APP,所述至少一条第二APP与所述第二服务器对应;所述控制器从所述第二APP集中选择一条第二APP作为所述第二APP。其中,所述控制器遍历所述根节点到所述第二服务器的链路,遍历方式包括但不限于广度优先、深度优先或者最短路径算法,计算出所有可能的APP,即获得第二APP集。
举例说明,所述控制器从所述第二APP集中选择所述第二APP时,所述第二APP包含的所述根节点的端口可以与所述第一APP包含的所述根节点的端口不相同。或者,所述控制器根据所述第一APP,从所述第二APP集中选择一条第二APP作为所述第二APP,所述第二APP和所述第一APP包含相同的端口号,所述相同的端口号为所述第七端口号或所述第八端口号。
如图2和图3所示,所述转发设备A、所述转发设备B、所述转发设备C、所述转发设备D、所述转发设备E和所述转发设备F形成树型结构。所述控制器选择所述转发设备A为根节点,所述转发设备B、所述转发设备C、所述转发设备D、所述转发设备E和所述转发设备F为叶子节点。所述第七端口号为图2或图3中转发设备A上的端口1,所述第八端口号为图2或图3中转发设备A上的端口1。所述控制器选择的第一APP对应的链路为所述转发设备A的端口1->所述转发设备B的端口5->所述转发设备B的端口3->所述转发设备D的端口5->所述转发设备D的端口1,可简化为[1,5,3,5,1]。其中,所述转发设备D的端口1可与所述服务器A通信。所述控制器选择的第一APP可表示为[0,0,0,0,0,0,0,1,5,3,5,1]。所述控制器选择的第二APP对应的链路为所述转发设备A的端口1->所述转发设备B的端口5->所述转发设备B的端口4->所述转发设备E的端口6->所述转发设备E的端口2,可简化为[1,5,4,6,2]。其中,所述转发设备E的端口2可以与所述服务器B通信。所述控制器选择的第二APP可表示为[0,0,0,0,0,0,0,1,5,4,6,2]。所述第一APP和所述第二APP是两条较佳的APP。
可选地,所述控制器从所述第一APP集中选择一条第一APP作为所述第一APP包括:所述控制器根据所述至少一条第一APP对应的逻辑链路的链路状态信息,从所述第一APP集中选择所述第一APP,所述链路状态信息用于标识逻辑链路是否发生拥塞,所述第一APP不包括处于拥塞的链路。所述控制器可根据链路状态选择第一APP,以避开处于拥塞的链路或将要处于拥塞的链路。
如图4所示,所示控制器可获知转发设备D和转发设备B间的链路存在拥塞或将要处于拥塞,所述控制器选择的第一APP对应的链路为所述转发设备A的端口1->所述转发设备B的端口5->所述转发设备B的端口4->所述转发设备E的端口6->所述转发设备E的端口7,可简化为[1,5,4,6,7]。其中,所述转发设备E的端口7可与所述服务器A通信。所述控制器选择的第一APP可表示为[0,0,0,0,0,0,0,1,5,4,6,7]。
可选地,所述控制器从所述第二APP集中选择一条第二APP作为所述第二APP包括:所述控制器根据所述第一APP,从所述第二APP集中选择N条第二APP,所述N大于或等于1的整数,所述N条第二APP中任意一条第二APP和所述第一APP包含相同的端口号,所述相同的端口号为所述第七端口号或所述第八端口号;所述控制器根据所述N条第二APP对应的逻辑链路的链路状态信息,从所述N条第二APP中选择所述第二APP,所述链路状态信息用于标识逻辑链路是否发生拥塞,所述第二APP不包括处于拥塞的链路。
如图4所示,所述转发设备A到服务器B的链路上不存在处于拥塞或将要拥塞的链路。所述控制器选择的第二APP对应的链路为所述转发设备A的端口1->所述转发设备B的端口5->所述转发设备B的端口4->所述转发设备E的端口6->所述转发设备E的端口2,可简化为[1,5,4,6,2]。其中,所述转发设备E的端口2可以与所述服务器B通信。所述控制器选择的第二APP可表示为[0,0,0,0,0,0,0,1,5,4,6,2]。若所述所述转发设备A到服务器B的链路上存在处于拥塞或将要拥塞的链路,则所述控制器也可按照图4中选择第一APP的方式选择第二APP,在此不再赘述。
103、所述控制器根据所述第一APP和所述第二APP,获得所述端口路径信息。
举例说明,所述端口路径信息为PTPP,所述控制器根据所述第一APP和所述第二APP,获得所述端口路径信息包括:所述控制器将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;所述控制器将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;所述控制器将所述第三APP反转,获得反转后的第三APP;所述控制器将所述反转后的第三APP和所述第四APP进行拼接,获得所述PTPP。
如图3和图5所示,所述第一APP可表示为[0,0,0,0,0,0,0,1,5,3,5,1],所述控制器根据所述第一APP获得的第三APP可表示为[1,5,3,5,1],所述控制器获得的反转后的第三APP与所述第三APP相同,均可表示为[1,5,3,5,1]。所述第二APP可表示为[0,0,0,0,0,0,0,1,5,4,6,2],所述控制器根据所述第二APP获得的第四APP可表示为[1,5,4,6,2]。所述控制器获得的所述PTPP可表示为[1,5,3,5,1,1,5,4,6,2],即所述PTPP对应的链路可表示为所述转发设备D的端口1->所述转发设备D的端口5->所述转发设备B的端口3->所述转发设备B的端口5->所述转发设备A的端口1->所述转发设备A的端口1->所述转发设备B的端口5->所述转发设备B的端口4->所述转发设备E的端口6->所述转发设备E的端口2。
可选地,所述端口路径信息为PTPP,所述控制器根据所述第一APP和所述第二APP,获得所述端口路径信息包括:所述控制器将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;所述控制器将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;所述控制器去除所述第三APP和所述第四APP中相同的前缀,获得第五APP和第六APP,所述相同的前缀为所述第三APP和所述第四APP所包括的相同的端口序列,所述第五APP是所述第三APP中去除所述相同的前缀后获得的端口序列,所述第六APP是所述第四APP中去除所述相同的前缀后获得的端口序列;所述控制器将所述第五APP反转,获得反转后的第五APP;所述控制器将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP。采用这种方式获得的PTPP,可以缩短PTPP包括的端口序列,节省网络资源。
如图3和图6所示,所述第一APP可表示为[0,0,0,0,0,0,0,1,5,3,5,1],所述控制器根据所述第一APP获得的第三APP可表示为[1,5,3,5,1]。所述第二APP可表示为[0,0,0,0,0,0,0,1,5,4,6,2],所述控制器根据所述第二APP获得的第四APP可表示为[1,5,4,6,2]。所述第三APP和所述第四APP包含相同的前缀,即[1,5]。所述控制器从所述第三APP中去除所述相同的前缀,获得的所述第五APP可表示为[3,5,1]。所述控制器从所述第四APP中去除所述相同的前缀,获得的所述第六APP可表示为[4,6,2]。所述反转后的第五APP可表示为[1,5,3]。所述控制器获得的所述PTPP可表示为[1,5,3,4,6,2],即所述PTPP对应的链路可表示为所述转发设备D的端口1->所述转发设备D的端口5->所述转发设备B的端口3->所述转发设备B的端口4->所述转发设备E的端口6->所述转发设备E的端口2。采用这种方式获得的PTPP,可以有效地缩短PTPP包括的端口序列。
可选地,所述控制器将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP包括:所述控制器将所述反转后的第五APP与所述第六APP进行拼接,获得第七APP;所述控制器将所述第七APP包括的端口序列中位于奇数位的端口剔除,获得所述PTPP。
如图3所示,所述第七APP可表示为[1,5,3,4,6,2],即所述第七APP对应的链路可表示为所述转发设备D的端口1->所述转发设备D的端口5->所述转发设备B的端口3->所述转发设备B的端口4->所述转发设备E的端口6->所述转发设备E的端口2。所述控制器去除[1,5,3,4,6,2]中位于奇数位的端口号,获得表示为[5,4,2]的PTPP,[5,4,2]中的5、4和2分别表示所述转发设备D、所述转发设备B和所述转发设备E的出端口,进一步简化了端口序列。
104、所述控制器向所述第一服务器发送所述端口路径信息。
举例说明,所述控制器可根据所述第一服务器的标识,向所述第一服务器发送所述端口路径信息。
本发明提供的实施例中,控制器接收第一服务器的请求消息,所述请求消息用于向控制器请求端口路径信息,所述端口路径信息包括第一服务器到第二服务器的逻辑链路所经过的端口;所述控制器根据生成的第一APP和第二APP,获得端口路径信息;所述控制器向所述第一服务器发送所述端口路径信息,有助于转发设备根据报文中携带的与端口路径信息对应的PTPP转发报文,无需存储MAC表项或路由表项,有助于消除转发设备上的MAC表项或路由表项对网络规模的限制,有助于降低成本。
可选地,101之前,本发明实施例提供的方法还包括:所述控制器获得所述网络拓扑信息。所述网络拓扑信息可包括所述第一服务器和所述第一转发设备之间的端口连接信息以及所述第二服务器和所述第二转发设备之间的端口连接信息。
举例说明,所述控制器获得所述网络拓扑信息包括:所述控制器接收所述第一转发设备发送的第一报文,所述第一报文包括第一端口号、所述第一服务器的标识和所述第一转发设备的标识,所述第一端口号所标识的端口为所述第一转发设备上与所述第一服务器通信的端口;所述控制器接收所述第二转发设备发送的第二报文,所述第二报文包括第二端口号、所述第二服务器的标识和所述第二转发设备的标识,所述第二端口号所标识的端口为所述第二转发设备上与所述第二服务器通信的端口;所述控制器根据所述第一报文包括的所述第一端口号、所述第一服务器的标识和所述第一转发设备的标识,获得所述第一服务器和所述第一转发设备之间的端口连接信息;所述控制器根据所述第二报文包括的所述第二端口号、所述第二服务器的标识和所述第二转发设备的标识,获得所述第二服务器和所述第二转发设备之间的端口连接信息;所述控制器根据所述第一服务器和所述第一转发设备之间的端口连接信息以及所述第二服务器和所述第二转发设备之间的端口连接信息,获得所述网络拓扑信息。
可选地,若所述控制器可为所述第一服务器和所述第二服务器分配DHCP信息,则所述控制器获得所述网络拓扑信息包括:所述控制器获得所述控制器为所述第一服务器分配的第一DHCP信息,所述第一DHCP信息包括第一端口号、所述第一服务器的标识和所述第一转发设备的标识,所述第一端口号所标识的端口为所述第一转发设备上与所述第一服务器通信的端口;所述控制器获得所述控制器为所述第二服务器分配的第二DHCP信息,所述第二DHCP信息包括第二端口号、所述第二服务器的标识和所述第二转发设备的标识,所述第二端口号所标识的端口为所述第二转发设备上与所述第二服务器通信的端口;所述控制器根据所述第一DHCP信息包括的所述第一端口号、所述第一服务器的标识和所述第一转发设备的标识,获得所述第一服务器和所述第一转发设备之间的端口连接信息;所述控制器根据所述第二DHCP信息包括的所述第二端口号、所述第二服务器的标识和所述第二转发设备的标识,获得所述第二服务器和所述第二转发设备之间的端口连接信息;所述控制器根据所述第一服务器和所述第一转发设备之间的端口连接信息以及所述第二服务器和所述第二转发设备之间的端口连接信息,获得所述网络拓扑信息。
举例说明,所述控制器还可以通过搜集免费地址解析协议(Gratuitous AddressResolution Protocol,简称GARP),来获取所述服务器A的标识、所述服务器B的标识、所述服务器A连接其相邻的转发设备的端和所述服务器B连接其相邻的转发设备的端口。其中,所述服务器A通过其端口上报的GARP报文会被连接所述服务器A的转发设备上送至所述控制器。所述服务器A还可上报的其被分配的租户号,如虚拟可扩展局域网(VirtualExtensible LAN,简称VXLAN)标识、虚拟可扩展局域网(Virtual LAN,简称VLAN)标识等,以及连接所述服务器A的转发设备的标识和连接所述服务器A的端口号。所述服务器B也可采用相同的方式进行上报。这样,所述控制器就可获知所述服务器A和所述服务器B在网络中的位置。
举例说明,所述控制器还可通过任意一台转发设备发送的基于OpenFlow的packet-in报文,获得所述服务器A的端口所连接的转发设备以及所述服务器B的端口所连接的转发设备。其中,若任意一台转发设备为连接所述服务器A的转发设备,则所述连接所述服务器A的转发设备会向所述控制器上报第一packet-in报文,所述第一packet-in报文的报文头包括接收来自所述服务器A的GARP报文的端口,所述第一packet-in报文包括所述来自服务器A的GRAP报文。若任意一台转发设备为连接所述服务器B的转发设备,则所述连接所述服务器B的转发设备会向所述控制器上报第二packet-in报文,所述第二packet-in报文的报文头包括接收来自所述服务器B的GARP报文的端口,所述第二packet-in报文包括所述来自所述服务器B的GRAP报文。
可选地,所述网络拓扑信息还包括所述第三转发设备与所述第一转发设备之间的端口连接信息以及所述第三转发设备与所述第二转发设备之间的端口连接信息,所述第三转发设备分别与所述第一转发设备和所述第二转发设备通信。
举例说明,所述控制器获得所述第三转发设备与所述第一转发设备之间的端口连接信息以及所述第三转发设备与所述第二转发设备之间的端口连接信息包括:所述控制器接收所述第三转发设备发送的第一LLDP消息,所述第一LLDP消息包括第三端口号、第四端口号、所述第三转发设备的标识和所述第一转发设备的标识,所述第三端口号所标识的端口是所述第一转发设备上与所述第三转发设备通信的端口,所述第四端口号所标识的端口是所述第三转发设备上与所述第一转发设备通信的端口;所述控制器接收所述第三转发设备发送的第二LLDP消息,所述第二LLDP消息包括第五端口号、第六端口号、所述第三转发设备的标识和所述第二转发设备的标识,所述第五端口号所标识的端口是所述第三转发设备上与所述第二转发设备通信的端口,所述第六端口号所标识的端口是所述第二转发设备上与所述第三转发设备通信的端口;所述控制器根据所述第一LLDP消息包括的所述第三端口号、所述第四端口号、所述第三转发设备的标识和所述第一转发设备的标识,获得所述第三转发设备与所述第一转发设备之间的端口连接信息;所述控制器根据所述第二LLDP消息包括的所述第五端口号、所述第六端口号、所述第三转发设备的标识和所述第二转发设备的标识,获得所述第三转发设备与所述第二转发设备之间的端口连接信息。
图7为本发明实施例的数据中心网络的系统架构图。图7所示的网络中,转发设备A为虚拟节点,即图7中的转发设备A可以没有物理实体。控制器(图7未示出)可与图7中的任意一台网络设备通信。所述转发设备A、转发设备B、转发设备C、转发设备D、转发设备E和转发设备F形成树型结构。所述转发设备B、所述转发设备C、所述转发设备D、所述转发设备E和所述转发设备F属于叶子节点。所述转发设备D和所述转发设备E分别连接服务A;所述转发设备E和所述转发设备F分别连接服务器B。图8为本发明实施例的数据中心网络的计算PTPP示意图。由于转发设备A是虚拟节点,转发设备A与转发设备B之间的链路是虚拟链路。
图7对应的实施例中,所述控制器确定所述根节点的方法和所述控制器获得第一APP的方法可以与图1对应的实施例相同,在此不再赘述。所述控制器获得端口路径信息的方式和图1对应的实施例中获得端口路径信息的方式不同。
所述控制器获得第二APP的方法可以为所述控制器选择的所述第二APP与所述第一APP包含相同的端口号,所述相同的端口号标识所述根节点的一个端口。相应地,所述控制器所述控制器根据所述第一APP和所述第二APP,获得PTPP包括:所述控制器将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;所述控制器将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;所述控制器去除所述第三APP和所述第四APP中相同的前缀,获得第五APP和第六APP,所述相同的前缀为所述第三APP和所述第四APP所包括的相同的端口序列,所述第五APP是所述第三APP中去除所述相同的前缀后获得的端口序列,所述第六APP是所述第四APP中去除所述相同的前缀后获得的端口序列;所述控制器将所述第五APP反转,获得反转后的第五APP;所述控制器将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP。
如图8所示,所述第一APP可表示为[0,0,0,0,0,0,0,1,5,3,5,1],所述控制器根据所述第一APP获得的第三APP可表示为[1,5,3,5,1]。所述第二APP可表示为[0,0,0,0,0,0,0,1,5,4,6,2],所述控制器根据所述第二APP获得的第四APP可表示为[1,5,4,6,2]。所述第三APP和所述第四APP包含相同的前缀,即[1,5]。所述控制器从所述第三APP中去除所述相同的前缀,获得的所述第五APP可表示为[3,5,1]。所述控制器从所述第四APP中去除所述相同的前缀,获得的所述第六APP可表示为[4,6,2]。所述反转后的第五APP可表示为[1,5,3]。所述控制器获得的所述PTPP可表示为[1,5,3,4,6,2],即所述PTPP对应的链路可表示为所述转发设备D的端口1->所述转发设备D的端口5->所述转发设备B的端口3->所述转发设备B的端口4->所述转发设备E的端口6->所述转发设备E的端口2。
可选地,所述控制器将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP包括:所述控制器将所述反转后的第五APP与所述第六APP进行拼接,获得第七APP;所述控制器将所述第七APP包括的端口序列中位于奇数位的端口剔除,获得所述PTPP。
如图3所示,所述第七APP可表示为[1,5,3,4,6,2],即所述第七APP对应的链路可表示为所述转发设备D的端口1->所述转发设备D的端口5->所述转发设备B的端口3->所述转发设备B的端口4->所述转发设备E的端口6->所述转发设备E的端口2。所述控制器去除[1,5,3,4,6,2]中位于奇数位的端口号,获得表示为[5,4,2]的PTPP,[5,4,2]中的5、4和2分别表示所述转发设备D、所述转发设备B和所述转发设备E的出端口,进一步简化了端口序列。
图9为本发明实施例的用于获取端口路径的方法流程图。图9是从第一服务器侧对本发明实施例提供的用于获取端口路径的方法进行说明。所述第一服务器可作为源节点,相应地,第二服务器可作为目的节点。结合图9,对本发明实施例提供的用于获取端口路径的方法进行说明。
901、第一服务器向控制器发送请求消息,所述请求消息包括所述第一服务器的标识和第二服务器的标识,所述请求消息用于向所述控制器请求端口路径信息,所述端口路径信息包括所述第一服务器到所述第二服务器的逻辑链路所经过的端口。
举例说明,所述第一服务器的标识与图1对应的实施例中的第一服务器的标识相同。所述第二服务器的标识与图1对应的实施例中第二服务器的标识相同。所述请求消息可以与图1对应的实施例中的请求消息相同。
902、所述第一服务器接收所述控制器发送的所述端口路径信息。
举例说明,所述端口信息可以包括图1对应的实施例中的第一APP和第二APP,或者所述端口信息可以是图1对应的实施例中的PTPP。所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口。
903、所述第一服务器根据所述端口路径信息,获得PTPP,所述PTPP为所述第一服务器至所述第二服务器的链路所经过的端口序列。
举例说明,若所述端口信息为所述PTPP,则所述第一服务器可直接从所述端口路径信息中获得所述PTPP。若所述端口信息包括所述第一APP和所述第二APP,则所述第一服务器可根据所述第一APP和所述第二APP生成所述PTPP。其中,所述根节点为物理节点或虚拟节点,所述第一服务器生成所述PTPP的方法与图1对应的实施例中控制器生成PTPP的方法相同,在此不再赘述。
图10为本发明实施例的一种报文封装示意图。
图11为本发明实施例的另一种报文封装示意图。
可选地,903之后,本发明实施例提供的方法还包括:所述第一服务器将所述PTPP添加至第一报文,获得第二报文,所述第一报文为所述第一服务器发送给所述第二服务器的报文;所述第一服务器向所述第二服务器发送所述第二报文。
举例说明,所述第一服务器将所述PTPP添加至第一报文,获得第二报文包括:所述第一服务器获得与所述PTPP对应的路径跳数,所述第一报文的报文头包括MAC字段,所述路径跳数用于标识发送所述第二报文的端口在所述PTPP中的位置;所述第一服务器将所述PTPP、所述路径跳数和类型标识,添加至所述MAC字段,所述类型标识用于标识所述第二报文包括所述PTPP。如图10所示,
举例说明,所述第一报文包括MPLS字段,所述第一服务器将所述PTPP添加至第一报文,获得第二报文包括:所述第一服务器将所述PTPP添加至所述MPLS字段,获得所述第二报文。所述PTPP中包括的端口序列可采用MPLS中的方式弹出和/或压入,在此不再赘述。
如图10所示,PTPP被封装在IP头之前取代了MAC地址。其中,PTPP可以用12字节表示。路径跳数可以用1字节表示,所述路径跳数在所述第一服务器获得第二报文时初始化为0,其后每个转发设备在转发后都将该数值增加预设值。类型标识可以用1字节表示,此处用于区别常用的MAC头的版本号,标识所述第二报文包括所述PTPP。VLAN等租户信息依然作为可选项,保存在名称为TA的字段。
如图11所示,所述第一服务器将所述PTPP封装在MPLS字段中,获得第二报文。接收到所述第二报文的转发设备读取所述PTPP中位于栈顶的端口号,将所述位于栈顶的端口号作为出端口。所述接收到所述第二报文的转发设备可将所述PTPP中位于栈顶的端口号删除,获得第三报文。所述接收到所述第二报文的转发设备通过所述出端口,向所述第二服务器发送所述第三报文。
图12为本发明实施例的用于根据端口路径转发报文的方法流程图。图12是从转发设备侧对本发明实施例提供的用于根据端口路径转发报文的方法进行说明。结合图12,对本发明实施例提供的用于根据端口路径转发报文的方法进行说明。
1201、转发设备接收网络设备发送的第一报文,所述网络设备为第一服务器或上一跳设备,所述上一跳设备为所述转发设备在PTPP对应的链路的上一跳,所述第一报文包括所述PTPP,所述PTPP为所述第一服务器到第二服务器的链路所经过的端口序列。
举例说明,如图3所示,若转发设备为转发设备D时接收网络设备发送的第一报文,此时网络设备为第一服务器即服务器A,所述第一报文包括所述PTPP,所述PTPP为所述第一服务器到第二服务器(服务器B)的链路所经过的端口序列,例如所述PTPP可表示为[1,5,3,4,6,2],即所述PTPP对应的链路可表示为所述转发设备D的端口1->所述转发设备D的端口5->所述转发设备B的端口3->所述转发设备B的端口4->所述转发设备E的端口6->所述转发设备E的端口2;若转发设备为转发设备B时接收网络设备发送的第一报文,此时网络设备为上一跳设备,即转发设备D。
1202、所述转发设备根据所述第一报文包括的所述PTPP,获得第二报文,所述第二报文包括的PTPP用于指示所述转发设备的下一跳转发报文。
举例说明,如果所述第一报文还包括路径跳数,所述第一报文包括的所述PTPP包括的端口均为出端口,则所述转发设备获得所述第二报文包括:所述转发设备根据所述第一报文包括的所述路径跳数,获得更新后的路径跳数,所述更新后的路径跳数和所述第一报文包括的所述路径跳数相差第一预设值;所述转发设备用所述更新后的路径跳数替换所述第一报文包括的所述路径跳数,获得所述第二报文。其中,本发明实施例中的路径跳数的含义与图1或图9对应的实施例中的路径跳数的含义相同,在此不再赘述。所述第二报文包括的更新后的路径跳数所对应的PTPP中的端口号标识的是下一跳的出端口。所述下一跳为所述转发设备在所述PTPP对应的链路上的下一跳设备。所述第一预设值可以为1。
举例说明,如果所述第一报文还包括路径跳数,则所述转发设备获得所述第二报文包括:所述转发设备根据所述第一报文包括的所述路径跳数,获得更新后的路径跳数,所述更新后的路径跳数和所述第一报文包括的所述路径跳数相差第二预设值;所述转发设备用所述更新后的路径跳数替换所述第一报文包括的所述路径跳数,获得所述第二报文。其中,本发明实施例中的路径跳数的含义与图1或图9对应的实施例中的路径跳数的含义相同,在此不再赘述。所述第二报文包括的更新后的路径跳数所对应的PTPP中的端口号标识的是下一跳的入端口。所述下一跳为所述转发设备在所述PTPP对应的链路上的下一跳设备。所述第二预设值可以为2。
举例说明,如果所述第一报文的MPLS字段包括所述PTPP,所述第一报文包括的所述PTPP包括的端口均为出端口,则所述转发设备获得所述第二报文包括:所述转发设备将所述MPLS字段中位于栈顶的端口号弹出,获得所述第二报文。所述第二报文的MPLS字段中位于栈顶的端口号用于标识所述下一跳的出端口。
举例说明,如果所述第一报文的MPLS字段包括所述PTPP,则所述转发设备获得所述第二报文包括:所述转发设备将所述MPLS字段中位于栈顶的端口号和与所述栈顶的端口号相邻的端口号弹出,获得所述第二报文。所述第二报文的MPLS字段中位于栈顶的端口号用于标识所述下一跳的入端口。
如图3所示,转发设备D根据所述第一报文包括的所述PTPP,获得第二报文。所述第二报文包括的PTPP用于指示所述转发设备的下一跳(转发设备B)通过端口4发送报文。
1203、所述转发设备根据所述第一报文包括的所述PTPP所指示的端口,向所述第二服务器发送所述第二报文。
举例说明,所述第一报文的报文头包括MAC字段,所述MAC字段包括所述PTPP、路径跳数和所述类型标识,所述路径跳数用于标识端口在所述PTPP中的位置,所述类型标识用于标识所述第一报文包括所述PTPP,所述转发设备根据所述第一报文包括的所述PTPP所指示的端口,向所述第二服务器发送所述第二报文包括:所述转发设备从所述MAC字段获得所述类型标识;所述转发设备根据所述类型标识确定所述第一报文包括所述路径跳数后,从所述MAC字段获得所述PTPP和所述路径跳数;所述转发设备根据所述第一报文包括的所述路径跳数,从所述PTPP中选择用于发送所述第二报文的端口;所述转发设备通过所述用于发送所述第二报文的端口,向所述第二服务器发送所述第二报文。
如图3和图10所示,若所述转发设备为转发设备D,所述第一报文包括的路径跳数为2,则所述转发设备D根据所述第一报文包括的所述PTPP所指示的端口,如图3中转发设备D的端口5,向所述服务器B发送所述第二报文。所述第二报文中的路径跳数可以为3或4。如图3所示,若所述转发设备为转发设备B,转发设备B从来自转发设备D的报文中获得的路径跳数为3,则所述转发设备B可先更新所述路径跳数,获得所述转发设备B用于发送所述第二报文的端口,即端口4。所述转发设备B还可更新所述第一报文的路径跳数,即更新后的路径跳数为5或6,获得所述第二报文。所述转发设备B通过其上的端口4,向服务器B发送所述第二报文,第二报文中的路径跳数可由转发设备修改为5。
举例说明,所述第一报文的报文头包括MPLS字段,所述MPLS字段包括所述PTPP,所述转发设备根据所述第一报文包括的所述PTPP所指示的端口,向所述第二服务器发送所述第二报文包括:所述转发设备从所述MPLS字段获得位于栈顶的端口号;所述转发设备通过所述位于栈顶的端口号所标识的端口,向所述第二服务器发送所述第二报文。
如图3和图11所示,若所述转发设备为转发设备D,则所述第一报文的报文头的结构可以为图11所示的结构。所述转发设备D根据所述第一报文中MPLS字段中位于栈顶的端口号,即端口5,确定所述转发设备D上用于发送所述第二报文的端口为端口5。所述转发设备D可将所述第一报文的MPLS字段中栈顶的端口号弹出,获得第二报文,所述第二报文中的PTPP包括[4,2]。所述转发设备D通过其端口5,向转发设备B发送所述第二报文。所述转发设备B接收到的所述第二报文的MPLS字段中栈顶的端口号为4,即所述转发设备B需要通过其端口4向服务器B发送报文。
图13为本发明实施例的控制器的结构示意图。本发明实施例的控制器可采用图1对应的实施例提供的方法。如图13所示,本实施例的控制器包括:第一接收模块1301、第一获得模块1302、第二获得模块1303和发送模块1304。
所述第一接收模块1301用于接收第一服务器的请求消息,所述请求消息包括第一服务器的标识和第二服务器的标识,所述请求消息用于向所述控制器请求端口路径信息,所述端口路径信息包括所述第一服务器到所述第二服务器的逻辑链路所经过的端口。
所述第一获得模块1302用于根据网络拓扑信息、所述第一服务器的标识和所述第二服务器的标识,获得第一APP和第二APP,所述网络拓扑信息包括所述第一服务器和第一转发设备之间的端口连接信息以及所述第二服务器和与第二转发设备之间的端口连接信息,所述第一转发设备与所述第一服务器通信,所述第二转发设备与所述第二服务器通信,所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口。
所述第二获得模块1303用于根据所述第一APP和所述第二APP,获得所述端口路径信息;
所述发送模块1304用于向所述第一服务器发送所述端口路径信息。
举例说明,所述第一获得模块1302具体用于:根据所述网络拓扑信息,确定所述根节点,所述根节点为作为树的树根的节点,所述树的叶子节点包括所述第一转发设备和所述第二转发设备;获得所述根节点的信息,所述根节点的信息包括所述根节点的标识、第七端口号和第八端口号,所述第七端口号所标识的端口为所述根节点上能够与所述第一服务器通信的端口,所述第八端口号所标识的端口为所述根节点上能够与所述第二服务器通信的端口;根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得所述第一APP;根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得所述第二APP。
举例说明,所述第一获得模块1302用于根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得所述第一APP时,所述第一获得模块1302具体用于:根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得第一APP集,所述第一APP集包括至少一条第一APP,所述至少一条第一APP与所述第一服务器对应;从所述第一APP集中选择一条第一APP作为所述第一APP。
可选地,所述第一获得模块1302用于从所述第一APP集中选择一条第一APP作为所述第一APP时,所述第一获得模块1302具体用于:根据所述至少一条第一APP对应的逻辑链路的链路状态信息,从所述第一APP集中选择所述第一APP,所述链路状态信息用于标识逻辑链路是否发生拥塞,所述第一APP不包括处于拥塞的链路。
举例说明,所述第一获得模块1302用于根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得所述第二APP时,所述第一获得模块1302具体用于:根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得第二APP集,所述第二APP集包括至少一条第二APP,所述至少一条第二APP与所述第二服务器对应;从所述第二APP集中选择一条第二APP作为所述第二APP。
可选地,所述第一获得模块1302用于从所述第二APP集中选择一条第二APP作为所述第二APP,所述第一获得模块1302具体用于:根据所述第一APP,从所述第二APP集中选择一条第二APP作为所述第二APP,所述第二APP和所述第一APP包含相同的端口号,所述相同的端口号为所述第七端口号或所述第八端口号。
可选地,所述第一获得模块1302用于从所述第二APP集中选择一条第二APP作为所述第二APP,所述第一获得模块1302具体用于:根据所述第一APP,从所述第二APP集中选择N条第二APP,所述N大于或等于1的整数,所述N条第二APP中任意一条第二APP和所述第一APP包含相同的端口号,所述相同的端口号为所述第七端口号或所述第八端口号;根据所述N条第二APP对应的逻辑链路的链路状态信息,从所述N条第二APP中选择所述第二APP,所述链路状态信息用于标识逻辑链路是否发生拥塞,所述第二APP不包括处于拥塞的链路。
举例说明,在一种方式中,所述根节点为物理节点,所述端口路径信息为PTPP,所述第二获得模块1303具体用于:将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;将所述第三APP反转,获得反转后的第三APP;将所述反转后的第三APP和所述第四APP进行拼接,获得所述PTPP。
举例说明,在另一种方式中,所述端口路径信息为PTPP,所述第二获得模块1303具体用于:将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;去除所述第三APP和所述第四APP中相同的前缀,获得第五APP和第六APP,所述相同的前缀为所述第三APP和所述第四APP所包括的相同的端口序列,所述第五APP是所述第三APP中去除所述相同的前缀后获得的端口序列,所述第六APP是所述第四APP中去除所述相同的前缀后获得的端口序列;将所述第五APP反转,获得反转后的第五APP;将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP。
可选地,所述第二获得模块1303用于将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP时,所述第二获得模块1303具体用于:将所述反转后的第五APP与所述第六APP进行拼接,获得第七APP;将所述第七APP包括的端口序列中位于奇数位的端口剔除,获得所述PTPP。
可选地,所述网络拓扑信息还包括第三转发设备与所述第一转发设备之间的端口连接信息以及所述第三转发设备与所述第二转发设备之间的端口连接信息,所述第三转发设备分别与所述第一转发设备和所述第二转发设备通信。
可选地,在所述控制器获得所述网络拓扑信息的一种实现方式中,所述控制器还包括:第二接收模块1305、第三接收模块1306、第三获得模块1307、第四获得模块1308和第五获得模块1309。
所述第二接收模块1305用于接收所述第一转发设备发送的第一报文,所述第一报文包括第一端口号、所述第一服务器的标识和所述第一转发设备的标识,所述第一端口号所标识的端口为所述第一转发设备上与所述第一服务器通信的端口。
所述第三接收模块1306用于接收所述第二转发设备发送的第二报文,所述第二报文包括第二端口号、所述第二服务器的标识和所述第二转发设备的标识,所述第二端口号所标识的端口为所述第二转发设备上与所述第二服务器通信的端口。
所述第三获得模块1307用于根据所述第一报文包括的所述第一端口号、所述第一服务器的标识和所述第一转发设备的标识,获得所述第一服务器和所述第一转发设备之间的端口连接信息。
所述第四获得模块1308用于根据所述第二报文包括的所述第二端口号、所述第二服务器的标识和所述第二转发设备的标识,获得所述第二服务器和所述第二转发设备之间的端口连接信息。
所述第五获得模块1309用于根据所述第一服务器和所述第一转发设备之间的端口连接信息以及所述第二服务器和所述第二转发设备之间的端口连接信息,获得所述网络拓扑信息。
可选地,在所述控制器获得所述网络拓扑信息的另一种实现方式中,所述控制器还包括:第六获得模块1310、第七获得模块1311、第三获得模块1307、第四获得模块1308和第五获得模块1309。
所述第六获得模块1310用于获得所述控制器为所述第一服务器分配的第一DHCP信息,所述第一DHCP信息包括第一端口号、所述第一服务器的标识和所述第一转发设备的标识,所述第一端口号所标识的端口为所述第一转发设备上与所述第一服务器通信的端口。
所述第七获得模块1311用于获得所述控制器为所述第二服务器分配的第二DHCP信息,所述第二DHCP信息包括第二端口号、所述第二服务器的标识和所述第二转发设备的标识,所述第二端口号所标识的端口为所述第二转发设备上与所述第二服务器通信的端口。
所述第三获得模块1307用于根据所述第一DHCP信息包括的所述第一端口号、所述第一服务器的标识和所述第一转发设备的标识,获得所述第一服务器和所述第一转发设备之间的端口连接信息。
所述第四获得模块1308用于根据所述第二DHCP信息包括的所述第二端口号、所述第二服务器的标识和所述第二转发设备的标识,获得所述第二服务器和所述第二转发设备之间的端口连接信息。
所述第五获得模块1309用于根据所述第一服务器和所述第一转发设备之间的端口连接信息以及所述第二服务器和所述第二转发设备之间的端口连接信息,获得所述网络拓扑信息。
可选地,在所述控制器获得转发设备间的端口连接信息的一种方式中,所述控制器还包括:第四接收模块1312、第五接收模块1313、第八获得模块1314和第九获得模块1315。
所述第四接收模块1312用于接收所述第三转发设备发送的第一LLDP消息,所述第一LLDP消息包括第三端口号、第四端口号、所述第三转发设备的标识和所述第一转发设备的标识,所述第三端口号所标识的端口是所述第一转发设备上与所述第三转发设备通信的端口,所述第四端口号所标识的端口是所述第三转发设备上与所述第一转发设备通信的端口。
所述第五接收模块1313用于接收所述第三转发设备发送的第二LLDP消息,所述第二LLDP消息包括第五端口号、第六端口号、所述第三转发设备的标识和所述第二转发设备的标识,所述第五端口号所标识的端口是所述第三转发设备上与所述第二转发设备通信的端口,所述第六端口号所标识的端口是所述第二转发设备上与所述第三转发设备通信的端口。
所述第八获得模块1314用于根据所述第一LLDP消息包括的所述第三端口号、所述第四端口号、所述第三转发设备的标识和所述第一转发设备的标识,获得所述第三转发设备与所述第一转发设备之间的端口连接信息。
所述第九获得模块1315用于根据所述第二LLDP消息包括的所述第五端口号、所述第六端口号、所述第三转发设备的标识和所述第二转发设备的标识,获得所述第三转发设备与所述第一转发设备之间的端口连接信息。
本实施例的控制器,可以用于执行图1-图8所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图14为本发明实施例的第一服务器的结构示意图。如图14所示,本实施例的服务器,包括:第一发送模块1401、接收模块1402、第一获得模块1403。
所述第一发送模块1401用于向控制器发送请求消息,所述请求消息包括所述第一服务器的标识和第二服务器的标识,所述请求消息用于向所述控制器请求端口路径信息,所述端口路径信息包括所述第一服务器到所述第二服务器的逻辑链路所经过的端口。
所述接收模块1402用于接收所述控制器发送的所述端口路径信息。
所述第一获得模块1403用于根据所述端口路径信息,获得PTPP,所述PTPP为所述第一服务器至所述第二服务器的链路所经过的端口序列。
可选地,所述第一服务器还包括:第二获得模块1404和第二发送模块1405。
所述第二获得模块1404用于将所述PTPP添加至第一报文,获得第二报文,所述第一报文为所述第一服务器发送给所述第二服务器的报文。
所述第二发送模块1405用于向所述第二服务器发送所述第二报文。
举例说明,在一种实现方式中,所述端口路径信息包括第一APP和第二APP,所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口,所述根节点为物理节点,第一获得模块1403具体用于:将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;将所述第三APP反转,获得反转后的第三APP;将所述反转后的第三APP和所述第四APP进行拼接,获得所述PTPP。
举例说明,在另一种实现方式中,所述端口路径信息包括第一APP和第二APP,所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口,第一获得模块1403具体用于:将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;去除所述第三APP和所述第四APP中相同的前缀,获得第五APP和第六APP,所述相同的前缀为所述第三APP和所述第四APP所包括的相同的端口序列,所述第五APP是所述第三APP中去除所述相同的前缀后获得的端口序列,所述第六APP是所述第四APP中去除所述相同的前缀后获得的端口序列;将所述第五APP反转,获得反转后的第五APP;将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP。
可选地,所述第一获得模块1403用于将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP时,所述第一获得模块1403具体用于:将所述反转后的第五APP与所述第六APP进行拼接,获得第七APP;将所述第七APP包括的端口序列中位于奇数位的端口剔除,获得所述PTPP。
举例说明,在一种实现方式中,所述第二获得模块1404具体用于:获得与所述PTPP对应的路径跳数,所述第一报文的报文头包括MAC字段,所述路径跳数用于标识发送所述第二报文的端口在所述PTPP中的位置;将所述PTPP、所述路径跳数和类型标识,添加至所述MAC字段,所述类型标识用于标识所述第二报文包括所述PTPP。
举例说明,在另一种实现方式中,所述第二报文包括MPLS字段,所述第二获得模块1404具体用于:将所述PTPP添加至所述MPLS字段,获得所述第二报文。
本实施例的第一服务器,可以用于执行图9-图11所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图15为本发明实施例的转发设备的结构示意图。如图15所示,本实施例的转发设备,包括:接收模块1501、获得模块1502和转发模块1503。
所述接收模块1501用于接收网络设备发送的第一报文,所述网络设备为第一服务器或上一跳设备,所述上一跳设备为所述转发设备在PTPP对应的链路的上一跳,所述第一报文包括所述PTPP,所述PTPP为所述第一服务器到第二服务器的链路所经过的端口序列。
所述获得模块1502用于根据所述第一报文包括的所述PTPP,获得第二报文,所述第二报文包括的PTPP用于指示所述转发设备的下一跳转发报文。
所述转发模块1503用于根据所述第一报文包括的所述PTPP所指示的端口,向所述第二服务器发送所述第二报文。
举例说明,在一种实现方式中,所述第一报文的报文头包括MAC字段,所述MAC字段包括所述PTPP、路径跳数和类型标识,所述路径跳数用于标识端口在所述PTPP中的位置,所述类型标识用于标识所述第一报文包括所述PTPP,所述转发模块1503具体用于:从所述MAC字段获得所述类型标识;根据所述类型标识确定所述第一报文包括所述路径跳数后,从所述MAC字段获得所述PTPP和所述路径跳数;根据所述第一报文包括的所述路径跳数,从所述PTPP中选择用于发送所述第二报文的端口;通过所述用于发送所述第二报文的端口,向所述第二服务器发送所述第二报文。
举例说明,在另一种实现方式中,所述第一报文的报文头包括MPLS字段,所述MPLS字段包括所述PTPP、所述路径跳数和所述类型标识,所述转发模块1503具体用于:从所述MPLS字段获得位于栈顶的端口号;通过所述位于栈顶的端口号所标识的端口,向所述第二服务器发送所述第二报文。
本实施例的转发设备,可以用于执行图12所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图16为本发明实施例的控制器的结构示意图。如图16所示,本实施例的控制器,包括:通信接口1601、处理器1602和存储器1603;其中,所述通信接口1601、处理器1602和所述存储器1603通过总线相互连接。
所述存储器1603存储程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器1603可能包含RAM,也可能还包括非易失性存储器,例如至少一个磁盘存储器。
所述处理器1602运行所述存储器1603中程序,用于执行如下内容:
接收第一服务器的请求消息,所述请求消息包括第一服务器的标识和第二服务器的标识,所述请求消息用于向所述控制器请求端口路径信息,所述端口路径信息包括所述第一服务器到所述第二服务器的逻辑链路所经过的端口;
根据网络拓扑信息、所述第一服务器的标识和所述第二服务器的标识,获得第一APP和第二APP,所述网络拓扑信息包括所述第一服务器和第一转发设备之间的端口连接信息以及所述第二服务器和与第二转发设备之间的端口连接信息,所述第一转发设备与所述第一服务器通信,所述第二转发设备与所述第二服务器通信,所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
根据所述第一APP和所述第二APP,获得所述端口路径信息;
向所述第一服务器发送所述端口路径信息。
其实现原理和技术效果可参考图1-图8所示的方法实施例,此处不再赘述。本发明实施例的控制器可以是图13所示的控制器,在此不再赘述。
所述处理器1602可以是通用处理器,包括中央处理器(central processingunit,简称为CPU)、网络处理器(network processor,简称为NP)等;还可以是其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
图17为本发明实施例的第一服务器的结构示意图。如图17所示,本实施例的第一服务器,包括:通信接口1701、处理器1702和存储器1703;其中,所述通信接口1701、处理器1702和所述存储器1703通过总线相互连接。
所述处理器1702运行所述存储器1703中程序,用于执行以下内容:
向控制器发送请求消息,所述请求消息包括所述第一服务器的标识和第二服务器的标识,所述请求消息用于向所述控制器请求端口路径信息,所述端口路径信息包括所述第一服务器到所述第二服务器的逻辑链路所经过的端口;
接收所述控制器发送的所述端口路径信息;
根据所述端口路径信息,获得PTPP,所述PTPP为所述第一服务器至所述第二服务器的链路所经过的端口序列。
其实现原理和技术效果可参考图9-图11所示的方法实施例,此处不再赘述。本发明实施例的第一服务器可以是图14所示的服务器,在此不再赘述。
所述处理器1702可以是通用处理器,包括CPU、NP等;还可以是其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
图18为本发明实施例的转发设备的结构示意图。如图18所示,本实施例的转发设备,包括:通信接口1801、处理器1802和存储器1803;其中,所述通信接口1801、处理器1802和所述存储器1803通过总线相互连接。
所述处理器1802运行所述存储器1803中程序,用于执行以下内容:
转发设备接收网络设备发送的第一报文,所述网络设备为第一服务器或上一跳设备,所述上一跳设备为所述转发设备在PTPP对应的链路的上一跳,所述第一报文包括所述PTPP,所述PTPP为所述第一服务器到第二服务器的链路所经过的端口序列;
所述转发设备根据所述第一报文包括的所述PTPP,获得第二报文,所述第二报文包括的PTPP用于指示所述转发设备的下一跳转发报文;
所述转发设备根据所述第一报文包括的所述PTPP所指示的端口,向所述第二服务器发送所述第二报文。
其实现原理和技术效果与图12对应的实施例中的转发设备类似,此处不再赘述。本发明实施例的转发设备可以是图15所示的转发设备,在此不再赘述。
所述处理器可以是通用处理器,包括中CPU、NP等;还可以是其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
图19为本发明实施例的用于获取端口路径的系统的结构示意图。如图19所示,本发明实施例的用于获取端口路径的系统包括:控制器和第一服务器;其中,控制器可以采用图13或图16的控制器的结构,其对应地,可以执行图1~图8中任一方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述;第一服务器可以采用图14或图17的第一服务器的结构,其对应地,可以执行图9~图11中任一方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选地,所述系统还包括:转发设备,所述转发设备可以采用图15或图18的转发设备的结构,其对应地,可以执行图12中方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元或模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (43)

1.一种用于获取端口路径的方法,其特征在于,所述方法包括:
控制器接收第一服务器的请求消息,所述请求消息包括第一服务器的标识和第二服务器的标识,所述请求消息用于向所述控制器请求端口路径信息,所述端口路径信息包括所述第一服务器到所述第二服务器的逻辑链路所经过的端口;
所述控制器根据网络拓扑信息、所述第一服务器的标识和所述第二服务器的标识,获得第一绝对端口路径APP和第二APP,所述网络拓扑信息包括所述第一服务器和第一转发设备之间的端口连接信息以及所述第二服务器和与第二转发设备之间的端口连接信息,所述第一转发设备与所述第一服务器通信,所述第二转发设备与所述第二服务器通信,第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
所述控制器根据所述第一APP和所述第二APP,获得所述端口路径信息;
所述控制器向所述第一服务器发送所述端口路径信息。
2.根据权利要求1所述的方法,其特征在于,所述控制器根据所述网络拓扑信息、所述第一服务器的标识和所述第二服务器的标识,获得第一绝对端口路径APP和第二APP包括:
所述控制器根据所述网络拓扑信息,确定所述根节点,所述根节点为作为树的树根的节点,所述树的叶子节点包括所述第一转发设备和所述第二转发设备;
所述控制器获得所述根节点的信息,所述根节点的信息包括所述根节点的标识、第七端口号和第八端口号,所述第七端口号所标识的端口为所述根节点上能够与所述第一服务器通信的端口,所述第八端口号所标识的端口为所述根节点上能够与所述第二服务器通信的端口;
所述控制器根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得所述第一APP;
所述控制器根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得所述第二APP。
3.根据权利要求2所述的方法,其特征在于,所述控制器根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得所述第一APP包括:
所述控制器根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得第一APP集,所述第一APP集包括至少一条第一APP,所述至少一条第一APP与所述第一服务器对应;
所述控制器从所述第一APP集中选择一条第一APP作为所述第一APP。
4.根据权利要求3所述的方法,其特征在于,所述控制器从所述第一APP集中选择一条第一APP作为所述第一APP包括:
所述控制器根据所述至少一条第一APP对应的逻辑链路的链路状态信息,从所述第一APP集中选择所述第一APP,所述链路状态信息用于标识逻辑链路是否发生拥塞,所述第一APP不包括处于拥塞的链路。
5.根据权利要求3或4所述的方法,其特征在于,所述控制器根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得所述第二APP包括:
所述控制器根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得第二APP集,所述第二APP集包括至少一条第二APP,所述至少一条第二APP与所述第二服务器对应;
所述控制器从所述第二APP集中选择一条第二APP作为所述第二APP。
6.根据权利要求5所述的方法,其特征在于,所述控制器从所述第二APP集中选择一条第二APP作为所述第二APP包括:
所述控制器根据所述第一APP,从所述第二APP集中选择一条第二APP作为所述第二APP,所述第二APP和所述第一APP包含相同的端口号,所述相同的端口号为所述第七端口号或所述第八端口号。
7.根据权利要求5所述的方法,其特征在于,所述控制器从所述第二APP集中选择一条第二APP作为所述第二APP包括:
所述控制器根据所述第一APP,从所述第二APP集中选择N条第二APP,所述N大于或等于1的整数,所述N条第二APP中任意一条第二APP和所述第一APP包含相同的端口号,所述相同的端口号为所述第七端口号或所述第八端口号;
所述控制器根据所述N条第二APP对应的逻辑链路的链路状态信息,从所述N条第二APP中选择所述第二APP,所述链路状态信息用于标识逻辑链路是否发生拥塞,所述第二APP不包括处于拥塞的链路。
8.根据权利要求1至4、6或7任一项所述的方法,其特征在于,所述根节点为物理节点,所述端口路径信息为包转发端口路径PTPP,所述控制器根据所述第一APP和所述第二APP,获得所述端口路径信息包括:
所述控制器将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
所述控制器将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
所述控制器将所述第三APP反转,获得反转后的第三APP;
所述控制器将所述反转后的第三APP和所述第四APP进行拼接,获得所述PTPP。
9.根据权利要求1至4、6或7任一项所述的方法,其特征在于,所述端口路径信息为PTPP,所述控制器根据所述第一APP和所述第二APP,获得所述端口路径信息包括:
所述控制器将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
所述控制器将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
所述控制器去除所述第三APP和所述第四APP中相同的前缀,获得第五APP和第六APP,所述相同的前缀为所述第三APP和所述第四APP所包括的相同的端口序列,所述第五APP是所述第三APP中去除所述相同的前缀后获得的端口序列,所述第六APP是所述第四APP中去除所述相同的前缀后获得的端口序列;
所述控制器将所述第五APP反转,获得反转后的第五APP;
所述控制器将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP。
10.根据权利要求9所述的方法,其特征在于,所述控制器将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP包括:
所述控制器将所述反转后的第五APP与所述第六APP进行拼接,获得第七APP;
所述控制器将所述第七APP包括的端口序列中位于奇数位的端口剔除,获得所述PTPP。
11.根据权利要求1至4、6、7或10任一项所述的方法,其特征在于,所述网络拓扑信息还包括第三转发设备与所述第一转发设备之间的端口连接信息以及所述第三转发设备与所述第二转发设备之间的端口连接信息,所述第三转发设备分别与所述第一转发设备和所述第二转发设备通信。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述控制器接收所述第一转发设备发送的第一报文,所述第一报文包括第一端口号、所述第一服务器的标识和所述第一转发设备的标识,所述第一端口号所标识的端口为所述第一转发设备上与所述第一服务器通信的端口;
所述控制器接收所述第二转发设备发送的第二报文,所述第二报文包括第二端口号、所述第二服务器的标识和所述第二转发设备的标识,所述第二端口号所标识的端口为所述第二转发设备上与所述第二服务器通信的端口;
所述控制器根据所述第一报文包括的所述第一端口号、所述第一服务器的标识和所述第一转发设备的标识,获得所述第一服务器和所述第一转发设备之间的端口连接信息;
所述控制器根据所述第二报文包括的所述第二端口号、所述第二服务器的标识和所述第二转发设备的标识,获得所述第二服务器和所述第二转发设备之间的端口连接信息;
所述控制器根据所述第一服务器和所述第一转发设备之间的端口连接信息以及所述第二服务器和所述第二转发设备之间的端口连接信息,获得所述网络拓扑信息。
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述控制器获得所述控制器为所述第一服务器分配的第一动态主机配置协议DHCP信息,第一DHCP信息包括第一端口号、所述第一服务器的标识和所述第一转发设备的标识,所述第一端口号所标识的端口为所述第一转发设备上与所述第一服务器通信的端口;
所述控制器获得所述控制器为所述第二服务器分配的第二DHCP信息,所述第二DHCP信息包括第二端口号、所述第二服务器的标识和所述第二转发设备的标识,所述第二端口号所标识的端口为所述第二转发设备上与所述第二服务器通信的端口;
所述控制器根据所述第一DHCP信息包括的所述第一端口号、所述第一服务器的标识和所述第一转发设备的标识,获得所述第一服务器和所述第一转发设备之间的端口连接信息;
所述控制器根据所述第二DHCP信息包括的所述第二端口号、所述第二服务器的标识和所述第二转发设备的标识,获得所述第二服务器和所述第二转发设备之间的端口连接信息;
所述控制器根据所述第一服务器和所述第一转发设备之间的端口连接信息以及所述第二服务器和所述第二转发设备之间的端口连接信息,获得所述网络拓扑信息。
14.根据权利要求11所述的方法,其特征在于,所述方法还包括:
所述控制器接收所述第三转发设备发送的第一链路层发现协议LLDP消息,第一LLDP消息包括第三端口号、第四端口号、所述第三转发设备的标识和所述第一转发设备的标识,所述第三端口号所标识的端口是所述第一转发设备上与所述第三转发设备通信的端口,所述第四端口号所标识的端口是所述第三转发设备上与所述第一转发设备通信的端口;
所述控制器接收所述第三转发设备发送的第二LLDP消息,所述第二LLDP消息包括第五端口号、第六端口号、所述第三转发设备的标识和所述第二转发设备的标识,所述第五端口号所标识的端口是所述第三转发设备上与所述第二转发设备通信的端口,所述第六端口号所标识的端口是所述第二转发设备上与所述第三转发设备通信的端口;
所述控制器根据所述第一LLDP消息包括的所述第三端口号、所述第四端口号、所述第三转发设备的标识和所述第一转发设备的标识,获得所述第三转发设备与所述第一转发设备之间的端口连接信息;
所述控制器根据所述第二LLDP消息包括的所述第五端口号、所述第六端口号、所述第三转发设备的标识和所述第二转发设备的标识,获得所述第三转发设备与所述第二转发设备之间的端口连接信息。
15.一种用于获取端口路径的方法,其特征在于,所述方法包括:
第一服务器向控制器发送请求消息,所述请求消息包括所述第一服务器的标识和第二服务器的标识,所述请求消息用于向所述控制器请求端口路径信息,所述端口路径信息包括所述第一服务器到所述第二服务器的逻辑链路所经过的端口;
所述第一服务器接收所述控制器发送的所述端口路径信息;所述端口路径信息为所述控制器根据第一绝对端口路径APP和第二APP获得的;第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
所述第一服务器根据所述端口路径信息,获得包转发端口路径PTPP,所述PTPP为所述第一服务器至所述第二服务器的链路所经过的端口序列。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
所述第一服务器将所述PTPP添加至第一报文,获得第二报文,所述第一报文为所述第一服务器发送给所述第二服务器的报文;
所述第一服务器向所述第二服务器发送所述第二报文。
17.根据权利要求15或16所述的方法,其特征在于,所述端口路径信息包括第一绝对端口路径APP和第二APP,所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口,
所述根节点为物理节点,所述第一服务器根据所述端口路径信息,获得包转发端口路径PTPP包括:
所述第一服务器将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
所述第一服务器将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
所述第一服务器将所述第三APP反转,获得反转后的第三APP;
所述第一服务器将所述反转后的第三APP和所述第四APP进行拼接,获得所述PTPP。
18.根据权利要求15或16所述的方法,其特征在于,所述端口路径信息包括第一绝对端口路径APP和第二APP,所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口,
所述第一服务器根据所述端口路径信息,获得包转发端口路径PTPP包括:
所述第一服务器将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
所述第一服务器将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
所述第一服务器去除所述第三APP和所述第四APP中相同的前缀,获得第五APP和第六APP,所述相同的前缀为所述第三APP和所述第四APP所包括的相同的端口序列,所述第五APP是所述第三APP中去除所述相同的前缀后获得的端口序列,所述第六APP是所述第四APP中去除所述相同的前缀后获得的端口序列;
所述第一服务器将所述第五APP反转,获得反转后的第五APP;
所述第一服务器将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP。
19.根据权利要求18所述的方法,其特征在于,所述第一服务器将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP包括:
所述第一服务器将所述反转后的第五APP与所述第六APP进行拼接,获得第七APP;
所述第一服务器将所述第七APP包括的端口序列中位于奇数位的端口剔除,获得所述PTPP。
20.根据权利要求16所述的方法,其特征在于,所述第一服务器将所述PTPP添加至第一报文,获得第二报文包括:
所述第一服务器获得与所述PTPP对应的路径跳数,所述第一报文的报文头包括媒体接入控制MAC字段,所述路径跳数用于标识发送所述第二报文的端口在所述PTPP中的位置;
所述第一服务器将所述PTPP、所述路径跳数和类型标识,添加至所述MAC字段,所述类型标识用于标识所述第二报文包括所述PTPP。
21.根据权利要求16所述的方法,其特征在于,所述第二报文包括多协议标签交换MPLS字段,所述第一服务器将所述PTPP添加至第一报文,获得第二报文包括:
所述第一服务器将所述PTPP添加至所述MPLS字段,获得所述第二报文。
22.一种控制器,其特征在于,所述控制器包括:
第一接收模块,用于接收第一服务器的请求消息,所述请求消息包括第一服务器的标识和第二服务器的标识,所述请求消息用于向所述控制器请求端口路径信息,所述端口路径信息包括所述第一服务器到所述第二服务器的逻辑链路所经过的端口;
第一获得模块,用于根据网络拓扑信息、所述第一服务器的标识和所述第二服务器的标识,获得第一绝对端口路径APP和第二APP,所述网络拓扑信息包括所述第一服务器和第一转发设备之间的端口连接信息以及所述第二服务器和与第二转发设备之间的端口连接信息,所述第一转发设备与所述第一服务器通信,所述第二转发设备与所述第二服务器通信,第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
第二获得模块,用于根据所述第一APP和所述第二APP,获得所述端口路径信息;
发送模块,用于向所述第一服务器发送所述端口路径信息。
23.根据权利要求22所述的控制器,其特征在于,所述第一获得模块具体用于:
根据所述网络拓扑信息,确定所述根节点,所述根节点为作为树的树根的节点,所述树的叶子节点包括所述第一转发设备和所述第二转发设备;
获得所述根节点的信息,所述根节点的信息包括所述根节点的标识、第七端口号和第八端口号,所述第七端口号所标识的端口为所述根节点上能够与所述第一服务器通信的端口,所述第八端口号所标识的端口为所述根节点上能够与所述第二服务器通信的端口;
根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得所述第一APP;
根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得所述第二APP。
24.根据权利要求23所述的控制器,其特征在于,所述第一获得模块具体用于:
根据所述网络拓扑信息、所述第一服务器的标识以及所述根节点的信息,获得第一APP集,所述第一APP集包括至少一条第一APP,所述至少一条第一APP与所述第一服务器对应;
从所述第一APP集中选择一条第一APP作为所述第一APP。
25.根据权利要求24所述的控制器,其特征在于,所述第一获得模块具体用于:
根据所述至少一条第一APP对应的逻辑链路的链路状态信息,从所述第一APP集中选择所述第一APP,所述链路状态信息用于标识逻辑链路是否发生拥塞,所述第一APP不包括处于拥塞的链路。
26.根据权利要求24或25所述的控制器,其特征在于,所述第一获得模块具体用于:
根据所述网络拓扑信息、所述第二服务器的标识以及所述根节点的信息,获得第二APP集,所述第二APP集包括至少一条第二APP,所述至少一条第二APP与所述第二服务器对应;
从所述第二APP集中选择一条第二APP作为所述第二APP。
27.根据权利要求26所述的控制器,其特征在于,所述第一获得模块具体用于:
根据所述第一APP,从所述第二APP集中选择一条第二APP作为所述第二APP,所述第二APP和所述第一APP包含相同的端口号,所述相同的端口号为所述第七端口号或所述第八端口号。
28.根据权利要求26所述的控制器,其特征在于,所述第一获得模块具体用于:
根据所述第一APP,从所述第二APP集中选择N条第二APP,所述N大于或等于1的整数,所述N条第二APP中任意一条第二APP和所述第一APP包含相同的端口号,所述相同的端口号为所述第七端口号或所述第八端口号;
根据所述N条第二APP对应的逻辑链路的链路状态信息,从所述N条第二APP中选择所述第二APP,所述链路状态信息用于标识逻辑链路是否发生拥塞,所述第二APP不包括处于拥塞的链路。
29.根据权利要求22至25、27或28任一项所述的控制器,其特征在于,所述根节点为物理节点,所述端口路径信息为包转发端口路径PTPP,所述第二获得模块具体用于:
将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
将所述第三APP反转,获得反转后的第三APP;
将所述反转后的第三APP和所述第四APP进行拼接,获得所述PTPP。
30.根据权利要求22至25、27或28任一项所述的控制器,其特征在于,所述端口路径信息为PTPP,所述第二获得模块具体用于:
将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
去除所述第三APP和所述第四APP中相同的前缀,获得第五APP和第六APP,所述相同的前缀为所述第三APP和所述第四APP所包括的相同的端口序列,所述第五APP是所述第三APP中去除所述相同的前缀后获得的端口序列,所述第六APP是所述第四APP中去除所述相同的前缀后获得的端口序列;
将所述第五APP反转,获得反转后的第五APP;
将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP。
31.根据权利要求30所述的控制器,其特征在于,所述第二获得模块具体用于:
将所述反转后的第五APP与所述第六APP进行拼接,获得第七APP;
将所述第七APP包括的端口序列中位于奇数位的端口剔除,获得所述PTPP。
32.根据权利要求22至25、27、28或31任一项所述的控制器,其特征在于,所述网络拓扑信息还包括第三转发设备与所述第一转发设备之间的端口连接信息以及所述第三转发设备与所述第二转发设备之间的端口连接信息,所述第三转发设备分别与所述第一转发设备和所述第二转发设备通信。
33.根据权利要求22所述的控制器,其特征在于,所述控制器还包括:
第二接收模块,用于接收所述第一转发设备发送的第一报文,所述第一报文包括第一端口号、所述第一服务器的标识和所述第一转发设备的标识,所述第一端口号所标识的端口为所述第一转发设备上与所述第一服务器通信的端口;
第三接收模块,用于接收所述第二转发设备发送的第二报文,所述第二报文包括第二端口号、所述第二服务器的标识和所述第二转发设备的标识,所述第二端口号所标识的端口为所述第二转发设备上与所述第二服务器通信的端口;
第三获得模块,用于根据所述第一报文包括的所述第一端口号、所述第一服务器的标识和所述第一转发设备的标识,获得所述第一服务器和所述第一转发设备之间的端口连接信息;
第四获得模块,用于根据所述第二报文包括的所述第二端口号、所述第二服务器的标识和所述第二转发设备的标识,获得所述第二服务器和所述第二转发设备之间的端口连接信息;
第五获得模块,用于根据所述第一服务器和所述第一转发设备之间的端口连接信息以及所述第二服务器和所述第二转发设备之间的端口连接信息,获得所述网络拓扑信息。
34.根据权利要求22所述的控制器,其特征在于,所述控制器还包括:
第六获得模块,用于获得所述控制器为所述第一服务器分配的第一动态主机配置协议DHCP信息,第一DHCP信息包括第一端口号、所述第一服务器的标识和所述第一转发设备的标识,所述第一端口号所标识的端口为所述第一转发设备上与所述第一服务器通信的端口;
第七获得模块,用于获得所述控制器为所述第二服务器分配的第二DHCP信息,所述第二DHCP信息包括第二端口号、所述第二服务器的标识和所述第二转发设备的标识,所述第二端口号所标识的端口为所述第二转发设备上与所述第二服务器通信的端口;
第三获得模块,用于根据所述第一DHCP信息包括的所述第一端口号、所述第一服务器的标识和所述第一转发设备的标识,获得所述第一服务器和所述第一转发设备之间的端口连接信息;
第四获得模块,用于根据所述第二DHCP信息包括的所述第二端口号、所述第二服务器的标识和所述第二转发设备的标识,获得所述第二服务器和所述第二转发设备之间的端口连接信息;
第五获得模块,用于根据所述第一服务器和所述第一转发设备之间的端口连接信息以及所述第二服务器和所述第二转发设备之间的端口连接信息,获得所述网络拓扑信息。
35.根据权利要求32所述的控制器,其特征在于,所述控制器还包括:
第四接收模块,用于接收所述第三转发设备发送的第一链路层发现协议LLDP消息,第一LLDP消息包括第三端口号、第四端口号、所述第三转发设备的标识和所述第一转发设备的标识,所述第三端口号所标识的端口是所述第一转发设备上与所述第三转发设备通信的端口,所述第四端口号所标识的端口是所述第三转发设备上与所述第一转发设备通信的端口;
第五接收模块,用于接收所述第三转发设备发送的第二LLDP消息,所述第二LLDP消息包括第五端口号、第六端口号、所述第三转发设备的标识和所述第二转发设备的标识,所述第五端口号所标识的端口是所述第三转发设备上与所述第二转发设备通信的端口,所述第六端口号所标识的端口是所述第二转发设备上与所述第三转发设备通信的端口;
第八获得模块,用于根据所述第一LLDP消息包括的所述第三端口号、所述第四端口号、所述第三转发设备的标识和所述第一转发设备的标识,获得所述第三转发设备与所述第一转发设备之间的端口连接信息;
第九获得模块,用于根据所述第二LLDP消息包括的所述第五端口号、所述第六端口号、所述第三转发设备的标识和所述第二转发设备的标识,获得所述第三转发设备与所述第二转发设备之间的端口连接信息。
36.一种第一服务器,其特征在于,所述第一服务器包括:
第一发送模块,用于向控制器发送请求消息,所述请求消息包括所述第一服务器的标识和第二服务器的标识,所述请求消息用于向所述控制器请求端口路径信息,所述端口路径信息包括所述第一服务器到所述第二服务器的逻辑链路所经过的端口;
接收模块,用于接收所述控制器发送的所述端口路径信息;所述端口路径信息为所述控制器根据第一绝对端口路径APP和第二APP获得的;第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
第一获得模块,用于根据所述端口路径信息,获得包转发端口路径PTPP,所述PTPP为所述第一服务器至所述第二服务器的链路所经过的端口序列。
37.根据权利要求36所述的第一服务器,其特征在于,所述第一服务器还包括:
第二获得模块,用于将所述PTPP添加至第一报文,获得第二报文,所述第一报文为所述第一服务器发送给所述第二服务器的报文;
第二发送模块,用于向所述第二服务器发送所述第二报文。
38.根据权利要求36或37所述的第一服务器,其特征在于,所述端口路径信息包括第一绝对端口路径APP和第二APP,所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口,
所述根节点为物理节点,所述第一获得模块具体用于:
将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
将所述第三APP反转,获得反转后的第三APP;
将所述反转后的第三APP和所述第四APP进行拼接,获得所述PTPP。
39.根据权利要求36或37所述的第一服务器,其特征在于,所述端口路径信息包括第一绝对端口路径APP和第二APP,所述第一APP包括从根节点到所述第一服务器的逻辑链路所经过的端口,所述第二APP包括从所述根节点到所述第二服务器的逻辑链路所经过的端口,
所述第一获得模块具体用于:
将所述第一APP中的冗余部分去除,获得第三APP,所述第一APP中的冗余部分为所述第一APP中除端口序列外的部分,所述第一APP中的端口序列包括从所述根节点到所述第一服务器的逻辑链路所经过的端口;
将所述第二APP中的冗余部分去除,获得第四APP,所述第二APP中的冗余部分为所述第二APP中除端口序列外的部分,所述第二APP中的端口序列包括从所述根节点到所述第二服务器的逻辑链路所经过的端口;
去除所述第三APP和所述第四APP中相同的前缀,获得第五APP和第六APP,所述相同的前缀为所述第三APP和所述第四APP所包括的相同的端口序列,所述第五APP是所述第三APP中去除所述相同的前缀后获得的端口序列,所述第六APP是所述第四APP中去除所述相同的前缀后获得的端口序列;
将所述第五APP反转,获得反转后的第五APP;
将所述反转后的第五APP与所述第六APP进行拼接,获得所述PTPP。
40.根据权利要求39所述的第一服务器,其特征在于,所述第一获得模块具体用于:
将所述反转后的第五APP与所述第六APP进行拼接,获得第七APP;
将所述第七APP包括的端口序列中位于奇数位的端口剔除,获得所述PTPP。
41.根据权利要求37所述的第一服务器,其特征在于,所述第二获得模块具体用于:
获得与所述PTPP对应的路径跳数,所述第一报文的报文头包括媒体接入控制MAC字段,所述路径跳数用于标识发送所述第二报文的端口在所述PTPP中的位置;
将所述PTPP、所述路径跳数和类型标识,添加至所述MAC字段,所述类型标识用于标识所述第二报文包括所述PTPP。
42.根据权利要求37所述的第一服务器,其特征在于,所述第二报文包括多协议标签交换MPLS字段,所述第二获得模块具体用于:
将所述PTPP添加至所述MPLS字段,获得所述第二报文。
43.一种用于获取端口路径的系统,其特征在于,所述系统包括前述权利要求22至权利要求35任意一项权利要求所述的控制器、和前述权利要求36至权利要求42任意一项权利要求所述的第一服务器。
CN201510060758.9A 2015-02-05 2015-02-05 用于获取端口路径的方法及装置 Active CN105991435B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201510060758.9A CN105991435B (zh) 2015-02-05 2015-02-05 用于获取端口路径的方法及装置
PCT/CN2015/099216 WO2016124049A1 (zh) 2015-02-05 2015-12-28 用于获取端口路径的方法及装置
EP15880990.5A EP3253012B1 (en) 2015-02-05 2015-12-28 Method and apparatus for obtaining port path
US15/670,724 US10454711B2 (en) 2015-02-05 2017-08-07 Method for obtaining port path and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510060758.9A CN105991435B (zh) 2015-02-05 2015-02-05 用于获取端口路径的方法及装置

Publications (2)

Publication Number Publication Date
CN105991435A CN105991435A (zh) 2016-10-05
CN105991435B true CN105991435B (zh) 2019-08-27

Family

ID=56563424

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510060758.9A Active CN105991435B (zh) 2015-02-05 2015-02-05 用于获取端口路径的方法及装置

Country Status (4)

Country Link
US (1) US10454711B2 (zh)
EP (1) EP3253012B1 (zh)
CN (1) CN105991435B (zh)
WO (1) WO2016124049A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9887961B2 (en) * 2015-05-22 2018-02-06 International Business Machines Corporation Multi-tenant aware dynamic host configuration protocol (DHCP) mechanism for cloud networking
CN107547418B (zh) * 2016-06-29 2019-07-23 华为技术有限公司 一种拥塞控制方法和装置
CN108243111B (zh) 2016-12-27 2021-08-27 华为技术有限公司 确定传输路径的方法和装置
JP6882673B2 (ja) * 2017-06-02 2021-06-02 富士通株式会社 通信経路管理プログラム、通信経路管理方法、および通信経路管理装置
CN109672513B (zh) * 2017-10-16 2021-10-22 华为技术有限公司 传输路径配置方法、装置及设备
CN113839874A (zh) * 2019-08-02 2021-12-24 华为技术有限公司 一种获取路由表项的方法和装置
CN110597510B (zh) 2019-08-09 2021-08-20 华为技术有限公司 一种界面的动态布局方法及设备
CN112751697B (zh) * 2019-10-31 2023-11-21 华为技术有限公司 网络拓扑发现方法及节点设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102439920A (zh) * 2011-09-20 2012-05-02 华为技术有限公司 业务跨层分离路径计算方法、装置以及通信系统
CN102498694A (zh) * 2009-09-14 2012-06-13 日本电气株式会社 通信系统、转发节点、路径管理服务器、通信方法和程序
CN102714629A (zh) * 2010-01-08 2012-10-03 日本电气株式会社 通信系统、转发节点、路径管理服务器以及通信方法
WO2014056863A1 (en) * 2012-10-12 2014-04-17 Alcatel Lucent Method for exchanging information for establishing a path between two nodes of a communication network
US8824274B1 (en) * 2011-12-29 2014-09-02 Juniper Networks, Inc. Scheduled network layer programming within a multi-topology computer network
CN104283791A (zh) * 2014-10-09 2015-01-14 杭州华三通信技术有限公司 一种sdn网络中的三层拓扑确定方法和设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8750119B2 (en) * 2010-07-06 2014-06-10 Nicira, Inc. Network control apparatus and method with table mapping engine
US8982734B2 (en) * 2012-06-26 2015-03-17 Intel Corporation Methods, apparatus, and systems for routing information flows in networks using spanning trees and network switching element resources
US8711855B1 (en) * 2012-12-18 2014-04-29 Juniper Networks, Inc. Topology discovery, control channel establishment, and datapath provisioning within an aggregation network with centralized control
US8953500B1 (en) * 2013-03-29 2015-02-10 Juniper Networks, Inc. Branch node-initiated point to multi-point label switched path signaling with centralized path computation
US9413634B2 (en) * 2014-01-10 2016-08-09 Juniper Networks, Inc. Dynamic end-to-end network path setup across multiple network layers with network service chaining

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102498694A (zh) * 2009-09-14 2012-06-13 日本电气株式会社 通信系统、转发节点、路径管理服务器、通信方法和程序
CN102714629A (zh) * 2010-01-08 2012-10-03 日本电气株式会社 通信系统、转发节点、路径管理服务器以及通信方法
CN102439920A (zh) * 2011-09-20 2012-05-02 华为技术有限公司 业务跨层分离路径计算方法、装置以及通信系统
US8824274B1 (en) * 2011-12-29 2014-09-02 Juniper Networks, Inc. Scheduled network layer programming within a multi-topology computer network
WO2014056863A1 (en) * 2012-10-12 2014-04-17 Alcatel Lucent Method for exchanging information for establishing a path between two nodes of a communication network
CN104283791A (zh) * 2014-10-09 2015-01-14 杭州华三通信技术有限公司 一种sdn网络中的三层拓扑确定方法和设备

Also Published As

Publication number Publication date
EP3253012B1 (en) 2020-05-20
EP3253012A4 (en) 2018-02-28
US20170338976A1 (en) 2017-11-23
EP3253012A1 (en) 2017-12-06
US10454711B2 (en) 2019-10-22
WO2016124049A1 (zh) 2016-08-11
CN105991435A (zh) 2016-10-05

Similar Documents

Publication Publication Date Title
CN105991435B (zh) 用于获取端口路径的方法及装置
ES2588739T3 (es) Método, equipo y sistema para mapear una instancia de servicio
CN104380658B (zh) 流分类器、业务路由触发器、报文处理的方法和系统
CN104380672B (zh) 用于802.1aq的三级折叠Clos优化
CN103947160B (zh) 通过基于trill的网络承载fcoe帧的方法
US9203738B2 (en) Optimal forwarding for trill fine-grained labeling and VXLAN interworking
CN104243270B (zh) 一种建立隧道的方法和装置
US20160006651A1 (en) Stacking Metadata Contexts for Service Chains
CN109218178A (zh) 一种报文处理方法及网络设备
CN105099846B (zh) 传输数据报文的方法和供应商边缘设备
CN103944818B (zh) 一种多归接入叠加网络中报文处理的方法和系统
US20130259050A1 (en) Systems and methods for multi-level switching of data frames
CN108702328A (zh) 用于穿越分段路由和mpls网络的业务的灵活路径拼接和选择的is-is扩展
CN104704779A (zh) 用于加速软件定义网络中的转发的方法和设备
CN103841019B (zh) 多归接入最短路径桥接网络的方法和装置
CN109076018A (zh) 利用is-is暴露最大节点和/或链路分段标识符深度的技术
CN108173694A (zh) 一种数据中心的安全资源池接入方法及系统
CN106209648B (zh) 跨虚拟可扩展局域网的组播数据报文转发方法和设备
CN106209638B (zh) 从虚拟局域网至虚拟可扩展局域网的报文转发方法和设备
CN104660574B (zh) 数据中心的配置方法、控制实体和转发实体
CN108199958A (zh) 一种通用的安全资源池服务链实现方法及系统
CN109450875A (zh) Mac层封装方法及装置
CN110266424A (zh) 一种分组业务映射到光传送网络的方法和otn设备
CN107659484A (zh) 从vlan网络接入vxlan网络的方法、装置及系统
CN105763439B (zh) 一种多链接透明互联网络中数据中心的互联方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant