TCP/IP , or Transmission Control protocol/Internet Protocol, is literally the backbone of internet and network communication. The concepts of TCP/IP are difficult to grasp without previous experience, so don’t be dismayed if it doesn’t click instantly. To better help you out, we’ll start from the very beginning- with a definition of just what a network is.
Networks, Protocols, and Suites, Oh My!
A network is simply a collection of computers or similar devices that can communicate over a transmission medium. Don’t worry- that is just a fancy phrase that usually refers to Ethernet cable and other connective wire. You can see a basic network in the diagram below- odds are you’ve already seen something similar.
Simple enough, isn’t it? Just three computers linked together for communication. Sadly, it is a little more complex than that. To actually send any data from one computer to another we need to make use of a network protocol. A network protocol is a set of common rules that defines how data should be sent. These protocols ensure that a message sent from one computer will reach the next, and that it is interpreted correctly. These many different protocols make up TCP/IP, which is referred to as a protocol suite.
But why do we need a special suite? Back when TCP/IP wasn’t around, there were many different proprietary protocols. Since many different companies developed different protocols, many networks just weren’t compatible. Without a common suite like TCP/IP, the internet would not be possible.
A Brief History of TCP/IP
Now that we have a basic understanding of what TCP/IP is for, let’s review how it came to be. Believe it or not, TCP/IP was developed way back in the 1960’s by the United States Department of Defense. Its original designers had a problem- networks at the time were very small and incompatible. Proprietary protocols were in wide use, contributing to the compatibility problem.
In the early days, it was believed that relying on networks could be a disastrous idea. If a particular network node were to be destroyed for any reason, it would likely bring the entire network down. Since a missile or bomb could literally make any point on a network a target, a decentralized system was needed. The goal was to create a network that didn’t depend on other parts of the network to operate- one of the key features of TCP/IP. Review the diagram below for a visual representation of what happens if a computer fails on a centralized network. As you can see, both right and left computers have lost connection to the central computer, since the middle computer is down.
To actually provide a decentralized network, two important features of TCP/IP are used. Instead of one computer having authority over others, computers generally operate as equals. Dynamic routing is another feature that ensures decentralization. If computers are connected through multiple paths, computers will check for alternative routes if one seems to be down. In the above image, we could achieve dynamic routing by connecting both left and right computers to the first centralized computer- this enables us to completely bypass the downed middle computer.
This ambitious project was initially named ARPANET after the Defense Department’s Advanced Research Projects Agency (ARPA). A few years later, research institutions wanted in on the protocol system too. This is the start of what became the foundations of the internet.
Soon after, we had another networking concept arise- the Local Area Network, or LAN. These networks were the solution for offices and institutions to share resources with ease. The first LAN connections were crippled from today’s standards- they lacked internet access. The advent of the gateway enabled protocols to be translated for LAN connections to access the internet- and the popularity of TCP/IP exploded from there.
Key Features of TCP/IP Students and Professionals Should Know
There are many innovative features of TCP/IP, but there are five features in particular that everyone should become familiar with. In no particular order, these features are:
- Application support
- Error and flow control
- Logical Addressing
- Name resolution
Say you are multitasking- you are uploading files to your website, sending an email, streaming music, and watching video all at the same time. We ran into a critical problem here! How does the computer know where to send each packet of data if multiple applications are running? We sure wouldn’t want to use our email program to watch video, and vice versa!
To combat this problem, we use channels called ports. These numbered ports each correspond to a certain action. Your email, for instance, is likely using port 25 for email operation. Remember the files you were uploading to your website? This kind of data uses the FTP port more often than not, which is usually port 20 and 21. Even browsing a webpage uses a specific port- the HTTP port 80.
In total, there are 65,535 ports for controlling the flow of information. Yikes!
Error and Flow Control
TCP/IP is considered a connection-oriented protocol suite. This means that if data isn’t received correctly, a request to resend the data is made. This is compared to User Datagram Protocol, or UDP, which is connectionless. UDP is a suite of protocols just like TCP/IP, with a few notable differences.
But when wouldn’t you care if data was received correctly or not? UDP is great for broadcasting data- such as streaming radio music. If part of the data was lost, we wouldn’t want to go back and retrieve it! It would waste bandwidth, and would create collisions or noise in our signal. With UDP, the lost data might be represented as a silent spot- which we would take over a noisy retransmission any day!
Most computers today come standard with Network Interface Cards, or NICs. These cards are the actual hardware used to communicate to other computers. Each card has a unique physical address that is set at the factory, and can’t be changed. Essentially this is an identifier for the computer it is installed on.
Networks rely on the physical address of a computer for data delivery, but we have a problem. The NIC card is constantly looking for transmissions that are addressed to it- what if the network was very large in size? To put it into perspective, imagine your computer looking at every single bit of data on the internet to see if any of the millions of data packets are addressed to it.
This is where logical addressing comes in. You are probably more familiar with the term IP address, however. These IP addresses can be subnetted on a network to divide a large network into tiny pieces. Instead of looking at every bit of data on the internet, logical addressing allows for computers to just look at data on a home network or subnet.
A router is a device used to read logical addressing information, and to direct the data to the appropriate destination. Routers are commonly used to separate networks into portions- this greatly reduces network traffic if done correctly.
TCP/IP includes protocols that tell routers how to find a path through the network. This is a vital feature of the TCP/IP suite that enables massive LAN connections to be created.
And finally, we have name resolution. If you wanted to conduct a search on the internet, you would probably just type Google’s URL into your address bar. What you probably didn’t know is that you aren’t necessarily connecting to “Google.com,” but rather an IP address. Instead of having to remember an IP address, name resolution allows you to remember Google’s name.
It might not be so bad if IP addresses were not so lengthy in size. Which is easier to remember- 126.96.36.199 or Google? This handy service is accomplished on name servers, which are just computers that store tables that translate domain names to and from IP addresses.
Congratulations, you just got an introduction to the vast TCP/IP world. A lot of technical students tend to skip over the basics. This means you can easily outsmart most of your techie friends with the simplest of questions- just ask them why ARPANET designers pressed for a decentralized protocol suite!
All jokes aside, there is still plenty more to cover. We just got our feet wet with this introduction!
Good one first time seen this and quite interesting easy to understand
Hi this is Shashikanth,so I had a good time learning about the basics of TCP/IP.This made me come to know about the Hpw the Transmission of data happens…………..thank you
oh my… you saved my life! perfectly explained… i am attending to classes of networks at university, but the material they give us is… horrible! just a bunch of schematic slides full of achronims… thanks to this things finally start to make sense 🙂 thanks so much! ^_^
Hats off to you cyber wizard….Everything is clear and to the point….!! Keep up this brilliant work….!!
complicated topic is explained in very simple way
A good simple article explaining the great tech invention and its use
intresting, nice post.
Thanx Bro… the things are expressed in a way which is eaasy to understand and INTERSESTING… coz the way the teachers represent it… its simply dead boring.. thanx for this way of explaining..
WIsh to see more from U…. =)
such a good introduction to TCP/IP. i love this site!
What a great introduction! Thanks a lot for your clear and concise introduction to TCP/IP. And I must say thanks to Stumbleupon for helping me discover your website. Keep it coming!!!
Your blog is interesting!
Keep up the good work!
really2 help… this notes…
thanks a lot…
btw, what are another TCP/IP feature that enables “decentralized ntwk” beside “dynamic routing?
so nice work. I learn more thing this way, very intersting and easy way to learn. I am very happy to see this.
This is the most easiest and elaborate article.Thank a lot and hope u guys come out with many more such intresting articles.
Very useful article , and it is simple .
Thanks a lot
thanks for the great introduction to this topic…i was looking for exactly this…..
I like the article very much its simple and well explained.keep it up
Very useful article , and it is simple .
Thanks a lot
I realy want to thank you! very good and helpful site for my IT essentials A+ course of cisco.
Great job, thank you So much
I like your teaching way, very understandable, even for my poor english : )
looking forward to see more TUTORIALS
I was browsing on bing.com and your site explained about tcp/ip stacks best! 5 stars for you.
Good introduction in simple words. Just started learning Networking and the article has been a great help to me, Thanks – hansen
Good article, explained very well, just started learning networking, Keep up the good work!
Thanks for your answer
This helped me a lot
Not that I don’t know these
But you’ve created a confidence that I atleast know these.
I also got an idea where to start next
can you help configure two or three different class networks communicate using packet tracer. i have problem configuring to different class networks. when i try to ping end user from a different network no connection at all.thanks
Thank you, you’ve got this article perfectly worded 🙂 helps to understand a lot easier…