Máscara de red Funcionamiento Tabla de máscaras de red

Anuncio
Máscara de red
La máscara de red es una combinación de bits que sirve para delimitar el ámbito de una red de computadoras. Su función es indicar a
los dispositivos qué parte de la dirección IP es el número de la red, incluyendo la subred, y qué parte es la correspondiente al host.
Funcionamiento
Básicamente, mediante la máscara de red una computadora (principalmente la puerta de enlace, router...) podrá saber si debe enviar
los datos dentro o fuera de las redes. Por ejemplo, si el router tiene la ip 192.168.1.1 y máscara de red 255.255.255.0, entiende que
todo lo que se envía a una IP que empiece por 192.168.1 va para la red local y todo lo que va a otras ips, para fuera (internet, otra red
local mayor...).
Supongamos que tenemos un rango de direcciones IP desde 10.0.0.0 hasta 10.255.255.255. Si todas ellas formaran parte de la misma
red, su máscara de red sería: 255.0.0.0. También se puede escribir como 10.0.0.0/8
Como la máscara consiste en una seguidilla de unos consecutivos, y luego ceros (si los hay), los números permitidos para representar
la secuencia son los siguientes: 0, 128, 192, 224, 240, 248, 252, 254, y 255.
La representación utilizada se define colocando en 1 todos los bits de red (máscara natural) y en el caso de subredes, se coloca en 1
los bits de red y los bits de host usados por las subredes. Así, en esta forma de representación (10.0.0.0/8) el 8 sería la cantidad de bits
puestos a 1 que contiene la máscara en binario, comenzando desde la izquierda. Para el ejemplo dado (/8), sería
11111111.00000000.00000000.00000000 y en su representación en decimal sería 255.0.0.0.
Una máscara de red representada en binario son 4 octetos de bits (11111111.11111111.11111111.11111111).
Ejemplo
8bit x 4 octetos = 32 bit. (11111111.11111111.11111111.11111111 = 255.255.255.255)
8bit x 3 octetos = 24 bit. (11111111.11111111.11111111.00000000 = 255.255.255.0)
8bit x 2 octetos = 16 bit. (11111111.11111111.00000000.00000000 = 255.255.0.0)
8bit x 1 octetos = 8 bit. (11111111.00000000.00000000.00000000 = 255.0.0.0)
En el ejemplo 10.0.0.0/8, según lo explicado anteriormente, indicaría que la máscara de red es 255.0.0.0
Las máscaras de redes, se utilizan como validación de direcciones realizando una operación AND lógica entre la dirección IP y la
máscara para validar al equipo cosa que permite realizar una verificación de la dirección de la Red y con un OR y la máscara negada se
obtiene la dirección del broadcasting.
Tabla de máscaras de red
MÀSCARAS DE RED
Binario
Decimal
CIDR Nº HOSTs
11111111.11111111.11111111.11111111 255.255.255.255 /32
1
11111111.11111111.11111111.11111110 255.255.255.254 /31
2
1
Clase
11111111.11111111.11111111.11111100 255.255.255.252 /30
4
11111111.11111111.11111111.11111000 255.255.255.248 /29
8
11111111.11111111.11111111.11110000 255.255.255.240 /28
16
11111111.11111111.11111111.11100000 255.255.255.224 /27
32
11111111.11111111.11111111.11000000 255.255.255.192 /26
64
11111111.11111111.11111111.10000000 255.255.255.128 /25
128
11111111.11111111.11111111.00000000 255.255.255.0
/24
256
11111111.11111111.11111110.00000000 255.255.254.0
/23
512
11111111.11111111.11111100.00000000 255.255.252.0
/22
1024
11111111.11111111.11111000.00000000 255.255.248.0
/21
2048
11111111.11111111.11110000.00000000 255.255.240.0
/20
4096
11111111.11111111.11100000.00000000 255.255.224.0
/19
8192
11111111.11111111.11000000.00000000 255.255.192.0
/18
16384
11111111.11111111.10000000.00000000 255.255.128.0
/17
32768
11111111.11111111.00000000.00000000 255.255.0.0
/16
65536
2
C
B
11111111.11111110.00000000.00000000 255.254.0.0
/15
131072
11111111.11111100.00000000.00000000 255.252.0.0
/14
262144
11111111.11111000.00000000.00000000 255.248.0.0
/13
524288
11111111.11110000.00000000.00000000 255.240.0.0
/12
1048576
11111111.11100000.00000000.00000000 255.224.0.0
/11
2097152
11111111.11000000.00000000.00000000 255.192.0.0
/10
4194304
11111111.10000000.00000000.00000000 255.128.0.0
/9
8388608
11111111.00000000.00000000.00000000 255.0.0.0
/8
16777216
11111110.00000000.00000000.00000000 254.0.0.0
/7
33554432
11111100.00000000.00000000.00000000 252.0.0.0
/6
67108864
11111000.00000000.00000000.00000000 248.0.0.0
/5
134217728
11110000.00000000.00000000.00000000 240.0.0.0
/4
268435456
11100000.00000000.00000000.00000000 224.0.0.0
/3
536870912
11000000.00000000.00000000.00000000 192.0.0.0
/2
1073741824
10000000.00000000.00000000.00000000 128.0.0.0
/1
2147483648
3
A
00000000.00000000.00000000.00000000 0.
/0
4294967296
Máscara de subred
La máscara de subred es un código numérico que forma parte de la dirección IP (Dirección de una computadora usada en internet) de
los computadores, tiene el mismo formato que la dirección IP, pero afecta sólo a un segmento particular de la red. Se utiliza para dividir
grandes redes en redes menores, facilitando la administración y reduciendo el tráfico inútil, de tal manera que será la misma para
ordenadores de una misma subred.
Por ejemplo:
Decimal
IP:
Binario
010.010.123.160 00001010.00001010.01111011.10/100000
MS: 255.255.255.192 11111111.11111111.11111111.11/000000
GW: 010.010.123.129 00001010.00001010.01111011.10/000001
Como se ve en el ejemplo anterior la fila binaria de la máscara de subred determina que la todas las IP de esa subred incluido el
Gateway deben ser iguales hasta la línea y distintas después de la línea. La dirección IP completa se calcula realizando un AND lógico
sólo con aquellos bits que indique la máscara de subred (MS). El número total de direcciones IP que tiene esa subred es inversamente
proporcional al número de bits encendidos en la máscara de red. Esa subred suele llamarse LAN La puerta de enlace puede ser
cualquier IP dentro de ese rango (subred) pero algunos adoptan la norma de que cumplan el que (IP & MS)+1 = GW (gateway, puerta
de enlace). Algunos controladores de protocolo tcp/IP rechazan todos los paquetes que no cumplen esta norma. La puerta de enlace la
utilizan los protocolos de tcp/IP para enviar aquellos paquetes cuyo destino se encuentra fuera del rango de la subred definida por la
máscara de red (si el paquete va destinado a algún ordenador cuya IP se encuentre fuera del rango establecido por la máscara de red,
utilizaran la puerta de enlace que generalmente es un router o enrutador que se encarga de enviarlos a otras redes .De esta manera se
optimiza el trabajo que realiza el PC. A veces llamamos o confundimos router con puerta de enlace: La puerta de enlace es en definitiva
es la dirección IP del router. Dirección que ha de estar dentro de la subred. La dirección IP del router se programa en el mismo router.
La mayoría de los router vienen con una dirección de fábrica, modificable a través de un puerto serie o por red mediante http, telnet u
otros protocolos. Esta dirección modificable es la puerta de enlace de la red. El router generalmente tiene dos direcciones IP cada una
en un rango distinto por ejemplo una en el rango de una subred pequeña de 16 ordenadores y otra en otra subred más grande cuyo
gateway o puerta de enlace nos da acceso a internet Solo se ven entre si los equipos de cada subred o aquellos que tengan
enrutadores y puertas de enlace bien definidas para enviar paquetes y recibir respuestas. De este modo se forman y definen las rutas
de comunicación entre ordenadores de distintas subredes. Los enrutadores además realizan varias funciones entre ellas la denominada
NAT que consiste en llevar la cuenta del origen de los paquetes para que cuando lleguen las respuestas sean enviadas al ordenador
que procede Cuando un router comunica con un ISP o proveedor de servicios de internet generalmente se les asigna una dirección
pública o externa la cual no es modificable sino asignada por la empresa suministradora (ISP) de ADSL/RDSI. En resumen la máscara
lo que determina es que paquetes que circulan por la LAN se acepten por algún ordenador de la LAN o y que paquetes han de salir
fuera de la LAN (por el router
De esta manera, si se escribe en el navegador una IP: 182.23.112.9, el equipo enviara la petición web, ftp, etc.) directamente a la
dirección especificada por la puerta de enlace (es decir el router. ningún equipo de la subred (LAN) atenderá estos paquetes por no
estar dentro de su subred (LAN).
En el ejemplo anterior, la máscara da 6 bits (los que quedan a 0, es decir, 64 posibilidades, no de 1 a 64 sino 64 posibilidades) para
programar las IP y la puerta de enlace de la LAN, es decir, el último byte para la IP y la puerta de enlace, en nuestro ejemplo debería
tomarse entre 10000000 y 10111111, es decir, entre 128 y 191. Lo normal es darle a la puerta de enlace (router) la dirección más baja,
indicando que es el primer equipo que se instala en la LAN.
Hay ciertos programas (p.e. Ethereal) que programan la tarjeta en un modo llamado 'promiscuo' en el que se le dice a la tarjeta de red
que no filtre los paquetes según la norma explicada, aceptando todos los paquetes para poder hacer un análisis del tráfico que circula
por la subred y puede ser escuchado por el PC.
4
Las máscaras 255.0.0.0 (clase A), 255.255.0.0 (clase B) y 255.255.255.0 (clase C) suelen ser suficientes para la mayoría de las redes
privadas. Sin embargo, las redes más pequeñas que podemos formar con estas máscaras son de 254 hosts y para el caso de
direcciones públicas, su contratación tiene un coste alto. Por esta razón suele ser habitual dividir las redes públicas de clase C en
subredes más pequeñas. A continuación se muestran las posibles divisiones de una red de clase C. La división de una red en subredes
se conoce como subnetting.
Clases de máscaras en subredes
Clase Bits IP Subred IP Broadcast
Máscara en decimal CIDR
A
0
0.0.0.0
127.255.255.255 255.0.0.0
/8
B
10
128.0.0.0
191.255.255.255 255.255.0.0
/16
C
110
192.0.0.0
223.255.255.255 255.255.255.0
/24
D
1110 224.0.0.0
239.255.255.255 sin definir
sin definir
E
1111 240.0.0.0
255.255.255.254 sin definir
sin definir
Topologías para Redes
La topología o forma lógica de una red se define como la forma de tender el cable a estaciones de trabajo individuales; por muros,
suelos y techos del edificio. Existe un número de factores a considerar para determinar cual topología es la más apropiada para una
situación dada.
La topología en una redes la configuración adoptada por las estaciones de trabajo para conectarse entre sí.
Topologías más Comunes
Bus: Esta topología permite que todas las estaciones reciban la información que se transmite, una estación transmite y todas las
restantes escuchan. Consiste en un cable con un terminador en cada extremo del que se cuelgan todos los elementos de una red.
Todos los nodos de la red están unidos a este cable: el cual recibe el nombre de "Backbone Cable". Tanto Ethernet como Local Talk
pueden utilizar esta topología.
El bus es pasivo, no se produce regeneración de las señales en cada nodo. Los nodos en una red de "bus" transmiten la información y
esperan que ésta no vaya a chocar con otra información transmitida por otro de los nodos. Si esto ocurre, cada nodo espera una
pequeña cantidad de tiempo al azar, después intenta retransmitir la información.
Para ver el gráfico seleccione la opción "Descargar" del menú superior
Anillo: Las estaciones están unidas unas con otras formando un círculo por medio de un cable común. El último nodo de la cadena se
conecta al primero cerrando el anillo. Las señales circulan en un solo sentido alrededor del círculo, regenerándose en cada nodo. Con
esta metodología, cada nodo examina la información que es enviada a través del anillo. Si la información no está dirigida al nodo que la
examina, la pasa al siguiente en el anillo. La desventaja del anillo es que si se rompe una conexión, se cae la red completa.
Para ver el gráfico seleccione la opción "Descargar" del menú superior
Estrella: Los datos en estas redes fluyen del emisor hasta el concentrador, este realiza todas las funciones de la red, además actúa
como amplificador de los datos.
La red se une en un único punto, normalmente con un panel de control centralizado, como un concentrador de cableado. Los bloques
de información son dirigidos a través del panel de control central hacia sus destinos. Este esquema tiene una ventaja al tener un panel
de control que monitorea el tráfico y evita las colisiones y una conexión interrumpida no afecta al resto de la red.
5
Para ver el gráfico seleccione la opción "Descargar" del menú superior
Híbridas: El bus lineal, la estrella y el anillo se combinan algunas veces para formar combinaciones de redes híbridas.
Anillo en Estrella: Esta topología se utiliza con el fin de facilitar la administración de la red. Físicamente, la red es una estrella
centralizada en un concentrador, mientras que a nivel lógico, la red es un anillo.
"Bus" en Estrella: El fin es igual a la topología anterior. En este caso la red es un "bus" que se cablea físicamente como una estrella por
medio de concentradores.
Estrella Jerárquica: Esta estructura de cableado se utiliza en la mayor parte de las redes locales actuales, por medio de concentradores
dispuestos en cascada para formar una red jerárquica.
Para ver el gráfico seleccione la opción "Descargar" del menú superior
Árbol: Esta estructura se utiliza en aplicaciones de televisión por cable, sobre la cual podrían basarse las futuras estructuras de redes
que alcancen los hogares. También se ha utilizado en aplicaciones de redes locales analógicas de banda ancha.
Trama: Esta estructura de red es típica de las WAN, pero también se puede utilizar en algunas aplicaciones de redes locales (LAN).
Las estaciones de trabajo están conectadas cada una con todas las demás.
Mecanismos para la resolución de conflictos en la transmisión de datos:
CSMA/CD: Son redes con escucha de colisiones. Todas las estaciones son consideradas igual, es por ello que compiten por el uso del
canal, cada vez que una de ellas desea transmitir debe escuchar el canal, si alguien está transmitiendo espera a que termine, caso
contrario transmite y se queda escuchando posibles colisiones, en este último espera un intervalo de tiempo y reintenta de nuevo.
Token Bus: Se usa un token (una trama de datos) que pasa de estación en estación en forma cíclica, es decir forma un anillo lógico.
Cuando una estación tiene el token, tiene el derecho exclusivo del bus para transmitir o recibir datos por un tiempo determinado y luego
pasa el token a otra estación, previamente designada. Las otras estaciones no pueden transmitir sin el token, sólo pueden escuchar y
esperar su turno. Esto soluciona el problema de colisiones que tiene el mecanismo anterior.
Token Ring: La estación se conecta al anillo por una unidad de interfaz (RIU), cada RIU es responsable de controlar el paso de los
datos por ella, así como de regenerar la transmisión y pasarla a la estación siguiente. Si la dirección de la cabecera de una determinada
transmisión indica que los datos son para una estación en concreto, la unidad de interfaz los copia y pasa la información a la estación
de trabajo conectada a la misma.
Se usa en redes de área local con o sin prioridad, el token pasa de estación en estación en forma cíclica, inicialmente en estado
desocupado. Cada estación cundo tiene el token (en este momento la estación controla el anillo), si quiere transmitir cambia su estado a
ocupado, agregando los datos atrás y lo pone en la red, caso contrario pasa el token a la estación siguiente. Cuando el token pasa de
nuevo por la estación que transmitió, saca los datos, lo pone en desocupado y lo regresa a la red.
DIFERENTES FORMAS DE TOPOLOGÍA Y LA LONGITUD MÁXIMA DE LOS SEGMENTOS DE CADA
UNA.
TOPOLOGÍA DE RED
LONGITUD SEGMENTO MÁXIMO
Ethernet de cable fino (BUS)
185 Mts (607 pies)
Ethernet de par trenzado (Estrella/BUS)
100 Mts (607 pies)
Token Ring de par trenzado (Estrella/Anillo)
100 Mts (607 pies)
ARCNET Coaxial (Estrella)
609 Mts (2000 pies)
ARCNET Coaxial (BUS)
305 Mts (1000 pies)
ARCNET de par trenzado (Estrella)
122 Mts (400 pies)
ARCNET de par trenzado (BUS)
122 Mts (400 pies)
InterRedes: Un nuevo concepto que ha surgido de estos esquemas anteriores es el de Intercedes, que representa vincular redes
como si se vincularán estaciones.
6
Este concepto y las ideas que de este surgen, hace brotar un nuevo tipo especial de dispositivo que es un vinculador para interconectar
redes entre sí (la tecnología de Internet está basada en el concepto de InterRedes), el dispositivo en cuestión se denomina "dispositivo
de interconexión". Es decir, lo que se conecta, son redes locales de trabajo.
Un enlace central es utilizado a menudo en los entornos locales, como un edificio. Los servicios públicos como las empresas de
telefonía, proporcionan enlaces de área metropolitana o de gran alcance.
Las tres topologías utilizadas para estos tipos de redes son:
Red de Enlace Central: Se encuentra generalmente en los entornos de oficina o campos, en los que las redes de los pisos de un
edificio se interconectan sobre cables centrales. Los Bridges y los Routers gestionan el tráfico entre segmentos de red conectados.
Red de Malla: Esta involucra o se efectúa a través de redes WAN, una red malla contiene múltiples caminos, si un camino falla o está
congestionado el tráfico, un paquete puede utilizar un camino diferente hacia el destino. Los routers se utilizan para interconectar las
redes separadas.
Red de Estrella Jerárquica: Esta estructura de cableado se utiliza en la mayor parte de las redes locales actuales, por medio de
concentradores dispuestos en cascada para formar una red jerárquica.
Red Neuronal (Neural, Neural Networks)
Es un sistema compuesto por un gran número de elementos básicos, agrupados en capas y que se encuentran altamente
interconectados. Esta estructura posee varias entradas y salidas, las cuales serán entrenadas para reaccionar (valores O), de una
manera deseada, a los estímulos de entrada (valores I).
Estos sistemas emulan, de una cierta manera, al cerebro humanó. Requieren aprender a comportarse y alguien debe encargarse de
enseñarles o entrenarles, en base a un conocimiento previo del entorno del problema.
Las redes neuronales no son más que un modelo artificial y simplificado del cerebro humano, que es el ejemplo más perfecto del que
disponemos para un sistema que es capaz de adquirir conocimiento a través de la experiencia. Una red neuronal es "un nuevo sistema
para el tratamiento de la información, cuya unidad básica de procesamiento está inspirada en la célula fundamental del sistema
nervioso humano: la neurona".
Por lo tanto, las Redes Neuronales:



Consisten de unidades de procesamiento que intercambian datos o información.
Se utilizan para reconocer patrones, incluyendo imágenes, manuscritos y secuencias de tiempo, tendencias financieras.
Tienen capacidad de aprender y mejorar su funcionamiento.
Una primera clasificación de los modelos de redes neuronales podría ser, atendiendo a su similitud con la realidad biológica:
1) El modelo de tipo biológico. Este comprende las redes que tratan de simular los sistemas neuronales biológicos, así como las
funciones auditivas o algunas funciones básicas de la visión.
Se estima que el cerebro humano contiene más de cien mil millones de neuronas estudios sobre la anatomía del cerebro humano
concluyen que hay más de 1000 sinapsis a la entrada y a la salida de cada neurona. Es importante notar que aunque el tiempo de
conmutación de la neurona (unos pocos milisegundos) es casi un millón de veces menor que en los actuales elementos de las
computadoras, ellas tienen una conectividad miles de veces superior que las actuales supercomputadoras.
Las neuronas y las conexiones entre ellas (sinapsis) constituyen la clave para el procesado de la información.
Algunos elementos a destacar de su estructura histológica son:
Las dendritas, que son la vía de entrada de las señales que se combinan en el cuerpo de la neurona. De alguna manera la neurona
elabora una señal de salida a partir de ellas.
El axón, que es el camino de salida de la señal generada por la neurona.
Las sinapsis, que son las unidades funcionales y estructurales elementales
que median entre las interacciones de las neuronas. En las terminaciones
de las sinapsis se encuentran unas vesículas que contienen unas
sustancias químicas llamadas neurotransmisores, que ayudan a la
propagación de las señales electroquímicas de una neurona a otra.
2) El modelo dirigido a aplicación. Este modelo no tiene por qué guardar
similitud con los sistemas biológicos. Su arquitectura está fuertemente
ligada a las necesidades de las aplicaciones para la que es diseñada.
7
Aplicación: Esta tecnología es muy útil, estas aplicaciones son aquellas en las cuales se dispone de un registro de datos y nadie
sabe la estructura y los parámetros que pudieran modelar el problema. En otras palabras, grandes cantidades de datos y mucha
incertidumbre en cuanto a la manera de como estos son producidos.
Como ejemplos de las aplicaciones de las redes neuronales (Neural Networks) se pueden citar: las variaciones en la bolsa de valores,
los riesgos en préstamos, el clima local, el reconocimiento de patrones (rostros) y la minería de datos (data mining).
Diseño: Se pueden realizar de varias maneras. En hardware utilizando transistores a efecto de campo (FET) o amplificadores
operacionales, pero la mayoría de las RN se construyen en software, esto es en programas de computación.
Existen muy buenas y flexibles herramientas disponibles en Internet que pueden simular muchos tipos de neuronas y estructuras.
Aspectos a considerar en la red neuronal:
Elemento Básico. Neurona Artificial:
Pueden ser con salidas binarias, análogas o con codificación de pulsos
(PCM). Es la unidad básica de procesamiento que se conecta a otras unidades a través de conexiones sinápticas.
Una neurona artificial es un elemento con entradas, salida y memoria que puede ser realizada mediante software o hardware. Posee
entradas (I) que son ponderadas (w), sumadas y comparadas con un umbral (t).
La Estructura de la Red (Neural Network): La interconexión de los elementos básicos. Es la manera como las unidades
básicas se interconectan.
Por lo general estas están agrupadas en capas (layers), de manera tal, que las salidas de una capa están completamente conectadas a
las entradas de la capa siguiente; en este caso decimos que tenemos una red completamente conectada.
Para obtener un resultado aceptable, el número de capas debe ser por lo menos tres. No existen evidencias, de que una red con cinco
capas resuelva un problema que una red de cuatro capas no pueda. Usualmente se emplean tres o cuatro capas.
Para ver el gráfico seleccione la opción "Descargar" del menú superior
Ventajas que Ofrecen las Redes Neuronales:
Las redes neuronales artificiales presentan un gran número de características semejantes a las del cerebro. Por ejemplo, son capaces
de aprender de la experiencia, de generalizar de casos anteriores a nuevos casos, de abstraer características esenciales a partir de
entradas que representan información irrelevante, etc. Esto hace que ofrezcan numerosas ventajas y que este tipo de tecnología se
esté aplicando en múltiples áreas.
Entre las ventajas se incluyen:
Aprendizaje Adaptativo: Capacidad de aprender a realizar tareas basadas en un entrenamiento o en una experiencia inicial.
Auto-organización: Una red neuronal puede crear su propia organización o representación de la información que recibe mediante una
etapa de aprendizaje.
Tolerancia a Fallos: La destrucción parcial de una red conduce a una degradación de su estructura; sin embargo, algunas capacidades
de la red se pueden retener, incluso sufriendo un gran daño.
Operación en Tiempo Real: Los cómputos neuronales pueden ser realizados en paralelo; para esto se diseñan y fabrican máquinas con
hardware especial para obtener esta capacidad.
Fácil Inserción Dentro de la Tecnología Existente: Se pueden obtener chips especializados para redes neuronales que mejoran su
capacidad en ciertas tareas. Ello facilitará la integración modular en los sistemas existentes.
Red Digital
ISDN (Red Digital de Servicios Integrados): Implica la digitalización de la red telefónica, que permite que voz, datos, graficas, música,
videos y otros materiales fuente se transmitan a través de los cables telefónicos. La evolución de ISDN representa un esfuerzo para
estandarizar los servicios de suscriptor, interfaces de usuario/red y posibilidades de red y de interredes.
RDSI Red Digital de Servicios Integrados: Una línea RDSI es muy parecida a una línea telefónica Standard, excepto que es
totalmente digital y ofrece una velocidad de conexión mucho más alta, hasta de 128 kbps.
Las líneas RDSI están pensadas para ser usadas por pequeñas empresas y personas que necesitan usar Internet en su vida
profesional. Si eliges una conexión por RDSI, lo primero que hace falta es una línea telefónica RDSI y un adaptador RDSI.
También se puede comprar un paquete integrado que incluya línea RDSI, hardware, software y soporte técnico. Si ya tienes una red
local (LAN) en tu oficina y quieres dar acceso a Internet a varios ordenadores, también se puede usar una configuración multipunto.
Este tipo de solución es más económico que la "tradicional" con router y cortafuegos.
Comandos de red para Ubuntu
8
Tabla de comandos
Comando
Descripción
Ejemplos y comentarios
man comando
Muestra el manual de un comando, útil
para aprender a utilizar sus argumentos
man man
mc
Explorador de archivos que incluye su
propio editor, mcedit. Es necesario
instalarlo
sudo mc
cd nom_directorio
Cambia de directorio
cd sólo va a tu home
cd ..
Sube un nivel de directorios
Si estabas en /home/usuario/ pasas a /home/
cd -
Vas a la ubicación dónde estabas antes
si desde /home/usuario haces cd /etc/X11 y luego cd vuelves a /home/usuario
cp archivo1 archivo2
Copia archivo1 como archivo2 (nuevo
nombre) manteniendo el original
cp archivo /directorio
Copia archivo en directorio manteniendo
nombre y el original
ln
archivo1
/directorio/archivo2
Hace copias enlazadas (ambos archivos
se actualizan en cuanto uno se guarda)
mv archivo1 archivo2
Renombra archivo1 en archivo2
mv archivo /directorio
Mueve archivo dentro de directorio
rm archivo
Borra archivo
rm -rf directorio
Borra el directorio con todo lo que tenga
dentro sin pedir confirmación
mkdir nom_directorio
Crea directorio nom_directorio
rmdir nom_directorio
Borra directorio nom_directorio
9
Si pones la opción -s crea un acceso directo en lugar de una
copia.
Si el nombre de la carpeta es compuesto, poner entre
comillas
kill -9 PIDnumber
Mata el proceso numberPID
queramos (finaliza su ejecución)
que
kill -STOP numberPID
Para hasta nueva orden el proceso
numberPID
kill -CONT NumberPID
Continúa el proceso numberPID parado
anteriormente
killall processname
Mata el proceso con ese nombre
ls
Lista los archivos de un determinado
directorio
ls -l
Lista también las propiedades y atributos
ls -a
Lista todos los archivos, incluidos los
ocultos y los del sistema
cat fichero
Muestra el contenido de un fichero
less
Muestra la salida estándar de forma
paginada
less fichero
Muestra el contenido de un archivo de
forma paginada
more
Muestra la salida estándar de forma
paginada
more fichero
Muestra el contenido de un archivo de
forma paginada
zcat fichero
Muestra el contenido de un archivo
comprimido (.gz)
zmore fichero
Muestra el contenido de un archivo
comprimido (.gz)
zless fichero
Muestra el contenido de un archivo
comprimido (.gz)
kill -HUP numberPID Hace lo mismo
Poniendo solo ls mostrara los archivos del directorio actual
cat /home/NOMBRE_USUARIO/YO/prueba.php
10
echo cadena
echo nos muestra en pantalla el texto
que le diga
grep 'cadena' archivo
Muestra las líneas del archivo que
contienen la cadena
file archivo
Muestra el
determinado
head archivo
Muestra las primeras líneas de un
archivo, 10 por defecto
tail archivo
Muestra las últimas líneas de un archivo,
10 por defecto
tail -fn 200 archivo
Muestra las últimas 200 líneas de un
archivo y sigue agregando mientras
crece
find directorio -name
nom_archivo -print
Busca todos los archivo con el nombre
especificado
en
un
directorio
determinado
find /home/usuario
name *.jpg -print
Busca todas las imágenes .jpg en
/home/usuario
-
tipo
de
un
archivo
whereis ejecutable
Busca binarios ejecutables (ejemplo:
whereis find)
type comando
Muestra la ubicación del ejecutable
perteneciente al comando indicado
pwd
Visualiza el directorio actual o de trabajo
history
Muestra el listado de comandos usados
por el usuario (~/.bash_history)
ps -aux
Lista de los programas que se están
ejecutando actualmente con su PID
(Process IDentifier)
df
Muestra el espacio libre en el disco duro
11
top
Muestra los procesos que más CPU
consumen en tiempo real, así como la
memoria RAM y swap usada, entre otra
información
halt
Apaga el equipo
reboot
Reinicia el equipo
shutdown -h now
Apaga el equipo
shutdown -r now
Reinicia el equipo
passwd
Cambia la contraseña del usuario
ps
-ef
l
grep
nombre_proceso
Lista los procesos que se estén
ejecutando con que contengan la
cadena nombre_proceso
El comando ps -ef es redireccionado por medio de una pipe
(Alt Gr+ 1) y filtrado con grep por la palabra que le sigue a
grep
Comandos no tan usados pero muy útiles
Tabla de comandos
Comando
Descripción
Ejemplos
comentarios
addgroup nombre_grupo
Se utiliza para crear un grupo nuevo.
addgroup Pepito
adduser nombre_usuario
[nombre_grupo]
Se utiliza para añadir un usuario. En ese momento, no solo se creará la
cuenta del usuario sino también su directorio de trabajo, un nuevo grupo de
trabajo que se llamará igual que el usuario y añadirá una serie de ficheros de
configuración al directorio de trabajo del nuevo usuario.
adduser
Invitados
history -c
Es Utilizado para Borra el Historial de Comandos
alias
nombre_alias=comando
En ciertas ocasiones se suelen utilizar comandos que son difíciles de
recordar o que son demasiado extensos, pero en UNIX existe la posibilidad
de dar un nombre alternativo a un comando con el fin de que cada vez que
se quiera ejecutar, sólo se use el nombre alternativo.
alias
install
apt-cache search texto a
Muestra una lista de todos los paquetes y una breve descripción relacionado
apt-cache
12
y
Pepito
instala=apt-get
search
buscar
con el texto que hemos buscado.
apt-get dist-upgrade
Función adicional de la opción anterior que modifica las dependencias por la
de las nuevas versiones de los paquetes.
apt-get
nombre_paquete
Instala paquetes.
apt-get install Gnome
apt-get
remove
nombre_paquete
Borra paquetes.
apt-get
remove
Gnome Con la opción
–purge
borramos
tambien
la
configuración de los
paquetes instalados.
apt-get update
Actualiza la lista de paquetes disponibles para instalar.
apt-get upgrade
Instala las nuevas versiones de los diferentes paquetes disponibles.
at [-lr] hora [fecha]
Realiza una tarea programada una sola vez.
bash / sh / ksh / csh
Existen varias shells para Unix, Korn-Shell (ksh), Bourne-Shell (sh), C-Shell
(csh), bash.
bg PID
Manda un proceso a segundo plano.
cal [[mes] año].
Muestra el calendario.
cat
Muestra el contenido del archivo en pantalla en forma continua, el prompt
retornará una vez mostrado el contenido de todo el archivo. Permite
concatenar uno o más archivos de texto. || Sintaxis: cat nom_archivo.
cd
chattr
install
Gnome
Cambia de directorio. || Sintaxis: cd nom_directorio.
Cambiar atributos de un fichero. || Sintaxis: chattr atributos nom_archivo.
chgrp
Cambia el grupo al que pertenece el archivo. || Sintaxis: chgrp nom_grupo
nom_archivo.
chmod
Utilizado para cambiar la proteción o permisos de accesos a los archivos.
r:lectura w:escritura x:ejecución +: añade permisos -:quita permisos u:usuario
g:grupo del usuario o:otros || Sintaxis: chmod permisos nom_archivo
chown
Cambia el propietario de un archivo. || Sintaxis: chown nom_propietario
nom_archivo.
13
chroot
Nos permite cambiar el directorio raiz. || Sintaxis: chroot nom_directorio_raiz.
clear
Limpia la pantalla, y coloca el prompt al principio de la misma. || Sintaxis:
clear.
cmp, diff
Permite la comparación de dos archivos, línea por línea. Es utilizado para
compara archivos de datos. Sintaxis: diff nom_archivo1 nom_archivo2 / cmp
nom_archivo1 nom_archivo2.
cp
Copia archivos en el directorio indicado. || Sintaxis: cp nom_archivo
nom_directorio.
crontab
Realizar una tarea programada de forma regular. || Sintaxis: minuto (0-59)
hora (0-23) dia_mes(1-31) mes(1-12) dia_semana(0-6) comando.
Ttiene como uso principal mostrar una columna de una salida determinada.
La opción -d va seguida del delimitador de los campos y la opción -f va
seguida del número de campo a mostrar. El “delimitador” por defecto es el
tabulador, nosotros lo cambiamos con la opción -d. Tiene algunas otras
opciones útiles. || Sintaxis: cut [opciones] nom_archivo.
cut
date
Retorna el día, fecha, hora (con minutos y segundos) y año. || Sintaxis: date.
Copia de un archivo, convirtiendo y formateando acorde a las opciones. Muy
útil para por ejemplo, "quemar" una imagen (.img) en un pendrive.
dd
delgroup
Se utiliza para eliminar un grupo. || Sintaxis: delgroup nom_grupo.
Elimina una cuenta de usuario. La pega de este comando es que no elimina
automáticamente el directorio de trabajo del usuario. || Sintaxis: deluser
nom_usuario.
deluser
df
Muestra los sistemas de ficheros montados. || Sintaxis:df
dmesg
dpkg
(paquetes)
du
echo
eject
env
exit
Muestra los mensajes del kernel durante el inicio del sistema. || Sintaxis:
dmesg.
-reconfigure
Volver a reconfigurar un paquete ya instalado. ||
Sirve para ver lo que me ocupa cada directorio dentro del directorio en el que
me encuentro y el tamaño total. || Sintaxis: du
Muestra un mensaje por pantalla. || Sintaxis: echo “Cadena”.
Mediante la utilización de este comando se conseguirá la expulsión de la
unidad de CD, siempre y cuando esta no esté en uso. || Sintaxis: eject.
Para ver las variables globales. || Sintaxis: env.
Cierra las ventanas o las conexiones remotas establecidas o las conchas
abiertas. Antes de salir es recomendable eliminar todos los trabajos o
14
Sintaxis:
dd
if=[a_copiar]
of=[destino] [opciones]
procesos de la estación de trabajo. || Sintaxis: exit.
fg
file
Manda un proceso a primer plano. || Sintaxis: fg PID.
Determina el tipo del o los archivo(s) indicado(s). || Sintaxis: file nom_archivo.
find
Busca los archivos que satisfacen la condición en el directorio indicado. ||
Sintaxis: find nom_directorio o nom_archivo condición.
finger
Permite encontrar información acerca de un usuario. || Sintaxis: finger / finger
usuario.
free
Muestra información sobre el estado de la memoria del sistema, tanto la
swap como la memoria física.Tambien muestra el buffer utilizado por el
kernel. || Sintaxis: free.
fsck
Para chequear si hay errores en nuestro disco duro. || Sintaxis: fsck t fs_typo
dispositivo.
ftp
Protocolo de Transferencia de Archivos, permite transferir archivos de y para
computadores remotos. || Sintaxis: ftp maquina_remota. G
gksu nautilus
acceso al navegador de archivos con privilegios de root (requiere
contraseña)
grep
Su funcionalidad es la de escribir en salida estándar aquellas líneas que
concuerden con un patrón. Busca patrones en archivos. || Sintaxis: grep [cilnv] expr nom_archivos.
gzip
Comprime solo archivo utilizando la extensión .gz. || Sintaxis: gzip
nom_archivo. H
head
id
ifconfig
insmod
Muestra las primeras lineas de un fichero. || Sintaxis: head -count
nom_archivo. history Lista los más recientes comandos que se han
introducido en la ventana. Es utilizado para repetir comandos ya tipeados,
con el comando !. || Sintaxis: history I
Numero id de un usuario. || Sintaxis: id
Obtener información de la configuración de red. || Sintaxis: ifconfig.
Carga en memoria un módulo. || Sintaxis: insmod J
job
Lista los procesos que se están ejecutando en segundo plano. || Sintaxis:
jobs K
kill
Permite interactuar con cualquier proceso mandando señales.Kill (pid)
termina un proceso y Kill -9 (pid) fuerza a terminar un proceso en caso de
que la anterior opción falle. || Sintaxis: kill [opciones] PID. L
last
Este comando permite ver las últimas conexiones que han tenido lugar. ||
Sintaxis: last.
less
Muestra el archivo de la misma forma que more, pero puedes regresar a la
página anterior presionando las teclas “u” o “b”. || Sintaxis: less nom_archivo
15
ln
logout
lpr
ls
lsattr
lsmod
Sirve para crear enlaces a archivos, es decir, crear un fichero que apunta a
otro. Puede ser simbólico si usamos -s o enlace duro. || Sintaxis: ln [-s]
nom_archivo nom_acceso.
Las sesiones terminan con el comando logout. || Sintaxis: logout.
Imprime un archivo en la impresora predeterminada. || Sintaxis: lpr -[lista de
requerimientos]/ lpr -P nombre_archivo.
Lista los archivos y directorios dentro del directorio de trabajo. || Sintaxis: ls.
Ver atributos de un fichero. || Sintaxis: lsattr nom_archivo.
Muestra los módulos cargados en memoria. || Sintaxis: lsmod. M
mail
Para enviar/recibir correo a/de otros usuarios de la red, o dentro de nuestro
ordenador. || Sintaxis: mail.
make
Es una herramienta que controla la creación de ejecutables y otros archivos
de un programa a partir de los archivos fuente. || Sintaxis: make.
man
Ofrece información acerca de los comandos o tópicos del sistema UNIX, así
como de los programas y librerías existentes. || Sintaxis: man comando.
mkdir
Crea un nuevo directorio. || Sintaxis: mkdir nom_directorio.
mv
Este comando sirve para renombrar un conjunto. || Sintaxis: mmv
nom_archivos1 nom_archivos2.
more
Muestra el archivo en pantalla. Presionando enter, se visualiza linea por
linea. Presinando la barra espaciadora, pantalla por pantalla. Si desea salir,
presiona q. || Sintaxis: more nom_archivo.
mount
En Linux no existen las unidades A: ni C: sino que todos los dispositivos
“cuelgan” del directorio raíz /. Para acceder a un disco es necesario primero
montarlo, esto es asignarle un lugar dentro del árbol de directorios del
sistema. || Sintaxis: mount -t sistema_de_archivo dispositivo nom_directorio.
mv
Mueve archivos o subdirectorios de un directorio a otro, o cambiar el nombre
del archivo o directorio. || Sintaxis: mv nom_archivo1…nom_archivoN
nom_directorio. N
netstat
Muestra las conexiones y puertos abiertos por los que se establecen las
comunicaciones. || Sintaxis: netstat.
nice
Permite cambiar la prioridad de un proceso en nuestro sistema. || Sintaxis:
nice -n prioridad PID. O Si tienes alguna sugerencia con ésta letra,
coméntalo. P
passwd
Se utiliza para establecer la contraseña a un usuario. Sintaxis: passwd
nom_usuario.
ping
El comando ping se utiliza generalmente para testear aspectos de la red,
como comprobar que un sistema está encendido y conectado; esto se
consigue enviando a dicha máquina paquetes ICMP. El ping es útil para
verificar instalaciones TCP/IP. Este programa nos indica el tiempo exacto
que tardan los paquetes de datos en ir y volver a través de la red desde
16
nuestro PC a un determinado servidor remoto. Sintaxis: ping (maquina).
poweroff
ps
pstree
pwd
reset
rlogin
rm
Apagar el ordenador. Sintaxis: poweroff.
Muestra información acerca de los procesos activos. Sin opciones, muestra
el número del proceso, terminal, tiempo acumulado de ejecución y el nombre
del comando. Sintaxis: ps.
Muestra un árbol de procesos. Sintaxis: pstree.
Muestra el directorio actual de trabajo. Sintaxis: pwd. Q Si tienes alguna
sugerencia con ésta letra, coméntalo. R
Si observamos que escribimos en pantalla y no aparece el texto pero al
pulsar enter realmente se está escribiendo, o que los colores o los textos de
la consola se corrompen, puede ser que alguna aplicación en modo texto
haya finalizado bruscamente no restaurando los valores estándar de la
consola al salir. Con esto forzamos unos valores por defecto, regenerando la
pantalla. Sintaxis: reset.
Conectan un host local con un host remoto. Sintaxis: rlogin maquina_remota.
Remueve o elimina un archivo. Sintaxis: rm nom_archivo.
rmdir
Elimina el directorio indicado, el cual debe estar vacío. Sintaxis: rmdir
nom_directorio.
rmmod
Descarga de memoria un módulo, pero sólo si no está siendo usado.
Sintaxis: rmmod.
route
El comando route se utiliza para visualizar y modificar la tabla de
enrutamiento. Sintaxis: route (muestra información del comando route). S
scp
Sirve para hacer una copia segura entre dos ordenadores. La información
viaja encriptada. Sintaxis: scp usuario@servidor:directorio_servidor
directorio_local.
set
Para ver las variables de entorno. Sintaxis: set.
sftp
Protocolo de Transferencia de Archivos, permite transferir archivos de y para
computadores remotos. La información viaja encriptada. Sintaxis: sftp
maquina_remota.
sort
Muestra el contenido de un fichero, pero mostrando sus líneas en orden
alfabético. Sintaxis: Sort [opciones] nom_archivo.
ssh (Secure Shell Client)
startx
Es un programa para conectarse en una máquina remota y ejecutar
programas en ella. Utilizado para reemplazar el rlogin y rsh, además provee
mayor seguridad en la comunicación entre dos hosts. El ssh se conecta al
host indicado, donde el usuario de ingresar su identificación (login y
password) en la máquina remota, la cual realiza una autentificación del
usuario. Sintaxis: ssh maquina_remota.
Inicia el entorno gráfico(servidor X). Sintaxis: startx.
17
su o sudo
Con este comando accedemos al sistema como root. En Ubuntu se puede
utilizar gksudo mientras en Kubuntu: kdesudo. Sintaxis: su. T
tail
Este comando es utilizado para examinar las últimas líneas de un fichero.
Sintaxis: tail -count nom_archivo.
tar
Comprime archivos y directorios utilizando la extensión .tar. Sintaxis: tar [arg] nom_archivo.tar nom_archivo.
telnet
Conecta el host local con un host remoto, usando la interfaz TELNET.
Sintaxis: telnet maquina_remota
top
Muestra los procesos que se ejecutan en ese momento, sabiendo los
recursos que se están consumiendo (Memoria,CPU,…).Es una mezcla del
comando uptime,free y ps. Sintaxis: top.
touch
Crea un archivo vacio. Sintaxis: touch nom_archivo.
traceroute
Permite determinar la ruta tomada por un paquete para alcanzar su destino
en Internet. Sintaxis: traceroute [opciones] host [tamaño del paquete]. U
umask
Establece la máscara de permisos. Los permisos con los que se crean los
directorios y los archivos por defecto. Sintaxis: umask a-rwx,u+rw,g+r.
umount
Establece la máscara de permisos. Los permisos con los que se crean los
directorios y los archivos por defecto. Sintaxis: umask a-rwx,u+rw,g+r.
unalias
uniq
uptime
Borra un alias. Sintaxis: unalias nom_alias.
Este comando lee un archivo de entrada y compara las líneas adyacentes
escribiendo solo una copia de las líneas a la salida. La segunda y
subsecuentes copias de las líneas de entrada adyacentes repetidas no serán
escritas. Las líneas repetidas no se detectarán a menos que sean
adyacentes. Si no se especifica algún archivo de entrada se asume la
entrada estándar. Sintaxis: uniq [opciones] nom_archivo_entrada
nom_archivo_salida.
Nos indica el tiempo que ha estado corriendo la máquina. Sintaxis: uptime. V
vi
Permite editar un archivo en el directorio actual de trabajo. Es uno de los
editores de texto más usado en UNIX. Sintaxis: vi nom_archivo.
view
Es similar al vi, solo que no permite guardar modificaciones en el archivo, es
para leer el contenido del archivo. Sintaxis: view nom_archivo. W
wc
Cuenta los caráteres, palabras y líneas del archivo de texto. Sintaxis: wc
nom_archivo.
whereis
Devuelve la ubicación del archivo especificado, si existe. Sintaxis: whereis
nomb_archivo.
who, w
Lista quienes están conectados al servidor, con nombre de usuario, tiempo
de conexión y el computador remoto desde donde se conecta. Sintaxis: who /
w.
whoami
Escribe su nombre de usuario en pantalla. Sintaxis: whoami. X
18
xmessage
Enviar un mensaje al display de otro usuario o al nuestro propio. Sintaxis:
xmessage (mensaje) / export DISPLAY=157.92.49.211:0 xmessage Hola!!. Y
yes
Escribe “y” continuamente. Sintaxis: yes. Z Si tienes alguna sugerencia con
ésta letra, coméntalo. Varios
&
Añadiendo un & al final del comando haremos que dicho comando se ejecute
en segundo plano. Sintaxis: nom_comando&.
!
Repite el último comando colocando la letra con la que comienza el comando
o su número de history. Sintaxis: !.
Modelo TCP/IP
El modelo TCP/IP es un modelo de descripción de protocolos de red creado en la década de 1970 por DARPA, una agencia del
Departamento de Defensa de los Estados Unidos. Evolucionó de ARPANET, el cual fue la primera red de área amplia y predecesora de
Internet. EL modelo TCP/IP se denomina a veces como Internet Model, Modelo DoD o Modelo DARPA.
El modelo TCP/IP, describe un conjunto de guías generales de diseño e implementación de protocolos de red específicos para permitir
que una computadora pueda comunicarse en una red. TCP/IP provee conectividad de extremo a extremo especificando como los datos
deberían ser formateados, direccionados, transmitidos, enrutados y recibidos por el destinatario. Existen protocolos para los diferentes
tipos de servicios de comunicación entre computadoras.
TCP/IP tiene cuatro capas de abstracción según se define en el RFC 1122. Esta arquitectura de capas a menudo es comparada con el
Modelo OSI de siete capas.
EL modelo TCP/IP y los protocolos relacionados son mantenidos por la Internet Engineering Task Force (IETF).
Para conseguir un intercambio fiable de datos entre dos computadoras, se deben llevar a cabo muchos procedimientos separados.
El resultado es que el software de comunicaciones es complejo. Con un modelo en capas o niveles resulta más sencillo agrupar
funciones relacionadas e implementar el software de comunicaciones modular.
Las capas están jerarquizadas. Cada capa se construye sobre su predecesora. El número de capas y, en cada una de ellas, sus
servicios y funciones son variables con cada tipo de red. Sin embargo, en cualquier red, la misión de cada capa es proveer servicios a
las capas superiores haciéndoles transparentes el modo en que esos servicios se llevan a cabo. De esta manera, cada capa debe
ocuparse exclusivamente de su nivel inmediatamente inferior, a quien solicita servicios, y del nivel inmediatamente superior, a quien
devuelve resultados.




