networking concepts - TarisMajor/5143-OpSystems GitHub Wiki

Networking Concepts

This section explores fundamental concepts in networking, focusing on protocols, programming, file systems, memory access, and scheduling techniques.


Table of Contents


Network Protocols (TCP/IP)

  • Transmission Control Protocol (TCP):
    • Reliable, connection-oriented protocol.
    • Ensures ordered data delivery with error correction.
  • Internet Protocol (IP):
    • Connectionless protocol responsible for routing and addressing packets.
  • Use Case: Commonly used for web browsing, email, and file transfer.

TCP/IP Protocol Stack
Figure 1: TCP/IP Protocol Stack.


Socket Programming

  • Definition: Enables communication between two endpoints (client and server) over a network.
  • Key Concepts:
    • Sockets represent endpoints.
    • TCP and UDP are common transport layer protocols.
  • Applications:
    • Web servers, chat applications, and networked games.

Socket

Figure 1. Socket Programming Example.

Network File System (NFS)

  • Definition: Allows access to files on remote systems as if they were local.
  • Features:
    • Shared storage for distributed systems.
    • Stateless protocol for efficient access.
  • Use Case: Common in enterprise environments for centralized file management.

NFS


Remote Memory Access

  • Definition: Direct memory access across a network, bypassing the CPU.
  • Benefits:
    • Reduces latency and CPU overhead.
    • Improves performance for distributed systems.
  • Use Case: High-performance computing (HPC).

RMA


Packet Scheduling

  • Definition: Determines the order of packet transmission in a network.
  • Techniques:
    • Prioritizing packets based on size, source, or destination.
    • Managing bandwidth usage.

PS


Fair Queuing

  • Definition: Allocates bandwidth fairly among competing flows.
  • Mechanism:
    • Uses separate queues for each flow.
    • Ensures equal packet transmission over time.
  • Use Case: Avoids bandwidth monopolization in shared networks.

image


Weighted Fair Queuing

  • Definition: Extends fair queuing by assigning weights to different flows.
  • Features:
    • Provides proportional bandwidth allocation.
    • Higher weights mean higher bandwidth priority.
  • Use Case: Quality of Service (QoS) in multimedia streaming.

WTQ


Conclusion

Networking concepts such as TCP/IP, socket programming, and advanced scheduling techniques form the backbone of modern distributed systems. These concepts are essential for building reliable, efficient, and scalable networks.


References

  1. Kurose, J. F., & Ross, K. W. (2024). Computer Networking: A Top-Down Approach (8th ed.). Pearson. ISBN: 978-0136681557.
  2. Edelman, J., Lowe, S. S., & Oswalt, M. (2023). Network Programmability and Automation (2nd ed.). O'Reilly Media. ISBN: 978-1492082104.
  3. Bashir, I. (2023). Mastering Blockchain: Unlocking the Power of Cryptocurrencies, Smart Contracts, and Decentralized Applications (3rd ed.). Packt Publishing. ISBN: 978-1803241067.