TCP Header format in c

On-campus and online computer science courses to Learn the basic concepts of Computer Science.This tutorial will cover c ,c++, java, data structure and algorithm,computer graphics,microprocessor,analysis of algorithms,Digital Logic Design and Analysis,computer architecture,computer networks,operating system.
code in C:
#include<stdio.h>
int i,j,counter=0,no,x,y,n,flag,bin[100],z,sum,k;
char a[100];
int dec(int x,int y);
void binary(int n);
int main()
{
	printf("Enter the TCP header\n");
	scanf("%s",a);
	
	printf("Source Port: %d\n",dec(0,4));
	printf("Destination Port: %d\n",dec(4,8));
	printf("Sequence Number: %d\n",dec(8,16));
	printf("Acknowledgement Number: %d\n",dec(16,24));
	printf("Header Length: %d Bytes\n",4*dec(24,25));
	
	flag=dec(26,28);
	binary(flag);
	
		if(bin[2] == 1)
            printf("Urgent Pointer is valid\n");
        if(bin[3] == 1)
            printf("Acknowledgement Number is valid\n");
        if(bin[4] == 1)
            printf("Packet needs to be delivered to the receiving application as soon as possible\n");
        if(bin[5] == 1)
            printf("Sender is aborting the connection\n");
        if(bin[6] == 1)
           printf("Sender is attempting to Synchronize Sequence Numbers\n");
        if(bin[7] == 1)
            printf("No more Data from Sender\n");
	
	printf("Window Size: %d\n",dec(28,32));
	printf("Header Checksum: %d\n",dec(32,36));
	printf("Urgent Pointer: %d\n",dec(36,40));
	
	return 0;
}
int dec(int x,int y)
{    sum=0;k=1;
   for(i=y-1;i>=x;i--)
    {
       if(a[i]>='0'&&a[i]<='9')
          no=a[i]-'0';     
        if(a[i]>='A'&&a[i]<='F')
          no=a[i]-55;  
		sum=sum+k*no;  
    	k*=16;    
    }
    z=sum;
    return z;
}
void binary(int n)
{
	for(i=0;i<8;i++)    // initialization
		bin[i]=0; 
	i=7;	           // because we need 8-bit binary
	while(n)
	{
         bin[i--]= n % 2;
         n=n / 2;
    }
}
output:-
Enter the TCP header
4E86512165131219256615AC8214561981394867
Source Port: 20102
Destination Port: 20769
Sequence Number: 1695748633
Acknowledgement Number: 627447212
Header Length: 32 Bytes
Acknowledgement Number is valid
Sender is aborting the connection
Window Size: 22041
Header Checksum: 33081
Urgent Pointer: 18535
--------------------------------

0 comments: