IP reference

Referencia Técnica de Redes, Protocolos, Modelo OSI, TCP/IP, y otras tecnologías.

Posts Tagged ‘pila de protocolos TCP’

Subneteo (subnetting,subnet)

Posted by Luis R. en 2009/05/31

Subnetting es la técnica para crear múltiples redes lógicas dentro de una red Clase A, B ó C; sin esta herramienta sólo podríamos usar una red por cada red clase A, B o C, lo cual haría que desaprovecháramos los espacios de direcciones.

Cada enlace de datos en una red debe tener un identificador único de red, y cada nodo en ese enlace debe ser miembro de la misma red. Si dividimos una red mayor (Clase A, B o C) en redes más pequeñas, te permite crear una red que interconecta subredes. Cada enlace de datos en esta red tendría entonces un identificador de red o de sub-red único. Cualquier dispositivo o gateway que conecta n redes o subredes tiene n distintas direcciones IP, una por cada red o sub-red que interconecta.

Continúa leyendo en la nueva dirección del blog:

http://ipref.blogspot.com/2009/05/subneteo-subnettingsubnet.html

Anuncios

Posted in A-Bases, CCNA, Internetworking | Etiquetado: , , , , , , , , , , , | 1 Comment »

Cómo funciona una Red Privada Virtual (Virtual Private Network)

Posted by Luis R. en 2009/04/28

from:IPSec Negotiation/IKE Protocols/How Virtual Private Networks Work

El mundo ha cambiado últimamente y ya no sólo nos interesa tratar con asuntos locales o regionales, ahora muchas empresas tienen que lidiar con mercados y logística globales. Algunas empresas deciden hacerlo mediante presencia en todo su país, su continente, o incluso en todo el mundo; pero siempre hay algo que necesitan: comunicación segura, confiable y rápida, sin importar donde estén sus oficinas.

Hasta hace poco, comunicación confiable significaba tener enlaces dedicados para mantener redes WAN, que podían ir desde una línea ISDN (144Kbps) hasta un OC3 (Optical Carrier-3 a 155Mbp o también llamado STM1). Obviamente una red WAN tiene ventajas sobre una red pública, como Internet, en cuanto a confiabilidad, disponibilidad, performance, latencia, seguridad, etc.; pero mantener una red WAN, particularmente usando enlaces dedicados, se puede volver demasiado costoso, y dependiendo del tipo de servicio, puede que la distacia incremente ese costo aún más. Adicionalmente, las redes privadas no son la solución para una empresa que tiene usuarios con alta movilidad (como puede ser el personal de mercadeo), y que requiere conectarse a recursos corporativos para acceder a datos sensiblemente importantes o confidenciales.

Mientras crece la popularidad del internet, las empresas lo han utilizado como un medio para extender sus propias redes. Primero llegaron las intranets, sitios diseñados para el uso de los empleados únicamente. Ahora, muchas compañías tienen sus propias VPNs para dar solución a las necesidades de sus empleados y oficinas remotos.

Una red típica de VPN puede tener una red local (LAN) principal en el edificio corporativo, otras LANs en oficinas remotas y usuarios individuales que se conectan desde campo.
Una VPN es una red privada que usa una red pública (usualmente el internet) para conectar sitios remotos o usuarios. Y en lugar de usar enlaces dedicados, tales como una línea privada, usa conexiones “virtuales” enrutadas a través de internet desde la red privada de la compañía hasta el sitio remoto.

¿Qué hace una VPN?

Hay dos tipos comunes de VPN

  • Remote-Access: también llamada Virtual Private Dial-up Network (VPDN); es una conexión usuario-LAN usada por empresas que tienen empleados móviles que se conectan desde localidades remotas. Usualmente, las empresas que trabajan este esquema, también contratan un ISP que provea el servicio de Dial-up a sus empleados móviles, y podría incluso ser a través de un número gratuito para entrar a internet y comunicarse con la red corporativa a través de un cliente de VPN. Las redes VPN de Remote-Access permiten conexiones seguras y encriptadas entre la red privada de una empresa y los usuarios remotos a través de un proveedor de servicios.
  • Site-to-Site: A través del uso de equipo dedicado y encripción a gran escala, una empresa puede conectar múltiples sitios fijos sobre una red pública como Internet. Cada sitio requiere sólo una conexión local a la misma red pública; de ahí proviene el ahorro comparado con Líneas Privadas dedicadas. Las VPNs Site-to-Site se pueden clasificar como intranets(entre dos oficinas remotas de la  misma compañía) o extranets (si se construye la VPN entre oficinas de compañías distintas, ya sea un socio, cliente, proveedor, etc.)

Entre las ventajas de una Red Privada Virtual bien diseñada tenemos:

  • Conectividad extendida geográficamente
  • Costos de operación menores que en una WAN tradicional
  • Reduce los tiempos y costos de tránsito para usuarios remotos
  • Aumenta la productividad
  • Simplifica la topología de red
  • Provee oportunidades de trabajo en red globales
  • Hace posible el soporte a esos trabajadores remotos
  • Provee un retorno de inversión más rápido que una WAN tradicional

¿Qué características tiene una Red Privada Virtual bien diseñada? Debe incorporar al menos:

  • Seguridad (security)
  • Confiabilidad (reliability)
  • Escalabilidad (scalability)
  • Manejo de Red (network management)
  • Manejo de Políticas (policy management)

Analogía: cada LAN es una ISLA (each LAN is an isLANd)

Imagina que vive en una isla dentro de un enorme oceáno. Hay miles de islas alrededor, algunas muy cerca, otras muy lejos. La manera normal de viajar a ellas es tomar un ferry, y por tanto, significaría no tener casi ninguna privacidad; todo lo que haga puede ser visto por otros.

Pensemos en que cada isla es una LAN y el oceáno es la Internet. Cuando te conectas a un servidor web es similar a cuando viajas por ferry. No tienes control sobre los cables o routers que componen la internet, así como no tienes control de la gente en el ferry. Es así como tienes los detalles de seguridad por usar un medio público para conectar dos redes privadas.

Así que decides construir un puente entre tu isla y otra, para tener un medio más seguro y directo de viajar entre ellas. Claro que será más caro construir y mantener el puente, aún cuando sea un destino cercano; pero la necesidad de un medio confiable y seguro es grande, así que lo construyes. Quizás si quieres comunicarte a una isla más lejana será demasiado caro.

La situación es parecida a tener una línea privada. Los puentes (esas líneas privadas) están separadas del oceáno (Internet), aún pueden conectar las islas (LANs). Muchas compañiás han escogido esta ruta por la gran necesidad de seguridad y confiabilidad. Aún así, la gran distancia podría hacer prohibitivos los costos.

Así que, ¿cómo encaja una VPN en esta analogía?, le podríamos dar a cada habitante de nuestra isla un pequeño submarino con las siguientes propiedades:

  • Rápido
  • Fácil de llevar
  • Se puede esconder completamente de otros submarinos y barcos
  • Se puede depender de él
  • Es barato agregar submarinos a la flota que ya tienes

Aunque está viajando en el oceáno junto con otro tráfico, los habitantes de nuestras islas pueden viajar cuando quieran, con seguridad y privacía. Así funciona una VPN en esencia; cada miembro remoto de tu red puede comunicarse de manera segura a través de Internet hacia una LAN privada. Además, puede crecer la VPN para acomodar más usuarios o localidades de manera más sencilla que con enlaces dedicados. De hecho, la escalabilidad es una de las mayores ventajas de las VPNs sobre las líneas dedicadas, ya que la distancia geográfica no influye en los costos de la VPN.

Tecnologías VPN

Una VPN bien diseñada usa varios métodos para mantener el orden de la conexión y los datos seguros.

  • Confidencialidad de los datos: es quizás el servicio más importante que nos da cualquier implementación de VPN. Como tus datos privados viajan sobre un medio público, la confidencialidad es vital y puede ser obtenida por encriptación. En este proceso se codifican los datos de una manera que sólo la computadora de destino puede descifrar la información.

La mayoría de las VPN usan uno de estos protocolos de encriptación:

  1. IPsec– Internet Protocol security que nos da una seguridad mejorada con características tales como algoritmos de encriptación más fuertes y autenticación más comprensiva. IPsec tiene dos modos de encripción, túnel y transporte. El modo de túnel encripta el encabezado y la carga de cada paquete, mientras que el método de transporte sólo encripta la carga o contenido de los paquetes. Sólo sistemas que son compatibles con IPsec pueden usar este protocolo. También, todos los dispositivos deben usar una clave común o certificado y deben tener implementadas políticas de seguridad similares.
    Para usuarios de acceso remoto de VPN hay paquetes de software  que proveen encriptación y conexión en una PC. IPsec soporta encriptación de 56 bits (single DES) o 168 bits (triple-DES).
  2. PPTP/MPPE– PPTP fue creado en el foro PPTP, un consorcio que incluye a US Robotics, Microsoft, 3COM, Ascend y ECI Telematics. PPTP soporta VPNs multiprotocolo, con encriptación de 40 y 128 bits usando un protocolo llamado Microsoft Point-to-Point Encryption (MPPE). Es importante notar que PPTP por si mismos no provee encriptación.
  3. L2TP/IPsec– conocido como L2TP sobre IPsec, provee la seguridad del protocolo de IPsec sobre la solución de túnel de Layer 2 Tunneling Protocol. L2TP es el producto de la alianza entre miembros del foro PPTP, Cisco y la Internet Engineering Task Force (IETF). Usado principalmente para VPNs de acceso remoto con sistemas operativos Windows 2000, ya que Windows 2000 trae incorporado un cliente nativo de IPsec y L2TP. Los ISP (proveedores de servicio de Internet) también pueden ofrecer conexiones L2TP para usuarios de dial-up (conexión por módem analógico) y encriptar el tráfico con IPsec entre sus puntos de acceso y los servidores de red de las oficinas remotas.
  • Integridad de los datos– es imporante que tus datos estén encriptados sobre una red pública, y es igual de importante que no sean cambiados durante su tránsito. Por ejemplo, IPsec tiene un mecanismo para asegurar que la parte encriptada del paquete o el encabezado completo y los datos del paquete, no han sido alterados. Si se detecta alguna alteración, el paquete se descarta. La integridad de los datos también involucra autenticar el par remoto (remote peer).
  • Autenticación del origen de los datos– es extremadamente importante verificar la identidad de la fuente de los datos que se están enviando. Esto es para protegernos de una variedad de ataques que dependen de suplantar la identidad del transmisor (spoofing).
    Anti Replay- Es la habilidad de detectar y rechazar paquetes que son reproducidos o copiados, y sirve para evitar el spoofing.
  • Data Tunneling/Traffic Flow Confidentiality–  Tunneling es el proceso de encapsular un paquete completo dentro de otro paquete y enviarlo sobre una red. El tuneleo de datos es útil en casos donde es deseable esconder la identidad del dispositivo que origina el tráfico. Por ejemplo, un dispositivo único que encapsula tráfico que pertenece a un número de hosts detrás de él, y agrega su propio encabezado sobre los paquetes existentes. Encriptando el paquete original y su encabezado ( y ruteando el paquete basado en el encabezado capa 3 que se agregó encima), el dispositivo de tuneleo esconde efectivamente la fuente original del paquete. Sólo un par (peer) confiable es capaz de determinar la verdadera fuente, después desecha el encabezado adicional y desencripta el encabezado original. Como puede verse en el RFC 2401:

“…disclosure of the external characteristics of communication also can be a concern in some circumstances. Traffic flow confidentiality is the service that addresses this latter concern by concealing source and destination addresses, message length, or frequency of communication. In the IPsec context, using ESP in tunnel mode, especially at a security gateway, can provide some level of traffic flow confidentiality.”

“…La revelación de las características externas de comunicación también pueden ser una preocupación en ciertas circunstancias. La confidencialidad del flujo de tráfico es el servicio que resuelve esta preocupación ocultando las direcciones fuente y destino; longitud del mensaje, o la frecuencia de comunicación. En el contexto de IPsec, usar ESP en modo de túnel, especialmente en un gateway de seguridad, puede dar algún nivel de confidencialidad al flujo de tráfico.”

Todos los protocolos de encriptación listados aquí también usan tuneleo como un medio para transferir los datos encriptados a través de la red pública. Es importante notar que el tuneleo, por si mismo, no provee seguridad a los datos. El paquete original es encapsulado únicamente dentro de otro protocolo y podría aún ser visible con un dispositivo de captura de paquetes si no es encriptado. Sin embargo se menciona aquí porque es una parte integral de cómo funciona una VPN.

El tunneling requiere 3 protocolos diferentes:

  1. Passenger protocol– Datos originales a transportar (IPX, NetBeui, IP).
  2. Encapsulating protocol–  El protocolo que envolverá al paquete original.
  3. Carrier protocol– El protocolo usado por la red sobre el que la información viajará.

El paquete original (passenger protocol) es encapsulado dentro del protocolo de encapsulamiento, el cual es puesto dentro del encabezado del protocolo de carrier (usualmente IP) para mandarlo sobre la red pública. Debemos notar que el protocolo de encapsulamiento frecuentemente también lleva la encriptación de los datos. Protocolos como IPX y NetBeui, los cuales normalmente no serían transportados por la Internet, pueden ser transmitidos de manera segura.

Para VPNs site-to-site, el protocolo de encapsulamiento es usualmente IPsec o Generic Routing Encapsulation (GRE). GRE incluye información de que tipo de paquete estás encapsulando e información acerca de la conexión entre el servidor y el cliente.
Para VPNs de acceso remoto, el tunneling normalmente tiene lugar usando PPP (point to point protocol). Parte de la pila de TCP/IP, PPP es el transporte para otros protocolos de IP cuando se comunicam dos hosts sobre la red. PPP tunneling usará PPTP, L2TP o Layer 2 Forwarding (propietario de Cisco).

  • AAA– Authentication, authorization, and accounting; se usa para un acceso más seguro en una VPN de acceso remoto. Sin la autenticación de usuario cualquiera que tenga acceso a una computadora con un cliente de VPN preinstalado puede establecer una conexión segura a la red remota. Sin embargo, con la autenticación de usuario se le pedirán un nombre usuario y una contraseña válidos para completar la conexión. Los nomrbes de usuario y contraseñas peuden ser almacenados en el dispositivo terminador de VPNs, o en un servidor externo de AAA, el cual puede proveer autenticación a muchas otras bases de datos, tales como Windows NT, Novell, LDAP, y demás.

Cuando una petición para establecer un túnel viene de un cliente de dial-up, el dispositivo de VPN pregunta por un nombre de usuario y una contraseña. Éste puede ser autenticado localmente o enviado a un AAA server, el cual revisa:

  • Authentication ¿Quién eres?
  • Authorization ¿Qué te está permitido hacer?
  • Accounting ¿Qué es lo que estás haciendo?

La información de accounting es especialmente útil para seguir la actividad de un cliente para auditar la seguridad, cobrar los servicios usados o elaborar reportes.

  • Nonrepudiation– es una característica bastante deseable en ciertas transferencias de datos, especialmente las relacionadas con finanzas. Ayuda a prevenir situaciones donde un extremo niega haber tomado parte en una transacción. Así como un banco nos requiere la forma antes de pagar un cheque, nonrepudiation trabaja agregando una firma digital al mensaje enviado, así se adelanta a la posibilidad de que el transmisor niegue su participación en la transacción.

Hay varios protocolos que se pueden usar para contruir una solución deVPN y cada uno de ellos provee parte de los servicios que se listan en el documento. La elección de algún protocolo depende del juego de características deseado. Por ejemplo, una organización puede estar cómoda con la información transmitida en texto simple, pero extremadamente preocupada con la integridad de los datos, mientras que otra empresa podría encontrar que su confidencialidad es extremadamente esencial. Obviamente la elección de protocolos sería diferente. Para más información de los protocolos disponibles y sus fortalezas relativas puedes leer el documento de cisco: ¿Cuál solución de VPN es la correcta para ti? (inglés).

Productos de VPN (Cisco)

Basados en el tipo de VPN (remote-access o site-to-site) se necesitan ciertos componentes para construir tu red de VPN. Estos pueden incluir:

  • Software para cada host remoto que se requiera conectar
  • Hardware dedicado, como un concentrador de VPN o un Cisco Adaptive Security Appliance (ASA), un router con IOS features, un VPN router de Nortel (antes contivity), etc.
  • Servidor de VPN dedicado para los servicios de dial-in
  • Network Access Server (NAS) usado por los proveedores de servicios para el acceso de usuarios remotos de VPN.
  • Centro manejo de políticas y de red privada.

Muchas compañías han desarrollado soluciones llave en mano debido a que no hay un estándar ampliamente aceptado para implementar VPNs, por ejemplo, Cisco ofrece:

  • VPN Concentrator (fuera de ventas)
  • VPN enabled router (un 1841 security bundle por ejemplo)
  • Cisco ASA
  • Cisco VPN clients

Posted in Cisco docs, Security | Etiquetado: , , , , , , , , , , , , , , , , , , , , , , | 6 Comments »

Three-way handshake

Posted by Luis R. en 2009/03/30

del artículo de Microsoft:
Explanation of the Three-Way Handshake via TCP/IP

El nivel del protocolo de transporte comprendido en TCP (transport control protocol) es orientado a conexión; lo que significa que antes de poder transmitir datos, se debe obtener una conexión confiable y reconocida (con acknowledge). Las transmisiones de datos a nivel TCP, los establecimientos de conexión y terminación de conexión, mantienen parámetros específicos de control que gobiernan el proceso completo. Los bits de control son:

  • URG: Urgent Pointer field significant
  • ACK: Acknowledgement field significant
  • PSH: Push Function
  • RST: Reset the connection
  • SYN: Synchronize sequence numbers
  • FIN: No more data from sender

Hay dos escenarios donde un proceso de three-way handshake tendrá lugar:

  • Estableciendo una conexión (apertura activa)
  • Terminando una conexión (cierre activo)

La información de muestra fue obtenida de un captura de un Monitor de red (analizador de protocolos que puede obtenerse de un Microsoft Systems Management Server).

Estableciendo una conexión

La siguiente secuencia muestra el proceso de una conexión de TCP siendo establecida:

Frame1:

Como podemos ver en el primer frame, el cliente NTW3 envía un segmento SYN (TCP…S); esto es una petición al servidor para sincronizar los números de secuencia. Especifica el número de secuencia inicial (ISN) que se incrementa por 1 (8221821+1=8221822) y es enviado al servidor. Para iniciar una conexión, el cliente y el servidor deben sincronizar sus respectivos números de secuencia. También hay una opción para el tamaño máximo de segmento (MSS) que debe acordarse, y se define en la longitud (length, len: 4). Esta opción comunica el tamaño máximo de segmento que el transmisor quiere recibir. El campo de reconocimiento o acuse de recibo (acknowledge, ack: 0) se fija en cero porque es la primera parte del proceso de three-way handshake.

1    2.0785 NTW3 --> BDC3 TCP ....S., len: 4, seq: 8221822-8221825, ack: 0,
win: 8192, src: 1037  dst:  139 (NBT Session)  NTW3 -->  BDC3 IP

TCP: ....S., len: 4, seq: 8221822-8221825, ack: 0, win: 8192, src: 1037
dst:  139 (NBT Session)

   TCP: Source Port = 0x040D
   TCP: Destination Port = NETBIOS Session Service
   TCP: Sequence Number = 8221822 (0x7D747E)
   TCP: Acknowledgement Number = 0 (0x0)
   TCP: Data Offset = 24 (0x18)
   TCP: Reserved = 0 (0x0000)
   TCP: Flags = 0x02 : ....S.

      TCP: ..0..... = No urgent data
      TCP: ...0.... = Acknowledgement field not significant
      TCP: ....0... = No Push function
      TCP: .....0.. = No Reset
      TCP: ......1. = Synchronize sequence numbers
      TCP: .......0 = No Fin

   TCP: Window = 8192 (0x2000)
   TCP: Checksum = 0xF213
   TCP: Urgent Pointer = 0 (0x0)
   TCP: Options

         TCP: Option Kind (Maximum Segment Size) = 2 (0x2)
         TCP: Option Length = 4 (0x4)
         TCP: Option Value = 1460 (0x5B4)

   TCP: Frame Padding

00000:  02 60 8C 9E 18 8B 02 60 8C 3B 85 C1 08 00 45 00   .`.....`.;....E.
00010:  00 2C 0D 01 40 00 80 06 E1 4B 83 6B 02 D6 83 6B   .,..@....K.k...k
00020:  02 D3 04 0D 00 8B 00 7D 74 7E 00 00 00 00 60 02   .......}t~....`.
00030:  20 00 F2 13 00 00 02 04 05 B4 20 20                .........


Frame 2:

En el segundo frame, el servidor BDC3 envía un ACK y un SYN en este segmento (TCP .A..S.) En este segmento el servidor está acusando de recibida la petición del cliente para sincronizar. Al mismo tiempo, el servidor también envía su petición al cliente para sincronizar sus números de secuencia. Hay una diferencia importante en este segmento. El servidor transmite un número de acuse (acknowledgement number 8221823) al cliente. El acknowledgement es sólo la prueba para que el cliente sepa que el ACK es la respuesta al SYN que el cliente inició. El proceso de acuse de recibo que el cliente requirió permite al servidor incrementar el número de secuencia del cliente por uno y lo usa como su número de acknowledgement.

2   2.0786 BDC3 --> NTW3  TCP .A..S., len: 4, seq: 1109645-1109648, ack:
8221823, win: 8760, src: 139 (NBT Session)  dst: 1037 BDC3 --> NTW3  IP

TCP: .A..S., len:    4, seq:   1109645-1109648, ack:   8221823, win: 8760,
src:  139 (NBT Session)  dst: 1037

   TCP: Source Port = NETBIOS Session Service
   TCP: Destination Port = 0x040D
   TCP: Sequence Number = 1109645 (0x10EE8D)
   TCP: Acknowledgement Number = 8221823 (0x7D747F)
   TCP: Data Offset = 24 (0x18)
   TCP: Reserved = 0 (0x0000)
   TCP: Flags = 0x12 : .A..S.

      TCP: ..0..... = No urgent data
      TCP: ...1.... = Acknowledgement field significant
      TCP: ....0... = No Push function
      TCP: .....0.. = No Reset
      TCP: ......1. = Synchronize sequence numbers
      TCP: .......0 = No Fin

   TCP: Window = 8760 (0x2238)
   TCP: Checksum = 0x012D
   TCP: Urgent Pointer = 0 (0x0)
   TCP: Options

         TCP: Option Kind (Maximum Segment Size) = 2 (0x2)
         TCP: Option Length = 4 (0x4)
         TCP: Option Value = 1460 (0x5B4)

   TCP: Frame Padding

00000:  02 60 8C 3B 85 C1 02 60 8C 9E 18 8B 08 00 45 00   .`.;...`......E.
00010:  00 2C 5B 00 40 00 80 06 93 4C 83 6B 02 D3 83 6B   .,[.@....L.k...k
00020:  02 D6 00 8B 04 0D 00 10 EE 8D 00 7D 74 7F 60 12   ...........}t`.
00030:  22 38 01 2D 00 00 02 04 05 B4 20 20               "8.-......

