Lecture 1 - HTML Flashcards
Characteristics of Circuit-Switched Networks
- Constant Bandwidth: The circuit provides a fixed amount of bandwidth, which remains constant for the duration of the connection.
- Latency: The dedicated nature of the circuit ensures low and predictable latency, as the path does not change during the call.
- Resource Allocation: Resources (such as bandwidth) are allocated for the entire duration of the connection, even if no data is being transmitted (e.g., periods of silence during a phone call).
Circuit Switched Networks - Circuit Establishment
- Dedicated Path: In a circuit-switched network, a dedicated communication path is established between the caller and the receiver for the duration of the call. This path is exclusively reserved, ensuring a consistent and continuous connection.
- End-to-End Connection: Once the circuit is established, the connection remains active and dedicated until the call is terminated.
Circuit - Switched Networks - Manual Switching
- Operators: Telephone calls were initially routed through human operators. When a person wanted to make a call, they would pick up the phone and speak to an operator. The operator would then connect the caller and the receiver by physically plugging a wire into a switchboard to complete the circuit.
- Switchboards: These were large panels with numerous jacks and plugs that operators used to connect calls manually.
Evolution of Circuit Switching
1. Automated Switching:
- Electromechanical Switches: Over time, manual switchboards were replaced with electromechanical switches, which automated the process of establishing circuits without human intervention.
- Digital Switching: Eventually, digital switches further enhanced the efficiency and capacity of circuit-switched networks.
2. Transition to Packet Switching:
Circuit - Switched Networks - Limitations
- Inefficiency: Circuit-switched networks can be inefficient, especially when the connection is not continuously used (e.g., pauses in conversation). The reserved resources cannot be used by other users.
- Scalability: As the number of users increases, the network must accommodate a growing number of dedicated circuits, which can lead to scalability issues.
- Bandwidth Constraints: Limited bandwidth resources can become a bottleneck, especially with a large number of simultaneous connections.
Packet-Switched Networks
- Modern networking has largely moved to packet-switching, where data is broken into packets and routed over shared networks.
- This approach is more efficient and scalable, allowing multiple users to share the same network resources dynamically.
- Does not require a continuous connection.
- 1981 TCP/IP was introduced to unify disparate networks
Web App vs Desktop App - Accessiblity
- Can be accessed from any internet enabled device
- Typically need to be installed on each deviice
Web App vs Desktop App - Cross Platform
- Compatible with different operating systems and browsers
- Often specific to one OS
Web App vs Desktop App - Ease of Updates
- Easier to roll out updates ince only server-side needs updating
- Updates need to be installed locally
Web App vs Desktop App - Storage
- Centralised storage on the server, reducing local storage needs
- Data is usually stored locally on each device
Web App vs Desktop App - Internet Dep.
- Requires an active internet connection
- Can often be used offline
Web App vs Desktop App - Security Concerns
- Risks with transmitting sensitive data over the internet
- Reduces transmission risk, due to locality
Web App vs Desktop App - Data Control
- Concerns over the storage and use of uploaded data
- Users typically have more control over their data
Web App vs Desktop App - Cross-Browser Compatibilty
- Websites may not render identically across all browsers
- Appearance and functionality usually consistent across platforms
Web App vs Desktop App - Installation Restrictions
- Limited ability to install software or access hardware directly
- Full access to system resources and hardware
Web App vs Desktop App - Plugin Interference
- Additional browser plugins may interfere with JS
- Less affected by browser specific issues
Dynamic vs Static Website
- A static website consists of fixed content that remains the same unless manually updated.
- It is simpler to design and develop, offers faster loading times, and is easier and cheaper to maintain.
- Static websites typically use HTML, CSS, and sometimes JavaScript, making them ideal for small websites like portfolios or informational sites.
- A dynamic website features content that can change dynamically based on user interactions or other factors.
- These sites are more complex, requiring backend scripting, databases, and regular maintenance.
- They are highly interactive, offering personalised user experiences, and are scalable to handle large amounts of data and users.
- Dynamic websites often use server-side languages (e.g., PHP, Python), databases (e.g., MySQL), and client-side scripting, making them suitable for complex applications like e-commerce, social networks, and blogs.
Features of Web 2.0
- User-Generated Content: Platforms like blogs, social media, and wikis (e.g., YouTube, Wikipedia).
- Rich User Experiences: Interactive interfaces using AJAX (e.g., Google Maps, Gmail).
- Social Networking: Facilitates user connections (e.g., Facebook, Twitter).
- Collaborative Tools: Enable shared projects (e.g., Google Docs, Trello).
- Tagging: User-driven content organisation (e.g., Flickr, Delicious).
- Web Applications: Browser-based apps with desktop-like functionality.
- APIs and Mashups: Integration of data and functionality from multiple sources (e.g., Google Maps API).
Client-Server Model
Client Machines:
- Types: Desktops, laptops, smartphones, tablets.
- Specifications: Vary widely in processing speed, screen size, available memory, and storage.
Server Machines:
- Functions: Host web applications, store user and program data, perform security authorization tasks.
- Capabilities: Powerful machines designed to handle high traffic and bandwidth.
- Key Feature: Continuously listen for requests from clients and respond with appropriate messages.
TCP/IP
- TCP/IP (Transmission Control Protocol/Internet Protocol) is essential for internet communication.
- Implemented in every operating system, it facilitates fast web development.
- Web developers don’t need to manage details like packet routing, transmission, domain resolution, or checksums.
- This abstraction allows developers to focus on building websites and applications.
Link Layer
- The link layer is the lowest layer, responsible for both the physical transmission of data across media and establishing logical links.
- It handles issues like packet creation, transmission, reception, error detection, collisions, line sharing, and more.
- One term that is sometimes used in the Internet context is that of MAC (media access control) addresses.
Internet Layer
- The Internet layer (sometimes also called the IP Layer) routes packets between communication partners across networks.
- It provides “best effort” communication. It sends out a message to its destination but expects no reply and provides no guarantee the message will arrive intact, or at all.
- The Internet uses the Internet Protocol (IP) addresses, which are numeric codes that uniquely identify destinations on the Internet.
- Every device connected to the Internet has such an IP addresses
Port Adress Translation
- The IPv4 address space was depleted in 2011, but the number of computers connected to the Internet continued to grow.
- Port Address Translation (PAT), allows multiple, unrelated networks to make use of the same IP address
- When you join a wireless network in a coffee shop, home, office or university, it is quite likely you are making use of PAT.
- For future growth, IPv6 will be necessary
Transport Layer
- The transport layer ensures transmissions arrive in order and without error.
- First, the data is broken into packets formatted according to the Transmission Control Protocol (TCP).
- Each data packet has a header that includes a sequence number, so the receiver can put the original message back in order
- Each packet acknowledges its successful arrival back to the sender (ACK).
- In the event of a lost packet (since no ACK arrived for that packet the packet will be retransmitted.
- This means you have a guarantee that messages sent will arrive and will be in order.
- In the event of a lost packet (since no ACK arrived for that packet the packet will be retransmitted.
- This means you have a guarantee that messages sent will arrive and will be in order.
Application Layer
The application layer is where protocols familiar to most web developers operate. These protocols implement process-to-process communication and are essential for various web functionalities.
Key protocols include:
- HTTP (Hypertext Transfer Protocol): Used for web communication.
- SSH (Secure Shell Protocol): Allows remote command-line connections to servers.
- FTP (File Transfer Protocol): Used for transferring files between computers.
- POP/IMAP/SMTP: Email-related protocols for transferring and storing email.
- DNS (Domain Name System): Resolves domain names to IP addresses.
Domain Name System (DNS)
- DNS allows users to access websites using easy-to-remember domain names instead of numeric IP addresses.
- The DNS system maps resolves domain names to IP addresses.
- By separating the domain name of a server from its IP address, a site can move to a different host without changing its name.
Registration Process for Domain
- The registrant searches for a domain via a registrar’s portal.
- The registrar checks the domain’s availability with the relevant TLD registry.
- If available, the registrant pays and provides WHOIS information.
- The registrar sends WHOIS information to the TLD registry operator.
- The TLD registry operator adds the WHOIS information to its list.
- The registry operator updates its name servers with the DNS information for the new domain.
Address Resolution
- A client requests a domain.
- The client computer checks its local DNS cache.
- If not found, it requests the IP address from its primary DNS server.
- If the primary DNS server lacks the record, it queries the Root Name Server.
- The Root Name Server returns the address of the relevant TLD Server.
- The DNS server requests the DNS record from the TLD Server.
- The TLD Server returns the IP addresses of the Authoritative DNS Servers.
- The DNS server requests the IP address from the Authoritative DNS Server.
- The DNS server returns the IP address to the client computer.
- The client computer can then make its request to the domain.
Response Codes
- 2## codes are for successful responses,
- 3## are for redirection-related responses,
- 4## codes are client errors, while
- 5## codes are server errors.
LAMP Stack
- Linux operating system
- Apache web server
- MySQL database
- PHP scripting language
MERN Stack
MongoDB database
Exoress application framewirj
JavaScript React framework
Node.js