Skip to content

Satellite Communications — LEO, MEO, GEO & Starlink Guide

DodaTech Updated 2026-06-24 5 min read

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

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.

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

  1. 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.

  2. 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.

  3. 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

How fast is Starlink broadband?

Typical speeds: 50-220 Mbps download, 10-40 Mbps upload, 20-40ms latency. Premium plans offer up to 500 Mbps.

Can satellite phones use Starlink?

No. Starlink requires a phased array antenna (terminal). Satellite phones use GEO satellites (Iridium, Inmarsat) at much lower data rates (2.4-56 kbps).

What is the lifetime of a LEO satellite?

5-7 years. LEO satellites decay orbit due to atmospheric drag and must deorbit within 25 years (FCC rule). Constellations continuously replace satellites.


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