So, I've studied sockets, and studied TCP, and enjoy a beginner-intermediate understanding of each. However I desperately need clarification regard some fundamental concepts. Any help would be greatly appreciated:
1) Do sockets implement TCP? When I uses a socket to send data to another computer, are the computers using TCP or is it my responsibility to implement it (ie write the program such that the methods of the sockets mimic the rules dictated by TCP) I am confused.
2) I've read most of the RFC regarding TCP. It mentions a 'user interface'. Further, it specifies various TCP 'commands'. If MSN / Pidgin is using TCP, how could I use say C / Python to send 'TCP commands' and if MSN / Pidgin is merely using sockets to do this and the OS is responsible for TCP implementation then how can i send say a TCP header (consisting of 1s and 0s) manually? I know how to manually send HTTP requests manually, how can i do this with TCP?
Before you respond, please note, I'm not a programmer, I'm a chemist (I just happen to love computers) so for my sake, try to answer accordingly! ^_^