Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Is it true that TCP is short for TCP/IP and they mean the same thing?

Is it possible for TCP to be built on top of another protocol besides IP?

share|improve this question
29  
Why not? I might have seen TCP over morse code once. –  soandos Jul 16 '12 at 20:24
2  
An example would be an ICMP tunnel, which uses TCP over ICMP. But it is true that it is not usual building TCP on top of anything not IP. Usually is the network access layer the one using a wider range of protocols and channels (such as bongo drums). –  Mister Smith Jul 17 '12 at 8:40
1  
@TomWijsman Tried an failed? From what I understand, any trouble they had had to do with addressing issues and interoperability rather than any trouble getting TCP to work. –  tylerl Jul 18 '12 at 2:48
2  
@harper With regular Morse code, 200 characters/minute is certainly not unheard of for skilled operators, and 100 c/min (20 wpm) is definitely achievable by most people with enough practice. Of course, at those speeds, you don't really hear each individual character, but rather much the sound of words. (It's said that the hallmark of a skilled operator is that they remember the conversation, but not the words used.) I would imagine however that 100 c/min characters spaced to an overall speed of 50-60 c/min would be doable with negligible character error rates. –  Michael Kjörling Jul 18 '12 at 7:34
2  
@harper It depends on your required level of accuracy. For largely chit-chatting (rag-chewing, in amateur radio speak), getting a word here and there wrong is not really a problem, because the context matters more than the exact words used. For telegram traffic, emergency/distress communications and so on, particularly if the text is ciphered, every word and indeed every character must be (not just received but also) copied correctly (and legibly). Note that I said that 200 c/min is "not unheard of"; not commonplace. 100 c/min however is fairly common on the amateur radio bands. –  Michael Kjörling Jul 18 '12 at 8:02

13 Answers 13

up vote 87 down vote accepted

I haven't read the whole RFC but the language in section 1.4 seems to suggest that any "lower level" protocol can be used.

The interface between TCP and lower level protocol is essentially unspecified except that it is assumed there is a mechanism whereby the two levels can asynchronously pass information to each other. Typically, one expects the lower level protocol to specify this interface. TCP is designed to work in a very general environment of interconnected networks. The lower level protocol which is assumed throughout this document is the Internet Protocol.

share|improve this answer
95  
IP itself has been implemented over many network technologies, even carrier pigeons. The birds were actually used to demonstrate delivery of ICMP Ping packets, with a 55% packet loss (apparently due to operator error) and latencies ranging from one to two hours. It would be possible to run TCP on top of that, but the connection setup would require a lot of birds.... –  RBerteig Jul 17 '12 at 1:36
21  
About RBerteig's comment; consider a carrier pigeon carrying a mini-SDHC card. There's the difference between latency and throughput. :-) –  Michael Kjörling Jul 17 '12 at 6:33
16  
@MichaelKjörling This would not interoperate with RFC 1149: “The IP datagram is printed, on a small scroll of paper”. –  kmkaplan Jul 17 '12 at 9:43
4  
@kmkaplan Unless the datagram was printed on the label of the SDHC card. It's like the cliché from several films - "oh, it's actually ON the harddrive!" –  Jon Hanna Jul 17 '12 at 11:12
38  
Would have to have some seriously large holes in the firewall to allow avian carriers through. –  squillman Jul 17 '12 at 15:01

Internet Protocol Suite

TCP is not short for TCP/IP.

TCP/IP is often used as a shorthand way of saying "The Internet Protocol Suite" and usually includes other standard protocols. When people say TCP/IP they are usually including UDP over IP (in which UDP is used instead of TCP) and a great many other protocols such as ARP, ICMP, DNS, SNMP and other application layer protocols.

Application Layer

Applications use Application Layer protocols such as SMTP (for email). These sit on one of two transport layer protocols - TCP and UDP. A few application layer protocols will use either or both of UDP and TCP but most are used with only one transport layer protocol.

Transport Layer

TCP and UDP are two transport layer protocols used in the Internet Protocol Suite. If there are others I don't know of them and any others would represent a vanishingly small specialist use. Others transport layer protocols have been defined - their usage probably represents only a small proportion of global IP traffic

Internetwork Layer

Whilst it might be theoretically possible to use TCP over something other than IP, in practice TCP is always used over IP - the Internet Protocol. IP moves packets between networks (think of IP as connecting multiple LANs together)

Network Interface Layer

Ethernet is just the most popular family of low-level link-layer protocols on which TCP/IP is carried, but TCP/IP is also widely used over ATM and others.

IP layer diagram From bootdiscs.net


†Just for fun, I measured traffic on my (very) small LAN, which includes NetBIOS (over TCP), SSH, Rsync, Email, software updates, DNS, general Windows-box chatter and a few other types of traffic.Wirshark Protocol Hierarchy Statistics

share|improve this answer
1  
Brought me all the way back to 1996 and the OSI Model en.wikipedia.org/wiki/OSI_model –  Rudi Jul 17 '12 at 15:06
    
There are more than 2 transport layer protocols: en.wikipedia.org/wiki/Transport_layer#Protocols –  Stuart Blackler Jul 19 '12 at 11:53
    
@StuartBlackler: Interesting point, thanks. Are there any (other than TCP & UDP) that don't fall into what I called the "vanishingly small specialist use" category and which are used over IP? If I measured IP traffic at an Internet Exchange Point, what proportion of the transport layer protocols would be anything other than TCP or UDP? –  RedGrittyBrick Jul 19 '12 at 15:23
    
Take DCCP for example, it's still a new protocol but I imagine over the next few years you will see more applications use the protocol. Reason I don't think it's mainstream yet is because I don't believe there is support for it in Windows. Think of it as UDP with congestion control. Can be very handy for a lot of applications such as Skype and gaming :) Have a look at it. To answer your question, it's probably a very small amount at the moment –  Stuart Blackler Jul 20 '12 at 15:37

The reason why TCP/IP is such a common abbreviation (as opposed to, say UDP/IP or SCTP/IP) is because the two protocols were designed together, and in the original paper by Vint Cerf and Bob Kahn, the two concepts were combined together into a single protocol. Soon thereafter they were divided into IP to provide routing and TCP to provide flow control, multiplexing, error-detection, etc. It wasn't until six years later that UDP was introduced to provide a "lightweight" multiplexing layer without the rest of the overhead involved with TCP.

Still, TCP and IP are two separate things and completely and intentionally independent. The fact that TCP does not require IP is immediately apparent with the fact that TCP can run unmodified on both IPv4 and IPv6, which are two completely different protocols.

With a little work, you could create a competing protocol to IP that would serve the same purposes, but it would probably have to contain most if not all of the same features, and would probably end up looking a lot like IP anyway. You could argue that extensions to IP (such as IPSec) are effectively alternate layer 3 protocols, so there you go.

share|improve this answer
3  
+1: Interesting piece of history. –  Ken Bloom Jul 17 '12 at 20:19
    
Correct - the first version of TCP included the functionality of IP. Maybe another reason why people say "TCP/IP" is that the vast majority of the time when you're sending data over IP, you want to guarantee that all of it gets delivered and in the right order, so you use TCP. For instance, all HTTP and FTP traffic uses TCP. One category of exceptions is real-time data; Skype, for instance, uses UDP, because you'd rather get the latest packet in a conversation than stop everything to get one that you missed. –  Nathan Long Jul 21 '12 at 15:42

You can replace IP with something else. In fact, that's exactly what you're doing when you're using TCP over IPv6. TCP is still TCP, but the IP is v6 instead of v4.

AFAIK, nobody's created any other layer-3 protocols to work with TCP above them, but there's no reason you couldn't.

share|improve this answer

I have always heard that TCP is short for TCP/IP

Actually it stands for Transmission Control Protocol over Internet Protocol

and they mean the same thing.

That's not correct.

First, Ethernet is the low-level hardware system that controls how the actual hardware parts function.

Next, think of IP as a phone system or traffic signs. It provides the basic control of connecting system two points together.

TCP on the other hand is more like a messaging system or traffic control officer which directs messages/cars to the correct point.

Taken together, TCP/IP, provides a system of reliably transferring data to and from any two connected devices.

