- Published on
LwIP explained
- Authors
- Name
- JaeHyeok CHOI
- none
LwIP - Lightweight IP
임베디드 시스템에서 널리 사용되는 오픈소스 TCP/IP 스택.
LwIP 네트워크 스택
lwIP 네트워크 스택 구현의 초점은 풀 스케일 TCP 스택을 사용하면서도 리소스를 줄이는 것이다. 따라서 lwIP는 수십 kB의 여유 RAM과 코드를 위한 약 40kB 이상의 ROM이 있는 임베디드 시스템에서 사용한다.
구현
TCP/IP 스택 외에도 lwIP에는 네트워크 인터페이스, OS 에뮬레이션 계층, 버퍼 및 메모리 관리 섹션과 같은 몇 가지 중요한 부분이 있다. OS 에뮬레이션 계층과 네트어ㅜ크 인터페이스를 통해 lwIP 모듈과 OS 커널 간에 공통 인터페이스를 제공하므로 lwIP 모듈을 운영 체제에 이식할 때 lwIP의 네트워크 스택이 제대로 작동할 수 있다.
인터넷 계층에서 lwIP의 네트워크 스택에는 여러 네트워크 인터페이스를 통한 패킷 전달을 처리할 수 있는 IP 구현이 포함된다. IPv4와 IPv6 모두 lwIP v2.0.0부터 듀얼 스택을 지원한다. 네트워크의 유지 보수 및 디버깅을 위해 lwIP는 구현 ICMP (인터넷 제어 메시지 프로토콜)을 도입한다. IGMP (Internet Group Management Protocol)는 멀티 캐스트 트래픽 관리를 지원한다. MLD를 포함한 ICMPv6은 IPv6 사용을 지원하기 위해 구현된다.
데이터 링크 계층에서 이더넷용 lwIP의 인터넷 프로토콜을 지원하려면 IPv4 ARP (Address Resolution Protocol) 구현이 필요하며 IPv6 Neighbor Discovery Protocol이 필요하다. lwIP는 데이터 링크 계층에서 PPP (Point-to-Point Protocol) 구현 위에서 작동될 수 있다.
전송 계층에서 lwIP는 혼잡 제어, RTT 추정 및 빠른 복구/빠른 재전송을 사용하여 TCP를 구현한다. UDP는 실험적인 UDP-Lite 확장으로 구현한다.
API 및 소켓
lwIP는 향상된 네트워크 스택 성능을 위한 특수한 no-copy API를 제공한다. 버클리 소켓 API는 선택 사항.
응용 계층 지원
개인 MIB (관리 정보 기반 원 및 MIB 컴파일러가 있는 v1, v2, v3의 SNMP(단순 네트워크 관리 프로토콜) 에이전트, DNS)가 지원된다.
lwIP TCP/IP 스택을 구현하는 운영 체제는 응용 계층에서 IPv4 DHCP (동적 호스트 구성 프로토콜) 클라이언트 또는 IPv4 링크-로컬주소 (자동IP)와 같은 다양한 지원 클라이언트 및 서버를 제공할 수 있으며, 특수화된 원시 API 응용 프로그램에는 HTTP 서버, SNTP 클라이언트, SMTP 클라이언트, NetBIOS 네임 서버, mDNS 응답자, MQTT 클라이언트 및 TFTP 서버가 포함된다.