-
Notifications
You must be signed in to change notification settings - Fork 199
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
base: master
Are you sure you want to change the base?
Conversation
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. |
There was a problem hiding this comment.
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"
@bakercp I fixed all the issues you pointed out. Thank you. |
ping @arturoc |
1 similar comment
ping @arturoc |
@arturoc could you please take a look at my changes? |
@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. |
@arturoc thank you for the feedback. I will try to address the annotations and will come back to you. |
@arturoc I removed the annotation and cleaned up a few things. Are you ok with merging? |
ping @arturoc |
Hi @arturoc
please check my changes and merge if applicable.
Cheers,
tpltnt