- Published on
- Published on
KembaraXtra-Computer Science - A Trip Through the Internet
Overview
This guide summarizes the journey of data across the internet using the TCP/IP model, illustrating how different devices interact at each layer.
Scenario
Overview
This guide summarizes the journey of data across the internet using the TCP/IP model, illustrating how different devices interact at each layer.
Scenario
- A client device (connected to Wi-Fi) wants to access a web page hosted on a server (connected via wired connection).
- The client knows the server's IP address.
- Application Layer (Client):
- The web browser creates an HTTP request.
- The browser hands off the HTTP request to the OS's TCP/IP stack.
- Transport Layer (Client):
- The TCP layer encapsulates the HTTP payload into a TCP segment.
- It sets the destination port to 80 (standard for HTTP) in the segment header.
- If the data is too large, TCP divides it into multiple segments.
- Internet Layer (Client):
- The IP layer wraps the TCP segment in an IP packet.
- The packet header includes the destination IP address of the server.
- If necessary, IP divides the packet into smaller fragments.
- Link Layer (Client):
- The IP packet is encapsulated in a frame.
- The frame header includes the MAC address of the local router.
- The client's Wi-Fi hardware transmits the frame wirelessly.
- Wireless Access Point:
- Receives the frame.
- Sends the frame to the router (operates at the link layer).
- Router(s):
- Examines the IP packet to determine the destination IP address.
- Encapsulates the packet in a new frame with the MAC address of the next router.
- Sends the new frame on its way.
- This routing process continues through multiple routers.
- Final Router (Server's Subnet):
- Encapsulates the packet in a frame suitable for the server's local network.
- The frame header includes the MAC address of the server.
- Switch (Server's Subnet):
- Looks at the MAC address in the frame.
- Forwards the frame out the appropriate physical port to the server.
- Doesn't need to look at higher layers.
- Server:
- Receives the frame.
- The network interface driver passes the TCP/IP packet up to the TCP/IP stack.
- The TCP/IP stack hands off the HTTP data to the process listening on TCP port 80.
- The web server software (listening on port 80) handles the request.
- Reverse Process (Server to Client):
- The server replies to the client, and the entire process happens again in reverse order.
- Encapsulation: Each layer adds its own header to the data from the layer above.
- Decapsulation: Each layer removes its header to reveal the data for that layer.
- Routers: Operate at the internet layer (primarily) to forward packets between networks based on IP addresses.
- Switches: Operate at the link layer to forward frames within a local network based on MAC addresses.
- Ports: Used by the transport layer (TCP/UDP) to identify specific applications or services on a host.
- Devices interact at different layers of the TCP/IP stack.
- The routing process involves multiple routers, each forwarding the packet closer to its destination.
- The switch forwards data based on MAC addresses within the local network.
- Published on
KembaraXtra-Computer Science-Foundational Internet Capabilities
1. Dynamic Host Configuration Protocol (DHCP)
ii.If the server has the record in its cache, it returns the IP address.
iii.If not, the server queries other DNS servers, starting at the root, to find the record.
iv.The server caches the record for future queries.
4. Networking in Context of Computing
1. Dynamic Host Configuration Protocol (DHCP)
- Purpose: Automatically assigns IP addresses and related network information to devices when they connect to a network.
- Why it's important: Simplifies network configuration for end-users by eliminating the need for manual IP address assignment.
- How it works:
- Discovery: A device broadcasts a message to discover available DHCP servers.
- Offer: The DHCP server offers an IP address from its available pool.
- Request: The device requests the offered IP address.
- Acknowledgment: The DHCP server acknowledges the request, assigning the IP address to the device.
- Lease: IP addresses are leased to devices for a limited time. The device must renew the lease to continue using the IP address.
- DHCP Server: A device on the network configured to provide DHCP services, including managing a pool of available IP addresses.
- Problem: Limited number of public IP addresses available, but many networks have multiple devices.
- Solution: Using private IP addresses for internal network communication and NAT to share a single public IP address.
- Private IP Addresses:
- IP address ranges reserved for internal networks (e.g., homes, offices).
- Ranges: 10.x.x.x, 172.16.x.x to 172.31.x.x, 192.168.x.x.
- Non-routable on the public internet.
- Can be used simultaneously on multiple private networks without conflict.
- Network Address Translation (NAT):
- Allows devices on a private network to share a single public IP address.
- The NAT router modifies the source IP address of outgoing packets to its public IP address.
- When responses return, the router translates the destination IP address back to the correct private IP address.
- Security benefit: Hides devices on the private network from direct exposure to the public internet.
- Proxy Server:
- An alternative to NAT, typically used in corporate networks.
- Operates at the application layer.
- Provides additional features: User authentication, traffic logging, and content filtering.
- Purpose: Translates human-friendly domain names (e.g., www.example.com) into IP addresses.
- Why it's important: Makes the internet easier to use by allowing users to remember names instead of IP addresses.
- Fully Qualified Domain Name (FQDN): The complete DNS name of a computer (e.g., travel.example.com).
- Consists of a hostname (travel) and a domain suffix (example.com).
- Domain: A grouping of network resources managed by an organization (e.g., example.com).
- Resolving a Hostname: The process of querying a DNS server to find the IP address associated with a hostname.
- Mapping:
- One-to-many: A single name can map to multiple IP addresses (used for load balancing and geographic distribution).
- Many-to-one: Multiple names can map to the same IP address (used for web hosting).
- DNS Records: Entries in the DNS database.
- A Record: Maps a hostname to an IP address.
- CNAME Record: Maps one hostname to another hostname (alias).
- MX Record: Used for email services.
- DNS Hierarchy:
- A distributed system with shared responsibility for managing DNS records.
- Root Domain: Top of the hierarchy, contains records for top-level domains (TLDs).
- Top-Level Domains (TLDs): (e.g., .com, .org, .edu).
- Second-Level Domains: Registered under TLDs (e.g., example.com).
- DNS Resolution Process:
ii.If the server has the record in its cache, it returns the IP address.
iii.If not, the server queries other DNS servers, starting at the root, to find the record.
iv.The server caches the record for future queries.
4. Networking in Context of Computing
- The internet is a network of hardware and software enabling communication between devices.
- Data transmission over the internet is based on binary data (0s and 1s).
- Network interfaces (e.g., Wi-Fi, Ethernet) are I/O devices.
- Operating systems use device drivers and software libraries to facilitate network communication for applications.
- Networking devices (routers, switches) are specialized computers.
- Networking extends computing beyond single devices.
- Published on
KembaraXtra -Computer Science -World Wide Web
Core Attributes
Distributed
HTTP (HyperText Transfer Protocol)
ii.Server hello: Server selects the encryption methods. The server provides its public key.
iii.The client encrypts a string of bytes with the server's public key, and sends it to the server.
iv.Server decrypts using its private key. Both compute a shared secret key for symmetric encryption.
v.All further data is encrypted using the shared secret key.
The Searchable Web
Core Attributes
Distributed
- Definition: No central authority controls web content.
- Implications:
- Anyone can host a web server and publish content.
- Organizations/countries can block access.
- Governments can shut down illegal content.
- Key Point: The web is open and not centrally controlled.
- Definition: Every web resource has a unique address (URL).
- URL Components:
- Scheme: Protocol (e.g., HTTP, HTTPS).
- Authority:
- Hostname (e.g., travel.example.com).
- Optional: Username, Port Number.
- Path: Location of resource on server (like a file system path).
- Query: Modifies the resource returned (format varies by site).
- Relative URLs:
- Omit scheme, hostname, or full path.
- Interpreted relative to the current context.
- Practical URL Reading Example:
- Uses HTTP protocol.
- Server: travel.example.com.
- Path: /destinations/carolinas.
- Query: location=beach (shows beach locations).
- Definition: Web resources reference each other via hyperlinks.
- Hyperlinks: One-way references, no permission needed.
- Hypertext: Documents connected by hyperlinks.
HTTP (HyperText Transfer Protocol)
- Purpose: Transferring web resources (reading, creating, updating, deleting).
- Foundation: Based on TCP/IP for reliable data transfer and addressing.
- Model: Request and response.
- Client sends an HTTP request.
- Server replies with an HTTP response.
- GET: Retrieve a resource (no modification).
- PUT: Create/modify a resource at a specific URL.
- POST: Create a new resource as a child of an existing URL.
- DELETE: Remove a resource.
- Usage:
- GET is most common (used for browsing and loading resources).
- Servers often restrict PUT, POST, DELETE.
- Format: 3-digit number.
- Classes:
- 100s: Informational.
- 200s: Success.
- 300s: Redirection.
- 400s: Client error.
- 500s: Server error.
- Examples:
- 200 OK: Success.
- 301 Moved Permanently: Redirect to a new URL.
- 401 Unauthorized: Authentication required.
- 403 Forbidden: Access denied.
- 404 Not Found: Resource not found.
- 500 Internal Server Error: Server-side error.
- Request:
- First line: Method URL HTTP/Version (e.g., GET /documents/hello.txt HTTP/1.1).
- Headers: Additional information.
- Optional message body.
- Response:
- First line: HTTP/Version Status Code Response Phrase (e.g., HTTP/1.1 200 OK).
- Headers.
- Optional message body.
- Purpose: Encrypt data transmitted over the internet.
- Encryption: Encoding data to be unreadable without decryption.
- Cryptographic Key: Secret sequence of bytes used for encryption/decryption.
- Encryption Types:
- Symmetric: Single shared key for both encryption and decryption.
- Asymmetric:
- Public key: Encrypts data.
- Private key: Decrypts data (kept secret).
- Security:
- Prevents interception and modification of data.
- Encrypts the entire HTTP request (URL, headers, body).
- TLS (Transport Layer Security): Protocol used to encrypt HTTP requests (formerly SSL).
- HTTPS Handshake:
ii.Server hello: Server selects the encryption methods. The server provides its public key.
iii.The client encrypts a string of bytes with the server's public key, and sends it to the server.
iv.Server decrypts using its private key. Both compute a shared secret key for symmetric encryption.
v.All further data is encrypted using the shared secret key.
The Searchable Web
- Entry Point: Often accessed through search engines.
- Search Engines: Non-standard, proprietary systems (e.g. Google). """
- Published on
- Published on
- Published on
- Published on
- Published on
- Published on
KembaraXtra-Computer Science- Object-Oriented Programming (OOP)
I. Paradigms in Programming
myAccount.deposit(25) # Increases myAccount's balance by 25
Key Concept: myAccount is an object (instance of BankAccount). deposit() is a method called on that specific object, modifying its balance field.
I. Paradigms in Programming
- Programming languages support different approaches to programming called paradigms.
- Examples:
- Procedural Programming
- Functional Programming
- Object-Oriented Programming (OOP)
- Languages can support multiple paradigms.
- Definition: A programming paradigm where code and data are grouped together into objects.
- Objects: Logical groupings of data and functionality, designed to model real-world concepts.
- Class-Based Approach: Common in OOP languages.
- Class: A blueprint for an object. Defines the structure and behavior of a type of object.
- Object: An instance of a class. A concrete realization of the class blueprint.
- Methods: Functions defined within a class. They define the actions that an object can perform.
- Fields: Variables declared within a class. They store the data associated with an object.
- Instance Variables (Python): Fields that have different values for each object (instance) of the class. Each object has its own unique value for these fields.
- Class Variables (Python): Fields that have the same value across all objects (instances) of the class. These variables are shared by all objects of the class.
- Class: BankAccount (a blueprint)
- Fields:
- balance (instance variable - each account has a unique balance)
- holder's name (instance variable - each account has a unique name)
- Methods:
- withdraw()
- deposit()
- Fields:
- Objects: Specific bank accounts created from the BankAccount class (instances). These are real accounts with specific names and balances.
- Interaction: We can use the withdraw or deposit methods to modify the balance field of specific bank account objects.
myAccount.deposit(25) # Increases myAccount's balance by 25
Key Concept: myAccount is an object (instance of BankAccount). deposit() is a method called on that specific object, modifying its balance field.