100% found this document useful (1 vote)
72 views33 pages

Lab Assessment 1 About Computer Science

The document outlines the lab assessments conducted at VIT Bhopal University for the School of Computer Science and Engineering during the Fall Semester of 2023. It includes various lab reports covering topics such as networking hardware, socket programming, connectors, LAN installations, and error-correcting techniques. Each lab report details the objectives, materials used, session activities, and conclusions drawn from the hands-on experiences.

Uploaded by

Harshita Sharma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
72 views33 pages

Lab Assessment 1 About Computer Science

The document outlines the lab assessments conducted at VIT Bhopal University for the School of Computer Science and Engineering during the Fall Semester of 2023. It includes various lab reports covering topics such as networking hardware, socket programming, connectors, LAN installations, and error-correcting techniques. Each lab report details the objectives, materials used, session activities, and conclusions drawn from the hands-on experiences.

Uploaded by

Harshita Sharma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 33

VIT Bhopal University

School of Computer Science and Engineering


Academic Year: 2023-2024

Lab Assessment
Fall Semester 2023

Faculty: Dr. Ramesh Saha

Submitted By:
Name: Gauri Ratnawat
Registration No.: 21BCE10078
GAURI RATNAWAT 21BCE10078

INDEX
S.No. Title Page No. Student Faculty Sign
Sign
1. Demo session of all networking hardware and 3
Functionalities
2. Introduction to Socket Programming, Basic 6
Linux Commands
3. To study various types of Connectors 8
4. LAN installations and their Configuration 11
5. To implement various type of error correcting 13
techniques.
6. To implement various types of DLL protocols. 15
7. Imagine two processes communicate across a 18
network. One process running in your local
system is web browser and the other process
running in the remote system is the web server.
Once a connection is established between the
web browser and web server, the server’s current
date and time has to be displayed in web browser.
Write a suitable program for this scenario
8. A network communication model is created by 20
establishing connection between a client and a
server. The connection is also guaranteed by
transferring client’s IP address to the server and
displays it in the server’s premises. Write a
program for the above situation.

9. Consider two processes client and server 23


communicates across a network. The client sends
a message to the server in the request and the
server responds with the same message. Write a
Socket program for the above-mentioned
scenario.

10. To study various TCL commands. 26


11. The message entered in the client is sent to the 29
server and the server encodes the
message and returns it to the client. Encoding is
done by replacing a character by the
character next to it.(i.e.) a as b, b as c…z as a.

12. Packet Tracer: Observing Packets across the 32


network and Performance Analysis of Routing
protocols

-2-
GAURI RATNAWAT 21BCE10078

1. Demo session of all networking hardware and Functionalities

Introduction:

This lab session aimed to demonstrate various networking hardware components and their
functionalities. The lab aimed to provide participants with a practical understanding of networking
equipment commonly used in computer networks, such as routers, switches, hubs, and access points.
Additionally, the lab explored the basic functionalities and roles of each hardware component within
a network infrastructure.

Materials Used:

1. Routers (Cisco ISR series)

2. Switches (Cisco Catalyst series)

3. Hubs (Ethernet hub)

4. Access Points (Ubiquiti UniFi AP)

5. Ethernet Cables

6. Laptops (for network configuration and testing)

Lab Session:

1. Router Demonstration:

The lab session started with a demonstration of routers. Routers are essential networking devices that
connect different networks together and facilitate data exchange between them. A Cisco ISR series
router was showcased, highlighting its various interfaces for different network connections, such as
LAN, WAN, and console ports. The router's web interface was accessed to configure routing
protocols, IP addresses, and security settings.

-3-
GAURI RATNAWAT 21BCE10078

2. Switch Demonstration:

Next, the focus shifted to switches, which are used to create LANs by connecting multiple devices
within the same network. A Cisco Catalyst series switch was utilized to demonstrate VLAN
configuration. The participants learned how to create and manage virtual LANs, improving network
efficiency and security. A basic overview of STP (Spanning Tree Protocol) was also given to
highlight its role in preventing network loops.

