Midterm Notes

Why Layering?

  • Explicit structure allows identification, relationship of system’s pieces

  • modularization eases maintenance, updating of system

What transport service does an app need?

  • Reliable data transfer

  • timing

  • throughput

  • security

Transport vs. network layer services and protocols

  • transport layer is communication between processes

  • network layer is communication between hosts

Multiplexing

Definition

  • Multiplexing: A technique that combines multiple signals into one signal over a shared medium. It allows multiple data streams to share the same communication channel.

Types of Multiplexing

  1. Time Division Multiplexing (TDM): Allocates time slots for each signal in a fixed sequence.

  2. Frequency Division Multiplexing (FDM): Allocates different frequency bands to each signal.

  3. Wavelength Division Multiplexing (WDM): Used in fiber optics, similar to FDM but for light wavelengths.

  4. Code Division Multiplexing (CDM): Uses unique codes for each signal, allowing them to share the same frequency.

Importance

  • Efficient use of bandwidth.

  • Reduces the need for multiple physical connections.

  • Enables simultaneous data transmission.


Transport Layer and Process Delivery

Overview of Transport Layer

  • Transport Layer: Layer 4 of the OSI model, responsible for end-to-end communication, reliability, and flow control.

  • Key protocols: TCP (Transmission Control Protocol) and UDP (User Datagram Protocol).

Identifying Processes

  • The transport layer uses port numbers to identify specific processes (applications) running on a device.

  • Each application is assigned a unique port number (e.g., HTTP uses port 80, HTTPS uses port 443).

How Transport Layer Delivers Messages

  1. Socket Communication:

    • A socket is defined by an IP address and a port number (e.g., 192.168.1.1:8080).

    • Applications like Firefox, Netflix, and Skype each bind to specific port numbers.

  2. Incoming Data Handling:

    • When data arrives at the transport layer, it checks the destination port number.

    • The transport layer uses the port number to determine which application (process) should receive the data.

  3. Example:

    • If data is sent to port 8080, the transport layer knows to deliver it to the Firefox process.

    • If data is sent to port 5000, it would be directed to the Skype process.

Summary

  • Multiplexing allows multiple data streams to share a single channel efficiently.

  • The transport layer uses port numbers to route incoming messages to the correct application process, ensuring that data reaches the intended recipient (e.g., Firefox, Netflix, or Skype).

Mind Map: Reliable Data Transfer Protocol

Central Idea

  • Reliable Data Transfer Protocol

Main Branches

1. Definition

  • Ensures data is transmitted accurately and in order.

  • Guarantees delivery of packets.

2. Key Features

  • Error Detection

    • Checksums

    • Cyclic Redundancy Check (CRC)

  • Error Correction

    • Automatic Repeat reQuest (ARQ)

    • Forward Error Correction (FEC)

  • Flow Control

    • Sliding Window Protocol

    • Stop-and-Wait Protocol

  • Congestion Control

    • TCP Congestion Control

    • AIMD (Additive Increase Multiplicative Decrease)

3. Protocol Types

  • Connection-Oriented Protocols

    • Transmission Control Protocol (TCP)

    • Stream Control Transmission Protocol (SCTP)

  • Connectionless Protocols

    • User Datagram Protocol (UDP) with reliability mechanisms

    • Reliable User Datagram Protocol (RUDP)

4. Applications

  • File Transfer

    • FTP (File Transfer Protocol)

    • SFTP (Secure File Transfer Protocol)

  • Web Communication

    • HTTP/HTTPS

    • WebSocket

  • Streaming Services

    • Real-Time Transport Protocol (RTP)

    • Real-Time Streaming Protocol (RTSP)

5. Challenges

  • Latency

    • Impact on real-time applications

  • Packet Loss

    • Causes and solutions

  • Network Congestion

    • Strategies to mitigate

6. Future Trends

  • Integration with IoT

    • Protocol adaptations for IoT devices

  • 5G and Beyond

    • Enhancements in data transfer reliability

  • Machine Learning

    • Predictive algorithms for congestion control

Conclusion

  • Reliable data transfer protocols are essential for ensuring data integrity and efficiency in communication networks.