Кіріспе

Ашық кодты TCP/IP стегі

lwIP (жеңіл IP) – кіріктірілген жүйелер үшін арналған, кеңінен қолданылатын ашық кодты TCP/IP стегі. lwIP бастапқыда Адам Дункельс шведтік Компьютерлік ғылымдар институтында жасаған, ал қазір оны бүкіл әлемдік әзірлеушілер желісі дамытуда және қолдауда. lwIP-ті Intel/Altera, Analog Devices, Xilinx, TI, ST және Freescale сияқты көптеген кіріктірілген жүйелер өндірушілері пайдаланады.

lwIP желілік стегі

lwIP желілік стегін іске асырудың мақсаты – ресурстарды үнемдеумен қатар, толыққанды TCP стегін қамтамасыз ету болып табылады. Бұл lwIP-ті ондаған килобайт бос жадысы және шамамен 40 килобайт код сақтауға арналған ROM-ы бар кіріктірілген жүйелерде пайдалануға ыңғайлы жасайды.

lwIP протоколын іске асыру

TCP/IP стегінен басқа, lwIP-де желі интерфейсі, операциялық жүйенің эмуляциялық қабаты, буферлер және жадты басқару бөлімі сияқты бірнеше маңызды бөліктер бар. Операциялық жүйенің эмуляциялық қабаты және желі интерфейсі желілік стекті операциялық жүйеге орнатуға мүмкіндік береді, себебі ол lwIP коды мен операциялық жүйенің ядросы арасындағы ортақ интерфейсті қамтамасыз етеді. Желіні күтіп-тұру және қателерді жою үшін lwIP ICMP (Интернеттік бақылау хабарламалары протоколы) протоколын іске асырады.

Қолданба қабатын қолдау

Қолданбалық деңгейде lwIP желілік стегі келесі протоколдарды іске асыру арқылы қолдауға болады. DNS (домендік атаулар жүйесі), SNMP (Simple Network Management Protocol) агенті, v1, v2 немесе v3 нұсқаларында, жеке MIB (басқару ақпараттық базасы) қолдауымен және MIB компиляторымен бірге. lwIP TCP/IP стегін іске асыратын операциялық жүйелер қолданбалық деңгейде түрлі клиенттер мен серверлерді қамтамасыз етуі мүмкін. Мысалы, IPv4 DHCP (Dynamic Host Configuration Protocol) клиенті немесе IPv4 сілтемелік жергілікті мекенжайлар (AutoIP). Арнайы шикі API қолданбаларына келесілер жатады: HTTP сервері, SNTP клиенті, SMTP клиенті, NetBIOS есім сервері, mDNS жауап берушісі, MQTT клиенті және TFTP сервері.

ОЖ-ны іске асыру

lwIP ReactOS және Genode жүйелерінде желілік стек ретінде қолданылады, сондай-ақ Minix және GNU Hurd жүйелерінде желілік серверлерді жүзеге асыру үшін пайдаланылуы мүмкін.