Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have always been curious about how do, say two computers, connect over the Internet.

For example, using the IP address from whatismyip service, I can only see the config page of my router, but pure p2p services like Bitcoin connect two computers directly, if they use IP address. the would have connected to my router/wireless AP. Do they really use IP or other methods? I do not need to do even port-forwarding in order to get p2p software working.

share|improve this question
The reason why you can see your router page is because you're accessing it from your own network. Other computers treat your IP as an address to your computer. – Doktoro Reichard Dec 18 '13 at 15:21 for a bit of info regarding how the bitcoin protocol works at the network level. At the bottom of the page it looks like there is a bitcoin dissector being written for WireShark (packet capture tool for Win/Linux/Mac) – Richie086 Dec 18 '13 at 22:31
Hello @DoktoroReichard I mean that when I use whatismyip service to get my external ip, I get the ip of my router. So I read about that when I get this, I will need to forward a port to the internal ip of my computer. But what I encounter is that when I use peer-to-peer client, I don't need to do that. What I understand about p2p is that nodes are connected directly to each other, so how is that done when I can't even connect to my computer from external network? – Alexander Ho Dec 19 '13 at 14:46
Because p2p took care of the connection between two computers that accept it. You can't "connect" to your computer from an external network because, among other things, it isn't set up to do so. An example is an HTTP server, like Apache. If you have Apache and configured a webpage, then any request made to your IP address that comes through port 8080 will be treated by Apache as an HTTP request... in a way you are now connected to your computer. Port forwarding is needed, though, if the router itself is unable to rout the communications. – Doktoro Reichard Dec 19 '13 at 16:41
up vote 0 down vote accepted

If you are interested in how P2P applications communicate over the internet, it really depends on which P2P application you are talking about. All of the P2P applications I am aware of transmit over TCP/IP considering it is the foundation that the Internet works on top of.

Each application communicates over a network protocol which is usually specifically tailored by whomever developed the application in question. For example, BitTorrent usually transmits over a range of ports (6881-6889) and the functionality of BitTorrent in regard to how it communicates over the internet is best summed up by the following (taken from WikiPedia)

A BitTorrent client is any program that implements the BitTorrent protocol. Each client is capable of preparing, requesting, and transmitting any type of computer file over a network, using the protocol. A peer is any computer running an instance of a client.

The same can be said for any application, be it server-client based or P2P or whatever other type of topology it uses. All communication happens via network protocols that both computers understand.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .