Networking Overview: Difference between revisions

From wikinotes
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{ TODO |
this page is abysmal. fix. }}
= Tutorials =
= Tutorials =
<blockquote>
<blockquote>
Line 10: Line 7:
|}
|}
</blockquote><!-- Tutorials -->
</blockquote><!-- Tutorials -->
= Non Routable IP Ranges =
<blockquote>
IP addresses that by default are not routed by domain-name servers.
<syntaxhighlight lang="yaml">
127.0.0.1:      127.0.0.1                    # Available IPs: 1
10.0.0.0/8:      10.0.0.0 – 10.255.255.255    # Available IPs: 16,777,214
172.16.0.0/12:  172.16.0.0 – 172.31.255.255  # Available IPs: 1,048,574
192.168.0.0/16:  192.168.0.0 – 192.168.255.255 # Available IPs: 65,534
</syntaxhighlight>
</blockquote><!-- Non Routable IP Ranges -->
= Basics =
<blockquote>
Information sent over a network is layered like an onion.<br>
As you progress closer to your application, the outer layers are removed,<br>
leaving only information that is useful to each stage.
<syntaxhighlight lang="xml">
<!-- a pseudocode piece of network data -->
<datalink>
  <network>
    <transport>
      <application/>
    </transport>
  </network>
</datalink>
</syntaxhighlight>
</blockquote><!-- Basics -->


= 5-layer TCP/IP model =
= 5-layer TCP/IP model =
Line 31: Line 57:
|-
|-
|}
|}
Information sent over a network is layered like an onion.<br>
As you progress from datalink to transport layers, the outer layers are removed from the packet<br>
leaving only information that is useful to each stage.
<syntaxhighlight lang="xml">
<!-- a pseudocode piece of network data -->
<datalink>
  <network>
    <transport>
      <application/>
    </transport>
  </network
</datalink>
</syntaxhighlight>
</blockquote><!-- 5-layer TCP/IP model -->
</blockquote><!-- 5-layer TCP/IP model -->
= Example Transaction =
<blockquote>
{{ TODO |
this takes a lot of space, and is not very helpful. Find a better way to describe this. }}
An example might help this sink in.
<syntaxhighlight lang="bash">
visit a website: #(GET request on server's port 80)
transport (HTTP)
  request is sliced into segments(transport) of 536 bytes or smaller
network (TCP/IP)
  if network knows how to reach destination, each segment is wrapped in
  TCP/IP info, and handed off to the datalink layer.
datalink (MAC,ARP)
  Adds information about the physical protocol (ethernet, token-ring, ...)
  and fires the data to a target MAC address.
---
physical
  the information is sent over the wire
---
On the receiving end, datalink, and network layers are stripped off, and all
segments (transport) are re-assembled to form the request. This is handed to
the web-server, which then repeats the above with a reply.
</syntaxhighlight>
</blockquote><!-- example -->

Latest revision as of 02:10, 10 May 2024

Tutorials

code a TCP/IP stack https://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/

Non Routable IP Ranges

IP addresses that by default are not routed by domain-name servers.

127.0.0.1:       127.0.0.1                     # Available IPs: 1
10.0.0.0/8:      10.0.0.0 – 10.255.255.255     # Available IPs: 16,777,214
172.16.0.0/12:   172.16.0.0 – 172.31.255.255   # Available IPs: 1,048,574
192.168.0.0/16:  192.168.0.0 – 192.168.255.255 # Available IPs: 65,534

Basics

Information sent over a network is layered like an onion.
As you progress closer to your application, the outer layers are removed,
leaving only information that is useful to each stage.

<!-- a pseudocode piece of network data -->
<datalink>
  <network>
    <transport>
      <application/>
    </transport>
  </network>
</datalink>

5-layer TCP/IP model

- layer protocol unit address
1 physical 10 Base T, 802.11 Bits n/a
2 datalink Ethernet, WiFi Frames MAC addr
3 network IP Datagram IP addr
4 transport TCP, UDP Segment Ports
5 application HTTP, SMTP, .. Messages n/a