Many of you might now a thing or two about protocols, let me try to explain the TCP/IP family(standards) to you.
Disclaimer: I will be using examples, and descriptions used by i.e: W3Schools.com, and literature such as; Counting bytes, Network Security – Principles and Practice.
I have always needed to learn everything by myself, therefor I have read lots of books, and gone trough a lot of tutorials in my time. But my guess is that I will never stop doing so.
If you want to go in dept of what we are going to discuss here today, you can read the book : Network Security – Principles and Practice, under the section Protocol Design.
What is an Protocol?
Imagine the number of people communicating in the world, the number of different languages they use, the number of different machines they use, the number of ways in which they transmit data and the different software they use. We would never be able to communicate worldwide if there were no ‘standards’ governing the way we communicate and the way our machines treat data. These standards are sets of rules.
There are rules governing how data is transferred over networks, how they are compressed, how they are presented on the screen and so on. These set of rules are called protocols. There are many protocols, each one governing the way a certain technology works.
Computer Communication Protocol
A computer communication protocol is a description of the rules computers must follow to communicate with each other.
What is TCP/IP?
TCP/IP is the communication protocol for communication between computers on the Internet.
TCP/IP stands for Transmission Control Protocol / Internet Protocol.
TCP/IP defines how electronic devices (like computers) should be connected to the Internet, and how data should be transmitted between them.
Inside TCP/IP
Inside the TCP/IP standard there are several protocols for handling data communication:
- TCP (Transmission Control Protocol) communication between applications
- UDP (User Datagram Protocol) simple communication between applications
- IP (Internet Protocol) communication between computers
- ICMP (Internet Control Message Protocol) for errors and statistics
- DHCP (Dynamic Host Configuration Protocol) for dynamic addressing
TCP Uses a Fixed Connection
TCP is for communication between applications.
If one application wants to communicate with another via TCP, it sends a communication request. This request must be sent to an exact address. After a “handshake” between the two applications, TCP will set up a “full-duplex” communication between the two applications.
The “full-duplex” communication will occupy the communication line between the two computers until it is closed by one of the two applications.
UDP is very similar to TCP, but simpler and less reliable.
IP is Connection-Less
IP is for communication between computers.
IP is a “connection-less” communication protocol.
IP does not occupy the communication line between two computers. IP reduces the need for network lines. Each line can be used for communication between many different computers at the same time.
With IP, messages (or other data) are broken up into small independent “packets” and sent between computers via the Internet.
IP is responsible for “routing” each packet to the correct destination.
IP Routers
When an IP packet is sent from a computer, it arrives at an IP router.
The IP router is responsible for “routing” the packet to the correct destination, directly or via another router.
The path the packet will follow might be different from other packets of the same communication. The router is responsible for the right addressing, depending on traffic volume, errors in the network, or other parameters.
Connection-Less Analogy
Communicating via IP is like sending a long letter as a large number of small postcards, each finding its own (often different) way to the receiver.
TCP/IP
TCP/IP is TCP and IP working together.
TCP takes care of the communication between your application software (i.e. your browser) and your network software.
IP takes care of the communication with other computers.
TCP is responsible for breaking data down into IP packets before they are sent, and for assembling the packets when they arrive.
IP is responsible for sending the packets to the correct destination.
TCP/IP uses 32 bits, or four numbers between 0 and 255, to address a computer.
IP Addresses
Each computer must have an IP address before it can connect to the Internet.
Each IP packet must have an address before it can be sent to another computer.
This is an IP address: 212.97.132.137
This might be the same IP address: www.tackycorp.com
An IP Address Contains 4 Numbers.
Each computer must have a unique IP address.
TCP/IP uses four numbers to address a computer. The numbers are always between 0 and 255.
IP addresses are normally written as four numbers separated by a period, like this: 192.168.1.50.
32 Bits = 4 Bytes
In computer terms, TCP/IP uses 32 bits addressing. One byte is 8 bits. TCP/IP uses 4 bytes.
One byte can contain 256 different values:
00000000, 00000001, 00000010, 00000011, 00000100, 00000101, 00000110, 00000111, 00001000 – and all the way up to 11111111.
Now you know why a TCP/IP address is four numbers between 0 and 255.
Domain Names
A name is much easier to remember than a 12 digit number.
Names used for TCP/IP addresses are called domain names.
tackycorp.com is a domain name.
When you address a web site, like http://www.tackycorp.com, the name is translated to a number by a Domain Name Server (DNS).
All over the world, DNS servers are connected to the Internet. DNS servers are responsible for translating domain names into TCP/IP addresses.
When a new domain name is registered together with a TCP/IP address, DNS servers all over the world are updated with this information.
TCP/IP is a large collection of different communication protocols.
A Family of Protocols
TCP/IP is a large collection of different communication protocols based upon the two original protocols TCP and IP.
TCP – Transmission Control Protocol
TCP is used for transmission of data from an application to the network.
TCP is responsible for breaking data down into IP packets before they are sent, and for assembling the packets when they arrive.
IP – Internet Protocol
IP takes care of the communication with other computers.
IP is responsible for the sending and receiving data packets over the Internet.
HTTP – Hyper Text Transfer Protocol
HTTP takes care of the communication between a web server and a web browser.
HTTP is used for sending requests from a web client (a browser) to a web server, returning web content (web pages) from the server back to the client.
HTTPS – Secure HTTP
HTTPS takes care of secure communication between a web server and a web browser.
HTTPS typically handles credit card transactions and other sensitive data.
SSL – Secure Sockets Layer
The SSL protocol is used for encryption of data for secure data transmission.
SMTP – Simple Mail Transfer Protocol
SMTP is used for transmission of e-mails.
MIME – Multi-purpose Internet Mail Extensions
The MIME protocol lets SMTP transmit multimedia files including voice, audio, and binary data across TCP/IP networks.
IMAP – Internet Message Access Protocol
IMAP is used for storing and retrieving e-mails.
POP – Post Office Protocol
POP is used for downloading e-mails from an e-mail server to a personal computer.
FTP – File Transfer Protocol
FTP takes care of transmission of files between computers.
NTP – Network Time Protocol
NTP is used to synchronize the time (the clock) between computers.
DHCP – Dynamic Host Configuration Protocol
DHCP is used for allocation of dynamic IP addresses to computers in a network.
SNMP – Simple Network Management Protocol
SNMP is used for administration of computer networks.
LDAP – Lightweight Directory Access Protocol
LDAP is used for collecting information about users and e-mail addresses from the internet.
ICMP – Internet Control Message Protocol
ICMP takes care of error-handling in the network.
ARP – Address Resolution Protocol
ARP is used by IP to find the hardware address of a computer network card based on the IP address.
RARP – Reverse Address Resolution Protocol
RARP is used by IP to find the IP address based on the hardware address of a computer network card.
BOOTP – Boot Protocol
BOOTP is used for booting (starting) computers from the network.
PPTP – Point to Point Tunneling Protocol
PPTP is used for setting up a connection (tunnel) between private networks.
This is the list of protocols in the TCP/IP standard. Now you have a place to lookup what each individual protocol do, and how it works.
If there is interest, I will make some graphics to each individual Protocol explaining what it does and how the data is broken down and re-assembled on the other side.
Have questions, opinions? Post a comment below.
Until next time,
Morten Haugstad