With the Internet, when you want to send or receive data, the IP part of the system is the part that controls making the actual hardware connections with the wires (or wireless waves). The TCP part of the system is the software that is responsible for taking the data and breaking it up, sending it, reassembling the received data, and checking the data and re-sending if necessary.

There are countless explanations with analogies and technical details available, especially in video form. DifferenceBetween.net has a particularly good one about this exact subject.

However, is it not possible for TCP to be built on top of another protocol besides IP?

Yes, you could indeed create an alternate system to TCP that uses IP. Take a look at the Internet Protocol Suite for some details.

share|improve this answer
13  
It's a little misleading to say that IP provides for "connecting" two points together. IP provides a way to send discrete individual packets from one machine to another; each packet is independent of all others. TCP provides the illusion of a continuous connection, which is really a sequence of packets sent via IP. –  Wyzard Jul 17 '12 at 0:50
4  
IP isn't related to hardware or physical signaling either. That's handled by lower-level technologies, e.g. Ethernet. –  Wyzard Jul 17 '12 at 0:58
7  
There is a lot wrong with this answer, and it misses the question entirely. First, Ethernet is just one link layer protocol that has been used to carry IP. There are plenty of others, and IP does not know or care about any of them. IP has nothing to do with the hardware; it is the routing layer between networks, above the hardware used to connect them. The point of the question was whether you can use TCP on something other than IP, not whether you can use something other than TCP that uses IP ( see UDP for an example of that ). –  psusi Jul 17 '12 at 4:28
3  
@synetech, the question was not "can something else be used on IP". It was "can TCP be used on something else", i.e. without IP. –  Wyzard Jul 17 '12 at 22:40
2  
> the fact that !TCP can go over IP does not necessarily mean TCP can go over !IP Huh? psusi is trying to be clever by using "!" as the "not operator". His comment should be read as: "the fact that something that is not TCP can go over IP does not necessarily mean TCP can go over something that is not IP". It is made in referrence to the last sentence of your answer, which showed the existence of "Alternate systems to TCP". However showing that alternatives to TCP exists does not necessarily imply nor hint that alternatives to IP exists. –  Lie Ryan Jul 21 '12 at 16:32

TCP and IP are like butter over bread.

You can pair anything else that works with either protocol, but these two are so complementary it is just a yummy reliable way to transfer data and fill the tummy with internet data. It greases the tube to allow other dry foodstuff and data handshaking alike to support this pairing. But in no way is it exclusive.

Q However, is it not possible for TCP to be built on top of another protocol besides IP?

A Yes it is possible. I like the Morse Code and Pigeon examples of TCP without IP.

share|improve this answer

TCP is a layer 4 protocol. It provides guaranteed transportation of data in form of an ordered stream from one process on a computer to another process on same/another computer.

IP is a layer 3 protocol. It provides transportation from one host to another.

As long as there is a protocol which can do host to host transfer of data, TCP will work.

So, TCP can be implemented over any protocol, but, We have only made IP. IP is simple and does the work.

There is no need for another Layer 3 protocol.

share|improve this answer
1  
What about IPv6? –  curiousguy Jul 18 '12 at 1:40
1  
What about IPv6? It's just IP. There interface of sending and receiving a packet remains the same. So, TCP can use the same function. OS can just replace the function pointer from IPv4 and IPv6 and it would still work. I am not sure what you are saying here ? –  snihalani Jul 18 '12 at 3:59
2  
IPv6 and IPv4 are similar, with similar interfaces for upper layers, but certainly not the same protocol and not strictly functionally equivalent either. –  curiousguy Jul 18 '12 at 4:10
    
You might as well pretend that UDP is the same protocol as IP, because they offer extremely similar interfaces to upper layers: set a local and a remote endpoint addresses, send and receive packets... –  curiousguy Jul 18 '12 at 4:16

When you design a network, you've got to choose a set of protocols (which are basically sets of communication rules between machines), for each of various "layers" (which you can imagine as different abstraction levels, that network designers like to keep in mind when creating and combining protocols).

