Oct 12

Swap Bytes y paquetes

SWAT o SWAP Todos tenemos nuestras deficiencias en unos temas y en otros, en cambio; somos mas avezados. No es nada extraño ni vergonzoso el reconocerlo. Por ello puedo decir que mi dominio del ingles no es alto ni mucho menos, aunque mas o menos me defiendo en su lectura. Mi comprensión al escucharlo, necesita mejorar bastante.

 Cuando era muy joven, hacia furor una serie llamada S.W.A.T. Conocida aquí como “Los hombres de Harrelson“. Mas tarde, cuando estudiaba ingles e informática, aprendí en programación la palabra “Swap”, la cual, ingenuo de mi, siempre relacionaba con los hombres de Harrelson.

 Debido a la crisis descubrí otros usos de Swap en economía, pero esto no viene al caso. Hoy quiero intentar explicar el concepto de Swap en programación.Don Quijote 2 tomos

 Supongamos que queremos enviar por correos el libro de “El ingenioso hidalgo don Quijote de la mancha”. Como es una edición clásica, viene en su formato original (en dos partes) y empaquetamos de forma independiente los dos tomos. La primera parte será el paquete “A” y la segunda parte, el paquete “B”.

 Al entregarlos en la ventanilla de correos, entregamos primero el paquete “A” y luego el paquete “B”. Ellos los amontonan en el suelo dejando primero A (debajo) y luego B (encima). Al cargarlos al camión y coger primero el paquete que esta encima, B lo pondrán debajo y A lo pondrán arriba. Al entregarlo en la oficina de correos destino, los volverán a invertir dejándolos como estaban en la primera oficina (A debajo y B arriba).

swap orden bytes Esto significa que cuando los recoja el destinatario, primero le entregaran el paquete B y luego el paquete A. Si los leyera en ese orden, no entendería muchas cosas del libro, por lo tanto tendrá que invertir el orden de lectura.

 Cada cambio en el orden de los paquetes, es un Swap y es bastante importante en algunos aspectos de la programación cuando implica sistemas de comunicación.

 Como ya explique cuando hablaba de los datos ASCII en los ordenadores están almacenados en bytes, pero muchas veces usamos mas de uno: Un integer o una word ocupan 2 bytes. Una cadena puede estar compuesta por un numero indeterminado de bytes.Cadena con Swap

 En una comunicación puede ocurrir que la palabra “persiana”, llegue al destinatario como “epsraian” y debamos hacer un Swap a cada par de bytes para que llegue correctamente a su destino o cuando recibamos una cadena de ese destino.

 Debemos tener en cuenta que con los sistemas de 64 bits (4 bytes), este tema se complica aun más al poderse girar los bytes de cuatro en cuatro durante la comunicación. Es necesario saber entonces de que manera están llegando al destino para saber como debemos tratarlos.