Satellite Communications — LEO, MEO, GEO & Starlink Guide
In this tutorial, you'll learn about Satellite Communications. We cover key concepts, practical examples, and best practices.
Satellite communications transmit voice, data, and video through artificial satellites in Earth orbit — from geostationary (GEO) TV broadcast to low-earth-orbit (LEO) megaconstellations like Starlink that deliver sub-30ms latency broadband anywhere on the planet.
What You'll Learn
- The three main orbits: GEO, MEO, LEO — trade-offs in latency, coverage, cost
- How VSAT and phased array antennas work
- LEO megaconstellation architecture (Starlink, OneWeb, Kuiper)
- Satellite backhaul, DVB standards, and link budget calculation
Why Satellite Communications Matter
Satellites provide connectivity where terrestrial infrastructure is impossible: oceans, deserts, mountains, polar regions, and disaster zones. The LEO megaconstellation boom has driven satellite broadband from 600ms latency (GEO) to under 30ms (Starlink), making real-time applications like video calls and gaming feasible from anywhere. The global satellite communications market exceeds $100 billion annually.
Doda Browser uses adaptive streaming algorithms optimized for satellite links, automatically adjusting buffer sizes to handle the latency and jitter characteristics of different orbital paths.
Learning Path
flowchart LR A[Telecom Infrastructure] --> B[Satellite Orbits & Types] B --> C[VSAT & Ground Segment
You are here] C --> D[LEO Constellations] D --> E[Starlink / OneWeb] E --> F[6G Satellite Integration] style C fill:#f90,color:#fff
Orbital Types Compared
flowchart LR
subgraph Orbits
GEO[GEO 35,786 km]
MEO[MEO 8,000-20,000 km]
LEO[LEO 160-2,000 km]
end
GEO --> G1["Coverage: 1/3 Earth
Latency: 500-600ms
3 satellites cover Earth"]
MEO --> M1["Coverage: Regional
Latency: 100-150ms
GPS/Galileo, O3b"]
LEO --> L1["Coverage: Small footprint
Latency: 10-40ms
1000s of satellites needed"]
| Parameter | GEO | MEO | LEO |
|---|---|---|---|
| Altitude | 35,786 km | 8,000-20,000 km | 160-2,000 km |
| Round-trip latency | 500-600 ms | 100-150 ms | 10-40 ms |
| Satellites for global coverage | 3 | 8-20 | 1000+ |
| Satellite lifetime | 15-20 years | 10-15 years | 5-7 years |
| Typical use | TV broadcast, weather | GPS, O3b broadband | Starlink, OneWeb, ISS |
VSAT Architecture
VSAT (Very Small Aperture Terminal) is the ground equipment for satellite communications:
[Satellite]
↑ ↓ Ku/Ka band
[VSAT Antenna] --IFL--> [IDU (Indoor Unit)] --Ethernet--> [Router/PC]
|__Satellite modem inside
|__LNB (receive) + BUC (transmit)
Components:
- Antenna: 60-120 cm dish (Ku-band) or 35-90 cm (Ka-band)
- LNB (Low Noise Block): Receives satellite signal, converts to L-band (950-2150 MHz)
- BUC (Block Upconverter): Converts IF signal to RF for transmission
- IDU (Indoor Unit): Modem, router, and power supply
LEO Megaconstellations
Starlink
SpaceX's Starlink is the largest LEO constellation with over 7,000 operational satellites as of 2026:
class LEOConstellation:
def __init__(self, name, orbit_altitude, n_satellites):
self.name = name
self.altitude = orbit_altitude
self.n = n_satellites
def calc_latency(self, distance_km=1000):
speed_of_light = 299792
uplink_delay = (self.altitude * 1000) / speed_of_light
downlink_delay = (self.altitude * 1000) / speed_of_light
processing_delay = 0.002
rtt = 2 * (uplink_delay + downlink_delay) + processing_delay
return f"{rtt*1000:.0f}ms"
def calc_coverage_per_sat(self):
import math
view_angle = math.degrees(math.acos(6371 / (6371 + self.altitude)))
radius_km = self.altitude * math.tan(math.radians(view_angle))
area_km2 = math.pi * radius_km**2
return f"{area_km2:,.0f} km²"
def print_constellation_info(self):
print(f"{self.name}:")
print(f" Altitude: {self.altitude} km")
print(f" Satellites: {self.n}")
print(f" RTT latency: {self.calc_latency()}")
print(f" Coverage per sat: {self.calc_coverage_per_sat()}")
starlink = LEOConstellation("Starlink V2", 550, 7500)
starlink.print_constellation_info()
oneweb = LEOConstellation("OneWeb", 1200, 648)
oneweb.print_constellation_info()
Expected output:
Starlink V2:
Altitude: 550 km
Satellites: 7500
RTT latency: 7ms
Coverage per sat: 950,000 km²
OneWeb:
Altitude: 1200 km
Satellites: 648
RTT latency: 10ms
Coverage per sat: 4,500,000 km²
Starlink operates at ~550 km with inter-satellite laser links (ISLs), allowing data to route through space without touching ground stations. This reduces backhaul latency for intercontinental traffic.
OneWeb operates at ~1,200 km with a polar-focused constellation, targeting government, aviation, and maritime users rather than consumer broadband.
Link Budget Calculation
A satellite link budget ensures the received signal strength exceeds receiver sensitivity:
Received Power (dBW) = EIRP + Gr - Lfs - Latm - Lpol - Lother
Where:
EIRP = Transmit power + Antenna gain (dBW)
Gr = Receiver antenna gain (dBi)
Lfs = Free space path loss (dB)
Latm = Atmospheric attenuation (dB)
def link_budget(freq_ghz, distance_km, tx_power_dbm, tx_gain_dbi, rx_gain_dbi):
fspl = 20 * math.log10(distance_km * 1000) + 20 * math.log10(freq_ghz * 1e9) - 147.55
eirp = tx_power_dbm + tx_gain_dbi
rx_power = eirp + rx_gain_dbi - fspl - 0.5 # 0.5 dB atmospheric
margin = rx_power - (-80) # typical receiver sensitivity -80 dBm
return {"rx_power": f"{rx_power:.1f} dBm", "margin": f"{margin:.1f} dB"}
import math
print(link_budget(12, 35786, 10, 44, 40)) # Ka-band GEO link
print(link_budget(12, 550, 3, 30, 25)) # Ku-band LEO link
Expected output:
{'rx_power': '-78.2 dBm', 'margin': '1.8 dB'}
{'rx_power': '-43.5 dBm', 'margin': '36.5 dB'}
The LEO link has 36.5 dB margin — a much stronger signal than the GEO link, enabling smaller antennas and lower transmit power.
Common Errors
1. Confusing Latency and Throughput
Satellite broadband can deliver 100+ Mbps throughput (Starlink), but the latency is determined by physics — speed of light over orbital distance. LEO latency (10-40ms) is vastly better than GEO (500-600ms) for browsing and real-time apps.
2. Ignoring Rain Fade
Ka-band and V-band signals are heavily attenuated by rain. At Ku-band, heavy rain can cause 5-10 dB of additional loss, disconnecting the link. Adaptive modulation and larger antennas mitigate this.
3. Assuming All LEO Constellations Are the Same
Starlink (550 km, ISLs, consumer focus) and OneWeb (1,200 km, no ISLs, enterprise focus) have fundamentally different architectures, latency profiles, and business models.
Practice Questions
Why does LEO have lower latency than GEO? LEO orbits at 160-2,000 km, light travels ~10-40ms round trip. GEO at 35,786 km is ~500-600ms round trip.
What are inter-satellite laser links (ISLs)? Laser links between LEO satellites that route data through space without ground station hops, reducing latency for long-distance traffic.
What is the main challenge for satellite broadband at Ka-band? Rain fade — Ka-band (27-40 GHz) signals are heavily absorbed by rain. Heavy rain can cause 10-20 dB attenuation.
Challenge: Calculate the minimum number of LEO satellites needed for continuous global coverage at 550 km altitude with a minimum elevation angle of 25 degrees. Then estimate the total constellation throughput if each satellite has 20 Gbps capacity.
FAQ
Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. Updated 2026-06-24.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro