项目--
(1)bsd tcp/ip stack--最经典的tcp/ip stack
Wright 和 Stevens 在《TCP/IP详解 卷2:实现》中详细剖析了其源代码,该书十分精彩!
(2)lwip(http://savannah.nongnu.org/projects/lwip/ , http://www.sics.se/~adam/lwip/index.html)
lwIP is a small independent implementation of the TCP/IP protocolsuite that has been developed by Adam Dunkels at the Computer and Networks Architectures (CNA) lab at the Swedish Institute of Computer Science (SICS).
The focus of the lwIP TCP/IP implementation is to reduce resource usage while still having a full scale TCP. This making lwIP suitable for use in embedded systems with tens of kilobytes of free RAM and room for around 40 kilobytes of code ROM.
lwIP features:
- IP (Internet Protocol) including packet forwarding over multiple network interfaces
- ICMP (Internet Control Message Protocol) for network maintenance and debugging
- UDP (User Datagram Protocol) including experimental UDP-lite extensions
- TCP (Transmission Control Protocol) with congestion control, RTT estimation and fast recovery/fast retransmit
- Specialized raw API for enhanced performance
- Optional Berkeley-alike socket API
- DHCP (Dynamic Host Configuration Protocol)
- PPP (Point-to-Point Protocol)
- ARP (Address Resolution Protocol) for Ethernet
License : Modified BSD License
Registration Date : Thursday 10/17/02 at 21:13 UTC
Development Status : 5 - Production/Stable
设计文档:Adam Dunkels, Design and Implementation of the lwIP TCP/IP Stack(pdf)
Adam Dunkels 在 http://www.sics.se/~adam/lwip/links.html 上给出的一些tcp/ip实现及其它重要信息:
Other small TCP/IP implementations:
- uIP - My own very small free TCP/IP implementation, suitable for systems with hundreds of bytes free RAM and a few kilobytes of free code space.
- Picnic - A hardware design with a PIC and an Ethernet chip that includes software for running a web server.
- CMX Micronet - A commercial small TCP/IP implementation for 8-bit systems.
- InterNiche NicheStack - A commercial TCP/IP stack for embedded systems.
- LiveDevices Embedinet - A small commercial TCP/IP stack for PIC and H8S.
- Kadak KwikNet - A commercial TCP/IP stack for embedded systems.
- uC/IP - uC/IP is a BSD-based TCP/IP protocol stack for microcontrollers.
- TinyTCP - A very slim TCP, IP, and FTP implementation.
- WWWpic2 - Small HTTP/TCP/IP implementation for a PIC.
- PIC Web Server - Small HTTP/TCP/IP/SLIP PIC implementation.
- Liquorice - Liquorice includes a TCP/IP stack.
- CPC/IP - A TCP/IP stack for Amstrad CPCs.
- LUnix - LUnix contains a small TCP/IP stack.
- JOS - JOS includes a TCP/IP implementation.
Very small web servers:
Related RFCs:
- J. Postel, Internet Protocol, RFC791, September 1981.
- J. Postel, Internet Control Message Protocol, RFC792, September 1981.
- J. Postel, User Datagram Protocol, RFC768, August 1980.
- J. Postel, Transmission Control Protocol, RFC793, September 1981.
- D. D. Clark, Window and Acknowledgement Strategy in TCP, RFC813, July 1982.
- D. D. Clark, Modularity and Efficiency in Protocol Implementation, RFC817, July 1982.
- R. Braden, Requirements for Internet Hosts -- Communication Layers, RFC1122, October 1989.
- T. Mallory and A. Kullberg, Incremental Updating of the Internet Checksum, RFC1141, January 1990.
- A. Rijsinghani, Computation of the Internet Checksum via Incremental Update, RFC1624, May 1994.
- R. Braden, TIME-WAIT Assasination Hazards in TCP, RFC1337, May 1992.
- B. Carpenter, Architectural Principles of the Internet, RFC1958, June 1996.
- M. Allman, V. Paxson and W. Stevens, TCP Congestion Control, RFC2581, April 1999.
- S. Parker and C. Schmechel, Some Testing Tools for TCP Implementors, RFC2398, August 1998.
Related publications:
- V. Jacobson. Congestion avoidance and control. In Proceedings of the SIGCOMM '88 Conference, Stanford, California, August 1988.
- V. Jacobson. 4.3BSD TCP header prediction. ACM Computer Communications Review, 20(2), April 1990.
- P. Karn and C. Partridge. Improving round-trip time estimates in reliablie transport protocols. In Proceedings of the SIGCOMM '87 Conference, Stowe, Vermont, August 1987.
- J. Kay and J. Pasquale. Profiling and Reducing Processing Overheads in TCP/IP. IEEE/ACM Transactions of Networking, 4(6), December 1996.
- L. Larzon, M. Degermark, and S. Pink. UDP Lite for real-time multimedia applications. In Proceedings of the IEEE International Conference of Communications, Vancouver, British Columbia, Canada, June 1999.
- P. E. McKenney and K. F. Dove. Efcient demultiplexing of incoming TCP packets. In Proceedings of the SIGCOMM '92 Conference, Baltimore, Maryland, August 1992.
- C. Partridge and S. Pink. A faster UDP. IEEE/ACM Transactions in Networking, 1(4), August 1993.
(3)SSFNet的java实现(www.ssfnet.org)