24461783 It Network Lab Manual

52
ANNA UNIVERSITY SAKTHI ENGINEERING COLLEGE THIRUNINRAVUR-602 024 DEPARTMENT OF INFORMATION TECHNOLOGY NETWORK LAB-(CS 1305) NAME :___________________ REG NO :___________________ YEAR :___________________ SEM :___________________

Transcript of 24461783 It Network Lab Manual

Page 1: 24461783 It Network Lab Manual

ANNA UNIVERSITY

SAKTHI ENGINEERING COLLEGE

THIRUNINRAVUR-602 024

DEPARTMENT

OF

INFORMATION TECHNOLOGY

NETWORK LAB-(CS 1305)

NAME :___________________

REG NO :___________________

YEAR :___________________

SEM :___________________

Page 2: 24461783 It Network Lab Manual

ANNA UNIVERSITY

SAKTHI ENGINEERING COLLEGE

REG NO:______________

SEM:_______________

NAME:________________ COURSE: B.TECH(I.T)

This is certified to be the bonafide record of work done by the student in the

CS1305 NETWORK LAB of Sakthi Engineering College during

Jan’ 09 to may’ 09.

HEAD OF THE DEPARTMENT STAFF-IN-CHARGE

SUBMITTED FOR PRACTICAL EXAMINATION HELD ON__________

INTERNAL EXAMINER EXTERNAL EXAMINER

Page 3: 24461783 It Network Lab Manual

INDEX

EXPNO DATE EXPERIMENT NAMEPAGE

NOSIGNATURE

1 LINUX COMMANDS

2 SOCKET CREATION

3SIMULATION OF

ARP/RARP

4 BIT STUFFING

5CYCLIC REDUNDANCY

CHECK

6SIMULATION OF SLIDING

WINDOW PROTOCOL

7 DOMAIN NAME SYSTEM

8 FTP USING RS232

9OPEN SHORTEST PATH

FIRST ALGORITHM

10 GETTING HOST NAME

11STUDY OF NETWORK

SIMULATOR NS2

Page 4: 24461783 It Network Lab Manual

LINUX COMMANDS

1) Mkdir: This is used to create a directory.Syntax: $mkdir directory nameExample: $mkdir dine

2) cd: This is used to change the directory.Syntax: $cd directory nameExample: $cd dine

3) rm: This is used to remove the directory.Syntax: $rm directory name Example: $rm dine

4) cp: This is used to copy content from one file to another file.Syntax: $cp oldfile newfileExample: $cp fcfs fc.c

5) clear: This is used to clear the screen.Syntax: $clear

6) move: This is used to move the file from source to destination.Syntax: $mv oldfile newfileExample: $mv scfs sc.c

7) ls: This command is used to view the content of directory.Syntaz: $ls

8) wc: This command is used to count the no of words (or) characters in the file. Syntax: $wc filenameExample: $wc dine.c

9) date: This command is used to display the current date.Syntax: $dateExample: $13.11.2008

10) echo: This command is used to display the string printed in the command line.Syntax: $echo “string”Example: $echo “hello”

11)who: This is used to display the information about the current user. Syntax:$who

Page 5: 24461783 It Network Lab Manual

12) grep: This is used to display the information about the current user.Syntax: $grep[option] pattern filenameExample: $cat>count

ab acba

grep”a” countabac

13) cat: This command is used to create a file.

Syntax: $cat>filenameExample: $cat>count

14) sort: This command is used to sort the content of the file name.Syntax: $sort file nameExample: $cat>mm

sa co en

$sort mmOutput: co

en sa

15) read command: This command is used to read the variables.Syntax: read varnameExample: read a

Page 6: 24461783 It Network Lab Manual

Result:

Thus the basic Linux commands has been executed and verified.

Page 7: 24461783 It Network Lab Manual

SOCKET CREATION

AIM:

To write a c program to create a socket.

ALGORITHM:

Step 1: Start the program.

Step 2: Include the necessary header files.

Step 3: Declare the variable sockfd1,sockfd2.

Step 4: Define .sockfd1 as socket which transmits data as a stream of bytes.

Step 5: Define .sockfd2 as socket which transmits data as a datagram.

Step 6: Display the file discription value.

Step 7: If the sock fd2= -1 then it is not created .

Step 8: Stop the program excution.

Page 8: 24461783 It Network Lab Manual

