0% found this document useful (0 votes)
27 views49 pages

17ECL68 CCN Final

The document is a laboratory manual for Computer Networks at the Cambridge Institute of Technology, detailing various simulation experiments and programming tasks using network simulation tools like NCTUns. It includes instructions for setting up experiments involving point-to-point networks, Ethernet LANs, and wireless LANs, as well as programming tasks in C/C++ for network protocols and algorithms. Additionally, it provides an introduction to the NCTUns simulator, highlighting its features and setup procedures.

Uploaded by

Jenita Suba
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views49 pages

17ECL68 CCN Final

The document is a laboratory manual for Computer Networks at the Cambridge Institute of Technology, detailing various simulation experiments and programming tasks using network simulation tools like NCTUns. It includes instructions for setting up experiments involving point-to-point networks, Ethernet LANs, and wireless LANs, as well as programming tasks in C/C++ for network protocols and algorithms. Additionally, it provides an introduction to the NCTUns simulator, highlighting its features and setup procedures.

Uploaded by

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

Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

CAMBRIDGE INSTITUTE OF TECHNOLOGY


(Approved by AICTE, Recognized by Government of Karnataka &
Affiliated to Visvesvaraya Technological University, Belgaum, Karnataka)

NBA & NAAC Accredited, an ISO 9001: 2015 Certified Institute


K.R.Puram, Bangalore-560 036 Phone:
080-25618798/99, Fax:080-25618789,

Department of Electronics & Communication


Engineering

Lab coordinators: Prof .MAHENDRA BM, Prof. JENITA SUBASH, Dr. SHOBHA S, Prof. SHYAM SUNDAR V
PART A
Simulation experiments using NS2/ NS3/ OPNET/ NCTUNS/
NetSim/ QualNet/ Packet Tracer or any other equivalent tool

EXP PAG
T. E
NAME OF THE EXPERIMENT
NO. NO.
1 Implement a point to point network with Three nodes and duplex links
between them. Analyze the network performance by setting the queue
size and varying the bandwidth.

Dept of ECE 1 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

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.
4 For the given data, use CRC-CCITT polynomial to obtain CRC
code. Verify the program for the cases
i) Without Error ii) With Error
5 Implementation of Stop and Wait Protocol and Sliding Window
Protocol
6 Write a program for congestion control using leaky bucket
algorithm.

Expected Viva Questions


Introduction to NCTUns

Introduction

NCTUns is open source, high quality, and supports many types of networks.The NCTUns
is a high-fidelity and extensible network simulator and emulator capable of simulating various protocols
used in both wired and wireless IP networks. Its core technology is based on the novel kernel re-entering

Dept of ECE 2 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

methodology invented by Prof. S.Y. Wang [1, 2] when he was pursuing his Ph.D. degree at Harvard
University. Due to this novel methodology, NCTUns provides many unique advantages that cannot be
easily achieved by traditional network simulators such as ns-2 [3] and OPNET [4].

After obtaining his Ph.D. degree from Harvard University in September 1999, Prof. S.Y. Wang
returned to Taiwan and became an assistant professor in the Department of Computer Science and
Information Engineering, National Chiao Tung University (NCTU), Taiwan, where he founded his
“Network and System Laboratory.” Since that time, Prof. S.Y. Wang has been leading and working with
his students to design and implement NCTUns (the NCTU Network Simulator) for more than five years.

Salient features of NCTUns

The NCTUns network simulator and emulator has many useful features listed as follows:

● It can be used as an emulator. An external host in the real world can exchange packets (e.g., set up a
TCP connection) with nodes (e.g., host, router, or mobile station) in a network simulated by NCTUns.
Two external hosts in the real world can also exchange their packets via a network simulated by
NCTUns. This feature is very useful as the function and performance of real-world devices can be
tested under various simulated network conditions.

● It directly uses the real-life Linux ’s TCP/IP protocol stack to generate high-fidelity simulation results.
By using a novel kernel re-entering simulation methodology, a real-life UNIX (e.g., Linux) kernel’s
protocol stack can be directly used to generate high-fidelity simulation results.

● It can use any real-life existing or to-be-developed UNIX application program as a traffic generator
program without any modification. Any real-life program can be run on a simulated network to
generate network traffic. This enables a researcher to test the functionality and performance of a
distributed application or system under various network conditions. Another important advantage of
this feature is that application programs developed during simulation studies can be directly moved to
and used on real-world UNIX machines after simulation studies are finished. This eliminates the time
and effort required to port a simulation prototype to a real-world implementation if traditional network
simulators are used.

● It can use any real-life UNIX network configuration and monitoring tools. For example, the UNIX
route, ifconfig, netstat, tcpdump, traceroute commands can be run on a simulated network to configure
or monitor the simulated network.
● In NCTUns, the setup and usage of a simulated network and application programs are exactly the same
as those used in real-world IP networks. For example, each layer-3 interface has an IP address
assigned to it and application programs directly use these IP addresses to communicate with each
other. For this reason, any person who is familiar with real-world IP networks can easily learn and
operate NCTUns in a few minutes. For the same reason, NCTUns can be used as an educational tool to

Dept of ECE 3 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

teach students how to configure and operate a real-world network.

● It can simulate fixed Internet, Wireless LANs, mobile ad hoc (sensor) networks, GPRS networks, and
optical networks. A wired network is composed of fixed nodes and point-to-point links. Traditional
circuit-switching optical networks and more advanced Optical Burst Switching (OBS) networks are
also supported. A wireless networks is composed of IEEE 802.11 (b) mobile nodes and access points
(both the ad-hoc mode and infra-structure mode are supported). GPRS cellular networks are also
supported.

● It can simulate various networking devices. For example, Ethernet hubs, switches, routers, hosts, IEEE
802.11 (b) wireless stations and access points, WAN (for purposely delaying/dropping/reordering
packets), Wall (wireless signal obstacle), GPRS base station, GPRS phone, GPRS GGSN, GPRS
SGSN, optical circuit switch, optical burst switch, QoS DiffServ interior and boundary routers, etc.

● It can simulate various protocols. For example, IEEE 802.3 CSMA/CD MAC, IEEE 802.11 (b)
CSMA/CA MAC, learning bridge protocol, spanning tree protocol, IP, Mobile IP, Diffserv (QoS),
RIP, OSPF, UDP, TCP, RTP/RTCP/SDP, HTTP, FTP, Telnet, etc.

● Its simulation speed is high. By combining the kernel re-entering methodology with the discrete-event
simulation methodology, a simulation job can be finished quickly.

● Its simulation results are repeatable. If the chosen random number seed for a simulation case is fixed,
the simulation results of a case are the same across different simulation runs even though there are
some other activities (e.g., disk I/O) occurring on the simulation machine.

● It provides a highly integrated and professional GUI environment. This GUI can help a user (1) draw
network topologies, (2) configure the protocol modules used inside a node, (3) specify the moving
paths of mobile nodes, (4) plot network performance graphs, (5) playing back the animation of a
logged packet transfer trace, etc. All these operations can be easily and intuitively done with the GUI.

● Its simulation engine adopts an open-system architecture and is open source. By using a set of module
APIs provided by the simulation engine, a protocol module writer can easily implement his (her)
protocol and integrate it into the simulation engine. NCTUns uses a simple but effective syntax to
describe the settings and configurations of a simulation job. These descriptions are generated by the
GUI and stored in a suite of files. Normally the GUI will automatically transfer these files to the
simulation engine for execution. However, if a researcher wants to try his (her) novel device or
network configurations that the current GUI does not support, he (she) can totally bypass the GUI and
generate the suite of description files by himself (herself) using any text editor (or script program). The
non-GUI-generated suite of files can then be manually fed to the simulation engine for execution.
● It supports remote and concurrent simulations. NCTUns adopts a distributed architecture. The GUI

Dept of ECE 4 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

and simulation engine are separately implemented and use the client-server model to communicate.
Therefore, a remote user using the GUI program can remotely submit his (her) simulation job to a
server running the simulation engine. The server will run the submitted simulation job and later return
the results back to the remote GUI program for analyzes. This scheme can easily support the cluster-
computing model in which multiple simulation jobs are performed in parallel on different server
machines. This can increase the total simulation throughput.

● It supports more realistic wireless signal propagation models. In addition to providing the simple
(transmission range = 250 m, interference range = 550 m) model that is commonly used in the ns-2,
NCTUns provides a more realistic model in which a received bit’s BER is calculated based on the
used modulation scheme, the bit’s received power level, and the noise power level around the receiver.
Large-scale path loss and small-scale fading effects are also simulated.

GETTING STARTED

Setting up the environment

A user using the NCTUns in single machine mode, needs to do the following steps before he/she
starts the GUI program:

1. Start up the dispatcher on terminal 1.

2. Start up the coordinator on terminal 2.

3. Start up the nctunsclient on terminal 3.

After the above steps are followed, the starting screen of NCTUns disappears and the user is presented
with the working window.

PART-A

1. Simulate a three-node point-to-point network with a duplex link between them. Set the queue size
and vary the bandwidth and find the number of packets dropped.

STEPS:

Dept of ECE 5 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

Step1: Create a topology as shown in the below figure.

Step 2: Select the hub icon on the toolbar and drag it onto the working window.

Step 3: Select the host icon on the toolbar and drag it onto the working window. Repeat this for another
host icon.

Step 4: Select the link icon on the toolbar and drag it on the screen from host (node 1) to the hub
and again from host(node 2) to the hub. Here the hub acts as node 3 in the point-to-point
network. This leads to the creation of the 3-node point-to-point network topology. Save this
topology as a .tpl file.

Step 5:Double-click on host(node 1), a host dialog box will open up. Click on Node editor and
you can
see the different layers- interface, ARP,FIFO, MAC, TCPDUMP, Physical layers. Select
MAC
and then select full-duplex for switches and routers and half duplex for hubs, and in log
Statistics, select Number of Drop Packets, Number of Collisions, Throughput of incoming
packets and Throughput of outgoing packets. Then click on Add. Another dialog box pops up.
Click on the Command box and type the following Command.

stcp –p 3000 –l 1024 1.0.1.2 click ok.


Here, 1.0.1.2 is IP address of the host 2 (Node 2), and 3000 is the port No.

Step 6: Double-click on host (node 2), and follow the same step as above with only change in command
according to the following syntax:
rtcp –p 3000 –l 1024 and click OK.

Dept of ECE 6 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

Step 7: Click on the E button (Edit Property) present on the toolbar in order to save the changes
made to
the topology. Now click on the R button (Run Simulation). By doing so a user can
run/pause/continue/stop/abort/disconnect/reconnect/submit a simulation. No simulation
settings
can be changed in this mode.
Step 8: Now go to Menu->Simulation->Run. Executing this command will submit the current
Simulation job to one available simulation server managed by the dispatcher. When the
simulation server is executing, the user will see the time knot at the bottom of the screen move.
The time knot reflects the current virtual time (progress) of the simulation case.

Step 9: After the simulation is completed, click on the play button and mean while plot the graphs of the
drop packets and through put input and through put output. These log files are created in
filename.results folder.

Step 10. Now click on the link (connecting the hub and host2) and change the bandwidth say, 9 Mbps,
and run the simulation and compare the two results.

Graphs Sheet:

EXAMPLE AND RESULTS OF EXPT 1


By using HUB:

Commands used: stcp –p 3000 –l 1024 1.0.1.2


Rtcp –p 3000 –l 1024

Dept of ECE 7 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

By setting the bandwidth as 10 Mbps on both the links and queue size as 50 we obtain the following
results:
Output throughput (host 1) = 1177

Input throughput (host 2) = 1177

Collision and drop = 0

By changing bandwidth to 9Mbps in the destination link, we obtain the following results:

Output throughput (host 1) =1177

Input throughput (host 2) = 0 - 77


Collision and drop = 1100
Note: The results of the experiments vary from simulation to simulation.
By using SWITCH

Commands used: stcp -p 7000 -l 1024 1.0.1.2


rtcp -p 7000 -l 1024

Results: By setting the bandwidth as 10 Mbps on both the links and queue size as 50 we obtain the
following results:
output throughput (host 1) = 1190

input throughput host 2 ) = 1190


collision and drop = 0

By changing bandwidth to 9Mbps in the destination link, we obtain the following results:

Dept of ECE 8 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

output throughput (host 1) =1190

input throughput (host 2) = varying

collision and drop = 0 - 7

2. Simulate a four-node point-to-point network and connect the link as follows: Apply a TCP agent
between n0 to n3 and apply a UDP agent between n1 and n3. Apply relevant applications over TCP
and UDP agents changing the parameters and determine the number of packets sent by two agents.

STEPS:
Step1: Create a topology as shown in the below figure.

Step 2: Select 3 Nodes (1,2,3) and connect them using a hub(4) as shown in above.

Dept of ECE 9 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

Step 3: Go to edit mode and save the topology.


Step 4 a : Double click on host (Node 1) and goto node editor, and click on MAC 8023 and put a check
on the Throughput of Outgoing Packets. Click ok. Then click on ADD and type the following
command.
stcp –p 3000 –l 1024 1.0.1.3 and click OK
Here 1.0.1.3 is the IP address of the Host 3 (Receiver) and 3000 is the port no.
Step 4 b : Double-click on host (node 2), and follow the same step as above with only change in
command according to the following syntax:

stg –u 1024 100 1.0.1.3 and click OK


Here, 1.0.1.3 is Receiver IP and 100 is the bandwidth. This forms the UDP connection.
Step 5: Double-click on host (node 3), and follow the same step as above and check on Throughput of
Incoming Packets. And type the following commands:
rtcp –p 3000 –l 1024 click ok ( for TCP)
rtg –u –w log1 click ok ( for UDP)

Here, w is bandwidth and log1 is the name of the file.

Step 6: Click R Button and then goto Menu->Simulation->Run.


Step 7: After the simulation is completed, click on the play button and mean while plot the graphs of the
Throughput Input and Throughput Output. These log files are created in filename.results folder.

Graphs Sheet:

Dept of ECE 10 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

EXAMPLE AND RESULTS OF EXPT 2


Commands used:
stcp -p 3000 -l 1024 1.0.1.3 (for TCP)
stg -u 1024 100 1.0.1.3 (for UDP)

rtcp -p 3000 -l 1024 (for TCP)


rtg -u -w log1 (for UDP)
Results: By setting the bandwidth as 100 Mbps on the TCP link and queue size as 50 we obtain the
following results:

Average no: of TCP packets sent = varying (348 to 1100)


Average no: of UDP packets sent = 1180

Note: The result varies based on the bandwidth.


3. Simulate an Ethernet LAN using N nodes (6-10), change error rate and data rate and compare
throughput.

STEPS:
Step1: Create a topology as shown in the below figure.

Dept of ECE 11 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

Step 2: Select 6 Nodes (1-6) and connect them using a hub(7) as shown in above.
Step 3: Go to edit mode and save the topology.
Step 4 a : Let us say, Node1 and node 6 are source and destination. Double click on host (Node 1) and
goto node editor, and click on MAC 8023 and put a check on the Throughput of Outgoing
Packets. Click ok. Then click on ADD and type the following command.

stcp –p 3000 –l 1024 1.0.1.6

Here 1.0.1.6 is the IP address of the Host 6 (Receiver) and 3000 is the port no.
Step 4 b : Double-click on host (node 6 ), and follow the same step as above and check on Throughput
Of Incoming Packets. And type the following commands: rtcp –p 3000 –l 1024
Step 5: Click on R Button and then goto Menu->Simulation->Run.
Step 6: After the simulation is completed, click on the play button and mean while plot the graphs of the
Throughput Input and Throughput Output. These log files are created in filename.results
folder.
Step 7: Change error rate and data rate in Physical layer and then run the simulation again and compare
the Throughput Input and Throughput Output of 1st and 2nd reading.
Graphs Sheet:

Dept of ECE 12 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

EXAMPLE AND RESULTS OF EXPT 5

Results:
Commands: stcp -p 3000 -l 1024 1.0.1.6
rtcp -p 3000 -l 1024

Initial error rate: 0.0

Initial data rate: 10 Mbps

Output Throughput: 654-1091

Input Throughput: 654-1091

Changed error rate: 1.0

Changed data rate: 10 Mbps

Output Throughput: 654-1091

Dept of ECE 13 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

Input Throughput: 654-1091

Error rate: 1.0

Data rate: 100 Mbps

Output Throughput: 1547-9765


Input Throughput: 1547-9765

4. Simulate an Ethernet LAN using N nodes and set multiple traffic nodes and plot congestion
window for different source/destination.

Dept of ECE 14 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

STEPS:
Step1: Create a topology as shown in the below figure.

Step 2: Select 6 Nodes (1-6) and connect them using a hub(7) as shown in above.
Step 3: Go to edit mode and save the topology.
Step 4 a : Let us say, Node1 and node 6 are source and destination. Double click on host (Node 1) and
goto node editor, and click on MAC 8023 and put a check on the Collision and Packets
Dropped. Click ok. Then click on ADD and type the following command.

stcp –p 3000 –l 1024 1.0.1.6


Here 1.0.1.6 is the IP address of the Host 6 (Receiver) and 3000 is the port no.
Step 4 b : Double-click on host (node 6 ), and follow the same step as above And type the following
commands: rtcp –p 3000 –l 1024

Step 5: Click on R Button and then goto Menu->Simulation->Run.


Step 6: After the simulation is completed, click on the play button and mean while plot the graphs of the
Collision and packets Dropped. These log files are created in filename.results folder.

EXAMPLE AND RESULTS OF EXPT 7


Results:
Commands: stcp -p 300 -l 1024 1.0.1.6
rtcp -p 300 -l 1024

Dept of ECE 15 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

Drops at node 1: 324-750. Drops at node 6: 274-930.


Note: The only difference between the 6th experiment and the present experiment is that here we need to
plot the congestion window i.e. collision log.

5. Simulate simple ESS and with transmitting nodes in wireless LAN by simulation and determine
the performance with respect to transmission of packets.

Dept of ECE 16 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

STEPS:

Step 1: Connect a host and two WLAN access points to a router.

Step 2: Setup multiple mobile nodes around the two WLAN access points and set the path for each
mobile node.

Step 3: Setup a ttcp connection between the mobile nodes and host using the following command:

ttcp -r -u -s [-p port number]

Step 4: Setup the input throughput log at the destination host.

Step 5: To set the transmission range go to Menu->Settings->WLAN mobile node->Show


transmission range.

Step 5:View the results in the filename. results.

The screenshot of the topology is shown below:

Dept of ECE 17 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

EXAMPLE AND RESULTS OF EXPT 8


Results:

Command: ttcp -r -u -s -p 7000


Output Throughput : 1190

PART-B
1 a. Bit Stuffing & De-stuffing

AIM: To perform Bit Stuffing & De-stuffing of the given data.

THEORY:
Data transmission in the physical layer means moving the bits in the form of signal
from the source to destination. The physical layer provides bit synchronization to
ensure that the sender and the receiver use the same bit durations and timings.
The data link layer, needs to pack bits into frames, so that each frame is
distinguishable from another.

Dept of ECE 18 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

Framing in the data link layer separates a message from one source to
destination, or from the other messages to other destinations, by adding a sender
address and the destination address.
Frames can be of fixed size or variable size. In fixed-size framing, there is
no need for defining the boundaries of the frames; the size itself delimiter. In
variable-size framing, we need a way to define the end of the frame and beginning
of the next. Two approaches were used for this purpose: a character-oriented and
a bit-oriented approach.
In a bit-oriented protocols, the data section of the frame is a sequence of bits to be
interpreted by the upper layer as text, graphic, audio, video etc. The protocols use a
special 8-bit pattern flag 01111110 as the delimiter to define the beginning and the
end of the frame. If the flag pattern appears in the data, the stuffing of 1 single bit
prevents the pattern from looking like a flag. This strategy is called bit-stuffing. In
bit-stuffing, if a 0 and five consecutive 1 bits are encountered, an extra 0 is added.
This extra stuffed bit is removed from the data by the receiver.
ALGORITHM:
1. Start
2. Initialize the flags and counter.
3. Input the user data and store it in the Source array.
4. Append the Header flag to the Destination array.
5. Traverse the source array and check for 5 consecutive 1’s in the Source
array.
6. If there are 5 consecutive one’s then stuff a zero after the fifth one and store
in the Destination array.
7. Check for end of the source array if not go to step 5.
8. If it is the end of the Source array append the trailer flag to the destination
array.
9. Print the stuffed message.
10.Remove the header and trailer flags.
11.Copy the Destination array data into the Source array.
12.Check if there are 5 consecutive ones then destuff the next bit.
13.Check for end of the array.
14.If it is the end of the array, print the de-stuffed message else go back to the
step 12.
15.End

Dept of ECE 19 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

PROGRAM:

#include <stdio.h>
//#include <conio.h>
#include <string.h>
#define MAX 1000

void main()
{
int si = 0, di = 0, count = 0; /* si = source index, di = destination index*/
char str[MAX], dest[MAX];
char flag[MAX] = "01111110";

//clrscr(); //clear the screen


printf("Enter the user data in 1's & 0's :");
scanf("%s", str);

di=strlen(flag); //get the string length of 'flag'


strcpy(dest,flag); //copy 'flag' to 'dest'

//start of stuffing
while(str[si] != '\0')
{
if(str[si] == '1')
count++;
else
count = 0;

dest[di++] = str[si++];

if(count == 5)
{
count = 0;
dest[di++] = '0'; //bit stuffed
}
} // end of while loop

dest[di] = '\0'; //add null char to the end of 'dest'


strcat(dest, flag); //concatenate 'dest' & 'flag'

printf("Stuffed message is :%s", dest);

// end of stuffing

di = strlen(dest) - strlen(flag);

Dept of ECE 20 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

dest[di] = '\0'; // to remove trailing flag

for(di = strlen(flag), si = 0; dest[di]!='\0'; si++, di++)


str[si] = dest[di];

str[si] = '\0'; //add null char to the end of 'str'

//start of destuffing
si = 0, di = 0, count = 0;

while(str[si] != '\0')
{
if(str[si] == '1')
count++;
else
count = 0;

dest[di++] = str[si++];

if(count == 5)
{
count = 0;
si++; //skip the bit '0' that was stuffed
}
} // end of while loop

dest[di] = '\0';
//end of destuffing

printf("\nDestuffed message is :%s", dest);

//getch();
}

OUTPUT:

Dept of ECE 21 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

1 b. Character Stuffing & De-stuffing


AIM: To perform Character Stuffing & De-stuffing of the given data

THEORY:
Character-oriented protocols:
In a character-oriented protocol, data to be carried are 8-bit characters. The
header, which normally carries the source and the destination addresses, and the
trailer, which carries error detection or error correction redundant bits. To separate
one frame from the next, an 8-bit flag is added at the beginning and the end of the
frame. Character-oriented protocol was popular when only text was exchanged.
The flag could be selected of any character not used in the text. To fix this

Dept of ECE 22 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

problem, a byte-stuffing strategy was added. In byte stuffing (or character


stuffing), a special byte is added to the data section of the frame when there is a
character with the same pattern as the flag. The data section is stuffed with an extra
byte. This extra byte is called as the escape character (ESC) which is predefined bit
pattern. Whenever the receiver encounters the ESC character, it removes it from
the data section and treats the next character as the data, not a delimiting flag.
ALGORITHM:
1. Start.
2. Initialize the flags and counter.
3. Enter the string data.
4. Store the string data into the source array.
5. Add the Header flag to the Destination array.
6. Check if there is continuous occurrence of ‘D’, ‘L’, ‘E’ characters.
7. If yes, then stuff ‘D’, ‘L’, &’E’ to the data string and store it in Destination
array else store only the scanned character.
8. Check the end of the data string.
9. If it is the end of the data string then append the trailer flag to the destination
array else go to step 6.
10.Print the stuffed message.
11.Remove the header and trailer flags.
12.Copy the destination array data into the source array.
13.Check if there is continuous occurrence of ‘D’, ‘L’ & ‘E’ characters
14.If yes de-stuff the stuffed characters else store only the scanned character.

15.Check for end of the array.


16.If yes, print the de-stuffed message else go back to the step 13.
17.End

PROGRAM:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define MAX 1000

void main()
{
int si = 0, di = 0; /* si = source index, di = destination index*/
char src[MAX], dest[MAX];
char flag1[] = "DLESTX", flag2[] = "ETXDLE";

Dept of ECE 23 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

clrscr(); //clear the screen


printf("Enter the STRING data : ");
scanf("%s", src);

di=strlen(flag1); //get the string length of 'flag1'


strcpy(dest,flag1); //copy 'flag1' to 'dest'

//start of stuffing
while(src[si] != '\0')
{
if(src[si] == 'D' && src[si+1] == 'L' && src[si+2] == 'E')
{
dest[di] = 'D', dest[di+1] = 'L', dest[di+2] = 'E', dest[di+3] = 'D', dest[di+4]
= 'L', dest[di+5] = 'E';
di +=6;
si+=3;
}
else
dest[di++] = src[si++];
} // end of while loop

dest[di] = '\0'; //add null char to the end of 'dest'


strcat(dest, flag2); //concatenate 'dest' & 'flag2'

printf("Stuffed message is : %s", dest);

// end of stuffing

di = strlen(dest) - strlen(flag2);
dest[di] = '\0'; // to remove trailing flag

for(di = strlen(flag1), si = 0; dest[di]!='\0'; si++, di++)


src[si] = dest[di];

src[si] = '\0'; //add null char to the end of 'src'

//start of destuffing
si = 0, di = 0;

while(src[si] != '\0')
{
if(src[si] == 'D' && src[si+1] == 'L' && src[si+2] == 'E')
{
dest[di] = 'D', dest[di+1] = 'L', dest[di+2] = 'E';
si +=6;

Dept of ECE 24 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

di+=3;
}
else
dest[di++] = src[si++];
} // end of while loop

dest[di] = '\0';
//end of destuffing

printf("\nDestuffed message is : %s", dest);

getch();
}

OUTPUT:

Dept of ECE 25 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

Program 2
Write a program for distance vector algorithm to find suitable path for
transmission.
A distance-vector routing (DVR) protocol requires that a router inform its neighbors of topology
changes periodically. Historically known as the old ARPANET routing algorithm (or known as
Bellman-Ford algorithm).
Bellman Ford Basics – Each router maintains a Distance Vector table containing the distance
between itself and ALL possible destination nodes. Distances, based on a chosen metric, are
computed using information from the neighbors’ distance vectors.
Distance Vector Algorithm –

A router transmits its distance vector to each of its neighbors in a routing packet.
Each router receives and saves the most recently received distance vector from each of its
neighbors.
A router recalculates its distance vector when:
It receives a distance vector from a neighbor containing different information than before.
It discovers that a link to a neighbor has gone down.
The DV calculation is based on minimizing the cost to each destination

Dx(y) = Estimate of least cost from x to y

Dept of ECE 26 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

C(x,v) = Node x knows cost to each neighbor v


Dx = [Dx(y): y ∈ N ] = Node x maintains distance vector
Node x also maintains its neighbors' distance vectors
– For each neighbor v, x maintains Dv = [Dv(y): y ∈ N ]
Note –

From time-to-time, each node sends its own distance vector estimate to neighbors.
When a node x receives new DV estimate from any neighbor v, it saves v’s distance vector and it
updates its own DV using B-F equation:
Dx(y) = min { C(x,v) + Dv(y), Dx(y) } for each node y ∈ N Distance Vector Algorithm –

1. A router transmits its distance vector to each of its neighbors in a routing packet.
2. Each router receives and saves the most recently received distance vector from
each of its neighbors.
3. A router recalculates its distance vector when:
● It receives a distance vector from a neighbor containing different information
than before.
● It discovers that a link to a neighbor has gone down.
The DV calculation is based on minimizing the cost to each destination
Dx(y) = Estimate of least cost from x to y
C(x,v) = Node x knows cost to each neighbor v
Dx = [Dx(y): y ∈ N ] = Node x maintains distance vector
Node x also maintains its neighbors' distance vectors
– For each neighbor v, x maintains Dv = [Dv(y): y ∈ N ]
Note –
● From time-to-time, each node sends its own distance vector estimate to neighbors.
● When a node x receives new DV estimate from any neighbor v, it saves v’s

Dx(y) = min { C(x,v) + Dv(y), Dx(y) } for each node y ∈ N


distance vector and it updates its own DV using B-F equation:

Program

#include<stdio.h>
#include<stdlib.h>

Dept of ECE 27 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

#include<ctype.h> // this header file is useful for testing and mapping characters.
int min(int a,int b)
{
return (a<b)?a:b;
}
void dist(int p[10][10],int n)
{
int i,j,k;
for(k=1;k<=n;k++)
for(j=1;j<=n;j++)
for(i=1;i<=n;i++)
p[i][j]=min(p[i][j],p[i][k]+p[k][j]);
}
int main()
{
int a[10][10],i,j,n,flag,temp=1;
printf("Enter number of nodes:\n");
scanf("%d",&n);
printf("Enter the matrix 0 for self loop and 999 for no path\n");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&a[i][j]);
for(i=1;i<=n;i++)
{
printf("Initial record of %d is\n",i);

Dept of ECE 28 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

for(j=1;j<=n;j++)
printf("%d to %d is %d \n",i,j,a[i][j]);
}
dist(a,n);
for(i=1;i<=n;i++)
{
printf("Updated record of %d is \n",i);
for(j=1;j<=n;j++)
printf("%d to %d is %d\n",i,j,a[i][j]);
}
while(temp)
{
do{
printf("Enter 0 to find shortest path and 1 to exit\n");
scanf("%d",&flag);
if(flag==0)
{
printf("Enter 2 nodes\n");
scanf("%d %d",&i,&j);
printf("%d to %d is %d\n",i,j,a[i][j]);
}

Dept of ECE 29 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

else
temp=0;
break;
}while(flag!
=0);
}
exit(0);
}

Program 3
Implement
Dijkstra’s
algorithm to
compute the
shortest
routing path.

Below are
the detailed
steps used
in
Dijkstra’s
algorithm
to find the

Dept of ECE 30 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

shortest path from a single source vertex to all other vertices in the given
graph.

Algorithm
1) Create a set sptSet (shortest path tree set) that keeps track of vertices
included in shortest path tree, i.e., whose minimum distance from source is
calculated and finalized. Initially, this set is empty.
2) Assign a distance value to all vertices in the input graph. Initialize all
distance values as INFINITE. Assign distance value as 0 for the source vertex
so that it is picked first.
3) While sptSet doesn’t include all vertices
….a) Pick a vertex u which is not there in sptSet and has minimum distance
value.
….b) Include u to sptSet.
….c) Update distance value of all adjacent vertices of u. To update the
distance values, iterate through all adjacent vertices. For every adjacent
vertex v, if sum of distance value of u (from source) and weight of edge u-v,
is less than the distance value of v, then update the distance value of v.

Dept of ECE 31 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

Dept of ECE 32 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

Djikstra's algorithm pseudocode


We need to maintain the path distance of every vertex. We can
store that in an array of size v, where v is the number of vertices.

We also want to able to get the shortest path, not only know the
length of the shortest path. For this, we map each vertex to the
vertex that last updated its path length.

Once the algorithm is over, we can backtrack from the destination


vertex to the source vertex to find the path.

A minimum priority queue can be used to efficiently receive the


vertex with least path distance.

function dijkstra(G, S)
for each vertex V in G
distance[V] <- infinite
previous[V] <- NULL
If V != S, add V to Priority Queue Q
distance[S] <- 0

while Q IS NOT EMPTY


U <- Extract MIN from Q
for each unvisited neighbour V of U
tempDistance <- distance[U] + edge_weight(U, V)
if tempDistance < distance[V]
distance[V] <- tempDistance
previous[V] <- U
return distance[], previous[]

Program
#include <stdio.h>
#include<stdlib.h>
void main()
{
int cost[10][10],distance[10],path[10][10],n,v,p,row,column,min,index=1,i,j;
printf("enter the no. of nodes: ");

Dept of ECE 33 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

scanf("%d",&n);
printf("enter cost matrix: ");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
scanf("%d",&cost[i][j]);
}
}
printf("enter node to visit: ");
scanf("%d",&v);
printf("enter paths for the selected nodes: ");
scanf("%d",&p);
printf("enter path matrix \n");
for(i=1;i<=p;i++)
{
for(j=1;j<=n;j++)
{
scanf("%d",&path[i][j]);
}
}
for(i=1;i<=p;i++)
{
distance[i]=0;
row=1;
for(j=1;j<n;j++)
{
if(row!=v)

Dept of ECE 34 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

{
column=path[i][j+1];
distance[i]=distance[i]+cost[row][column];
}
row=column;
}
}
min=distance[1];
for(i=1;i<=p;i++)
{
if(distance[i]<=min)
{
min=distance[i];
index=i;
}
}
printf("minimum distance is %d \n",min);
printf("minimum distance path is \n");
for(i=1;i<=n;i++)
{
if(path[index][i]!=0)
printf("----> %d",path[index][i]);
}
}

4. CRC and CCITT C- Program


The cyclic redundancy check, or CRC, is a technique for detecting
errors in digital data, but not for making corrections when errors are detected. It is used
primarily in data transmission.

Dept of ECE 35 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

In the CRC method, a certain number of check bits, often called a checksum, are appended to the
message being transmitted. The receiver can determine whether or not the check bits agree with
the data, to ascertain with a certain degree of probability whether or not an error occurred in
transmission.
If an error occurred, the receiver sends a "negative acknowledgement" (NAK) back to the sender,
requesting that the message be retransmitted. The technique is also sometimes applied to data
storage devices, such as a disk drive. In this situation each block on the disk would have check
bits, and the hardware might automatically initiate a reread of the block when an error is
detected, or it might report the error to software. The material that follows speaks in terms of a
"sender" and a "receiver" of a "message," but it should be understood that it applies to storage
writing and reading as well.

Algorithm
Start
Enter the message to be transmitted
Append the message with 16(since it is 16-bit CRC) 0`s (i.e. if you input 5 digit message, the
appeneded message should be 21-bits.)
XOR appended message and transmit it.(Here, you compare with an already exisitng string such
as 10001000000100001 and replace the bits the same way XOR operation works)
Verify the message that is received is the same as the one sent.
End

Program
#include<stdio.h>
#include<string.h>
#define N strlen(g)
char t[128],cs[128],g[]="10001000000100001";
int a,e,c;
void xor()
{
for(c=1;c<N;c++)
cs[c]=((cs[c] == g[c])?'0':'1');
}

Dept of ECE 36 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

void crc()
{
for(e=0;e<N;e++)
cs[e]=t[e];
do{
if(cs[0]=='1')
xor();
for(c=0;c<N-1;c++)
cs[c]=cs[c+1];
cs[c]=t[e++];
}while(e<=a+N-1);
}
int main()
{
int flag=0;
system("cls");
printf("Enter polynomial:\n");
scanf("%s",&t);
printf("Generated divisor is :%s\n",g);
a=strlen(t);
for(e=a;e<a+N-1;e++)
t[e]='0';
printf("Modified polynomial is %s\n",t);
crc();
printf("Checksum is :%s\n",cs);

Dept of ECE 37 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

for(e=a;e<a+N-1;e++)
t[e]=cs[e-a];
printf("Final codeword is %s\n",t);
printf("Test error detection?\n1(yes) 0(no):\n");
scanf("%d",&flag);
if(flag==0)
printf("No error detected \n");

if(flag==1)
{
printf("Enter position where error is to be inserted:\n ");
scanf("%d",&e);
if(e<a+N-1){
t[e]=(t[e]=='0')?'1':'0';
printf("err data : %s\n",t);
}
else
printf("Position where error should be created is above the length of
Codeword...Hence\n");
crc();
for(e=0;(e<N-1)&&(cs[e]!='1');e++);
if(e<N-1)
printf("Error detected\n");

Dept of ECE 38 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

Program 5: - Stop and Wait Protocol


Aim: -
Implement Stop and Wait Protocol and Sliding Window Protocol in a C program
and execute the same and display the result.
(i) Stop and Wait Protocol

Theory:-
If data frames arrive at the receiver site faster than they can be processed, the
frames must be stored until their use. Normally, the receiver does not have
enough storage space, especially if it is receiving data from many sources.

Dept of ECE 39 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

This may result in either the discarding of frames or denial of service. To prevent
the receiver from becoming overwhelmed with frames, we somehow need to tell
the sender to slow down. There must be feedback from the receiver to the
sender.
The protocol we discuss now is called the Stop-and-Wait Protocol because the
sender sends one frame, stops until it receives confirmation from the receiver
(okay to go ahead), and then sends the next frame. We still have unidirectional
communication for data frames, but auxiliary ACK frames (simple tokens of
acknowledgment) travel from the other direction. We add flow control to our
previous protocol.

Design
Figure 11.8 illustrates the mechanism. Comparing this figure with Figure 11.6, we
can see the traffic on the forward channel (from sender to receiver) and the
reverse channel. At any time, there is either one data frame on the forward
channel or one ACK frame on the reverse channel. We therefore need a half-
duplex link.

Example 11.2
Figure 11.9 shows an example of communication using this protocol. It is still very
simple. The sender sends one frame and waits for feedback from the receiver.
When the ACK arrives, the sender sends the next frame. Note that sending two
frames in the protocol involves the sender in four events and the receiver in two
events.

Dept of ECE 40 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

//Program
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,TOT_FRAMES,wait_time,ACK;
TOT_FRAMES=5;
printf("the number of packets are: %d\n ", TOT_FRAMES);
for(i=1;i<=TOT_FRAMES;i++)// 1 to 5 packets
{
printf("\n SENDER: The packet sent is: %d\n ", i);
wait_time= rand()%2;

Dept of ECE 41 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

if(wait_time==1)
{
ACK = rand ()%2;
if(ACK==1)
{
printf("\n RECEIVER: Ack number : %d \n ", i+1);

}
else
{
printf("\n RECEIVER: NO Ack number : %d \n ", i+1);
i--;
}

}
else
{
printf("\n SENDER: Time out, Resend \n ");
i--;
}
}
return 0;
}

6. LEAKY BUCKET ALGORITHM

Dept of ECE 42 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

Aim: - Write a program for congestion control using leaky bucket algorithm in C
language and execute the same and display the result.

Theory:

To understand this concept first we have to know little about traffic shaping.
Traffic Shaping: This is a mechanism to control the amount and the rate of the traffic sent to the
network.
Two techniques can shape traffic:
Leaky Bucket
Token Bucket.
Suppose we have a bucket in which we are pouring water in a random order but we have to get
water in a fixed rate, for this we will make a hole at the bottom of the bucket. It will ensure that
water coming out is in a some fixed rate. And also if bucket will full we will stop pouring in it.
The input rate can vary, but the output rate remains constant. Similarly, in networking, a
technique called leaky bucket can smooth out bursty traffic. Bursty chunks are stored in the
bucket and sent out at an average rate.

Policing
1. Network monitors traffic flows continuously to ensure they meet their traffic
contract.
2. The process of monitoring and enforcing the traffic flow is called policing.
3. When a packet violates the contract, network can discard or tag the packet
giving it lower priority
4. If congestion occurs, tagged packets are discarded first
5. Leaky Bucket Algorithm is the most commonly used policing mechanism

Dept of ECE 43 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

(i) Bucket has specified leak rate for average contracted rate
(ii) Bucket has specified depth to accommodate variations in arrival rate
(iii) Arriving packet is conforming if it does not result in overflow

Leaky Bucket algorithm can be used to police arrival rate of a packet stream.

//leaky bucket program


#include<stdio.h>
#include<stdlib.h>
#define MIN(x,y) (x>y)?y:x
void main()
{
int orate,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;i<nsec;i++)
{
printf(" %d",i+1);
printf(" \t%d\t ",inp[i]);
printf(" \t %d\t ",MIN((inp[i]+count),orate));

Dept of ECE 44 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

if((x=inp[i]+count-orate)>0)
{
if(x>cap)
{
count=cap;
drop=x-cap;
}
else
{
count=x;
drop=0;
}
}
else
{
drop=0;
count=0;
}
printf(" \t %d \t %d \n",drop,count);
}
//return 0;
}

VIVA QUESTIONS

Dept of ECE 45 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

1. What is socket? How it is implemented?

2. What are the different system calls on client side and server side implementation?

3. How to convert single client into multiple clients handling in server?

4. What are the differences between SOCK_STREAM, SOCK_DGRAM, and


SOCK_RAM? What is their level of implementation?

5. Explain need of sock adder_ in structure and IN ADDR_ANY.

6. What is FIFO? How to implement Multiple FIFOs. Disadvantages of FIFO?

7. Which are the different IPC Primitives? Explain Why IPC Primitives are required?

8. Explain the purpose of RS algorithm? What is Public and Private Key? How to find
public and private key in RSA algorithm?

9. List some Cryptographic algorithms?

10. What is congestion? Explain leaky bucket and token bucket algorithm? What are its
disadvantages of each?

11. List other congestion control algorithm.

12. What are the disadvantages of RSA Algorithm?

13. What is the need for routing protocols? List some routing protocols. Which are common
routing algorithms used by routing protocols

14. Disadvantages of Distance vector routing. Explain the method to overcome such
disadvantage.

15. What is CRC? What is the need for CRC? Which Layer it is implemented?

16. Can CRC be employed for error correction if so how.

17. Explain steps of error correction and error detection. What is encoding and decoding,
why it is required?

18. What is Hamming code? Can it be used for error detection and correction how?

Dept of ECE 46 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

19. What are linear block codes? Explain their advantages.

20. What is protocol? List some protocols. How to modify existing protocol?

21. Difference between TCP/IP and OSI Layer Model?

22. Difference between Router, Bridge, Gateway channel. In which layer it is used?

23. Difference between hub and switch. Which is more compatible and reliable?
24. Explain various Ethernet standards.

25. Difference between IP and MAC address.

26. In which layer ATM protocol is used? Explain the purpose.

27. In Which layer or protocol which converts IP to MAC Address.

28. Which are the different collision detection protocols?

29. Which are the different channelization protocol and explain their needs?

30. Explain term error rate, bandwidth, throughput transmission delay, BER, Inter arrival
time. What is unit of bandwidth?

31. What is congestion/contention Window? How it is constructed and managed and by


which layer?

32. What is ping utility? How it is implemented?

33. Which are different parameters in ICMP protocol? Explain purpose of ICMP.

34. List and explain different link types. Differentiate its characteristics.

35. List TCP and UDP Properties?

36. Why TCP is more reliable than UDP?

37. Is data rate and bandwidth are same?

38. Difference between ESS and BSS. Explain various elements composing the structure of
BSS.

39. Explain various factors that results in congestion and collision.

Dept of ECE 47 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

40. Explain QOS and different measures taken for implementing QOS in network.

41. List different N/W topologies.

42. Difference between Data rate versus Throughput.

43. List the meaning and term used for data in different layers of TCP/IP protocol suite.
44. Difference between intranet, internet and Ethernet. What are the relationships between
these network types?

45. What are the main functions carried out in data link layer?
46. What is bit stuffing?
47. What is frame?
48. Name the two sub layers of Data link layer. Specify their protocols.
49. What are the 7 layers of OSI model?
50. Why do we use bit stuffing and character stuffing?
51. What is Character stuffing?
52. What is frame?
53. What do you mean by protocols?
54. What is the difference between OSI model and TCP/IP protocol?
55. What are the Key design issues of computer networks?
56. Define Routing.
57. Define network.
58. What do you mean by link?
59. Define a node.
60. Explain the Dijikstra’s Algorithm
61. What are the types of error?
62. What is error detection? What are the methods of error detection?
63. What is redundancy?
64. What is CRC?
65. What is checksum?

Dept of ECE 48 / 48
Cambridge Institute of Technology 17ECL68 Computer Networks laboratory Manual

Dept of ECE 49 / 48

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy