Friday, 17 November 2023

G01:Client Server Architecture

 

G01

Client Server Architecture

A central server (host computer) serves as both the source of service requests and the destination for many clients (remote processors) in a client-server architecture or model of a computer network.

Client computers offer an interface through which a computer user can ask the server for services and see the results that the server sends back.

Before responding to client requests, servers wait for them to arrive.

Client computer requests something from the server. Such as visiting a website.

Server computer serves the request. Such as responding to the webpage.

 

Types of Client-Server Architecture

1.       1-Tier Architecture

2.       2-Tier Architecture

3.       3-Tier Architecture

1-Tier Architecture

All application-related components are gathered together and used as a single package to deliver the application in a one-tier client-server architecture. One entity is made up of all the logic associated with the User Interface, Business Logic, Database Logic, and Database.

Although a 1-tier architecture is a dependable source due to its many services, managing it can be challenging.

The main issue is the variance in the data.

Work is frequently repeated.

The presentation layer, business layer, and data layer are among the layers that make up a 1-tier architecture. These layers are integrated together via a special software program. Typically, data stored in this layer is kept on shared drives or local systems.

 

2 Tier Architecture

Two layers comprise the entire application logic in a two-tier client-server architecture.

In this architecture, the database functions primarily as a separate entity.

Databases are designed independently, and the main application contains all of the business, database, and user interface logic needed to interact with the database and process applications. Compared to the 1-tier architecture, this architecture has a better environment.

Since there is no middleman between the client and the server, 2-tier architectures are faster than 1-tier architectures. Confusion among clients is reduced thanks to the two-tier architecture. A well-known illustration of a two-tier architecture is the online reservation system.

 

3 Tier Architecture

A 3-tier system's architecture includes a middleware between the client and the server, in contrast to a 2-tier system's architecture that lacks one.

The middleware receives requests for information from the server on behalf of clients. After that, the request will be forwarded to the server for handling. In the same way, the client will receive a response from the server.

The presentation layer, application layer, and database layer are the three primary layers of a three-tier architecture. Every layer has distinct ends that regulate one another.

The presentation layer is managed by client devices, while the application and database layers are managed by middleware and servers, respectively. The three-tier architecture is more secure because of the third layer's data control functionality, invisible database structures.

 

Cloud Computing

 

Cloud computing is the data storage platforms like Google Drive, Dropbox, OneDrive or Box.

It is the delivery of computing services.

Cloud computing is the Internet-based delivery of various services.

Data storage, servers, databases, networking, and software are a few examples of the tools and applications that fall under this category.

With cloud-based storage, files can be saved to a remote database instead of being stored on a local or proprietary hard drive. An electronic device can access data and the software needed to run it as long as it can connect to the internet.

Many factors make cloud computing a popular choice for individuals and companies, including lower costs, higher productivity, speed and efficiency, performance, and security.

 

Cloud Computing Service model

Unlike a microchip or a cellphone, cloud computing is not a single technological device. Rather, it is a system that is mainly made up of three services: infrastructure-as-a-service (IaaS), software-as-a-service (SaaS), and

PaaS, or platform-as-a-service.

IaaS, often known as serverless computing, offers end users IT infrastructure over the internet.

End users, who are primarily software developers, are served by PaaS for both software and hardware. The user can create, launch, and manage their own apps with PaaS without having to worry about building and maintaining the infrastructure.

SaaS is a type of software licensing that eliminates the need for local download and installation by enabling software access via external servers on a subscription basis.

 

 

 

 

Tuesday, 24 October 2023

E02:Linux Network and Process Management

 What is a Process?

  • A process in Linux is a running program or task. It's an instance of a program that is being executed by the Linux kernel.
  • Each process has its own unique Process ID (PID), which is a numerical identifier that distinguishes it from other processes.

Process Characteristics:

  • Processes have their own set of resources, including memory, CPU time, file descriptors, and more.
  • Each process is isolated from other processes, meaning they can't directly access the memory or resources of another process.

Creation of Processes:

  • Processes are typically created in Linux through the fork() system call. This call creates a new process that is a copy of the calling (parent) process.
  • The exec() system call can be used to replace the program in the current process with a new one. This is commonly used for running different programs within the same process.

Process Hierarchy:

  • Processes in Linux are organized into a hierarchical structure, with a parent-child relationship. Each process, except the initial process (usually PID 1), has a parent process.
  • When a parent process spawns a new child process, the child inherits some attributes from the parent, such as environment variables and open file descriptors.
  • Monitoring ProcessesThe ps command is used to list currently running processes in the terminal, along with their details such as PID, status, and resource usage.
  • The top or htop commands provide a dynamic, real-time view of running processes and system resource usage.
  • You can send signals to processes using commands like kill to terminate or interact with them.

Daemon Processes:

  • Daemon processes are background processes that run without any user interaction, often providing system services. Examples include web servers, database servers, and printing services.

Process States:

  • Processes can be in different states, such as running, sleeping, stopped, or zombie. These states indicate what the process is currently doing.
Process Management

  •  ps Command: 
    • ps lists running processes.
    • ps aux shows detailed process information.
    • ps aux | grep username filters processes for a specific user.
  • cat /proc//status Command:
    • Displays detailed info about a process with a specific PID.
  • top Command:
    • Real-time process monitor. 
    • top -u username shows processes for a specific user. 
    • top -u root focuses on root user processes.
  • gnome-system-monitor: 
    • GUI-based system monitor for a graphical view of processes and system resources.
  • kill Command: 
    • kill  is used to stop a process by its PID. 
    • kill -9  sends a forceful SIGKILL signal to terminate a process.
  • systemctl Command:
    • sudo systemctl status service_name checks the status of a service.
    • sudo systemctl start service_name starts a service.
    • sudo systemctl stop service_name stops a service.

Network commands and configurations in Linux:

  • Network Interface Commands:
    • ifconfig, ip addr, and ip link display network interface information, including names and configurations.
  • Routing Information:
    • ip route shows routing information for the network your device is connected to.
  • Network Configuration File:
    • Network configuration files are found in /etc/netplan/.
    • The default configuration is in YAML format, and it often uses NetworkManager for network management.
    • These commands and locations are useful for managing and configuring network interfaces and connections in Linux.



E01: The Linux Filesystem

 Definition:

  • The file system is designed to manage non-volatile storage data by organizing it into files and directories, which can be accessed and modified by users and applications. 
  • Linux uses different file systems such as ext4, XFS, Btrfs, JFS, and ZFS to manage and store data on storage devices.
  • Linux file system has a tree like structure so AKA "directory tree"
  • It has a root directory that contains other files and directories

Understanding Pathnames in a Hierarchical File System
  • A pathname is a text string made up of one or more names separated by forward slashes (/), and it plays a crucial role in navigating a hierarchical file system. 
  • Pathnames guide users and applications on how to find and access files and directories within the file system tree. 
  • Here are some examples and key points to understand pathnames better:
    • Basic Structure: Pathnames are composed of one or more directory and file names, separated by forward slashes. For example, "/home" and "/etc/passwd" are pathnames.
    • Root Directory: A pathname starting with a forward slash ("/") indicates an absolute path, meaning it starts from the root directory. For instance, "/etc/passwd" starts from the root directory.
    • Relative Paths: Pathnames without a leading slash are considered relative paths. They are interpreted relative to the current working directory. For example, "usr/wc" might refer to a subdirectory "usr" within the current directory.
    • Whitespace Handling: Spaces in pathnames should be avoided, as they can lead to confusion and errors. In your example, "assignment 02 /check" includes spaces, which is not a recommended practice.
    • File and Directory Access: Pathnames guide users to access both files and directories. For example, "/etc" is a directory, and "/etc/passwd" is a file within that directory.
    • Hierarchical Structure: The structure of pathnames reflects the hierarchical nature of the file system, with directories containing files and subdirectories.
    • Common Pathnames: Common directories like "/home," "/etc," and "/var" have specific system-wide meanings and purposes. For instance, "/home" typically stores user home directories, and "/etc" contains system configuration files.
    • Absolute vs. Relative Paths: Absolute paths always start from the root directory and provide an unambiguous location. Relative paths depend on the current working directory and can vary depending on where they are used.
    • Pathname Errors: Care must be taken when specifying pathnames to avoid typos or incorrect paths, as this can lead to difficulties in locating and accessing files and directories.


