Government College of Engineering, Karad: EX708: Computer Communication Networks Lab Manual

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 39

Government College of Engineering, Karad

(An Autonomous Institute of Government of Maharashtra)

EX708: Computer Communication Networks


Lab Manual

Final Year of B. Tech

Submitted by –

NAME: Rutuja Patil


Roll No: 18153171
Computer Network Lab Submitted by - 17151213

List of Experiments

Sr.no Name of Experiment


1 Study of networking
2 PC Network TCP/IP configuration
3 Construction of CAT 5 Ethernet cable (straight/
cross-over)
4 Study of LAN
5 Simulation and implementation of bit stuffing
6 Simulation of CRC
7 Configuration of Network topology using Packet
Tracer
8 Study of stop and wait, Go back N protocol
9 Study of Token Bucket algorithm
10 Simulation of Distance Vector Routing algorithm
Experiment No. 1
Study of
Networking
Introduction to Networking -
By themselves, computers are powerful tools. When they are connected in a network, they become
even more powerful because the functions and tools that each computer provides can be shared
with other computers. Network is a small group of computers that share information, or they can be
very complex, spanning large geographical areas that provide its users with unique capabilities,
above and beyond what the individual machines and their software applications can provide.

The goal of any computer network is to allow multiple computers to communicate. The type of
communication can be as varied as the type of conversations you might have throughout the course
of a day. For example, the communication might be a download of an MP3 audio file for your MP3
player; using a web browser to check your instructor’s web page to see what assignments and tests
might be coming up; checking the latest sports scores; using an instant messaging service, such as
Yahoo Messenger, to send text messages to a friend; or writing an email and sending it to a business
associate.

Networks Advantages and Disadvantages -


Advantages:

1. Connectivity and Communication.


2. Data Sharing Hardware Sharing.
3. Internet Access.
4. Data Security and Management.
5. Performance Enhancement and Balancing.
6. Entertainment.

Disadvantages:

1. Network Hardware, Software and Setup Costs.


2. Hardware and Software Management & Administration Costs.
3. Undesirable Sharing.
4. Illegal or Undesirable Behaviour.
5. Data Security Concerns.
We could also focus on the networking architectures in which these types of networks can
be implemented:
1. PEER-TO-PEER NETWORKING – which might be implemented in a workgroup
consisting of computers running Microsoft Windows 98 or Windows 2000
Professional;
2. SERVER-BASED NETWORKING – which might be based on the domain model of
Microsoft Windows NT, the domain trees and forests of Active Directory in Windows
2000, or another architecture such as Novell Directory Services (NDS) for Novell
NetWare;
3. TERMINAL-BASED NETWORKING – which might be the traditional host-based
mainframe environment; the UNIX X Windows environment; the terminal services
of Windows NT 4, Server Enterprise Edition; Windows 2000 Advanced Server; or
Citrix MetaFrame.

Conclusion: so, in this way we studied the basics of networking.


Experiment No. 2
PC Network TCP/IP configuration
Introduction to IP addressing -
Each Network Interface Card (NIC or Network card) present in a PC is assigned one Network address
called as IP address [or Network address]. This IP address is assigned by the administrator of the
network. No two PCs can have the same IP address.

There is a burned-in address on the NIC called as Physical Address [or MAC address or Hardware
address]. The MAC address of a network card indicates the vendor of that card and a unique serial
number.

Network Configuration -
Step 1. Connect to the Internet. Establish and verify connectivity to the Internet. This step
ensures the computer has an IP address.
Step 2. Gather TCP/IP configuration information.
a. Use the Start menu to open the command prompt
(Start>Programs>Accessories>Command Prompt or Start>Programs>Command Prompt).
b. Type ipconfig and press Enter key. The spelling of the ipconfig is critical, but the case
is not.

c. The screen shows the IP address, subnet mask and the default gateway. The IP
address and the default gateway should be in the same network or subnet; otherwise,
this host wouldn’t be able to communicate outside the network.
Step 3. Record the following TCP/IP information for this computer.
Step 4. Compare this computer’s TCP/IP configuration to that of others on the LAN. If this computer
is on a LAN, compare the information of several machines (Hosts).
Step 5. Check additional TCP/IP configuration information. a. To see more information, type
ipconfig/all and press Enter key.

The figure shows the detailed IP configuration of this computer on the screen.

b. You should see the following information: the host name (computer name), the Physical address
of this machine, IP address, subnet Mask, Default Gateway and DNS Servers.

Step 6. Close the screen when finished.

Using PING TRACERT from a Workstation –


Step 1. Establish and verify connectivity to the Internet. This step ensures that the computer has an
IP address.

Step 2. Open the Command prompt (MS-DOS). Ping the IP address of another computer.

a. In the window, type ping, a space, and the IP address of a computer recorded in the previous
lab.
Ping uses the Internet Control Message Protocol (ICMP) echo-request and echo-reply feature to
test physical connectivity. Because ping reports on four attempts, it gives an indication the
reliability of the connection. Look over the result and verify that the ping was successful. Was
the ping successful? If not, report to the instructor.

Step 3. Trace the route to the Umm-alqura university website: type tracert www.uqu.edu.sa and
press Enter key.
The result shows the complete route to the site and the number of hops in path.
Trace a local host name or IP address in your local area network (LAN).
Record the output and interpret.

Step 4. Close the window. Also see “pathping ip or host” command. Which only shows path
from source to destination.

Conclusion: so, in this way we studied the network configuration.


Experiment No. 3
Construction of CAT 5 Ethernet cable (straight/ cross-over)
Apparatus:
1. RJ-45 connector
2. IO Connector
3. Crimping Tool
4. Twisted pair Cable
5. Cable Tester
Procedure:
To do these practical following steps should be done:

1. Start by stripping off about 2 inches of the plastic jacket off the end of the cable. Be very careful at
this point, as to not nick or cut into the wires, which are inside. Doing so could alter the
characteristics of your cable, or even worse render is useless. Check the wires, one more time for
nicks or cuts. If there are any, just whack the whole end off, and start over.

2. Spread the wires apart, but be sure to hold onto the base of the jacket with your other hand. You
do not want the wires to become untwisted down inside the jacket. Category 5 cable must only have
1/2 of an inch of 'untwisted' wire at the end; otherwise, it will be 'out of spec'. At this point, you
obviously have ALOT more than 1/2 of an inch of un-twisted wire.

3. You have 2 end jacks, which must be installed on your cable. If you are using a pre-made cable,
with one of the ends whacked off, you only have one end to install - the crossed over end. Below are
two diagrams, which show how you need to arrange the cables for each type of cable end. Decide at
this point which end you are making and examine the associated picture below.

Diagram shows you how to prepare straight through wired connection


4. After you made it, you don't need to take care of the direction of the cable.

5. At one end, cut the wire to length leaving enough length to work, but not too much excess.
Strip off about 2 inches of the Ethernet cable sheath. Align each of the coloured wires
according to the layout of the jack. Use the punch down tool to insert each wire into the
jack. Repeat the above steps for the second RJ45 jack.

Result: so, in this way we learn how to construct the CAT5 ethernet cable (straight / crossover).
Experiment No. 4
Study of LAN
LAN
A local area network (LAN) is a collection of devices connected together in one physical
location, such as a building, office, or home. A LAN can be small or large, ranging from a
home network with one user to an enterprise network with thousands of users and devices
in an office or school.
Regardless of size, a LAN's single defining characteristic is that it connects devices that are in
a single, limited area. In contrast, a wide area network (WAN) or metropolitan area network
(MAN) covers larger geographic areas. Some WANs and MANs connect many LANs together.

TYPES OF NETWORK
Common examples of area network types are:
1. LAN - Local Area Network
2. WLAN - Wireless Local Area Network
3. WAN - Wide Area Network
4. MAN - Metropolitan Area Network
5. SAN - Storage Area Network, System Area Network, Server Area Network, or
sometimes Small Area Network.
6. CAN - Campus Area Network, Controller Area Network, or sometimes Cluster Area
Network
7. PAN - Personal Area Network
8. DAN - Desk Area Network
Procedure to connect the LAN -
Procedure On the host computer

 On the host computer, follow these steps to share the Internet connection:
 Log on to the host computer as Administrator or as Owner.
 Click Start, and then click Control Panel.
 Click Network and Internet Connections.
 Click Network Connections.
 Right-click the connection that you use to connect to the Internet. For example, if
you connect to the Internet by using a modem, right-click the connection that you
want under Dial-up / other network available.
 Click Properties.
 Click the Advanced tab.
 Under Internet Connection Sharing, select the Allow other network users to connect
through this computer's Internet connection check box.
 If you are sharing a dial-up Internet connection, select the Establish a dial-up
connection whenever a computer on my network attempts to access the Internet
check box if you
 want to permit your computer to automatically connect to the Internet.
 Click OK. You receive the following message:
 When Internet Connection Sharing is enabled, your LAN adapter will be set to use
IP address
 192.168.0. 1. Your computer may lose connectivity with other computers on your
network. If these other computers have static IP addresses, it is a good idea to
set them to obtain their IP addresses automatically. Are you sure you want to
enable Internet Connection Sharing?
 Click Yes.
 The connection to the Internet is shared to other computers on the local
area network (LAN).
 The network adapter that is connected to the LAN is configured with a static IP
address of
 192.168.0. 1 and a subnet mask of 255.255.255.0
On the client computer

 To connect to the Internet by using the shared connection, you must confirm the
LAN adapter IP configuration, and then configure the client computer. To confirm
the LAN adapter IP configuration, follow these steps:
 Log on to the client computer as Administrator or as Owner.
 Click Start, and then click Control Panel.
 Click Network and Internet Connections.
 Click Network Connections.
 Right-click Local Area Connection and then click Properties.
 Click the General tab, click Internet Protocol (TCP/IP) in the connection uses the
following items list, and then click Properties.
 In the Internet Protocol (TCP/IP) Properties dialog box, click Obtain an IP address
automatically (if it is not already selected), and then click OK.
 Note: You can also assign a unique static IP address in the range of 192.168.0.2
to 254.
 For example, you can assign the following static IP address, subnet mask, and
default gateway:
 IP Address 192.168.31.202
 Subnet mask 255.255.255.0
 Default gateway 192.168.31.1
 In the Local Area Connection Properties dialog box, click OK.
 Quit Control Panel.

Conclusion: So, in this way we studied about the LAN (local area network).
Computer Network Lab Submitted by 17151213

Experiment No. 5
Simulation of Bit Stuffing
Q. Create a program for Simulation and implementation of bit stuffing which will have
output as
Enter Data Bits:
Data Bits Before Bit stuffing:
Data Bits After Bit stuffing:

Theory: -
Data link layer is responsible for something called Framing, which is the
division of stream of bits from network layer into manageable units (called
frames). Frames could be of fixed size or variable size. In variable-size framing,
we need a way to define the end of the frame and the beginning of the next
frame.

Bit stuffing is the insertion of non-information bits into data. Note that stuffed
bits should not be confused with overhead bits. Overhead bits are non-data bits
that are necessary for transmission (usually as part of headers, checksums etc.).

Government College of Engineering Karad Submitted by - 17151229


Applications of Bit Stuffing –
1. synchronize several channels before multiplexing
2. rate-match two single channels to each other
3. run length limited
coding Code -
#include <stdio.h>
#include <string.h>

int main()
{
int i=0,count=0;
char databits[80];

printf("Enter Data Bits: ");


scanf("%s",databits);

printf("Data Bits Before Bit Stuffing:%s",databits);


printf("\nData Bits After Bit stuffing :");

for(i=0; i<strlen(databits); i++)


{
if(databits[i]=='1')
count++;
else
count=0;
printf("%c",databits[i]);

Government College of Engineering Karad Submitted by - 17151229


if(count==5)
{
printf("0");
count=0;
}
}
return 0;
}

Output: -
Computer Network Lab Submitted by - 17151213

Experiment No. 6
Simulation of Cyclic Redundancy Code
Q. Simulation of Cyclic Redundancy Code: Concept of Binary division in CRC generator
and checker: Use C/C++/ JAVA/ Python/PHP/MATLAB or any suitable programming
language Output will be
Transmission End Receiver End
1.Input Polynomial 1. Data Received
2.Data to be Transmitted 2. Divide with Polynomial
3.Adding Padding Bits if Required 3. Show reminder 0
4.Reminder 4. Change received Data
5.Data Transmitted with Reminder 5. Perform polynomial division
6. Show Error
Answer -
• If we consider the data unit 1001 and divisor or polynomial generator 1011their
polynomial representation is:
• Now string of n 0s (one less than that of divisor) is appended to data. Now data is
1001000 and its corresponding polynomial representation is x6 + x3.
• The division of x6+x3 by x3+x+ 1 is shown in fig.

Code for Transmitter End [C++] –

#include<iostream>

using namespace std;

int main(){

string

msg,crc,encoded="";

cout<<"Enter the Data = ";

getline(cin,msg);

cout<<"Enter the Generator Polynomial = ";

getline(cin,crc);

int m = msg.length(),n=crc.length();

encoded += msg;

for (int i = 1; i <= n-1 ; i++)//append n 0s to encoded msg

encoded += "0";

for (int i = 0; i <= encoded.length()-n; )

for (int j = 0; j < n ; j++)

encoded[i+j]=encoded[i+j]==crc[j]? '0':'1';

for (; i < encoded.length() && encoded[i]!='1'; i++);

cout<<"###### Transmitter End ####"<<endl;


cout<<"The Input Data = "<<msg<<endl;

cout<<"The Generator Polynomial = "<<crc<<endl;

cout<<"The Remainder = "<<encoded.substr(encoded.length()-n+1)<<endl;

cout<<"The Data Transmitted with Reminder = "<<msg+encoded.substr(encoded.length()-n+1)<<endl;

return 0;

Output for Transmitter End [C++] –

Code for Receiver End [C++] –

#include<iostream>

using namespace std;

int main(){

string crc,encoded;

cout<<"Enter the Data Recived = ";

getline(cin,encoded);

cout<<"Enter the Generator Polynomial = ";

getline(cin,crc);

cout<<"###### Receiver End ####"<<endl;

cout<<"Data Received = "<<encoded<<endl;

int n=crc.length();
for (int i = 0; i <= encoded.length()-n; )//changed the Received data

for (int j = 0; j < n ; j++)//performed the division

encoded[i+j]=encoded[i+j]==crc[j]? '0':'1';

for (; i < encoded.length() && encoded[i]!='1'; i++);

cout<<"Divide with Polynomial = "<<crc<<endl;

cout<<"Remainder = "<<encoded.substr(encoded.length()-n+1)<<endl;

for (char i : encoded.substr(encoded.length()-n) ) // checking the Error

if(i!='0'){

cout<<"Error in communication....."<<endl;

return 0;

cout<<"No Error....."<<endl;

return 0;

}
Output for Receiver End Without Error –

Output for Receiver End With Error –


Experiment No. 7
Configuration of Network topology using Packet Tracer
Apparatus (Software):
1. Packet tracer Software
Principle:
To implement this practical following network topology is required to be configured using
the commands learned in previous practical.
After configuring the given network, a packet should be ping from any one machine to
another.

Procedure:

 Router0 Configuration Command.........


Router>enable
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#interface FastEthernet0/0
Router(config-if)#ip address 192.168.0.254 255.255.255.0
Router(config-if)#no shutdown
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
Router(config-if)#exit
Router(config)#exit
%SYS-5-CONFIG_I: Configured from console by console
Router#
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#interface FastEthernet0/0
Router(config-if)#
Router(config-if)#exit
Router(config)#interface Serial2/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#no shutdown
%LINK-5-CHANGED: Interface Serial2/0, changed state to down
Router(config-if)#exit
Router(config)#exit
%SYS-5-CONFIG_I: Configured from console by console
Router#wr
Building configuration... [OK]
Router#show running-config Building configuration...
Current configuration: 542 bytes
!
version 12.2
no service password-encryption
!
hostname Router
!
!
!
!
!
ip ssh version 1
!
!
interface FastEthernet0/0
ip address 192.168.0.254 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet1/0
no ip address
duplex auto
speed auto
shutdown
!
interface Serial2/0
ip address 192.168.1.1 255.255.255.0
!
interface Serial3/0
no ip address
shutdown
!
interface FastEthernet4/0
no ip address
shutdown
!
interface FastEthernet5/0
no ip address
shutdown
!
ip classless
!
!
!
!
!
line con 0
line vty 0 4
login
!
!
end Router#

 Router1 Configuration Command.......


Continue with configuration dialog? [yes/no]: no
Press RETURN to get started!
Router>enable Router#
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#interface Serial2/0
Router(config-if)#ip address 192.168.1.2 255.255.255.0
Router(config-if)#no shutdown
%LINK-5-CHANGED: Interface Serial2/0, changed state to up
Router(config-if)#exit
Router(config)#exit
%SYS-5-CONFIG_I: Configured from console by console
Router#config t
Enter configuration commands, one per line.
End with CNTL/Z.
Router(config)#
Router(config)#interface Serial2/0
Router(config-if)#
Router(config-if)#exit
Router(config)#interface FastEthernet0/0
Router(config-if)#ip address 192.168.2.254 255.255.255.0
Router(config-if)#no shutdown
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
Router(config-if)#exit
Router(config)#exit
%SYS-5-CONFIG_I: Configured from console by console
Router#wr
Building configuration... [OK]
Router#
Router#show running-config Building configuration...
Current configuration: 542 bytes
!
version 12.2
no service password-encryption
!
hostname Router
!
!
!
!
!
ip ssh version 1
!
!
interface FastEthernet0/0
ip address 192.168.2.254 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet1/0
no ip address
duplex auto
speed auto
shutdown
!
interface Serial2/0
ip address 192.168.1.2 255.255.255.0
!
interface Serial3/0
no ip address shutdown
!
interface FastEthernet4/0
no ip address
shutdown
!
interface FastEthernet5/0
no ip address
shutdown
!
ip classless
!
!
!
!
!
line con 0
line vty 0 4
login
!
!
end Router#

 IP ROUTE Command......
Router#config t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ip route 192.168.2.0 255.255.255.0 192.168.2.2
Router(config)#exit
Router#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP
external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1,
E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area - candidate default, U - per-user
static route, o - ODR P - periodic downloaded static route
Gateway of last resort is not set
C 192.168.2.0/24 is directly connected, FastEthernet0/0
C 192.168.1.2/24 is directly connected, Serial2/0
S 192.168 2.0/24 [1/0] via 192.168.1.2
Router#
 IP ROUTE Command......
Router>enable
Router#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP
external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1,
E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area- candidate default, U - per-user
static route, o - ODR P - periodic downloaded static route
Gateway of last resort is not set
S 192.168 0.0/24 [1/0] via 192.168.1.1
C 192.168.0.0/24 is directly connected, FastEthernet0/0 C 192.168.1.1/24 is directly
connected, Serial2/0
Router#

Conclusion: so, in this way we configure the network using packet tracer.
Experiment No. 8
Study of stop and wait, Go back N protocol
What is Protocol?

A network protocol defines rules and conventions for communication between network devices.
Network protocols include mechanisms for devices to identify and make connections with each
other, as well as formatting rules that specify how data is packaged into messages sent and
received.

Some protocols also support message acknowledgment and data compression designed for reliable
and/or high-performance network communication. Protocols exist at several levels in a
telecommunication connection.

For example, there are protocols for the data interchange at the hardware device level and protocols
for data interchange at the application program level. In the standard model known as Open
Systems Interconnection(OSI), there are one or more protocols at each layer in the
telecommunication exchange that both ends of the exchange must recognize and observe.

Concept of Stop & Wait Protocol -


It is a fundamental technique to provide reliable transfer of frames in computer network.

1. In this method of flow control, the sender sends a single frame to receiver & waits for an
2. acknowledgment.
3. The next frame is sent by sender only when acknowledgment of previous frame is received.
4. This process of sending a frame & waiting for an acknowledgment continues as long as the
5. sender has data to send.
6. To end up the transmission sender transmits end of transmission (EOT) frame.

Sender:

Rule 1) Send one data at a time

Rule 2) Send next packet only after receiving acknowledgement for previous.

Receiver:

Rule 1) Send Acknowledgement after receiving and consuming of data packet.

Rule 2) After consuming packet acknowledgement need to be sent (Flow Control).

Working Architecture of Stop & Wait Protocol -


Normal Operation

1. After transmitting one frame, the sender waits for an acknowledgment (ACK) from the
receiver before transmitting the next one.
2. In this way, the sender can recognize that the previous frame is transmitted successfully and
we could say "stop-n-wait" guarantees reliable transfer between nodes.
3. To support this feature, the sender keeps a record of each frame it sends.
4. To avoid confusion caused by delayed or duplicate ACKs, "stop-n-wait" sends each frame
with unique sequence numbers and receives that numbers in each ACKs.
5. Stop-and-wait ARQ is inefficient compared to other ARQs, because the time
between packets, if the ACK and the data are received successfully, is twice the transit time
(assuming the turnaround time can be zero). The throughput on the channel is a fraction of
what it could be. To solve this problem, one can send more than one packet at a time with a
larger sequence number and use one ACK for a set Timeout.
6. If the sender doesn't receive ACK of previous frame after a certain period of time (with in
fixed time) the sender times out and retransmits that frame again.
7. There are two cases when the sender doesn't receive ACK:1
1. when the ACK is lost.2.
2. when the frame itself is not transmitted
Architecture of Stop and Wait Protocol -

Advantages of Stop & Wait Protocol -


1. The main advantage of stop & wait protocols is its accuracy. Next frame is transmitted only
when the first frame is acknowledged. So, there is no chance of frame being lost.
2. It can be used for noisy channels.
3. It has both error and flow control mechanism.
4. It has timer implementation

Disadvantages of Stop and Wait Protocol -


 Efficiency is very less.
 Only one frame is sent at a time.
 Timer should be set for each individual frame.
 No pipelining.
 Sender window size is 1 (disadvantage over Go Back N ARQ)
 Receiver window size is 1 (disadvantage over Selective Repeat ARQ)
 Lost Data

 Lost Acknowledgement
Go back N protocol –

The three main characteristic features of GBN are:

1. Sender Window Size (WS)


It is N itself. If we say the protocol is GB10, then Ws = 10. N should be always greater than 1
in order to implement pipelining. For N = 1, it reduces to Stop and Wait protocol.

Efficiency Of GBN = N/(1+2a)

where a = Tp/Tt

If B is the bandwidth of the channel, then

Effective Bandwidth or Throughput

= Efficiency * Bandwidth

= (N/(1+2a)) * B

2. Receiver Window Size (WR)

WR is always 1 in GBN.

Now what exactly happens in GBN, we will explain with a help of example. Consider the diagram
given below. We have sender window size of 4. Assume that we have lots of sequence numbers just
for the sake of explanation. Now the sender has sent the packets 0, 1, 2 and 3. After acknowledging
the packets 0 and 1, receiver is now expecting packet 2 and sender window has also slided to further
transmit the packets 4 and 5. Now suppose the packet 2 is lost in the network, Receiver will discard
all the packets which sender has transmitted after packet 2 as it is expecting sequence number of 2.
On the sender side for every packet send there is a time out timer which will expire for packet
number 2. Now from the last transmitted packet 5 sender will go back to the packet number 2 in the
current window and transmit all the packets till packet number 5. That’s why it is called Go Back N.
Go back means sender has to go back N places from the last transmitted packet in the
unacknowledged window and not from the point where the packet is lost.
3. Acknowledgements
There are 2 kinds of acknowledgements namely:
1. Cumulative Ack: One acknowledgement is used for many packets. The main advantage is
traffic is less. A disadvantage is less reliability as if one ack is the loss that would mean that
all the packets sent are lost.
2. Independent Ack: If every packet is going to get acknowledgement independently. Reliability
is high here but a disadvantage is that traffic is also high since for every packet we are
receiving independent ack.
GBN uses Cumulative Acknowledgement. At the receiver side, it starts a acknowledgement timer
whenever receiver receives any packet which is fixed and when it expires, it is going to send a
cumulative Ack for the number of packets received in that interval of timer. If receiver has received
N packets, then the Acknowledgement number will be N+1. Important point is Acknowledgement
timer will not start after the expiry of first timer but after receiver has received a packet.
Time out timer at the sender side should be greater than Acknowledgement timer.

Conclusion: so, in this way we studied the stop and wait, Go back N protocol
Experiment No. 9
Study of Token Bucket algorithm
A token bucket provides a mechanism that allows a desired level of burstiness within a flow by
limiting its average rate as well as its maximum burst size. A token bucket can be viewed as an
abstraction of the rate of transfer expressed as a relationship between a committed burst size CBS,
a committed information rate CIR, and a time interval T.

CIR=CBS/T

Where,

 Committed information rate (CIR) specifies the amount of data that can be sent per unit
time interval and represents the long-term average rate at which a flow can send its data
into the network. Sometimes, this parameter is referred to as the mean rate. The mean rate
is specified in bits per sec or bytes per sec as IP packets are of variable lengths.
 Committed burst size (CBS) specifies the maximum number of bytes that can be transmitted
into the network in an extremely short interval of time. In theory, as the time interval tends
to zero, the committed burst size represents the number of bytes that can be
instantaneously transmitted into the network. However, in practice, it is not possible to
instantaneously send multiple bytes into the network since there is an upper bound on the
physical transmission rate that cannot be exceeded.
 Time interval (T) specifies the time per burst.

According to the definition, the rate of the traffic sent over the network, and over any integral
multiple of the time interval, will not exceed the mean rate. However, within the interval, the rate
can be arbitrarily fast. For instance, consider a flow that is constrained to send data at an average
rate of 12,000 bits per sec. This flow can send 3000 bits within a time interval of 100 millisecond.
When considering this 100-millisecond interval, it might appear that its average rate is 30,000 bits
per sec. However, as long as the flow does not send more than 9000 bits in the second interval
containing the 100 milliseconds in which it sent 3000 bits, it will not exceed the average of 12,000
bits per sec. Before examining the token bucket algorithm, let us consider an example of how a
token bucket is specified.

Example

Specifying a token bucket.

Assume that the traffic needs to be sent into the network at a mean rate CIR of 2.4 Mbps. If a burst
for a duration of 10 millisec (= 0.01 sec) needs to be sustained, CBS can be calculated using the token
bucket definition as
2400000 𝑏𝑖𝑡𝑠/ sec× 0.01𝑢𝑛𝑑𝑒𝑓𝑖𝑛𝑒𝑑𝑠𝑒𝑐
𝐶𝐵𝑆 =
8𝑢𝑛𝑑𝑒𝑓𝑖𝑛𝑒𝑑𝑏𝑖𝑡𝑠/𝑏𝑦𝑡𝑒

which yields 3000 bytes. Thus, the token rate is 300,000 (= 2,400,000/8) bytes per sec, the
committed burst size is 3000 bytes, and the token interval (T) is 10 millisec. Therefore, the token
generator credits the token bucket with 3000 bytes worth of tokens every 10 millisec. This indicates
that the conforming traffic will, in the worst case, come in 100 bursts per sec of 3000 bytes each and
at a committed information rate not exceeding 2.4 Mbps.
Algorithm

Based on the token bucket definition, an algorithm can be devised that controls the rate of the
traffic in such a way that over a long time period the average allowed rate approaches the desired
mean rate CIR asymptotically and over a short time interval the burst size of the traffic is upper
bounded by bucket size CBS. The algorithm assigns a token bucket for each flow that consists of a
bucket that can hold up to CBS tokens. Each token can be considered as permission for the source to
transmit a certain number of bits into the network. These CBS tokens in the bucket represent the
allowed burst size. New tokens are added to the bucket at the rate of CIR tokens per token interval.
If the bucket contains less than CBS tokens when a new token is generated, it is added to the bucket;
otherwise, the newly generated token is dropped and the token bucket remains filled with CBS
tokens. A conceptual illustration of the token bucket algorithm is shown below

Figure. Token bucket algorithm.

Now, continuing with the algorithm, the packets arriving in a flow are placed into a packet queue
that has a maximum length of L. If the flow delivers more packets than the queue can store, the
excess packets are discarded. When a packet of size P bytes arrives in a flow, one of the following
cases will apply.

 If the token bucket is full, P tokens are removed before the packet is transmitted into the
network.
 If the token bucket is empty, the packet is queued until P tokens are accumulated in the
bucket. Eventually, when the bucket contains P tokens, that many tokens are removed from
the bucket and the packets are transmitted into the network.
 Finally, consider the case when the token bucket is partially filled with say X tokens. If P ⩽X,
then P tokens are removed from the bucket and the packet is sent into the network. If P>X,
the packet is queued and it waits until the remaining P−X tokens are accumulated. Once the
bucket accumulates the required P tokens, they are removed from the bucket and the
packet is forwarded into the network.
 If packets arrive in short bursts, up to CBS tokens would be available in the bucket, and thus,
up to CBS bytes would still get through. As a consequence, the maximum burst size is limited
to at most CBS bytes for the flow. Furthermore, as the token replenishment rate is CIR
tokens every token interval T, the maximum number of bytes that can enter the network
over any time period of t is CBS+t×CIR/T. Thus, the token replenishment rate, CIR, serves to
limit the long-term average rate of bytes entering the network. The length of the packet
queue bounds the delay incurred by a packet.
Conclusion: so, in this way we studied the token bucket algorithm.
Computer Network Submitted by - 17151213

Experiment No.10
Implementation of distance vector routing algorithm using C++.
Theory:
A distance-vector routing protocol requires that a router informs its neighbours of topology
changes periodically. Compared to link-state protocols, which require a router to inform all
the nodes in a network of topology changes, distance-vector routing protocols have less
computational complexity and message overhead. The term distance vector refers to the
fact that the protocol manipulates vectors (arrays) of distances to other nodes in the
network. The vector distance algorithm was the original ARPANET routing algorithm and
was also used in the internet under the name of RIP.

Instead, they use two methods:


1. Direction in which router or exit interface a packet should be forwarded.
2. Distance from its destination.

Distance-vector protocols are based on calculating the direction and distance to any link in a
network. "Direction" usually means the next hop address and the exit interface. "Distance"
is a measure of the cost to reach a certain node.

Updates are performed periodically in a distance-vector protocol where all or part of a


router's routing table is sent to all its neighbours that are configured to use the same
distance- vector routing protocol. RIP supports cross-platform distance vector routing
whereas IGRP is a Cisco Systems proprietary distance vector routing protocol. Once a router
has this information it is able to amend its own routing table to reflect the changes and then
inform its neighbours of the changes.
Router 1
A 0
B 2 2
A 5
C 3 B 0
D 4 C 7
D 8
7
Router 2 A 9
B 10
C 0
D 12 12
A 13
B 14
Router 3
C 15
D 0

Router 4
Program:
#include<stdio.h>
#include<iostream>
using namespace std;
struct node
{
unsigned dist[6];
unsigned from[6];
}DVR[10];
int main()
{
cout<<"\n\n-------------------- Distance Vector Routing Algorithm-----------";
int costmat[6][6];
int nodes, i, j, k;
cout<<"\n\n Enter the number of nodes : ";
cin>>nodes; //Enter the nodes
cout<<"\n Enter the cost matrix: \n”;
for (i = 0; i < nodes; i++)
{
for (j = 0; j < nodes; j++)
{
cin>>costmat[i][j];
costmat[i][i] = 0;
DVR[i].dist[j] = costmat[i][j]; //initialise the distance equal to cost matrix
DVR[i].from[j] = j;
}
}
for(i = 0; i < nodes; i++) //We choose arbitrary vertex k and we calculate the
//direct distance from the node i to k using the cost matrix and add the distance from k to
node j
for(j = i+1; j < nodes; j++)
for(k = 0; k < nodes; k++)
if(DVR[i].dist[j] > costmat[i][k] + DVR[k].dist[j])
{ //We calculate the minimum distance
DVR[i].dist[j] = DVR[i].dist[k] + DVR[k].dist[j];
DVR[j].dist[i] = DVR[i].dist[j];
DVR[i].from[j] = k;
DVR[j].from[i] = k;
}
for(i = 0; i < nodes; i++)
{
cout<<"\n\n For router: "<<i+1;
for (j = 0; j < nodes; j++)
cout<<"\t\n node "<<j+1<<" via "<<DVR[i].from[j]+1<<" Distance "<<DVR[i].dist[j];
}
cout<<" \n\n ";
return 0;
}

Output:
-------------------- Distance Vector Routing Algorithm-----------
Enter the number of nodes: 4
Enter the cost matrix:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
For router: 1
node 1 via 1 Distance 0
node 2 via 2 Distance 2
node 3 via 3 Distance 3
node 4 via 4 Distance 4

For router: 2
node 1 via 1 Distance 5
node 2 via 2 Distance 0
node 3 via 3 Distance 7
node 4 via 4 Distance 8

For router: 3
node 1 via 1 Distance 9
node 2 via 2 Distance 10
node 3 via 3 Distance 0
node 4 via 4 Distance 12

For router: 4
node 1 via 1 Distance 13
node 2 via 2 Distance 14
node 3 via 3 Distance 15
node 4 via 4 Distance 0

You might also like