CN Lab Manual - 18ECL76

Download as pdf or txt
Download as pdf or txt
You are on page 1of 84

COMPUTER NETWORKS LABORATORY 2023-2024

DON BOSCO INSTITUTE OF TECHNOLOGY


Kumbalagodu, Mysore Road, Bangalore - 560 074

DEPARTMENT OF
ELECTRONICS & COMMUNICATION ENGINEERING
(ACADEMIC YEAR 2023-2024)

LABORATORY MANUAL

COMPUTER NETWORKS LAB

SUB CODE: 18ECL76 SEMESTER: VII


[As per Choice Based Credit System (CBCS) scheme]

Dept of ECE, DBIT Page 1


COMPUTER NETWORKS LABORATORY 2023-2024

WAYANAMAC EDUCATION TRUST

VISION

Don Bosco group of institutions shines brighter each day with a vision to achieve a world class
status in providing exceptionally excellent higher education in the field of Management,
Technology and Applied Sciences entrenched with Human Values.

MISSION

With a mission to provide refined high quality technical education and training to aspiring
students, we at Don Bosco, strive to impart exclusively valuable, academic knowledge relating to
an array of professional fields undertaken.

Our persistent efforts will evidently create and develop future technocrats and proficient business
leaders who will confidently attend to improve the quality of life for the current generation.

DON BOSCO INSTITUTE OF TECHNOLOGY

VISION

To become a world-class center in providing globally relevant higher education in the field of
management, technology and applied science embedded with human values.

MISSION

To foster an intellectual and ethical environment in which both skill and spirit will thrive to
impart high quality education, training, and service with an international outlook. To create and
develop technocrats and business leaders who will strive to improve the quality of life.

Dept of ECE, DBIT Page 2


COMPUTER NETWORKS LABORATORY 2023-2024

DEPARTMENT OF ELECTRONICS & COMMUNICATION

VISION
To impart value based technical education and train students through continuous improvement
in effectiveness and efficiency of – teaching, learning and associated processes and to collaborate
with industry, foreign universities and institutions for academic exchange program for faculty
and students.

MISSION
To provide an excellent inter-active learning opportunity for all students and staff to develop
knowledge and skills essential in enlightening the individual’s ability to think vitally and utilize
all concepts of Electronics & Communication Engineering in detail to meet the technological
challenges of tomorrow and to refine knowledge and understanding through research and
creative activities.

Dept of ECE, DBIT Page 3


COMPUTER NETWORKS LABORATORY 2023-2024

PROGRAMME EDUCATIONAL OBJECTIVES:

 Program Educational Objective 1: To prepare students for graduate and postgraduate


programs and to succeed career in Electronics & Communication Engineering related fields.

 Program Educational Objective 2: To provide students with a foundation in fundamental


engineering principles together with in-depth disciplinary knowledge or solid foundation in
mathematical, scientific and engineering fundamentals required to succeed in technical
profession

 Program Educational Objective 3: To train students with a broad-based scientific and


engineering knowledge so as to comprehend, analyze, design, and create innovative products
and solutions for the real-life problems.

 Program Educational Objective 4: To inculcate in students professional and ethical attitude


with a strong character and to uphold the spiritual and cultural values, effective
communication skills, teamwork, multidisciplinary approach, and ability to relate
engineering issues to broader social context.

 Program Educational Objective 5: To provide student with an academic awareness of


advanced technological growth leading to life-long learning needed for - a successful
professional career, excellence and leadership

Dept of ECE, DBIT Page 4


COMPUTER NETWORKS LABORATORY 2023-2024

PROGRAMME OUTCOMES:

a) An ability to apply knowledge of mathematics, science, and engineering

b) An ability to design and conduct experiments, as well as to analyze and interpret


independently.

c) An ability to design a system, component, or process to meet desired needs within


realistic constraints such as economic, environmental, social, political, ethical, health and
safety, manufacturability, and sustainability

d) An ability to function with multidisciplinary teams

e) An ability to identify, formulate, and solve (complex) engineering problems

f) An understanding of professional and ethical responsibility

g) An ability to communicate effectively

h) The broad education necessary to understand the impact of engineering solutions in a


global, economic, environmental, and societal context

i) Recognition of the need for, and an ability to engage in life-long learning

j) Knowledge of contemporary issues,

k) An ability to use the techniques, skills, and modern engineering tools necessary for
engineering practice and

l) An ability to understand and apply knowledge of advanced mathematics, including


probability and statistics, differential and integral calculus, linear algebra and complex
variables.

Dept of ECE, DBIT Page 5


COMPUTER NETWORKS LABORATORY 2023-2024

COMPUTER NETWORKS LAB


B.E., VII Semester, Electronics & Communication Engineering [As per Choice Based
Credit System (CBCS) scheme]

Subject Code 18ECL76 CIE Marks 40


Number of Lecture 01Hr Tutorial SEE Marks 60
Hours/Week (Instructions) + 02
Hours Laboratory = 02
RBT Levels L1, L2, L3 Exam Hours 03
CREDITS – 02
Course objectives: This course will enable students to:
 Choose suitable tools to model a network and understand the protocols at various OSI
reference levels.
 Design a suitable network and simulate using a Network simulator tool.
 Simulate the networking concepts and protocols using C/C++ programming.
 Model the networks for different configurations and analyze the results.

Laboratory Experiments
PART-A: Simulation experiments using NS2/ NS3/ OPNET/ NCTUNS/ NetSim/ QualNet
or any other equivalent tooL
[1] Implement a point to point network with four nodes and duplex links between them.
Analyze the network performance by setting the queue size and varying the bandwidth.
[2] Implement a four node point to point network with links n0-n2, n1-n2 and n2-n3. Apply
TCP agent between n0-n3 and UDP between n1-n3. Apply relevant applications over
TCP and UDP agents changing the parameter and determine the number of packets sent
by TCP/UDP.
[3] Implement Ethernet LAN using n (6-10) nodes. Compare the throughput by changing
the error rate and data rate.
[4] Implement Ethernet LAN using n nodes and assign multiple traffic to the nodes and
obtain congestion window for different sources/ destinations.
[5] Implement ESS with transmission nodes in Wireless LAN and obtain the performance
parameters.
[6] Implementation of Link state routing algorithm.
PART-B: Implement the following in C/C++
[1] Write a program for a HLDC frame to perform the following. i) Bit stuffing ii)
Character stuffing.
[2] Write a program for distance vector algorithm to find suitable path for transmission.
[3] Implement Dijkstra’s algorithm to compute the shortest routing path.

Dept of ECE, DBIT Page 6


COMPUTER NETWORKS LABORATORY 2023-2024

[4] For the given data, use CRC-CCITT polynomial to obtain CRC code. Verify the
program for the cases a) Without error b) With error
[5] Implementation of Stop and Wait Protocol and Sliding Window Protocol
[6] Write a program for congestion control using leaky bucket algorithm.
Course outcomes: On the completion of this laboratory course, the students will be able to:
1. Choose suitable tools to model a network.
2. Use the network simulator for learning and practice of networking algorithms.
3. Illustrate the operations of network protocols and algorithms using C programming.
4. Simulate the network with different configurations to measure the performance
parameters.
5. Implement the data link and routing protocols using C programming.
Conduct of Practical Examination:

 All laboratory experiments are to be included for practical examination.


 For examination one question from software and one question from hardware or only
one hardware experiments based on the complexity to be set.
 Students are allowed to pick one experiment from the lot.
 Strictly follow the instructions as printed on the cover page of answer script for breakup
of marks.
 Change of experiment is allowed only once and Marks allotted to the procedure part to
be made zero.

Dept of ECE, DBIT Page 7


COMPUTER NETWORKS LABORATORY 2023-2024

COMPUTER NETWORKS LAB (18ECL76)

CYCLE-1

1. Implement a point to pint network with four nodes and duplex links between
them. Analyze the network performance by setting the queue size and varying
the bandwidth.
2. Implement a four node point to point network with links n0-n2, n1-n2 and n2-
n3. Apply TCP agent between n0-n3 and UDP between n1-n3. Apply relevant
applications over TCP and UDP agents changing the parameter and determine
the number of packets sent by TCP/UDP.
3. Implement Ethernet LAN using n (6-10) nodes. Compare the throughput by
changing the error rate and data rate.
4. Implement Ethernet LAN using n nodes and assign multiple traffic to the nodes
and obtain congestion window for different sources/ destinations.
CYCLE-2
5. Implement ESS with transmission nodes in Wireless LAN and obtain the
performance parameters.

6. Implementation of Link state routing algorithm.


7. Write a program for a HLDC frame to perform the following.
i) Bit stuffing
ii) Character stuffing.
8. Write a program for distance vector algorithm to find suitable path for
transmission.
CYCLE-3
9. Implement Dijkstra’s algorithm to compute the shortest routing path.
10. For the given data, use CRC-CCITT polynomial to obtain CRC code. Verify the
program for the cases a) Without error b) With error
11.Implementation of Stop and Wait Protocol and Sliding Window Protocol
12. Write a program for congestion control using leaky bucket algorithm.
ADDON EXPERIMENT
13. Implementation of a “Queue Model” Simulation.
14. Implementation of Communication between two nodes using TCP/IP Model.
15.classful addressing identification

Dept of ECE, DBIT Page 8


COMPUTER NETWORKS LABORATORY 2023-2024

CONTENT LIST

SL. PAGE
EXPERIMENT NAME
NO. NO.
Implement a point to pint network with four nodes and duplex links
1. between them. Analyze the network performance by setting the queue 11
size and varying the bandwidth
Implement a four node point to point network with links n0-n2, n1-n2
2. and n2-n3. Apply TCP agent between n0-n3 and UDP between n1-n3. 17
Apply relevant applications over TCP and UDP agents changing the
parameter and determine the number of packets sent by TCP/UDP.
Implement Ethernet LAN using n (6-10) nodes. Compare the throughput
3. 23
by changing the error rate and data rate.

Implement Ethernet LAN using n nodes and assign multiple traffic to the
4. nodes and obtain congestion window for different sources/ destinations.
27

Implement ESS with transmission nodes in Wireless LAN and obtain the
5. 31
performance parameters.

6. Implementation of Link state routing algorithm. 35

Write a program for a HLDC frame to perform the following.


7. i) Bit stuffing 41
ii) Character stuffing
Write a program for distance vector algorithm to find suitable path for
8. 46
transmission

9. Implement Dijkstra’s algorithm to compute the shortest routing path. 49

For the given data, use CRC-CCITT polynomial to obtain CRC code.
Verify the program for the cases
10. 52
i) Without error
ii) With error

11. Implementation of Stop and Wait Protocol and Sliding Window Protocol 57

12. Write a program for congestion control using leaky bucket algorithm 59

Dept of ECE, DBIT Page 9


COMPUTER NETWORKS LABORATORY 2023-2024

ADDON EXPERIMENT

13. Implementation of a “Queue Model” Simulation.

Implementation of Communication between two nodes using TCP/IP


14.
Model.

15. Classful addressing identification

Dept of ECE, DBIT Page 10


COMPUTER NETWORKS LABORATORY 2023-2024

PART-A

Simulation experiments using NS2/ NS3/ OPNET/ NCTUNS/


NetSim/QualNet or any other equivalent tool

Dept of ECE, DBIT Page 11


COMPUTER NETWORKS LABORATORY 2023-2024

Experiment:1

Aim:Implement a point to point network with four nodes and duplex links between
them. Analyze the network performance by setting the queue size and varying the
bandwidth.

#===================================
# Simulation parameters setup
#===================================
set val(stop) 10.0 ;# time of simulation end

#===================================
# Initialization
#===================================
#Create a ns simulator
set ns [new Simulator]

#Open the NS trace file


set tracefile [open lab1.tr w]
$ns trace-all $tracefile
#Open the NAM trace file
set namfile [open lab1.nam w]
$ns namtrace-all $namfile
#===================================
# Nodes Definition
#===================================

Dept of ECE, DBIT Page 12


COMPUTER NETWORKS LABORATORY 2023-2024

#Create 4 nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
#===================================
# Links Definition
#===================================
#Createlinks between nodes
$ns duplex-link $n0 $n2 100.0Mb 20ms DropTail
$ns queue-limit $n0 $n2 20 #Q1
$ns duplex-link $n1 $n2 100.0Mb 20ms DropTail
$ns queue-limit $n1 $n2 20 #Q2
$ns duplex-link $n2 $n3 100.0Mb 20ms DropTail
$ns queue-limit $n2 $n3 20 #Q3

#===================================
# Agents Definition
#===================================
#Setup a TCP connection
set tcp0 [new Agent/TCP]
$ns attach-agent $n0 $tcp0
set sink2 [new Agent/TCPSink]
$ns attach-agent $n3 $sink2
$ns connect $tcp0 $sink2
$tcp0 set packetSize_ 1500

#Setup a TCP connection


set tcp1 [new Agent/TCP]
$ns attach-agent $n1 $tcp1
set sink3 [new Agent/TCPSink]
$ns attach-agent $n3 $sink3
$ns connect $tcp1 $sink3
$tcp1 set packetSize_ 1500

#===================================
# Applications Definition
#===================================
#Setup a FTP Application over TCP connection
set ftp0 [new Application/FTP]
$ftp0 attach-agent $tcp0
$ns at 1.0 "$ftp0 start"
$ns at 8.0 "$ftp0 stop"

#Setup a FTP Application over TCP connection


set ftp1 [new Application/FTP]

Dept of ECE, DBIT Page 13


COMPUTER NETWORKS LABORATORY 2023-2024

$ftp1 attach-agent $tcp1


$ns at 1.0 "$ftp1 start"
$ns at 8.0 "$ftp1 stop"

#===================================
# Termination
#===================================
#Define a 'finish' procedure
proc finish {} {
global ns tracefilenamfile
$ns flush-trace
close $tracefile
close $namfile
exec nam lab1.nam &
exit 0
}
$ns at $val(stop) "$ns nam-end-wireless $val(stop)"
$ns at $val(stop) "finish"
$ns at $val(stop) "puts \"done\" ; $ns halt"
$ns run

Awk Script:
BEGIN{
tcppack=0
tcppack1=0
}
{
if($1=="r"&&$4=="3"&&$5=="tcp"&&$6=="1540")
{
tcppack++;
}
if($1=="d"&&$3=="2"&&$5=="tcp"&&$6=="1540")
{
tcppack1++;
}

}
END{
printf("\n total number of data packets received at Node 3: %d\n", tcppack++);
printf("\n total number of packets dropped at Node 2: %d\n", tcppack1++);
}

Trace File (lab1.tr):

Dept of ECE, DBIT Page 14


COMPUTER NETWORKS LABORATORY 2023-2024

Results:

Bandwidth(MB) Queue Size Received at Dropped at


N0-N2, N1-N2, N2-N3 Q1, Q2, Q3 Node 3 Node 2
100,100,100 20, 20,20 6820 0
100,100,1 20, 20,2 508 45
300,300,10 50, 50,3 3021 48

Execution Steps:

Dept of ECE, DBIT Page 15


COMPUTER NETWORKS LABORATORY 2023-2024

NSG 2.1 Generated Network:

Dept of ECE, DBIT Page 16


COMPUTER NETWORKS LABORATORY 2023-2024

Network Animation (lab1.nam):

Viva Question:
a. Define Network?

b. What is Protocol?

c. List the layers of OSIWhat is Error Detection? What are its methods?

d. Name the factors that affect the performance of the network?

e. What is the difference between TFTP and FTP application layer protocols?

Application:
a. LAN, WAN, MAN
b. Web-caching, multicast

Dept of ECE, DBIT Page 17


COMPUTER NETWORKS LABORATORY 2023-2024

Experiment:2

Aim:Implement a four node point to point network with links N0- N2, N1- N2 and N2-N3.
Apply TCP agent between N0-N3 and UDP between N1-N3. Apply relevant applications
over TCP and UDP agents changing the parameter and determine the number of packets
sent by TCP/UDP.

#===================================
# Simulation parameters setup
#===================================
set val(stop) 50.0 ;# time of simulation end

#===================================
# Initialization
#===================================
#Create a ns simulator
set ns [new Simulator]

#Open the NS trace file


set tracefile [open lab2.tr w]
$ns trace-all $tracefile

#Open the NAM trace file


set namfile [open lab2.nam w]
$ns namtrace-all $namfile

#===================================
# Nodes Definition
#===================================

Dept of ECE, DBIT Page 18


COMPUTER NETWORKS LABORATORY 2023-2024

#Create 4 nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]

#===================================
# Links Definition
#===================================
#Createlinks between nodes
$ns duplex-link $n0 $n2 200.0Mb 10ms DropTail
$ns queue-limit $n0 $n2 50
$ns duplex-link $n2 $n3 200.0Mb 10ms DropTail
$ns queue-limit $n2 $n3 50
$ns duplex-link $n1 $n2 200.0Mb 10ms DropTail
$ns queue-limit $n1 $n2 50

#===================================
# Agents Definition
#===================================
#Setup a TCP connection
set tcp0 [new Agent/TCP]
$ns attach-agent $n0 $tcp0
set sink3 [new Agent/TCPSink]
$ns attach-agent $n3 $sink3
$ns connect $tcp0 $sink3
$tcp0 set packetSize_ 1500 # Change the Packet Size
$tcp0 set interval_ 0.1

#Setup a UDP connection


set udp1 [new Agent/UDP]
$ns attach-agent $n1 $udp1
set null2 [new Agent/Null]
$ns attach-agent $n3 $null2
$ns connect $udp1 $null2
$udp1 set packetSize_ 1500
$udp1 set interval_ 0.1

#===================================
# Applications Definition
#===================================
#Setup a FTP Application over TCP connection
set ftp0 [new Application/FTP]
$ftp0 attach-agent $tcp0
$ns at 1.0 "$ftp0 start"
$ns at 9.0 "$ftp0 stop"

Dept of ECE, DBIT Page 19


COMPUTER NETWORKS LABORATORY 2023-2024

#Setup a CBR Application over UDP connection


set cbr1 [new Application/Traffic/CBR]
$cbr1 attach-agent $udp1
$cbr1 set packetSize_ 1000 # Change the Packet Size
$cbr1 set rate_ 1.0Mb
$cbr1 set random_ null
$ns at 1.0 "$cbr1 start"
$ns at 9.0 "$cbr1 stop"
#===================================
# Termination
#===================================
#Define a 'finish' procedure
proc finish {} {
global ns tracefilenamfile
$ns flush-trace
close $tracefile
close $namfile
exec nam lab2.nam &
exit 0
}
$ns at $val(stop) "$ns nam-end-wireless $val(stop)"
$ns at $val(stop) "finish"
$ns at $val(stop) "puts \"done\" ; $ns halt"
$ns run

Awk Script:

BEGIN{
tcppack=0
tcppack1=0
}
{
if($1=="r"&&$4=="2"&&$5=="tcp"&&$6=="1540") #1540, 1040, 1340
{
tcppack++;
}
if($1=="r"&&$4=="2"&&$5=="cbr"&&$6=="1500") #1500, 1500, 1500
{
tcppack1++;
}

}
END{
printf("\n total number of TCP data packets sent between Node 0 and Node 2: %d\n",
tcppack++);

Dept of ECE, DBIT Page 20


COMPUTER NETWORKS LABORATORY 2023-2024

printf("\n total number of UDP data packets sent between Node 1 and Node 2: %d\n",
tcppack1++);
}

Trace File (lab2.tr):

Results:

Simulation Time (Sec) Packet Size (Byte) Sent at Node 2

Start Time:1 TCP:1500 TCP:3930


Stop Time:9 UDP:1500 UDP:1001
Start Time:1 TCP:1000 TCP:9410
Stop Time:20 UDP:1500 UDP:1584
Start Time:1 TCP:1300 TCP:11910
Stop Time:25 UDP:1500 UDP:2000

Execution Steps:

Dept of ECE, DBIT Page 21


COMPUTER NETWORKS LABORATORY 2023-2024

NSG 2.1 Generated Network:

Network Animation (lab2.nam):

Dept of ECE, DBIT Page 22


COMPUTER NETWORKS LABORATORY 2023-2024

Viva Question:
a. Define Bandwidth and Latency?
b. Define Routing?
c. What is a peer-peer process?
d. Which layers are network support layers?
Application:
a. Web-caching, multicast
b. Process Automation Network

Dept of ECE, DBIT Page 23


COMPUTER NETWORKS LABORATORY 2023-2024

Experiment:3

Aim:Implement Ethernet LAN using N (6-10) nodes. Compare the throughput by


changing the error rate and data rate.

set ns [new Simulator]


set tf [open lab3.tr w]
$ns trace-all $tf

set nf [open lab3.nam w]


$ns namtrace-all $nf

set n0 [$ns node]


set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
set n6 [$ns node]
set n7 [$ns node]
$ns make-lan "$n0 $n1 $n2 $n3" 100Mb 300ms LL Queue/DropTail Mac/802_3
$ns make-lan "$n4 $n5 $n6 $n7" 100Mb 300ms LL Queue/DropTail Mac/802_3

$ns duplex-link $n3 $n4 100Mb 300ms DropTail


$ns duplex-link-op $n3 $n4 color "green"

Dept of ECE, DBIT Page 24


COMPUTER NETWORKS LABORATORY 2023-2024

set err [new ErrorModel]


$ns lossmodel $err $n3 $n4
$err set rate_ 0.1 #Change the Error Rate 0.1, 0.3, 0.5,

# error rate should be changed for each output like 0.1,0.3,0.5…. */


set udp [new Agent/UDP]
$ns attach-agent $n1 $udp
set cbr [new Application/Traffic/CBR]
$cbr attach-agent $udp
$cbr set fid_ 0
$cbr set packetSize_ 1000
$cbr set interval_ 0.001 #Change the Data Rate 0.001, 0.01, 0.1,
set null [new Agent/Null]
$ns attach-agent $n7 $null

$ns connect $udp $null

proc finish { } {
global ns nftf
$ns flush-trace
close $nf
close $tf
exec nam lab3.nam &
exit 0
}

$ns at 0.1 "$cbr start"


$ns at 3.0 "finish"
$ns run

Awk Script:

BEGIN{
tcppack=0
tcppack1=0
}
{
if($1=="r"&&$4=="7"&&$5=="cbr"&&$6=="1000")
{
tcppack++;
}
}
END{
printf("\n total number of data packets at Node 7: %d\n", tcppack++);
}

Dept of ECE, DBIT Page 25


COMPUTER NETWORKS LABORATORY 2023-2024

Results:

Error Rate Data Rate Received at Node 7

0.1 0.001 1255


0.3 0.01 95
0.5 0.1 05

Trace File (lab3.tr):

Network Animation (lab3.nam):

Dept of ECE, DBIT Page 26


COMPUTER NETWORKS LABORATORY 2023-2024

Execution Steps:

Viva Question:
a. What are the responsibilities of Data Link Layer??
b. What are the responsibilities of Data Link Layer??
c. What are the responsibilities of Network Layer?
d. What is ethernet?
Application:
a. Process Automation Network
b. Wind farm Network

Dept of ECE, DBIT Page 27


COMPUTER NETWORKS LABORATORY 2023-2024

Experiment:4

Aim:Implement Ethernet LAN using N nodes and assign multiple traffic to the nodes
and obtain congestion window for different sources/ destinations.

set ns [new Simulator]


set tf [open lab4.tr w]
$ns trace-all $tf
set nf [open lab4.nam w]
$ns namtrace-all $nf

set n0 [$ns node]


set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]

$ns make-lan "$n0 $n1 $n2 $n3" 10mb 10ms LL Queue/DropTail Mac/802_3

set tcp0 [new Agent/TCP/Reno]


$ns attach-agent $n0 $tcp0
set ftp0 [new Application/FTP]
$ftp0 attach-agent $tcp0
set sink3 [new Agent/TCPSink]
$ns attach-agent $n3 $sink3
$ns connect $tcp0 $sink3
set tcp2 [new Agent/TCP]
$ns attach-agent $n2 $tcp2
set ftp2 [new Application/FTP]
$ftp2 attach-agent $tcp2
set sink1 [new Agent/TCPSink]

Dept of ECE, DBIT Page 28


COMPUTER NETWORKS LABORATORY 2023-2024

$ns attach-agent $n1 $sink1


$ns connect $tcp2 $sink1

######To trace the congestion window##########


set file1 [open file1.tr w]
$tcp0 attach $file1
$tcp0 trace cwnd_
#$tcp0 set maxcwnd_ 10
set file2 [open file2.tr w]
$tcp2 attach $file2
$tcp2 trace cwnd_
proc finish { } {
global nftf ns
$ns flush-trace
exec nam lab4.nam &
close $nf
close $tf
exit 0
}
$ns at 0.1 "$ftp0 start"
$ns at 1.5 "$ftp0 stop"
$ns at 2 "$ftp0 start"
$ns at 3 "$ftp0 stop"
$ns at 0.2 "$ftp2 start"
$ns at 2 "$ftp2 stop"
$ns at 2.5 "$ftp2 start"
$ns at 4 "$ftp2 stop"
$ns at 5.0 "finish"

$ns run
1. File1.tr is the Congestion Window (CWND) value of TCP agent.
2. File2.tr is the Congestion Window (CWND) value of TCPReno agent.

Dept of ECE, DBIT Page 29


COMPUTER NETWORKS LABORATORY 2023-2024

Network Animation (lab4.nam):

Dept of ECE, DBIT Page 30


COMPUTER NETWORKS LABORATORY 2023-2024

Time TCP TCPReno


0.5 23.02 21.91
1 29.73 29.53
1.5 34.59 34.71
2 2 41.11
2.5 26.23 2
3 32.84 24.62

Table 1: Above values are taken from file1.tr and file2.tr

Viva Question:
a. What are the responsibilities of Transport Layer?
b. What are the responsibilities of Session Layer?
c. What are the responsibilities of Presentation Layer?
d. What are the responsibilities of Application Layer?
Application:
a. Wind farm Network
b. Solar Energy Network

Dept of ECE, DBIT Page 31


COMPUTER NETWORKS LABORATORY 2023-2024

Experiment:5

Aim:Implement ESS with transmission nodes in Wireless LAN and obtain then
Performance Parameters.

set ns [new Simulator]


set tf [open lab5.tr w]
$ns trace-all $tf
set topo [new Topography]
$topo load_flatgrid 1000 1000
set nf [open lab5.nam w]
$ns namtrace-all-wireless $nf 1000 1000

$ns node-config -adhocRouting AODV \


-llType LL \
-macType Mac/802_11 \
-ifqType Queue/DropTail \
-ifqLen 50 \
-phyTypePhy/WirelessPhy \
-channelType Channel/WirelessChannel \
-propType Propagation/TwoRayGround \
-antType Antenna/OmniAntenna \
-topoInstance $topo \
-agentTrace ON \
-routerTrace OFF

create-god 3
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]

Dept of ECE, DBIT Page 32


COMPUTER NETWORKS LABORATORY 2023-2024

$n0 label "tcp0"


$n1 label "sink1/tcp1"
$n2 label "sink2"

$n0 set X_ 50
$n0 set Y_ 50
$n0 set Z_ 0
$n1 set X_ 100
$n1 set Y_ 100
$n1 set Z_ 0
$n2 set X_ 600
$n2 set Y_ 600
$n2 set Z_ 0

$ns at 0.1 "$n0 setdest 50 50 15"


$ns at 0.1 "$n1 setdest 100 100 25"
$ns at 0.1 "$n2 setdest 600 600 25"
set tcp0 [new Agent/TCP]
$ns attach-agent $n0 $tcp0
set ftp0 [new Application/FTP]
$ftp0 attach-agent $tcp0
set sink1 [new Agent/TCPSink]
$ns attach-agent $n1 $sink1
$ns connect $tcp0 $sink1
set tcp1 [new Agent/TCP]
$ns attach-agent $n1 $tcp1
set ftp1 [new Application/FTP]
$ftp1 attach-agent $tcp1
set sink2 [new Agent/TCPSink]
$ns attach-agent $n2 $sink2
$ns connect $tcp1 $sink2
$ns at 5 "$ftp0 start"
$ns at 5 "$ftp1 start"
$ns at 100 "$n1 setdest 550 550 15"
$ns at 190 "$n1 setdest 70 70 15"
proc finish { } {
global ns nftf
$ns flush-trace
exec nam lab5.nam &
close $tf
exit 0
}
$ns at 250 "finish"
$ns run

Dept of ECE, DBIT Page 33


COMPUTER NETWORKS LABORATORY 2023-2024

BEGIN{
tcppack=0
tcppack1=0
}
{
if($1=="s"&&$3=="_0_"&&$4=="AGT"&&$8=="1040")
{
tcppack++;
}
if($1=="r"&&$3=="_2_"&&$4=="AGT"&&$8=="1040")
{
tcppack1++;
}
}
END{
printf("\n total number of data packets sent from Node 0: %d\n", tcppack++);
printf("\n total number of data packets received at Node 2: %d\n", tcppack++);

Network Animation (lab5.nam):

Dept of ECE, DBIT Page 34


COMPUTER NETWORKS LABORATORY 2023-2024

Trace File (lab5.tr):

Execution Steps:

Dept of ECE, DBIT Page 35


COMPUTER NETWORKS LABORATORY 2023-2024

Viva Question:
a. What are the two classes of hardware building blocks?
b. What are the different link types used to build a computer network?
c. What are the categories of Transmission media?
d. What is Redundancy?
Application:
a. LAN, WAN, MAN

b. Solar Energy Network

Dept of ECE, DBIT Page 36


COMPUTER NETWORKS LABORATORY 2023-2024

Experiment:6

Aim: Implementation of Link State Routing Algorithm.

#===================================
# Simulation parameters setup
#===================================
set val(stop) 10.0 ;# time of simulation end

#===================================
# Initialization
#===================================
#Create a ns simulator
set ns [new Simulator]

#Open the NS trace file


set tracefile [open lab6.tr w]
$ns trace-all $tracefile

#Open the NAM trace file


set namfile [open lab6.nam w]
$ns namtrace-all $namfile

#===================================
# Nodes Definition
#===================================
#Create 5 nodes

Dept of ECE, DBIT Page 37


COMPUTER NETWORKS LABORATORY 2023-2024

set n0 [$ns node]


set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]

#===================================
# Links Definition
#===================================
#Createlinks between nodes
$ns duplex-link $n0 $n1 100.0Mb 10ms DropTail
$ns queue-limit $n0 $n1 50
$ns duplex-link $n0 $n2 100.0Mb 10ms DropTail
$ns queue-limit $n0 $n2 50
$ns duplex-link $n2 $n3 100.0Mb 10ms DropTail
$ns queue-limit $n2 $n3 50
$ns duplex-link $n1 $n3 100.0Mb 10ms DropTail
$ns queue-limit $n1 $n3 50
$ns duplex-link $n3 $n4 100.0Mb 10ms DropTail
$ns queue-limit $n3 $n4 50
$ns duplex-link $n0 $n3 100.0Mb 10ms DropTail
$ns queue-limit $n0 $n3 50
$ns duplex-link $n1 $n2 100.0Mb 10ms DropTail
$ns queue-limit $n1 $n2 50

#Set the link costs. All link costs are symmetric

$ns cost $n0 $n1 2


$ns cost $n0 $n2 1
$ns cost $n0 $n3 3

$ns cost $n1 $n0 2


$ns cost $n1 $n2 2
$ns cost $n1 $n3 3

$ns cost $n2 $n1 2


$ns cost $n2 $n0 1
$ns cost $n2 $n3 1

Dept of ECE, DBIT Page 38


COMPUTER NETWORKS LABORATORY 2023-2024

$ns cost $n3 $n2 1


$ns cost $n3 $n1 3
$ns cost $n3 $n0 3
$ns cost $n3 $n4 2

$ns cost $n4 $n3 2

#===================================
# Agents Definition
#===================================
#Setup a UDP connection
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
set null1 [new Agent/Null]
$ns attach-agent $n4 $null1
$ns connect $udp0 $null1
$udp0 set packetSize_ 1500

#===================================
# Applications Definition
#===================================
#Setup a CBR Application over UDP connection
set cbr0 [new Application/Traffic/CBR]
$cbr0 attach-agent $udp0
$cbr0 set packetSize_ 1000
$cbr0 set rate_ 1.0Mb
$cbr0 set random_ null
$ns at 1.0 "$cbr0 start"
$ns at 5.0 "$cbr0 stop"

$ns rtproto LS
#===================================
# Termination
#===================================
#Define a 'finish' procedure
proc finish {} {
global ns tracefilenamfile
$ns flush-trace
close $tracefile
close $namfile

Dept of ECE, DBIT Page 39


COMPUTER NETWORKS LABORATORY 2023-2024

exec nam lab6.nam &


exit 0
}
$ns at $val(stop) "$ns nam-end-wireless $val(stop)"
$ns at $val(stop) "finish"
$ns at $val(stop) "puts \"done\" ; $ns halt"
$ns run

Network Animation (lab6.nam):

● Total Number of Routing Paths: 4


1. N0-N1-N2-N3-N4: Total Cost is of 7
2. N0-N2- N1 -N3-N4 : Total Cost is of 8
3. N0-N2-N3-N4 : Total Cost is of 4
4. N0-N3-N4 : Total Cost is of 5
● Shortest according to Link State algorithm is N0-N2-N3-N4 having Total Cost is of 4

Dept of ECE, DBIT Page 40


COMPUTER NETWORKS LABORATORY 2023-2024

Viva Question:
a. What is Round Trip Time?
b. What is semantic gap?
c. When a switch is said to be congested?
Application:
a. Wireless Network(Wireless Senor Network, Ad hoc Network)
b. Satellite Networking
c. Mobile Communication

Dept of ECE, DBIT Page 41


COMPUTER NETWORKS LABORATORY 2023-2024

PART-B
Implement the following in C/C++

Dept of ECE, DBIT Page 42


COMPUTER NETWORKS LABORATORY 2023-2024

Experiment:7

Aim:Write a program for a HLDC frame to perform the following.


i) Bit stuffing ii) Character stuffing

Framing in the data link layer separates a message from one source to a destination by adding as
ender address & a destination address. The destination address defines where the packet is tog
o; the sender address helps the recipient acknowledge the receipt. Although the whole messagec
ould be packed in one frame, that is not normally done. One reason is that a frame can be veryl
arge, making flow & error control very inefficient.

When a message is carried in one very largeframe, even a singlebit error would require the ret
ransmission of the whole message. When amessage is divided into smaller frames, a single-
bit error affects only that small frame.

Frames can be of fixed or variable size.


i) Fixed-
size framing:In this there is no need for defining the boundaries of the frames, the size itself can
be used as adelimiter.
Ex: ATMwide area network which uses frames of fixed size called cells.
ii) Variable-size framing:
In this, we need a way to define the end of the frame and the beginning of the next.
Ex: LAN
Historically 2 approaches were used for variable size framing: Character-oriented & bit-oriented.

a) Character-oriented approach:

Dept of ECE, DBIT Page 43


COMPUTER NETWORKS LABORATORY 2023-2024

Bit oriented protocol – Bit Stuffing & De-stuffing


Bit stuffing is the process of adding one extra 0 whenever five consecutive 1s follow a 0 in
thedata, so that the receiver doesn’t mistake the pattern 01111110 for a flag

Dept of ECE, DBIT Page 44


COMPUTER NETWORKS LABORATORY 2023-2024

i) Bit stuffing

#include<string.h>
#include<stdio.h>
Main()
{
char a[20],fs[50]="",t[6],r[5];
inti,j,p=0,q=0;

printf("enter bit string : ");


scanf("%s",a);
strcat(fs,"01111110");
if(strlen(a)<6)
{
strcat(fs,a);
}
else
{
for(i=0;i<strlen(a)-5;i++)
{
for(j=i;j<i+6;j++)
{
t[p++]=a[j];
}
t[p]='\0';
if(strcmp(t,"011111")==0)
{
strcat(fs,"0111110");
i=j-1
}
Else

Dept of ECE, DBIT Page 45


COMPUTER NETWORKS LABORATORY 2023-2024

{
r[0]=a[i];
r[1]='\0';
strcat(fs,r);
}
p=0;
}
for(q=i;q<strlen(a);q++)
{
t[p++]=a[q];
}
t[p]='\0';
strcat(fs,t);
}
strcat(fs,"01111110");
printf("After stuffing : %s",fs);

getch();
}

ii) Character stuffing


#include<string.h>
#include<stdio.h>
Main()
{
char a[30],fs[50]="",t[3],sd,ed,x[3],s[3],d[3],y[3];
inti,j,p=0,q=0;
printf("Enter characters to be stuffed : ");
scanf("%s",a);
printf("\nEnter a character that represents starting delimiter : ");
scanf(" %c",&sd);

Dept of ECE, DBIT Page 46


COMPUTER NETWORKS LABORATORY 2023-2024

printf("\nEnter a character that represents ending delimiter : ");


scanf(" %c",&ed);
x[0]=s[0]=s[1]=sd;
x[1]=s[2]='\0';
y[0]=d[0]=d[1]=ed;
d[2]=y[1]='\0';
strcat(fs,x);
for(i=0;i<strlen(a);i++)
{
t[0]=a[i];
t[1]='\0';
if(t[0]==sd)
strcat(fs,s);
else
if(t[0]==ed)
strcat(fs,d);
else
strcat(fs,t);
}
strcat(fs,y);
printf("\nAfter stuffing : %s",fs);
getch();
}
Viva Question:
a. What is Fixed Size Framing?
b. Define Character Stuffing?
c. What is Bit Stuffing?
d. What is Flow Control?
Application:
a. Communication
b. Error correction and detection

Dept of ECE, DBIT Page 47


COMPUTER NETWORKS LABORATORY 2023-2024

Experiment:8
Aim:Write a program for distance vector algorithm to find suitable path for
transmission.

Distance Vector Algorithm is a decentralized routing algorithm that requires that each router
simply inform its neighbors of its routing table. For each network path, the receiving routers pick
the neighbor advertising the lowest cost, then add this entry into its routing table for re-
advertisement. To find the shortest path, Distance Vector Algorithm is based on one of two basic
algorithms: the Bellman-Ford and the Dijkstra algorithms.

Routers that use this algorithm have to maintain the distance tables (which is a one-dimension
array -- "a vector"), which tell the distances and shortest path to sending packets to each node in
the network. The information in the distance table is always upd by exchanging information with
the neighboring nodes. The number of data in the table equals to that of all nodes in networks
(excluded itself). The columns of table represent the directly attached neighbors whereas the
rows represent all destinations in the network. Each data contains the path for sending packets to
each destination in the network and distance/or time to transmit on that path (we call this as
"cost"). The measurements in this algorithm are the number of hops, latency, the number of
outgoing packets, etc.

The starting assumption for distance-vector routing is each node knows the cost of the link of
each of its directly connected neighbors. Next, every node sends a configured message to its
directly connected neighbors containing its own distance table. Now, every node can learn and
up its distance table with cost and next hops for all nodes network. Repeat exchanging until no
more information between the neighbors.

Consider a node A that is interested in routing to destination H via a directly attached neighbor J.
Node A's distance table entry, Dx(Y,Z) is the sum of the cost of the direct-one hop link between
A and J, c(A,J), plus neighboring J's currently known minimum-cost path (shortest path) from
itself(J) to H. That is Dx(H,J) = c(A,J) + minw{Dj(H,w)} The minw is taken over all the J's This
equation suggests that the form of neighbor-to-neighbor communication that will take place in
the DV algorithm - each node must know the cost of each of its neighbors' minimum-cost path to

Dept of ECE, DBIT Page 48


COMPUTER NETWORKS LABORATORY 2023-2024

each destination. Hence, whenever a node computes a new minimum cost to some destination, it
must inform its neighbors of this new minimum cost.

include<stdio.h>
#include<stdlib.h>
#define nul 1000
#define nodes 10
int no;
struct node
{
int a[nodes][3];
}
router[nodes];
void init(int r)
{
inti;
for(i=1;i<=no;i++)
{
router[r].a[i][1]=i;
router[r].a[i][2]=999;
router[r].a[i][3]=nul;
}
router[r].a[r][2]=0;
router[r].a[r][3]=r;
}
void inp(int r)
{
inti;
printf("\n enter dist to the node %d to other nodes",r);
printf("\n please enter 999 if there is no direct route\n");
for(i=1;i<=no;i++)
{

Dept of ECE, DBIT Page 49


COMPUTER NETWORKS LABORATORY 2023-2024

if(i!=r)
{
printf("\n enter dist to the node %d:",i);
scanf("%d",&router[r].a[i][2]);
router[r].a[i][3]=i;
}
}
}
void display(int r)
{
inti;
printf("\n\n the routimg table for node %d is as follows",r);
for(i=1;i<=no;i++)
{
if(router[r].a[i][2]>=999)
printf("\n\t\t\t %d \t no link \t no hop",router[r].a[i][1]);
else
printf("\n\t\t\t %d \t %d \t\t %d",router[r].a[i][1],router[r].a[i][2],router[r].a[i][3]);
}
}
void dv_algo(int r)
{
inti,j,z;
for(i=1;i<=no;i++)
{
if(router[r].a[i][2]!=999 && router[r].a[i][2]!=0)
{
Viva Question:
a. Why should you care about the OSI Reference Model?
b. What is virtual path?
c. What is packet filter?

Dept of ECE, DBIT Page 50


COMPUTER NETWORKS LABORATORY 2023-2024

d. What is traffic shaping?


Application:
a. In data networks determines the best route for data packets
b. Congestion control

Dept of ECE, DBIT Page 51


COMPUTER NETWORKS LABORATORY 2023-2024

Experiment:9
Aim: Implement Dijkstra’s algorithm to compute the shortest routing path

Distance Vector Algorithm is a decentralized routing algorithm that requires that each
router simply inform its neighbors of its routing table. For each network path, the receiving
routers pick the neighbor advertising the lowest cost, then add this entry into its routing table for
re-advertisement. To find the shortest path, Distance Vector Algorithm is based on one of two
basic algorithms: the Bellman-Ford and the Dijkstra algorithms.
Routers that use this algorithm have to maintain the distance tables (which is a one-
dimension array -- "a vector"), which tell the distances and shortest path to sending packets to
each node in the network. The information in the distance table is always upd by exchanging
information with the neighboring nodes. The number of data in the table equals to that of all
nodes in networks (excluded itself). The columns of table represent the directly attached
neighbors whereas the rows represent all destinations in the network. Each data contains the path
for sending packets to each destination in the network and distance/or time to transmit on that
path (we call this as "cost"). The measurements in this algorithm are the number of hops, latency,
the number of outgoing packets, etc.
The starting assumption for distance-vector routing is each node knows the cost of the
link of each of its directly connected neighbors. Next, every node sends a configured message to
its directly connected neighbors containing its own distance table. Now, every node can learn
and up its distance table with cost and next hops for all nodes network. Repeat exchanging until
no more information between the neighbors.
Consider a node A that is interested in routing to destination H via a directly attached
neighbor J. Node A's distance table entry, Dx(Y,Z) is the sum of the cost of the direct-one hop
link between A and J, c(A,J), plus neighboring J's currently known minimum-cost path (shortest
path) from itself(J) to H. That is Dx(H,J) = c(A,J) + minw{Dj(H,w)} The minw is taken over all
the J's This equation suggests that the form of neighbor-to-neighbor communication that will
take place in the DV algorithm - each node must know the cost of each of its neighbors'
minimum-cost path to each destination. Hence, whenever a node computes a new minimum cost
to some destination, it must inform its neighbors of this new minimum cost.

Dept of ECE, DBIT Page 52


COMPUTER NETWORKS LABORATORY 2023-2024

include<stdio.h>
void sort(void);
static intdsp[10][10],nodes;
struct{
char src;
char dest;
int length;
}stemp,permanent[10]={' ',' ',0},temp[10]={' ',' ',-1};
static intperm,tem;
void main()
{
inti,j,k,l,m,n=0,point;
char initial,dest,path[10]={' '};
printf("\t\t Shortest Path (Dijkstra's algorithm)");
printf("\n*******************************************************");
printf("\nEnter the number of nodes:");
scanf("%d",&nodes);
printf("\nEnter the adjacency matrix for the graph:\n");
for(i=0;i<nodes;i++)
{
for(j=0;j<nodes;j++)
scanf("%d",&dsp[i][j]);
}
fflush(stdin);
printf("\n enter the source node:");
scanf("%c",&initial);fflush(stdin);
printf("\n Enter the destination node:");
scanf("%c",&dest);
permanent[perm].src=initial;
permanent[perm].dest=initial;
permanent[perm++].length=0;

Dept of ECE, DBIT Page 53


COMPUTER NETWORKS LABORATORY 2023-2024

i=permanent[perm-1].dest-97;
for(j=0;j<nodes;j++)
{
if(i!=j)
{
if(dsp[i][j]>0)
{
temp[tem].src=permanent[perm-1].src;
temp[tem].dest=j+97;
temp[tem++].length=dsp[i][j];
}
}
}
sort();

Viva Question:
a. What is virtual channel?
b. What is the minimum and maximum length of the header in the TCP segment and IP
datagram?
c. What is Protocol Data Unit?
Application:
a. In data networks determines the best route for data packets
b. Congestion control

Dept of ECE, DBIT Page 54


COMPUTER NETWORKS LABORATORY 2023-2024

Experiment:10

Aim: For the given data, use CRC-CCITT polynomial to obtain CRC code. Verify the
program for the cases a. Without error
b. with error

Whenever digital data is stored or interfaced, data corruption might occur. Since the
beginning of computer science, developers have been thinking of ways to deal with this type of
problem. For serial data they came up with the solution to attach a parity bit to each sent byte.
This simple detection mechanism works if an odd number of bits in a byte changes, but an even
number of false bits in one byte will not be detected by the parity check. To overcome this
problem developers have searched for mathematical sound mechanisms to detect multiple false
bits. The CRC calculation or cyclic redundancy check was the result of this. Nowadays CRC
calculations are used in all types of communications. All packets sent over a network connection
are checked with a CRC. Also each data block on your hard disk has a CRC value attached to it.
Modern computer world cannot do without these CRC calculations. So let's see why they are so
widely used. The answer is simple; they are powerful, detect many types of errors and are
extremely fast to calculate especially when dedicated hardware chips are used.
The idea behind CRC calculation is to look at the data as one large binary number. This
number is divided by a certain value and the remainder of the calculation is called the CRC.
Dividing in the CRC calculation at first looks to cost a lot of computing power, but it can be
performed very quickly if we use a method similar to the one learned at school. We will as an
example calculate the remainder for the character 'm'—which is 1101101 in binary notation—by
dividing it by 19 or 10011. Please note that 19 is an odd number. This is necessary as we will see
further on. Please refer to your schoolbooks as the binary calculation method here is not very
different from the decimal method you learned when you were young. It might only look a little
bit strange. Also notations differ between countries, but the method is similar.

Dept of ECE, DBIT Page 55


COMPUTER NETWORKS LABORATORY 2023-2024

With decimal calculations you can quickly check that 109 divided by 19 gives a quotient
of 5 with 14 as the remainder. But what we also see in the scheme is that every bit extra to check
only costs one binary comparison and in 50% of the cases one binary subtraction. You can easily
increase the number of bits of the test data string—for example to 56 bits if we use our example
value "Lammert"—and the result can be calculated with 56 binary comparisons and an average
of 28 binary subtractions. This can be implemented in hardware directly with only very few
transistors involved. Also software algorithms can be very efficient.
All of the CRC formulas you will encounter are simply checksum algorithms based on
modulo-2 binary division where we ignore carry bits and in effect the subtraction will be equal to
an exclusive or operation. Though some differences exist in the specifics across different CRC
formulas, the basic mathematical process is always the same:
 The message bits are appended with c zero bits; this augmented message is the dividend
 A predetermined c+1-bit binary sequence, called the generator polynomial, is the divisor
 The checksum is the c-bit remainder that results from the division operation
Table 1 lists some of the most commonly used generator polynomials for 16- and 32-bit CRCs.
Remember that the width of the divisor is always one bit wider than the remainder. So, for
example, you’d use a 17-bit generator polynomial whenever a 16-bit checksum is required.
CRC-CCITT CRC-16 CRC-32
Checksum
16 bits 16 bits 32 bits
Width
Generator 100010000001000 11000000000000 10000010011000001000
Polynomial 01 101 1110110110111

Table 1. International Standard CRC Polynomials


Error detection with CRC
Consider a message represented by the polynomial M(x)
Consider a generating polynomial G(x)
This is used to generate a CRC = C(x) to be appended to M(x).
Note this G(x) is prime.
Steps:
1. Multiply M(x) by highest power in G(x). i.e. Add So much zeros to M(x).

Dept of ECE, DBIT Page 56


COMPUTER NETWORKS LABORATORY 2023-2024

2. Divide the result by G(x). The remainder = C(x).


Special case: This won't work if bitstring =all zeros. We don't allow such an M(x).But
M(x) bitstring = 1 will work, for example. Can divide 1101 into 1000.
3. If: x div y gives remainder c
that means: x = n y + c
Hence (x-c) = n y
(x-c) div y gives remainder 0
Here (x-c) = (x+c)
Hence (x+c) div y gives remainder 0
4. Transmit: T(x) = M(x) + C(x)
5. Receiver end: Receive T(x). Divide by G(x), should have remainder 0.
Note if G(x) has order n - highest power is xn,
then G(x) will cover (n+1) bits
and the remainder will cover n bits.
i.e. Add n bits (Zeros) to message.
Some CRC polynomials that are actually used
Some CRC polynomials
 CRC-8:
x8+x2+x+1
o Used in: 802.16 (along with error correction).
 CRC-CCITT:
x16+x12+x5+1
o Used in: HDLC, SDLC, PPP default
 IBM-CRC-16 (ANSI):
x16+x15+x2+1
 802.3:
x32+x26+x23+x22 +x16+x12+x11+x10 +x8+x7+x5+x4+x2+x+1
#include<stdio.h>
int a[100],b[100],i,j,len,k,count=0;
//Generator Polynomial:g(x)=x^16+x^12+x^5+1
intgp[]={1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,};

Dept of ECE, DBIT Page 57


COMPUTER NETWORKS LABORATORY 2023-2024

int main()
{
void div();
printf("\nEnter the length of Data Frame :");
scanf("%d",&len);
printf("\nEnter the Message :");
for(i=0;i<len;i++)
scanf("%d",&a[i]);

//Append r(16) degree Zeros to Msg bits


for(i=0;i<16;i++)
a[len++]=0;
//Xr.M(x) (ie. Msg+16 Zeros)
for(i=0;i<len;i++)
b[i]=a[i];
//No of times to be divided ie. Msg Length
k=len-16;
div();
for(i=0;i<len;i++)
b[i]=b[i]^a[i]; //MOD 2 Substraction
printf("\nData to be transmitted : ");
for(i=0;i<len;i++)
printf("%2d",b[i]);
printf("\n\nEnter the Reveived Data : ");
for(i=0;i<len;i++)
scanf("%d",&a[i]);
div();
for(i=0;i<len;i++)
if(a[i]!=0)
{
printf("\nERROR in Recived Data");

Dept of ECE, DBIT Page 58


COMPUTER NETWORKS LABORATORY 2023-2024

return 0;
}
printf("\nDataRecived is ERROR FREE");
}
Viva Question:
a. What is CRC?
b. What is Checksum?
c. List the steps involved in creating the checksum.
d. What is VRC?
Application:
a. Error control and detection
b. Checksums are used to ensure the integrity of a file after it has been transmitted from
one storage device to another

Dept of ECE, DBIT Page 59


COMPUTER NETWORKS LABORATORY 2023-2024

Experiment:11

Aim: Implementation of Stop and Wait Protocol and Sliding Window Protocol

ii) Stop - & - Wait Protocol:


Assumptions in this protocol are:
• Data transfer is unidirectional.
• Both sender & receiver network layers are always ready.
• Receiver doesn’t have enough storage space.
• Receiver is slower than sender in processing.
• Frames are never damaged or lost.

Design:

Dept of ECE, DBIT Page 60


COMPUTER NETWORKS LABORATORY 2023-2024

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
int i,j,noframes,x,x1=10,x2;
noframes=10;
i=1;
j=1;
printf("number of frames is %d ",noframes);

getch();
while(noframes>0)
{
printf("\nsending frames is %d",i);
x=rand()%10;
if(x%10==0)
{
for(x2=1;x2<2;x2++)
{
printf("\n waiting for %d seconds\n",x2);
sleep(x2);
}
printf("\n sending frames %d\n",i);
x=rand()%10;
}
printf("\n ack for frame %d\n",j);
noframes=noframes-1;
i++;
j++;
}
printf("\n end of stop and wait protocol\n");
}

Dept of ECE, DBIT Page 61


COMPUTER NETWORKS LABORATORY 2023-2024

Viva Question:
a. What is Stop-and-Wait Protocol?
b. What is Stop-and-Wait Automatic Repeat Request?
c. What is usage of Sequence Number in Relaible Transmission?
d. What Automatic Repeat Request (ARQ)?
Application:
a. Flow and error control
b. Modern file transfer protocol(FTP)

Dept of ECE, DBIT Page 62


COMPUTER NETWORKS LABORATORY 2023-2024

Experiment:12
Aim: Write a program for congestion control using leaky bucket algorithm.

The main concept of the leaky bucket algorithm is that the output data flow remains
constant despite the variant input traffic, such as the water flow in a bucket with a small hole at
the bottom. In case the bucket contains water (or packets) then the output flow follows a constant
rate, while if the bucket is full any additional load will be lost because of spillover. In a similar
way if the bucket is empty the output will be zero.From network perspective, leaky bucket
consists of a finite queue (bucket) where all the incoming packets are stored in case there is
space in the queue, otherwise the packets are discarded. In order to regulate the output flow,
leaky bucket transmits one packet from the queue in a fixed time (e.g. at every clock tick). In
the following figure we can notice the main rationale of leaky bucket algorithm, for both the two
approaches (e.g. leaky bucket with water (a) and with packets (b)).

Figure: The leaky bucket traffic shaping algorithm

While leaky bucket eliminates completely bursts traffic by regulating the incoming data
flow its main drawback is that it drops packets if the bucket is full. Also, it doesn’t take into
account the idle process of the sender which means that if the host doesn’t transmit data for some
time the bucket becomes empty without permitting the transmission of any packet.

Dept of ECE, DBIT Page 63


COMPUTER NETWORKS LABORATORY 2023-2024

include<stdio.h>
#include<stdlib.h>
#define MIN(x,y) (x>y)?y:x
int main()
{
intorate,drop=0,cap,x,count=0,inp[10]={0},i=0,nsec,ch;
printf("\n enter bucket size : ");
scanf("%d",&cap);
printf("\n enter output rate :");
scanf("%d",&orate);
do
{
printf("\n enter number of packets coming at second %d :",i+1);
scanf("%d",&inp[i]);
i++;
printf("\n enter 1 to contiue or 0 to quit..........");
scanf("%d",&ch);
}
while(ch);
nsec=i;
printf("\n second \t recieved \t sent \t dropped \t remained \n");
for(i=0;count || i<nsec;i++)
{
printf("%d",i+1);
printf(" \t%d\t ",inp[i]);
printf(" \t %d\t ",MIN((inp[i]+count),orate));
if((x=inp[i]+count-orate)>0)
{
if(x>cap)
{

Dept of ECE, DBIT Page 64


COMPUTER NETWORKS LABORATORY 2023-2024

count=cap;
drop=x-cap;
}
else
{
count=x;
drop=0;
}
}
else
{
drop=0;
count=0;
}
printf(" \t %d\t %d \n",drop,count);
}

Viva Question:
a. What are the types of errors?
b. What is Error Detection? What are its methods?
c. What is Redundancy?
e. Application:
a. Communication for maximum throughput function.
b. Congestion control

Dept of ECE, DBIT Page 65


COMPUTER NETWORKS LABORATORY 2023-2024

ADDON EXPERIMENTS
Experiment:13

Aim: Implementation of a “Queue Model” Simulation.

#===================================
# Simulation parameters setup
#===================================
set val(stop) 55.0 ;# time of simulation end
#===================================
# Initialization
#===================================
#Create a ns simulator
set ns [new Simulator]

#Open the NS trace file


set tracefile [open queue.tr w]
$ns trace-all $tracefile

#Open the NAM trace file


set namfile [open queue.nam w]
$ns namtrace-all $namfile

#===================================
# Nodes Definition
#===================================
#Create 8 nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
set n6 [$ns node]
set n7 [$ns node]

#===================================
# Links Definition
#===================================
#Createlinks between nodes
$ns duplex-link $n0 $n3 100.0Mb 10ms DropTail
Dept of ECE, DBIT Page 66
COMPUTER NETWORKS LABORATORY 2023-2024

$ns queue-limit $n0 $n3 50


$ns duplex-link $n1 $n3 100.0Mb 10ms DropTail
$ns queue-limit $n1 $n3 50
$ns duplex-link $n2 $n3 100.0Mb 10ms DropTail
$ns queue-limit $n2 $n3 50
$ns duplex-link $n3 $n4 10.0Mb 10ms DropTail
$ns queue-limit $n3 $n4 50
$ns duplex-link $n4 $n5 100.0Mb 10ms DropTail
$ns queue-limit $n4 $n5 50
$ns duplex-link $n4 $n6 100.0Mb 10ms DropTail
$ns queue-limit $n4 $n6 50
$ns duplex-link $n4 $n7 100.0Mb 10ms DropTail
$ns queue-limit $n4 $n7 50

#Give node position (for NAM)


$ns duplex-link-op $n0 $n3 orient right-down
$ns duplex-link-op $n1 $n3 orient right
$ns duplex-link-op $n2 $n3 orient right-up
$ns duplex-link-op $n3 $n4 orient right
$ns duplex-link-op $n4 $n5 orient right-up
$ns duplex-link-op $n4 $n6 orient right-down
$ns duplex-link-op $n4 $n7 orient right-down

#===================================
# Agents Definition
#===================================
#Setup a UDP connection
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
set null3 [new Agent/Null]
$ns attach-agent $n5 $null3
$ns connect $udp0 $null3
$udp0 set packetSize_ 1500

#Setup a UDP connection


set udp1 [new Agent/UDP]
$ns attach-agent $n1 $udp1
set null4 [new Agent/Null]
$ns attach-agent $n6 $null4
$ns connect $udp1 $null4

Dept of ECE, DBIT Page 67


COMPUTER NETWORKS LABORATORY 2023-2024

$udp1 set packetSize_ 1500

#Setup a UDP connection


set udp2 [new Agent/UDP]
$ns attach-agent $n2 $udp2
set null5 [new Agent/Null]
$ns attach-agent $n7 $null5
$ns connect $udp2 $null5
$udp2 set packetSize_ 1500

#===================================
# Applications Definition
#===================================
#Setup a CBR Application over UDP connection
set cbr0 [new Application/Traffic/CBR]
$cbr0 attach-agent $udp0
$cbr0 set packetSize_ 1000
$cbr0 set rate_ 1.0Mb
$cbr0 set random_ null
$ns at 1.0 "$cbr0 start"
$ns at 50.0 "$cbr0 stop"

#Setup a CBR Application over UDP connection


set cbr1 [new Application/Traffic/CBR]
$cbr1 attach-agent $udp1
$cbr1 set packetSize_ 1000
$cbr1 set rate_ 1.0Mb
$cbr1 set random_ null
$ns at 1.0 "$cbr1 start"
$ns at 50.0 "$cbr1 stop"

#Setup a CBR Application over UDP connection


set cbr2 [new Application/Traffic/CBR]
$cbr2 attach-agent $udp2
$cbr2 set packetSize_ 1000
$cbr2 set rate_ 1.0Mb
$cbr2 set random_ null
$ns at 1.0 "$cbr2 start"
$ns at 50.0 "$cbr2 stop"
#===================================

Dept of ECE, DBIT Page 68


COMPUTER NETWORKS LABORATORY 2023-2024

# Termination
#===================================
#Define a 'finish' procedure
proc finish {} {
global ns tracefilenamfile
$ns flush-trace
close $tracefile
close $namfile
exec namqueue.nam&
exit 0
}
$ns at $val(stop) "$ns nam-end-wireless $val(stop)"
$ns at $val(stop) "finish"
$ns at $val(stop) "puts \"done\" ; $ns halt"
$ns run

Network Animator Simulation View:

Figure: Simulation of Queue Model

Dept of ECE, DBIT Page 69


COMPUTER NETWORKS LABORATORY 2023-2024

Result Analysis file:

Figure: Resultant report

Dept of ECE, DBIT Page 70


COMPUTER NETWORKS LABORATORY 2023-2024

Experiment:14

Aim: Implementation of Communication between two nodes using TCP/IP Model.

#===================================
# Simulation parameters setup
#===================================
set val(chan) Channel/WirelessChannel ;# channel type
set val(prop) Propagation/TwoRayGround ;# radio-propagation model
set val(netif) Phy/WirelessPhy ;# network interface type
set val(mac) Mac/802_11 ;# MAC type
set val(ifq) Queue/DropTail/PriQueue ;# interface queue type
set val(ll) LL ;# link layer type
set val(ant) Antenna/OmniAntenna ;# antenna model
set val(ifqlen) 50 ;# max packet in ifq
set val(nn) 2 ;# number of mobilenodes
set val(rp) AODV ;# routing protocol
set val(x) 849 ;# X dimension of topography
set val(y) 364 ;# Y dimension of topography
set val(stop) 51.0 ;# time of simulation end

#===================================
# Initialization
#===================================
#Create a ns simulator
set ns [new Simulator]

#Setup topography object


set topo [new Topography]
$topo load_flatgrid $val(x) $val(y)
create-god $val(nn)

#Open the NS trace file


set tracefile [open 2nodewireless.tr w]
$ns trace-all $tracefile

#Open the NAM trace file


set namfile [open 2nodewireless.nam w]

Dept of ECE, DBIT Page 71


COMPUTER NETWORKS LABORATORY 2023-2024

$ns namtrace-all $namfile


$ns namtrace-all-wireless $namfile $val(x) $val(y)
set chan [new $val(chan)];#Create wireless channel

#===================================
# Mobile node parameter setup
#===================================
$ns node-config -adhocRouting $val(rp) \
-llType $val(ll) \
-macType $val(mac) \
-ifqType $val(ifq) \
-ifqLen $val(ifqlen) \
-antType $val(ant) \
-propType $val(prop) \
-phyType $val(netif) \
-channel $chan \
-topoInstance $topo \
-agentTrace ON \
-routerTrace ON \
-macTrace ON \
-movementTrace ON

#===================================
# Nodes Definition
#===================================
#Create 2 nodes
set n0 [$ns node]
$n0 set X_ 506
$n0 set Y_ 262
$n0 set Z_ 0.0
$ns initial_node_pos $n0 20
set n1 [$ns node]
$n1 set X_ 749
$n1 set Y_ 264
$n1 set Z_ 0.0
$ns initial_node_pos $n1 20

#===================================
# Agents Definition

Dept of ECE, DBIT Page 72


COMPUTER NETWORKS LABORATORY 2023-2024

#===================================
#Setup a TCP connection
set tcp0 [new Agent/TCP]
$ns attach-agent $n0 $tcp0
set sink1 [new Agent/TCPSink]
$ns attach-agent $n1 $sink1
$ns connect $tcp0 $sink1
$tcp0 set packetSize_ 1500
#===================================
# Applications Definition
#===================================
#Setup a FTP Application over TCP connection
set ftp0 [new Application/FTP]
$ftp0 attach-agent $tcp0
$ns at 1.0 "$ftp0 start"
$ns at 50.0 "$ftp0 stop"
#=================================
# Termination
#===================================
#Define a 'finish' procedure
proc finish {} {
global ns tracefilenamfile
$ns flush-trace
close $tracefile
close $namfile
exec nam 2nodewireless.nam &
exit 0
}
for {set i 0} {$i< $val(nn) } { incri } {
$ns at $val(stop) "\$n$i reset"
}
$ns at $val(stop) "$ns nam-end-wireless $val(stop)"
$ns at $val(stop) "finish"
$ns at $val(stop) "puts \"done\" ; $ns halt"
$ns run

Dept of ECE, DBIT Page 73


COMPUTER NETWORKS LABORATORY 2023-2024

Figure: Simulation of Communication between two nodes using TCP/IP Model

Figure: Resultant File

Dept of ECE, DBIT Page 74


COMPUTER NETWORKS LABORATORY 2023-2024

Experiment:15
Aim: classful addressing identification
An IPv4 address is a 32-bie address that uniquely and universally defines the Connection of a
deevice to the internet
IPv4 addresses are unique. They ar uniqu in the sence that each address defines one,and only
one,connection to the internet.Two dvics on the internet can never have the same address at the
same time. We well see later tht, by using some strategies,an address may be assigned to a dvic for
a time period and then taken away and assigned to another device
Addrss Space
A proctocol such as IPv4 that defins addresss has an address space. An address space is the total
number of addresses used by the protocol. If a protocol uses N bits todefin an address, the address
space is 2N beceuse ach bit can have two different values(0 or 1)and n bits can have 2N values
IPv4 uses 32- bit addresses, which means that the address space is 232 or 4,294,967,296.this means
that,theoretically, if there were no restriction ,more than 4 billions devices could be connected to
the enternet. We will see shortly that the actual number is much less because of the restriction
imposed on the addresses

Notations
There are two prevalent notations to shoe an IPv4 address:binary notation and dottd decimal notation
Binary Notations: in binary notation ,the IPv4 address is displayed as 32bits. Each octet is often referred
to as a byte. So it is common to hear an IPv4 address reffed to as a32- bit address or a 4-byte address. Th
following is aa example of an IPv4 address in binary notations:
01110101 10010101 00011101 00000010
Dotted -Decimal Notation: to make the IPv4 address more compact and easier to read. Interntet addresses
are usually written in decimal form with a decimal point separating the bytes. Th following is the dotted-
decimal notation of the above address
117.149.29.2

Classful Addressing
IPv4 addressing , at its inception, used the concept of classes. The architecture is called classful
addressing.although this scheme is becioming obsolete, w briefly discuss it here to show the rational
classless addressing.

Dept of ECE, DBIT Page 75


COMPUTER NETWORKS LABORATORY 2023-2024

In classful addressing, the address space is divided into five classes:A,B,C,D and E. Each class occupies
some part of the address space

#include <stdio.h>
#include <string.h>
void extractIpAddress(unsigned char *sourceString,short *ipAddress)
{
unsigned short len=0;
unsigned char oct[4]={0},cnt=0,cnt1=0,i,buf[5];
len=strlen(sourceString);
for(i=0;i<len;i++)
{
if(sourceString[i]!='.'){
buf[cnt++] =sourceString[i];
}
if(sourceString[i]=='.' || i==len-1){
buf[cnt]='\0';
cnt=0;
oct[cnt1++]=atoi(buf);
}
}
ipAddress[0]=oct[0];
ipAddress[1]=oct[1];
ipAddress[2]=oct[2];
ipAddress[3]=oct[3];
}

Dept of ECE, DBIT Page 76


COMPUTER NETWORKS LABORATORY 2023-2024

int main()
{
unsigned char ip[20]={0};
short ipAddress[4];
printf("Enter IP Address (xxx.xxx.xxx.xxx format): ");
scanf("%s",ip);
extractIpAddress(ip,&ipAddress[0]);
printf("\nIp Address: %03d. %03d. %03d. %03d\n",ipAddress[0],ipAddress[1],ipAddress[2],ipAddress[3]);

if(ipAddress[0]>=0 && ipAddress[0]<=127)

printf("Class A Ip Address.\n"); if(ipAddress[0]>127 && ipAddress[0]<191)

printf("Class B Ip Address.\n");
if(ipAddress[0]>191 && ipAddress[0]<224)
printf("Class C Ip Address.\n");
if(ipAddress[0]>224 && ipAddress[0]<=239)
printf("Class D Ip Address.\n");
if(ipAddress[0]>239)
printf("Class E Ip Address.\n");
return 0;
}

Dept of ECE, DBIT Page 77


COMPUTER NETWORKS LABORATORY 2023-2024

COMPUTER NETWORKS VIVA QUESTIONS

1. Define Network?
2. What is a Link?
3. What is a node?
4. What is a gateway or Router?
5. What is point-point link?
6. What is Multiple Access?
7. What are the advantages of Distributed Processing?
8. What are the criteria necessary for an effective and efficient network?
9. Name the factors that affect the performance of the network?
10. Name the factors that affect the reliability of the network?
11. Name the factors that affect the security of the network?
12. What is Protocol?
13. What are the key elements of protocols?
14. What are the key design issues of a computer Network?
15. Define Bandwidth and Latency?
16. Define Routing?
17. What is a peer-peer process?
18. When a switch is said to be congested?
19. What is semantic gap?
20. What is Round Trip Time?
21. Define the terms Unicasting, Multiccasting and Broadcasting?
22. What is Multiplexing?
23. Name the categories of Multiplexing?
24. What is FDM?
25. What is WDM?
26. What is TDM?
27. What is Synchronous TDM?
28. List the layers of OSI
29. Which layers are network support layers?
30. Which layers are user support layers?
31. Which layer links the network support layers and user support layers?
32. What are the concerns of the Physical Layer?
33. What are the responsibilities of Data Link Layer?
34. What are the responsibilities of Network Layer?
35. What are the responsibilities of Transport Layer?
36. What are the responsibilities of Session Layer?
37. What are the responsibilities of Presentation Layer?
38. What are the responsibilities of Application Layer?
39. What are the two classes of hardware building blocks?
40. What are the different link types used to build a computer network?
41. What are the categories of Transmission media?
42. What are the types of errors?
43. What is Error Detection? What are its methods?

Dept of ECE, DBIT Page 78


COMPUTER NETWORKS LABORATORY 2023-2024

44. What is Redundancy?


45. What is VRC?
46. What is LRC?.
47. What is CRC?
48. What is Checksum?
49. List the steps involved in creating the checksum.
50. What are the Data link protocols?
51. Compare Error Detection and Error Correction:
52. What is Forward Error Correction?
53. Define Retransmission?
54. What are Data Words?
55. What are Code Words?
56. What is a Linear Block Code?
57. What are Cyclic Codes?
58. Define Encoder?
59. Define Decoder?
60. What is Framing?
61. What is Fixed Size Framing?
62. Define Character Stuffing?
63. What is Bit Stuffing?
64. What is Flow Control?
65. What is Error Control?
66. What Automatic Repeat Request (ARQ)?
67. What is Stop-and-Wait Protocol?
68. What is Stop-and-Wait Automatic Repeat Request?
69. What is usage of Sequence Number in Reliable Transmission?
70. What is Pipelining?
71. What is Sliding Window?
72. What is Piggy Backing?
73. What are the two types of transmission technology available?
74. What is subnet?
75. Difference between the communication and transmission.
76. What are the possible ways of data exchange?
77. What is SAP?
78. What do you meant by "triple X" in Networks?
79. What is frame relay, in which layer it comes?
80. What is terminal emulation, in which layer it comes?
81. What is Beaconing?
82. What is redirector?
83. What is NETBIOS and NETBEUI?
84. What is RAID?
85. What is passive topology?
86. What is Brouter?
87. What is cladding?
88. What is point-to-point protocol?
89. How Gateway is different from Routers?

Dept of ECE, DBIT Page 79


COMPUTER NETWORKS LABORATORY 2023-2024

90. What is attenuation?


91. What is MAC address?
92. Difference between bit rate and baud rate.
93. What is Bandwidth?
94. What are the types of Transmission media?
95. What is Project 802?
96. What is Protocol Data Unit?
97. What are the different type of networking / internetworking devices?
98. What is ICMP?
99. What are the data units at different layers of the TCP / IP protocol suite?
100. What is difference between ARP and RARP?
101. What is the minimum and maximum length of the header in the TCP segment and IP
datagram?
102. What is the range of addresses in the classes of internet addresses?
103. What is the difference between TFTP and FTP application layer protocols?
104. What are major types of networks and explain?
105. What are the important topologies for networks?
106. What is mesh network?
107. What is difference between baseband and broadband transmission?
108. Explain 5-4-3 rule?
109. What MAU?
110. What is the difference between routable and non- routable protocols?
111. Why should you care about the OSI Reference Model?
112. What is logical link control?
113. What is virtual channel?
114. What is virtual path?
115. What is packet filter?
116. What is traffic shaping?
117. What is multicast routing?
118. What is region?
119. What is silly window syndrome?
120. What are Diagrams and Trigrams?
121. Expand IDEA.
122. What is wide-mouth frog?
123. What is Mail Gateway?
124. What is IGP (Interior Gateway Protocol)?
125. What is EGP (Exterior Gateway Protocol)?
126. What is autonomous system?
127. What is BGP (Border Gateway Protocol)?
128. What is Gateway-to-Gateway protocol?
129. What is NVT (Network Virtual Terminal)?
130. What is a Multi-Homed Host?
131. What is Kerberos?
132. What is OSPF?
133. What is Proxy ARP?
134. What is SLIP (Serial Line Interface Protocol)?

Dept of ECE, DBIT Page 80


COMPUTER NETWORKS LABORATORY 2023-2024

135. What is RIP (Routing Information Protocol)?


136. What is source route?

Dept of ECE, DBIT Page 81


COMPUTER NETWORKS LABORATORY 2023-2024

Dept of ECE, DBIT Page 82


COMPUTER NETWORKS LABORATORY 2023-2024

Dept of ECE, DBIT Page 83


COMPUTER NETWORKS LABORATORY 2023-2024

Dept of ECE, DBIT Page 84

You might also like