Everything is a File in Linux: Seven Types of Files
  • In the Linux operating system, the philosophy is that "everything is a file." This means that almost all entities, including hardware devices and system processes, are treated as files. 
  • Even when new additions are made to the file tree, they are categorized into one of seven fundamental file types. 
  • These seven types of files in Linux:
    • Regular Files: 
      • Regular files are the most common type. They store data in a human-readable or binary format. This includes text files, documents, images, and executables. Regular files are represented by an "inode" in the file system.
    • Directories:
      • Directories are special files that contain lists of other files and directories. They provide the structure for organizing and navigating the file system. Directory entries map names to inodes.
    • Character Device Files:
      • Character device files represent devices that are read or written character by character, one byte at a time. These files are often associated with input and output devices, such as keyboards and terminals.
    • Block Device Files: 
      • Block device files are used to access block devices like hard drives and SSDs. They allow data to be read and written in blocks or chunks, typically larger than a single character.
    • Local Domain Sockets: 
      • Local domain sockets are a method of inter-process communication (IPC) on the same system. They allow processes to communicate with each other by sending and receiving data through socket files.
    • Named Pipes (FIFO): 
      • Named pipes, also known as FIFOs (First In, First Out), provide a way for processes to communicate through a temporary file. Data written to a named pipe is read in the order it was written, similar to a queue.
    • Link Files: 
      • Link files can be of two types: hard links and symbolic links (symlinks). Hard links point to the same inode as the original file, essentially creating multiple directory entries for the same data. Symbolic links (symlinks) are references to another file or directory by its path. They act as pointers or shortcuts to the target file or directory.


Tuesday, 17 October 2023

D03: Basic Commands in Linux

  •  The commands are also known as "Programs" since written commands are being executed
Linux Command

1. ls
  • Lists the files and directories in the system
  • Syntax: 
    • ls [/directory/folder/path]
  • If you remove the path, the ls command will show the current working directory’s content. You can modify the command using these options:
    • -R – lists all the files in the subdirectories.
    • -a – shows all files, including hidden ones.
    • -lh – converts sizes to readable formats, such as MB, GB, and TB.
    • ls  - a - command to view hidden files
    • ls -al - gives detailed information of the files. The command provides information in a columnar format

2. Creating and viewing files
  • Concatenate or cat is one of the most used Linux commands. It lists, combines, and writes file content to the standard output. 
  • Syntax:
    • cat filename.txt
  • There are various ways to use the cat command:
    • cat > filen.txt – creates a new file.
    • cat file1.txt file2.txt > file3.txt – merges file1.txt with file2.txt and stores the output in filename3.txt.
    • tac file.txt – displays content in reverse order.
3. Deleting Files
  • Use the rm command to permanently delete files within a directory. 
  • Syntax:
    • rm [filename1] [filename2] [filename3]
  • Adjust the number of files in the command according to your needs. If you encounter an error, ensure you have the write permission in the directory.
  • To modify the command, add the following options:
    • -i – prompts a confirmation before deletion.
    • -f – allows file removal without a confirmation.
    • -r – deletes files and directories recursively.
  • Note* Use the rm command with caution since deletion is irreversible. Avoid using the -r and -f options since they may wipe all your files. Always add the -i option to avoid accidental deletion.
4. Moving files
  • Use the mv command to move or rename files and directories. To move items, enter the file name followed by the destination directory
    • mv filename.txt /home/username/Documents
  • Meanwhile, use the following syntax to rename a file in Linux with the mv command:
    • mv old_filename.txt new_filename.txt
  • mv command needs super user/ root user permission.  Currently, the command is executed as a standard user ,so above error is thrown
  • To overcome the error use command sudo
  • sudo:
    • program allows regular users to run programs with the security privileges of the super user or root user
    • Superuser do or sudo is one of the most basic commands in Linux. It runs your command with administrative or root permissions. Here’s the general syntax:
      • sudo (command)
    • When you run a sudo command, Terminal will request the root password. For example, this snippet runs useradd with the superuser privilege:
      • sudo useradd username
    • You can also add an option, such as:
      • -k – invalidates the timestamp file.
      • -g – executes commands as a specified group name or ID.
      • -h – runs commands on the host.
    • Notes*: Running a command with sudo privileges can modify all aspects of your system. Since misusing it may break your system, run the command with caution and only if you understand its possible repercussions.
5. Renaming Files
  • mv can also be used for renaming the file.  The syntax is
    • mv filename newfilename