SOCKET CREATION#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>int main(){int sockfd1,sockfd2;sockfd1=socket(AF_INET,SOCK_STREAM,0);sockfd2=socket(AF_INET,SOCK_DGRAM,0);if(sockfd==1){printf("socket 1is not created");}else{printf("socket 1 created and\t socket1 file descriptor value is %d\n",sockfd1);if(sockfd2==-1){printf("socket2 creation error");}else{printf("socket2 created and \t socket2 descriptor value is%d\n",sockfd2);}}}

Page 9: 24461783 It Network Lab Manual

Output:

Socket 1 created and socket1 file descriptor value is 3

Socket2 created and socket2 descriptor value is4

Page 10: 24461783 It Network Lab Manual

Result:

Thus the c program for implementing socket creation has been executed and verified.

Page 11: 24461783 It Network Lab Manual

SIMULATION OF ARP/RARP

AIM:

To write a c program to create a socket.

ALGORITHM:

Step 1: Start the program.

Step 2: Include the necessary header files.

Step 3: Declare the function properties for .ARP/RARP.

Step 4: Create a file and with that file declare the physical and logical address.

Step 5: Get the choice of operation. If it is ARP show the logical address and if its RARP display the physical address..

Step 6: Otherwise exit from it.

Step 7: Stop the program excution.

Page 12: 24461783 It Network Lab Manual

ARP/RARP

#include<stdio.h>#include<stdlib.h>#include<string.h>struct file{char phyadd[30];char logadd[30];}f[15];File *fpint n;void arp(char *ladd){int i;for(i=0;i<n;i++){if(strcmp,(ladd,f[i].logadd)){printf("\n corresponding logical address is",f[i].phyadd);break;}if(i==n)printf("the address is not found");}}void rarp(char *padd){int i;for(i=0;i<n;i++){if(!strcmp,(padd,f[i].phyadd)){printf("\n corresponding physical address is",f[i].logadd);break;}}if(i==n)printf("the address is not found");}

int main(){int i=0,ch;char padd[30],ladd[30];fp=fopen("data.txt","r");if(fp=null){

Page 13: 24461783 It Network Lab Manual

pritnf(" \n file not found");exit(0);}while(!feof(fp)){fscanf(fp,"%s%s",f[i].phyadd,f[i].logadd);i++;}fclose(fp);n=i;while(1);{printf("\n 1.ARP \n 2.RARP \n 3.EXIT");printf(" enter your choice");scanf("%d",&ch);switch(ch){case 1:

printf("enter the physical address");scanf("%s",ladd);arp(ladd);break;

case 2:printf(" enter the logical address");scanf("%s",padd);rarp(padd);break;

case 3:exit(1);break;

}}return(0);}

Page 14: 24461783 It Network Lab Manual

Output:

1. ARP2. RARP3. EXIT

Enter your choice: 1

Enter the physical address: 50

Corresponding logical address is: dsp

Enter your choice: 2

Enter the logical address : arun

Corresponding physical address is: 20

Enter your choice: 3

Page 15: 24461783 It Network Lab Manual

Result:

Thus the c program of ARP/RARP is verified and successfully.

Page 16: 24461783 It Network Lab Manual

BIT STUFFING

AIM:

To write a c program to implement bit stuffing for the given bits of information.

ALGORITHM:

Step 1: Start the program execution.

Step 2: Declare the variable and obtain the information size and need it.

Step 3: Create an input file and copy the information into it.

Step 4: Create another file with read mode and check for the condition.

Step 5: Check whether five consecutive is have appeared, if appeared so print 0 as information in the copied file.

Step 6: Finally print the information bit in the created file.

Step 7: Close all the created files.

Step 8: Stop the program execution.

Page 17: 24461783 It Network Lab Manual

BIT STUFFING

#include<stdio.h>main(){int n=0,i,size;char ch,b[100];FILE*ed;FILE*es;printf("enter the bit information size:");scanf("%d",&size);printf("enter the bit information:");for(i=0;i<size;i++){scanf("%c",&b[i]);}ed=fopen("sarinput.txt","wt");i=0;for(i=0;i<size;i++){fputc(b[i],ed);}fclose(ed);ed=fopen("sarinput.txt","rt");if(ed==NULL)printf("\n error ");es=fopen("saroutput.txt","wt");ch=getc(ed);while(ch!=EOF){fputc(ch,es);if(ch='1')n++;elsen=0;if(n==5){fputc('0',es);n=0;}ch=getc(ed);}printf("\n original data");fclose(ed);fclose(es);ed=fopen("sarinput.txt","rbt");ed=fopen("saroutput","rbt");

Page 18: 24461783 It Network Lab Manual

ch=getc(ed);while(ch!=EOF){printf("%c",ch);ch=getc(ed);}printf("\n data after stuffing");ch=getc(es);while(ch!=EOF){printf("%c",ch);ch=getc(es);}fclose(ed);fclose(es);}

Page 19: 24461783 It Network Lab Manual

output:

Enter the bit information size:6

Enter the bit information:111111

original data: 111111data after stuffing:1111101

Page 20: 24461783 It Network Lab Manual

Result:

Thus the program for bit stuffing is verified and written successfully.

Page 21: 24461783 It Network Lab Manual

CYCLIC REDUNDANCY CHECK

AIM:

To write a c program for cyclic redundancy check.

ALGORITHM:

Step 1: Start the program.

Step 2: Enter the dividend and the divisor.

Step 3: Perform the binary division and the CRC remainder is found.

Step 4: Append the CRC remainder with the original data.

Step 5: Stop the program.

Page 22: 24461783 It Network Lab Manual

CYCLIC REDUNDANCY CHECK

#include<stdio.h>#include<string.h>int main(){int i,j=1,k=0,m=0,divlen,len;char orgdiv[20],dividend[20],divisor[20],zeros[10],crc[10];printf("enter the dividend:");scanf("%s",dividend);printf("enter the divisor:");scanf("%s",divisor);divlen=strlen(divisor);for(i=0;i<divlen-1;i++)zeros[i]='0';zeros[i]='\0';strcpy(orgdiv,dividend);strcat(dividend,zeros);len=strlen(dividend);while(i<=(len-divlen+1)){if(dividend[m]=='1'){for(i=1;i<divlen;i++){if(dividend[i]==divisor[i])crc[i]='0';elsecrc[i]='1';dividend[m]=crc[i];m++;}}else{for(i=1;i<divlen;i++){if(dividend[i]=='0')crc[i]='0';elsecrc[i]='1';dividend[m]=crc[i];m++;} }

else{

Page 23: 24461783 It Network Lab Manual

for(i=0;i<divlen;i++){if(dividend[i]='0')crc[i]='0';elsecrc[i]='1';dividend[m]=crc[i];m++;}}for(k=m;dividend[k]!='\0';k++)dividend[k]=dividend[k+1];m=0;j++;}for(j=0;j<divlen-1;j++)crc[j]=dividend[j];crc[j]='\0';printf("\n the crc is: %s",crc);strcat(orgdiv,crc);printf("the append data is p: %s",orgdiv);}

Page 24: 24461783 It Network Lab Manual

Output:

Enter the dividend: 100100

Enter the divisor : 1101

The CRC is : 001

The appendend data is P : 100100001

Page 25: 24461783 It Network Lab Manual

Result:

Thus the program for cyclic redundancy check is verified and written successfully.

Page 26: 24461783 It Network Lab Manual

SIMULATION OF SLIDING WINDOW PROTOCOL

AIM:

To implement the sliding window server and client using c program.

ALGORITHM:

Step 1: Start the program.

Step 2: Declare the necessary header files and variables.

Step 3: Create a socket, if not created print socket error.

Step 4: Connect the server by using the client function.

Step 5: Enter the sequence number to be sent and the current sender window.

Step 6: Stop the program.

Page 27: 24461783 It Network Lab Manual

SLID ING WINDOW #include<stdio.h>#include<string.h>#include<stdlib.h>#include<error.h>#include<netdb.h>int main(){int data[5],rec[5];int m,n,a,i,c=0;char r1[5];printf("enter the choice:\n");printf("1.select reject \n");printf("2.go backn \n");scanf("%d",&a);printf("enter the size of the data");scanf("%d",&n);printf("enter the data one by one:");for(i=0;i<n;i++){scanf("%d",&data[i]);}switch(a){case 1:{printf("data is ready to send:\n");for(i=0;i<n;i++){rec[i]=data[i];printf("%d is sent \n",data[i]);scanf("%s",r1);if(strcmp(r1,"n"))printf("ack is rec %d n",i+1);else{c++;}}if(c!=0){printf("enter the position of the data to be sent again:");scanf("%d",&m);while(m>n){

printf("\n wrong choice");printf("\n enter the position of the data again");scanf("%d",&m);

Page 28: 24461783 It Network Lab Manual

}if(a==1){printf("/n%d is sent again\n",data[m-1]);}}return 0;}case 2: {for(i=0;i<n;i++){rec[i]=data[i];printf("%d is sent\n",data[i]);scanf("%s",r1);if(strcmp(r1,"n"))printf("ack is rec%d\n",i);else{c++;}if(c!=0){printf("enter the starting position of data to be sent again");scanf("%d",&m);for(i=m-1;i<n;i++){rec[i]=data[i];printf("%d is sent\n",data[i]);scanf("%s",r1);}}}}}return(0);}

Page 29: 24461783 It Network Lab Manual

output:enter the choice:1.select reject 2.go backn 1enter the size of the data: 3enter the data one by one:123data is ready to send:1 is sent aack is rec 1 2 is sent n3 is sent aack is rec 1 enter the position of the data to be sent again:22 is sent againenter the choice:1.select reject 2.go backn 2enter the size of the data3enter the data one by one:3453 is sentaack is rec 04 is sentnenter the starting position of data to be sent again24 is senta5 is senta

Page 30: 24461783 It Network Lab Manual

Result:

Thus the program for sliding window protocol is verified and written successfully.

Page 31: 24461783 It Network Lab Manual

DOMAIN NAME SYSTEM

AIM:

To perform DNS server and client program.

ALGORITHM:

Step 1: start the program excution.

Step 2: include header file,define max data size and port.

Step 3: enter the domain name.

Step 4: get the domain name.

Step 5: if it is not found then error on domain name.

Step 6: stop the program excution.

Page 32: 24461783 It Network Lab Manual

DNS SERVER #include<stdio.h>#include<string.h>#include<stdlib.h>#include<sys/socket.h>#include<sys/types.h>#include<netinet/in.h>#include<arpa/inet.h>#include<error.h>#include<netdb.h>#define MAX 100#define ipaddr"127.0.0.1"#define port 4001typedef struct sockaddr SA;struct dns{char dname[25];char ipaddr[25];};int main(){int cfd;char buff[MAX];struct socket_in server;struct dns r;cfd=socket(AF_INET<SOCK_STREAM,0);bzero(&server,sizeof(server));server.sin_family=AF_INET;server.sin_port=htons(port);inet_pton(AF_INET,ipaddr,&server.sin_addr);connect((cfd,(SA*)&server ,sizeof(server));printf("enter the domain name");scanf("%s",r,dname);write(cfd,&r,sizeof(struct dns));bzero(&r,sizeof(struct dns ));read(cfd,&r,sizeof(struct dns));printf("ipaddr = %s",r, ipaddr);close(cfd);}

Page 33: 24461783 It Network Lab Manual

DNS CLIENT#include<stdio.h>#include<string.h>#include<sys/socket.h>#include<netinet/in.h>int main(){int csd,cport,len;char sendmsg[20],recvmsg[20],rc[20];struct socket_in servaddr;printf(“\n enter the port address”);scanf(“%d”,&cport);csd=socket(AF_INET<SOCK_STREAM,0);if(csd<0)printf(“ERROR:socket creation failed”);servaddr.sin_family=AF_INET;servaddr.sin_port=htons(port);if(connect(csd,(struct sockaddr*)&servaddr,sizeof(servaddr))<0)printf(“\n cannot connect”);elseprintf(“ \n connected”);printf("enter the domain name");scanf("%s",sendmsg);sendmsg(csd,sendmsg,20,0);recvmsg(csd,rc,20,0);printf("\n the corresponding ip address for given domain name is:”);printf(“%s”,rc);}

Page 34: 24461783 It Network Lab Manual

Output:

Dns server output:

dsp@dsp-desktop:~$ cc dnsser.cdsp@dsp-desktop:~$ ./a.outenter the domain name: www.annauniv.eduipaddr= 10.0.0.1

Dns client output:

dsp@dsp-desktop:~$ cc dnscli.cdsp@dsp-desktop:~$ ./a.out

domain name = www.annauniv.edu

Page 35: 24461783 It Network Lab Manual

Result:

Thus the program for domain name system is verified and written successfully.

Page 36: 24461783 It Network Lab Manual

FTP USING RS232

AIM:

To write a c++ program to implement FTP using RS232.

ALGORITHM:

Step 1: Start the program.

Step 2: Include the necessary header files.

Step 3: Declare the varible and file pointer.

Step 4: Use the switch statement to get the operation to be performed.

Step 5: Check whether the data that has to be send is ready.

Step 6: If data is send print “data ready”. If not send an error repeat.

