Network Stack
Overview
The Network Stack provides complete TCP/IP networking capabilities for FreeWorld OS, enabling network communication, web browsing, and network-based rendering operations. It includes kernel-level protocol implementations and user-space network daemon services.
Architecture
The network stack is organized in layers:
- Application Layer: HTTP, WebSocket, and other application protocols
- Transport Layer: TCP and UDP
- Network Layer: IP (IPv4)
- Link Layer: Ethernet frame handling
- Hardware Layer: Ethernet drivers (RTL8139, E1000, VirtIO)
Components
1. IP Layer
Location: kernel/network/ip.asm
IP packet handling:
- Packet transmission and reception
- IP checksum calculation
- Routing table integration
- Fragmentation and reassembly
2. TCP Layer
Location: kernel/network/tcp.asm
TCP connection management:
- Full TCP state machine (SYN, ACK, FIN, RST)
- Connection establishment and termination
- Flow control (window size)
- Sequence number management
- TCP checksum calculation
3. UDP Layer
Location: kernel/network/udp.asm
UDP datagram handling:
- Socket management
- Port binding
- Datagram transmission and reception
- UDP checksum calculation
4. ICMP Layer
Location: kernel/network/icmp.asm
ICMP message handling:
- Echo request/reply (ping)
- Error messages
- ICMP checksum calculation
5. Port Manager
Location: kernel/network/port_manager.asm
Centralized port management:
- Port binding and unbinding
- Port conflict detection
- Dynamic port allocation
6. Ethernet Drivers
Location: kernel/drivers/ethernet_hw.asm
Hardware-specific drivers:
- RTL8139 (TX/RX buffer management)
- E1000 (TX/RX descriptor rings)
- VirtIO (queue management)
7. Network Daemon (networkd)
Location: services/networkd/
User-space network services:
- Interface management
- DHCP client
- Routing table management
- DNS configuration
Network Flow
- Application: Application sends data via socket
- TCP/UDP: Transport layer adds header and checksum
- IP: Network layer adds IP header and routes packet
- Ethernet: Link layer constructs Ethernet frame
- Hardware: Ethernet driver transmits packet
- Reception: Reverse process for incoming packets
Integration
The Network Stack integrates with:
- Rendering System: Network-based content loading
- Browser Engine: HTTP/HTTPS support
- GUI Server: WebSocket connections
- System Services: Network configuration and management
Related Documentation
- networkd - Network daemon
- Node.js Integration - Network usage
- Device Drivers - Ethernet drivers