6. Directory Manipulations
  • Use the mkdir command to create one or multiple directories and set their permissions. Ensure you are authorized to make a new folder in the parent directory. Here’s the basic syntax:
    • mkdir [option] [directory_name]
  • To create a folder within a directory, use the path as the command parameter. For example, mkdir music/songs will create a songs folder inside music. Here are several common mkdir command options:
    • -p – creates a directory between two existing folders. For example, mkdir -p Music/2023/Songs creates a new 2023 directory.
    • -m – sets the folder permissions. For instance, enter mkdir -m777 directory to create a directory with read, write, and execute permissions for all users.
    • -v – prints a message for each created directory.
  • rmdir- command is used to remove a directory
  • mv -  'mv' (move) command can also be used for renaming directories
  • Syntax of mv command-
    • mv directoryname newdirectoryname
7. Search Command
  • The global regular expression or grep command lets you find a word by searching the content of a file. This Linux command prints all lines containing the matching strings, which is useful for filtering large log files.
  • For example, to display lines containing blue in the notepad.txt file, enter:
    • grep blue notepad.txt
Other important Commands
  • History: 
    • Enter history to list previously executed commands. It lets you reuse the commands without rewriting them. To use it, enter this syntax with sudo privileges:
      • history [option]
  • Clear:
    • command clears all the clutter on the terminal and gives you a clean window to work on
  • pwd:
    • The pwd command prints your current working directory’s path, like /home/directory/path. Here’s the command syntax:
      • pwd [option]
    • It supports two options. The -L or –-logical option prints environment variable content, including symbolic links. Meanwhile, -P or –physical outputs the current directory’s actual path.
  • cd- :
    • Use the cd command to navigate the Linux files and directories. To use it, run this syntax with sudo privileges:
      • cd /directory/folder/path
    • Depending on your current location, it requires either the full path or the directory name. For example, omit /username from /username/directory/folder if you are already within it.
    • Omitting the arguments will take you to the home folder. Here are some navigation shortcuts:
      • cd ~[username] – goes to another user’s home directory.
      • cd .. – moves one directory up.
      • cd- – switches to the previous directory.
  • touch- :
    • The touch command lets you create an empty file in a specific directory path. Here’s the syntax:
      • touch [option] /home/directory/path/file.txt
    • If you omit the path, the command will create the item in the current folder. You can also use touch to generate and modify a timestamp in the Linux command line.
  • su- :
    • The su command lets you run a program in the Linux shell as a different user. It is useful to connect via SSH while the root user is disabled. Here’s the syntax:
      • su [options] [username [argument]]
    • Without any option or argument, this command runs through root and prompts you to use the sudo privileges temporarily. Some options are:
      • -p – keeps the same shell environment, consisting of HOME, SHELL, USER, and LOGNAME.
      • -s – lets you specify another shell environment to run.
      • -l – runs a login script to switch users. It requires you to enter the user’s password.

Thursday, 12 October 2023

D02


 Introduction to LINUX:

Linux is an operating system, similar to Windows, iOS, and Mac OS. It plays a crucial role in managing hardware resources on computers. Notably, Android, a widely used platform, is built on the Linux OS. The operating system acts as an intermediary, enabling communication between software and hardware, making it essential for software functionality.

Most frequent tasks that you perform on PC is creating, moving or deleting Files

To manage your files , you  can either use

a. Terminal (Command Line Interface - CLI)

b. File manager (Graphical User Interface –GUI) 

WHY LEARN COMMAND LINE INTERFACE?

  • Despite the growing preference for GUI-based systems, the Command Line Interface (CLI) remains highly valuable and extensively utilized in scripting and server administration.
  • It offers greater flexibility and a wider range of options compared to GUI. Additionally, powerful features like piping and stdin/stdout are available in CLI but absent in GUI.
  • CLI simplifies certain tasks that might require navigating through multiple screens in GUI, condensing them into single commands.
  • CLI is resource-efficient, loading quickly and consuming minimal RAM, which becomes significant in resource-intensive situations.

Launching the  cli on ubuntu

Two ways to launch the terminal;

  • Go to the Das and type terminal Or 
  • we can just press CTRL + ALT + T

Once CLI is launched, we would find something as guru99@VirtualBox(seeimage) written on it.

Tilde '~' signs shows that the user in working in the home directory. If we change the directory the sign will vanish. Like in given second image.

While working as root user '#' is displayed.

  • root@VirtualBox:~#

 Present Working Directory 

  • The current working directory is the one that you are now viewing.
  • Upon booting up, the computer automatically logs on to the home directory.
  • We must use the command -pwd (print working directory) to find the directory that we are currently working on.

 Changing Directories 

  • 'cd' is the command to use to change the current directory.
  • The command cd~ is another option.

