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?

Recommended Answers

All 30 Replies

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.

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?

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

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)?

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.

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

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! :-)

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?

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

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.

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.


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 ?

5.Can we update it?
Yes.

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

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..)?

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?

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.

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.

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.

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 ?

The entire TCP/IP suite includes applications like ssh, telnet, ftp, etc. The core protocol stack includes TCP, IP, and things like ARP (Address Resolution Protocol) - the cruft that is necessary for basic connectivity. So, if a board has the core stack in firmware, I will still have to implement stuff like ssh, telnet, ftp, etc. They aren't necessary for basic connectivity, which is to connect to a remote system, and open a channel (TCP) or send raw messages (UDP). And yes, NICs have firmware just like your motherboard, disc controllers, and video cards.

As I said, the NIC firmware CAN contain parts of the TCP/IP protocol stack, but they don't have to. They will at least contain the basic Ethernet wire protocols and code to talk to the board's chips.

Silvercats, you are asking a lot of really good questions, and it is obvious that you are trying to understand this stuff. It's an investment, but there are some really good books you should have if you want to pursue this subject more thoroughly. I recommend the following (classics in their own right):

Internetworking with TCP/IP by Comer and Stevens, volumes 1 and 2, published by Prentice-Hall. You can get them from Amazon.com. Volume one is "Principles, Protocols, and Architecture", and volume two is "Design, Implementation, and Internals". Start with volume one, and if you are interested in the actual C programming implementation such as used by Unix and Linux, then get volume two later. There is a third volume on application programming, but that can wait unless you are ready for some serious socket programming. The DDN Handbook is strictly for engineers who have to implement this stuff from scratch. And yes, all of these books have places of honor on my 10' x 6' book-wall.

I also have the entire X-Windows set (2 ft of shelf space), two versions of the Java Virtual Machine Specification, the entire distributed database transaction multi-phase commit engineering standard, the ISO C++ Standard document/book. a raft of stuff on neural network and fuzzy logic programming, and of course all of Codd and Date's works on relational database theory (a field I am considered something of an expert in, having taught it at the graduate level). I have been building this library for 30 years. :-) My latest acquisition was "The Linux Programming Interface", which at 2+" thick is one of my larger single volumes. That I got late last year - sort of a Christmas present for myself. I think it makes a magnificent door-stop!

Just Two more questions !
What difference would it make If core stacks are build into routers' and NICs' or not?

and

If we update the kernel(therefore tcp/ip set),will it be harder to hack than a older version?

Silvercats, you are asking a lot of really good questions, and it is obvious that you are trying to understand this stuff. It's an investment, but there are some really good books you should have if you want to pursue this subject more thoroughly. I recommend the following (classics in their own right):

Internetworking with TCP/IP by Comer and Stevens, volumes 1 and 2, published by Prentice-Hall. You can get them from Amazon.com. Volume one is "Principles, Protocols, and Architecture", and volume two is "Design, Implementation, and Internals". Start with volume one, and if you are interested in the actual C programming implementation such as used by Unix and Linux, then get volume two later. There is a third volume on application programming, but that can wait unless you are ready for some serious socket programming. The DDN Handbook is strictly for engineers who have to implement this stuff from scratch. And yes, all of these books have places of honor on my 10' x 6' book-wall.

I also have the entire X-Windows set (2 ft of shelf space), two versions of the Java Virtual Machine Specification, the entire distributed database transaction multi-phase commit engineering standard, the ISO C++ Standard document/book. a raft of stuff on neural network and fuzzy logic programming, and of course all of Codd and Date's works on relational database theory (a field I am considered something of an expert in, having taught it at the graduate level). I have been building this library for 30 years. :-) My latest acquisition was "The Linux Programming Interface", which at 2+" thick is one of my larger single volumes. That I got late last year - sort of a Christmas present for myself. I think it makes a magnificent door-stop!

Thanks.Is "Prentice Hall - Computer Networks by Tanenbaum" a good one?That is what I am reading currently and I got these questions when I was reading it. So far it didn't explain those stuff yet,just about how protocols work,not where do they actually live stuff .

In case you are wondering what I do for a living, I am currently Senior Systems Engineer for Nokia Mobile Phones in their performance engineering and software architecture group. My job is analyzing and solving performance issues with very large, very complex TCP/IP installations that have to handle up to 100,000 concurrent users, and will grow to 1 million within the year. You could say that I eat and breath this stuff.

In case you are wondering what I do for a living, I am currently Senior Systems Engineer for Nokia Mobile Phones in their performance engineering and software architecture group. My job is analyzing and solving performance issues with very large, very complex TCP/IP installations that have to handle up to 100,000 concurrent users, and will grow to 1 million within the year. You could say that I eat and breath this stuff.

Awesome!

Thanks.Is "Prentice Hall - Computer Networks by Tanenbaum" a good one?That is what I am reading currently and I got these questions when I was reading it. So far it didn't explain those stuff yet,just about how protocols work,not where do they actually live stuff .

Tanenbaum is very good. He knows his stuff and writes very well. I am an engineering geek, so I go for the thicker books that are heavy with content. Comer and Stevens are much more thorough, but the Tanenbaum book is a great starting point for you. I don't have that book in my collection, but I have had a sit-down with it at some point. He has written some other very decent computer books. His "Modern Operating Systems", and "Operating Systems Design and Implementation" are excellent. I think I have that last one, but it seems to be hiding from me. One of these days I need to catalog all of my books... Heck, I even have a hand-written set of Feynman's physics class notes for the lectures he gave at CalTech. I inherited them from my father who was a colleague and good friend of his. They have since been reprinted a number of times and are very popular. My home office is in the basement and is in need of a good cleaning. If a mouse got in here, it would starve to death before it found its way out of the maze!

And in case you are wondering why we have so much computer gear? I am a software systems engineer and my wife is a particle physicist. Besides science and technology, our other main love is music - listening and performing. The only thing we have in our house that outnumber and outweigh our tech gear are our musical instruments, most of which we play on a semi-regular basis - guitars from steel dobro to classical to Mexican folk, mandolins from my 100+ year old Gibson that I play bluegrass on to modern ones made with exotic woods, fiddles, a Veracruz harp, 2 bass fiddles, a big collection of ukuleles, banjos, drums, and who knows what else!

I think you didn't see this question of mine

If we update the kernel(therefore tcp/ip protocol st),will it be harder to hack the latest version than an older version of tcp/ip model?

I think you didn't see this question of mine

If we update the kernel(therefore tcp/ip protocol st),will it be harder to hack the latest version than an older version of tcp/ip model?

Yeah. I clicked on the quote, and it closed right away and took me to where it thought it should in my long post that answered your 9 questions (I thought). The tcp/ip kernel drivers are only updated when there are issues to fix. They aren't updated every time the kernel is. However, when security fixes are made to the drivers, then the answer would be yes, for the exploits that were identified and fixed. In any case, there is no general answer for this question, other than "maybe" and "it depends".

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.