Simulate and implement go back n sliding window protocol in Computer Network -KML Tutorial
Aim:- Simulate and implement go back n sliding window protocol.
Program:-
- #include<stdio.h>
- #include<stdlib.h>
- #include<math.h>
- #include<time.h>
- int main(){
- int n,i=0,j=0,k=0,sn=0,rn=0,proba=0,wn_size,end_sn,m,tn,p=0;
- srand(time(0));
- printf("Enter the number of frames:");
- scanf("%d",&n);
- printf("Enter number of bits for sequence number:");
- scanf("%d",&m);
- tn=pow(2,m);
- end_sn=tn-1;
- wn_size=end_sn;
- int window[wn_size];
- while(i<n){
- j=0;
- while(j<wn_size && i<n){
- sn=i%tn;
- window[j]=i;
- printf("Sender: sending frame no. %d with sequence number %d\n",i,sn);
- j++; i++;
- }
- k=0;
- while(k<j){
- proba=rand()%100;
- if(proba>80){
- printf("****Frame %d is corrupted****\n",window[k]);
- i=window[k];
- printf("****Rest frames discarded as out of order****\n",window[k]);
- break;
- }else{
- if(window[k]%tn==rn){
- rn=(rn+1)%tn;
- printf("Receiver: sending acknowledgment No. %d\n",rn);
- proba=rand()%100;
- if(proba>80){
- printf("**Acknowledgment frame corrupted**\n");
- i=window[k];
- break;
- }
- }else{
- printf("Receiver: Discarded frame no. %d as it is out of order\n",window[k]);
- }
- }
- k++;
- }
- printf("\n\n");
- }
- system("pause");
- return 0;
- }
Outpute:-
Enter the number of frames:5
Enter number of bits for sequence number:4
Sender: sending frame no. 0 with sequence number 0
Sender: sending frame no. 1 with sequence number 1
Sender: sending frame no. 2 with sequence number 2
Sender: sending frame no. 3 with sequence number 3
Sender: sending frame no. 4 with sequence number 4
Receiver: sending acknowledgment No. 1
****Frame 1 is corrupted****
****Rest frames discarded as out of order****
Sender: sending frame no. 1 with sequence number 1
Sender: sending frame no. 2 with sequence number 2
Sender: sending frame no. 3 with sequence number 3
Sender: sending frame no. 4 with sequence number 4
Receiver: sending acknowledgment No. 2
Receiver: sending acknowledgment No. 3
Receiver: sending acknowledgment No. 4
Receiver: sending acknowledgment No. 5
Comments
Post a Comment