Simpler version: protocols are like boxes in which we put our messages. Those boxes have different sizes, and you put your message in the smallest box, then the smallest box in a box that is a little bigger, etc. Choosing a set of protocols is choosing what kind of boxes you'll use, for each "layer" that surrounds your message.

TCP and IP are protocols for two independent layers, that were created together and to be usable together; but can very well be used with other protocols. That happens fairly often: you can use IP along with a non-TCP protocol, or TCP along with a non-IP protocol.

The reason why TCP/IP is such a common abbreviation is that those two protocols formed, together, the basis of the Internet and were key to its success.

(TCP and IP do have some functionalities that were designed specifically for them to function together, which is something purists often complain about, but they don't really prevent you from interfacing them with other protocols)

share|improve this answer

I think it's possible to run TCP over IPX transport, if you want to go retro.

share|improve this answer
1  
You are probably thinking about when IPX was tunnelled over TCP/IP. Which unsurprisingly didn't last long. –  andygavin Jul 17 '12 at 17:25
    
tools.ietf.org/html/rfc1791 –  GDR Jul 18 '12 at 16:04

Implementations of TCP on top of various protocols that support the transport of a basic datagram already exist. In fact the need is not even to specify the routing information (TCP does not even need IP to work with, just a serila link with an implicit recipient would be enough).

So you've got TCP implemented in top of UDP (advantage : you use a single port on the "server" side, or you can embed it over an existing connection transporting various multiplexed channels). Only the IP level provides the routing, but TCP does not need it. All that matters is that the concept of a MTU is provided by the lower layer.

This allows the protocol to bypass the limitations of NAT traversal, without requiring to register an UPnP translation port for a specific host. It allows independant tuning of the MTU and MSS, optimized for each client instead of by each iintermediate shared router. Other routing protocols are possible (includnig for the delivery via Multicast and broadcast networks). And you have the choice of sthe scurity mechanisms.

An example of use if Gogo6.net (which implements its IPv6 transport channel over a TCP session using a reimplementation of TCP over UDP v4 (it works on most home acccess routers that still only have an IPv4 address, and not always suppporting the UPnP method; without any need to configure it by users using a constant port number specific to the application, even when it is not running)

share|improve this answer

However, is it not possible for TCP to be built on top of another protocol besides IP?

Beside the classical TCP/IPv4 and TCP/IPv6, a few experimental protocols have been designed, for example:

Almost TCP over UDP (atou)

As part of our Net100 and Probe efforts in improving bulk transfers over high speed, high latency networks, we have developed an instrumented and tunable version of TCP that runs over UDP. The UDP TCP-like transport serves as a test-harness for experimenting with TCP-like controls at the application level similar to TReno.

And iproxy: Running TCP services over UDP, which is more fun:

iproxy comprises of a client-side proxy and a server-side proxy that allows arbitrary TCP/IP services to run over Broadcast, Multicast or Unicast UDP. It was originally conceived as a method to configure servers that had not been given an IP address on the LAN using an web-based interface.

So you see: TCP on unicast UDP, and even TCP on broadcast or multicast UDP!

AFAIK only TCP/IPv4 and TCP/IPv6 enjoy a large deployment.

share|improve this answer
    
Yeah, but that's UDP over IP; I see what you did there... –  Tom Wijsman Jul 18 '12 at 2:53
    
@TomWijsman Yes, it's TCP/UDP/IP. –  curiousguy Jul 18 '12 at 3:07

The answer is no! For example there is an old RFC describing TCP over IPX: http://tools.ietf.org/html/rfc1791

For those with short memories, IPX was the Novell Netware protocol: http://en.wikipedia.org/wiki/Internetwork_Packet_Exchange

share|improve this answer
    
i know the answer is old, but if possible please elaborate further on your answer and avoid posting links as plain answers/source. if the links are gone, so is your answer. –  Lorenzo Von Matterhorn Feb 22 '13 at 1:51

There are examples of communication systems in the military using TCP but not IP since the comm path is a serial-type connection that doesn't get routed thru routers, etc. If you look at the a TCP packet before it's headered with IP fields it seems easily possible to not use IP if your "routing" protocol is different.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.