1 điểm bởi GN⁺ 2024-09-08 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Để có thể chạy TCP/IP ngay cả trên thiết bị nhúng, lwIP 2.1.0 cung cấp bộ giao thức TCP/IP dưới dạng một triển khai nhỏ gọn, độc lập
  • Tập trung vào việc cung cấp TCP đầy đủ trong khi nhắm tới môi trường chỉ có vài chục KB RAM và khoảng 40KB ROM mã
  • Phạm vi hỗ trợ rất rộng, gồm IPv4/IPv6, ICMP, IGMP, MLD, IPv6 Neighbor Discovery, DHCP, UDP, TCP, raw/native API, API socket kiểu Berkeley, altcp, PPP, DNS, 6LoWPAN
  • Các ứng dụng tích hợp sẵn gồm máy chủ HTTP, tác tử SNMPv2c, SNTP, bộ đáp ứng dịch vụ tên NetBIOS, bộ đáp ứng mDNS, máy chủ iPerf và máy khách MQTT
  • Được cung cấp theo giấy phép BSD, do mạng lưới nhà phát triển toàn cầu phát triển và bảo trì thông qua kho Git và mailing list trên Savannah

Thiết kế ngăn xếp TCP/IP cho hệ nhúng

  • lwIP là một triển khai nhỏ gọn, độc lập của bộ giao thức TCP/IP
  • Mục tiêu thiết kế là vừa giảm mức sử dụng RAM, vừa cung cấp TCP đầy đủ
    • Phù hợp với các hệ thống nhúng có vài chục KB RAM trống
    • ROM mã giả định có dung lượng khoảng 40KB
  • Ban đầu được Adam Dunkels phát triển tại phòng thí nghiệm Computer and Networks Architectures của Swedish Institute of Computer Science, hiện được mạng lưới nhà phát triển trên toàn thế giới bảo trì
  • Giao thức mạng và API

    • Tầng IP hỗ trợ IPv4 và IPv6, đồng thời cũng có thể chuyển tiếp gói tin giữa nhiều giao diện mạng
    • Cung cấp ICMP cho bảo trì và gỡ lỗi mạng, IGMP để quản lý lưu lượng multicast
    • Các chức năng liên quan đến IPv6 gồm MLD và ND
      • MLD hướng tới tuân thủ RFC 2710 nhưng không hỗ trợ MLDv2
      • ND hướng tới tuân thủ RFC 4861 Neighbor Discovery và RFC 4862 tự động cấu hình địa chỉ
    • Cung cấp DHCP, AutoIP/APIPA, stateless DHCPv6, DNS và mDNS cho cấu hình địa chỉ và phân giải tên
    • Tầng truyền tải gồm UDP và TCP
      • UDP gồm phần mở rộng UDP-lite mang tính thử nghiệm
      • TCP hỗ trợ kiểm soát tắc nghẽn, ước lượng RTT, fast recovery, fast retransmit và truyền SACK
    • Về API và tính năng mở rộng, hỗ trợ raw/native API, API socket kiểu Berkeley tùy chọn, TCP phân tầng altcp tùy chọn, PPPoS, PPPoE và 6LoWPAN
      • altcp cung cấp TLS gần như trong suốt cho các giao thức dựa trên TCP
  • Ứng dụng đi kèm

    • Máy chủ HTTP hỗ trợ SSI và CGI, còn HTTPS được cung cấp thông qua altcp
    • Tác tử SNMPv2c gồm cả trình biên dịch MIB, còn v3 được cung cấp thông qua altcp
    • Bao gồm SNTP, bộ đáp ứng dịch vụ tên NetBIOS và bộ đáp ứng mDNS
    • Bao gồm triển khai máy chủ iPerf và máy khách MQTT; hỗ trợ TLS của MQTT được cung cấp thông qua altcp

Tham gia phát triển và tài liệu

  • lwIP được cung cấp tự do theo giấy phép BSD
  • Việc phát triển được lưu trữ trên Savannah; có thể tham gia cải tiến thông qua giao diện Savannah, Git và mailing list
  • Nhóm phát triển lõi commit các thay đổi vào cây mã nguồn Git
    • Ngăn xếp TCP/IP được duy trì trong mô-đun Git lwip
    • Các đóng góp như port cho nền tảng nằm trong mô-đun Git contrib
  • Cây Git hiện tại có thể xem trên web
  • Bản vá và lỗi được gửi qua trang dự án lwIP
  • Bản dựng tích hợp liên tục cho GCC và clang được cung cấp trên Travis CI
  • Tài liệu tự sinh trong mã nguồn hiện được trích xuất định kỳ từ mã nguồn Git và cung cấp trên trang web lwIP
  • Tài liệu và tài nguyên học tập có thể tìm thấy trong wiki, mailing list, kho lưu trữ có thể tìm kiếm, các tệp docs/ và tài liệu mã nguồn

Chưa có bình luận nào.

Chưa có bình luận nào.