피드로 돌아가기
Hacker NewsInfrastructure
원문 읽기
8-bit AVR MCU 기반 SLIP 및 TCP/IP 스택 구현을 통한 웹 서버 호스팅
Hosting a website on an 8-bit microcontroller
AI 요약
Context
24MHz 클럭과 8kB RAM이라는 극심한 리소스 제약 환경에서 웹 서버를 구현하려는 시도. 표준 Ethernet의 Manchester encoding으로 인한 오버헤드가 MCU의 I/O 처리 속도(12MHz)를 초과하는 병목 지점 발생.
Technical Solution
- 물리 계층의 한계를 극복하기 위해 고속 Ethernet 대신 저속 Serial 통신 기반의 SLIP(RFC 1055) 프로토콜 채택
- 메모리 부족 문제를 해결하기 위해 IPv6의 설계 원칙을 차용하여 Packet Fragmentation 처리를 완전히 배제한 경량 IP 헤더 구현
- 응답 헤더 생성을 위해 수신 패킷의 Source와 Destination 주소를 단순히 스왑하는 방식으로 연산 복잡도 최소화
- TCP 상태 머신 및 재전송 로직을 MCU 내부에 직접 구현하여 Connection State를 추적하는 커스텀 TCP 스택 구축
- HTTP 파싱 오버헤드를 제거하기 위해 요청 URL에 관계없이 고정된 응답을 반환하는 Hardcoded Response 구조 설계
- 외부 접근을 위해 VPS와 WireGuard 가상 네트워크로 연결하고 Reverse Proxy를 통해 /mcu 경로의 트래픽만 포워딩하는 인프라 구성
실천 포인트
1. 하드웨어 I/O 한계 도달 시 물리 계층 프로토콜을 단순화하여 CPU 부하를 낮출 수 있는가?
2. 리소스 제약 환경에서 복잡한 표준 규격(Fragmentation 등)을 제거하고 필수 기능만 남기는 전략적 단순화가 가능한가?
3. 불안정한 엔드포인트 보호를 위해 외부 Proxy 계층을 두어 직접적인 TCP SYN 공격 등의 리스크를 분산했는가?