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

  1. Application: Application sends data via socket
  2. TCP/UDP: Transport layer adds header and checksum
  3. IP: Network layer adds IP header and routes packet
  4. Ethernet: Link layer constructs Ethernet frame
  5. Hardware: Ethernet driver transmits packet
  6. 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