Moving to Root Directory

  • The '/' symbol in Linux indicates the file system root. Much like Windows' 'c:\'.
  • To access the root directory, type 'cd /'. In Windows, we use the backward slash '\', but in UNIX/Linux, we use the forward slash '/'.
  • The gap between cd and / must be remembered; else, an error message will appear.

Moving to Root Directory
  • Navigate through multiple directories at that same time by specifying its complete path.
  • Moving up one directory level:
  • for navigating up one directory level, try 'cd ..'
Here we use the 'cd ..' command, where the directory is moved up from 'Pelden' directory to /home.

Relative and Absolute Paths
  • There are two paths : 
  1. Absolute path and relative path
  2. Path in computing is the address of a file or folder 
For example -
  • Windows: C:\documentsandsetting\user\downloads
  • Linux: /home/user/downloads

Relative Path
  • Relative path comes in handy when browsing another sub-directory within a given directory.

Accessing Hardware Information 
  • Disk Space Usage :  displays the mounted file system disk usage. Also try out 
  • Memory:  display the RAM and Virtual Memory information. You can also use  
  • CPU Details:  or  display the information related to CPU.
  • Peripheral Component Interconnection(PCI) Devices: , displays the PCI devices list and its information.
  • All above information and more can be viewed with the single command  as well.

 

D01: Container Technology

 

Container Technology

What is a container?

A container refers to a typical software package that includes both the code and all the necessary components.

Container  ensures that the application operates consistently and efficiently across various computing environments.

 Containers offer a framework that enables the lightweight and unchanging packaging of application deployments.

 Within a container image, you'll find the code, runtime, system tools, system libraries, and configurations all bundled together.

 Linux Containers

A Linux container consists of isolated processes, powered by distinct images containing all required files for execution.

These containers are highly portable and maintain consistency as they transition through development, testing, and production stages.

Consequently, they offer faster and more efficient alternatives to traditional testing environments in development pipelines.

 WHY Linux?

To develop an application that can seamlessly work across different developer environments, pass quality assurance, and be deployed without extensive reworking, the solution is to use containers.

 Containers allow you to emulate various environments locally, matching specific configurations, libraries, and dependencies while avoiding the overhead of recreating server environments.

 This ensures consistency and portability throughout development and production, reducing the need for extensive troubleshooting and rewriting.

 Containers VS Virtualization 

Aspect

Virtual Machines

Containers

Technology

VMS are based on Virtualization technology

Containers are based  on containerization technology

Operating system

Include a complete operating system

Share the Host operating system

Resource Usage

Resource-intensive, consume more memory and storage

Lightweight, fewer resources being used

isolation

Strong Isolation between applications since each vms has its own OS

Efficient isolation but not as strong as VMS

Benefits of containers

Containers are a pathway to modernizing applications by decoupling them from their execution environments. This allows for faster and more efficient deployment across various environments. Containers package software and dependencies, ensuring consistency and reliability. The top benefits for businesses include increased agility and productivity, consistent application performance, improved scalability and infrastructure optimization, enhanced resilience, and high portability.

Docker is open-source software aimed at streamlining application development through isolated virtualized environments for building, deploying, and testing applications. While Docker is user-friendly, it introduces specific terms like Dockerfiles, images, containers, volumes, etc., which might be initially confusing for new users. Understanding these elements and their roles is crucial for a smoother learning process and efficient usage of Docker over time.

 Terminology

 

●A Dockerfile is a text document that contains instructions for building a Docker image.

Example of dockerfile for web server

Docker Hub: It is a cloud-based registry service for Docker images. It allows users to store, share, and deploy Docker images.

●A Docker container is a runnable instance of a Docker image.

●A Docker image is a lightweight, standalone, executable package of software that includes everything needed to run an application:

●A Docker volume is a directory or file that is shared between a Docker container and the host machine.

 


 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Thursday, 21 September 2023

C02: Network Protocol

 An established set of guidelines that govern how data is transferred between various devices connected to the same network is known as a network protocol

At the top of the OSI model is the application layer. Users interact with each other through this layer. The user receives services from it. Any kind of application or communication process requires the performance of a variety of functions by the application layer.

Application Layer Protocol

1. HTTP

  • HTTPS, which stands for Hypertext Transfer Protocol Secure, is the more secure form of HTTP, which is what HTTP stands for.
  • Data from the World Wide Web is accessed via this protocol. 
  • Pages in a text document are linked together using the well-organized documentation system known as hypertext.
  • The client-server concept is the foundation for HTTP.
  • It establishes connections using TCP.
  • Due to the statelessness of the HTTP protocol, the server does not keep track of the client's prior requests.
  • For connection establishment, HTTP uses port 80.
2. FTP
  • File Transfer Protocol is referred to as FTP. 
  • The protocol is what allows us to transfer files. 
  • Any two machines using it can facilitate this. FTP, however, is both a program and a protocol.
  • FTP encourages file sharing between distant computers through dependable and effective data transfer. For FTP, the data port is 20 and the control port is 21. 
3. DNS
  • Domain Name System is what it stands for. 
  • Therefore, a DNS server must convert each time a domain name is used into the corresponding IP address. 
  • The translation of www.abc.com, for instance, could be 198.105.232.4. 
  • 53 is the port number for DNS. 
4. SMTP
  • It stands for Simple Mail Transfer Protocol.
  • A component of the TCP/IP protocol, it. 
  • SMTP transfers your email on and across networks by use of a procedure known as "store and forward." 
  • To get your communication to the appropriate computer and email inbox, it closely collaborates with a component known as the Mail Transfer Agent (MTA). The SMTP port number is 25, and it. 
5. POP
  • POP stands for Post Office Protocol, and POP3 (Post Office Protocol version 3) is the most recent version. 
  • User agents utilize this straightforward protocol to retrieve messages from mail servers. 
  • POP protocol operates on port 110.
  • It establishes connections using TCP.
  • POP operates in two modes: Keep Mode and Delete Mode.
  • Once the messages have been downloaded to the local system, the Delete mode deletes them from the mail server. 
  • Keep mode allows users to read their emails from the mail server at a later time while without deleting the message from the mail server.
6. Telnet
  • Telnet stands for the TELetype NETwork.
  • In terminal emulation, it is helpful. 
  • It enables Telnet clients to access the Telnet server's resources. 
  • On the internet, it is utilized for file management. Devices like switches are first set up using it. 
  • The telnet command is a command that connects to a remote system or device using the Telnet protocol. Telnet uses port number 23. 
Transport Layer
  • In the TCP/IP model, the transport layer is the second layer; in the OSI model, it is the fourth layer. 
  • In order to deliver messages to a host, it is an end-to-end layer. It is referred to as an end-to-end layer since it offers a point-to-point connection between the source host and destination host rather than a hop-to-hop connection to deliver the services effectively. In the Transport Layer, a segment is the basic unit of data encapsulation. 
  • From the perspective of the sender, the transport layer receives data (messages) from the application layer, splits the data, adds the source and destination ports to the header of each segment, and sends the message to the network layer.
  • The transport layer receives data from the network layer, segments it, reads its header, determines the port number, and then passes the message to the correct port in the application layer.

1.UDP
  • A Transport Layer protocol is called User Datagram Protocol (UDP). 
  • The Internet Protocol family, also known as the UDP/IP suite, includes UDP. It is an unreliable, connectionless protocol, unlike TCP. Therefore, there is no requirement for a link to be established before data transfer. Low-latency and loss-tolerant connections can be established over the network with the aid of UDP. Process to process communication is made possible through UDP. 
  • Process to process communication is made possible through UDP.



Network Layer Protocol

ARP
  • The media access control (MAC) address of a device is one example of a physical address to which an IP address can be mapped using this protocol. 
  • This enables networked devices to communicate with one another.
RARP
  • A physical computer in a local area network (LAN) can utilize the Reverse Address Resolution Protocol (RARP) to ask for its IP address. 
  • This is accomplished by transmitting the device's physical address to a dedicated RARP server on the same local area network (LAN) that is watching for RARP requests.
ICMP
  • Between devices on a network, this protocol is used to send error messages and other types of information. 
  • It is frequently used to provide diagnostic data or troubleshoot network problems.
IGMP
  • It stands for Internet Group Message Protocol
  • Two types of communication:
    • Unicasting - One-to-one communication
    • Multicasting- One-to-many communication
  • It is used by the hosts and router to support multicasting and moreover to identify the hosts in a LAN.
