Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Network chapter fixes #138

Open
wants to merge 83 commits into
base: master
Choose a base branch
from
Open

Conversation

tpltnt
Copy link
Collaborator

@tpltnt tpltnt commented Apr 27, 2015

Hi @arturoc
please check my changes and merge if applicable.
Cheers,
tpltnt

Something important that you might know already: in order to connect applications through a TCP/IP transport network protocol, you usually need, an IP address and a port, the IP address is specific to each machine, the port to each application. So with an IP/port pair we can define an application running in a specific address along all Internet, almost. For example an application that is running a web server usually runs on port 80, if the machine is being executed in has the IP 15.6.8.2, 15.6.8.2:80 defines that web server among any other application running in any other machine in all the Internet. So if we want to connect two machines, usually all we need to know is the IP and port of the application running in the server and use it in the client to connect to it.
~~Something important that you might know already: in order to connect applications through a TCP/IP transport network protocol, you usually need, an IP address and a port, the IP address is specific to each machine, the port to each application. So with an IP/port pair we can define an application running in a specific address along all Internet, almost. For example an application that is running a web server usually runs on port 80, if the machine is being executed in has the IP 15.6.8.2, 15.6.8.2:80 defines that web server among any other application running in any other machine in all the Internet. So if we want to connect two machines, usually all we need to know is the IP and port of the application running in the server and use it in the client to connect to it.

There's an exception though. In most internal networks, like your home network for example, there's a router that connects the machines in that network to the Internet. These routers usually do something called NAT: Network Address Translation. NAT was invented because the IPv4 protocol has a limited number of IP addresses. Internally, the network uses a reserved range of addresses: 192.168.x.x/24 or 10.x.x.x/32, which are addresses that won't be found directly on the internet. When we try to connect to an external address it acts as a kind of proxy between your computer and the server that we want to connect. The router has it's own external address, and when it receives a response it translates the address and port in which it has received it to an internal one, the one from our computer and sends the packets back to us.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"it's own" should be "its own"

@tpltnt
Copy link
Collaborator Author

tpltnt commented Apr 27, 2015

@bakercp I fixed all the issues you pointed out. Thank you.

@tpltnt
Copy link
Collaborator Author

tpltnt commented May 5, 2015

ping @arturoc

1 similar comment
@tpltnt
Copy link
Collaborator Author

tpltnt commented Jun 1, 2015

ping @arturoc

@tpltnt
Copy link
Collaborator Author

tpltnt commented Jun 20, 2015

@arturoc could you please take a look at my changes?
You haven't responded in quite a while. If you do not respond until 2015-07-21 (a month from now), i would consider this chapter abandoned (by you) and merge my changes. Please give an indication one way or another. Thank you.

@arturoc
Copy link
Member

arturoc commented Jun 20, 2015

@tpltnt i've taken a look at your changes several times but it's complicated to merge, there's things that are very valuable like grammar corrections or the introduction to ip which was missing and it's important to understand but it's somehow too technical for the level i was aiming for, originally. Then there's annotations that need to be removed. There's also parts that are just wrong or too technical. I haven't had time to fix everything before merging.

In general there's too many things that i don't consider correct from a technical or pedagogical point of view and don't have the time to give you feedback on all of them. From my part i consider the chapter is finished so don't merge anything without the permission of the original authors unless is small fixes that are obviously wrong on the originals.

If you want to give a try at removing the annotations and explaining things in a simpler way i can try to give you some feedback but right now there's too many things that i don't consider correct to be able to give you feedback. Otherwise i can close this PR. Let me know what you prefer to do.

@tpltnt
Copy link
Collaborator Author

tpltnt commented Jun 20, 2015

@arturoc thank you for the feedback. I will try to address the annotations and will come back to you.

@tpltnt
Copy link
Collaborator Author

tpltnt commented Oct 22, 2015

@arturoc I removed the annotation and cleaned up a few things. Are you ok with merging?

@tpltnt
Copy link
Collaborator Author

tpltnt commented Apr 1, 2016

ping @arturoc

@edap
Copy link
Member

edap commented Oct 25, 2018

@arturoc @tpltnt , what's the status of this PR?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants