Detalle: resumen libro Redes de Computadoras de Tanenbaum. Documento no revisado que puede contener faltas ortográficas o errores de redacción.
Contenido
Direccionamiento 2
Dispositivos 2
Modelo TCP (o modelo de internet) 3
Direccionamiento lógico 4
IPV6 6
Subneteo 7
Capas (modelo OSI) 7
1 – Física: acá hay solo 1 y 0s, no hay protocolos ni nada solo estándares de conectores, voltajes, etc. 7
2- Enlace 7
Trama Ethernet 802.3 8
Trama Ethernet DIX-IEEE 9
Trama DIX-IEEE 802.1Q 9
Capa 3: IP / RED 10
ICMP: Internet control message protocol 10
Protocolo ARP (capa 2 de modelo TCP): Address Resolution Protocol 11
Protocolo RARP 12
NAT: network address translation (esta entre capa 3 y 4) 13
Capa 4: (capa de transporte) 13
Tcp 13
Udp 15
RTP: real time protocol 16
RTCP: real time protocolo por TCP 16
Capa 5: sesión 16
Capa 6 - Presentación 16
Capa 7: aplicación 17
Dhcp 17
FTP 19
TFTP: trivial file transfer protocol (capa 7) 21
Servicio de mail (capa 7) 21
Protocolos 22
Protocolo HTTP (capa 7) 23
SMB: capa 7 24
IPTables 25
Socket 26
Dns (domain name service) 26
Direccionamiento
Toda trama debe tener un origen y un destino. Es para esto que existe el direccionamiento, el cual puede ser:
Físico: capa 2 (enlace), por medio de la MAC Address
Lógico: capa 3 (red) por medio de la dirección IP.
Dispositivos
Hub: (capa 1) dispositivo para conectar multiples dispositivos ethernet. Lo único que hace es distribuir la señal en todos los puertos. No entienden frames, paquetes ni headers.
Bridge / switch (capa 2) : conecta 2 o mas redes. Cuando recibe un frame, extrae la dirección MAC, mira en una tabla interna y envía el paquete solo por el puerto correspondiente.
Router (capa 3): es un dispositivo que sirve como un punto de acceso con otra red. Cuando recibe un paquete, se extrae el frame, y el software del router abre el paquete IP, mira su tabla interna de ruteo y decide a que router debería enviar el paquete.
Gateway (capa 4): se usa para conectar 2 computadoras que tienen diferentes protocolos en la capa de transprote (por ej TCP con SCTP).
Un default Gateway es un nodo que la red usa para enviar paquetes cuando la IP no coincide con ninguna IP de la tabla re ruteo. Es la dirección IP del router de la red a la cual la pc esta conectada.
En muchos casos el Gateway puede actuar como proxy y firewall
Modelo OSI y protocolos
Modelo TCP (o modelo de internet)
Direccionamiento lógico
La dirección ip es un número que identifica de manera lógica a la interfaz de un dispositivo. Corresponde a la capa 3 del modelo OSI.
IPV4: dirección de 32 bits (8 bytes) expresados en formato decimal. Forma una estructura jerárquica.
Mascara de red: es otra estructura de 32 bits que permite identificar en la dirección el id de red y el de host.
Clases:
CUIDADO CON LA CLASE E!!! VA DE 1111
Direcciones reservadas para cada clase:
A
10.0.0.0/8 a 10.255.255.255/8
B
172.16.0.0/12 a 172.31.255.255/12
C
192.168.0.0/24 a 192.168.255.255/24
D
224.0.0.8/8 a 239.255.255.255/8 (reservado para uso de ISP multicast)
E
240.16.0.0/8 a 255.255.255.255/8 (reservado para uso del IETF)
Direcciones reservadas para el uso de los sistemas:
0.0.0.0 enrutamiento por defecto
127.0.0.1 loopback
255.255.255.255 dirección de broadcast general
Mascara: es utilizada por los dispositivos de red para identificar "de forma lógica" a que red pertenecen. Su función es dividir la dirección de la red en dos componentes:
Red (1)
Hosts (0)
Cuando hago subnetting pierdo 2 direcciones por cada red que son reservadas y no pueden ser utilizadas por un host. Estas son:
Todos los bits de host en 0 que identifica a la red
Todos los bits de host en 1 que es la dirección de broadcast (usada para mandar un mensaje de broadcast a todas las maquinas de la red.
IPV6
Problemáticas de IPv4:
Se agotaron lo bloques para asignar a causa de:
Uso ineficiente de direcciones IPv4
Aumento de dispositivos
Aumento de cobertura de internet
Aumento de conexiones de banda ancha
Aumento de uso de virtualización
Al estar todos los bloques asignados, hay gran cantidad de rutas en en las tablas de enrutamiento de los routers de internet (problema que se debe a la organización en clases)
Ventajas de IPv6:
Muchas más direcciones
Manejo más simple del direccionamiento
Se puede direccionar extremo a extremo sin necesidad de NAT
Encabezado más simple, no hay dirección de broadcast ni checksums
Cada dirección tiene 8 bloques de 16 bits 128 bits. Ceros a la izquierda pueden suprimirse en cada bloque (en cualquier lugar si vienen muchos ceros pongo uno solo), y ceros sucesivos pueden representarse como "::" (una sola vez por dirección)
Tipos de direcciones IPv6:
Unicast: asociadas a una sola interface
Global link: utilizan prefijos que facilitan el enrutamiento. Una interfaz puede tener asignadas direcciones locales y globales.
Link local: se usan para comunicarse entre todos de un mismo router. Los routers no forwardean los paquetes de este tipo de direcciones.
Unique local: son únicas para una organización. No son ruteables a través de internet pero si dentro de la red privada. Tienen el comportamiento similar a IPv4.
Anycast: los paquetes se envían a la interfaz mas cercana. Solo se pueden asignar a las interfaces de un router (no puede ser usada como dirección de origen ni para direccionar un host). Se puede utilizar para balanceo de carga.
Multicast: se entregan los paquetes a todas las interfaces que están unidas al grupo.
Loopback: "::1"
Sin dirección asignada: "::"
Broadcast NO existe en IPv6. Se reemplaza por multicast.
Formato de direcciones Unicast Globales y anycast:
2XXXXXX
registry (pais)
ISP
site prefix
subnet
interface ID
7 bit
16 bit
9 bit
16 bit
16 bit
64
Subneteo
Consiste en dividir una red en 2 o más subredes.
Para 55 Subredes hace Falta como mínimo 6 bits (2^6)-2 = 64-2 = 62 Subredes Validas
Y nos quedarían 10 Bits para host. (2^10) – 2 = 1024-2 = 1022 Host por Subred.
La mascara de red seria: 255.255.252.0
Pregunta: porque tengo 2 menos tanto en red como en hosts? En ambos casos es por la dirección reservada de red y de broadcast?
PDU: es la unidad de datos del protocolo. Cada capa y protocolo tiene su propio PDU.
Capas (modelo OSI)
1 – Física: acá hay solo 1 y 0s, no hay protocolos ni nada solo estándares de conectores, voltajes, etc.
El PDU aca es directamente el BIT.
2- Enlace
El PDU en esta capa es el FRAME (trama en español).
El objetivo de esta capa es la de conectar dispositivos en una misma red (el ruteo entre redes se realiza en capas superiores).
Servicios de la capa de enlace:
Encapsular paquetes de capa 3 en frames
Sincronización de frames
entramado: checksum. Cuando el frame llega al destino se calcula y en caso de que no sea igual al del frame se descarta el mismo.
Control de errores: además de verificar cada frame, manda ACK cada vez que recibe algo. El emisor espera un tiempo el ACK y en caso de no recibirlo hay retransmisión.
Contol de flujo: suele pasar que por diversas cuestiones, el emisor y el receptor trabajen a distinta velocidad (por ejemplo por velocidad de procesamiento).
Detección y corrección de errores: el mas comun de encontrar es bit de paridad, que consiste en recalcular el checksum en caso de que este control haya sido incorrecto, pero cambiando el valor de un simple bit. Si hay error en mas de 1 bit el receptor no va a poder corregirlo.
Algunos protocolos de capa de enlace:
IEEE 802.3 (Ethernet)
802.11 (wireless lan)
DIX IEEE
X25, etc
Trama Ethernet 802.3
Cuando se originó este protocolo, como estándar se solia usar el cable de red de color amarillo.
Encabezado:
Preámbulo: indica inicio de trama y sirve para la sincronización. Son 8 bytes 01010..
Start Of Frame: 1 byte (0101…) que termina "11" (terminan en doble 1 para indicar el comienzo del frame).
Mac destino: son 6 bytes (48 bits). Si el primer byte (bit 40 de la trama) esta en 0 es unicast, si esta en 1 es multicast (un grupo de direcciones, para lo cual requiere una administración de grupos para definir que estación esta en cada grupo) y si todos los bits están en 1 es broadcast
Nota: los dispositivos de capa 2 (switch) hacen broadcast por mac, no por ip
Datos: de 46 a 1500 bytes. Este valor es algo que se selecciono de forma arbitraria en base a la memoria RAM disponible de los equipos en el momento en que se creó el protocolo
Longitud total de trama: minimo 64 bytes, máximo 1518 sin preámbulo e inicio y fin de trama. El minimo es porque si hay coalision la idea es que la maquina se entere antes de terminar de transmitir, si es muy chico terminaría de transmitir antes de que se entere.
Checksum: 4 bytes. Es un CRC.
Trama Ethernet DIX-IEEE
Es compatible con lo anterior. El frame tiene la misma longitud solo que en el campo LARGO ( 802.3) usa el tipo para indicar que protocolo de capa superior envía.
Trama DIX-IEEE 802.1Q
Agrega la posibilidad de etiquetar vlans.
Vlan: es una forma de crear redes virtuales a nivel de capa 2. Las maquinas de una vlan no podrán ver a las de otras, cosa que si tengo una separación de capa 3 (ip) con algún protocolo de capa 2 como netbios los puedo ver por lo que se hace por un tema de seguridad. Se suelen usar VLANS para telefonía ip.
Longitud total: sin preámbulo, inicio y fin de trama 1522 bytes.
Tipo/longitud: para DIX sirve para el tipo, IEEE lo usa para la longitud de trama
Switch Ethernet vs HUB: usar un switch mejora mucho la performance, principalmente porque solo se envían los frames a quien corresponda, bajando el tráfico de la red y por lo tanto reduciendo las colisiones. Además mejora la seguridad, porque con un HUB podrías espiar paquetes que no son para vos (esto es conocido como modo promiscuo)
Capa 3: IP / RED
Básicamente el objetivo de esta capa es poder interconectar redes.
El PDU de esta capa es el datagrama.
Protocolos:
IPv4/IPv6
ICMP
IPSec (internet protocol security)
ARP
Encabezado IP
Versión: 4 bits q indican si es ipv4 o 6
IHL: longitud del encabezado IP
Tipo de servicio: rutina, prioritario, etc
Longitud: máximo 65535 bits.
Identificador de trama: por si se usa fragmentación
Flags: (3 bits) indica las posibilidades de fragmentación:
B0: reservado
B1: 1= divisible, 0= no divisible
B2: 1=ultimo, 0=intermedio.
Tiempo de vida: numero máximo de routers a atravesar por el paquete. Como son 8 bits, el tiempo máximo de vida son 256. Cuando llega a cero se destruye el paquete.
Protocolo: indica que protocolo de capa superior transporta: TCP, UPD, etc
Checksum: comprobación de cabecera
Ip destino y origen, 32 bits cada una
Opciones: es opcional, por eso tiene un campo la trama de longitud de cabecera
Nota: PING trabaja en capa 3 (protocolo es ICMP de control de mensajes)
ICMP: Internet control message protocol
Trabaja en capa de INTERNET del modelo TCP.
Es un protocolo que es utilizado por los dispositivos de red (routers por ejemplo) para diagnostico y control de errores como por ejemplo servicio no disponible.
Son mensajes que van encapsulados en paquetes IP
Por ejemplo, cuando los paquetes IP van pasando routers cada uno de ellos le descuenta 1 al TTL, y cuando llega a cero ese router manda un mensaje ICMP indicando "TimeToLeaveExceededInTransit".
Bits
0–7
8–15
16–23
24–31
0
Type
Code
Checksum
32
Rest of Header
TYPE= tipo de mensaje ICMP
Tipos mas comunes:
Echo request: usado en ping
Echo reply: respuesta a un ping
Destination unreachable
Un comando PING va a hacer un ECHO REQUEST y luego un ECHO REPLY si el host es encontrado.
Para mandar n pings a un host: -n:
Ping –n 10 192.168.1.1
NOTA: si hago PING a la dirección ip de broadcast de la subnet obtengo request time out.
Protocolo ARP (capa 1 de modelo TCP): Address Resolution Protocol. Entre capa 2 y 3 del modelo OSI
ARP no fue desarrollado en el modelo OSI porque estaría entre 2 capas (2 y 3).
Las comunicaciones de red dentro del segmento o usan IP, la primer comunicación se hacen a nivel de capa 2 mirando la MAC. Básicamente hace un broadcast de MAC poniendo los 6 bytes de la MAC en 1 (FFFFFF). Cuando el switch recibe esto lo envía a todos los puertos, funcionando como un hub.
Dado una IP averigua cual es la mac correspondiente. Es un protocolo de request y reply, que funciona dentro de una misma red (nunca es ruteado por nodos de internet).
Como ARP puede ser encapsulado dentro de cualquier debajo de TCP/IP, agrega algunos campos como ser tipo y long de dirección de hardware, tipo y long de dirección del protocolo, etc:
ARP arma una tabla que puede ser consultada con arp-a (win), arp (Linux).
El TTL de la tabla es de 2 minutos en Windows (XP) y 9 en Linux. Si una entrada de la tabla no se utiliza se borra, si se la utiliza se le revalida el TTL por otro período. En W vista y 2008 server el TTL es un valor random entre 15 y 45 segundos.
Se pueden generar entradas estáticas en la tabla pero se borran cuando se reincia la maquina.
NOTA: si el destinatario no esta en la propia red busca en la tabla ARP la MAC del Gateway y lo manda ahí. El paquete en este caso tiene la MAC de destino del Gateway pero la IP del destinatario.
La tabla ARP tiene 2 tipos de entradas:
Estáticas (son las que agrego manualmente). Se borran al reiniciar la pc
Dinámicas: son las que completa el protocolo. Se borran cada 2 minutos en win y 9 en Linux.
Cuando arranco la PC la tabla ARP va a tener:
Ip del default dns server (si es que uso DHCP)
Ip broadcast de red con FFFFFFFFFFFF
Ip broadcast general con FFFFFFFFFFF
Asi:
Internet Address Physical Address Type
192.168.1.1 74-ea-3a-d2-d6-80 dynamic
192.168.1.255 ff-ff-ff-ff-ff-ff static
255.255.255.255 ff-ff-ff-ff-ff-ff static
NOTA: como convertir de hexa a binario:
Hex=Decimal
0=0
1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
A=10
B=11
C=12
D=13
E=14
F=15
ex=Binary
0=0000
1=0001
2=0010
3=0011
4=0100
5=0101
6=0110
7=0111
8=1000
9=1001
A=1010
B=1011
C=1100
D=1101
E=1110
F=1111
Convertir de hexa a dec:
Protocolo RARP
Es un protocolo que ya no es utilizado. Básicamente devuelve la dirección ip de un host, requiere un servidor RARP. Hoy en día se usa DHCP que tiene mejores características. Cuando la PC arranca la pide al servidor RARP que le devuelva la IP.
NAT: network address translation (esta entre capa 3 y 4)
Se creó principalmente para que el ISP pueda asignar a cada negocio o vivienda una única IP, o un pequeño número de ellas) debido a la escases de direcciones. Básicamente cuando el paquete viaja al ISP (fuera de la red local), se convierte la dirección interna (de la LAN) del paquete a la pública real que tiene el cliente (la que provee el ISP).
¿Qué pasa cuando el paquete regresa? Se usa TCP!
Los puertos son direcciones lógicas de 16 bits que permiten identificar qué proceso toma el paquete entrante. Cuando un paquete llega al NAT BOX se le asigna un puerto al que envía en una tabla del NAT-BOX, la cual contiene la ip original del paquete, que es leída cuando el paquete regresa del ISP.
Capa 4: (capa de transporte)
La PDU de esta capa es el segmento.
Los protocolos de capa 4 se encargan del transporte de datos independientemente de la red física utilizada.
Tienen:
Recuperación ante caídas
Multiplexado
Comunicación extremo a extremo: negocia la comunicación
Control de flujo (solo TCP) por ventana de 65535 bytes.
Transporte de datos confiable (solo TCP)
Tcp
Fue creado principalmente porque la capa 3(IP) no provee confiabilidad.
Orientado a la conexión, debe establecerla y negociarla con el receptor antes de mandar. Por eso puede ser que por mas que haya ping no tenga conexión.
Confiable.
Usa Sliding Window variable para control de flujo y congestión (la ventana se va ajustando en base a la capacidad del receptor).
Puerto 16bits ( 65535). Se usan del 1024 para arriba porque los de abajo están reservados.
Tiene acuse de recibo.
Usa puertos lógicos
Secuencia de conexión:
Emisor manda SYN, con Nro Seq = 0 y flag b1=1 (inicia secuencia de sincronismo)
Receptor recibe SYN.
Receptor envía SYN + ACK: nro seq = 0, nro ack = 1, Flags b1=1, b4=1 (valida ACK)
Emisor recibe SYN + ACK
Emisor manda Establecido: nro seq=1, nro Ack = 1, flag b4=1.
Emisor envía Fin: flags b4=1, b0=1.
Receptor recibe Fin. Envia ACK: flag b4=1
Emisor recibe ACK.
Receptor envía Fin: flags b4=1, b3=1, b0=1.
Emisor: envía ACK: flag b4=1
Receptor recibe ACK.
Udp
No es orientado a la conexión, el segmento siempre se envía, no negocia nada.
La única detección de errores que se tiene es por checksum. Es mas rápido que TCP.
Usa puertos lógicos.
Multiplexado.
RTP: real time protocol
Se usa para transporte de vox y video, voip, etc. Tiene control de secuencia, multiplexado. RTP usa UDP, y puede enviar a un solo destinatario (unicast) o multicast (multiples destinatarios).
Los paquetes tienen un número de secuencia, pero en caso de no recibir alguno lo que hace el receptor es saltear el mismo. Esto puede hacer que se saltee algún frame de video por ejemplo pero es mejor eso a que haya un delay por la transmisión (NO HAY RETRANSMISION).
RTCP: real time protocolo por TCP
Este a diferencia de RTP provee feedback de los paquetes, y puede ser usado por el emisor para ir regulando el ancho de banda o la calidad de video en base a la conexión del receptor, pudiendo variar esto on demand.
Capa 5: sesión
Provee mecanismos para abrir, cerrar y gestionar conexiones. Consisten en request y responses entre aplicaciones.
Los servicios de la capa de sesión son generalmente usados en entornos de aplicaciones que hacen llamadas remotas, como por ejemplo RPC (que usa RMI).
Servicios que provee:
Autenticación
Autorización
Restauración de sesión
algo que hace esta capa es combinar y sincronizar información que tal ves proviene de diferentes fuentes como ser el caso de audio y video, para asegurar que se escucha lo que se esta viendo en el momento.
Protocolos de esta capa:
SOCKS: provee autenticación
Capa 6 - Presentación
La capa de presentación es responsable de entregar la información en un formato que pueda ser utilizado correctamente para el procesamiento o display de la información en cuanto a las diferencias sintácticas de la información.
Capa 7: aplicación
Es la capa que interactúa directamente con aplicaciones de software que requieren comunicación. Algunas de las funcionalidades de la capa son:
Identificar patrones de comunicación
Determinar disponibilidad de recursos
Sincronizar comunicaciones
Algunos protocolos:
Dhcp
FTP
SMTP
HTTP
SSH
TELNET
IMAP/POP
SMB (samba)
Dhcp
El objetivo de este protocolo es asignar configuraciones de la estación de trabajo:
Ip
Mascara de red
Gateway
Servidor DNS
Puede entregar algunas cosas alternativas como ser ftp de la red, etc.
Ventajas:
Las ip se entregan de forma automática no dando posibilidad de errores en las mismas
La actualización de configuraciones se refleja de manera automática
Desventaja:
El servidor DHCP le entrega configuración a todo lo que se le presente, haciendo complicada la seguridad.
Funcionamiento:
La maquina no sabe la IP del servidor si su MAC. Manda un mensaje DHCP discover (capa 7). En el paquete sale la MAC de destino broadcast, IP origen 0.0.0.0, IP destino broadcast de red. El paquete se manda a toda la red.
Todas las maquinas de la red reciben el paquete pero solo el DHCP activo lo procesa.
DHCP server genera un DHCP Offer con la MAC destino en el paquete, la IP destino, Ip origen, Mac origen (la del DHCP). Dentro del mensaje tiene algunas demás cosas como ser el tiempo de leasing (cuando debe renovar la IP).
Nota: si el leasing es muy grande puede que maquinas apagada sigan consumiendo ips, y si es muy corto puede afectar al tráfico.
El host toma la primer oferta que recibió de un DHCP, genera un DHCP Request al servidor que se la ofreció e indica cual es la ip elegida.
El servidor responde DhcpAck
Nota: si luego del DHCP DISCOVER no recibe respuesta, la maquina cliente asigna la ip 169.254.X.X (cualquiera en las X), esto es Linux y Windows.
DHCP usa UDP porque no hay corrección de errores ni nada de eso.
Para renovar la IP, al 50% del tiempo de leasing el host pide renovación de la IP. El request es igual que el primero solo que ahora tiene dirección ip de origen. Si el servidor no le responde vuelve a hacer un pedido al 87.5% de leasing, si no responde cuando se cumple el tiempo libera la IP y vuelve a hacer un pedido igual al 1 de broadcast porque puede ser que se haya levantado otro servidor DHCP.
Renovación manual de la ip: ipconfig/release, ipconfig/renew
NOTA: puedo tener 2 servidores DHCP en la red pero siempre que no tengan el mismo rango de IPs.
SCOPE: rango de direcciones ips activas consecutivas que va a entregar el dhcp server.
¿Qué maquinas deben tener IP fija?
DHCP Server
Gateway
Básicamente todo servicio de red que corre sobre ip fija
¿Qué pasa si tengo un router? DHCP Relay
El DHCP discover es un servicio de broadcast no pasa routers. Para que funcione puedo hacer 2 cosas:
Activar en el router el servicio RFC de propagación
Poner en la otra red un DHCP Relay, que si recibe la trama el negocia con el servidor DHCP.
Como instalar DHCP Server en Linux:
apt-get install dhcp3-server
editar archivo /etc/dhcp3/dhcpd.conf, agregar la interface ethX, debemos poner
ip address
netmask
broadcast
network
gateway
reiniciamos el dhcp server: /etc/init.d/dhcp3-server restart
FTP
Es de capa 7 y funciona sobre TCP.
Usa los puertos 20 para datos, y 21 para control. Nativamente no incorpora encriptación.
Admite 2 modos:
activo: el cliente manda comandos al puerto 21 para control y 20 para datos:
cliente se conecta al puerto 21 e indica al servidor que puerto va a usar (por ej 1035)
servidor responde desde el puerto 21 con un ACK al puerto 1035
Servidor envía datos desde el 20 (servidor) al 1036 del cliente
Cliente envía ACK al puerto 20 y el server responde al 1036 a partir de ahora
pasivo: El servidor no usa el puerto 20, le abre un puerto no conocido por el cliente
cliente sale desde un puerto (1035) al puerto 21 del servidor
servidor responde con la información del puerto que va a usar que es aleatorio (>1023) al puerto 1035 del cliente. Ponele que es 2040.
cliente inicia la conexión desde el puerto 1036 al 2040 del server.
Servidor envía datos, y responde con un ACK al final
Cliente cierra la conexión
NOTA: Antes de cada nueva transferencia tanto en el modo Activo como en el Pasivo, el cliente debe enviar otra vez un comando de control (PORT o PASV, según el modo en el que haya conectado), y el servidor recibirá esa conexión de datos en un nuevo puerto aleatorio
Ventajas vs Desventajas:
Pasivo: Es más seguro porque el cliente no sabe que puerto va a usar el servidor.
Activo: es mas rápido
Cliente FTP
Es la aplicación que, usando el protocolo FTP, accede al cliente. Hay 2 modos de conexión:
Anónimo: el servidor ofrece el servicio libremente a los usuarios
Acceso de usuario: el servidor tiene una base de datos de cuentas de usuarios por lo que requieren login para usar el servicio.
Acceso invitado (guest): se tiene acceso a ciertas partes del sistema de archivos, y están restringidos otros.
TFTP: trivial file transfer protocol (capa 7)
Es un FTP que tiene alta velocidad de transferencia, trabaja sobre UDP (puerto 69), hay menos congestión pero no tiene ninguna confiabilidad no se puede usar en redes ruteadas porque se van a perder paquetes. Si la red pierde algún paquete no hay retransmisión ni nada.
Tiene pocos comandos, no implementa listar archivos sino que debo saber el nombre, no tiene mecanismos de autenticación. Se utiliza mas que nada para leer y escribir archivos en un servidor remoto.
Cada transferencia es un intercambio independiente de paquetes.
Funcionamiento:
Cliente envía una petición de READ o WRITE al servidor al puerto 69
El servidor responde con un ACK directamente con los datos respuesta del request
Servidor envía paquetes numerados de tamaño exacto de 512 bytes.
Si el tamaño total de los paquetes es múltiplo exacto de 512 bytes el cliente responde con un paquete de 0 bytes que significa ACK.
Servicio de mail (capa 7)
Utiliza varios protocolos de capa 7.
Elementos:
MUA: (mail user agent) es el programa de mail que accede al correo, un cliente básicamente.
MDA: (mail delivery agent: agente de despacho de correo) es algo que tienen clientes de mail (salvo los que son web). Cuando el cliente se conecta al server se trae el mail y el mensaje ya no queda más en el servidor (salvo que tildemos que se guarden los mails en el servidor). Todos los filtros y reglas de correo se hacen en el MDA porque es el único lugar donde se puede abrir el mail. No puede revisar el contenido, solo encabezado y attaches. El MDA también es el que manda los acuses de recibo.
MTA: (mail transfer agent: agente de transferencia de correo) cuando el cliente envía un mail, el servidor toma el mensaje y ve a que dominio pertenece (viendo lo que esta después del @) y le pide al servidor cual es su IP. Si obtiene como respuesta que no se encuentra el dominio, el MTA genera un mail para el usuario diciendo que el destino es desconocido. Si el servidor existe, el MTA manda el mail al MTA del otro dominio. Cuando el MTA de destino recibe el mensaje se fija si tiene al usuario (parte izquierda del @) y de ser asi pone el mensaje en el directorio del usuario. Cada usuario tiene un directorio encriptado. Si el usuario no existe, el MTA del receptor manda un mail al MTA del emisor con destino desconocido, lo mismo pasa si el mail no entra el buzón porque este estaba lleno.
NOTA: MTA y MDA son dos servicios separados.
Protocolos
Cuando mando un mail, el MDA se conecta al MTA por SMTP. SMTP (capa 7) usa TCP, puerto 25.
Entre MTAs (origen y destino) se usa SMTP
El MUA se conecta al MTA por POP3 o IMAP, que son quienes negocian las credenciales de autenticación y luego mandan el mail.
WebMail: el navegador se conecta al MDA por HTTP.
MIME: es un estándar de formato de correo
Se creo para darle mas extensibilidad al correo (permitir acentos, enviar cosas que no sean texto, etc (audio, video, HTML, etc).
Protocolos para tomar mensajes de un servidor: POP3 e IMAP
Cuando un mail llega al MTA de un servidor, el mismo debe ser entregado al MDA quien va a almacenar el correo hasta que el MUA lo baje. Entonces el MUA se conecta al MDA por pop3 o imap que son 2 protocolos para hacer esto que se combinan con SMTP.
POP3
Protocolo para acceso al MDA del servidor de correo
Desventajas: toma el correo y se lo trae, no pudiéndolo enviar a múltiples dispositivos.
IMAP:
A diferencia de POP3, supone que todo correo permanecerá en el servidor por tiempo indefinido y que será accedido por múltiples buzones de correo. El servidor IMAP escucha en el puerto 143.
POP3 vs IMAP
El pop3 no va encriptado, IMAP puede estarlo. Pop3 solo puede bajar el mail o no hacerlo, en cambio en IMAP tengo algunos seteos extras como ser que baje solo el encabezado (IMAP hace uso de MIME que permite descargar el mail por partes). IMAP no permite trabajo offline, POP3 si. En POP3 no puedo crear carpetas, en IMAP si.
Protocolo HTTP (capa 7)
Es un protocolo para intercambiar o transferir texto. Es un protocolo basado en request y responses.
Puede usar TCP (y ser confiable) o UDP en capa 4.
HTTP está compuesto por recursos (URIs)
Request methods:
Get: se hace un request, el cual debería devolver información (y hacer solo eso)
Post
Head: devuelve lo de un get pero sin body. Es útil para tener la metainformación
Post: se envía información al recurso.
Put: envía información y si la URI hace refencia a un recurso que ya existe, es modificado por los datos que se envían. Si no existe se agrega.
Delete
Trace: devuelve el request recibido y el cliente puede ver si el servidor en el medio hizo algún cambio
Options:
Connect: convierte el request en una conexión a un túnel TCP. Esto es usado por SSL, HTTPS, o HTTP proxy.
Los métodos que si o si deben ser implementados son HEAD, GET y OPTIONS.
SMB: capa 7
Protocolo que se usa para proveer acceso compartido a archivos, impresoras y puertos seriales entre nodos de una red. Además puede proveer inter process communication con autenticación. Puede correr:
Directamente sobre TCP (puerto 445)
Sobre Netbios Api (puertos 137 y 138 de UDP y 137 y 139 de TCP).
Esta basado en arquitectura cliente-servidor donde un cliente hace una petición y el servidor responde.
Samba es una implementación de SMB para Linux. Tambíen provee servicios de gestión de archivos e impresoras a clientes Windows, inclusive actuar como controlador active directory o miembro de el.
Microsoft también hizo sus propias implementaciones de SMB para Windows (SMB1, SMB2 y SMB3).
IPTables
Permite a los administradores de red definir reglas para el tratamiento de paquetes. Es provisto por el firewall del kernel de Linux para filtrar o transformar paquetes. Existe una de las tablas que también permite hacer QOS y NAT con el mismo firewall. También puedo decir que solo reciba trafico de respuesta cuando solo yo lo genere.
IPTables trabaja en la capa 2 (se puede filtrar por MAC), capa 3 (por iP) y capa 4 (por puerto).
Con iptables –L puedo listar todas las tablas.
Proxy server
Es un servidor que frente al pedido de un recurso (archivo, conexión, pagina web, etc) por parte de un cliente realiza:
Evaluación de restricciones del usuario (si las tiene)
Mejora el uso del ancho de banda porque cachea los recursos
Logueo de accesos
Socket
Operan entre las capas de sesión y transporte. Permiten comunicar procesos (dentro o fuera de la pc), canalizando la información. Se suelen utilizar mucho en modelos cliente-servidor, y pueden implementarse en distintos protocolos (TCP, UDP, etc).
Cualquier aplicación que hagamos que conecte a la red va a necesitar socket.
Dominios de comunicación:
AF_UNIX: para comunicarse dentro del mismo equipo
AF_INET: para comunicarse con otros equipos. Permite mandar información en los 2 sentidos (es usado por HTTP y FTP). Usa TCP.
Tipos de socket:
Sockets datagram (o streem sockets): usan sockets UDP. Todos los protocolos que corren sobre UDP usan estos (DNS, TFTP, etc).
Socket Raw: se pueden usar cualquier protocolo de capa de transporte (ej TCP o UDP). Se suelen usar cuando uno desarrolla.
No puedo usar los 2, o es uno o el otro.
Funcionamiento de socket:
Creo el socket: utilizo el tipo de socket mas apropiado.
Función FIND: le asocia el socket a la IP y al puerto. El cliente no lo necesita porque lo hace automáticamente
Función CONNECT: conecta con el destino. Cuidado que si es UDP no hace connect, solo manda y recibe
Flujo: escucho y envío constantemente
Dns (domain name service)
Es un sistema de distribución jerárquica de nombres de computadoras, servicios, o cualquier recurso conectar a internet o a una red privada. Permite transformar nombres de dominio a sus respectivas ips.
Se creo para no tener que identificar a servicios a partir de su ip debido a que esto es algo difícil de recordar. Además que si por ejemplo moves un web server a otra ip cagaste.
Como la red solo entiende direcciones numéricas son requeridos algunos mecanismos para convertir los nombres de dominio a direcciones de red.
La escencia de DNS se basa en un esquema jerárquico.
Para mapar a un dns con una ip, un programa de aplicación llama a una librería llamada resolver a la cual le pasa el nombre dns.
Al igual que los códigos postales, existe una nomenclatura para asignar una distribución jerárquica. Esto esta a cargo de un organismo llamado ICANN (internet corporation for assigned names and numbers).
Básicamente internet se dividió 250 top-level domains, donde cada dominio cubre muchos hosts. Cada dominio es particionado en subdominios, que a su vez vuelven a ser particionados y asi sucesivamente. A continuación se muestra un ejemplo. Los últimos nodos pueden representar un host o una empresa que contiene muchos hosts:
Niveles:
Los dominios top son básicamente 2 grupos: genéricos y países.
A partir del 2do nivel las empresas ya pueden tener un dominio tal como name-of-company.com. Para eso deben recurrir al registrador, el cual chequea si esta disponible ese nombre y en caso de que si lo este cobra un fee anual por el servicio.
Sucesivamente
..
..
Los nombres de dominio son case insentitive, y pueden tener como máximo 63 caracteres de largo, y todo el path no puede exceder los 255 caracteres.
Los nombres representan límites organizacionales, no físicos.
Para crear un nuevo dominio se requiere permisos del dominio en el cual va a estar incluido. Luego de que el nuevo dominio es creado y registrado, se pueden crear dentro de él otros subdominios sin ningún tipo de permiso de los de arriba.
Resource Records
Cada dominio (single host o top-level domain) pueden tener un registro de recursos (resource records), que son la base de datos del DNS. Para un host el registro más común del registro de recursos es su IP Address. Cuando un resolver le da un nombre de dominio a un DNS, lo que recibe es el registro del recurso asociado a ese nombre. Por lo tanto la primer función de un DNS es mapear nombres de dominio con registros de recursos. Un resource record tiene los siguientes datos:
Domain name: es la clave primaria del registro y guarda el nombre del dominio para el cual aplica el registro
Time_to_live: habla de que tan estable es el registro. Si es muy estable por lo general se le asigna el numero 86400 (cantidad de segundos en 1 dia). Si la información es muy volátil se le asigna menor valor, como por ejemplo 60 (1 minuto).
Class: si es información de un recurso de internet va en IN, sino va otra cosa.
Type: indica el tipo de recurso:
Por ejemplo un registro SOA provee la información del registro primario del nombre de la zona del servidor, el email del administrador, y algunas cosa mas.
Un DNS puede devolver múltiples direcciones para un solo nombre. Un registro comúnmente visto es MX que especifica el nombre del host preparado para aceptar emails para un dominio específico. Por ejemplo si quiero mandar un mail a
[email protected], el host que manda el correo debe encontrar un email server en microsoft.com que puede recibir emails. El registro MX provee esta información.
Otro registro importante es el NS, que indica el nombre del próximo y se usa en el proceso de look up de names.
Otro copado es CNAME, que provee una especie de alias. Por ejemplo si quiero mandar un mail a cs.mit.edu este no existe, pero puedo proveer en el DNS un alias que redireccione al dominio correcto:
Ejemplo de la base de datos del DNS cs.vu.nl:
Zonas
En teoría, podría haber un solo nodo que contenga una base de datos de toda la jerarquía de DNS, pero este nodo se sobrecargaría. Para evitar esto se arman zonas, como por ejemplo:
Esta subdivisión suele depender de la cantidad de name-servers que haya.
Name resolution
Es el proceso de buscar un nombre y encontrar la dirección.
Cuando yo quiero conectarme a un dominio, el resolver le manda un query al servidor de nombres local. Si el dominio al que quiero llegar esta bajo su jurisdicción le devuelve la autoridad del registro del recurso correspondiente, que es quien administra ese registro y se asegura que sea correcto.
En caso de que yo este queriendo acceder a un dominio remoto primero el servidor de nombres local se fija si hay algún cache disponible del mismo. En caso de que no haya cache inicia un query remoto. Supongamos que quiero acceder a robot.cs.washington.edu:
NOTA: la dirección es en realidad robo.cs.washington.edu. el punto identifica el root-namespace, que es donde todo el proceso comienza.
El browser (o la aplicación que estoy usando) le pregunta al sistema operativo si tiene cacheado el dominio "robot.cs.washington.edu.".
El sistema operativo está configurado para preguntarle al resolver name server acerca del dominio "robot.cs.washington.edu."
El resolver name server puede que tenga el nombre en el cache. En caso de que no, siempre va a conocer el root-server (el que representa el "." final del nombre del dominio) por lo que hace un query a root servers (a.root-servers.net) para obtener el name-server .edu. (el TLD) Estos servidores tienen información de los dominios top-level y es básicamente una lista de registros NS. El "a." es el primer servidor, pero hay muchos localizados en distintos puntos geográficos, por lo que va desde la a hasta la m.
Hace otro a washington.edu que ya pertenece al "authoritive name server"
Luego a cs.washington.edu, le devuelve washington.edu.
robot.cs.washington.edu, obtiene la ip final.
el servidor local de nombres cachea el registro para reducir el tiempo de otra petición. Para no tener información inconsistente este cache no queda para siempre y es por eso que tiene el TIME_TO_LIVE en la tabla. Si la PC va a tener la misma IP por mucho tiempo es seguro ponerle un TTL de 1 dia, caso contrario no.
NOTA: los mensajes DNS se mandan por UDP. Básicamente si no recibe respuesta en un tiempo adecuado, el DNS vuelve a solicitar, e intenta con otro servidor luego de varios intentos.
Resolving name server
En mi casa, el resolving name server (quien me permite hacer los querys a los dns remotos) son los DNS que me provee el ISP. El resolving name server es el que me permite encontrar información acerca de los root-server, top level domains (TLD), y los authorative name servers.
Authorative name server
Son los servidores que responden cuando se consulta por el dominio perteneciente a una zona. Un authorative name server puede ser primario o secundario (tiene una copia idéntica del primario)
www.mi.uade.edu.ar
aca cada "." es un nodo, pero hay uno que no se ve que es el punto final que indentifica el raíz. Este dominio tiene 6 etiquetas. Los nombres de dominio son una especie de índice que sirve para ingresar la información.
Protocolos capa 7 vs Capa 4
capa 3
capa 4
dns
IP
UDP
dhcp
IP
UDP
smtp
IP
TCP
ftp
IP
TCP
tftp
IP
UDP
SNMP
IP
TCP
HTTP
IP
TCP