Oct 28
Redes
Para comunicarse por internet es necesario conocer los distintos protocolos (formas de comunicacion entre distintas capas y nodos) que nos permiten hacerlo, solo asi puede ser entendido si estas comunicaciones se pueden realizar de forma segura o no, con o sin privacidad, asi como entender que protocolos se emplean y que ventajas y desventajas se tienen sobre otros. Sobre esta base luego correran muchos protocolos que anadiran esa seguridad y privacidad necesaria para un Mundo mas libre.
TCP/IP Internals
Los siguientes protocolos y conceptos de networking seran descritos:
- RIB: Roting Information Base
- FIB: Forwarding Information Base
- BGP: Border Gateway Protocol
- IS-IS: Intermediate System – to – Intermediate System
- OSPF: Open Source Path First
- AS: Autonomous System
- IGP: Interior Gateway Protocol
- Dijkstra: Nombre del algoritmo
- EBGP: Exterior Border Gateway Protocol
- IBGP: Interior Border Gateway Protocol
- ASN: Autonomous System Number
- MPLS: Multi Protocol Label Switching
- VPN: Virtual Private Network
- L2VPN: Layer 2 Virtual Private Network
- VPLS: Virtual Private LAN Service
- IGMP: Internet Group Management Protocol
- VRRP: Virtual Router Redundancy Protocol
- FRR: Fast Retransmit and Recovery
- BFD: Bidirectional Forwarding Detection
- Multi-threading en redes
- Mutex en redes
- Sync
- Semaforos
- Deadlocks
- Non-blocking I/O
- Senales
Para entender los apartados de mas abajo, se requiere un conocimiento general de la suite TCP/IP, la capa de enlace o link layer, IP, ARP, RARP e ICMP. No nos centraremos en cada detalle de cada capa, ya que se sobreentiende que se conocen los conceptos basicos, sino mas bien nos centraremos en conceptos especificos e interesantes asi como esquemas generales para el uso de sniffers y analizadores de trafico. Asi pues, las notas tomadas mas abajo, no son completas y obvian los conceptos basicos (excepto algunas tablas que se emplean como referencia o recordatorio). La finalidad de este articulo es conocer algunos detalles internos de dicha implementacion y/o mostrar algunas peculiaridades que ayudan a comprender algunos detalles de la suite de protocolos. Este texto son realmente anotaciones que ha tomado el autor al leer distintos libros de networking.
0. Linux Kernel Networking implementation
La semana pasada, asisti a una charla sobre la implementacion en networking y a modo general sobre el kernel Linux. Tan solo pude asistir a 4 charlas que grabe en audio (Linux kernel networking implementation):
– Linux Kernel API. [Minuto 1 al 28]
– Linux IP layer implementation. [Minuto 29 al 46]
– Linux TCP implementation. [Minuto 47 al 1:08]
– Linux SCTP implementation. [Minuto 1:09 al 1:32]
Adjunto el resto de slides (pero sin audio sobre estas conferencias).
– Device agnostic network interface.
A. Conceptos generales
Las 4 capas de la suite TCP/IP
Definicion de protocolos a distintas capas y distincion entre userspace y kernelspace
1. Link layer
La capa de enlace (link layer) es tambien conocida como data-link o network interface layer. Y se refiere al controlador del dispositivo (device driver) en el OS y la correspondiente interfaz de red.
Se refiere principalmente a Media access control: como Ethernet y IEEE 802. Otros como SLIP, PPP, FDDI, Token Ring, ISDN, DSL tambien se incluyen en esta capa. Contiene 2 subcapas (MAC y LLC).
ARP y RARP son considerados tambien de esta capa porque son usados en esta capa para proveer servicio a la capa superior (network layer).
2. Network layer
La capa de red (network layer) es tambien conocida como internet layer. Controla el movimiento de paquetes alrededor de la red.
Se refiere principalmente a IP, ICMP e IGMP.
3. Transport Layer
La capa de transporte (transport layer) provee de flujo de datos entre 2 hosts sirviendo a la capa superior de aplicacion.
Se refiere principalmente a TCP y UDP.
4. Application Layer
La capa de aplicacion (application layer) maneja los detalles para una aplicacion particular.
Se refiere principalmente a Telnet/SSH, rlogin, FTP, SMTP, SNMP, HTTP, DHCP, IRC, etc.
Capas en las que trabaja un router y como puede interconectar (trafico) entre distintos tipos de redes.
Como los procesos de usuario (aplicaciones) hacen uso de distintos protocolos
Clases de direcciones de Internet
Rango de clases de direcciones IP
Encapsulacion
Demultiplexacion
B. Link layer internals
Encapsulacion IEEE 802.2/802.3 y encapsulacion ethernet.
Encapsulacion SLIP (Serial Line IP)
Protocolo PPP (Point-to-Point / Punto a Punto)
Interfaz loopback
MTU tipicos (Maximum Transmission Units)
Para mas informacion:
A Standard for the Transmission of IP Datagrams over Ethernet Networks (Standard: IEEE 802.2/802.3): http://tools.ietf.org/html/rfc894
A Standard for the Transmission of IP Datagrams over IEEE 802 Networks (Standard: Ethernet): http://tools.ietf.org/html/rfc1042
C. IP Internals
Datagrama IP.
TOS (Type Of Service)
Envio de un datagrama IP en una red local
Envio de un datagrama IP fuera de una red local
Direccionamiento con subnetting de clase B
Distintos tipos de mascaras de subred para dos direcciones de clase B con subnetting distintas.
Comparaciones efectuadas en IP routing entre 2 direcciones de clase B usando la mascara de subred
Casos especiales de direcciones IP
Usando subredes Variable Length
El comando ifconfig (internals)
El comando netstat (internals)
Para mas informacion:
Internet Protocol specification: http://tools.ietf.org/html/rfc791
D. ARP y RARP internals
Para mas informacion:
An Ethernet Address Resolution Protocol: http://tools.ietf.org/html/rfc826
A Reverse Address Resolution Protocol: http://tools.ietf.org/html/rfc903
E. ICMP internals
Para mas informacion:
Internet Control Message Protocol: http://tools.ietf.org/html/rfc792
F. Ping internals
Para mas informacion:
G. Traceroute internals.
Para mas informacion:
H. IP Routinginternals
Para mas informacion:
I. Dynamic routing protocols internals
Para mas informacion:
J. UDP internals
Para mas informacion:
User Datagram Protoco: http://www.ietf.org/rfc/rfc768.txt
K. Broadcasting and multicasting internals
Para mas informacion:
L. IGMP internals
Para mas informacion:
Host Extensions for IP Multicasting: http://tools.ietf.org/html/rfc1112
1. IP Record Route
2. Traceroute internals
<en desarrollo>
Referencias:
Las imagenes han sido tomadas de TCP/IP Illustrated Volumen 1 y 2 de Richard Stevens.
Transport TCP, UDP
Network IP, ICMP, IGMP
Link
device driver and interface card
Figure 1.1 The four layers of the TCP/IP protocol suite.