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.