Capa 4 o capa de aplicación: Aplicación, asimilable a las capas 5 (sesión), 6 (presentación) y 7 (aplicación) del modelo
OSI.la capa de aplicación debía incluir los detalles de las capas de sesión y presentación OSI. Crearon una capa de
aplicación que maneja aspectos de representación, codificación y control de diálogo.
Capa 3 o capa de transporte: Transporte, asimilable a la capa 4 (transporte) del modelo OSI.
Capa 2 o capa de red: Internet, asimilable a la capa 3 (red) del modelo OSI.
Capa 1 o capa de enlace: Acceso al Medio, asimilable a la capa 1 (física) y 2 (enlace de datos) del modelo OSI.
Transmission Control Protocol
Transmission Control Protocol (en español Protocolo de Control de Transmisión) o TCP, es uno de los protocolos fundamentales en
Internet. Fue creado entre los años 1973 y 1974 por Vint Cerf y Robert Kahn.
Muchos programas dentro de una red de datos compuesta por computadoras pueden usar TCP para crear conexiones entre ellos a
través de las cuales puede enviarse un flujo de datos. El protocolo garantiza que los datos serán entregados en su destino sin errores y
19
en el mismo orden en que se transmitieron. También proporciona un mecanismo para distinguir distintas aplicaciones dentro de una
misma máquina, a través del concepto de puerto.
TCP da soporte a muchas de las aplicaciones más populares de Internet, incluidas HTTP, SMTP, SSH y FTP.
Información Técnica
TCP es un protocolo de comunicación orientado a conexión y fiable del nivel de transporte, actualmente documentado por IETF en el
RFC 793. Es un protocolo de capa 4 según el modelo OSI.
Funciones de TCP
En la pila de protocolos TCP/IP, TCP es la capa intermedia entre el protocolo de internet (IP) y la aplicación. Habitualmente, las
aplicaciones necesitan que la comunicación sea fiable y, dado que la capa IP aporta un servicio de datagramas no fiable (sin
confirmación), TCP añade las funciones necesarias para prestar un servicio que permita que la comunicación entre dos sistemas se
efectúe libre de errores, sin pérdidas y con seguridad.
Los servicios provistos por TCP corren en el anfitrión (host) de cualquiera de los extremos de una conexión, no en la red. Por lo tanto,
TCP es un protocolo para manejar conexiones de extremo a extremo. Tales conexiones pueden existir a través de una serie de
conexiones punto a punto, por lo que estas conexiones extremo-extremo son llamadas circuitos virtuales.






Orientado a la conexión: dos computadoras establecen una conexión para intercambiar datos. Los sistemas de los extremos
se sincronizan con el otro para manejar el flujo de paquetes y adaptarse a la congestión de la red.
Operación Full-Dúplex: una conexión TCP es un par de circuitos virtuales, cada uno en una dirección. Sólo los dos sistemas
finales sincronizados pueden usar la conexión.
Error Checking: una técnica de checksum es usada para verificar que los paquetes no estén corruptos.
Acknowledgements: sobre recibo de uno o más paquetes, el receptor regresa un acknowledgement (reconocimiento) al
transmisor indicando que recibió los paquetes. Si los paquetes no son notificados, el transmisor puede reenviar los paquetes
o terminar la conexión si el transmisor cree que el receptor no está más en la conexión.
Control de flujo: si el transmisor está desbordando el buffer del receptor por transmitir demasiado rápido, el receptor
descarta paquetes. Los acknowledgement fallidos que llegan al transmisor le alertan para bajar la tasa de transferencia o
dejar de transmitir.
Servicio de recuperación de Paquetes: el receptor puede pedir la retransmisión de un paquete. Si el paquete no es
notificado como recibido (ACK), el transmisor envía de nuevo el paquete.
Los servicios confiables de entrega de datos son críticos para aplicaciones tales como transferencias de archivos (FTP por ejemplo),
servicios de bases de datos, proceso de transacciones y otras aplicaciones de misión crítica en las cuales la entrega de cada paquete
debe ser garantizada.
Formato de los Segmentos TCP
En el nivel de transporte, los paquetes de bits que constituyen las unidades de datos de protocolo TCP se llaman "segmentos". El
formato de los segmentos TCP se muestra en el siguiente esquema:
+
Bits 0 - 3
4-7
8 - 15
0
Puerto Origen
32
Número de Secuencia
64
Número de Acuse de Recibo (ACK)
16 - 31
Puerto Destino
20
96
longitud
cabecera
TCP
128
Suma de Verificación (Checksum)
160
Opciones + Relleno (opcional)
224
Datos
Reservado
Flags
Ventana
Puntero Urgente
Las aplicaciones envían flujos de bytes a la capa TCP para ser enviados a la red. TCP divide el flujo de bytes llegado de la aplicación en
segmentos de tamaño apropiado (normalmente esta limitación viene impuesta por la unidad máxima de transferencia (MTU) del nivel de
enlace de datos de la red a la que la entidad está asociada) y le añade sus cabeceras. Entonces, TCP pasa el segmento resultante a la
capa IP, donde a través de la red, llega a la capa TCP de la entidad destino. TCP comprueba que ningún segmento se ha perdido
dando a cada uno un número de secuencia, que es también usado para asegurarse de que los paquetes han llegado a la entidad
destino en el orden correcto. TCP devuelve un asentimiento por bytes que han sido recibidos correctamente; un temporizador en la
entidad origen del envío causará un timeout si el asentimiento no es recibido en un tiempo razonable, y el (presuntamente
desaparecido) paquete será entonces retransmitido. TCP revisa que no haya bytes dañados durante el envío usando un checksum; es
calculado por el emisor en cada paquete antes de ser enviado, y comprobado por el receptor.



Puerto de origen (16 bits): Identifica el puerto a través del que se envía.
Puerto destino (16 bits): Identifica el puerto del receptor.
Número de secuencia (32 bits): Sirve para comprobar que ningún segmento se ha perdido, y que llegan en el orden correcto.
Su significado varía dependiendo del valor de SYN:






Si el flag SYN está activo (1), entonces este campo indica el número inicial de secuencia (con lo cual el número de
secuencia del primer byte de datos será este número de secuencia más uno).
Si el flag SYN no está activo (0), entonces este campo indica el número de secuencia del primer byte de datos.
Número de acuse de recibo (ACK) (32 bits): Si el flag ACK está puesto a activo, entonces en este campo contiene el número
de secuencia del siguiente paquete que el receptor espera recibir.
Longitud de la cabecera TCP (4 bits): Especifica el tamaño de la cabecera TCP en palabras de 32-bits. El tamaño mínimo es
de 5 palabras, y el máximo es de 15 palabras (lo cual equivale a un tamaño mínimo de 20 bytes y a un máximo de 60 bytes).
En inglés el campo se denomina “Data offset”, que literalmente sería algo así como “desplazamiento hasta los datos”, ya que
indica cuántos bytes hay entre el inicio del paquete TCP y el inicio de los datos.
Reservado (4 bits): Bits reservados para uso futuro, deberían ser puestos a cero.
Bits de control (flags) (8 bits): Son 8 flags o banderas. Cada una indica “activa” con un 1 o “inactiva” con un 0.







CWR o “Congestion Window Reduced” (1 bit): Este flag se activa (se pone a 1) por parte del emisor para indicar
que ha recibido un paquete TCP con el flag ECE activado. El flag ECE es una extensión del protocolo que fue
añadida a la cabecera en el RFC 3168. Se utiliza para el control de la congestión en la red.
ECE o “ECN-Echo” (1 bit): Indica que el receptor puede realizar notificaciones ECN. La activación de este flag se
realiza durante la negociación en tres pasos para el establecimiento de la conexión. Este flag también fue añadido a
la cabecera en el RFC 3168.
URG o “urgent” (1 bit, ver URG): Si está activo significa que el campo “Urgente” es significativo, si no, el valor de
este campo es ignorado.
ACK o “acknowledge” (1 bit, ver ACK): Si está activo entonces el campo con el número de acuse de recibo es válido
(si no, es ignorado).
PSH o “push” (1 bit, ver PSH): Activa/desactiva la función que hace que los datos de ese segmento y los datos que
hayan sido almacenados anteriormente en el buffer del receptor deben ser transferidos a la aplicación receptora lo
antes posible.
RST o “reset” (1 bit, ver Flag RST): Si llega a 1, termina la conexión sin esperar respuesta.
SYN o “synchronize” (1 bit, ver SYN): Activa/desactiva la sincronización de los números de secuencia.
21






FIN (1 bit, ver FIN): Si se activa es porque no hay más datos a enviar por parte del emisor, esto es, el paquete que
lo lleva activo es el último de una conexión.
Ventana (16 bits): Es el tamaño de la ventana de recepción, que especifica el número de bytes que el receptor está
actualmente esperando recibir.
Suma de verificación (checksum) (16 bits): Es una suma de verificación utilizada para comprobar si hay errores tanto en la
cabecera como en los datos.
Puntero urgente (16 bits): Si el flag URG está activado, entonces este campo indica el desplazamiento respecto al número de
secuencia que indica el último byte de datos marcados como “urgentes”.
Opciones (número de bits variable): La longitud total del campo de opciones ha de ser múltiplo de una palabra de 32 bits (si
es menor, se ha de rellenar al múltiplo más cercano), y el campo que indica la longitud de la cabecera ha de estar ajustado de
forma adecuada.
Datos (número de bits variable): No forma parte de la cabecera, es la carga (payload), la parte con los datos del paquete TCP.
Pueden ser datos de cualquier protocolo de nivel superior en el nivel de aplicación; los protocolos más comunes para los que
se usan los datos de un paquete TCP son HTTP, telnet, SSH, FTP, etc.
Funcionamiento del protocolo en detalle
Las conexiones TCP se componen de tres etapas: establecimiento de conexión, transferencia de datos y fin de la conexión. Para
establecer la conexión se usa el procedimiento llamado negociación en tres pasos (3-way handshake). Una negociación en cuatro
pasos (4-way handshake) es usada para la desconexión. Durante el establecimiento de la conexión, algunos parámetros como el
número de secuencia son configurados para asegurar la entrega ordenada de los datos y la robustez de la comunicación.
Establecimiento de la conexión (negociación en tres pasos)
Negociación en tres pasos o Three-way handshake
Aunque es posible que un par de entidades finales comiencen
una conexión entre ellas simultáneamente, normalmente una
de ellas abre un socket en un determinado puerto TCP y se
queda a la escucha de nuevas conexiones. Es común
referirse a esto como apertura pasiva, y determina el lado
servidor de una conexión. El lado cliente de una conexión
realiza una apertura activa de un puerto enviando un paquete
SYN inicial al servidor como parte de la negociación en tres
pasos. En el lado del servidor se comprueba si el puerto está
abierto, es decir, si existe algún proceso escuchando en ese
puerto. En caso de no estarlo, se envía al cliente un paquete
de respuesta con el bit RST activado, lo que significa el
rechazo del intento de conexión. En caso de que sí se
encuentre abierto el puerto, el lado servidor respondería a la
petición SYN válida con un paquete SYN/ACK. Finalmente, el
cliente debería responderle al servidor con un ACK,
completando así la negociación en tres pasos (SYN,
SYN/ACK y ACK) y la fase de establecimiento de conexión.
Es interesante notar que existe un número de secuencia
generado por cada lado, ayudando de este modo a que no se
puedan establecer conexiones falseadas (spoofing).
Transferencia de datos
Durante la etapa de transferencia de datos, una serie de mecanismos claves determinan la fiabilidad y robustez del protocolo. Entre
ellos están incluidos el uso del número de secuencia para ordenar los segmentos TCP recibidos y detectar paquetes duplicados,
checksums para detectar errores, y asentimientos y temporizadores para detectar pérdidas y retrasos.
Durante el establecimiento de conexión TCP, los números iniciales de secuencia son intercambiados entre las dos entidades TCP.
Estos números de secuencia son usados para identificar los datos dentro del flujo de bytes, y poder identificar (y contar) los bytes de los
datos de la aplicación. Siempre hay un par de números de secuencia incluidos en todo segmento TCP, referidos al número de
secuencia y al número de asentimiento. Un emisor TCP se refiere a su propio número de secuencia cuando habla de número de
secuencia, mientras que con el número de asentimiento se refiere al número de secuencia del receptor. Para mantener la fiabilidad, un
receptor asiente los segmentos TCP indicando que ha recibido una parte del flujo continuo de bytes. Una mejora de TCP, llamada
22
asentimiento selectivo (SACK, Selective Acknowledgement) permite a un receptor TCP asentir los datos que se han recibido de tal
forma que el remitente solo retransmita los segmentos de datos que faltan.
A través del uso de números de secuencia y asentimiento, TCP puede pasar los segmentos recibidos en el orden correcto dentro del
flujo de bytes a la aplicación receptora. Los números de secuencia son de 32 bits (sin signo), que vuelve a cero tras el siguiente byte
después del 232-1. Una de las claves para mantener la robustez y la seguridad de las conexiones TCP es la selección del número inicial
de secuencia (ISN, Initial Sequence Number).
Un checksum de 16 bits, consistente en el complemento a uno de la suma en complemento a uno del contenido de la cabecera y datos
del segmento TCP, es calculado por el emisor, e incluido en la transmisión del segmento. Se usa la suma en complemento a uno
porque el acarreo final de ese método puede ser calculado en cualquier múltiplo de su tamaño (16-bit, 32-bit, 64-bit...) y el resultado,
una vez plegado, será el mismo. El receptor TCP recalcula el checksum sobre las cabeceras y datos recibidos. El complemento es
usado para que el receptor no tenga que poner a cero el campo del checksum de la cabecera antes de hacer los cálculos, salvando en
algún lugar el valor del checksum recibido; en vez de eso, el receptor simplemente calcula la suma en complemento a uno con el
checksum incluido, y el resultado debe ser igual a 0. Si es así, se asume que el segmento ha llegado intacto y sin errores.
Hay que fijarse en que el checksum de TCP también cubre los 96 bit de la cabecera que contiene la dirección origen, la dirección
destino, el protocolo y el tamaño TCP. Esto proporciona protección contra paquetes mal dirigidos por errores en las direcciones.
El checksum de TCP es una comprobación bastante débil. En niveles de enlace con una alta probabilidad de error de bit quizá requiera
una capacidad adicional de corrección/detección de errores de enlace. Si TCP fuese rediseñado hoy, muy probablemente tendría un
código de redundancia cíclica (CRC) para control de errores en vez del actual checksum. La debilidad del checksum está parcialmente
compensada por el extendido uso de un CRC en el nivel de enlace, bajo TCP e IP, como el usado en el PPP o en Ethernet. Sin
embargo, esto no significa que el checksum de 16 bits es redundante: sorprendentemente, inspecciones sobre el tráfico de Internet han
mostrado que son comunes los errores de software y hardware[cita requerida] que introducen errores en los paquetes protegidos con un
CRC, y que el checksum de 16 bits de TCP detecta la mayoría de estos errores simples.
Los asentimientos (ACKs o Acknowledgments) de los datos enviados o la falta de ellos, son usados por los emisores para interpretar las
condiciones de la red entre el emisor y receptor TCP. Unido a los temporizadores, los emisores y receptores TCP pueden alterar el
comportamiento del movimiento de datos. TCP usa una serie de mecanismos para conseguir un alto rendimiento y evitar la congestión
de la red (la idea es enviar tan rápido como el receptor pueda recibir). Estos mecanismos incluyen el uso de ventana deslizante, que
controla que el transmisor mande información dentro de los límites del buffer del receptor, y algoritmos de control de flujo, tales como el
algoritmo de Evitación de la Congestión (congestion avoidance), el de comienzo lento (Slow-start), el de retransmisión rápida, el de
recuperación rápida (Fast Recovery), y otros.
Tamaño de ventana TCP
El tamaño de la ventana de recepción TCP es la cantidad de datos recibidos (en bytes) que pueden ser metidos en el buffer de
recepción durante la conexión. La entidad emisora puede enviar una cantidad determinada de datos pero antes debe esperar un
asentimiento con la actualización del tamaño de ventana por parte del receptor.
Un ejemplo sería el siguiente: un receptor comienza con un tamaño de ventana x y recibe y bytes, entonces su tamaño de ventana será
(x - y) y el transmisor sólo podrá mandar paquetes con un tamaño máximo de datos de (x - y) bytes. Los siguientes paquetes recibidos
seguirán restando tamaño a la ventana de recepción. Esta situación seguirá así hasta que la aplicación receptora recoja los datos del
buffer de recepción. Yes
Escalado de ventana
Para una mayor eficiencia en redes de gran ancho de banda, debe ser usado un tamaño de ventana mayor. El campo TCP de tamaño
de ventana controla el movimiento de datos y está limitado a 16 bits, es decir, a un tamaño de ventana de 65.535 bytes.
Como el campo de ventana no puede expandirse se usa un factor de escalado. La escala de ventana TCP (TCP window scale) es una
opción usada para incrementar el máximo tamaño de ventana desde 65.535 bytes, a 1 Gigabyte.
La opción de escala de ventana TCP es usada solo durante la negociación en tres pasos que constituye el comienzo de la conexión. El
valor de la escala representa el número de bits desplazados a la izquierda de los 16 bits que forman el campo del tamaño de ventana.
El valor de la escala puede ir desde 0 (sin desplazamiento) hasta 14. Hay que recordar que un número binario desplazado un bit a la
izquierda es como multiplicarlo en base decimal por 2.
Fin de la conexión
Cierre de una conexión según el estándar.
23
La fase de finalización de la conexión usa una negociación en cuatro pasos (four-way
handshake), terminando la conexión desde cada lado independientemente. Cuando uno de
los dos extremos de la conexión desea parar su "mitad" de conexión transmite un paquete
FIN, que el otro interlocutor asentirá con un ACK. Por tanto, una desconexión típica requiere
un par de segmentos FIN y ACK desde cada lado de la conexión.
Una conexión puede estar "medio abierta" en el caso de que uno de los lados la finalice pero
el otro no. El lado que ha dado por finalizada la conexión no puede enviar más datos pero la
otra parte si podrá.
Puertos TCP
TCP usa el concepto de número de puerto para identificar a las aplicaciones emisoras y receptoras. Cada lado de la conexión TCP tiene
asociado un número de puerto (de 16 bits sin signo, con lo que existen 65536 puertos posibles) asignado por la aplicación emisora o
receptora. Los puertos son clasificados en tres categorías: bien conocidos, registrados y dinámicos/privados. Los puertos bien
conocidos son asignados por la Internet Assigned Numbers Authority (IANA), van del 0 al 1023 y son usados normalmente por el
sistema o por procesos con privilegios. Las aplicaciones que usan este tipo de puertos son ejecutadas como servidores y se quedan a
la escucha de conexiones. Algunos ejemplos son: FTP (21), SSH (22), Telnet (23), SMTP (25) y HTTP (80). Los puertos registrados son
normalmente empleados por las aplicaciones de usuario de forma temporal cuando conectan con los servidores, pero también pueden
representar servicios que hayan sido registrados por un tercero (rango de puertos registrados: 1024 al 49151). Los puertos
dinámicos/privados también pueden ser usados por las aplicaciones de usuario, pero este caso es menos común. Los puertos
dinámicos/privados no tienen significado fuera de la conexión TCP en la que fueron usados (rango de puertos dinámicos/privados:
49152 al 65535, recordemos que el rango total de 2 elevado a la potencia 16, cubre 65536 números, del 0 al 65535)
Desarrollo de TCP
TCP es un protocolo muy desarrollado y complejo. Sin embargo, mientras mejoras significativas han sido propuestas y llevadas a cabo
a lo largo de los años, ha conservado las operaciones más básicas sin cambios desde el RFC 793, publicado en 1981. El documento
RFC 1122 (Host Requirements for Internet Hosts), especifica el número de requisitos de una implementación del protocolo TCP. El RFC
2581 (Control de Congestión TCP) es uno de los más importantes documentos relativos a TCP de los últimos años, describe nuevos
algoritmos para evitar la congestión excesiva. En 2001, el RFC 3168 fue escrito para describir la Notificación de Congestión Explícita
(ECN), una forma de eludir la congestión con mecanismos de señalización. En los comienzos del siglo XXI, TCP es usado en el 95% de
todos los paquetes que circulan por Internet. Entre las aplicaciones más comunes que usan TCP están HTTP/HTTPS (World Wide
Web), SMTP/POP3/IMAP (correo electrónico) y FTP (transferencia de ficheros). Su amplia extensión ha sido la prueba para los
desarrolladores originales de que su creación estaba excepcionalmente bien hecha.
Recientemente, un nuevo algoritmo de control de congestión fue desarrollado y nombrado como FAST TCP (Fast Active queue
management Scalable Transmission Control Protocol) por los científicos de Caltech (California Institute of Technology). Es similar a TCP
Vegas en cuanto a que ambos detectan la congestión a partir de los retrasos en las colas que sufren los paquetes al ser enviados a su
destino. Todavía hay un debate abierto sobre si éste es un síntoma apropiado para el control de la congestión.
User Datagram Protocol
User Datagram Protocol (UDP) es un protocolo del nivel de transporte basado en el intercambio de datagramas. Permite el envío de
datagramas a través de la red sin que se haya establecido previamente una conexión, ya que el propio datagrama incorpora suficiente
información de direccionamiento en su cabecera. Tampoco tiene confirmación ni control de flujo, por lo que los paquetes pueden
adelantarse unos a otros; y tampoco se sabe si ha llegado correctamente, ya que no hay confirmación de entrega o recepción. Su uso
principal es para protocolos como DHCP, BOOTP, DNS y demás protocolos en los que el intercambio de paquetes de la
conexión/desconexión son mayores, o no son rentables con respecto a la información transmitida, así como para la transmisión de
audio y vídeo en tiempo real, donde no es posible realizar retransmisiones por los estrictos requisitos de retardo que se tiene en estos
casos.
Descripción técnica
User Datagram Protocol (UDP) es un protocolo mínimo de nivel de transporte orientado a mensajes documentado en el RFC 768 de la
IETF.
En la familia de protocolos de Internet UDP proporciona una sencilla interfaz entre la capa de red y la capa de aplicación. UDP no
otorga garantías para la entrega de sus mensajes y el origen UDP no retiene estados de los mensajes UDP que han sido enviados a la
24
red. UDP sólo añade multiplexado de aplicación y suma de verificación de la cabecera y la carga útil. Cualquier tipo de garantías para la
transmisión de la información deben ser implementadas en capas superiores
+
Bits 0 - 15
16 - 31
0
Puerto origen
Puerto destino
32 Longitud del Mensaje
Suma de verificación
64 Datos
La cabecera UDP consta de 4 campos de los cuales 2 son opcionales (con fondo rojo en la tabla). Los campos de los puertos fuente y
destino son campos de 16 bits que identifican el proceso de origen y recepción. Ya que UDP carece de un servidor de estado y el origen
UDP no solicita respuestas, el puerto origen es opcional. En caso de no ser utilizado, el puerto origen debe ser puesto a cero. A los
campos del puerto destino le sigue un campo obligatorio que indica el tamaño en bytes del datagrama UDP incluidos los datos. El valor
mínimo es de 8 bytes. El campo de la cabecera restante es una suma de comprobación de 16 bits que abarca la cabecera, los datos y
una pseudo-cabecera con las IP origen y destino, el protocolo, la longitud del datagrama y 0's hasta completar un múltiplo de 16. Pero
no los datos. El checksum también es opcional, aunque generalmente se utiliza en la práctica.
El protocolo UDP se utiliza por ejemplo cuando se necesita transmitir voz o vídeo y resulta más importante transmitir con velocidad que
garantizar el hecho de que lleguen absolutamente todos los bytes.
Puertos
UDP utiliza puertos para permitir la comunicación entre aplicaciones. El campo de puerto tiene una longitud de 16 bits, por lo que el
rango de valores válidos va de 0 a 65.535. El puerto 0 está reservado, pero es un valor permitido como puerto origen si el proceso
emisor no espera recibir mensajes como respuesta.
Los puertos 1 a 1023 se llaman puertos "bien conocidos" y en sistemas operativos tipo Unix enlazar con uno de estos puertos requiere
acceso como súper usuario.
Los puertos 1024 a 49.151 son puertos registrados.
Los puertos 49.152 a 65.535 son puertos efímeros y son utilizados como puertos temporales, sobre todo por los clientes al comunicarse
con los servidores.
Código de ejemplo (Python)
El siguiente ejemplo muestra cómo usar el protocolo UDP para una comunicación cliente/servidor:
Servidor:
Import socket
PUERTO = 10000
BUFLEN = 512
Server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
Server. Bind (('', PUERTO))
While True:
(message, address) = server.recvfrom(BUFLEN)
Print 'Recibiendo paquete desde %s:%d' % (address[0], address[1])
print 'Dato: %s' % message
Cliente (Cambia "127.0.0.1" por la dirección IP del servidor):
Import socket
IP_SERVIDOR = '127.0.0.1'
PUERTO_SERVIDOR = 10000
25
Client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
For i in range (3):
Print 'Enviando paquete %d' % i
message = 'Este es el paquete %d' % i
client.sendto(message, (IP_SERVIDOR, PUERTO_SERVIDOR))
client.close ()
Código de ejemplo (C++)
El siguiente ejemplo muestra cómo usar el protocolo UDP para una comunicación cliente/servidor:
Servidor:
#include <winsock.h>
#pragma comment(lib,"ws2_32.lib")
const int BufLen = 1024;
int main()
{
WSADATA wsaData;
SOCKET RecvSocket;
sockaddr_in RecvAddr;
int Puerto = 2345;
char RecvBuf[BufLen];
sockaddr_in SenderAddr;
int SenderAddrSize = sizeof(SenderAddr);
WSAStartup(MAKEWORD(2,2), &wsaData);
RecvSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
RecvAddr.sin_family = AF_INET;
RecvAddr.sin_port = htons(Puerto);
RecvAddr.sin_addr.s_addr = INADDR_ANY;
bind(RecvSocket, (SOCKADDR *) &RecvAddr, sizeof(RecvAddr));
recvfrom(RecvSocket,RecvBuf, BufLen,0,(SOCKADDR *)&SenderAddr,&SenderAddrSize);
printf("%s\n",RecvBuf);
closesocket(RecvSocket);
WSACleanup();
}
Cliente (Cambia "127.0.0.1" por la dirección IP del servidor):
#include <winsock.h>
#pragma comment(lib,"ws2_32.lib")
int main()
{
WSADATA wsaData;
SOCKET SendSocket;
sockaddr_in RecvAddr;
int Puerto = 2345;
char ip[] = "127.0.0.1";
char SendBuf[] = "Hola!!!!";
WSAStartup(MAKEWORD(2,2), &wsaData);
SendSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
RecvAddr.sin_family = AF_INET;
RecvAddr.sin_port = htons(Puerto);
RecvAddr.sin_addr.s_addr = inet_addr(ip);
sendto(SendSocket,SendBuf,strlen(SendBuf)+1,0,(SOCKADDR *) &RecvAddr,sizeof(RecvAddr));
WSACleanup();
}
26
Comparativa entre UDP y TCP (Transmission Control Protocol)
 UDP: proporciona un nivel de transporte no fiable de datagramas, ya que apenas añade la información necesaria para la