Step 7:Display the text that is present in the file name mentioned.

Step 8: Stop the program.

Page 37: 24461783 It Network Lab Manual

RS232#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<dos.h>#include<iostream.h>#include<fstream.h>void main(){FILE *fp;char fname[23];union REGS,a,b;char al;int op;clrscr();a.h.ah=0*00;a.x.dx=0;a.h.dl=0;int 86(0*11,&a,&b);printf("\n1.send \n2.recevie \n3.exit \n");do{printf("Enter the option:");scanf("%d",&op);switch(op){case 1:printf("enter the fname:");cin>>fname;fp=fopen(fname,"r");if(fp=NULL){printf("Error");getch();exit(0);}a.b.ah=0*01;a.x.dx=0;while(!feof(fp)){ch=getc(fp);a.h.al=ch;int 86(0*14,&a,&b);}if(a.h.ah==0)printf("Error");else

Page 38: 24461783 It Network Lab Manual

printf("Data ready");fclose(fp);break;case 2:fp=fopen(fname,"r");if(fp==NULL){printf("\nError");getch();exit(0);}while(!feof(fp)){ch=getc(fp);cout<<ch;}fclose(fp);cout<<ch;}fclose(fp);break;case 3:exit(0);break;default :printf("Enter the correct option");}}while(op!=3)getch();}

Page 39: 24461783 It Network Lab Manual

Output:

1.sender 2.receiver3.exit

Enter the option : 1

Enter the file name : dsp.txt

Data ready

Enter the option : 2

This is the content of the file

Hai how are you

Enter the option : 3

Page 40: 24461783 It Network Lab Manual

Result:

Thus the program for FTP using RS232 is verified and written successfully.

Page 41: 24461783 It Network Lab Manual

OPEN SHORTEST PATH FIRST ALGORITHM

AIM:

To write a c++ program for open shortest path between server and destination Node.

ALGORITHM:

Step 1: Start the program.

Step 2: Include the necessary header files.

Step 3: Declare the variable functions.

Step 4: Get the Number of nodes and the cost of the edge between various nodes.

Step 5: Enter the source and destination nodes.

Step 6: Find the shortest path between source and destination node.

Step 7: Stop the program excution.

Page 42: 24461783 It Network Lab Manual

OSPF

#include<iostream.h>#include<conio.h>#include<stdlib.h>class path{int a[10][10],c[10[10],key[10][10],num,min,i,j,k;public:void findpath();void read();void output(int,int);void out(int i, int j);};void path::read(){cout<<”Number of nodes:”;cin>>num;for(i=1;i<=num;i++)for(j=1;j<=nump;j++){if(i==j)a[i][j]=0;else{cout<<”The cost for[“<<i<<”,”<<j<<”];cin>>a[i][j];}c[i][j]=a[i][j];key[i][j]=0;}}void path::findpath(){int t1,t2,t3;for(k=1;k<=num;k++)for(i=1;i<=num;i++)for(j=1;j<=num;j++){t1=c[i][k];t2=c[k][j];t3=c[i][j];if(t1!=0 &&t2!=0 && (t3==0||t1+t2<t3)){c[i][j]=t1+t2;

Page 43: 24461783 It Network Lab Manual

key[i][j]=k;}}}void path::output(int i, int j){min=0;if(c[i][j]==0){cout<<”no path exist”;return;}else{cout<<”The path is :”<<i;out(i,j);cout<<end1<<”cost is :”<<min;cout<<”\n”;}}void path :: out(int i, int j){if(i==j)return;if(key[i][j]==0){cout<<”->”<<j;min+=a[i][j];}else{out(i,key[i][j]);out(key[i][j],j);}}void main(){clrscr();int ch=1,n1,n2;path p;p.read();p.findpath();cout<<end1<<”1.Shortest path”<<end1;cout<<”2.Exit”<<end1;while(ch!=2){cout<<end1<<”choice…..”;cin>>ch;

Page 44: 24461783 It Network Lab Manual

switch(ch){case 1:cout<<”enter the source node”;cin>>n1;cout<<”enter the destination node”;cin>>n2;p.output(n1,n2);break;case 2:exit(0);}}getch();}

Page 45: 24461783 It Network Lab Manual

Output:

Number of nodes : 3

The cost for [1,2] : 1

The cost for [1,3] : 4

The cost for [2,1] : 2

The cost for [2,3] : 2

The cost for [3,1] : 2

The cost for [3,2] : 1

1.shortest path 2.exit

Choice……….. 1

Enter the source code : 1Enter the destination code : 3The path is 1 -> 2 ->3Cost is 3

Choice……….. 2

Page 46: 24461783 It Network Lab Manual

Result:

Thus the program for open shortest path specification is verified and written successfully.

Page 47: 24461783 It Network Lab Manual

GETTING HOST NAME

AIM:

To write a c program for open shortest path between server and destination Node.

ALGORITHM:

Step 1: Start the program.

Step 2: Include the necessary header files.

Step 3: Declare the structures and varible.

Step 4: Correct the value of parameter.

Step 5: If the host name of the parameter value is equal to NULL then print error message.

Step 6: Else the print the host name.

Step 7: Print the ip address.

Step 8: Stop the program excution.

Page 48: 24461783 It Network Lab Manual

GETTING HOST NAME#include<stdio.h>#include<unistd.h>#include<netdb.h>int main(){char hostname[100];int ret=gethostname(hostname,sizeof(hostname));printf("hostname:%s \n",hostname);struct hostent *ht=gethostbyname(hostname);int i=0;while(ht->h_addr_list[i]!=NULL){printf("Address[%d]: \n",i,inet_ntoa(*((struct in_addr*)ht->h_addr_list[i])));i++;}return(0);}

Page 49: 24461783 It Network Lab Manual

output:

dsp@dsp-desktop:~$ ./a.out

hostname:dsp-desktop

Address[0]: 127.0.0.1

Page 50: 24461783 It Network Lab Manual

Result:

Thus the program for getting host name is verified and written successfully.

Page 51: 24461783 It Network Lab Manual

NETWORK SIMULATOR (NS2)

A discrete event simulator targeted at networking research. Ns provides substantial support for simulation of TCP, routing, and multicast protocols over wired and wireless (local and satellite) networks. Simulation of protocols (TCP, routing, multicast...) over networks (wireless,Wired, satellite).

Ns began as a variant of the REAL network simulator in 1989 and have evolved substantially over the past few years. In 1995 ns development was supported by DARPA through the VINT project at LBL, Xerox PARC, UCB, and USC/ISI. Currently ns development is support through DARPA with SAMAN and through NSF with CONSER, both in collaboration with other researchers including ACIRI. Ns have always included substantial contributions from other researchers, including wireless code from the UCB Daedelus and CMU Monarch projects and Sun Microsystems. For documentation on recent changes, see the version 2 change log.

While we have considerable confidence in ns, ns is not a polished and finished product, but the result of an on-going effort of research and development. In particular, bugs in the software are still being discovered and corrected. Users of ns are responsible for verifying for themselves that their simulations are not invalidated by bugs. We are working to help the user with this by significantly expanding and automating the validation tests and demos.

Similarly, users are responsible for verifying for themselves that their simulations are not invalidated because the model implemented in the simulator is not the model that they were expecting. The ongoing Ns Manual should help in this process.

NS is Object Oriented Tcl (OTcl) script interpreter that has a simulation event scheduler and network component object libraries, and network setup module libraries. To run a simulation network, a user should write an OTcl script that initiates an event scheduler, sets up the network topology using the network objects and the plumbing functions in the library, and tells traffic sources when to start and stop transmitting packets through the event scheduler. Another major component of NS beside network objects is the event scheduler. An event is NS is a packet ID that is unique for a packet with scheduled time and the pointer to an object that handles the event.

All the network components that need to spend some simulation time handling a packet (i.e. need a delay) use the event scheduler by issuing an event for the packet and waiting for the vent to be fired to itself before doing further action handling the packet. Another use of an event scheduler is timer.

It can generally implemented in split language programming using C++ and TCL.

Page 52: 24461783 It Network Lab Manual

SPLIT-LANGUAGE PROGRAMMING

Ns separate the data path implementation from control path implementations. In order to reduce packet and event processing time, the event scheduler and the basic network component objects in the data path are written and compiled using C++.

IMPLEMENTATION OF NODE AND LINK

General, architecture of NS a user can be thought of standing at the left bottom corner, designing and running simulations in Tcl using the simulator objects in the OTcl library. The event scheduler and most of the network components are implemented in C++ and available to OTcl through an OTcl linkage that is implemented using tclcl. When a simulation is finished, NS produces one or more text-based output that files that contain detailed simulation data. The data can be used for simulation analysis or as and input to a graphical simulation display too called Network Animator (NAM) that is developed as a part of VINT project.