01.CS2005-ApplicationLayerI-2024.25
Internet Components
Mobile Network
Global ISP (Internet Service Provider)
Regional ISP
Home Network
Institutional Network
Hosts: End systems running network applications
Communication Links:
Fiber, copper, radio, satellite
Transmission Rate: Measured in bandwidth
Packet Switches: Forward packets (chunks of data)
Includes routers and switches
Types: Wired links and wireless links
Devices: Router, smartphone, PC, server, wireless laptop
Internet Overview
Definition: The Internet is described as a "network of networks" consisting of interconnected ISPs.
Protocols: Manage sending and receiving of messages (e.g., TCP, IP, HTTP, SMTP, 802.11).
Internet Standards:
RFC: Request for comments
IETF: Internet Engineering Task Force
Internet Services
Services to Applications: Provides infrastructure for services including:
Web
VoIP (Voice over Internet Protocol)
Email
Games
E-commerce
Social networks
Programming Interface: Offers hooks for application programs to connect to the Internet, similar to postal services.
Understanding Protocols
Human Protocols: Examples include asking for the time, questioning, or making introductions, with specific messages sent and actions taken in response.
Network Protocols: Govern communication activities in the Internet, defining the format, order of messages sent, actions taken upon message transmission and receipt.
Protocol Layers
Networking Complexities:
Hosts, routers, various media links, applications, and protocols.
Discussion on organizing the structure of networks.
Layering in Networking
Analogy to Airline Functionality:
Each layer implements specific services through internal actions, relying on lower layers.
Example functions: ticket purchase, baggage processing, loading/unloading, takeoff/landing sequences managed by air traffic control.
Internet Protocol Stack
Application Layer: Supports network applications (e.g., FTP, SMTP, HTTP)
Transport Layer: Manages process-to-process data transfer (e.g., TCP, UDP)
Network Layer: Deals with routing datagrams from source to destination (e.g., IP)
Link Layer: Data transfer between neighboring network elements (e.g., Ethernet, WiFi)
Physical Layer: Deals with the transfer of bits on a wire.
Encapsulation
Hierarchy: Data encapsulated from application to physical layer in packets.
As data moves from higher to lower layers, it is segmented and packetized accordingly.
Network Applications
Main Types of Applications:
Email
Web
P2P file sharing
Text messaging
VoIP
Video conferencing
Streaming video
Social networking
Search and others.
Creating a Network Application
Development: Writing programs on different end systems to communicate across the network (e.g., web server software talking to browser software).
Core network devices don’t run user applications, allowing for rapid application development.
Application Architectures
Main Structures:
Client-server model
Peer-to-peer (P2P) model
Client-Server Architecture
Server Characteristics:
Always-on host with a permanent IP address
Scaled in data centers
Clients:
Communicate with servers, may be intermittently connected with dynamic IPs
Don’t communicate directly with each other.
Peer-to-Peer (P2P) Architecture
Characteristics:
No always-on server, allows arbitrary end systems to communicate directly.
Peers request and provide services to each other, leading to self-scalability.
Peers remain intermittently connected and may change IP addresses.
Processes Communicating
Processes: Programs running within a host.
Inter-process Communication: Happens within the same host, defined by the OS.
Different Hosts: Communication occurs through message exchanges.
Client Process: Initiates communication
Server Process: Awaits contact from clients.
Sockets
Function: Processes communicate using sockets.
A socket acts like a "door" for sending and receiving messages, relying on transport infrastructure.
Addressing Processes
Message Reception: Requires an identifier including both the IP address of the host device and the associated port numbers (e.g., HTTP: 80, Mail: 25).
Uniqueness: Multiple processes may run on the same host, hence the need for both IP address and port number.
Application-Layer Protocols
Definition: Specifies types of messages exchanged, syntax of messages, and the semantics of information.
Open Protocols: Defined in RFCs, enabling interoperability (e.g., HTTP, SMTP).
Proprietary Protocols: Specific to certain applications (e.g., Skype).
Transport Service Requirement
Data Integrity: Some apps require reliable data transfer (e.g., file transfer).
Timing: Low delay is necessary for certain apps (e.g., Internet telephony).
Throughput: Minimum throughput required for multimedia apps, while others adapt to available throughput.
Security: Emphasizes encryption and data integrity.
Internet Transport Protocols
TCP: Provides reliable transport between processes with flow and congestion control; connection-oriented but lacks guarantees on timing and throughputs.
UDP: Offers unreliable data transfer without connection establishment; useful for applications that can tolerate data loss.
Securing TCP Traffic
Challenges: TCP and UDP lack encryption, making sensitive data vulnerable while traversing the Internet.
TLS/SSL: Protocols that ensure encrypted TCP connections, guaranteeing data integrity and endpoint authentication.