comunicación extremo a extremo al paquete que envía al nivel inferior. Lo utilizan aplicaciones como NFS (Network File System) y RCP
(comando para copiar ficheros entre ordenadores remotos), pero sobre todo se emplea en tareas de control y en la transmisión de audio
y vídeo a través de una red. No introduce retardos para establecer una conexión, no mantiene estado de conexión alguno y no realiza
seguimiento de estos parámetros. Así, un servidor dedicado a una aplicación particular puede soportar más clientes activos cuando la
aplicación corre sobre UDP en lugar de sobre TCP.
 TCP: es el protocolo que proporciona un transporte fiable de flujo de bits entre aplicaciones. Está pensado para poder enviar grandes
cantidades de información de forma fiable, liberando al programador de la dificultad de gestionar la fiabilidad de la conexión
(retransmisiones, pérdida de paquetes, orden en el que llegan los paquetes, duplicados de paquetes...) que gestiona el propio protocolo.
Pero la complejidad de la gestión de la fiabilidad tiene un coste en eficiencia, ya que para llevar a cabo las gestiones anteriores se tiene
que añadir bastante información a los paquetes que enviar. Debido a que los paquetes para enviar tienen un tamaño máximo, cuanta
más información añada el protocolo para su gestión, menos información que proviene de la aplicación podrá contener ese paquete (el
segmento TCP tiene una sobrecarga de 20 bytes en cada segmento, mientras que UDP solo añade 8 bytes). Por eso, cuando es más
importante la velocidad que la fiabilidad, se utiliza UDP. En cambio, TCP asegura la recepción en destino de la información para
transmitir.
Transmisión de vídeo y voz
UDP es generalmente el protocolo usado en la transmisión de vídeo y voz a través de una red. Esto es porque no hay tiempo para
enviar de nuevo paquetes perdidos cuando se está escuchando a alguien o viendo un vídeo en tiempo real.
Ya que tanto TCP como UDP circulan por la misma red, en muchos casos ocurre que el aumento del tráfico UDP daña el correcto
funcionamiento de las aplicaciones TCP. Por defecto, TCP pasa a un segundo lugar para dejar a los datos en tiempo real usar la mayor
parte del ancho de banda. El problema es que ambos son importantes para la mayor parte de las aplicaciones, por lo que encontrar el
equilibrio entre ambos es crucial.
Ancho de banda
En conexiones a Internet el ancho de banda es la cantidad de información o de datos que se puede enviar a través de una conexión de
red en un período de tiempo dado. El ancho de banda se indica generalmente en bits por segundo (bps), kilobits por segundo (Kbps), o
megabits por segundo (Mbps).1
Para señales analógicas, el ancho de banda es la longitud, medida en Hz, del rango de frecuencias en el que se concentra la mayor
parte de la potencia de la señal. Puede ser calculado a partir de una señal temporal mediante el análisis de Fourier. También son
llamadas frecuencias efectivas las pertenecientes a este rango.
Figura 1.- El ancho de banda viene determinado por las frecuencias comprendidas entre f 1 y f2.
Así, el ancho de banda de un filtro es la diferencia entre las frecuencias en las que su atenuación al pasar a través de filtro se mantiene
igual o inferior a 3 dB comparada con la frecuencia central de pico (fc) en la Figura 1.
La frecuencia es la magnitud física que mide las veces por unidad de tiempo en que se repite un ciclo de una señal periódica. Una señal
periódica de una sola frecuencia tiene un ancho de banda mínimo. En general, si la señal periódica tiene componentes en varias
frecuencias, su ancho de banda es mayor, y su variación temporal depende de sus componentes frecuenciales.
27
Normalmente las señales generadas en los sistemas electrónicos, ya sean datos informáticos, voz, señales de televisión, etc. son
señales que varían en el tiempo y no son periódicas, pero se pueden caracterizar como la suma de muchas señales periódicas de
diferentes frecuencias.
Uso común
Es común denominar ancho de banda digital a la cantidad de datos que se pueden transmitir en una unidad de tiempo. Por ejemplo, una
línea ADSL de 256 kbps puede, teóricamente, enviar 256000 bits (no bytes) por segundo. Esto es en realidad la tasa de transferencia
máxima permitida por el sistema, que depende del ancho de banda analógico, de la potencia de la señal, de la potencia de ruido y de la
codificación de canal.
Un gráfico de la magnitud de ganancia de banda de un filtro, ilustrando el concepto de un ancho de banda de -3 dB a una ganancia de
0,707. Los ejes de frecuencia en el diagrama pueden ser a escala linear o logarítmica.
Un ejemplo de banda estrecha es la realizada a través de una conexión telefónica, y un ejemplo de banda ancha es la que se realiza
por medio de una conexión DSL, microondas, cable módem o T1. Cada tipo de conexión tiene su propio ancho de banda analógico y su
tasa de transferencia máxima. El ancho de banda y la saturación redil son dos factores que influyen directamente sobre la calidad de los
enlaces.
El rango de frecuencia que deja a un canal pasar satisfactoriamente se expresa en Hz.
Bw=∆f=fcs (frecuencia de corte superior) – fci (frecuencia de corte inferior)
También suele usarse el término ancho de banda de un bus de ordenador para referirse a la velocidad a la que se transfieren los datos
por ese bus (véase Front-side bus), suele expresarse en bytes por segundo (B/s), Megabytes por segundo (MB/s) o Gigabytes por
segundo (GB/s).
Se calcula multiplicando la frecuencia de trabajo del bus, en ciclos por segundo por el número de bytes que se transfieren en cada ciclo.
Por ejemplo, un bus que transmite 64 bits de datos a 266 MHz tendrá un ancho de banda de 2,1 GB/s.
Algunas veces se transmite más de un bit en cada ciclo de reloj, en este caso se multiplicará el número de bits por la cantidad de
transferencias que se realizan en cada ciclo (MT/s).
Comúnmente, el ancho de banda que no es otra cosa que un conjunto de frecuencias consecutivas, es confundido al ser utilizado en
líneas de transmisión digitales, donde es utilizado para indicar régimen binario o caudal que es capaz de soportar la línea.
Banda ancha
Se conoce como banda ancha en telecomunicaciones a la transmisión de datos en la cual se envían simultáneamente varias piezas de
información, con el objeto de incrementar la velocidad de transmisión efectiva. En ingeniería de redes este término se utiliza también
para los métodos en donde dos o más señales comparten un medio de transmisión.
28
Algunas de las variantes de los servicios de línea de abonado digital (del inglés Digital Subscriber Line, DSL) son de banda ancha en el
sentido de que la información se envía sobre un canal y la voz por otro canal, como el canal ATC, pero compartiendo el mismo par de
cables. Los módems analógicos que operan con velocidades mayores a 600 bps también son técnicamente banda ancha, pues
obtienen velocidades de transmisión efectiva mayores usando muchos canales en donde la velocidad de cada canal se limita a 600
baudios. Por ejemplo, un modem de 2400 bps usa cuatro canales de 600 baudios. Este método de transmisión contrasta con la
transmisión en banda base, en donde un tipo de señal usa todo el ancho de banda del medio de transmisión, como por ejemplo
Ethernet 100BASE-T.
Es una tecnología de módems que permite el tráfico de datos se realice a una velocidad extraordinaria a través de una línea telefónica
convencional. Además se puede mantener una conversación por teléfono mientras se está navegando por Internet.
Multiplexación
Las comunicaciones pueden utilizar distintos canales físicos
simultáneamente; es decir multiplexar para tener acceso múltiple. Tales
canales pueden distinguirse uno de otro por estar separados en tiempo
(multiplexación por división de tiempo o TDM), frecuencia de portadora
(multiplexación por división de frecuencia, FDM o multiplexación por
división de longitud de onda, WDM), o por código (multiplexación por
división de código, CDMA). Cada canal que toma parte en la
multiplexación es por definición de banda estrecha (pues no está
utilizando todo el ancho de banda del medio).
Uso confuso
Aunque varias formas de transmisión de baja velocidad como los módems analógicos de más de 600 bps son de banda ancha, esta
denominación se ha asociado más estrechamente con formas transmisión de alta velocidad tales como DSL y T/E-carrier. Por ello la
denominación "banda ancha" también se utiliza para indicar velocidades relativamente altas, mientras que la denominación "banda
estrecha" se utiliza para indicar velocidades relativamente bajas. Hoy en día es bastante común oír que a un método de banda ancha
como un módem de 9600 bits se lo tilde de "banda estrecha", mientras que a un método de banda base como Ethernet 10BASE-T se lo
denomine como de "banda ancha".
La recomendación I.113 de ITU-T, el sector de estandarización de la Unión Internacional de Telecomunicaciones, encuadra dentro de
banda ancha a las técnicas capaces de transmitir más rápido que un acceso primario de RDSI, sea éste a 2 ó 6 Mbps. Sin embargo las
velocidades de 512 kbps o incluso 1024 kbps se comercializan como de "banda ancha", convención que siguen tanto los proveedores
de servicios de Internet como los institutos en sus centros.
29
Descargar