Oct 28

Networking

Tag: overdrive @ 11:03 am

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).

– Netfilter y NAT.

– IPv6.

– Device agnostic network interface.

– Anatomy of a Linux Bridge.

– TCP Congestion control.

– Network device drivers.

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.

Application Telnet, FTP, e-mail, etc.
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.

Leave a Reply

You must be logged in to post a comment.