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
Time Division Multiplexing (TDM): Allocates time slots for each signal in a fixed sequence.
Frequency Division Multiplexing (FDM): Allocates different frequency bands to each signal.
Wavelength Division Multiplexing (WDM): Used in fiber optics, similar to FDM but for light wavelengths.
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
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.
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.
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.