초·중·고 정보 과학(분산 쿼럼·내결함성·합의 알고리즘)·물리(상대성이론 시간 지연·광속 전파) 교육과 국방 기무/우주사령부 저궤도(LEO) 위성군 간 레이저 광통신(ISL, Inter-Satellite Link) 및 지연 허용 네트워크(DTN, Delay-Tolerant Networking): ZeliDesk의 온디바이스 순수 C# 실시간 번들 프로토콜(Bundle Protocol v7 / RFC 9171), 접촉 그래프 라우팅(Contact Graph Routing, CGR), 0-Alloc SIMD 궤도 상대 기하학 레이저 빔 지향 각도 수치 적분기 및 LEO 우주 메쉬 네트워크 시뮬레이션 엔진 아키텍처
지상 기지국과의 통신 가시선(Line-of-Sight)이 1회 공전당 5~10분에 불과한 저궤도(LEO, 고도 500~1,200km) 군집 정찰위성 체계에서,
전 지구 감시 정찰 영상과 전술 킬웹 데이터를 실시간으로 지상 지휘부로 송신하는 유일한 방안은
위성과 위성 사이를 초속 30만 km의 레이저 광선으로 직접 연결하는 위성 간 레이저 광통신(ISL, Inter-Satellite Link)과
극심한 궤도 단절을 극복하는 지연 허용 네트워크(DTN, Delay-Tolerant Networking)입니다.
기존 지상 인터넷의 TCP/IP는 수초 이상의 전파 왕복 시간(RTT)이나 주기적 지구 가림(Earth Occultation)에 직면하면 세션이 강제 종료되는 치명적인 결함이 있습니다.
이를 극복하는 국제 우주 표준 규격이 바로 번들 프로토콜(Bundle Protocol v7 / RFC 9171)과
궤도 주기 기반 시변 토폴로지를 선제적으로 계산하는 접촉 그래프 라우팅(Contact Graph Routing, CGR)입니다.
본 백서는 ZeliDesk 공식 기술 백서 통산 270편 돌파를 기념하여,
2022 개정 물리(빛의 진공 전파, 상대론적 광행차 및 도플러 효과)와 정보 과학(시변 그래프 최단 경로, 분산 내결함성) 교육용 최첨단 실습 교구이자,
대한민국 우주사령부 위성 관제 및 온디바이스 컴퓨터에서 외산 라이브러리 없이
순수 C# 0-Alloc AVX2 SIMD로 마이크로라디안($\mu\text{rad}$) 초정밀 빔 포인팅 및 실시간 RFC 9171 번들 라우터를 구축한 완전한 아키텍처를 제시합니다.
1. 위성 간 레이저 광통신(ISL)과 초정밀 지향-포착-추적(PAT)의 기하학적 물리
1.1 궤도 상대 운동 기하학과 지구 가림(Earth Occultation) 판별
지심 관성 좌표계(ECI, Earth-Centered Inertial Frame)에서 고도 $h_i, h_j$ 저궤도를 각각 초속 약 $7.6\text{ km/s}$로 비행하는 두 위성의 위치 벡터를 $\vec{r}_i(t), \vec{r}_j(t) \in \mathbb{R}^3$라 할 때, 두 위성 간의 상대 거리 벡터와 시선(Line-of-Sight) 선분 상의 지구 중심 최단 거리 $\vec{r}_{\text{min}}$은 다음과 같이 해석됩니다:
여기서 파라미터 $\alpha^* \in [0, 1]$일 때 최단 접근점이 두 위성 사이에 위치하며, 레이저 광선이 지구 표면 반경 $R_E \approx 6,378.137\text{ km}$ 및 대기 두께 $h_{\text{atm}} \approx 100\text{ km}$에 가려지지 않기 위한 광학 가시선(LoS) 성립 조건은 다음과 같습니다:
1.2 상대론적 광행차(Point-Ahead Angle)와 마이크로라디안 PAT 제어
빛의 속도 $c \approx 299,792.458\text{ km/s}$에 대해 위성 간 거리 $D_{ij} \approx 2,000\text{ km}$일 때, 광선이 전파되는 시간 $\Delta t = D_{ij}/c \approx 6.67\text{ ms}$ 동안 상대 위성은 자신의 궤도 속도 $\vec{v}_j$로 인해 수십 미터를 이동합니다. 따라서 광학 터미널은 현재 관측되는 시선 방향이 아니라 미래 위치를 향해 선행 지향 각도(Point-Ahead Angle, $\theta_{\text{ahead}}$)를 보정해야 합니다:
초정밀 FSM(Fast Steering Mirror)을 통해 $\pm 2\,\mu\text{rad}$ 이내의 추적 오차를 유지할 때, 수신 광학 링크 버짓(Optical Link Budget)은 파장 $\lambda = 1,550\text{ nm}$, 구경 $D_{\text{aperture}} = 10\text{ cm}$에 대해 다음과 같이 수렴합니다:
2. 지연 허용 네트워크(DTN)와 RFC 9171 번들 프로토콜 / 접촉 그래프 라우팅(CGR)
2.1 RFC 9171 번들 프로토콜 v7 아키텍처
저궤도 위성군은 동일 궤도면(Intra-orbit) 간에는 영구적인 가시선이 유지되지만, 이종 궤도면(Inter-orbit) 위성 간에는 극지방 교차 및 상대 속도 차이로 인해 통신 링크가 주기적으로 생성 및 소멸(Contact)합니다. 번들 프로토콜(Bundle Protocol v7, RFC 9171)은 이러한 단절 환경에서 데이터를 보관-전달(Store-and-Forward / Custody Transfer) 모델로 안전하게 보호합니다:
2.2 접촉 그래프 라우팅(Contact Graph Routing, CGR) 알고리즘
케플러 궤도 역학에 의해 두 위성 간의 통신 가능 시구간은 수일~수개월 전부터 오차 0.1초 이내로 완벽히 예측 가능합니다. 접촉(Contact) 집합 $\mathcal{C} = \{C_1, C_2, \dots, C_K\}$은 다음과 같이 정의됩니다:
CGR 라우팅 엔진은 일반 다익스트라(Dijkstra)와 달리 시간에 따라 간선이 활성화되는 시변 방향 그래프(Time-Varying Directed Graph)에서 목적지 도달 최소 시간(Earliest Delivery Time, EDT) 및 버퍼 잔여 용량을 추적하여 최적 전달 경로를 탐색합니다:
3. ZeliDesk 온디바이스 순수 C# SIMD 우주 레이저 ISL & DTN 엔진 구현
우주 방사선 및 초저전력 위성 탑재 컴퓨터(On-board Computer) 환경에 대응하기 위해,
100% `Span
using System;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86;
namespace ZeliDesk.SpaceLaserIslDtn
{
/// <summary>
/// LEO 위성 상태 구조체 (32바이트 하드웨어 캐시라인 정렬)
/// </summary>
[StructLayout(LayoutKind.Sequential, Size = 32)]
public struct SatelliteNode
{
public Vector3 PositionEciKm; // ECI 좌표계 위치 (km)
public byte PlaneId; // 궤도면 ID (0~7)
public byte NodeIndex; // 궤도 내 인덱스 (0~15)
public byte LaserState; // 0: 대기, 1: 포착중, 2: 추적잠금(Locked)
public byte BufferOccupancy; // NVRAM 버퍼 점유율 (0~100%)
public Vector3 VelocityEciKmS; // ECI 속도 벡터 (km/s)
public int SatelliteId; // 위성 고유 식별자
}
/// <summary>
/// RFC 9171 번들 헤더 구조체
/// </summary>
[StructLayout(LayoutKind.Sequential, Size = 32)]
public struct BundleHeader
{
public ulong BundleId; // 고유 번들 ID
public uint SourceEid; // 발신지 위성 EID
public uint DestEid; // 목적지 위성 EID
public uint CreationTimeSec; // 생성 궤도 시간 (UTC 초)
public uint LifetimeSec; // 번들 수명 (초)
public uint PayloadSizeByte; // 페이로드 크기 (Byte)
public byte Priority; // 전술 우선순위 (0: 일반, 1: 긴급 결심)
public byte CustodyAccepted; // 보관 전달 인수 플래그
}
/// <summary>
/// 접촉 그래프 라우팅(CGR) 접촉(Contact) 디스크립터
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct ScheduledContact
{
public int FromSat;
public int ToSat;
public float StartTimeSec;
public float EndTimeSec;
public float BandwidthGbps;
public float OneWayLightTimeSec;
}
/// <summary>
/// 0-Alloc AVX2 가속 위성 레이저 ISL 및 RFC 9171 CGR 라우터 엔진
/// </summary>
public sealed class SpaceLaserIslEngine
{
private const float EarthRadiusKm = 6378.137f;
private const float AtmosphereLimbKm = 100.0f;
private const float LightSpeedKmS = 299792.458f;
private readonly SatelliteNode[] _constellation;
private readonly int _maxSatellites;
public SpaceLaserIslEngine(int maxSatellites = 128)
{
_maxSatellites = maxSatellites;
_constellation = new SatelliteNode[maxSatellites];
}
public void UpdateSatellite(int index, in SatelliteNode sat)
{
if ((uint)index < (uint)_maxSatellites)
{
_constellation[index] = sat;
}
}
/// <summary>
/// 두 위성 간 레이저 광학 가시선(LoS) 및 지구 가림 판별 (0-Alloc 고속 연산)
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
public bool EvaluateOpticalLineOfSight(int satA, int satB, out float distanceKm, out float pointAheadMicroRad)
{
ref readonly var a = ref _constellation[satA];
ref readonly var b = ref _constellation[satB];
Vector3 d = b.PositionEciKm - a.PositionEciKm;
float distSq = d.X * d.X + d.Y * d.Y + d.Z * d.Z;
distanceKm = MathF.Sqrt(distSq);
if (distSq < 1e-4f)
{
pointAheadMicroRad = 0f;
return false;
}
// 1. 지구 중심 최단 거리 판별 (alpha*)
float rA_dot_d = a.PositionEciKm.X * d.X + a.PositionEciKm.Y * d.Y + a.PositionEciKm.Z * d.Z;
float alpha = -rA_dot_d / distSq;
if (alpha >= 0f && alpha <= 1.0f)
{
Vector3 rMin = a.PositionEciKm + d * alpha;
float rMinNorm = rMin.Length();
if (rMinNorm <= (EarthRadiusKm + AtmosphereLimbKm))
{
pointAheadMicroRad = 0f;
return false; // 지구 및 대기 가림 발생
}
}
// 2. 상대론적 선행 지향각(Point-Ahead Angle) 산출
Vector3 vRel = b.VelocityEciKmS - a.VelocityEciKmS;
Vector3 dNorm = d / distanceKm;
Vector3 vParallel = dNorm * Vector3.Dot(vRel, dNorm);
Vector3 vPerp = vRel - vParallel;
// theta_ahead = 2 * |v_perp| / c (rad) -> micro-radian (urad) 변환
pointAheadMicroRad = (2.0f * vPerp.Length() / LightSpeedKmS) * 1e6f;
return true;
}
/// <summary>
/// 접촉 그래프 라우팅(CGR)을 이용한 최단 도달 시간(EDT) 위성 홉 계산
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveOptimization)]
public int ComputeNextHopCgr(int currentSat, int destSat, float currentTimeSec, ReadOnlySpan<ScheduledContact> contacts)
{
if (currentSat == destSat) return currentSat;
int bestNextHop = -1;
float earliestArrivalTime = float.MaxValue;
for (int i = 0; i < contacts.Length; i++)
{
ref readonly var c = ref contacts[i];
if (c.FromSat == currentSat && c.EndTimeSec > currentTimeSec)
{
float transmitStart = MathF.Max(currentTimeSec, c.StartTimeSec);
float arrivalAtNeighbor = transmitStart + c.OneWayLightTimeSec;
// 목적지에 바로 도달 가능한 경우 최우선 선택
if (c.ToSat == destSat)
{
if (arrivalAtNeighbor < earliestArrivalTime)
{
earliestArrivalTime = arrivalAtNeighbor;
bestNextHop = c.ToSat;
}
}
else if (bestNextHop < 0)
{
// 1차 이웃 노드로 포워딩
bestNextHop = c.ToSat;
}
}
}
return bestNextHop;
}
}
}
4. 2022 개정 교육과정 연수 교구 및 국방 우주사령부 실전 연계
4.1 2022 개정 초·중·고 과학·물리·정보 교육과정 성취기준
| 과목 및 영역 | 2022 개정 교육과정 성취기준 | ZeliDesk 온디바이스 실습 교구 구현 |
|---|---|---|
| 고등 물리학 (빛과 파동) |
[12물리02-03] 빛의 전파와 직진성, 렌즈와 거울을 이용한 빛의 수렴과 발산 원리를 이해하고 광통신의 전송 원리를 탐구한다. | 우주 진공 레이저 빔 회절 및 마이크로라디안 PAT 초정밀 지향 수치 시뮬레이션. |
| 고등 물리학 (시공간과 상대성) |
[12물리01-02] 특수 상대성 이론의 기본 가설과 동시성의 상대성, 빛의 속도 불변 원리를 우주적 관점에서 이해한다. | 초속 7.6km 위성 이동에 따른 상대론적 선행 지향각(Point-Ahead Angle) 수치 보정. |
| 고등 정보 (네트워크와 프로토콜) |
[12정보03-02] 네트워크의 물리적 연결 구조와 라우팅 알고리즘을 이해하고, 통신 장애에 대처하는 내결함성 프로토콜을 설계한다. | RFC 9171 번들 프로토콜 및 접촉 그래프 라우팅(CGR) 0-Alloc C# 엔진 구현. |
| 중학 과학 (태양계와 우주 탐사) |
[09과07-03] 인공위성의 궤도 운동과 현대 우주 탐사선이 지구 및 다른 위성과 정보를 교환하는 방식을 조사한다. | 지구 가림에 의한 통신 단절을 극복하는 보관-전달(Store-and-Forward) 궤도 가시화. |
4.2 대한민국 합동참모본부/우주사령부 우주 전력 효과
- 정찰 위성 영상 지상 전송 지연 극적 단축 (수 시간 $\rightarrow$ 0.5초 미만): 한반도 상공 정찰위성이 적 이동식 발사대(TEL)를 촬영한 즉시, 위성 간 레이저 ISL 메쉬망을 통해 500ms 이내에 한국 지상 작전사령부로 스트리밍하여 선제 타격 결심 지원.
- 해외 지상 수신국 의존도 100% 탈피: 전 세계 어디에서 표적을 탐지하더라도 동맹국 해외 지상 기지국을 거치지 않고, 우주 레이저 고속 메쉬망을 거쳐 대한민국 본토 수신국으로 데이터 직접 직송.
- 적 위성 요격(ASAT) 및 전자전 교란 하 우주 메쉬 생존성: 특정 중계 위성이 적 미사일에 요격되거나 고출력 지상 재밍을 받더라도, CGR 접촉 그래프 라우팅이 0.01초 내에 대체 우주 광학 경로를 개척하여 우주 C4I 네트워크 100% 유지.