## 5 Related Work
Flow aggregation is achieved by consolidating multiple flows with the same destination but different source addresses into a single entry in the flow table. In this mechanism, both destination network address translation and port address translation are applied. Similarly to our approach, this solution reduces the occupancy of flow tables in the core switches. To compare our mechanism with the one just described, it is necessary to disable multipath transmission in our system. If we used only single-path transmission, we would obtain a constant value of the number of flow entries in core switches, which is less than or equal to the number of PE switches. The authors of [17] propose a mechanism that facilitates multipath transmission in an SDN network, incorporating routing and path selection algorithms that consider various QoS requirements. The first algorithm, executed by the controller, gathers network state information using the OpenFlow statistics, optimizes network topology, and updates the status of the network. The second algorithm calculates a path and assesses whether it meets the QoS criteria. If the path satisfies delay and bandwidth constraints, it is chosen for transmission and the corresponding flow rules are implemented in the network switches. Otherwise, the subsequent available path is analyzed. In our approach, we do not consider QoS constraints. However, we see potential in proper adjustment of proposed thresholds in order to meet specific flow requirements and use of the CoS field in the MPLS header. The authors of [18] propose a new scalable rate control architecture, named Scalable Per-Flow Rate Allocation (SPFRA), which can meet the scalability requirements for unicast and multicast flows in SDNs. For unicast flows, the SPFRA selects specific flows within an aggregate flow and limits their rates. The rates of other flows are not controlled, i.e., are allocated by the TCP mechanism. It is important to emphasize that every flow in the aggregation may be classified as uncontrolled or controlled on the basis of the AFSFR algorithm. This approach ensures that QoS requirements related to the bandwidth allocation for controlled and uncontrolled can be fullfield. SPFRA is designed to decrease the number of controlled flows. Unlike our solution, this proposal does not incorporate any form of multipath transmission. It takes into account QoS requirements for specific flow aggregates. In contrast, the application of our proposal leads to the maximization of overall throughput across the entire network. The prominent industry Traffic Engineering (TE) solution for inter-Data Centre-Wide Area Network (SD-WAN) communication is widely recognized as Google B4 [19]. Google B4 allocates bandwidth and load balances traffic among available tunnels that connect selected sites based on the specific demands of the applications. Google B4 and our mechanism solutions use customized switches. Our solution is designed specifically for communication within a single domain. Considering multidomain communication, our mechanism can be applied with the usage of BGP-LS [20] and a stateful Path Computation Element (PCE) [21; 22; 23]. [PERSON] et al. [24] propose a mechanism that minimizes the delay of precomputed paths. However, this latency reduction method comes at the expense of an increased number of flow entries in the switches. Our mechanism does not focus on simultaneous delay and bandwidth optimization. The next mechanism described in [25] concentrates on communication between the controller and the switches in order to minimize signaling overhead. A separate pool of tags is used for various paths tagging (one per source-destination pair). This solution lacks a dynamic reaction to congestion, requiring the controller to process each new flow. In [26], a proposal of the placement of flow rules is presented. This solution aims to accommodate the maximum number of flows while establishing an immediate end-to-end path. The authors of [27] introduce strategies for optimizing the computation of the path.