3. Hub Explanation:

Hubs, though largely outdated, were explained to provide participants with an understanding of how
network connectivity used to work in the past. Hubs broadcast data to all devices connected to them,
leading to inefficient use of bandwidth and security concerns due to lack of segmentation.

4. Access Point Setup:

The lab continued with configuring an access point. An Ubiquiti UniFi AP was used to demonstrate
the setup process, including connecting the access point to the network, accessing the management
interface, and configuring wireless SSIDs and security settings. Participants learned about the
importance of proper access point placement for optimal coverage.

-4-
GAURI RATNAWAT 21BCE10078

5. Networking Functionality Testing:

After the hardware demonstrations, participants engaged in practical exercises to test the functionality
of the networking components. They configured IP addresses on laptops, connected them to the
network through switches, accessed the internet through the router, and connected wirelessly through
the access point. This hands-on activity reinforced the concepts learned during the demonstrations.

Conclusion:

The lab session effectively introduced participants to various networking hardware components and
their functionalities. By combining theoretical knowledge with hands-on experience, participants
gained a better understanding of how routers, switches, hubs, and access points contribute to building
functional computer networks. The lab successfully met its objectives of enhancing participants'
practical networking skills and knowledge.

-5-
GAURI RATNAWAT 21BCE10078

Lab Report-2: Introduction to Socket Programming and Basic Linux


Commands

Introduction:

The purpose of this lab session was to introduce participants to the fundamentals of socket
programming and basic Linux commands. The lab aimed to provide participants with a practical
understanding of how networking communication is established using sockets, as well as essential
command-line operations in a Linux environment. Through hands-on exercises, participants gained
insight into socket programming concepts and became familiar with common Linux commands for
file management and system navigation.

Materials Used:

Computers with Linux OS (Virtual machines or physical systems)

Code Editor (e.g., Visual Studio Code)

Terminal Emulator

Lab Session:

1. Socket Programming Introduction:

The lab began with an overview of socket programming. The instructors explained how sockets serve
as endpoints for sending and receiving data over a network, enabling communication between
different processes or devices. Concepts like IP addresses, port numbers, TCP (Transmission Control
Protocol), and UDP (User Datagram Protocol) were introduced.

2. Basic Linux Commands:

Participants were given a brief introduction to the Linux command-line interface (CLI) and its
significance. Basic commands, such as ls (list files), cd (change directory), mkdir (make directory),
rm (remove files/directories), and cp (copy files), were explained with examples. Participants were
encouraged to use the terminal emulator to execute these commands and navigate the file system.

-6-
GAURI RATNAWAT 21BCE10078

3. Socket Programming Hands-On:

Participants engaged in hands-on socket programming exercises. They were provided with a simple
client-server application in Python, which demonstrated the establishment of a connection between a
client and a server using sockets. The instructors guided participants through the code, explaining
socket creation, binding, listening, accepting connections, sending data, and receiving data. This
practical exercise emphasized the concepts learned in the introductory session.

4. Linux Commands Practice:

Following the socket programming session, participants practiced using Linux commands. They
performed tasks like creating directories, navigating through directories, listing files, copying files,
and deleting files. This exercise aimed to reinforce the understanding of basic Linux command-line
operations.

5. Socket Programming Challenge:

As a concluding activity, participants were presented with a socket programming challenge. They
were required to modify the existing client-server application to include additional functionality, such
as handling multiple client connections concurrently. This challenge encouraged participants to apply
their knowledge creatively and gave them a taste of real-world networking scenarios.

Conclusion:

The lab session successfully introduced participants to the foundational concepts of socket
programming and basic Linux commands. Through hands-on activities, participants gained practical
experience in creating socket-based communication between processes and using the Linux
command-line interface for file management and system navigation. The lab achieved its objectives
of enhancing participants' understanding of network communication using sockets and equipping
them with fundamental Linux skills.

-7-
GAURI RATNAWAT 21BCE10078