IP
  • It is a set of rules for routing and addressing packets of data
  • The information in IP is attached to each packet which helps router to send packets to the right place.
  • Once the packets arrive at their destination, they are handles differently depending on which transport protocols is used in combination with IP.
  • Types of IP Address:
    • Static IP address  is the one which is manually created as opposed to having been assigned and cannot be change.
    • Dynamic IP address is the one which is assigned by Dynamic Host Configuration Protocol (DHCP) server and it can be changed.
  • Classes of IP address: IP address defines five classes ; A, B, C, D and E each having range of valid IP addresses. The first three IP address can be used as host address and the last two are used for multicast (D) and for experimental purpose (E).
Class A IP address has the first octet starting from 0.
Class B starts from 0+128 = 128. 
Class C starts from 0+128+64=192. 
Class D starts from 0+128+64+32=224. 
Class E starts from 0+128+64+32+16=240.


Class A ends at 127, which can be inferred from the starting end of Class B. 
Similarly Class B ends at 191.
Class C ends at 223.
Class D at 239. 
Class E at 255.

Network Access Layer
  • The TCP/IP protocol hierarchy's Network Access tier is the bottom tier. 
  • The protocols in this layer give the system the tools to send data to the other gadgets on a network to which it is directly connected. It specifies how to send an IP datagram over the network. 
  • In contrast to higher-level protocols, Network Access Layer protocols need to be aware of the specifics of the underlying network (its addressing, packet structure, etc.) to format the data being transferred in a way that complies with network requirements. 
  • All of the operations performed by the Data Link and Physical layers at the bottom of the OSI reference model can be included in the TCP/IP Network Access Layer.
Ethernet
  • The standard method for establishing connections between devices in a wired LAN or WAN is Ethernet. 
  • It allows for the use of a protocol, which is a set of guidelines or common network language, to allow devices to communicate with one another.
Ethernet Types
1. Fast Ethernet: Supported by twisted pair which is quite a high-speed internet and can transmit or receive data about 100Mbs.
2. Gigabit Ethernet:   Data is transferred over this type of network at a rate of roughly 1000 Mbps or 1Gbps. Fast Ethernet is being replaced with Gigabit speed, which is an improvement. The data transfer speed in this kind of network is influenced by each of the four pairs in the twisted pair cable. 
3. 10-Gigabit Ethernet: With a data transfer rate of 10 Gigabit/second, this form of high-speed network is even more modern and efficient. This network area can be expanded up to about 10,000 meters by employing a fiber optic cable.
4. Switch Ethernet: This network type needs a switch or hub. Additionally, a standard network cable is used in this instance rather than a twisted pair wire.

Subnetting
  • Subnetting is a method of dividing a single physical network into logical sub-networks (subnets).
  • Local devices are connected to other networks through the equipment known as a gateway or default gateway. This means that a local device must submit its packets to the gateway before they may be forwarded to their intended recipient outside of the local network when it wishes to communicate information to a device with an IP address on another network. 
Subnet Mask
  • By setting the host bits to all 0s and the network bits to all 1, a 32-bit integer known as a subnet mask is produced. The subnet mask divides the IP address into the network address and host address in this manner.
  • A broadcast address is always associated with the "255" address, while a network address is always associated with the "0" address. Both are set aside for these specific uses, hence neither can be allocated to hosts.
  • Most networks employ the Internet Protocol as the underlying structure to enable device communication, which is made up of the IP address, subnet mask, and gateway or router.
Classful Routing  
  • Subnet masks are not imported by Classful Routing. Subnet mask is also provided in this case following the route modification. 
  • A method of allocating IP addresses called classful addressing divides addresses into five main categories.
  • The above image demonstrates how the subnet mask in classful routing is constant across all devices and does not change. 
Classless Routing
  • In order to slow down the rapid expiration of IP addresses, classless addressing will eventually take the place of classful addressing.
  • Subnet mask is imported by classless routing, which makes use of triggered updates. VLSM (Variable Length Subnet Mask) and CIDR (Classless Inter-Domain Routing) are supported in classless routing. 
  • Hello messages are used for status checking in classless routing. In classless routing, subnet masks may not always be the same for all devices; we can see this in the example image.
Variable Length Subnet Mask (VLSM)
  • In VLSM, the subnet design employs several masks within a single network, i.e., multiple masks are utilized for various subnets within a single class A, class B, or network. 
  • Due of the varying size of subnets, it is utilized to make them more usable. Additionally, it is described as the procedure of subnetting a subnet

G01:Client Server Architecture

  G01 Client Server Architecture A central server (host computer) serves as both the source of service requests and the destination for ...