Table of contents
lwIP(lightweight)에 대한 간략한 내용과 관련 사이트를 소개드리겠습니다.
lwIP는 이더넷의 TCP/IP 프로토콜을 위한 라이브러리입니다.
먼저, lwIP에 대한 간략한 소개부터 하겠습니다.
lwIP 소개
lwIP는 스웨덴 컴퓨터 과학 연구소(SICS, Swedish Institute of Computer Science)의 컴퓨터 및 네트워크 아키텍처(CNA, Computer and Networks Architectures) 연구소에서 아담 던켈스가 개발한 것입니다.
TCP/IP에 필요한 프로토콜들의 집합체라고 생각하시면 조금 편하겠군요.
C언어 기반으로 구성되어 있고, 40Kbyte라는 적은 메모리를 이용하여 개발되었습니다.
(제가 개발했던 환경은 항상 C언어였는데, 다른 언어로 구성이 되어있는진 모르겠군요, 시간이 되면 확인해 봐야겠습니다.)
상대적으로 용량이 적거나 처리 속도가 느린 임베디드 시스템을 위해 개발되었고, RAM 사용량도 최적화 해서 개발되었다고 하네요.
인터넷의 역사는 1950년, 이더넷의 역사는 1973년도 때부터 시작되었다고 하는데요.
약, 50~70년이 넘는 표준 기술에 쉽게 접근할 수 있게 도와주는 것이 가장 큰 매력인 것 같습니다.
lwIP 관련 문서 사이트
lwIP를 이용하여 개발하기만 해봤지, 관련 사이트를 찾아본 적은 없었는데 생각보다 유용한 사이트들이 있었습니다.
먼저, 아래 사이트는 lwIP의 문서를 관리하는 사이트입니다.
물론, 코드에도 주석이 잘 작성되어 있지만, 개발하다보면 여러 페이지를 뛰어넘어야 해서 웹으로 따로 보시는 것도 꽤 유용한 것 같네요.
https://www.nongnu.org/lwip/2_0_x/index.html
lwIP 관련 Wiki 사이트
다음은 lwIP 관련 Wiki 사이트입니다.
lwIP에 포함된 프로토콜(또는 기술)에 대해 좀더 자세하고 설명해주고 있습니다.
예를 들어, IP, ICMP, UDP, TCP, ARP 등등 말이죠.
단점은 서양 문화 기반의 문서 형태라 읽는데 다소 불편함이 있습니다.
물론, 요새는 번역기가 잘 된다고 하지만 문서의 구조 자체도 약간 전공책과 비슷한 느낌이 있습니다.
(어쩌면 우리를 재우려는 목적일지도...)
아무튼 lwIP 라이브러리에서 프로토콜들을 사용하는 방법을 가장 친절히 설명된 사이트이므로, 모르는 내용이 있다면 여기서 정독해보시는 것을 추천드립니다.
https://lwip.fandom.com/wiki/LwIP_Wiki
lwIP 라이브러리 버전 관련 사이트
마지막으로 소개해드릴 사이트들은 lwIP 라이브러리 버전의 버그를 설명한 사이트와 깃 주소입니다.
보다보면, 어떤 부분들에서 에러가 있는지 확인할 수 있겠군요.
실제로 저도 lwIP를 사용하다보면 마이너한 에러들을 마주치곤 했었습니다.
lwIP를 이용하여 개발할 때 주의할 점은, lwIP가 완벽하다라고 생각하시면 안되는 점입니다.
우리를 편리하게 해주는 도구지, 라이브러리가 문제가 없다고 보증해주는 개념이 아니기 때문이죠.
http://savannah.nongnu.org/projects/lwip/
http://git.savannah.gnu.org/cgit/lwip.git/
'데이터통신/네트워크 > lwIP' 카테고리의 다른 글
lwIP 개요(링크) (0) | 2022.03.24 |
---|---|
lwIP 최대 버퍼 사용량 계산과 관련 있는 요소들 (0) | 2022.03.24 |
ST에서 제공하는 lwIP 관련 자료 (0) | 2021.12.31 |
ETH_PAD_SIZE 목적 (0) | 2021.12.28 |
memp_init()의 무한 루프 오류 (0) | 2021.12.19 |