Lab Report-3: Study of Various Types of Connectors

Introduction:

The objective of this lab session was to study and explore various types of connectors used in networking
and electronics. Connectors play a crucial role in establishing secure and efficient connections between
different devices and components. The lab aimed to familiarize participants with a range of connectors,
including their types, applications, and proper usage.

Materials Used:

Ethernet Connectors (RJ-45)

USB Connectors (Type-A, Type-B, Micro-USB, USB-C)

Audio Connectors (3.5mm Jack, RCA)

Video Connectors (HDMI, VGA)

Power Connectors (AC, DC)

Connector Cables

Devices with Compatible Ports (e.g., laptops, displays)

Lab Session:

1. Ethernet Connectors:

The lab began with an overview of Ethernet connectors, specifically the RJ-45 connector used for
networking. Participants were shown the anatomy of an RJ-45 connector and an Ethernet cable. They
learned about the color-coding scheme for Ethernet cables (T568A and T568B) and practiced crimping
connectors onto Ethernet cables. The participants also learned about the difference between straight-
through and crossover Ethernet cables.

-8-
GAURI RATNAWAT 21BCE10078

2. USB Connectors:

The session then transitioned to USB connectors, which are prevalent in various electronic devices.
Different types of USB connectors were displayed, including Type-A, Type-B, Micro-USB, and USB-C.
The participants were taught about the evolution of USB standards and the various applications of each
connector type. Practical exercises included connecting devices using different USB connectors and
cables.

3. Audio Connectors:

Next, the focus shifted to audio connectors commonly found in headphones, speakers, and audio systems.
The 3.5mm audio jack and RCA connectors were explained. The participants learned about stereo and
mono connections, as well as the color-coding of RCA connectors for left and right audio channels.
Hands-on activities involved connecting audio devices using these connectors.

4. Video Connectors:

The lab then moved on to video connectors used to transmit visual signals. HDMI and VGA connectors
were demonstrated, highlighting their applications in modern displays and projectors. The participants
learned about digital and analog video transmission and practiced connecting laptops or other devices to
displays using HDMI and VGA cables.

-9-
GAURI RATNAWAT 21BCE10078

5. Power Connectors:

Lastly, power connectors were discussed. AC power connectors, such as the NEMA 5-15 and IEC C13,
were explained along with their common usage in electrical devices. DC power connectors, including
barrel connectors, were introduced, and participants learned how to identify polarity and voltage
specifications.

Conclusion:

The lab session successfully provided participants with a comprehensive understanding of various
connector types used in networking and electronics. By combining theoretical explanations with hands-on
activities, participants gained practical experience in connecting devices using different connectors. The
lab effectively met its goals of enhancing participants' knowledge of connectors and their applications.

- 10 -
GAURI RATNAWAT 21BCE10078

Lab Report-4: LAN Installations and Configuration

Introduction:

The objective of this lab session was to provide participants with hands-on experience in setting up
and configuring Local Area Networks (LANs). LANs are essential for connecting devices within a
limited geographical area, such as an office or a home. This lab aimed to guide participants through
the process of physically installing network hardware components and configuring them to establish a
functional LAN environment.

Materials Used:

Switches (Cisco Catalyst series)

Ethernet Cables (Cat 5e/6)

Patch Panels

RJ45 Connectors and Crimping Tools

Laptops/Desktops (for network configuration and testing)

Cable Tester

IP Addressing and Subnetting Cheat Sheets

Lab Session:

1. Physical Installation:

The lab session began with a demonstration of the physical installation of networking hardware.
Participants learned how to properly mount switches in racks and connect them using Ethernet cables.
They also practiced cable termination by crimping RJ45 connectors onto Ethernet cables and
connecting them to patch panels. The importance of cable management to maintain organization and
prevent interference was emphasized.

2. Network Configuration:

Participants were introduced to the basics of IP addressing and subnetting. They learned about
different IP address classes and how to calculate subnet masks for efficient network segmentation.
Using the acquired knowledge, participants assigned IP addresses to devices in their LAN,
considering the need for hosts, subnets, and possible future expansion.

- 11 -
GAURI RATNAWAT 21BCE10078

3. VLAN Configuration:

The lab continued with the configuration of Virtual LANs (VLANs) on the switches. Participants
learned how to create and assign VLANs to specific switch ports, thereby segmenting the network
logically. VLAN configurations were tested to ensure devices within the same VLAN could
communicate while those in different VLANs remained isolated.

4. Network Testing and Troubleshooting:

After configuring the network, participants conducted thorough testing to ensure connectivity and
proper configuration. They used tools like the ping command to verify communication between
devices within the same VLAN and across different VLANs. A cable tester was employed to identify
and rectify any physical connectivity issues.

5. Documentation:

A crucial aspect of network administration is proper documentation. Participants were guided on how
to create network diagrams, detailing the physical and logical layout of the LAN. This documentation
aids in future troubleshooting, expansions, and maintenance.

Conclusion:

The lab session successfully introduced participants to the process of setting up and configuring
LANs. Through a combination of physical installation, IP addressing, VLAN configuration, and
network testing, participants gained practical experience in creating functional LAN environments.
The hands-on nature of the lab enabled participants to reinforce theoretical concepts and develop
critical network administration skills.

- 12 -
GAURI RATNAWAT 21BCE10078

Lab Report-5: Implementation of Error Correcting Techniques

Introduction:

The purpose of this lab session was to explore and implement various error-correcting techniques
used in digital communication systems. Error correction is essential for reliable data transmission
over noisy channels. In this lab, participants were introduced to common error-correcting codes,
including Hamming codes, Reed-Solomon codes, and convolutional codes. The lab aimed to provide
participants with hands-on experience in encoding and decoding data using these techniques.

Materials Used:

Computers with programming environment (Python)

Error-correcting code libraries (such as Numpy or custom implementations)

Simulation scenarios with artificially introduced errors

Projector for group discussion and code walkthroughs

Lab Session:

1. Introduction to Error Correcting Techniques:

The lab began with an overview of the importance of error correction in digital communication.
Participants were introduced to the concept of error-correcting codes, their applications, and their role
in ensuring data integrity and reliability.

2. Hamming Code Implementation:

Participants were guided through the implementation of Hamming codes. They learned how to
encode a message using Hamming codes and how to decode it at the receiving end. Participants used
Python programming to simulate Hamming code encoding and decoding processes, and they explored
the error-detection and error-correction capabilities of Hamming codes.

3. Reed-Solomon Code Implementation:

The lab continued with the implementation of Reed-Solomon codes. Participants learned about the
mathematical principles behind Reed-Solomon codes and their ability to correct multiple errors in a
data stream. They implemented encoding and decoding functions for Reed-Solomon codes in Python
and tested their performance against artificially introduced errors.

- 13 -
GAURI RATNAWAT 21BCE10078

4. Convolutional Code Implementation:

Next, participants delved into convolutional codes, which are commonly used in applications with
continuous data streams. They learned how convolutional codes employ shift registers and modulo-2
arithmetic for encoding and decoding. Participants implemented a basic convolutional encoder and
decoder using Python, gaining insights into the trade-off between coding rate and error-correction
capability.

5. Error Correction Performance Evaluation:

After implementing the different error-correcting techniques, participants conducted practical


experiments. They simulated scenarios with different levels of noise and errors and observed how
each error-correcting code performed. Discussions were held on the advantages, limitations, and
optimal use cases for each technique.

Conclusion:

The lab session successfully provided participants with a comprehensive understanding of various
error-correcting techniques used in digital communication. Through hands-on implementation and
experimentation, participants gained insights into the strengths and weaknesses of different codes.
The practical exercises enhanced their ability to choose appropriate error correction techniques based
on communication channel characteristics and requirements.

- 14 -
GAURI RATNAWAT 21BCE10078

Lab Report-6: Implementation of Various Data Link Layer (DLL)


Protocols

Introduction:

The primary objective of this lab session was to implement and understand various Data Link Layer
(DLL) protocols commonly used in computer networks. The lab aimed to provide participants with
hands-on experience in configuring and testing different DLL protocols, including Stop-and-Wait,
Sliding Window, and HDLC (High-Level Data Link Control). Through practical exercises,
participants gained insight into the operation, advantages, and limitations of these protocols.

Materials Used:

Computers (laptops or desktops)

Network Simulator Software (Packet Tracer, GNS3, etc.)

Ethernet Cables (for physical connections)

Lab Manual

Lab Session:

1. Stop-and-Wait Protocol:

The lab session began with the implementation of the Stop-and-Wait protocol. Participants were
divided into pairs, and each pair configured their computers as sender and receiver. Using a network
simulator, participants established a simulated network and configured the sender to transmit data
frames to the receiver. The Stop-and-Wait protocol's operation, including the acknowledgment
process and data retransmission, was demonstrated through step-by-step simulations.

- 15 -
GAURI RATNAWAT 21BCE10078

2. Sliding Window Protocol:

Moving on to more efficient protocols, participants were introduced to the Sliding Window protocol.
Using the same network simulator, participants configured the sender and receiver with a sliding
window mechanism. They observed how multiple frames could be sent before waiting for
acknowledgments, leading to improved data transmission efficiency. Participants also experimented
with different window sizes and observed the impact on throughput and latency.

3. HDLC (High-Level Data Link Control):

In the final part of the lab, participants explored the HDLC protocol, a widely used synchronous DLL
protocol. The instructor explained the basic structure of HDLC frames, including flags, control fields,
information fields, and error-checking mechanisms. Participants configured the sender and receiver to
exchange HDLC frames and observed how the protocol handles data encapsulation, framing, and
error detection.

- 16 -
GAURI RATNAWAT 21BCE10078

4. Performance Evaluation and Comparison:

After implementing each protocol, participants conducted performance evaluations and comparisons.
They measured factors like throughput, efficiency, and latency for each protocol. This analysis
allowed participants to understand the trade-offs between different protocols and their suitability for
various network conditions.

Conclusion:

The lab successfully provided participants with hands-on experience in implementing and
understanding various DLL protocols, including Stop-and-Wait, Sliding Window, and HDLC.
Participants gained practical insights into the advantages and limitations of each protocol and learned
how to make informed decisions when selecting a protocol for specific network scenarios. The lab's
interactive nature enhanced participants' comprehension of complex networking concepts.

- 17 -
GAURI RATNAWAT 21BCE10078

Lab Report-7: Communication between Local Web Browser and Remote


Web Server

Introduction:

The objective of this lab session was to demonstrate how two processes, a web browser running on a
local system and a web server running on a remote system, can communicate over a network.
Specifically, the lab aimed to establish a connection between the local web browser process and the
remote web server process, and then retrieve and display the server's current date and time in the web
browser.

Materials Used:

Computers with Python installed

Internet connection

Lab Session:

1. Code Explanation:

The lab session started with an explanation of the Python program used to achieve the communication
between the local web browser and the remote web server. The program utilized the socket library to
create a client socket and establish a connection to the remote server. The client sent a simple HTTP-
like request to the server, which responded with its current date and time.

2. Remote Server Setup:

The lab proceeded with a brief overview of how a remote web server would be set up to handle the
client's request. The server was simulated for the purpose of the lab using the provided code snippet.
The server responded to the client's request with the current date and time, which was then displayed
in the client (local) system.

3. Program Execution:

Participants executed the Python program on their local systems. The program established a
connection with the remote server, sent a request, received the server's response, and displayed the
received date and time on the console.

- 18 -
GAURI RATNAWAT 21BCE10078

4. Program Code:

Display Remote Server's Date and Time in Web Browser, program was coded in python language

5. Discussion and Q&A:

After the program execution, participants engaged in a discussion about networking concepts, client-
server communication, and the HTTP request-response model. The instructors answered questions
and clarified any doubts participants had regarding the code and networking concepts.

Conclusion:

The lab session successfully demonstrated how processes running on different systems can
communicate over a network. Participants gained practical experience in establishing socket
connections, sending requests, receiving responses, and displaying remote data in a local
environment. The lab effectively reinforced the fundamentals of networking and client-server
interaction.

- 19 -
GAURI RATNAWAT 21BCE10078

Lab Report-8: A network communication model is created by establishing


connection between a client and a server. The connection is also
guaranteed by transferring client’s IP address to the server and displays it
in the server’s premises. Write a program for the above situation.
Introduction:

The purpose of this lab session was to demonstrate a simple client-server network communication
model. The lab aimed to provide participants with hands-on experience in creating a basic connection
between a client and a server, transferring the client's IP address to the server, and displaying it on the
server's premises.

Materials Used:

Laptops/Desktops (for running client and server programs)

Python Programming Environment

Lab Session:

1. Client Program:

The lab session began with an introduction to the client program. Participants were provided with the
Python code for the client program, which used the socket library to establish a connection to the
server. The program retrieved the client's IP address using the
socket.gethostbyname(socket.gethostname()) method and sent it to the server using the send()
function.

Program: Client-Server Network Communication

Below is a simple Python program that demonstrates a basic client-server network communication
model. The program establishes a connection between a client and a server, transfers the client's IP
address to the server, and displays it on the server's premises.

Client Program (client.py):

- 20 -
GAURI RATNAWAT 21BCE10078

2. Server Program:

Next, participants were introduced to the server program. They were shown the Python code for the
server program, which utilized the socket library to bind the server's IP address and port. The program
then listened for incoming connections using the listen() function. Upon accepting a client
connection, the server received the client's IP address using the recv() function and displayed it on the
server's console.

Server Program (server.py):

- 21 -
GAURI RATNAWAT 21BCE10078

3. Running the Demo:

Participants were instructed to run the client program on one machine and the server program on
another. The client program established a connection to the server, transferred the client's IP address,
and the server displayed the received IP address on its console.

Conclusion:

The lab session successfully demonstrated a basic client-server network communication model.
Participants gained practical experience in establishing connections, sending data between a client
and a server, and displaying received information. This lab provided a foundational understanding of
socket programming and networking concepts.

- 22 -
GAURI RATNAWAT 21BCE10078

Lab Report-9: Consider two processes client and server communicates across
a network. The client sends a message to the server in the request and the server
responds with the same message. Write a Socket program for the above-
mentioned scenario.

Introduction:

The purpose of this lab session was to demonstrate client-server communication using socket programming.
The lab aimed to provide participants with hands-on experience in creating a basic network interaction
where a client sends a message to a server, and the server responds with the same message. The lab helped
participants understand the fundamentals of socket programming and network communication.

Materials Used:

Computers with Python installed


Text editor or integrated development environment (IDE)
Lab Session:

1. Client Socket Program:

Participants were introduced to the client socket program, which established a connection to the server
using its IP address and port. The program then sent a predefined message to the server and awaited a
response. The response received from the server was printed to the console. This step familiarized
participants with the basics of creating a client socket and sending data over a network.

Client Socket Program (client.py):

- 23 -
GAURI RATNAWAT 21BCE10078

2. Server Socket Program:

The server socket program was demonstrated next. It created a socket object, bound it to a specific IP
address and port, and listened for incoming connections. Once a client connected, the server received the
data sent by the client, printed it to the console, and sent the same data back to the client. This part of the
lab illustrated the process of setting up a server socket and handling client connections.

Server Socket Program (server.py):

- 24 -
GAURI RATNAWAT 21BCE10078

3. Running the Programs:

Participants were instructed to run the server program first and then the client program. They observed how
the client established a connection to the server, sent a message, received a response, and then closed the
connection. This hands-on experience reinforced the concepts of socket programming and network
communication.

Conclusion:

The lab session successfully introduced participants to the basics of client-server communication using
socket programming. Participants gained practical experience in creating client and server socket programs,
establishing connections, sending data, and receiving responses. This lab helped participants understand
the underlying mechanisms of network communication and laid the foundation for more complex
networking concepts.

- 25 -
GAURI RATNAWAT 21BCE10078

Lab Report-10: Study of Various TCL Commands

Introduction:

The objective of this lab session was to familiarize participants with various TCL (Tool Command
Language) commands commonly used for scripting and automation tasks. TCL is a powerful
scripting language that finds applications in various domains, including networking, software
development, and testing. The lab aimed to provide participants with hands-on experience in using
TCL commands for different purposes, enhancing their scripting skills and understanding.

Materials Used:

Computers with TCL interpreter installed

Text Editors (Notepad++, Visual Studio Code, etc.)

Lab Session:

1. Introduction to TCL:

The lab session commenced with an introduction to TCL. Participants were briefed about the history,
syntax, and general characteristics of the language. They learned that TCL is often used for
controlling and automating applications, as well as configuring networking devices and testing
software.

2. Basic TCL Commands:

Participants were guided through a set of basic TCL commands to understand how TCL operates.
They learned about variables, data types, and basic arithmetic operations. Simple print statements
were used to demonstrate how to display output in TCL.

- 26 -
GAURI RATNAWAT 21BCE10078

3. Control Structures:

In this section, participants delved into control structures such as if-else statements and loops (while
and for loops). They practiced using these structures to make decisions and repeat certain actions
based on conditions.

4. TCL Procedures:

Participants were introduced to the concept of procedures in TCL, which are analogous to functions
in other programming languages. They learned how to define and call procedures, passing arguments
and returning values.

5. File Handling:

File handling is a crucial aspect of scripting. Participants learned how to read from and write to files
using TCL commands. They practiced opening, reading, writing, and closing files, demonstrating
practical file manipulation tasks.

- 27 -
GAURI RATNAWAT 21BCE10078

6. Regular Expressions:

Regular expressions are powerful tools for pattern matching and manipulation. Participants were
introduced to TCL's regular expression capabilities. They practiced using regular expressions for
tasks like searching and replacing text patterns within strings.

7. Networking Automation (Optional):

For participants interested in networking, an optional section covered TCL's application in


automating networking tasks. Participants learned how to use TCL to connect to network devices
(routers, switches) via SSH, send commands, and retrieve output.

8. Scripting Exercises:

To reinforce their learning, participants were given scripting exercises. They had to create TCL
scripts to solve specific tasks, combining the commands they had learned. This hands-on approach
allowed participants to apply their knowledge practically.

Conclusion:

The lab session provided participants with a comprehensive understanding of various TCL commands
and their applications. By offering hands-on experience with basic scripting tasks, control structures,
procedures, file handling, and regular expressions, participants gained confidence in their ability to
use TCL for automation and scripting purposes. Those interested in networking also learned how
TCL can be utilized to automate network configuration tasks.

- 28 -
GAURI RATNAWAT 21BCE10078

Lab Report-11: The message entered in the client is sent to the server and the
server encodes the message and returns it to the client. Encoding is done by
replacing a character by the character next to it.(i.e.) a as b, b as c…z as a.

Introduction:

The objective of this lab session was to implement a simple client-server interaction where the client
sends a message to the server, and the server encodes the message by replacing each character with the
character next to it in the alphabet (with z wrapping to a), and then returns the encoded message to the
client. This lab aimed to provide participants with hands-on experience in network communication and
basic string manipulation.

Materials Used:

Computers (for both client and server)

Programming environment (Python)

Lab Session:

1. Client-Server Setup:

The lab session began with a brief explanation of the concept of the client-server communication.
Participants were instructed on how to set up a basic client-server architecture using Python's built-in
socket library. The client was programmed to send a message to the server, and the server was
programmed to receive the message.

- 29 -
GAURI RATNAWAT 21BCE10078

2. Message Encoding Logic:

