00 LTE mimarisi — eNB, EPC, UE protocol stack
LTE (Long Term Evolution / 4G), 3GPP Release 8 ile tanıtılan hücresel teknolojidir. All-IP yapısı ve düz ağ mimarisi ile 2G/3G'den kopuşu simgeler.
LTE Ağ Mimarisi (EPS) ────────────────────────────────────────────────────── UE (User Equipment — Linux + LTE modem) ↓ Uu arayüzü (RF) eNB (Evolved NodeB — baz istasyonu) ↓ S1-U (GTP-U) ↓ S1-MME S-GW (Serving Gateway) MME (Mobility Mgmt Entity) ↓ S5/S8 (GTP-U) P-GW (PDN Gateway — IP atar, NAT yapar) ↓ SGi arayüzü Internet / PDN UE LTE Protokol Yığını ────────────────────────────────────────── NAS (Non-Access Stratum) → EMM, ESM RRC (Radio Resource Control) PDCP (Packet Data Convergence Protocol) → sıkıştırma, şifreleme RLC (Radio Link Control) → ARQ MAC (Medium Access Control) → HARQ, scheduling PHY (Physical Layer) → OFDM, MIMO
LTE temel kavramlar
01 5G NR mimarisi — gNB, 5GC, NSA ve SA modları
5G NR (New Radio), 3GPP Release 15 ile tanıtılmıştır. eMBB, URLLC ve mMTC kullanım senaryolarına yönelik üç temel kullanım alanı tanımlar.
5G SA (Standalone) Mimarisi — 3GPP Release 15+ ────────────────────────────────────────────────────── UE (5G modem — RM500Q, EM160R) ↓ Uu arayüzü (NR) gNB (Next Generation NodeB) ↓ N2 (NAS) ↓ N3 (GTP-U) AMF (Access & Mobility Mgmt) UPF (User Plane Function) SMF (Session Mgmt Function) ↓ N6 UDM (Unified Data Mgmt) Internet / DN AUSF (Auth Server Function) 5G NSA (Non-Standalone) — Anchor LTE + 5G NR ────────────────────────────────────────────────────── UE ↓ LTE (anchor) ↓ 5G NR (ek kapasite) eNB + gNB (en-gNB) ↓ S1-MME EPC (mevcut 4G çekirdek — hızlı geçiş)
02 ENDC — E-UTRA NR Dual Connectivity
ENDC (E-UTRA NR Dual Connectivity), LTE anchor üzerinden 5G NR ekleme mekanizmasıdır. Türkiye'deki operatörlerin mevcut 5G dağıtımı büyük ölçüde NSA/ENDC kullanır.
ENDC Bağlantı Akışı
────────────────────────────────────────────────
1. UE → LTE eNB'ye bağlanır (anchor)
2. eNB → EPC'ye S1 bağlantısı kurar
3. eNB, yakında NR gNB olduğunu tespit eder
4. eNB → SCG (Secondary Cell Group) kurulumunu başlatır
5. UE → hem LTE hem NR'a bağlı (PDCP split)
6. Yüksek bant genişliği trafik NR üzerinden
7. Kontrol plane hâlâ LTE'de
# ENDC aktif mi?
AT+QNWPREFCFG="nr5g_disable_mode"
# +QNWPREFCFG: "nr5g_disable_mode",0
# 0 = 5G etkin
# OK
# Mevcut ağ teknolojisi
AT+QNWINFO
# +QNWINFO: "EN-DC","28601","LTE BAND 3",1750
# EN-DC = LTE + NR Dual Connectivity
# OK
# 5G serving cell bilgisi
AT+QENG="servingcell"
# +QENG: "servingcell","NOCONN"
# "LTE","FDD",286,01,021A4D01,123,1750,3,-83,-12,-54,16,41
# "NR5G-NSA",286,01,1,3703680,78,-89,-12,21
# OK
# 5G NR bant bilgisi
AT+QNWPREFCFG="nr5g_band"
# +QNWPREFCFG: "nr5g_band",1:3:5:7:8:20:28:38:40:41:77:78:79
# OK
# Sadece LTE'ye zorla (5G kapat)
AT+QNWPREFCFG="nr5g_disable_mode",1
# OK
# LTE+5G NR geri aç
AT+QNWPREFCFG="nr5g_disable_mode",0
# OK
03 Band kombinasyonları ve Carrier Aggregation
Carrier Aggregation (CA), birden fazla LTE/NR bandını eş zamanlı kullanarak bant genişliğini artırır. Modern Cat.12+ modemler 3–4 band birleştirebilir.
# Desteklenen LTE bandları (Quectel EC25)
AT+QCFG="band"
# +QCFG: "band",0xf,0x68d,0x0
# GSM: 0xf (B1,B2,B3,B8)
# LTE: 0x68d (B1,B3,B7,B10,B11)
# OK
# Aktif LTE band ve CA bilgisi
AT+QCAINFO
# +QCAINFO: "PCC",1750,50,"LTE BAND 3",1,123,-83,-12,-54
# +QCAINFO: "SCC",3350,100,"LTE BAND 7",1,456,-87,-14,-61
# OK
# PCC = Primary Component Carrier
# SCC = Secondary Component Carrier
# Band 3 (1800 MHz) + Band 7 (2600 MHz) = CA birleşimi
# RM500Q — 5G band bilgisi
AT+QCAINFO
# +QCAINFO: "PCC",1750,50,"LTE BAND 3",1,123,-78,-10,-50
# +QCAINFO: "SCC",3703680,100,"NR5G BAND 78",1,789,-72,-8,-45
# NR Band 78 (3.5 GHz) + LTE Band 3 (1.8 GHz)
# Sadece belirli bandları kullan
# (B3 + B7 = Band 3 ve Band 7)
AT+QCFG="band",0,0x84,0
# B3=0x4, B7=0x80 → B3|B7=0x84
# OK
# SIM7600 — CA bilgisi
AT+CAINFO?
# +CAINFO: 1,20,1750,3
# 1=PCC aktif, 20MHz, EARFCN=1750, Band 3
04 MIMO ve beamforming temelleri
MIMO (Multiple Input Multiple Output) çoklu anten teknolojisi, LTE'de 4x4 MIMO, 5G NR'da massive MIMO ve beamforming ile kapasite ve kapsama artışı sağlar.
MIMO Katmanları ────────────────────────────────────────────────── 2x2 MIMO → 2 TX anteni, 2 RX anteni → LTE Cat.4, 150 Mbps DL 4x4 MIMO → 4 TX, 4 RX → LTE-A Pro, ~600 Mbps DL 8x8 MIMO → 8 TX, 8 RX (UL) → 5G NR temel Massive MIMO → 64 veya 128 TX anteni (baz istasyonu) → 5G NR, dikey beamforming Beamforming → Faz farkı ile enerjiyi odakla → mmWave (26/28/38 GHz) için kritik
# RM500Q — aktif MIMO katmanı sayısı
AT+QENG="servingcell"
# +QENG: "servingcell","NOCONN",
# "NR5G-SA",286,01,1,3703680,78,-78,-8,23,4
# Son değer: 4 = 4 MIMO stream (4x4 MIMO)
# OK
# LTE MIMO katmanı
AT+QCAINFO
# +QCAINFO: "PCC",1750,50,"LTE BAND 3",2,123,-78,-10,-50
# 5. alan (2) = MIMO katman sayısı (2x2 MIMO)
# OK
# UE donanım yetenekleri (ue-capability)
AT+QCFG="uecap/mimo"
# +QCFG: "uecap/mimo","4x4"
# Anten konfigürasyonu: 4T4R
# OK
05 Linux 5G modem driver stack — qmi_wwan, cdc_mbim
5G modemlerin Linux'ta tanınması için gerekli kernel modülleri, USB ID'leri ve konfigürasyon adımları.
# RM500Q USB ID kontrol
lsusb
# Bus 001 Device 003: ID 2c7c:0800 Quectel RM500Q-GL
# Kernel modüllerini kontrol et
lsmod | grep -E "qmi|mbim|option|cdc"
# option 53248 0
# usb_wwan 20480 1 option
# qmi_wwan 28672 0
# cdc_wdm 20480 2 qmi_wwan,cdc_mbim
# cdc_mbim 28672 0
# Kernel config kontrolü (compiled in?)
grep -E "QMI_WWAN|CDC_MBIM" /boot/config-$(uname -r)
# CONFIG_USB_NET_QMI_WWAN=m
# CONFIG_USB_MBIM=m
# Modülleri yükle
modprobe option
modprobe qmi_wwan
modprobe cdc_mbim
# USB cihaz bağlandığında udev logları
udevadm monitor --udev --subsystem-match=usb
# RM500Q için özel udev kuralı (USB mode switch)
cat /etc/udev/rules.d/99-rm500q.rules
# # RM500Q — QMI modunu zorla
# SUBSYSTEM=="usb", ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0800",
# ACTION=="add", RUN+="/sbin/usb_modeswitch -W -I -u -1 -v 2c7c -p 0800"
# USB_MODESWITCH için paket
apt-get install usb-modeswitch usb-modeswitch-data
# Cihazlar oluştu mu?
ls /dev/cdc-wdm* /dev/ttyUSB* /sys/class/net/wwan*
# /dev/cdc-wdm0
# /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3
# /sys/class/net/wwan0
# USB arayüz numarasını bul
cat /sys/class/net/wwan0/device/uevent
# DRIVER=qmi_wwan
Kernel config (Yocto/Buildroot)
# USB ağ temel
CONFIG_USB_NET_DRIVERS=y
CONFIG_USB_USBNET=y
# QMI (Qualcomm)
CONFIG_USB_NET_QMI_WWAN=m
CONFIG_USB_WDM=m
# MBIM (Microsoft)
CONFIG_USB_MBIM=m
# CDC ACM (AT port)
CONFIG_USB_ACM=m
# USB Serial (eski modemler)
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_OPTION=m
# CDC NCM (bazı MBIM modemler)
CONFIG_USB_NET_CDC_NCM=m
CONFIG_USB_NET_CDC_MBIM=m
06 AT+COPS ile network ve teknoloji seçimi
AT+COPS operatör seçimi yapar; AT+QNWPREFCFG ve AT+CNMP ile tercih edilen ağ teknolojisi (LTE, 5G NSA, 5G SA) ayarlanır.
# Mevcut operatör ve teknoloji
AT+COPS?
# +COPS: 0,0,"Turkcell",13
# 13 = NR (5G NSA), 7 = LTE, 2 = UTRAN
# OK
# Quectel — ağ teknolojisi tercihi
AT+QNWPREFCFG="mode_pref"
# +QNWPREFCFG: "mode_pref",AUTO
# OK
# Sadece 5G SA modunu zorla
AT+QNWPREFCFG="mode_pref",NR5G
# OK
# LTE + 5G NSA (ENDC)
AT+QNWPREFCFG="mode_pref",LTE:NR5G
# OK
# Sadece LTE
AT+QNWPREFCFG="mode_pref",LTE
# OK
# SIM7600/SIM8200 — AT+CNMP ile teknoloji seçimi
AT+CNMP?
# +CNMP: 2 → otomatik
# OK
AT+CNMP=38
# 38 = LTE sadece
# OK
AT+CNMP=109
# 109 = NR5G sadece
# OK
AT+CNMP=2
# 2 = Otomatik (hepsine izin ver)
# OK
# AT+COPS parametreleri
# AT+COPS=<mode>,<format>,<oper>,<AcT>
# AcT: 0=GSM, 2=UTRAN, 7=LTE, 11=NR, 12=NR+LTE(NSA), 13=NR NSA
# Manuel LTE seçimi
AT+COPS=1,2,"28601",7
# OK
# Manuel 5G NSA seçimi
AT+COPS=1,2,"28601",13
# OK
# Otomatik moda dön
AT+COPS=0
# OK
07 5G SA bağlantı akışı ve doğrulama
5G SA (Standalone) bağlantısının adım adım kurulumu — ağ kaydından IP atamasına ve sinyal doğrulamasına.
5G SA Bağlantı Akışı ──────────────────────────────────────────────────── 1. UE açılır → RF açık, SIM PIN kontrolü 2. NR cell arama → PBCH (SSB) ve MIB okuma 3. RRC Setup → gNB ile RRC bağlantısı 4. Registration Request → AMF'ye NAS mesajı 5. AUSF ile 5G-AKA → kimlik doğrulama 6. Registration Accept → 5G-GUTI atanır 7. PDU Session Establishment → UPF ile tünel 8. IP atama → DHCP veya statik 9. QoS Flow → DRB oluşturulur, trafik başlar
# 5G SA modu etkinleştir
AT+QNWPREFCFG="mode_pref",NR5G
# OK
# Kayıt durumu bekle (5G SA için CEREG önemli)
AT+CEREG?
# +CEREG: 0,1 → kayıtlı
# OK
# 5G serving cell bilgisi
AT+QENG="servingcell"
# +QENG: "servingcell","NOCONN",
# "NR5G-SA",286,01,1,3703680,78,-78,-8,23,4
# NR5G-SA = 5G Standalone
# EARFCN=3703680, Band=78, RSRP=-78, RSRQ=-8, SINR=23
# 5G SA hız bilgisi
AT+QNWINFO
# +QNWINFO: "NR5G","28601","NR5G BAND 78",3703680
# OK
# PDU session durumu
AT+CGACT?
# +CGACT: 1,1 → context 1 aktif
# OK
# IP adresini doğrula
AT+CGPADDR=1
# +CGPADDR: 1,"10.45.0.5","2001:db8::1"
# IPv4 ve IPv6 dual-stack!
# OK
08 Practical — Quectel RM500Q ile 5G ve iperf3 testi
Quectel RM500Q-GL modemi ile Linux üzerinde 5G NR bağlantısı kurma ve iperf3 ile throughput ölçümü.
Quectel RM500Q-GL: 5G NR Sub-6 + LTE-A Cat.20. M.2 form faktörü (PCIe + USB 3.0). Desteklenen bandlar: 5G NR n1/n3/n5/n7/n8/n20/n28/n38/n40/n41/n77/n78/n79. USB 3.0 üzerinden ~3 Gbps teorik hız.
# 1. USB bağlantı doğrula
lsusb | grep Quectel
# Bus 001 Device 003: ID 2c7c:0800 Quectel RM500Q-GL
# 2. USB 3.0 aktif mi?
lsusb -t | grep -A2 "2c7c"
# |__ Port 1: Dev 3, If 4, Class=Vendor Specific, Driver=qmi_wwan, 5000M
# ^^^^^ = USB 3.0
# 3. ModemManager ile kontrol
mmcli -L
# /org/freedesktop/ModemManager1/Modem/0 [Quectel] RM500Q-GL
# 4. Firmware versiyonu
mmcli -m 0 | grep firmware
# firmware revision: RM500QGLABR11A06M4G
# 5. 5G modu ayarla
mmcli -m 0 --command='AT+QNWPREFCFG="mode_pref",LTE:NR5G'
# 6. Bağlan
mmcli -m 0 --simple-connect="apn=internet,ip-type=ipv4v6"
# 7. Bağlantı durumu doğrula
mmcli -m 0 --command='AT+QENG="servingcell"'
# "NR5G-NSA" veya "NR5G-SA" görünmeli
# 8. Bearer bilgisi ve IP
mmcli -m 0 --bearer=0
# interface: wwan0
# IPv4: 10.45.0.5
# 9. DHCP
udhcpc -i wwan0 -n -q
ip addr show wwan0
ip route show dev wwan0
iperf3 ile 5G throughput testi
# iperf3 kur
apt-get install iperf3
# DL testi — public iperf3 sunucusu
iperf3 -c iperf.he.net -p 5201 -R -B 10.45.0.5 -t 30
# [ ID] Interval Transfer Bitrate
# [ 5] 0.00-30.00 sec 1.23 GBytes 351 Mbits/sec receiver
# UL testi
iperf3 -c iperf.he.net -p 5201 -B 10.45.0.5 -t 30
# [ 5] 0.00-30.00 sec 468 MBytes 131 Mbits/sec sender
# UDP testi (latency)
iperf3 -c iperf.he.net -u -b 10M -t 30 -B 10.45.0.5
# Ping ile latency ölç
ping -c 100 -I wwan0 8.8.8.8 | tail -2
# rtt min/avg/max/mdev = 8.234/12.456/23.891/2.123 ms
# Paralel stream testi (çok thread)
iperf3 -c iperf.he.net -P 4 -R -B 10.45.0.5 -t 60
Python throughput izleme
#!/usr/bin/env python3
"""wwan0 üzerinde gerçek zamanlı throughput ölçümü."""
import time
IFACE = 'wwan0'
STAT_PATH = f'/sys/class/net/{IFACE}/statistics'
def read_stat(name):
try:
with open(f'{STAT_PATH}/{name}') as f:
return int(f.read().strip())
except FileNotFoundError:
return 0
def format_rate(bps):
if bps > 1e6:
return f'{bps/1e6:.1f} Mbps'
elif bps > 1e3:
return f'{bps/1e3:.1f} Kbps'
return f'{bps:.0f} bps'
prev_rx = read_stat('rx_bytes')
prev_tx = read_stat('tx_bytes')
prev_t = time.time()
print(f"{'Zaman':<10} {'DL':>12} {'UL':>12} {'RTX hata':>10}")
print('-' * 50)
try:
while True:
time.sleep(1)
now = time.time()
rx = read_stat('rx_bytes')
tx = read_stat('tx_bytes')
rx_err = read_stat('rx_errors')
dt = now - prev_t
dl_bps = (rx - prev_rx) * 8 / dt
ul_bps = (tx - prev_tx) * 8 / dt
ts = time.strftime('%H:%M:%S')
print(f"{ts:<10} {format_rate(dl_bps):>12} "
f"{format_rate(ul_bps):>12} {rx_err:>10}")
prev_rx, prev_tx, prev_t = rx, tx, now
except KeyboardInterrupt:
print("\nDurduruldu.")
RM500Q ile NSA modunda tipik değerler: DL 200-600 Mbps, UL 50-150 Mbps, latency 8-20 ms. SA modunda: DL 400 Mbps–1 Gbps+, UL 100-300 Mbps, latency 5-15 ms. Gerçek değerler operatör yüküne, mesafeye ve bina içi olmaya göre büyük değişir.