In our How TCP/IP Protocol Works tutorial we’ve explained the basic architecture of TCP/IP protocol and how the basic protocols involved (like TCP, UDP and IP) worked. Now it is time to get a little bit deeper, explaining other protocols and other TCP/IP functionalities we didn’t cover before, like Telnet, SSH, TFTP, DHCP, DNS, ICMP, RIP, OSPF, BGP, ARP and more.
It is important to keep in mind that there is several other protocols related to TCP/IP stack and we are only explaining the most important ones.
Terminal services allow you to enter remotely on a server and have access to its shell (i.e., to its command prompt), like if you were personally in front of its keyboard and video monitor. The three most common terminal protocols are Telnet, Rlogin and SSH (Secure Shell). All do the same thing, but on SSH the connections are encrypted and thus safer. If you have to manage a server remotely, prefer using SSH instead of Telnet or Rlogin, because since Telnet and Rlogin connections aren’t encrypted, someone using a ”sniffer“ program – which is a kind of program that allows a hacker to read packets that are being transferred on a network – can read everything you type, including passwords.
Telnet, Rlogin and SSH are Application layer protocols and use the TCP protocol on the Transport layer, Telnet using port 23, Rlogin using port 513 and SSH using port 22.
One of the most famous Terminal client program for Windows that allows Telnet, Rlogin and SSH connections is called PuTTY (Windows comes with a Telnet utility – which can be accessed going to Start, Run, Telnet – but it doesn’t come with a SSH one).
TFTP (Trivial File Transfer Protocol)
On the first part of this tutorial we have explained about FTP, an Application layer protocol for transferring files using the TCP protocol on the Transport layer.
TFTP is a protocol for the same kind of application – transferring files – but based on UDP protocol on the Transport layer.
As you may remember, the difference between TCP and UDP is that while TCP checks whether each data packet arrived correctly at destination, UDP does not. Another difference is that TCP reorder packets that may have arrived out-of-order, while UDP doesn’t.
On the other hand, because it does not use this acknowledge system nor any reordering system, UDP packets are smaller (since UDP header is smaller than TCP header) and also require less computational power to be processed – as reordering and acknowledging aren’t necessary. It will be the application – not the protocol – that will be in charge of these functions.
For daily usage, TFTP protocol has no use, as FTP is far more reliable. However there is one kind of application that take advantage of TFTP and you should know about it: diskless remote boot (also known as RIPL, Remote Initial Program Loading).
You can have a computer with no hard disk drive or any other storage media and configure it to boot from the network, i.e., load the operating system and programs from a server. The program for loading the operating system remotely needs to be stored on a very small ROM memory located on the network card from the diskless computer. As it will need a protocol for transferring files, TFTP suits better than FTP, as TFTP clients are far smaller than FTP clients, fitting the network card ROM memory – for you to have an idea, the size of the largest ROM chips used for remote booting is only 64 KB (yes, kilobytes).
In summary, TFTP is an Application layer protocol using UDP protocol (using port 69) on the Transport layer.