Participants were introduced to the concept of message encoding using a simple substitution cipher. The
encoding logic involved replacing each character in the message with the character next to it in the
alphabet. If the character was 'z', it would wrap around to 'a'. For example, 'a' would become 'b', 'b' would
become 'c', and 'z' would become 'a'.

3. Encoding Implementation:

In the coding session, participants were guided through the process of implementing the encoding logic
on the server-side. The server received the message from the client, applied the encoding logic, and
returned the encoded message to the client. This step involved iterating through each character in the
received message and applying the encoding transformation.

- 30 -
GAURI RATNAWAT 21BCE10078

4. Client Interaction and Decoding:

Next, participants implemented the client-side code to interact with the server. The client sent a message
to the server, received the encoded message, and then decoded it by reversing the encoding process. Each
character in the encoded message was replaced by the previous character in the alphabet, with 'a'
wrapping around to 'z'.

5. Testing and Experimentation:

Participants conducted several tests to ensure the proper functioning of the client-server interaction,
message encoding, and decoding. They experimented with different messages, including sentences with
spaces, uppercase and lowercase letters, and special characters.

Conclusion:

The lab successfully demonstrated the implementation of a simple client-server interaction where
messages were encoded and decoded using a basic substitution cipher. Participants gained practical
experience in network communication and string manipulation, enhancing their understanding of these
fundamental concepts.

- 31 -
GAURI RATNAWAT 21BCE10078

Lab Report-12: Observing Packets across the Network and Performance


Analysis of Routing Protocols

Introduction:

The primary objective of this lab session was to provide participants with hands-on experience in
observing network packets as they traverse through a network and to conduct a performance analysis of
different routing protocols. The lab aimed to enhance participants' understanding of network traffic
monitoring and routing protocol behaviors using Cisco Packet Tracer simulation tool.

Materials Used:

Cisco Packet Tracer software

Virtual network topology with routers, switches, and PCs

Various routing protocol configurations (RIP, OSPF, EIGRP)

Performance analysis tools (Packet capture and bandwidth monitoring tools within Packet Tracer)

Lab Session:

1. Packet Observing and Analysis:

The lab session began with a discussion on the importance of monitoring network traffic. Participants
were introduced to Wireshark and its role in capturing and analyzing network packets. A virtual network
topology was set up in Cisco Packet Tracer, consisting of routers, switches, and PCs. Participants
configured Wireshark on specific devices to capture packets. Various network activities were initiated,
such as ping requests, HTTP requests, and file transfers, to observe packet flows and their contents.
Participants were guided through the process of analyzing captured packets to understand protocol
headers and data contents.

2. Routing Protocol Performance Analysis:

The lab then shifted its focus to routing protocols. Different routing protocols (RIP, OSPF, EIGRP) were
configured on separate network segments within the virtual topology. Participants observed and compared
the behavior of these routing protocols in terms of convergence time, routing table updates, and
bandwidth consumption. To analyze performance, participants utilized Packet Tracer's built-in tools to
monitor bandwidth usage and routing updates in real-time.

- 32 -
GAURI RATNAWAT 21BCE10078

3. Scenario-based Testing:

Participants were presented with various scenarios, such as link failures or network congestion. They
were tasked with analyzing how different routing protocols responded to these scenarios. This hands-on
approach allowed participants to witness the adaptive nature of routing protocols and their ability to
reroute traffic in case of network changes.

4. Performance Metrics Calculation:

Participants collected data on factors like convergence time, routing table size, and bandwidth utilization
for each routing protocol. They were then guided through calculating performance metrics based on the
collected data. Discussions were held on the trade-offs and advantages of each routing protocol in
different network scenarios.

Conclusion:

The lab session successfully achieved its objectives by providing participants with practical experience in
monitoring network packets and conducting a performance analysis of routing protocols using Cisco
Packet Tracer. The hands-on exercises helped participants develop a deeper understanding of network
traffic behavior, routing protocol operations, and the impact of various factors on network performance.

- 33 -

You might also like