The set of communications protocols that are used for the Internet and similar networks, and typically the most popular protocol stack for wide area networks is Internet Protocol stack which is generally known as TCP/IP, because of its most important protocols i.e. Transmission Control Protocol (TCP) and Internet Protocol (IP), which were the first networking protocols defined in this standard.
TCP/IP provides end-to-end connectivity specifying how data should be formatted, addressed, transmitted, routed and received at the destination. TCP/IP layer has four layers with its own protocols.
From highest to lowest, the layers are described below;
Application Layer (Process-to-process) This is the layer that creates user data and communicates this data to other processes or applications on another or the same host. Peers are the communication partner where the "higher level" protocols such as SMTP, FTP,SSH,HTTP, etc. operate. The Application Layer combines a few services and these services are end user-related i.e. authentication, data handling, and compression, where email, Web browsers, telnet clients, and other Internet applications are connected. The application layer contains the higher-level protocols used by most applications for network communication. File Transfer Protocol(FTP) and the Simple Mail Transfer Protocol (SMTP) are the examples of the application layer. The Data which are coded according to application layer protocols are then encapsulated into one or generally more transport layer protocols such as TCP or UDP, which uses lower layer protocols to effect actual data transfer. The IP stack defines no layers between the application and transport layers, and this layer must include any protocols that act like the OSI's presentation and session layer protocols. This is usually done through libraries.
Transport Layer (Host-to-host) The transport layer constitutes the networking regime between two network hosts, on the local network or on remote networks that are separated by routers. This layer gives a uniform networking interface which hides the actual layout of the underlying network connections, where flow-control, error-correction, and connection protocols exist, such as TCP. This layer works on opening and maintaining connections between Internet hosts. The transport layer builds host-to-host connectivity, that handles the details of data transmission which are independent of the structure of user data and the logistics of exchanging information for any particular specific purpose. It includes end-to-end message transfer independent of the underlying network, along with error control, segmentation, flow control, congestion control, and application addressing . End to end message transmission or connecting applications at the transport layer can be classified as connection-oriented and implemented in TCP, or connection-less and implemented in UDP. The layer usually establishes a basic data channel which an application uses in its task-specific data exchange. For this purpose the layer establishes the concept of the port, a numbered logical construct allocated specifically for each of the communication channels an application needs. These port numbers have been standardized so that client PCs may address specific services of a server computer without the involvement of service announcements or directory for many types of services.
Internet Layer In internet layer data-grams across network boundaries are exchanged. It also refer to the layer that establishes inter-networking. Internet layer defines the addressing and routing structures that are used for the TCP/IP protocol suite. The primary protocol is the Internet Protocol, that defines IP addresses. Its function is to transport data-grams to the next IP router which has the connectivity to a network closer to the final data destination. The internet layer sends the packets across potentially multiple networks. Internet-working requires sending data from the source network to the destination network and this process is called routing. In the Internet protocol suite, the Internet Protocol performs two basic functions which are mention below:
Host Addressing and Identification This is accomplished with a hierarchical addressing system.
Packet Routing This is the basic task of sending packets of data-grams from source to destination by sending them to the next network router that is closer to the final destination.
This layer generally provides an unreliable datagram transmission facility between hosts located on different IP networks by forwarding the transport layer datagrams to an appropriate next-hop router for further relaying to its destination. The internet layer makes possible internetworking i.e. the interworking of different IP networks and it is essential to establish the Internet. The principal component of the internet layer is the internet protocol, that defines two addressing systems to identify network hosts computers which locate them on the network. The schemes are IPV4 and IPV6.
The link layer The link layer defines the networking process within the scope of the local network link on which hosts communicate without intervening routers. This layer also defines the protocols used to describe the local network topology and the interfaces needed to affect transmission of Internet layer datagrams to next-neighbor hosts. The link layer is generally used to move packets between the Internet layer interfaces of two different hosts which are on the same link. The methods of transmitting and receiving packets on a given link can be controlled both in the software device driver for the network card and as well as confirm ware or on the specialized chipsets. The TCP/IP model includes specifications of translating the network addressing process used in the Internet Protocol addressing, such as Media Access Control (MAC), however all other aspects below that level are implicitly supposed to exist in the link layer, but are not defined.
Transmission Control Protocol (TCP): (CSIT Nepal) Transmission Control Protocol(TCP) is a protocol which provides a reliable stream delivery and connection service to applications. TCP is able to retransmit packets as needed. Transmission Control Protocol accepts data from a data stream and segments it into chunks and then adds a TCP header creating a TCP segment. The TCP segment is then encapsulated into an Internet Protocol (IP) datagram. A TCP segment is the packet of information in which TCP uses to exchange data with its peers. A TCP segment consists segment header and a data section. The TCP header contains 10 mandatory fields, and an optional extension field. The data section follows the header. Its contents are the payload data carried for the application. The length of the data section isn’t specified in the TCP segment header.
Source port Source port is used for multiplexing number of process. A 16-bit number identifying the application the TCP segment originated from within the sending host.
Destination port Destination port is used for identifying destination process.
Sequence number Sequence number is randomly generated.32 bit number used for byte level numbering of TCP segments. If you are using TCP, each byte of data is assigned a sequence number.
Acknowledge number 32 bit number field which indicates the next sequence number that the sending device is expecting from the other device.
Header length This field contains the total length of header. The minimum size of header is 20 bytes and maximum size is 60 bytes.
Control bit flags There are 6 different flags as explained below;
URG: This flag is set to 1 when urgent data is to be sent.
ASK: this flag is set when acknowledgment is to be sent.
PSH: This flag is set when data is to be transferred immediately without sorting it into buffer.
RST: This flag is set when some connection is unable to establish and instructing the sender to reset the connection
SYN: This flag is set to establish the connection and synchronize them.
FIN: This flag is set to terminate the connection.
Receive windows Indicates the size of receive window, which specifies the number of bytes beyond the sequence number in the acknowledgement field that the receiver is currently willing to receive.
Checksum The 16 bit checksum is used for error checking of the header and data. A TCP sender computes a value based on the contents of the TCP header and data fields.
Urgent pointer Its shows the end of the urgent data so that interrupted data streams can continue. When the URG bit is set, the data is given priority over other data streams.
Options In order to provide additional functionality, several optional parameters may be used between a TCP sender and receiver. Depending on the options used, the length of this field will vary in size, but cannot be larger than 40 bytes due to the size of the header length field (4 bits).
Data This is a real data inside the TCP packet which is sent by the application at the sender side.
csitnepal. (n.d.). Retrieved from http://www.csitnepal.com: http://www.csitnepal.com/elibrary/notes/
Minoli, D. (2009). Internet and Intranet Engineering. New Delhi: MGraw-Hill india Limited.
slideshare. (n.d.). Retrieved from http://www.slideshare.net: http://www.slideshare.net/SiddheshZele/internet-technology-unit-123456
Stevens, D. E. (n.d.). Internetworking with TCP/IP. Prentice Hall .
Tanenbaum, A. S. (2010). Computer Network. New Delhi: Prentice Hall India Limited.