I have heard Samba as a solution but my understanding is SAMBA is mainly for file sharing.. and is not necessary for establishing TCP/IP connectivity. Is this a correct statement ?
Yes this is correct.
If you are going with a cross over cable, make sure it is a cross over cable. The wiring is different than the ethernet cables that attach between a hub and a host. This is saving the cost of a hub, they are cheap enough today. The other possibility is to use a router, they cost a little more than a hub, but look after the routing between hosts.
If you go with the x-over cable, you will have to set a ip address in each host, on the same sub-net. Example : 192.168.0.1 on one host and 192.168.0.2 on the second host. The address I used are class C private addresses and will work just fine. I would suggest you go this way, ( class C private ) and it will not cause you any problems in the future, if you expand the network.
You will have to set a default route in each host. Simply point them at each other. It would make life easier if you edit the /etc/hosts file on linux, add an entry for the winXP host. Same thing on XP, you will have to find the hosts file on XP, use the search for files function. These entries allow you to use names instead of IP addresses. Entries in this file look like this :
Just change the name part to match the name you give each machine.
Activate the ehternet cards on each machine. XP will bring in up wihtout any commands. Linux may not. The linux command to activate a ethernet card is : 'ifconfig eth0 up' ( without the quotes ).
Take a look at the man page for ifconfig. You can configure the card with this command, as well as up and down the card, and display status.
Also note there are lights on most ehternet connections. ( usually green ). If the card is "on" the light should come on. A hub or a router has lights also, they will blink when there is activity.
Ping command. Once you get green lights, try to ping from one machine to the other. On both platforms, the command is the same. 'ping 192.168.0.2' ( no quotes ) or .1 to ping the other direction. You should get a response.
Good luck, post questions if you have problems.