• เพื่อให้สามารถใช้งาน TCP/IP บนอุปกรณ์ฝังตัวได้ด้วย lwIP 2.1.0 จึงมีการนำเสนอชุดโปรโตคอล TCP/IP ในรูปแบบอิมพลีเมนเทชันอิสระขนาดเล็ก
  • มุ่งเน้นการให้ TCP แบบเต็มรูปแบบ แม้จะออกแบบมาสำหรับสภาพแวดล้อมที่มี RAM ระดับหลายสิบ KB และ โค้ด ROM ราว 40KB
  • ขอบเขตการรองรับกว้าง ครอบคลุม IPv4/IPv6, ICMP, IGMP, MLD, IPv6 Neighbor Discovery, DHCP, UDP, TCP, raw/native API, Berkeley-style socket API, altcp, PPP, DNS และ 6LoWPAN
  • แอปพลิเคชันที่มีมาให้ประกอบด้วย HTTP server, เอเจนต์ SNMPv2c, SNTP, ตัวตอบสนองบริการชื่อ NetBIOS, ตัวตอบสนอง mDNS, เซิร์ฟเวอร์ iPerf และไคลเอนต์ MQTT
  • ให้ใช้งานภายใต้ BSD License และได้รับการพัฒนาและบำรุงรักษาโดยเครือข่ายนักพัฒนาทั่วโลกผ่าน Git repository และ mailing list ของ Savannah

การออกแบบสแตก TCP/IP สำหรับงานฝังตัว

  • lwIP คืออิมพลีเมนเทชันอิสระขนาดเล็กของชุดโปรโตคอล TCP/IP
  • เป้าหมายการออกแบบคือทำให้ ลดการใช้ RAM ไปพร้อมกับรองรับ TCP แบบเต็มรูปแบบ
    • เหมาะกับระบบฝังตัวที่มี RAM ว่างระดับหลายสิบ KB
    • ตั้งสมมติฐานว่าโค้ด ROM มีพื้นที่ประมาณ 40KB
  • เดิมพัฒนาโดย Adam Dunkels ที่ห้องปฏิบัติการ Computer and Networks Architectures ของ Swedish Institute of Computer Science และปัจจุบันดูแลต่อโดยเครือข่ายนักพัฒนาทั่วโลก
  • โปรโตคอลเครือข่ายและ API

    • ชั้น IP รองรับทั้ง IPv4 และ IPv6 และยังสามารถทำ packet forwarding ระหว่างหลาย network interface ได้
    • มี ICMP สำหรับการดูแลรักษาและดีบักเครือข่าย และ IGMP สำหรับจัดการทราฟฟิกมัลติคาสต์
    • ความสามารถด้าน IPv6 รวมถึง MLD และ ND
      • MLD ตั้งเป้าให้สอดคล้องกับ RFC 2710 แต่ ไม่รองรับ MLDv2
      • ND ตั้งเป้าให้สอดคล้องกับ RFC 4861 Neighbor Discovery และ RFC 4862 address autoconfiguration
    • มีความสามารถด้านการกำหนดที่อยู่และการแปลงชื่อ ได้แก่ DHCP, AutoIP/APIPA, stateless DHCPv6, DNS และ mDNS
    • ชั้นขนส่งประกอบด้วย UDP และ TCP
      • UDP มีส่วนขยาย UDP-lite แบบทดลองรวมอยู่ด้วย
      • TCP รองรับ congestion control, การประเมิน RTT, fast recovery, fast retransmit และการส่งแบบ SACK
    • ในส่วนของ API และความสามารถเสริม รองรับ raw/native API, Berkeley-style socket API แบบเลือกเปิดใช้, TCP แบบเป็นชั้น altcp, PPPoS, PPPoE และ 6LoWPAN
      • altcp มอบ TLS ที่แทบโปร่งใสสำหรับโปรโตคอลที่ทำงานบน TCP
  • แอปพลิเคชันที่รวมมาให้

    • HTTP server รองรับ SSI และ CGI และ HTTPS ให้บริการผ่าน altcp
    • เอเจนต์ SNMPv2c มี MIB compiler รวมมาให้ และ v3 ให้บริการผ่าน altcp
    • รวม SNTP, ตัวตอบสนองบริการชื่อ NetBIOS และตัวตอบสนอง mDNS
    • รวมอิมพลีเมนเทชันเซิร์ฟเวอร์ iPerf และไคลเอนต์ MQTT โดยการรองรับ TLS ของ MQTT ให้ผ่าน altcp

การมีส่วนร่วมพัฒนาและเอกสาร

  • lwIP เปิดให้ใช้งานได้อย่างอิสระภายใต้ BSD License
  • การพัฒนาโฮสต์อยู่บน Savannah และสามารถมีส่วนร่วมปรับปรุงได้ผ่านอินเทอร์เฟซ Savannah, Git และ mailing list
  • ทีมพัฒนาหลักจะคอมมิตการเปลี่ยนแปลงลงใน Git source tree
    • สแตก TCP/IP ถูกดูแลใน Git module lwip
    • งานสมทบอย่าง platform port อยู่ใน Git module contrib
  • ปัจจุบันสามารถเปิดดู Git tree ได้ผ่านเว็บ
  • แพตช์และบั๊กส่งได้ผ่าน lwIP project page
  • ระบบ continuous integration build สำหรับ GCC และ clang ให้บริการที่ Travis CI
  • เอกสารภายในของซอร์สโค้ดถูกดึงออกจาก Git source เป็นประจำและเผยแพร่บน lwIP web page
  • เอกสารและสื่อการเรียนรู้สามารถดูได้จาก wiki, mailing list, searchable archive, ไฟล์ใน docs/ และเอกสารในซอร์สโค้ด

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น