TCP/IP(Transmission Control Protocol/Internet Protocol)

TCP/IP History

We’re going to be talking about the history of TCP/IP. Now, back in 1969, the internet was actually a very small network that was developed at the request of the Advanced Research Projects Agency, or ARPA. And it was called the ARPANET at that point.And eventually a company called Bolt Beranek and Newman in Massachusetts was contracted by ARPA to build what was going to be called the ARPANET.

So the idea was it was going to be used as a research network to look into the feasibility of using computer networks in order to primarily facilitate defense operations. In 1969, we get the first node. And we can take a look at a diagram here of the first hookup here. So we’ve got the Interface Message Processor or IMP, which was an early router– or the very first router, if you want to call it that. And the first host was a Sigma 7 system. Now, eventually by December of 1969, we end up with a four-node ARPANET. And you can see we’ve got SRI, Utah, UCLA, and UCSB. So we’ve got four nodes on the internet.

The early network protocols that were used was actually something called NCP. And early on, it wasn’t actually TCP/IP. It was NCP. ARPANET hosts start using network control protocol, the first host-to-host protocol. In 1972, we get the first email, which is kind of interesting. Ray Tomlinson at BBN starts to send email. And that’s when the first at sign was used. But in 1974 where we actually get to where the very first specification for TCP is published. You’ll note I only said TCP. I didn’t say TCP/IP. At that point, there was no internet protocol.

TCP was the entire protocol. And TCP took the functions that now the IP portion, or the internet protocol portion, actually had. Through the 1970s, TCP kept growing. And in 1978, you can see here TCP was split into TCP and IP. So they determined that for better modularity, they needed a whole different protocol. So they created the internet protocol in 1978. At that point, they were still using NCP primarily on the ARPANET. In 1981– actually, you can see RFc801 here, the NCP-TCP transition plan. So there was actually a plan to transition between NCP, or the Network Control Protocol, and TCP, which is the Transmission Control Protocol, or TCP/IP.

It wasn’t until the early ’80s that TCP/IP became the predominant networking protocol on what was then still a fledgling internet. It was still called the ARPANET. And in the early ’80s, there were several networks that were being created. In 1981, for example, there was BITNET. And that was a network primarily of IBM mainframes.

There was the Computer Science Network, and there were several other networks that were being created around the world. Now, eventually, by the mid-’80s, TCP/IP was the predominant and de facto networking protocol on the internet. And it wasn’t actually until the late 1980s that we really got the internet that we have today.

And that was through the creation of the NSFNET, which would have been in 1986. So the NSFNET was created, and that had a faster backbone speed, 56k. And it was really an evolutionary process where all of the networks were folded in together, and we created one large internet. And that was really the late 1980s, early 1990s when that happened. But by that point, TCP/IP had become the de facto standard on the internet. And it’s really the use of the site-to-site communication and the end-to-end communication requirements that really drove the adoption worldwide of TCP/IP.

TCP/IP layers

TCP/IP has four layers but it’s all similar to sevenlayer of OSI model. Below mentioned figure is shown the comparison between TCP/IP and OSI model. All the seven layers are briefly explained below.

TCP IP layer Understanding

Application Layer :

Application layer doesn’t include computer applications like Google Chrome, Mozilla Firefox, Outlook ,Filezilla, Skype But it uses some set of protocol like http/https,FTP,SMTP,Virtual terminal,DHCP,SNMP,POP3 to communicate with these computer applications.

HTTPS/HTTP:- It uses for web surfing
FTP/TFTP :- It uses for file transfer
TELNET :- Virtual Terminal
SMTP,POP3 :- Outlook
NFS :-Remote file services

Presentation layer :– Presentation layer is responsible for Data translation, Data compression and Data encryption/decryption.

Translation :  Presentation layer receives data from the application layer, this received data is  in the form of character and data. This data is not a machine understandable. Therefore, Presentation layer translate this data into binary. I.e   ASCII to EBCDIC

Compression : Before transmitting the data it reduced the size of data.This data maybe lossy or lossless. This data reduction process is helpful for faster communication.It plays an important role for real time application which  uses voice and video  streaming.

Encryption/Decryption : To maintain the integrity of the data before transmission it is encrypted.It carries out encryption at the transmitter and decryption at the receiver and SSL is a protocol used for this operation

Session Layer : In the Open Systems Interconnection (OSI) model, the session layer is the fifth layer, which controls the connections between multiple computers. The session layer keeps track of the dialogue between computers, which are also called sessions. This layer establishes, controls and ends the sessions between local and remote applications. Authentication and authorization are also performed on this layer

Transport Layer :Transport layer controls the reliability of communication through Segmentation,flow control, error control.It’s also responsible for end to end data delivery.

Segmentation : Data received from session layer are divided in to a small data units call segments. Each segments contain a source/destination ports and sequence number.Port helps to redirect each segment to correct application.i.e Port 80 used by web browser (Google Chrome,Firefox). Sequence number is used to reassemble segments in the correct order to form correct data at the receiver end.

Flow control : It control the amount of data being transmitted. Let’s consider, Server is communicating with mobile. Server can proceed data at the rate of 50 Mbps and mobile can 5 Mbps. When server transmits any data with speed of 50 Mbps to mobile. At the same time mobile informs to server that reduce the amount of data to 5Mbps so no data get lost. Finally both devices agreed on certain transfer rate to make this communication happened.

Error Control : If some data doesn’t arrive at destination then it will use (ARR) automatic repeat request to retransmit lossy or corrupted data.Checksum is also used to find corrupted data.

There are two protocol works on this layer

  1. TCP : It’s a connection oriented protocol and perform 3-way handshake before transmitting any data, which means in case of lost in any data while transmitting it retransmits lossy data.
  2. UDP : It’s connection less protocol and faster than TCP because it doesn’t take any feedback if any data get lost during transmission. Voice over IP, Online streaming, online movies/songs etc.

TCP Header

TCP Header

UDP Header :

UDP Header

Network Layer :

The network layer deals with logical addressing, that means IP addresses, but it could also mean IPv6, IPX, AppleTalk, SNA, and a bunch of others. A logical address is one that is assigned to an interface in software—as opposed to one that is burned onto an interface at the factory (as is the case with MAC addresses, as you will see in a minute). For two IP hosts to communicate, they must be in the same network.If they are in different networks, we need a router to connect the two networks. Finding the way between networks, potentially through hundreds of routers, is called path determination.

This is the second function of the network layer. Path determination means routing, and routers are a Layer 3 device (so are Layer 3 switches, oddly enough).

The last function of the network layer is to communicate with the layer above (transport) and the layer below (data link). This is achieved by attaching a header to the beginning of the segment that Layer 4 built. The addition of this header makes the segment into a packet (sometimes called a datagram, but we like packet better).

The packet header has a field that indicates the type of segment it is carrying—TCP or UDP, for example—so that the packet can be sent to the correct function at Layer 4. Communicating with Layer 2 in this case means that an IP packet can be sent to Layer 2 to become an Ethernet frame, Frame Relay, PPP, or almost any other Layer 2 technology. We elaborate on this a little later.

One of the big advantages of a logical addressing scheme is that we can make it hierarchical. Hierarchical means “organized into a formal or ranked order.” Because all the networks are numbered, and we have control over where those networks are set up, it’s easy for us to build a really big system.

Big networks are broken into smaller and smaller pieces, with the routers closer to the core knowing the big picture and no details, and the routers at the edge knowing their little set of detailed information but nothing about anyone else’s. This makes it easier to organize and find all the millions of different networks, using routers. It’s roughly equivalent to a postal address.

For example,look at the following address:
24 Sussex Drive
Ottawa, Ontario
Canada K1N 9E6

You could probably find it, eventually, because you would know to get to Canada first, and then to the province of Ontario, and then the city of Ottawa (beautiful place). Grab yourself a map, and soon you’ll be standing in front of that address—which happens to be the prime minister’s house, so don’t be surprised if the Mounties are curious about you being there

The alternative to a nicely organized hierarchical system like that is a flat topology. In a flat system, there is no efficient way to determine where a single address is, because they are not organized. Imagine if the address were this instead: 30000000

Okay, where is it? We have no idea. Unless we can ask everyone at once if it’s their address, we don’t really stand a chance of finding it. Flat networks (Layer 2) work as long as there are not very many addresses; hierarchical is scalable. Layer 3 is hierarchical, logical addressing that allows us to perform path determination. You should be familiar with the protocols that exist at Layer 3 as well.

Data Link Layer :

The data link layer is where many wired and wireless LAN technologies worked. Such as Ethernet, Token Ring, FDDI, and 802.11 (wireless Ethernet or Wi-Fi) are all sometimes called data link layer technologies. The data link layer is responsible for data framing, addressing and error detection. It is divided into two sub-layers: logical link control (LLC) and media access control (MAC).

Logical Link Control :-This layer performs error-checking functions for frames delivered over the subnet and manages links between devices communicating on thesubnet.

Media Access Control (MAC) :-This layer provides an interface with the network adapter. The network adapter driver, is called the MAC driver, and the physical hardware address burned into the card at the factory is called as the MAC address.

Data Framing :-This layer is responsible for data framing, which is the final encapsulation of higher-level messages into frames that are sent over the network at the physical layer.

Addressing:-This is the lowest layer in the OSI model that is concerned with addressing. It labels information with a particular destination location. Each and every devices on a network have a unique number that is used by the data link layer protocol to ensure that data intended for a specific machine gets to it properly. This is usually called a hardware address or a MAC address.

Physical Layer :

The last piece of the OSI puzzle is the actual connection between devices. At some point, you have to transmit your signal onto a wire, an optical fiber, or a wireless medium. The physical layer defines the mechanical, procedural, and electrical standards for accessing the media so that you can transmit your Layer 2 frames.

All network signaling at Layer 1 is digital, which means that we are sending binary bits onto the wire. This can mean energizing a copper cable with electricity, where “electricity on” indicates a binary 1 and “electricity off” indicates a binary 0; or, it can mean blinking a laser down an optical fiber where on = 1 and off = 0. Wireless systems do much the same thing. By defining standards for the physical layer, we can be assured that if we buy an RJ-45 patch cord (for example), it will fit into and work properly in any interface designed to use it.