954,323 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

What is TCP/IP protocol set exactly (9 small questions for experts)?

I know we learn about TCP/IP but,is it......

1.is it a software(I think it has to be)?
2.Is it a BIOS level software?
3.Where is the protocol set installed in a computer?(Windows,linux,mac etc..)
4.Can we uninstall it like normal software?
5.Can we update it?
6.Where do routers and modems have that tcp/ip stack(protocol set)?
7.In which language is it written?
8.Will we ever get an update?
9.Did I bother you?

silvercats
Posting Whiz in Training
232 posts since Apr 2011
Reputation Points: 9
Solved Threads: 1
 
jumbowat
Light Poster
39 posts since Jan 2012
Reputation Points: -3
Solved Threads: 4
 

Since you mention that you are already reading a book on the topic you must have some idea of the answers to these questions.

However, to address some of the points:

TCP is distinct from IP. I will describe TCP here as I believe that is what you mean, although the answers are mainly applicable in either case.

TCP is not a software. It is an implementation of a set of RFCs . You dont get updates to it and it doesnt get installed. TCP is implemented within the OS code (making it part of the OS and not an external software package). It is tightly coupled with the internals of the kernel code and requires a large amount of context to understand.

Routers and modems are a special case in that they normally dont support a TCP implementation as a means of communication (though I believe it is possible) but they can parse and understand the packets that are passed as part of a TCP data stream. This is entirely different than implementing the TCP behavior.

As far as the language, it really depends on the OS in question - most commonly it is C.

L7Sqr
Practically a Master Poster
655 posts since Feb 2011
Reputation Points: 201
Solved Threads: 123
 
TCP is not a software. It is an implementation of a set of RFCs. It is an implementation of a set of RFCs


What did you mean exactly?
If it is within the Kernel,Isn't that a part of the kernel therefore it is a kind of a software,right?

silvercats
Posting Whiz in Training
232 posts since Apr 2011
Reputation Points: 9
Solved Threads: 1
 

insomuch as the kernel is software then, yes, TCP implementations are software. However, it is not standalone. Without modifying the kernel you can not just download a new TCP implementation and install it.

As for the RFCs, they are a set of requirements and suggestions governing how TCP implementations should operate in general. There are implementations details left to vendors but the overall algorithms and approach is spelled out. For example, here is the first TCP RFC

L7Sqr
Practically a Master Poster
655 posts since Feb 2011
Reputation Points: 201
Solved Threads: 123
 

oh thanks. So Transmission protocol,TCP,IP,HTTP ,Those protocols we learn about,are in the OS's kernel actually?

Algorithms are also in the kernel then? Even if we take a mobile phone(its OS)?

silvercats
Posting Whiz in Training
232 posts since Apr 2011
Reputation Points: 9
Solved Threads: 1
 

The full specification for the entire TCP/IP protocol suite takes up almost a linear foot of shelf space, is published by the US Department of Defense, and is called "The DDN Protocol Handbook". The DDN stands for Defense Department Network. Because the covers are white, it is sometimes known as "The White Book". From the detailed specifications it contains, it is possible to implement part or all of the TCP/IP protocol suite without recourse to other software. I and a colleague implemented the core TCP/IP functions (in C) for a real-time operating system back in the early 90's because we were contracted to deliver an automated electronics manufacturing line to the US Navy's RAMP project that used the OS, and they required that it could communicate to other TCP/IP network nodes such as control and monitoring systems that were running Unix. I spent a lot of time on a stool in front of a workstation in the middle of a HUGE warehouse structure in Charleston, South Carolina for that gig! But, we delivered and now the US Navy can fix its ships in a fraction of the time it used to take. In case you are interested, RAMP stands for Rapid Acquisition of Manufactured Parts. When a battleship is in drydock, they can't just order most of their gear out of a catalog. Most is manufactured on the spot, to order, including propellers, drive shafts, radar and sonar electronics, etc.

rubberman
Posting Virtuoso
1,561 posts since Mar 2010
Reputation Points: 277
Solved Threads: 179
 

Whatever language the kernel(therefore protocol stack) is written,They all have the same algorithm ? same Binaries after compiling?am I right?

silvercats
Posting Whiz in Training
232 posts since Apr 2011
Reputation Points: 9
Solved Threads: 1
 
For example, here is the first TCP RFC


Ah yes. RFC 793, Page 2-185 in the DDN Protocol Handbook - Volume 2 - DARPA Internet Protocols, December 1985. Just pulled it off of the shelf to check! :-)

rubberman
Posting Virtuoso
1,561 posts since Mar 2010
Reputation Points: 277
Solved Threads: 179
 
The full specification for the entire TCP/IP protocol suite takes up almost a linear foot of shelf space, is published by the US Department of Defense, and is called "The DDN Protocol Handbook". The DDN stands for Defense Department Network. Because the covers are white, it is sometimes known as "The White Book". From the detailed specifications it contains, it is possible to implement part or all of the TCP/IP protocol suite without recourse to other software. I and a colleague implemented the core TCP/IP functions (in C) for a real-time operating system back in the early 90's because we were contracted to deliver an automated electronics manufacturing line to the US Navy's RAMP project that used the OS, and they required that it could communicate to other TCP/IP network nodes such as control and monitoring systems that were running Unix. I spent a lot of time on a stool in front of a workstation in the middle of a HUGE warehouse structure in Charleston, South Carolina for that gig! But, we delivered and now the US Navy can fix its ships in a fraction of the time it used to take. In case you are interested, RAMP stands for Rapid Acquisition of Manufactured Parts. When a battleship is in drydock, they can't just order most of their gear out of a catalog. Most is manufactured on the spot, to order, including propellers, drive shafts, radar and sonar electronics, etc.


If I get this correctly,you are telling me that it is possible to change TCP/IP function externally (without changing the current OS),using a later written software?

silvercats
Posting Whiz in Training
232 posts since Apr 2011
Reputation Points: 9
Solved Threads: 1
 

I still appreciate if someone could still answer all my questions in the original post by putting question numbers number ,just to get things very clear

silvercats
Posting Whiz in Training
232 posts since Apr 2011
Reputation Points: 9
Solved Threads: 1
 
If I get this correctly,you are telling me that it is possible to change TCP/IP function externally (without changing the current OS),using a later written software?


You can change the functions that are called, but you still have to follow the data and wire control flow specified in the RFCs. I actually wrote a finite state machine (FSM) for the protocols that was loaded from a text description of the protocol, so I could fix implementation issues by simply changing the FSM description and restarting the application (like telnet or ssh), or restarting a server daemon if necessary. Once the nitty gritty coding was done, that approach saved us many person months of effort in bug fixing and cleanup. Most of the issues were subtle differences in event-triggered state transitions, especially when dealing with out-of-band data. In fact, I spent a couple of days in a General Motors plant in Indianapolis tweaking the FSM descriptions to deal with just that problem. OOB event handling is very strange, and difficult to directly program for. I was able to fix the system in 2 days without rewriting one line of code. Most of my time was analyzing log files and packets to see exactly what was going on.

rubberman
Posting Virtuoso
1,561 posts since Mar 2010
Reputation Points: 277
Solved Threads: 179
 

Anyway, to answer your 9 questions directly:

1.is it a software(I think it has to be)?
Generally yes. There are implementations of the core stack in firmware on some network boards (NICs).

2.Is it a BIOS level software?
No. The core protocols generally are kernel drivers.

3.Where is the protocol set installed in a computer?(Windows,linux,mac etc..)
Generally, the core protocols are kernel-level drivers for efficiency. Some protocols such as SSH, TELNET, and FTP are dynamically loaded when needed. There is a daemon on Linux/Unix systems called inetd (or xinetd - more current) which will start the SSH, TELNET, FTP, or other servers when a connection is made by the appropriate kind of client.

4.Can we uninstall it like normal software?
Not easily. Practically all networking today is built upon the TCP/IP protocol stack.

5.Can we update it?
Yes.

6.Where do routers and modems have that tcp/ip stack(protocol set)?
Incomplete question. Trying to read into your question, most routers run some sort of embedded Linux software, and the TCP/IP stack are kernel drivers. You can configure a kernel to build the protocols out of the kernel, but then you'd effectively have no networking at all.

7.In which language is it written?
Generally in C. Linux kernels are written almost entirely in C.

8.Will we ever get an update?
Often. When drivers are updated for Windows systems, or when the kernel is updated in Linux/Unix systems.

9.Did I bother you?
Not really. Just need to pay some bills tonight and finish installing software on my new company phone.

Just FYI, in our house we have at least 10 different operating systems running everything from this 8 core Linux workstation to phones running iOS, Android, and Symbian to two different routers, two generations of Mac Pro laptops (both x86 and PowerPC), Linux laptops and netbooks, 2 different QNX operating systems on older realtime development workstations, Linux on an embedded system development board, and a Windows 7 laptop. They are all running TCP/IP to network together. Oh, and I forgot to mention my Linux-powered Buffalo TeraStation network storage array! :-)

In our home:

Linux - 2 or 3 versions of Ubuntu, Scientific Linux, Debian (embedded systems development), uC (micro-controller) Linux (router and network storage array), DDWRT Linux (router), Android, Mepis, Gentoo
Windows - XP and Win7
Unix - Apple OSX (2 versions)
QNX - realtime development (2 versions active, and one old one mothballed)

I've probably forgotten a couple... :-) The point is that these are all very different systems, with different hardware, and each running a slightly different TCP/IP protocol stack, but they all inter-operate seamlessly. Why is that so? Because of the DDN Protocol Handbook and all those RFCs which specify to a fine detail how that stuff is supposed to work.

rubberman
Posting Virtuoso
1,561 posts since Mar 2010
Reputation Points: 277
Solved Threads: 179
 
1.is it a software(I think it has to be)? Generally yes. There are implementations of the core stack in firmware on some network boards (NICs).

Core stack?you mean the whole TCP/IP or just main protocols?

wait?what?NICs have firmwares too?like motherboard firmwares(BIOS) in a CMOS chip?
and part of that firmware is TCP/IP software set ?

silvercats
Posting Whiz in Training
232 posts since Apr 2011
Reputation Points: 9
Solved Threads: 1
 
5.Can we update it? Yes.

What will happen if one computer have an older version than the other or something like that?

silvercats
Posting Whiz in Training
232 posts since Apr 2011
Reputation Points: 9
Solved Threads: 1
 
8.Will we ever get an update? Often. When drivers are updated for Windows systems, or when the kernel is updated in Linux/Unix systems.

If I view a web site using windows 98 or something very old,we won't be able to see modern encrypted pages(let's say we have the 2012 version of firefox on 98 for a while ;)) and do what modern TCP/IP can do(encryption,Video streaming etc..)?

silvercats
Posting Whiz in Training
232 posts since Apr 2011
Reputation Points: 9
Solved Threads: 1
 
6.Where do routers and modems have that tcp/ip stack(protocol set)? Incomplete question. Trying to read into your question, most routers run some sort of embedded Linux software, and the TCP/IP stack are kernel drivers. You can configure a kernel to build the protocols out of the kernel, but then you'd effectively have no networking at all.


So routers and modems don't have TCP/IP built into their firmware ?they just use what is given from the computer?right?

silvercats
Posting Whiz in Training
232 posts since Apr 2011
Reputation Points: 9
Solved Threads: 1
 
So routers and modems don't have TCP/IP built into their firmware ?they just use what is given from the computer?right?


Some do, and some don't have them built into the firmware. It depends upon the router. Being in the kernel means that you can update the stack a lot easier. In any case, the OS is stored in flash memory, which most firmware is also these days. The lines of distinction are getting narrower and narrower.

rubberman
Posting Virtuoso
1,561 posts since Mar 2010
Reputation Points: 277
Solved Threads: 179
 
If I view a web site using windows 98 or something very old,we won't be able to see modern encrypted pages(let's say we have the 2012 version of firefox on 98 for a while ;)) and do what modern TCP/IP can do(encryption,Video streaming etc..)?


Encryption and video streaming are not part of the protocol suite. They are application-layer things, not transport layer.

rubberman
Posting Virtuoso
1,561 posts since Mar 2010
Reputation Points: 277
Solved Threads: 179
 
What will happen if one computer have an older version than the other or something like that?


Usually nothing. Newer versions general are made to address security issues that usually have nothing to do with the protocol per se, but are application and coding bugs. As said before, the protocols themselves are rigorously defined, which is why my 15 year old QNX system still works fine with my brand new devices and operating systems installed last week.

rubberman
Posting Virtuoso
1,561 posts since Mar 2010
Reputation Points: 277
Solved Threads: 179
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You