Frame 3:
En el tercer frame, el cliente envía un ACK en el segmento (TCP .A….) y el cliente está confirmando la petición del servidor para sincronizar. El cliente usa el mismo algoritmo que el servidor implementó para dar un número de confirmación. La confirmación del cliente está completando el proceso de establecer una conexión confiable, a través del Three-Way Handshake.

3   2.787 NTW3 --> BDC3  TCP .A...., len: 0, seq: 8221823-8221823, ack:
1109646, win: 8760, src: 1037  dst:  139 (NBT Session)  NTW3 --> BDC3  IP

TCP: .A...., len:    0, seq:   8221823-8221823, ack:   1109646, win: 8760,
src: 1037  dst:  139 (NBT Session)

   TCP: Source Port = 0x040D
   TCP: Destination Port = NETBIOS Session Service
   TCP: Sequence Number = 8221823 (0x7D747F)
   TCP: Acknowledgement Number = 1109646 (0x10EE8E)
   TCP: Data Offset = 20 (0x14)
   TCP: Reserved = 0 (0x0000)
   TCP: Flags = 0x10 : .A....

      TCP: ..0..... = No urgent data
      TCP: ...1.... = Acknowledgement field significant
      TCP: ....0... = No Push function
      TCP: .....0.. = No Reset
      TCP: ......0. = No Synchronize
      TCP: .......0 = No Fin

   TCP: Window = 8760 (0x2238)
   TCP: Checksum = 0x18EA
   TCP: Urgent Pointer = 0 (0x0)
   TCP: Frame Padding

00000:  02 60 8C 9E 18 8B 02 60 8C 3B 85 C1 08 00 45 00   .`.....`.;....E.
00010:  00 28 0E 01 40 00 80 06 E0 4F 83 6B 02 D6 83 6B   .(..@....O.k...k
00020:  02 D3 04 0D 00 8B 00 7D 74 7F 00 10 EE 8E 50 10   .......}t....P.
00030:  22 38 18 EA 00 00 20 20 20 20 20 20               "8....


Terminando una conexión

Aunque el proceso three-way handshake solo requiere 3 paquetes para ser transmitido sobre nuestro medio de red, la terminación de esta conexión confiable necesitará la transmisión de 4 paquetes. Debido a que una conexión TCP es Full Duplex (fluye información en cada dirección de manera independiente de la otra) cada dirección debe ser terminada de manera independiente.

Frame 4
En esta sesión de frames, podemos ver alcliente enviando un FIN que es acompañado por un ACK (TCP.A…F) Este segmento tiene dos funciones básicas; primero, cuando el parámetro FIN es fijado, informará al servidor que no hay más datos que enviar; segundo, el ACK es esencial para identificar la conexión específica que ellos establecieron.

4   16.0279 NTW3 --> BDC3 TCP .A...F, len: 0, seq: 8221823-8221823,
ack:3462835714, win: 8760, src: 2337  dst: 139 (NBT Session)  NTW3 --> BDC3
IP

TCP: .A...F, len:   0, seq: 8221823-8221823, ack:  1109646, win: 8760, src:
1037  dst:  139 (NBT Session)

   TCP: Source Port = 0x040D
   TCP: Destination Port = NETBIOS Session Service
   TCP: Sequence Number = 8221823 (0x7D747F)
   TCP: Acknowledgement Number = 1109646 (0x10EE8E)
   TCP: Data Offset = 20 (0x14)
   TCP: Reserved = 0 (0x0000)
   TCP: Flags = 0x11 : .A...F

      TCP: ..0..... = No urgent data
      TCP: ...1.... = Acknowledgement field significant
      TCP: ....0... = No Push function
      TCP: .....0.. = No Reset
      TCP: ......0. = No Synchronize
      TCP: .......1 = No more data from sender

   TCP: Window = 8760 (0x2238)
   TCP: Checksum = 0x236C
   TCP: Urgent Pointer = 0 (0x0)

00000:  00 20 AF 47 93 58 00 A0 C9 22 F5 39 08 00 45 00   . .G.X...".9..E.
00010:  00 28 9B F5 40 00 80 06 21 4A C0 5E DE 7B C0 5E   .(..@...!J.^.{.^
00020:  DE 57 09 21 05 48 0B 20 96 AC CE 66 AE 02 50 11   .W.!.H. ...f..P.
00030:  22 38 23 6C 00 00                                 "8#l..

Frame 5:
Aquí no se ve nada especial, excepto el servidor confirmando el FIN que envió el cliente.

5    16.0281 BDC3 --> NTW3 TCP .A...., len:    0, seq: 1109646-1109646,
ack: 8221824, win:28672, src: 139  dst: 2337 (NBT Session) BDC3 -->  NTW3
IP

TCP: .A...., len:    0, seq: 1109646-1109646, ack: 8221824, win:28672, src:
139  dst: 2337 (NBT Session)

   TCP: Source Port = 0x040D
   TCP: Destination Port = NETBIOS Session Service
   TCP: Sequence Number = 1109646 (0x10EE8E)
   TCP: Acknowledgement Number = 8221824 (0x7D7480)
   TCP: Data Offset = 20 (0x14)
   TCP: Reserved = 0 (0x0000)
   TCP: Flags = 0x10 : .A....

      TCP: ..0..... = No urgent data
      TCP: ...1.... = Acknowledgement field significant
      TCP: ....0... = No Push function
      TCP: .....0.. = No Reset
      TCP: ......0. = No Synchronize
      TCP: .......0 = No Fin

   TCP: Window = 28672 (0x7000)
   TCP: Checksum = 0xD5A3
   TCP: Urgent Pointer = 0 (0x0)
   TCP: Frame Padding

00000:  00 A0 C9 22 F5 39 08 00 02 03 BA 84 08 00 45 00   ...".9........E.
00010:  00 28 D2 82 00 00 3F 06 6B BD C0 5E DE 57 C0 5E   .(....?.k..^.W.^
00020:  DE 7B 05 48 09 21 CE 66 AE 02 0B 20 96 AD 50 10   .{.H.!.f... ..P.
00030:  70 00 D5 A3 00 00 90 00 01 00 86 00               p...........

Frame 6
Después de recibir el paquete FIN desde el cliente, el servidor confirmará. Aún cuando TCP ha establecido conexiones entre esas dos computadoras, las conexiones son aún independientes una de otra; así que el servidor debe transmitir también un paquete FIN (TCP .A…F) al cliente.

6   17.0085 BDC3 --> NTW3 TCP .A...F, len: 0, seq: 1109646-1109646, ack:
8221824, win:28672, src: 139 dst: 2337 (NBT Session) BDC3 -->  NTW3   IP

TCP: .A...F, len:  0, seq: 1109646-1109646, ack: 8221824, win:28672, src:
139  dst: 2337 (NBT Session)

   TCP: Source Port = 0x0548
   TCP: Destination Port = 0x0921
   TCP: Sequence Number = 1109646 (0x10EE8E)
   TCP: Acknowledgement Number = 8221824 (0x7D7480)
   TCP: Data Offset = 20 (0x14)
   TCP: Reserved = 0 (0x0000)
   TCP: Flags = 0x11 : .A...F

      TCP: ..0..... = No urgent data
      TCP: ...1.... = Acknowledgement field significant
      TCP: ....0... = No Push function
      TCP: .....0.. = No Reset
      TCP: ......0. = No Synchronize
      TCP: .......1 = No more data from sender

   TCP: Window = 28672 (0x7000)
   TCP: Checksum = 0xD5A2
   TCP: Urgent Pointer = 0 (0x0)
   TCP: Frame Padding

00000:  00 A0 C9 22 F5 39 08 00 02 03 BA 84 08 00 45 00   ...".9........E.
00010:  00 28 D2 94 00 00 3F 06 6B AB C0 5E DE 57 C0 5E   .(....?.k..^.W.^
00020:  DE 7B 05 48 09 21 CE 66 AE 02 0B 20 96 AD 50 11   .{.H.!.f... ..P.
00030:  70 00 D5 A2 00 00 02 04 05 B4 86 00               p...........

Frame 7
El cliente responde en la misma manera que el servidor, confirmando el paquete de FIN que recibió e incrementando el número de secuencia por 1.

7   17.0085 NTW3 --> BDC3 TCP .A...., len: 0, seq: 8221824-8221824, ack:
1109647, win: 8760, src: 2337  dst: 139 (NBT Session) NTW3 --> BDC3 IP

TCP: .A...., len:    0, seq: 8221824-8221824, ack: 1109647, win: 8760, src:
2337  dst: 139   (NBT Session)

   TCP: Source Port = 0x0921
   TCP: Destination Port = 0x0548
   TCP: Sequence Number = 8221824 (0x7D7480)
   TCP: Acknowledgement Number = 1109647 (0x10EE8F)
   TCP: Data Offset = 20 (0x14)
   TCP: Reserved = 0 (0x0000)
   TCP: Flags = 0x10 : .A....

      TCP: ..0..... = No urgent data
      TCP: ...1.... = Acknowledgement field significant
      TCP: ....0... = No Push function
      TCP: .....0.. = No Reset
      TCP: ......0. = No Synchronize
      TCP: .......0 = No Fin

   TCP: Window = 8760 (0x2238)
   TCP: Checksum = 0x236B
   TCP: Urgent Pointer = 0 (0x0)

00000:  00 20 AF 47 93 58 00 A0 C9 22 F5 39 08 00 45 00   . .G.X...".9..E.
00010:  00 28 BA F5 40 00 80 06 02 4A C0 5E DE 7B C0 5E   .(..@....J.^.{.^
00020:  DE 57 09 21 05 48 0B 20 96 AD CE 66 AE 03 50 10   .W.!.H. ...f..P.
00030:  22 38 23 6B 00 00                                 "8#k..

El cliente confirmando la notificación de FIN del servidor identifica el cierre de una conexión de TCP.

Para mayor información, referirse al RFC793, el cual describe a fondo el proceso estandarizado de establecimiento de conexión de TCP.

Posted in Cisco docs | Etiquetado: , , , , , , , , , , , , , , , | Leave a Comment »

Acknowledgments (acuse de recibo)

Posted by Luis R. en 2008/07/27

La entrega confiable de datos asegura la intergidad de un chorro de datos enviados de una máquina a otra a través de un enlace de datos totalmente funcional. Así se asegura que los datos no serán duplicados o perdidos.

Para ello se utiliza una técnica que requiere que la máquina receptora se comunique con la transmisora enviando un acuse de recibo cuando recibe los datos, ésto se llama possitive acknowledgement with retransmission. El transmisor documenta cada segmento de datos que envía y comienza un contador de tiempo, y reenvía el segmento en caso de que el contador termine y no se haya recibdo un acuse de recibo de parte del receptor.

Lee el resto de esta entrada »

Posted in A-Bases, CCNA, Internetworking | Etiquetado: , , , , , , , , | Leave a Comment »

La Pila de Protocolos de TCP/IP

Posted by Luis R. en 2008/06/03

Junto al modelo OSI universalmente reconocido, está el estándar abierto de internet, que es la pila de protocolos de TCP/IP.

Este modelo tiene 4 capas, y algunos autores consideran que la capa inferior debería ser dividida en dos, y sus niveles son:

Capa de Aplicación: maneja los protocolos de alto nivel, incluyendo los asuntos de representación, codificación y control de diálogo. Esta capa maneja todo lo relacionado con aplicaciones y que se empaquen los datos adecuadamente para la siguiente capa.

Capa de Transporte: Esta capa maneja la calidad de servicio, confiabilidad, control de flujo y corrección de errores. Uno de sus protocolos es el Transmission Control Protocol (TCP), que provee de comunicaciones de red confiables, orientadas a la conexión, a diferencia de UDP, no orientado a conexión.

Capa de Internet: el propósito de la capa de internet es enviar los paquetes de la fuente de cualquier red en el intenetwork y hacer que lleguen a su destino, sin importar la ruta que tomen para llegar ahí.

Capa de Acceso a la Red: el nombre de la capa engloba muchas cosas y es un poco confuso. También se llama host-to-host network layer. Incluye los protocolos LAN y WAN, y los detalles en las capas física y de enlace de datos del modelo OSI.

Posted in A-Bases, CCNA, Internetworking | Etiquetado: , , , , , , , , , , | 2 Comments »