## 1 Introduction  
With the exponential growth of traffic demands and data services over recent years, deploying satellite networks based on microwave communications has received much attention but has faced some challenges, including limited microwave frequency band resources, inaccurate transmission direction, and inadequate network capacity. On the other hand, free-space optics (FSO), which applies optical lasers to transmit data streams between two satellites, is becoming a substitute communications technology in satellite networks. As compared to microwave and other radio communications, FSO offers a higher frequency band, higher link capacity, lower power consumption, lower interference, and easier to identify interceptions or eavesdropping, and so FSO has been widely used in space-terrestrial broadband communications [1; 2; 3; 4; 5]. On the other hand, software-defined networks (SDNs) offer a novel architecture to achieve various network services, e.g., routing and load balancing, in an efficient and flexible way. SDN applies two basic strategies to facilitate flexible network management (1) SDN decouples the control plane of a network from its data plane, and (2) SDN conceptually concentrates on the entire viewing of the network intelligence (i.e., the control plane), and hence abstracts the underlying network architecture and improves the application optimization. In general, an SDN physically comprises controllers and a number of forwarding-rule-based white-box switches. The controllers make the routing decisions and forwarding rules based on the statistics sent from the switches, and the switches simply forward data based on forwarding rules from the controllers over the southbound interface, such as OpenFlow. Thus, SDN can potentially enhance the flexibility of network management through programmability and simplify network administration via abstracting the underlying network architecture. The existing satellite optical networks typically employ traditional network design, i.e., the control and data planes are dispersed in each switch, and thus it is challenging to develop an efficient routing strategy that can be adaptive to the network dynamics. In [6; 7], SDN is applied in a satellite optical network, where a satellite-terrestrial station gateway may function as a controller to run the control plane that manages the whole satellite optical network and monitors the statistics of all the satellite nodes, and which only conducts routing and forwarding configurations according to the forwarding rules given by the controller. However, [6; 7] suggest only an SDN-based end-to-end fragment-aware routing algorithm without considering the real-world on-satellite data link protocol, which is unique to the terrestrial network protocol. Traffic congestion could severely degrade the network performance and is generally caused by imbalanced traffic load among different links and inadequate resource distribution [8]. The traditional routing protocols (e.g., open shortest path first (OSPF)) may lead to traffic congestion because they are mainly routed concerning the packets via the shortest path without considering the available resources and quality of services (QoS), resulting in label switching routers (LSRs) being overused for multiple label switching paths (LSPs) [9]. Traffic engineering (TE) is proposed to optimize network resource assignment via bandwidth allocation based on resource statistics. The optimized routing strategy can substantially balance the traffic load, increase the network throughput, and reduce network latency. In terms of routing algorithms, the current SDN-based routing algorithms can be classified into two categories: (1) Shortest routing method [10] employs OSPF-based congestion control (i.e., the Dijkstra algorithm) in the SDN-based low earth orbit (LEO) satellite network. However, the Dijkstra algorithm does not evaluate the network state and always picks the same forwarding route for the same source-destination pair, which may cause link congestion and throughput reduction.