I.- Direccin IP La ip es como un nmero telefnico, atravs de el se ubican y comunican las computadoras conectadas en red (el internet). La ip privada es el nmero ip asignado a la tarjeta de red de tu computadora cuando te conectas a internet y la ip privada es el nmero como todas las computadoras en el mundo del internet realmente te ven. Una analoga con la vida real sera: la ip publica es como tu nombre y la ip privada como tu apodo. Ambas sirven para ubicarte pero de diferentes formas. Cuando tu escribes una direccin web por ejemplo www.yahoo.com las computadoras no entienden ese lenguaje y necesitan un traductor. Ese traductor es el servidor DNS. El servidor lo que hace es convertir esos nombres del mundo real en direcciones ip, o sea, obtiene el "nmero telefnico" de la computadora que estas buscando. Pues cada direccin web que escribes est ubicada fsicamente en diferentes computadoras por todo el mundo. Como mencione arriba, al escribir en tu navegador web una direccin (como www.yahoo.com) tu navegador busca un traductor (servidor dns) a travs del nmero telefnico principal (direccin ip del dns primario). Si este servidor (traductor) est ocupado, no responde, est caido ... tu navegador web busca un traductor alternativo (dns secundario) que le pueda proporcionar cual es el "nmero telefnico" (o sea la direccion ip) de la computadora que contiene esa pgina (www.yahoo.com) que deseas ver. Espero te sirva la informacin Una direccin IP es una etiqueta numrica que identifica, de manera lgica y jerrquica, a un interfaz (elemento de comunicacin/conexin) de un dispositivo (habitualmente una computadora) dentro de una red que utilice el protocolo IP (Internet Protocol), que corresponde al nivel de red del Modelo OSI. Dicho nmero no se ha de confundir con la direccin MAC, que es un identificador de 48 bits para identificar de forma nica la tarjeta de red y no depende del protocolo de conexin utilizado ni de la red. La direccin IP puede cambiar muy a menudo por cambios en la red o porque el dispositivo encargado dentro de la red de asignar las direcciones IP decida asignar otra IP (por ejemplo, con el protocolo DHCP). A esta forma de asignacin de direccin IP se denomina tambin direccin IP dinmica (normalmente abreviado como IP dinmica). Los sitios de Internet que por su naturaleza necesitan estar permanentemente conectados generalmente tienen una direccin IP fija (comnmente, IP fija o IP esttica). Esta no cambia con el tiempo. Los servidores de correo, DNS, FTP pblicos y servidores de pginas web necesariamente deben contar con una direccin IP fija o esttica, ya que de esta forma se permite su localizacin en la red. Las computadoras se conectan entre s mediante sus respectivas direcciones IP. Sin embargo, a los seres humanos nos es ms cmodo utilizar otra notacin ms fcil de recordar, como los nombres de dominio; la traduccin entre unos y otros se resuelve mediante los servidores de nombres de dominio DNS, que a su vez facilita el trabajo en caso de cambio de direccin IP, ya que basta con actualizar la informacin en el servidor DNS y el resto de las personas no se enterarn, ya que seguirn accediendo por el nombre de dominio. 1.1.- Direcciones IPv4 2
Las direcciones IPv4 se expresan por un nmero binario de 32 bits, permitiendo un espacio de direcciones de hasta 4.294.967.296 (2 32 ) direcciones posibles. Las direcciones IP se pueden expresar como nmeros de notacin decimal: se dividen los 32 bits de la direccin en cuatro octetos. El valor decimal de cada octeto est comprendido en el rango de 0 a 255 [el nmero binario de 8 bits ms alto es 11111111 y esos bits, de derecha a izquierda, tienen valores decimales de 1, 2, 4, 8, 16, 32, 64 y 128, lo que suma 255]. En la expresin de direcciones IPv4 en decimal se separa cada octeto por un carcter nico ".". Cada uno de estos octetos puede estar comprendido entre 0 y 255. Ejemplo de representacin de direccin IPv4: 10.128.1.255 En las primeras etapas del desarrollo del Protocolo de Internet, los administradores de Internet interpretaban las direcciones IP en dos partes, los primeros 8 bits para designar la direccin de red y el resto para individualizar la computadora dentro de la red. Este mtodo pronto prob ser inadecuado, cuando se comenzaron a agregar nuevas redes a las ya asignadas. En 1981 el direccionamiento internet fue revisado y se introdujo la arquitectura de clases. (classful network architecture). En esta arquitectura hay tres clases de direcciones IP que una organizacin puede recibir de parte de la Internet Corporation for Assigned Names and Numbers (ICANN): clase A, clase B y clase C. En una red de clase A, se asigna el primer octeto para identificar la red, reservando los tres ltimos octetos (24 bits) para que sean asignados a los hosts, de modo que la cantidad mxima de hosts es 2 24 - 2 (se excluyen la direccin reservada para broadcast (ltimos octetos en 255) y de red (ltimos octetos en 0)), es decir, 16777214 hosts. En una red de clase B, se asignan los dos primeros octetos para identificar la red, reservando los dos octetos finales (16 bits) para que sean asignados a los hosts, de modo que la cantidad mxima de hosts por cada red es 2 16 - 2, o 65534 hosts. En una red de clase C, se asignan los tres primeros octetos para identificar la red, reservando el octeto final (8 bits) para que sea asignado a los hosts, de modo que la cantidad mxima de hosts por cada red es 2 8 - 2, o 254 hosts. Clase Rango N de Redes N de Host Por Red Mscara de Red Broadcast ID A 0.0.0.0 - 127.255.255.255 128 16777214 255.0.0.0 x.255.255.255 B 128.0.0.0 - 191.255.255.255 16384 65534 255.255.0.0 x.x.255.255 C 192.0.0.0 - 223.255.255.255 2097152 254 255.255.255.0 x.x.x.255 (D) 224.0.0.0 - 239.255.255.255 Histrico (E) 240.0.0.0 - 255.255.255.255 Histrico La direccin 0.0.0.0 es reservada por la IANA para identificacin local. La direccin que tiene los bits de host iguales a cero sirve para definir la red en la que se ubica. Se denomina direccin de red. La direccin que tiene los bits correspondientes a host iguales a 255, sirve para enviar paquetes a todos los hosts de la red en la que se ubica. Se denomina direccin de broadcast. 3
Las direcciones 127.x.x.x se reservan para designar la propia mquina. Se denomina direccin de bucle local o loopback. El diseo de redes de clases (classful) sirvi durante la expansin de internet, sin embargo este diseo no era escalable y frente a una gran expansin de las redes en la dcada de los noventa, el sistema de espacio de direcciones de clases fue reemplazado por una arquitectura de redes sin clases Classless Inter-Domain Routing (CIDR) 4 en el ao 1993. CIDR est basada en redes de longitud de mscara de subred variable (variable-length subnet masking VLSM) que permite asignar redes de longitud de prefijo arbitrario. Permitiendo una distribucin de direcciones ms fina y granulada, calculando las direcciones necesarias y "desperdiciando" las mnimas posibles. 1.1.1.- Direcciones privadas Existen ciertas direcciones en cada clase de direccin IP que no estn asignadas y que se denominan direcciones privadas. Las direcciones privadas pueden ser utilizadas por los hosts que usan traduccin de direccin de red (NAT) para conectarse a una red pblica o por los hosts que no se conectan a Internet. En una misma red no pueden existir dos direcciones iguales, pero s se pueden repetir en dos redes privadas que no tengan conexin entre s o que se conecten mediante el protocolo NAT. Las direcciones privadas son: Clase A: 10.0.0.0 a 10.255.255.255 (8 bits red, 24 bits hosts). Clase B: 172.16.0.0 a 172.31.255.255 (12 bits red, 20 bits hosts). 16 redes clase B contiguas, uso en universidades y grandes compaas. Clase C: 192.168.0.0 a 192.168.255.255 (16 bits red, 16 bits hosts). 256 redes clase C continuas, uso de compaas medias y pequeas adems de pequeos proveedores de internet (ISP). Muchas aplicaciones requieren conectividad dentro de una sola red, y no necesitan conectividad externa. En las redes de gran tamao a menudo se usa TCP/IP. Por ejemplo, los bancos pueden utilizar TCP/IP para conectar los cajeros automticos que no se conectan a la red pblica, de manera que las direcciones privadas son ideales para estas circunstancias. Las direcciones privadas tambin se pueden utilizar en una red en la que no hay suficientes direcciones pblicas disponibles. Las direcciones privadas se pueden utilizar junto con un servidor de traduccin de direcciones de red (NAT) para suministrar conectividad a todos los hosts de una red que tiene relativamente pocas direcciones pblicas disponibles. Segn lo acordado, cualquier trfico que posea una direccin destino dentro de uno de los intervalos de direcciones privadas no se enrutar a travs de Internet. 1.1.2.- Mscara de subred La mscara permite distinguir los bits que identifican la red y los que identifican el host de una direccin IP. Dada la direccin de clase A 10.2.1.2 sabemos que pertenece a la red 10.0.0.0 y el host al que se refiere es el 2.1.2 dentro de la misma. La mscara se forma poniendo a 1 los bits que identifican la red y a 0 los bits que identifican el host. De esta forma una direccin de clase A tendr como mscara 255.0.0.0, una de clase B 255.255.0.0 y una de clase C 255.255.255.0. Los dispositivos de red realizan un AND entre la direccin IP y la mscara para obtener la direccin de red a la que pertenece el host identificado por la 4
direccin IP dada. Por ejemplo un router necesita saber cul es la red a la que pertenece la direccin IP del datagrama destino para poder consultar la tabla de encaminamiento y poder enviar el datagrama por la interfaz de salida. Para esto se necesita tener cables directos. La mscara tambin puede ser representada de la siguiente forma 10.2.1.2/8 donde el /8 indica que los 8 bits ms significativos de mscara estn destinados a redes, es decir /8 = 255.0.0.0. Anlogamente (/16 = 255.255.0.0) y (/24 = 255.255.255.0). 1.1.3.- Creacin de subredes El espacio de direcciones de una red puede ser subdividido a su vez creando subredes autnomas separadas. Un ejemplo de uso es cuando necesitamos agrupar todos los empleados pertenecientes a un departamento de una empresa. En este caso crearamos una subred que englobara las direcciones IP de stos. Para conseguirlo hay que reservar bits del campo host para identificar la subred estableciendo a uno los bits de red-subred en la mscara. Por ejemplo la direccin 172.16.1.1 con mscara 255.255.255.0 nos indica que los dos primeros octetos identifican la red (por ser una direccin de clase B), el tercer octeto identifica la subred (a 1 los bits en la mscara) y el cuarto identifica el host (a 0 los bits correspondientes dentro de la mscara). Hay dos direcciones de cada subred que quedan reservadas: aquella que identifica la subred (campo host a 0) y la direccin para realizar broadcast en la subred (todos los bits del campo host en 1). 1.1.4.- IP dinmica Una direccin IP dinmica es una IP asignada mediante un servidor DHCP (Dynamic Host Configuration Protocol) al usuario. La IP que se obtiene tiene una duracin mxima determinada. El servidor DHCP provee parmetros de configuracin especficos para cada cliente que desee participar en la red IP. Entre estos parmetros se encuentra la direccin IP del cliente. DHCP apareci como protocolo estndar en octubre de 1993. El estndar RFC 2131 especifica la ltima definicin de DHCP (marzo de 1997). DHCP sustituye al protocolo BOOTP, que es ms antiguo. Debido a la compatibilidad retroactiva de DHCP, muy pocas redes continan usando BOOTP puro. Las IP dinmicas son las que actualmente ofrecen la mayora de operadores. El servidor del servicio DHCP puede ser configurado para que renueve las direcciones asignadas cada tiempo determinado. Ventajas Reduce los costos de operacin a los proveedores de servicios de Internet (ISP). Reduce la cantidad de IP asignadas (de forma fija) inactivas. Desventajas Obliga a depender de servicios que redirigen un host a una IP. Asignacin de direcciones IP Dependiendo de la implementacin concreta, el servidor DHCP tiene tres mtodos para asignar las direcciones IP: 5
manualmente, cuando el servidor tiene a su disposicin una tabla que empareja direcciones MAC con direcciones IP, creada manualmente por el administrador de la red. Slo clientes con una direccin MAC vlida recibirn una direccin IP del servidor. automticamente, donde el servidor DHCP asigna por un tiempo pre-establecido ya por el administrador una direccin IP libre, tomada de un rango prefijado tambin por el administrador, a cualquier cliente que solicite una. dinmicamente, el nico mtodo que permite la re-utilizacin de direcciones IP. El administrador de la red asigna un rango de direcciones IP para el DHCP y cada ordenador cliente de la LAN tiene su software de comunicacin TCP/IP configurado para solicitar una direccin IP del servidor DHCP cuando su tarjeta de interfaz de red se inicie. El proceso es transparente para el usuario y tiene un periodo de validez limitado. 1.1.5.-IP fija Una direccin IP fija es una direccin IP asignada por el usuario de manera manual (Que en algunos casos el ISP o servidor de la red no lo permite), o por el servidor de la red (ISP en el caso de internet, router o switch en caso de LAN) con base en la Direccin MAC del cliente. Mucha gente confunde IP Fija con IP Pblica e IP Dinmica con IP Privada. Una IP puede ser Privada ya sea dinmica o fija como puede ser IP Pblica Dinmica o Fija. Una IP pblica se utiliza generalmente para montar servidores en internet y necesariamente se desea que la IP no cambie por eso siempre la IP Pblica se la configura de manera Fija y no Dinmica, aunque si se podra. En el caso de la IP Privada generalmente es dinmica asignada por un servidor DHCP, pero en algunos casos se configura IP Privada Fija para poder controlar el acceso a internet o a la red local, otorgando ciertos privilegios dependiendo del nmero de IP que tenemos, si esta cambiara (fuera dinmica) sera ms complicado controlar estos privilegios (pero no imposible). 1.2.- Direcciones IPv6 La funcin de la direccin IPv6 es exactamente la misma que la de su predecesor IPv4, pero dentro del protocolo IPv6. Est compuesta por 128 bits y se expresa en una notacin hexadecimal de 32 dgitos. IPv6 permite actualmente que cada persona en la Tierra tenga asignados varios millones de IPs, ya que puede implementarse con 2 128 (3.410 38 hosts direccionables). La ventaja con respecto a la direccin IPv4 es obvia en cuanto a su capacidad de direccionamiento. Su representacin suele ser hexadecimal y para la separacin de cada par de octetos se emplea el smbolo ":". Un bloque abarca desde 0000 hasta FFFF. Algunas reglas de notacin acerca de la representacin de direcciones IPv6 son: Los ceros iniciales se pueden obviar. Ejemplo: 2001:0123:0004:00ab:0cde:3403:0001:0063 -> 2001:123:4:ab:cde:3403:1:63 6
Los bloques contiguos de ceros se pueden comprimir empleando "::". Esta operacin slo se puede hacer una vez. Ejemplo: 2001:0:0:0:0:0:0:4 -> 2001::4. Ejemplo no vlido: 2001:0:0:0:2:0:0:1 -> 2001::2::1 (debera ser 2001::2:0:0:1 o 2001:0:0:0:2::1).
II.- MODELO TCP/IP
Encapsulacin de una aplicacin de datos a travs da capas del modelo TCP/IP. El modelo TCP/IP es un modelo de descripcin de protocolos de red desarrollado en los aos 70 por Vinton Cerf y Robert E. Kahn. Fue implantado en la red ARPANET, la primera red de rea amplia, desarrollada por encargo de DARPA, una agencia del Departamento de Defensa de los Estados Unidos, y predecesora de la actual red 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 guas generales de diseo e implementacin de protocolos de red especficos para permitir que un equipo pueda comunicarse en una red. TCP/IP provee conectividad de extremo a extremo especificando cmo los datos deberan ser formateados, direccionados, transmitidos, enrutados y recibidos por el destinatario. Existen protocolos para los diferentes tipos de servicios de comunicacin entre equipos. TCP/IP tiene cuatro capas de abstraccin segn 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 equipos, 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 ms sencillo agrupar funciones relacionadas e implementar el software de comunicaciones modular. 7
Las capas estn jerarquizadas. Cada capa se construye sobre su predecesora. El nmero 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 misin de cada capa es proveer servicios a las capas superiores hacindoles 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 aplicacin: Aplicacin, asimilable a las capas 5 (sesin), 6 (presentacin) y 7 (aplicacin) del modelo OSI. La capa de aplicacin deba incluir los detalles de las capas de sesin y presentacin OSI. Crearon una capa de aplicacin que maneja aspectos de representacin, codificacin y control de dilogo. Capa 3 o capa de transporte: Transporte, asimilable a la capa 4 (transporte) del modelo OSI. Capa 2 o capa de internet: Internet, asimilable a la capa 3 (red) del modelo OSI. Capa 1 o capa de acceso al medio: Acceso al Medio, asimilable a la capa 2 (enlace de datos) y a la capa 1 (fsica) del modelo OSI. III.- MSCARA DE RED La mscara de red o redes es una combinacin de bits que sirve para delimitar el mbito de una red de computadoras. Su funcin es indicar a los dispositivos qu parte de la direccin IP es el nmero de la red, incluyendo la subred, y qu parte es la correspondiente al host. 3.1.- Funcionamiento Bsicamente, mediante la mscara 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 direccin IP 192.168.1.1 y mscara de red 255.255.255.0, entiende que todo lo que se enva a una direccin IP que empiece por 192.168.1 va para la red local y todo lo que va a otras direcciones IP, para afuera (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 mscara de red sera: 255.0.0.0. Tambin se puede escribir como: 10.0.0.0/8 Como una mscara consiste en una seguidilla de unos consecutivos, y luego ceros (si los hay), los nmeros permitidos para representar la secuencia son los siguientes: 0, 128, 192, 224, 240, 248, 252, 254 y 255. La representacin utilizada se define colocando en 1 todos los bits de red (mscara 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 representacin (10.0.0.0/8) el 8 sera la cantidad de bits puestos a 1 que contiene la mscara en binario, comenzando desde la izquierda. Para el ejemplo dado (/8), sera 11111111.00000000.00000000.00000000 y en su representacin en decimal sera 255.0.0.0. 8
Una mscara de red representada en binario son 4 octetos de bits (11111111.11111111.11111111.11111111). y los demas bits no se toman en cuenta La mascara normalmente es escrita despus de un / Ejemplo: 192.168.1.0/24 en los calculos matemticos llevados a teoria 3.2.-EJEMPLO 3.3.-TABLA DE MSCARAS DE RED Binario Decimal CIDR N HOSTs Clase 11111111.11111111.11111111.11111111 255.255.255.255 /32 1 11111111.11111111.11111111.11111110 255.255.255.254 /31 2 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 C 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 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 A 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 9
10000000.00000000.00000000.00000000 128.0.0.0 /1 2147483648 00000000.00000000.00000000.00000000 0. /0 4294967296 Como se ve en el ejemplo anterior, la fila binaria de la mscara de subred determina que todas las direcciones IP de esa subred incluido el Gateway deben ser iguales hasta la lnea y distintas despus de la linea. La direccin IP completa se calcula realizando un AND lgico slo con aquellos bits que indique la mscara de subred (MS). El numero total de direcciones IP que tiene esa subred es inversamente proporcional al numero de bits encendidos en la mscara de red. Esa subred suele llamarse LAN La puerta de enlace puede ser cualquier direccin 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 mscara de red (si el paquete va destinado a algn ordenador cuya direccin IP se encuentre fuera del rango establecido por la mscara de red, utilizarn 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 (ruteador) con puerta de enlace: La puerta de enlace es en definitiva la direccin IP del router. Direccin que ha de estar dentro de la subred. La direccin IP del router se programa en el mismo router. La mayora de los router vienen con una direccin de fbrica, modificable a travs de un puerto serie o por red mediante http, telnet u otros protocolos. Esta direccin 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 pequea de 16 ordenadores y otra en otra subred ms grande cuyo gateway o puerta de enlace nos da acceso a Internet. Slo se ven entre s 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 comunicacin entre ordenadores de distintas subredes. Los enrutadores adems 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 direccin pblica o externa, la cual no es modificable sino asignada por la empresa suministradora (ISP) de ADSL/RDSI. En resumen, la mscara lo que determina es qu paquetes que circulan por la LAN se aceptan por algn ordenador de la LAN o y qu paquetes han de salir fuera de la LAN (por el router). De esta manera, si se escribe en el navegador una direccin IP: 182.23.112.9, el equipo enviar la peticin web, ftp, etc) directamente a la direccin especificada por la puerta de enlace (es decir, el router) ningn equipo de la subred (LAN) atender estos paquetes por no estar dentro de su subred (LAN). En el ejemplo anterior, la mscara da 6 bits (los que quedan a 0, es decir, 64 posibilidades, no de 1 a 64 sino 64 posibilidades) para programar las direcciones IP y la puerta de enlace de la LAN, es decir, el ltimo byte para la direccin IP y la puerta de enlace, en nuestro ejemplo debera tomarse entre 10000000 y 10111111, es decir, entre 128 y 191. Lo normal es darle a la puerta de enlace (router) la direccin ms 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 segn la norma explicada, aceptando todos los 10
paquetes para poder hacer un anlisis del trfico que circula por la subred y puede ser escuchado por el PC. Las mscaras 255.0.0.0 (clase A), 255.255.0.0 (clase B) y 255.255.255.0 (clase C) suelen ser suficientes para la mayora de las redes privadas. Sin embargo, las redes ms pequeas que podemos formar con estas mscaras son de 254 hosts y para el caso de direcciones pblicas, su contratacin tiene un coste alto. Por esta razn suele ser habitual dividir las redes pblicas de clase C en subredes ms pequeas. A continuacin se muestran las posibles divisiones de una red de clase C. La divisin de una red en subredes se conoce como subnetting. 3.4.- Clases de mscaras en subredes Clase Bits IP Subred IP Broadcast Mscara 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 IV.- PUERTA DE ENLACE PREDETERMINADA Una puerta de enlace predeterminada es un dispositivo o una computadora que sirve como enlace entre dos redes informticas, es decir, es el dispositivo que conecta y dirige el trfico de datos entre dos redes o ms. Generalmente en las casas u oficinas, ese dispositivo es el router y Cable-Modem o DSL-Modem que conecta la red local de la casa (LAN) con Internet (WAN). En las empresas, muchas veces es una computadora la que dirige el trfico de datos entre la red local y la red exterior, y, generalmente, tambin acta como servidor proxy y firewall. Este dispositivo, al conectar dos redes de IP, poseer: una direccin IP privada: que servir para identificarse dentro de la red local, una direccin IP pblica: que servir para identificarse dentro de la red exterior. Ejemplo Una red compuesta por cinco dispositivos (generalmente computadoras, pero pueden ser impresoras, etc.) y un enrutador:
Direccin de los dispositivos: 192.168.4.3 (computadora 1) 192.168.4.4 (computadora 2) 192.168.4.5 (computadora 3) 192.168.4.6 (computadora 4) 11
192.168.4.7 (computadora 5) 192.168.4.8 (computadora 6) Enrutador: 192.168.4.0 (direccin IP privada LAN) - para comunicarse con la red local. direccin IP pblica (WAN, Internet) - para comunicarse con otra red - generalmente asignada automticamente por DHCP, aunque puede ser fijada por el proveedor de ISP. Macara de subred: 255.255.255.0 Se pueden usar las direcciones IP desde 192.168.4.1 hasta 192.168.4.254. Las direcciones 192.168.4.0 y 192.168.4.255 estn reservadas para usos especiales(direccin de red y direccin de broadcast de la red) V.- DOMAIN NAME SYSTEM Domain Name System (DNS) Familia Familia de protocolos de Internet Funcin Resolucin de nombres de dominio Puertos 53/UDP, 53/TCP Ubicacin en la pila de protocolos Aplicacin DNS Transporte TCP o UDP Red IP (IPv4, IPv6)
Estndares RFC 1034 (1987) RFC 1035 (1987) Domain Name System o DNS (en espaol: sistema de nombres de dominio) es un sistema de nomenclatura jerrquica para computadoras, servicios o cualquier recurso conectado a Internet o a una red privada. Este sistema asocia informacin variada con nombres de dominios asignado a cada uno de los participantes. Su funcin ms importante, es traducir (resolver) nombres inteligibles para las personas en identificadores binarios asociados con los equipos conectados a la red, esto con el propsito de poder localizar y direccionar estos equipos mundialmente. El servidor DNS utiliza una base de datos distribuida y jerrquica que almacena informacin asociada a nombres de dominio en redes como Internet. Aunque como base de datos el DNS es capaz de asociar diferentes tipos de informacin a cada nombre, los usos ms comunes son la asignacin de nombres de dominio a direcciones IP y la localizacin de los servidores de correo electrnico de cada dominio. 12
La asignacin de nombres a direcciones IP es ciertamente la funcin ms conocida de los protocolos DNS. Por ejemplo, si la direccin IP del sitio FTP de prox.mx es 200.64.128.4, la mayora de la gente llega a este equipo especificando ftp.prox.mx y no la direccin IP. Adems de ser ms fcil de recordar, el nombre es ms fiable. La direccin numrica podra cambiar por muchas razones, sin que tenga que cambiar el nombre. Inicialmente, el DNS naci de la necesidad de recordar fcilmente los nombres de todos los servidores conectados a Internet. En un inicio, SRI (ahora SRI International) alojaba un archivo llamado HOSTS que contena todos los nombres de dominio conocidos. El crecimiento explosivo de la red caus que el sistema de nombres centralizado en el archivo hosts no resultara prctico y en 1983, Paul V. Mockapetris public los RFC 882 y RFC 883 definiendo lo que hoy en da ha evolucionado hacia el DNS moderno. (Estos RFCs han quedado obsoletos por la publicacin en 1987 de los RFCs 1034 y RFC 1035). 5.1.-Componentes Para la operacin prctica del sistema DNS se utilizan tres componentes principales: Los Clientes fase 1: Un programa cliente DNS que se ejecuta en la computadora del usuario y que genera peticiones DNS de resolucin de nombres a un servidor DNS (Por ejemplo: Qu direccin IP corresponde a nombre.dominio?); Los Servidores DNS: Que contestan las peticiones de los clientes. Los servidores recursivos tienen la capacidad de reenviar la peticin a otro servidor si no disponen de la direccin solicitada. Y las Zonas de autoridad, porciones del espacio de nombres raros de dominio que almacenan los datos. Cada zona de autoridad abarca al menos un dominio y posiblemente sus subdominios, si estos ltimos no son delegados a otras zonas de autoridad. 5.2.- Entendiendo las partes de un nombre de dominio Un nombre de dominio usualmente consiste en dos o ms partes (tcnicamente etiquetas), separadas por puntos cuando se las escribe en forma de texto. Por ejemplo, www.example.com o www.wikipedia.es A la etiqueta ubicada ms a la derecha se le llama dominio de nivel superior (en ingls top level domain). Como org en www.ejemplo.org o es en www.wikipedia.es Cada etiqueta a la izquierda especifica una subdivisin o subdominio. Ntese que "subdominio" expresa dependencia relativa, no dependencia absoluta. En teora, esta subdivisin puede tener hasta 127 niveles, y cada etiqueta puede contener hasta 63 caracteres, pero restringidos a que la longitud total del nombre del dominio no exceda los 255 caracteres, aunque en la prctica los dominios son casi siempre mucho ms cortos. Finalmente, la parte ms a la izquierda del dominio suele expresar el nombre de la mquina (en ingls hostname). El resto del nombre de dominio simplemente especifica la manera de crear una ruta lgica a la informacin requerida. Por ejemplo, el dominio es.wikipedia.org tendra el nombre de la mquina "es", aunque en este caso no se refiere a una mquina fsica en particular. El DNS consiste en un conjunto jerrquico de servidores DNS. Cada dominio o subdominio tiene una o ms zonas de autoridad que publican la informacin acerca del dominio y los nombres de servicios de cualquier 13
dominio incluido. La jerarqua de las zonas de autoridad coincide con la jerarqua de los dominios. Al inicio de esa jerarqua se encuentra los servidores raz: los servidores que responden cuando se busca resolver un dominio de primer y segundo nivel. 5.3.- DNS en el mundo real Los usuarios generalmente no se comunican directamente con el servidor DNS: la resolucin de nombres se hace de forma transparente por las aplicaciones del cliente (por ejemplo, navegadores, clientes de correo y otras aplicaciones que usan Internet). Al realizar una peticin que requiere una bsqueda de DNS, la peticin se enva al servidor DNS local del sistema operativo. El sistema operativo, antes de establecer alguna comunicacin, comprueba si la respuesta se encuentra en la memoria cach. En el caso de que no se encuentre, la peticin se enviar a uno o ms servidores DNS. La mayora de usuarios domsticos utilizan como servidor DNS el proporcionado por el proveedor de servicios de Internet. La direccin de estos servidores puede ser configurada de forma manual o automtica mediante DHCP. En otros casos, los administradores de red tienen configurados sus propios servidores DNS.
En cualquier caso, los servidores DNS que reciben la peticin, buscan en primer lugar si disponen de la respuesta en la memoria cach. Si es as, sirven la respuesta; en caso contrario, iniciaran la bsqueda de manera recursiva. Una vez encontrada la respuesta, el servidor DNS guardar el resultado en su memoria cach para futuros usos y devuelve el resultado. 5.4.- Jerarqua DNS
El espacio de nombres de dominio tiene una estructura arborescente. Las hojas y los nodos del rbol se utilizan como etiquetas de los medios. Un nombre de dominio completo de un objeto consiste en la concatenacin de todas las etiquetas de un camino. Las etiquetas son cadenas alfanumricas (con '-' como nico smbolo permitido), deben contar con al menos un carcter y un mximo de 63 caracteres de longitud, y deber comenzar con una letra (y no con '-') (ver la RFC 1035, seccin "2.3.1. Preferencia 14
nombre de la sintaxis "). Las etiquetas individuales estn separadas por puntos. Un nombre de dominio termina con un punto (aunque este ltimo punto generalmente se omite, ya que es puramente formal). Un FQDN correcto (tambin llamado Fully Qualified Domain Name), es por ejemplo este: www.example.com. (Incluyendo el punto al final). Un nombre de dominio debe incluir todos los puntos y tiene una longitud mxima de 255 caracteres. Un nombre de dominio se escribe siempre de derecha a izquierda. El punto en el extremo derecho de un nombre de dominio separa la etiqueta de la raz de la jerarqua (en ingls, root). Este primer nivel es tambin conocido como dominio de nivel superior (TLD - Top Level Domain). Los objetos de un dominio DNS (por ejemplo, el nombre del equipo) se registran en un archivo de zona, ubicado en uno o ms servidores de nombres. Tipos de servidores DNS Primarios o maestros: Guardan los datos de un espacio de nombres en sus ficheros Secundarios o esclavos: Obtienen los datos de los servidores primarios a travs de una transferencia de zona. Locales o cach: Funcionan con el mismo software, pero no contienen la base de datos para la resolucin de nombres. Cuando se les realiza una consulta, estos a su vez consultan a los servidores DNS correspondientes, almacenando la respuesta en su base de datos para agilizar la repeticin de estas peticiones en el futuro continuo o libre. 5.5.- Tipos de resolucin de nombres de dominio Existen dos tipos de consultas que un cliente puede hacer a un servidor DNS, la iterativa y la recursiva. Resolucin iterativa Las resoluciones iterativas consisten en la respuesta completa que el servidor de nombres pueda dar. El servidor de nombres consulta sus datos locales (incluyendo su cach) buscando los datos solicitados. El servidor encargado de hacer la resolucin realiza iterativamente preguntas a los diferentes DNS de la jerarqua asociada al nombre que se desea resolver, hasta descender en ella hasta la mquina que contiene la zona autoritativa para el nombre que se desea resolver. Resolucin recursiva En las resoluciones recursivas, el servidor no tiene la informacin en sus datos locales, por lo que busca y se pone en contacto con un servidor DNS raz, y en caso de ser necesario repite el mismo proceso bsico (consultar a un servidor remoto y seguir a la siguiente referencia) hasta que obtiene la mejor respuesta a la pregunta. Cuando existe ms de un servidor autoritario para una zona, Bind utiliza el menor valor en la mtrica RTT (round-trip time) para seleccionar el servidor. El RTT es una medida para determinar cunto tarda un servidor en responder una consulta. 15
El proceso de resolucin normal se da de la siguiente manera: 1. El servidor A recibe una consulta recursiva desde el cliente DNS. 2. El servidor A enva una consulta recursiva a B. 3. El servidor B refiere a A otro servidor de nombres, incluyendo a C. 4. El servidor A enva una consulta recursiva a C. 5. El servidor C refiere a A otro servidor de nombres, incluyendo a D. 6. El servidor A enva una consulta recursiva a D. 7. El servidor D responde. 8. El servidor A regresa la respuesta al resolver. 9. El resolver entrega la resolucin al programa que solicit la informacin. 5.6.-Tipos de registros DNS A = Address (Direccin) Este registro se usa para traducir nombres de servidores de alojamiento a direcciones IPv4. AAAA = Address (Direccin) Este registro se usa en IPv6 para traducir nombres de hosts a direcciones IPv6. CNAME = Canonical Name (Nombre Cannico) Se usa para crear nombres de servidores de alojamiento adicionales, o alias, para los servidores de alojamiento de un dominio. Es usado cuando se estn corriendo mltiples servicios (como ftp y servidor web) en un servidor con una sola direccin ip. Cada servicio tiene su propia entrada de DNS (como ftp.ejemplo.com. y www.ejemplo.com.). esto tambin es usado cuando corres mltiples servidores http, con diferente nombres, sobre el mismo host. Se escribe primero el alias y luego el nombre real. Ej. Ejemplo1 IN CNAME ejemplo2 NS = Name Server (Servidor de Nombres) Define la asociacin que existe entre un nombre de dominio y los servidores de nombres que almacenan la informacin de dicho dominio. Cada dominio se puede asociar a una cantidad cualquiera de servidores de nombres. MX (registro) = Mail Exchange (Registro de Intercambio de Correo) Asocia un nombre de dominio a una lista de servidores de intercambio de correo para ese dominio. Tiene un balanceo de carga y prioridad para el uso de uno o ms servicios de correo. PTR = Pointer (Indicador) Tambin conocido como 'registro inverso', funciona a la inversa del registro A, traduciendo IPs en nombres de dominio. Se usa en el archivo de configuracin del Dns reversiva. SOA = Start of authority (Autoridad de la zona) Proporciona informacin sobre el servidor DNS primario de la zona. HINFO = Host INFOrmation (Informacin del sistema informtico) Descripcin del host, permite que la gente conozca el tipo de mquina y sistema operativo al que corresponde un dominio. TXT = TeXT - ( Informacin textual) Permite a los dominios identificarse de modos arbitrarios. LOC = LOCalizacin - Permite indicar las coordenadas del dominio. WKS - Generalizacin del registro MX para indicar los servicios que ofrece el dominio. Obsoleto en favor de SRV. 16
SRV = SeRVicios - Permite indicar los servicios que ofrece el dominio. RFC 2782. Excepto Mx y Ns. Hay que incorporar el nombre del servicio, protocolo, dominio completo, prioridad del servicio, peso, puerto y el equipo completo. Esta es la sintaxis correspondiente: Servicio.Protocolo.Dominio-completo IN SRV Prioridad.Peso.Puerto.Equipo-Completo SPF = Sender Policy Framework - Ayuda a combatir el Spam. En este registro se especifica cual o cuales hosts estn autorizados a enviar correo desde el dominio dado. El servidor que recibe, consulta el SPF para comparar la IP desde la cual le llega con los datos de este registro. ANY = Toda la informacin de todos los tipos que exista.
Transmission Control Protocol Para otros usos de este trmino, vase TCP. Transmission Control Protocol (TCP) Familia Familia de protocolos de Internet Funcin Transporte confiable y bidireccional de datos. Ubicacin en la pila de protocolos Aplicacin FTP, HTTP, SNMP, DNS, ... Transporte TCP Red IP Enlace Ethernet, Token Ring, FDDI, ...
Estndares RFC 793 (1981) RFC 1323 (1992) Transmission Control Protocol (en espaol 'Protocolo de Control de Transmisin') o TCP, es uno de los protocolos fundamentales en Internet. Fue creado entre los aos 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 s a travs de las cuales puede enviarse un flujo de datos. El protocolo garantiza que los datos sern entregados 17
en su destino sin errores y en el mismo orden en que se transmitieron. Tambin proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma mquina, a travs del concepto de puerto. TCP da soporte a muchas de las aplicaciones ms populares de Internet (navegadores, intercambio de ficheros, clientes FTP, etc.) y protocolos de aplicacin HTTP, SMTP, SSH y FTP. ndice 1 Informacin tcnica o 1.1 Funciones de TCP o 1.2 Formato de los segmentos TCP 2 Funcionamiento del protocolo en detalle o 2.1 Establecimiento de la conexin (negociacin en tres pasos) o 2.2 Transferencia de datos o 2.3 Tamao de ventana TCP o 2.4 Escalado de ventana o 2.5 Fin de la conexin 3 Puertos TCP 4 Desarrollo de TCP 5 Comparativa entre UDP y TCP 6 Implementaciones ilusa 7 Bibliotecas de sockets TCP 8 Vase tambin 9 Enlaces externos Informacin tcnica TCP es un protocolo de comunicacin orientado a conexin fiable del nivel de transporte, actualmente documentado por IETF en el RFC 793. Es un protocolo de capa 4 segn 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 aplicacin. Habitualmente, las aplicaciones necesitan que la comunicacin sea fiable y, dado que la capa IP aporta un servicio de datagramas no fiable (sin confirmacin), TCP aade las funciones necesarias para prestar un servicio que permita que la comunicacin entre dos sistemas se efecte libre de errores, sin prdidas y con seguridad. 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: Segmento TCP
Funcionamiento del protocolo en detalle Las conexiones TCP se componen de tres etapas: establecimiento de conexin, transferencia de datos y fin de la conexin. Para establecer la conexin se usa el procedimiento llamado negociacin en tres pasos (3-way handshake). Para la desconexin se usa una negociacin en cuatro pasos (4-way handshake). Durante el establecimiento de la conexin, se configuran algunos parmetros tales como el nmero de secuencia con el fin de asegurar la entrega ordenada de los datos y la robustez de la comunicacin. Establecimiento de la conexin (negociacin en tres pasos) 18
Negociacin en tres pasos o Three-way handshake Aunque es posible que un par de entidades finales comiencen una conexin entre ellas simultneamente, normalmente una de ellas abre un socket en un determinado puerto TCP y se queda a la escucha de nuevas conexiones. Es comn referirse a esto como apertura pasiva, y determina el lado servidor de una conexin.El lado cliente de una conexin realiza una apertura activa de un puerto enviando un paquete SYN inicial al servidor como parte de la negociacin en tres pasos. En el lado del servidor (este receptor tambin puede ser una PC o alguna estacin terminal) se comprueba si el puerto est abierto, es decir, si existe algn proceso escuchando en ese puerto, pues se debe verificar que el dispositivo de destino tenga este servicio activo y est aceptando peticiones en el nmero de puerto que el cliente intenta usar para la sesin. En caso de no estarlo, se enva al cliente un paquete de respuesta con el bit RST activado, lo que significa el rechazo del intento de conexin. En caso de que s se encuentre abierto el puerto, el lado servidor respondera a la peticin SYN vlida con un paquete SYN/ACK. Finalmente, el cliente debera responderle al servidor con un ACK, completando as la negociacin en tres pasos (SYN, SYN/ACK y ACK) y la fase de establecimiento de conexin. Es interesante notar que existe un nmero 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 estn incluidos el uso del nmero de secuencia para ordenar los segmentos TCP recibidos y detectar paquetes duplicados, checksums para detectar errores, y asentimientos y temporizadores para detectar prdidas y retrasos. Durante el establecimiento de conexin TCP, los nmeros iniciales de secuencia son intercambiados entre las dos entidades TCP. Estos nmeros 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 aplicacin. Siempre hay un par de nmeros de secuencia incluidos en todo segmento TCP, referidos al nmero de secuencia y al nmero de asentimiento. Un emisor TCP se refiere a su propio nmero de secuencia cuando habla de nmero de secuencia, mientras que con el nmero de asentimiento se refiere al nmero 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 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 travs del uso de nmeros de secuencia y asentimiento, TCP puede pasar los segmentos recibidos en el orden correcto dentro del flujo de bytes a la aplicacin receptora. Los nmeros de secuencia son de 32 bits (sin signo), que vuelve a cero tras el siguiente byte despus del 2 32 -1. Una de las claves para mantener la robustez y la seguridad de las conexiones TCP es la seleccin del nmero 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 transmisin del segmento. Se usa la suma en complemento a uno porque el acarreo final de ese mtodo puede ser calculado en cualquier mltiplo de su tamao (16-bit, 32-bit, 64-bit...) y el resultado, una vez plegado, ser el mismo. El receptor TCP recalcula el checksum 19
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 clculos, salvando en algn 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 tambin cubre los 96 bit de la cabecera que contiene la direccin origen, la direccin destino, el protocolo y el tamao TCP. Esto proporciona proteccin contra paquetes mal dirigidos por errores en las direcciones. El checksum de TCP es una comprobacin bastante dbil. En niveles de enlace con una alta probabilidad de error de bit quiz requiera una capacidad adicional de correccin/deteccin de errores de enlace. Si TCP fuese rediseado hoy, muy probablemente tendra un cdigo de redundancia cclica (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 trfico 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 mayora 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 congestin de la red (la idea es enviar tan rpido como el receptor pueda recibir). Estos mecanismos incluyen el uso de ventana deslizante, que controla que el transmisor mande informacin dentro de los lmites del buffer del receptor, y algoritmos de control de flujo, tales como el algoritmo de Evitacin de la Congestin (congestion avoidance), el de comienzo lento (Slow-start), el de retransmisin rpida, el de recuperacin rpida (Fast Recovery), y otros. Tamao de ventana TCP El tamao de la ventana de recepcin TCP es la cantidad de datos recibidos (en bytes) que pueden ser metidos en el buffer de recepcin durante la conexin. La entidad emisora puede enviar una cantidad determinada de datos pero antes debe esperar un asentimiento con la actualizacin del tamao de ventana por parte del receptor. Un ejemplo sera el siguiente: un receptor comienza con un tamao de ventana x y recibe y bytes, entonces su tamao de ventana ser (x - y) y el transmisor slo podr mandar paquetes con un tamao mximo de datos de (x - y) bytes. Los siguientes paquetes recibidos seguirn restando tamao a la ventana de recepcin. Esta situacin seguir as hasta que la aplicacin receptora recoja los datos del buffer de recepcin. Escalado de ventana Para una mayor eficiencia en redes de gran ancho de banda, debe ser usado un tamao de ventana mayor. El campo TCP de tamao de ventana controla el movimiento de datos y est limitado a 16 bits, es decir, a un tamao 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 opcin usada para incrementar el mximo tamao de ventana desde 65.535 bytes, a 1 Gigabyte. La opcin de escala de ventana TCP es usada solo durante la negociacin en tres pasos que constituye el comienzo de la conexin. El valor de la escala representa el nmero de bits desplazados a la izquierda de los 16 bits que forman el campo del tamao de ventana. El valor de la escala puede ir desde 0 (sin desplazamiento) hasta 14. Hay que recordar que un nmero binario desplazado un bit a la izquierda es como multiplicarlo en base decimal por 2. Fin de la conexin 20
Cierre de una conexin segn el estndar. La fase de finalizacin de la conexin usa una negociacin en cuatro pasos (four-way handshake), terminando la conexin desde cada lado independientemente. Cuando uno de los dos extremos de la conexin desea parar su "mitad" de conexin transmite un paquete FIN, que el otro interlocutor asentir con un ACK. Por tanto, una desconexin tpica requiere un par de segmentos FIN y ACK desde cada lado de la conexin. Una conexin 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 conexin no puede enviar ms datos pero la otra parte si podr. Puertos TCP TCP usa el concepto de nmero de puerto para identificar a las aplicaciones emisoras y receptoras. Cada lado de la conexin TCP tiene asociado un nmero de puerto (de 16 bits sin signo, con lo que existen 65536 puertos posibles) asignado por la aplicacin emisora o receptora. Los puertos son clasificados en tres categoras: bien conocidos, registrados y dinmicos/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 tambin pueden representar servicios que hayan sido registrados por un tercero (rango de puertos registrados: 1024 al 49151). Los puertos dinmicos/privados tambin pueden ser usados por las aplicaciones de usuario, pero este caso es menos comn. Los puertos dinmicos/privados no tienen significado fuera de la conexin TCP en la que fueron usados (rango de puertos dinmicos/privados: 49152 al 65535, recordemos que el rango total de 2 elevado a la potencia 16, cubre 65536 nmeros, 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 aos, ha conservado las operaciones ms bsicas sin cambios desde el RFC 793, publicado en 1981. El documento RFC 1122 (Host Requirements for Internet Hosts), especifica el nmero de requisitos de una implementacin del protocolo TCP. El RFC 2581 (Control de Congestin TCP) es uno de los ms importantes documentos relativos a TCP de los ltimos aos, describe nuevos algoritmos para evitar la congestin excesiva. En 2001, el RFC 3168 fue escrito para describir la Notificacin de Congestin Explcita (ECN), una forma de eludir la congestin con mecanismos de sealizacin. En los comienzos del siglo XXI, TCP es usado en el 95% de todos los paquetes que circulan por Internet. Entre las aplicaciones ms comunes que usan TCP estn HTTP/HTTPS (World Wide Web), SMTP/POP3/IMAP (correo electrnico) y FTP (transferencia de ficheros). Su amplia extensin ha sido la prueba para los desarrolladores originales de que su creacin estaba excepcionalmente bien hecha. Recientemente, un nuevo algoritmo de control de congestin fue desarrollado y nombrado como FAST TCP (Fast Active queue management Scalable Transmission Control Protocol) por los cientficos de Caltech (California Institute of Technology). Es similar a TCP Vegas en cuanto a que ambos detectan la congestin a partir de los retrasos en las colas que sufren los paquetes al ser enviados a su destino. Todava hay un debate abierto sobre si ste es un sntoma apropiado para el control de la congestin. 21
Comparativa entre UDP y TCP UDP: proporciona un nivel de transporte no fiable de datagramas, ya que apenas aade la informacin necesaria para la comunicacin extremo a extremo al paquete que enva 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 transmisin de audio y vdeo a travs de una red. No introduce retardos para establecer una conexin, no mantiene estado de conexin alguno y no realiza seguimiento de estos parmetros. As, un servidor dedicado a una aplicacin particular puede soportar ms clientes activos cuando la aplicacin 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 informacin de forma fiable, liberando al programador de la dificultad de gestionar la fiabilidad de la conexin (retransmisiones, prdida de paquetes, orden en el que llegan los paquetes, duplicados de paquetes...) que gestiona el propio protocolo. Pero la complejidad de la gestin de la fiabilidad tiene un coste en eficiencia, ya que para llevar a cabo las gestiones anteriores se tiene que aadir bastante informacin a los paquetes que enviar. Debido a que los paquetes para enviar tienen un tamao mximo, cuanta ms informacin aada el protocolo para su gestin, menos informacin que proviene de la aplicacin podr contener ese paquete (el segmento TCP tiene una sobrecarga de 20 bytes en cada segmento, mientras que UDP solo aade 8 bytes). Por eso, cuando es ms importante la velocidad que la fiabilidad, se utiliza UDP. En cambio, TCP asegura la recepcin en destino de la informacin para transmitir.