TCP/IP and powerful in the 1970’s, they also

TCP/IP (Transmission Control Protocol/ Internet Protocol) is the standard for all network connections. It’s how we connect two computers together. It’s how data is shared across networks, most commonly using the Internet. It can be considered one of the most commonly used technologies to this day. In this paper, the basics of TCP/IP will be analyzed and discussed, as well as some advanced networking topics related to the protocol suite. More specifically, its origin and history, and its core functionalities are sufficient to give a better understanding as to how the TCP/IP protocol suite behaves. To understand how TCP/IP came to be, we need to first understand the origin of its primary “ancestors”, the IP address and the TCP. An IP address is a set of numbers that defines a network interface/device (for example: a laptop, a phone, a website, etc.). Numbers are used because that is the only way computers can send data to their corresponding destinations. IP addressing was created because as computers were becoming more popular and powerful in the 1970’s, they also needed to be able to communicate with each other. Without this technology, all data from the internet, including content from websites, emails, and documents, would have to be physically transferred on USB (Universal Serial Bus) drives, CD (Compact Disc)/DVD (Digital Versatile Disc)’s, letters, etc. 1. Before IP addressing was even considered, the ARPANET (Advanced Research Projects Agency NETwork) was created in the 1960’s, initially for the use of communications, to machines located at the Pentagon, over telephone lines. During the peak of the Cold War, military officials realized that communications would need to go to various other locations, and thus, the “tentacle-like” common structure for all Internet communications was unknowingly created 3. IP addressing was first officially discussed in 1974, when Vinton Cerf and Robert Kahn published papers discussing the internet protocol. They were also the creators of the first four experimental versions of the internet protocol between 1977 and 1979. They were respectively named IPv0 (Internet Protocol version 0), IPv1 (Internet Protocol version 1), IPv2 (Internet Protocol version 2),  and IPv3 (Internet Protocol version 3).  Seeing the potential shown from the experimental IP address versions, DARPA (Defense Advanced Research Projects Agency, previously known as ARPA), which is a branch of the U.S. D.O.D. (United States Department Of Defense), and researchers from around the world came together to create and implement the fourth version in 1979, called IPv4 (Internet Protocol version 4) 2. The TCP was created as an updated version of the NCP (Network Control Protocol). TCP defines how the Internet is used and creates connections between computers. Kahn developed its qualities to follow 4 simple rules. The first rule: that networks can connect to each other through a gateway. The second: that were would be no need for a central control station. The third: that lost or corrupted packets of data would be sent again to the specified destination after failure. The fourth: no changes would have to be made on a network in order for it to connect to other networks 4. IPv4 was created along side TCP, and originally was planned to be used in combination with one another 2. This was first tested using IPv3, and the third version of TCP. TCP is used only when the respective network is using IP addressing, so the name of the Internet Protocol suite became known as TCP/IP 4. The TCP/IP suite replacing the name of “Internet Protocol Suite” is best represented in how it’s defined and how it works. To understand how TCP/IP functions, the OSI (Open Systems Interconnection) model needs to be discussed. The OSI model is divided into 7 layers (the layer numbers are ordered 7 to 1). The names of the layers, in order, are: Application, Presentation, Session, Transport, Network, Data Link, and Physical. The Application layer contains standard communication applications that can be used by everyone. The Presentation layer ensures that data packets are delivered, and delivered properly. The Session layer manages connections between machines. The Transport layer manages the transfer of data, and also makes sure data packets aren’t corrupted or changed. The Network layer manages the IP addressing and delivery between networks. The Data Link manages data transferring between networks. Finally, the Physical layer is defines the characteristics of the network hardware. TCP/IP does not follow the OSI model layer for layer, but it incorporates each layer as needed, which is why TCP/IP is often compared to the OSI model 5. The TCP/IP architecture model has 4 layers (the layer numbers are ordered 4-1). The names of these layers, in order, are: Application, Transport, Internet, and the Network Interface layer. The Application layer provides access to services in other layers, and defines how applications data. A couple examples of protocols within this layer are DNS (Domain Name System), and RIP (Routing Information Protocol). These two protocols assists in the management of TCP/IP networks. The Application Layer is the equivalent of combining layers 7-5 in the OSI Model (Application, Presentation, and Session). The Transport layer is responsible for providing the Application layer with session and datagram communication services. The primary TCP/IP protocols in this layer are TCP and UDP (User Datagram Protocol). TCP is in charge of managing packets during transmission. It is the equivalent of combining part of layer 5, and all of layer 4 (Session and Transport). The fact that it plays such a vital role to the TCP/IP protocol suite is why it has earned half of the suite’s official name. The Internet layer “…is responsible for addressing, packaging, and routing functions” 6. The primary, and most important part of the Internet layer is the IP, which is responsible for IP addressing, routing, and packet disassembly and reassembly. The Internet layer has the same responsibilities as layer 4 in the OSI model (Network). The Network Interface layer is responsible for putting data packets on the physical network transmission channel, as well as taking them off it. It allows connection to different types of networks. Examples of different types of networks include: ethernet, frame relay, X.25, ATM (Asynchronous Transfer Mode), and a large, constantly changing, quantity of others. The Network Interface layer bears the equivalence of layers 2 and 1 in the OSI model (Data-Link and Physical) 6. As aforementioned, each layer of the TCP/IP architecture model contained protocols that allowed their corresponding layers to operate as they do. Let’s get a little more in depth into some of the core protocols of the TCP/IP protocol suite that are vital to the suite’s success. IP is an unreliable protocol that is mostly responsible for addressing and routing packets. Unreliable, in computer terms, simply means that successful delivery to a host is not 100% guaranteed. This protocol is not responsible for recovering lost or corrupted data packets. The IP can be divided up into two parts: the IP header and the IP payload. The IP header defines different parts of the IP datagram, such as the source of it (Source IP address), the destination, (Destination IP address), how to identify fragments of the IP datagram (Identification) and approximately 3 other specific names for certain parts of the IP datagram. When an IP datagram is being sent from a network to a host, it may be too large to be immediately accessed by the host. This is where Fragmentation and Reassembly occurs for the IP payload. The IP payload is the whole IP datagram put together into one packet. Fragmentation and Reassembly disassembles the IP datagram into smaller parts, and sends those fragments individually to the host. The IP of the host, once it receives all parts of the datagram, then reassembles all the parts into the original IP payload, making it accessible for the user. The ARP (Address Resolution Protocol) resolves the MAC (Media Access Control) address to its relative forwarding IP address. The ICMP (Internet Control Message Protocol) is responsible for troubleshooting and reporting errors in packets that fail initial delivery. Two very common troubleshooting messages associated with ICMP are: Echo Request (which checks the status of the IP connection to the specified host), and Echo Reply (which is a response to an Echo Request). The IGMP (Internet Group Management Protocol) is in charge of managing the IP multicast groups. Specifically, it is in charge of managing which hosts receive IP datagrams during an IP multicast. An IP multicast occurs when a specified IP datagram is sent to multiple hosts during a single transmission. The IGMP determines whether these hosts meet the qualifications in order to receive the IP datagram. TCP is one of the two most important protocols in the TCP/IP suite. It is another way of sending datagrams (when compared to IP), but it is a reliable service. This means that delivery of the datagram(s) is guaranteed once a connection is established. The datagram broken up and sent in pieces to the host. Once each part of the datagram is received, the host must send an acknowledgment (ACK) in order for the next fragment to be sent. If the ACK is not returned, the corresponding fragment of the data will be resent to the host. Certain ports are designated for TCP datagrams; some of them include: Port #20 (Data Channel), Port #21 (Control Channel), and Port #80 (HyperText Transfer Protocol, or HTTP). A TCP connection is known as a Three-Way Handshake. To better explain how a Three-Way Handshake works, let’s say there are two computers trying to establish a connection. They will be called Computer A and Computer B. Computer A sends out a Sequence Number to Computer B in order to let Computer B know that a connection is desired. A Sequence Number simply defines the name of the specific connection trying to be made. Once Computer B receives and agrees to the requested connection, it will send back its own Sequence Number, along with an ACK for the Computer A’s Sequence Number. Having separate paths allows data to travel from both parties simultaneously. Computer A will receive Computer B’s request and ACK, and once Computer A agrees to the second connection, Computer A sends an ACK for it. After Computer B has received the ACK, the TCP connection will officially be established. In order to end the TCP, connection, a similar method of sending and receiving Sequence Numbers and ACK’s occurs. UDP (User Datagram Protocol) is the final of the most common protocols within the TCP/IP protocol suite. It is a protocol that is similar to the other datagram-exchanging services aforementioned, but does not use a connection, and is unreliable. Delivery and uncorrupted transmission is not guaranteed. It may seem highly inconvenient to use such a protocol, but it makes the most sense to use it when sending small packets of data over transmissions that don’t require any ACK. Examples of these types of transmission are: NetBIOS (Network Basic Input/Output System), and SNMP (Simple Network Management Protocol). Similarly to TCP, SNMP uses ports for transmissions, and has designated ports for specific aspects of SNMP. Two of the most important of these ports are the Source Port and the Destination Port. As their names state, these are the departure and arrival posts at which the UDP datagram physically begins and ends its transmission. Some of the common port numbers (and their uses) are: Port #53 (for DNS name queries), Port #137 (for the NetBIOS naming service), and Port #161 (for the SNMP). All TCP/IP protocols are very important, but without these common ones, a computer wouldn’t be able to properly establish connections the way we know they do today 7. TCP/IP is a very complex, but well-designed protocol suite that is the foundation for the network connectivity our society is familiar with today. From the early days of testing beta versions of IP, to the implementation of the suite on the ARPANET and how it functions today. Each of its architectural model layers is crucial to how the suite functions, and each protocol within the suite is just as important. TCP/IP is crucial to the forever changing world of technology we live in, and it’s important to understand how it operates.