Explain Protocols: TCP/IP,UDP,SMTP,FTP,HTTP
· TCP and IP were developed by a Department of Defense (DOD) research project to connect a number different networks designed by different vendors into a network of networks (the “Internet").
· It was initially successful because it delivered a few basic services that everyone needs (file transfer, electronic mail, remote logon) across a very large number of client and server systems.
· Several computers in a small department can use TCP/IP (along with other protocols) on a single LAN. The IP component provides routing from the department to the enterprise network, then to regional networks, and finally to the global Internet.
· On the battlefield a communications network will sustain damage, so the DOD designed TCP/IP to be robust and automatically recover from any node or phone line failure. This design allows the construction of very large networks with less central management.
As with all other communications protocol, TCP/IP is composed of layers:
· IP - is responsible for moving packet of data from node to node. IP forwards each packet based on a four byte destination address (the IP number). The Internet authorities assign ranges of numbers to different organizations. The organizations assign groups of their numbers to departments. IP operates on gateway machines that move data from department to organization to region and then around the world.
· TCP - is responsible for verifying the correct delivery of data from client to server. Data can be lost in the intermediate network. TCP adds support to detect errors or lost data and to trigger retransmission until the data is correctly and completely received.
· Sockets - is a name given to the package of subroutines that provide access to TCP/IP on most systems.
· UDP (User Datagram Protocol) is a simple OSI transport layer protocol for client/server network applications based on Internet Protocol (IP). UDP is the main alternative to TCP and one of the oldest network protocols in existence, introduced in 1980.
· UDP is often used in videoconferencing applications or computer games specially tuned for real-time performance.
· To achieve higher performance, the protocol allows individual packets to be dropped (with no retries) and UDP packets to be received in a different order than they were sent as dictated by the application.
· UDP network traffic is organized in the form of datagrams. A datagram comprises one message unit. The first eight (8) bytes of a datagram contain header information and the remaining bytes contain message data.
· A UDP datagram header consists of four (4) fields of two bytes each:
Source port number: UDP port numbers allow different applications to maintain their own channels for data similar to TCP. UDP port headers are two bytes long; therefore, valid UDP port numbers range from 0 to 65535.
Destination port number: The UDP datagram size is a count of the total number of bytes contained in header and data sections. As the header length is a fixed size, this field effectively tracks the length of the variable-sized data portion (sometimes called payload). The size of datagrams varies depending on the operating environment but has a maximum of 65535 bytes.
Datagram size: UDP checksums protect message data from tampering. The checksum value represents an encoding of the datagram data calculated first by the sender and later by the receiver.
Checksum :Should an individual datagram be tampered with or get corrupted during transmission, the UDP protocol detects a checksum calculation mismatch. In UDP, check summing is optional as opposed to TCP where checksums are mandatory.
Difference between TCP and UDP
Reliability: TCP is connection-oriented protocol. When a file or message send it will get delivered unless connections fails. If connection lost, the server will request the lost part. There is no corruption while transferring a message.
Reliability: UDP is connectionless protocol. When you a send a data or message, you don't know if it'll get there, it could get lost on the way. There may be corruption while transferring a message.
Ordered: If you send two messages along a connection, one after the other, you know the first message will get there first. You don't have to worry about data arriving in the wrong order.
Ordered: If you send two messages out, you don't know what order they'll arrive in i.e. no ordered
Heavyweight: - when the low level parts of the TCP "stream" arrive in the wrong order, resend requests have to be sent, and all the out of sequence parts have to be put back together, so requires a bit of work to piece together.
Lightweight: No ordering of messages, no tracking connections, etc. It's just fire and forget! This means it's a lot quicker, and the network card / OS have to do very little work to translate the data back from the packets.
Streaming: Data is read as a "stream," with nothing distinguishing where one packet ends and another begins. There may be multiple packets per read call.
Datagrams: Packets are sent individually and are guaranteed to be whole if they arrive. One packet per one read call.
Examples: World Wide Web (Apache TCP port 80), e-mail (SMTP TCP port 25 Postfix MTA), File Transfer Protocol (FTP port 21) and Secure Shell (OpenSSH port 22) etc.
Examples: Domain Name System (DNS UDP port 53), streaming media applications such as IPTV or movies, Voice over IP (VoIP), Trivial File Transfer Protocol (TFTP) and online multiplayer games etc
· SMTP stands for Simple Mail Transfer Protocol. SMTP is a standard network protocol for transmitting messages to an email server on the Internet.
· The SMTP format became the popular choice during the 1980s, at which time it was a complement to another technology known as UUCP (Unix-to-Unix Copy).
· While UUCP was an excellent solution for handling email transfers going between intermittently connected computers, SMTP was found to be a much better option for sending and receiving emails on computers connected to a network permanently.
· By 2001, approximately 50 different programs used SMTP as a client (which is responsible for sending emails) as well as a server (which receives these emails).
· Originally, SMTP was an ASCII, text-based solution, which means there were problems with binary files – images for example.
· Standards such as MIME (Multipurpose Internet Mail Extensions) were developed to allow binary files to be encoded and sent via SMTP.
· All modern email client programs support SMTP. Web-based clients embed the address of an SMTP server inside their configuration, while PC clients provide SMTP settings that allow users to specify their own server of choice.
· Because SMTP handles outgoing messages and not incoming ones, email clients require addresses of both an SMTP server and another server that processes inbound messages (usually, POP or IMAP).
· SMTP uses TCP port number 25 for standard communication. To improve SMTP and help combat spam on the Internet, standards groups have also designed TCP port 587 to support certain aspects of the protocol.
· A few Web email services, such as G-Mail, use the unofficial TCP port 465 for SMTP. Now-a-days Microsoft Exchange server is most popular.
· FTP allows you to transfer files between two computers on the Internet. FTP is a simple network protocol based on Internet Protocol and also a term used when referring to the process of copying files when using FTP technology.
· To transfer files with FTP, you use a program often called the "client." The FTP client program initiates a connection to a remote computer running FTP "server" software.
· After the connection is established, the client can choose to send and/or receive copies of files, singly or in groups. To connect to an FTP server, a client requires a username and password as set by the administrator of the server.
· Many public FTP archives follow a special convention for that accepts a username of "anonymous."Simple FTP clients are included with most network operating systems, but most of these clients (such as FTP.EXE on Windows) support a relatively unfriendly command-line interface.
· Many alternative freeware / shareware third-party FTP clients have been developed that support graphic user interfaces (GUIs) and additional convenience features.
· In any FTP interface, clients identify the FTP server either by its IP address (such as 192.168.0.1) or by its host name (such as ftp.about.com).
· FTP supports two modes of data transfer: plain text (ASCII), and binary. You set the mode in the FTP client.
· A common error when using FTP is attempting to transfer a binary file (such as a program or music file) while in text mode, causing the transferred file to be unusable.
· The Hypertext Transfer Protocol (HTTP) is an application protocol for distributed, collaborative, hypermedia information systems.
· HTTP is the foundation of data communication for the World Wide Web. Hypertext is a multi-linear set of objects, building a network by using logical links (the so-called hyperlinks) between the nodes (e.g. text or words).
· HTTP is the protocol to exchange or transfer hypertext. HTTP defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands.
· For example, when you enter a URL in your browser, this actually sends an HTTP command to the Web server directing it to fetch and transmit the requested Web page.
· The other main standard that controls how the World Wide Web works is HTML, which covers how Web pages are formatted and displayed.
· HTTP is called a stateless protocol because each command is executed independently, without any knowledge of the commands that came before it.
· HTTP - the Hypertext Transfer Protocol - provides a standard for Web browsers and servers to communicate.
· The definition of HTTP is a technical specification of a network protocol that software must implement. HTTP is an application layer network protocol built on top of TCP.
· HTTP clients (such as Web browsers) and servers communicate via HTTP request and response messages. The three main HTTP message types are GET, POST, and HEAD.
· HTTP utilizes TCP port 80 by default, though other ports such as 8080 can alternatively be used.
· The current version of HTTP in widespread use - HTTP version 1.1 - was developed to address some of the performance limitations of the original version - HTTP 1.0. HTTP 1.1 is documented in RFC 2068.